This is the mail archive of the docbook-apps@lists.oasis-open.org mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Bibliography management/BibTex equivalent


At 02.01.25 09:57 -0500, Norman Walsh wrote:
>/ Mark Wroth <mark@astrid.upland.ca.us> was heard to say:
>| BibTeX allows any fields  in any entry.  Each bibliography style then
>| parses the fields into "required", "optional", and "ignored", and
>| provides typesetting rules for the required and optional fields.  Any
>| field that is neither required nor optional is treated as ignored.
>
>Do the rules ever reorder fields? I could tweak the stylesheets to
>select only some entries from each biblioentry and process them.

The order fields appear in the printed document is entirely determined by 
the bibliographystyle; field may appear in any order in the database.

>How does BibTeX deal with punctuation around optional entries?

Each bibilographystyle completely defines the presentation for its elements 
(more specifically, for the elements it recognizes as required or optional, 
for each entry type.

The logic of the system is

         The .bib database contains a text database of the data about each 
entry

         (La)TeX on its first pass through a document writes out an .aux 
file that contains (among other things) citations for works determined by 
the document author.  THese citations may be actual citations 
("\cite{the-key}"), "invisible" citations ("\nocite{the-key}", which cause 
the item identified by "the-key" to appear in the bibliography, but does 
not produce a reference in the running text), or a request to display all 
entries ("\nocite{*}").  The .aux file also contains a statement of the 
display style desired, generated by an explicit "\bibliographystyle{foo}" 
command  in the document, and a statement of the database(s) to be 
considered in the parsing (generated by an explicit 
"\bibliography{database-name}" command).

         BibTeX reads the .aux file and determines the bibiliography style 
desired.  It loads the corresponding style file (foo.bst), and then selects 
the elements from the .bib databse corresponding to the citations found in 
the aux file.  It orders and formats the information from the database 
according to the rules in the .bst file, and writes the result to a disk 
file as a sequence of (La)TeX commands. The commands in this file specify 
the visual formatting of the data (existence, order, typographic treatment, 
etc).

         (La)TeX on its next pass reads in the bibliography file generated 
in step two at the location specified at the location of the 
"\bibliography{database-name}" command.

         There is ancillary logic in (La)TeX to attempt to do the right 
thing on a pass based on the presence and contents of the bibliography and 
auxiliary files, but this is not important for the general process, I think.

         It's been a while since I dug into the internals of the style 
files, but I will comment that they are written in their own programming 
language; there is considerable intelligence in those style files.

Mark Wroth
<mark@astrid.upland.ca.us>


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]