Preparing your CV using LaTeX and BibTeX


LaTeX and BibTeX are excellent tools for typesetting academic papers and managing citations. They seem to be ideal choices for preparing an academic CV, and I found suggestions for doing this (see links below), but none worked exactly how I wanted them to. In particular, I wanted to separate my references into various categories: first author publications, co-author publications, talks, etc. This is not trivial to do using base BibTeX since a governing assumption seems to be that documents have a single bibliography.

I found Dario Taraborelli's excellent (non-BibTeX) article on TeXing your CV, and decided to adapt his template to work with BibTeX. I also decided, somewhat arbitrarily, to use plain LaTeX instead of XeTeX, mostly because I was working on a ten year old machine with a basic LaTeX installation. Most modern TeX distributions (texlive, miktex, mactex) bundle XeTeX, and you may find using XeTeX, following Dario's instructions, to be more useful. The key advantage to XeTeX is that you can use any system font, whereas LaTeX limits you to its own fonts, the installation of which can be a bit painful.

In order to use BibTeX, along with an existing citation database, I used the bibentry package, which is part of the natbib package. You will need to have this package installed.


Below are two versions of the template:


Each contains a TEX file, a BIB file, and a Python script. In cv_template, the TEX and BIB files are simplified, with some imaginary content. The cv_rjonnal file contains a TEX file containing my actual CV and a BIB file containing my dissertation references. More on the Python script later (see "Producing wiki markup..." below).

Compiling the LaTeX source

Assuming you have a LaTeX distribution with pdflatex, to run the example and generate the PDF output, download the TEX and BIB files into a single directory and do the following. (Of course you can use latex instead of pdflatex if you want to generate a DVI file instead.)

pdflatex cv_template.tex
bibtex cv_template
pdflatex cv_template.tex
pdflatex cv_template.tex

If you are working with cv_rjonnal instead, replace cv_template above with cv_rjonnal. You should wind up with a PDF version of the CV.

Producing WikkaWiki markup from LaTeX source and the BBL auxiliary file

I have also written a Python script to convert your LaTeX CV into WikkaWiki markup. It is included in the tempate TAR.GZ files above, or you may download it here. (If you download it here, please change the extension from .py.txt to .py.) I used the Python script to generate the CV on this site. Wiki markup is nice for a wiki, obviously, but it's also nice for a plaintext version of your CV, since the markup is quite readable.

The Python script is inelegant, and contains lots of hacks and kludges. It would be a stretch to call it a parser, though it does build a rudimentary parse tree from the LaTeX source, and follows it up with a bunch of ad hoc fixes. There are three lists and a dictionary near the top of the script which express some basic replacement rules. If you run into problems, more than likely it's because these rule sets are insufficiently rich. Indeed they're just rich enough to work on my template .tex file. If your .tex file is more complicated you'll probably have to enrich the rule sets. If you wind up with some stray LaTeX markup, you can probably get rid of it with detex.

After you have generated the PDF using the commands above, your directory will contain a file called cv_rjonnal.bbl, which contains the formatted bibliography references generated by the \publication macro in the .tex file. (Strictly speaking, in order to generate the wiki markup you needn't run the last two pdflatex lines.) If you have cv_rjonnal.tex and cv_rjonnal.bbl, and you have downloaded the Python script, you can generate the wiki markup as follows, assuming you have Python installed.

To print the wiki markup to the screen:

python cv_rjonnal | more

To save it to a text file called wiki_output.txt:

python cv_rjonnal > wiki_output.txt

The output of the Python script, as applied to the cv_template.tex LaTeX source above, looks like this (approximately--I took out some \n's to save space):

======My Name Here====== 
//My title here//, Department, Institution
Street address
City, State, Zip, Country
Phone: +1 234 567 8900

====Areas of specialization==== 
Pranks ""·"" Foul jokes ""·"" Ennui

**2011** PhD in Super Complicated Studies, Excellent University (expected)
**1995** BS in Various Kinds of Experimentation, Liberal Weirdo College

====Honors & awards==== 
**2011** Award 1, Award agency 1
**2007** Award 2, Award agency 2

**2008** U.S. Patent 1,234,567,890,123. "Method and apparatus something incredibly ingenious but totally unmarketable".

====Publications & talks==== 
===Journal articles, first author=== 
John A. Doe and Another E. Person. This is the title of my second publication. //Journal of Many Papers//, 11(10):1--20, **2011**.
John A. Doe and His Esteemed-Advisor. This is the title of my first publication. //Experimental Journal with Article-Level Metrics//, 10(3):1001--2000, **2010**.
===Journal articles, co-author=== 
John A. Doe and A. Reluctant Collaborator. This is the title of a co-authored publication. //An Even More Experimental Journal with Paragraph-Level Metrics//, 10(3):1001--2000, **2010**.
===Conference presentations=== 
John A. Doe. Paragraph-level metrics are old-fashioned: on the use of character-level metrics (presentation). Some Conference or Other, **2011**. 

The contents of the wiki_output.txt file can be pasted into a wiki editor and, hopefully, you're done.

Related pages

  1. An alternative method using the multibib package: This one works just as well as mine, allows multiple bibliographies, and is as easy to use. Highly recommended.
  2. A simpler approach if you have just one category of publications:
  3. A method that uses a PHP program called bibtex2latex converter to genreate LaTeX code from a BibTeX file, which can then be included in the CV source using the \input mcaro:
  4. A page describing how to use the bibentry package with an example: His example is a Ph.D. introduction requiring its own References section, which could easily be adapted to make a nice CV.
  5. The bibentry package documentation: It is a brief and excellent explanation on how to use bibentry.


There are 2 comments on this page. [Display comments]

Valid XHTML 1.0 Transitional :: Valid CSS :: Powered by WikkaWiki