Make a bibliography for latex
nbibtex [options] auxname[.aux] [bibname...]
\*(BX is a drop-in replacement for \*(OB. It reads the top-level auxiliary (.aux) file that was output during the running of latex(1) or tex(1) and creates a bibliography (.bbl) file that will be incorporated into the document on subsequent runs of \*(LX or \*(TX.
\*(BX looks up, in bibliographic database (.bib) files specified by the \bibliography command, the entries specified by the \cite and \nocite commands in the \*(LX or \*(TX source file. The association of \cite command with .bib entry is made by a simple query language described below. \*(BX formats the information from the .bib entries according to instructions in a bibliography style (.nbs) file (specified by the \bibliographystyle command, and it outputs the results to the .bbl file.
If the optional bibnames are used, \*(BX looks in the named bibliographies instead of those specified by the \bibliography command. A bibname without a slash (/) character means the same thing it would mean in a \bibliographystyle command: it is looked up according to the rules of \*(OB. A bibname with a slash character is taken to be the absolute or relative pathname of a .bib file. Explicit bibnames can be used with the -bib and -o options to make a paper-specific .bib file from larger .bib files.
The \*(LX manual explains what a \*(LX source file must contain to work with \*(BX. Appendix B of the manual describes the format of the .bib files. The `\*(BXing' document describes extensions and details of this format, and it gives other useful hints for using \*(BX.
-min-crossrefs=number
The -min-crossrefs option defines the minimum number of crossref required for automatic inclusion of the crossref'd entry on the citation list; the default is 2.
-terse
Accepted for backward compatibility with \*(OB; \*(BX is terse by default.
-permissive
Enables \*(BX to continue working even when some of the .bib files mentioned in the \bibliography command are missing. Also tells \*(BX not to object if duplicate entries are found in multiple .bib files.
-strict
Tells \*(BX to complain about all irregularities it spots in any .bib file it parses. By default, \*(BX (like \*(OB) complains only about entries it actually intends to use.
-o file
Writes the bibliography to file instead of to the default auxname.bbl. If file is -, writes to standard output.
-bib
Instead of writing a bibliography for use by \*(LX, writes exactly those \*(BX entries needed by auxname. Useful for making paper-specific .bib files.
-help
Emit a short help message and exit.
-version
Emit version information and exit.
To make a normal bibliography for file paper.tex:
nbibtex paper
To use the personal .bib file personal.bib to make a paper-specific bibliography for file paper.tex, which should use the command \bibliography{paper}:
nbibtex -o paper.bib -bib paper personal
The file personal.bib should be found on the usual BIBINPUTS path.
To extend the bibliography paper.bib by filling in missing entries from personal.bib:
nbibtex -permissive -o paper.bib -bib paper paper personal
To specify a paper you wish to cite, classic \*(OB requires an arbitrary key. The advantage of \*(BX is that you cite a paper by the contents of the \*(BX entry.
The citation consists of a sequence of one or more constraints separated by colons. A constraint may be empty.
A nonempty constraint is of the form key=words, where key is the name of a field in the \*(BX entry and words is a sequence of one or more words separated by dashes. The contraint is satisfied if every word in words is found in the field named by key. (The key may also be [type], which matches agains the type of the entry, or *, which looks for words in any field.)
For example, the following queries might match an entry for a useful source on arithmetic:
author=knuth:series=art-programming:volume=2
author=knuth:title=seminumerical:year=1981
As a convenience, keys may be defaulted in up to three constraints. In the first constraint, the default key is author (or if there is no author, editor). In the second constraint, the default key is year if words is all digits, and is title otherwise. In the third constraint, the default key is year if words is all digits, and is [type] otherwise. So for example, we could have written
knuth:seminumerical:1981
To match a word in words, \(*BX uses the Boyer-Moore string-matching algorithm, so longer words are usually faster.
\*(BX's query language can be used on the command line by nbibfind(1).
Like \*(OB, \*(BX supports a variety of "styles" of bibliography. Each style is defined by a program written in Lua, using additional primitives suitable to construction of bibliographies. \*(BX provides the three standard styles in a form suitable for use with the natbib package. Two of these styles (abbrvnat and unsrtnat) are completely compatible with the corresponding \*(OB styles; the third style (plainnat) has been changed to more closely follow the Chicago Manual of Style. A compatible version is available as style plainnatc.
Additional styles may be created by writing new Lua code; for example, an author wishing to create a style called mcbride would put a file called mcbride.nbs (for New \*(OB Style) in the directory /usr/share/nbibtex. For guidance on what goes into such a file, consult the other files in that directory and the literate source code for \*(BX.
For .bib files, \*(BX searches the directories in the path defined by the BIBINPUTS environment variable if that is set, otherwise the default. For details of the searching, see tex(1) and kpsewhich(1).
No special searching is done for the .aux file.
/usr/share/nbibtex/*.nbs
New bibliography style files.
Although I have made some effort in this direction, compatibility with \*(OB does not extend to .bib files containing non-ASCII characters.
nbibfind(1), latex(1), tex(1), kpsewhich(1), bibtex(1).
Leslie Lamport, \*(LX - A Document Preparation System, Addison-Wesley, 1985, ISBN 0-201-15790-X.
The \*(BX home page at http://www.eecs.harvard.edu/~nr/nbibtex.
The Lua home page at http://www.lua.org.
Norman Ramsey, Harvard University.