C.4 Preprocessing Modules


Implements a BibTeX parser for LaTeXML.


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.


$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 \\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.