nbibtex(1) make a bibliography for LaTeX


nbibtex [options] auxname[.aux] [bibname...]


NbibTeX is a drop-in replacement for BibTeX. 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 LaTeX or TeX.

NbibTeX looks up, in bibliographic database (.bib) files specified by the \bibliography command, the entries specified by the \cite and \nocite commands in the LaTeX or TeX source file. The association of \cite command with .bib entry is made by a simple query language described below. NbibTeX 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, NbibTeX 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 BibTeX. 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 LaTeX manual explains what a LaTeX source file must contain to work with NbibTeX. Appendix B of the manual describes the format of the .bib files. The `NbibTeXing' document describes extensions and details of this format, and it gives other useful hints for using NbibTeX.


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.
Accepted for backward compatibility with BibTeX; NbibTeX is terse by default.
Enables NbibTeX to continue working even when some of the .bib files mentioned in the \bibliography command are missing. Also tells NbibTeX not to object if duplicate entries are found in multiple .bib files.
Tells NbibTeX to complain about all irregularities it spots in any .bib file it parses. By default, NbibTeX (like BibTeX) 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.
Instead of writing a bibliography for use by LaTeX, writes exactly those NbibTeX entries needed by auxname. Useful for making paper-specific .bib files.
Emit a short help message and exit.
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 BibTeX requires an arbitrary key. The advantage of NbibTeX is that you cite a paper by the contents of the NbibTeX 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 NbibTeX 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:


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


To match a word in words, ΒX uses the Boyer-Moore string-matching algorithm, so longer words are usually faster.

NbibTeX's query language can be used on the command line by nbibfind(1).


Like BibTeX, NbibTeX 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. NbibTeX 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 BibTeX 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 BibTeX 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 NbibTeX.


For .bib files, NbibTeX 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.


New bibliography style files.


Although I have made some effort in this direction, compatibility with BibTeX does not extend to .bib files containing non-ASCII characters.


Norman Ramsey, Harvard University.