tkbib 1.0: a bib file editor for LaTeX
January 20th, 2000
Introduction
If you use LaTeX to compose technical papers, you're
probably familiar with bibtex. The bib files used by bibtex contain
the citations, and these files can get large, messy, and are not a lot
of fun to maintain. I was using bibcard a few years ago, but
without an X11 Motif library, keeping the code running on my various machines
was a pain. Thus, I put on a pot of coffee and threw together a Tcl/Tk
based bib file editor. This software is released under the Gnu Public
License; it comes with no warranty (make backups of your bib files!), and
you're free to use, modify, and improve it any way you see fit. Send
any questions or comments to <pmadden@cs.binghamton.edu>.
Current versions will be maintained at <http://vlsicad.cs.binghamton.edu/~pmadden/tkbib>;
you should be able to download directly from <http://vlsicad.cs.binghamton.edu/~pmadden/tkbib/tkbib.tar.gz>.
This release is something of a stop-gap; I'll be
short of time for the next few months, and wanted to get something out
before I got buried with other work. Thus, there are a lot of rather
obvious features that have not been implemented.
Installing tkbib
The distribution is a gzipped/tarred directory.
For UNIX systems, you'll need to get tkbib into your path (a symbolic link
should work fine), and maybe edit the first line to point to where you
have wish installed. tkbib can figure out where it has been
installed, so you don't need to do anything other than get it into your
path. This is a Tcl/Tk program, and it should run without problems
on any moderately recent version of the wish interpreter.
For Windoze based systems, you might have trouble with the file select
box; I'm not sure if the odd behavior is just with my machine, or with
all flavors of Windoze. Let me know if you have problems loading
in a bib file.
Using tkbib
Run tkbib from the command line; under the FILE menu
item, you can specify a bib file to read in.
tkbib will open a window listing the citations (in
alphabetical order by cite key). You can edit an existing citation
by double-clicking on the key; this will open a second window where all
the fields may be edited. To save your changes, click update;
to dismiss without update, click dismiss.
To create a new record, click the the "new" button
for the appropriate entry type.
When loading a bib file, duplicate citation keys
are discarded (you'll get an error message to this effect). When
creating a new key, no checking is done, so you're on your own to make
sure that things stay correct. Parsing of the bib files is very weak:
each key is expected to be on a line of it's own, and to not span more
than one line; if you currently have a large bib
file, you will probably need to hand-edit it before using tkbib.
I'm planning on writing a decent lex-and-yacc converter when I have an
abundance of time.
Each citation has an "index" field; I'll be
using this to assign each paper a number, and then will use the number
to sort the papers physically. My numbering scheme is the last two
digits of the year, followed by the first four digits of the first page
of paper. Each citation also has a URL; many people are putting PostScript
or PDF files for their papers on the web, or have pages detailing the current
research.
A search window will look through all citations
for the string entered. Clicking search will list only the citations
that match. Filter will list only those that match, and were listed
by the previous search. Merge will combine those that match with
the results of the previous search. Some time soon, this will be
expanded to allow regular expressions, search restricted to keyword fields,
ranking of matches, etc.
Coming Soon
On the agenda are better parsing of bib files, sanity
checking on cite keys, and a greatly improved search interface. The
management of citations should be made cleaner (check the code; it's scary!)
I'm toying around with the idea of setting up a web CGI script to accept
bib file entries, so that it would be easy to automagically update a monsterously
large common bib file; let me know if you'd be interested in tkbib having
a button to "update the Internet".
Known Bugs
The parser is really really weak. Be careful with
your bib files, and make backup copies of things until you're familiar
with the program and what it does. There should be better checking
to make sure you can't duplicate cite keys, but this code hasn't been finished.
There may be some Windoze problems with the file
selection box; I'm tracking this down now, to determine if the problem
is local, or more general. What seems to happen is that after accepting
a file to read in, the program loses keyboard and mouse focus, and cannot
regain it.