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.