1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
|
NbibTeX -- A better BibTeX
~~~~~~~~~~~~~~~~~~~~~~~~~~
NbibTeX helps authors take better advantage of BibTeX data, especially
when working in collaboration. Instead of using BibTeX 'keys', which
are chosen arbitrarily and idiosyncratically, NbibTeX builds a
bibliography by searching the actual contents of citations.
The command nbibtex can be used just as you would use bibtex. Your
\cite{...} commands are interpreted either as classic BibTeX keys (for
backward compatibility) or as search commands. Thus, if your
bibliography contains the classic paper on type inference, nbibtex
should find it using a citation like \cite{damas-milner:1978}, or
\cite{damas-milner:polymorphism}, or perhaps even simply
\cite{damas-milner}. The same citations should also work with your
coauthors' bibliographies, even if those bibliographies are organized
differently.
NbibTeX also comes with the nbibfind command, which uses the NbibTeX
search engine on the command line. If you know you are looking for a
paper by Harper and Moggi, you can just type
nbibfind harper-moggi
and see what comes out.
To help you work with coauthors who don't have NbibTeX, nbibtex can
also emit a .bib file containing exactly the entries cited in your
paper.
Using NbibTeX
~~~~~~~~~~~~~
I envision three different ways for people to use NbibTeX.
1. Use as you would bibtex for your own papers with your own
bibliography. Your file paper.tex will contain \bibliography{yours},
and to create a bibliography you will simply use
nbibtex paper
2. Use to work with coauthors who also have NbibTeX, each using his
or her own bibliography. Your file paper.tex will contain
\bibliography{yours,mine,his}, and to create a bibliography you
will use
nbibtex -permissive paper
nbibtex will cheerfully ignore any missing bibliographies.
3. Use to work with coauthors, some of whom have only bibtex. In this
case, your best bet is to use nbibtex to make a paper-specific
bibliography file. Your file paper.tex will contain
\bibliography{paper}, and to create or update paper.bib you will
use
nbibtex -permissive -bib -o paper.bib paper paper yours
This command line tells nbibtex to emit a .bib file (-bib) to file
paper.bib, based on citations found in paper.aux (first paper) and
using BibTeX entries found in either paper.bib (second paper) or
in yours.bib. Because of the -permissive option, it is OK if
paper.bib is missing. With paper.bib in place, you and your
coauthors can all use classic BibTeX:
bibtex paper
You might enjoy trying out option 3 on the enclosed paper 'fun.tex'.
Indefensible hacking based on NbibTeX
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
I'm using the same infrastructure to keep my web pages up to date, but
that's a story for another day.
|