# C.20 LaTeXML::Bib

Implements a BibTeX parser for LaTeXML.

## C.20.1 Description

LaTeXML::Bib serves as a low-level parser of BibTeX database files. It parses and stores a LaTeXML::Bib::BibEntry for each entry into the current STATE. BibTeX string macros are substituted into the field values, but no other processing of the data is done. See LaTeXML::Package::BibTeX.pool.ltxml for how further processing is carried out, and can be customized.

### Creating a Bib

my \$bib = LaTeXML::Bib->newFromFile(\$bibname);

Creates a LaTeXML::Bib object representing a bibliography from a BibTeX database file.

my \$bib = LaTeXML::Bib->newFromString(\$string);

Creates a LaTeXML::Bib object representing a bibliography from a string containing the BibTeX data.

### Methods

\$string = \$bib->toTeX;

Returns a string containing the TeX code to be digested by a LaTeXML object to process the bibliography. The string contains all @PREAMBLE data and invocations of $\backslash$$\backslash$ProcessBibTeXEntry{\$key} for each bibliographic entry. The \$key can be used to lookup the data from \$STATE as LookupValue('BIBITEM@'.\$key). See BibTeX.pool for how the processing is carried out.

### BibEntry objects

The representation of a BibTeX entry.

\$type = \$bibentry->getType;

Returns a string naming the entry type of the entry (No aliasing is done here).

\$key = \$bibentry->getKey;

Returns the bibliographic key for the entry.

@fields = \$bibentry->getFields;

Returns a list of pairs [\$name,\$value] representing all fields, in the order defined, for the entry. Both the \$name and \$value are strings. Field names may be repeated, if they are in the bibliography.

\$value = \$bibentry->getField(\$name);

Returns the value (or undef) associated with the the given field name. If the field was repeated in the bibliography, only the last one is returned.