# G.1 LaTeXML::Pre::BibTeX

Implements a BibTeX parser for LaTeXML.

## Description

LaTeXML::Pre::BibTeX serves as a low-level parser of BibTeX database files. It parses and stores a LaTeXML::Pre::BibTeX::Entry 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 BibTeX

my $bib = LaTeXML::Pre::BibTeX->newFromFile($bibname);

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

my $bib = LaTeXML::Pre::BibTeX->newFromString($string);

Creates a LaTeXML::Pre::BibTeX 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.