LaTeX CV formatting

My \(\LaTeX\) CV formatting has been put into repositories since this post. The materials remain at the links below, but you can find the more up to date CV (the one I actually use) at this GitHub repository.

I’ve recently spent quite a bit of time trying to get my CV formatted exactly the way I want, using \(\LaTeX\). Those who know me, know that I love \(\LaTeX\), probably the point of being a snob about it…so naturally my CV has to be made with \(\LaTeX\). The final product can be found here.

The bulk of the CV was pretty easy to work up, I just did most of it manually with the help of a just a few critical packages (e.g., tabularx, enumitem). What was important to me though was to develop an easily maintainable method for keeping my CV up to date with publications and presentations. I use Zotero to manage references, so exporting the references to a .bib file to be processed in my \(\LaTeX\) CV seemed like an obvious place to start.

Below is a style file I have created, providing the package cvlist, in order to take the exported .bib file containing all of the papers and conferences I have been a part of and format them into a beautiful \(\LaTeX\) list. To do so I’m using \(\mathrm{Bib}\LaTeX\) to process the .bib file.

I now have another package for my CV that provides the class academic_cv and a package academic_cv_reflist. You can find materials at this GitHub repository.

There were a few things that I wanted to have my CV list set up for:

  1. multiple sections for different types of “references”, e.g., peer reviewed, other publications, and conferences proceedings
  2. reverse counting of items within each section, such that the most recent items come first and have the highest number
  3. the ability to have publications in various states (e.g., submitted, in prep) and format them properly into the reference
  4. provide links (formatted as a clean single word “[link]”) for items which have a URL included in the .bib file

This is mostly achieved within the style file and package provided by cvlist. The code comes from various places all over the internet (mostly stackexchange though <3), and I have tried to attribute where possible. The package can be found here.

The only things required in the actual CV .tex file then are to call the package, add the bib resource, and define the section filters. I have chosen to define the section filters in the actual .tex file, but they could have been switched into the style file by default too.

\usepackage{cvlist}
\addbibresource{../CV_biblist.bib}

% define the filters that will separate out the sections printed
\defbibfilter{peer}{type=article and not subtype=nopeer}
\defbibfilter{nopeer}{not type=inproceedings and subtype=nopeer}
\defbibfilter{conf}{type=inproceedings}

Finally, the reference sections are printed with calls

\nocite{*}
\section*{Refereed Publications}
\printbibliography[filter=peer,heading=none]

\section*{Other Publications}
\printbibliography[filter=nopeer,heading=none,resetnumbers]

\section*{Scientific Presentations with Abstracts}
\printbibliography[filter=conf,heading=none,resetnumbers]

I don’t expect that my solution will solve the problems of anyone trying to do something similar to what I have done, but I do hope it provides a good starting point. The package can be found here.

Updated: