Tools for academics for building a Curriculum Vitae and other oft-requested documents.
Project description
vitae
A Python module for building curriculum vitae and other documents from a bibtex file. vitae leverages bibtexparser, LaTeX, and pandoc to streamline getting citations of your papers into the formats you need quickly without manual intervention. Of course, with many settings, it can be a bit tedious. I personally recommend setting up a jupyter notebook with the commands you regularly execute available there. Alternatively, you can call it from scripts or create a Makefile, I’ll be doing both for myself.
Purpose
I hate formatting citations. It’s tedious, and error-prone. Further, when I build my CV, I tend to muck it up and leave something out, mis-sort it, duplicate it accidentally, etc. So, I need a tool to do a better job with what ie a menial task.
Usage
makemycv
To do anything useful here, you must have LaTeX with BibTeX installed. If you don’t use LaTeX, this module isn’t the place to start. Sorry.
The first function here, makemycv, will take a few arguments and put sorted \bibentry commands into .tex files with names corresponding to BibTeX entry types. In doing so, you can then simply use an \input command to embed all of these citations right in your document in an enumerated environment.
You’ll need the following in the header of your LaTeX cv file.
\usepackage{bibentry}
\newcommand{\enquote}[1]{``#1''}
\makeatletter\let\saved@bibitem\@bibitem\makeatother
\usepackage[colorlinks=true]{hyperref}
\makeatletter\let\@bibitem\saved@bibitem\makeatother
The last 3 lines are only necessary if you want to use the hyperref package, which has some compatibility issues with bibentry.
Then put:
\input{articles.tex}
where you want articles listed, etc.
Then, with your maintained .bib file, in the same location as your cv (for now), open a python terminal,
>>> import vitae
>>> vitae.makemycv()
will make your article.tex file along with the other defaults (see the help on makemycv).
If you try vitae, please understand:
No warrantee. This is still a work in progress.
Please provide your feedback.
Please help! I can use help with additional portions.
If you don’t use LaTeX, this isn’t easy enough for you yet. It’s a long ways away. However, texblog has a decent start in writing a Résumé in LaTeX . It doesn’t include the paper inclusion trick being used by vitae.
“Other documents” is making some progress. It will look like zero until it’s live because I’m adding partial functionality as I can (see github logs), but the whole thing is needed for it to be useful.
write_bibs
The second function is write_bibs. This allows you to convert bibs with a bunch of constraints into a format that pandoc can output. It REQUIRES a full LaTeX and pandoc installation that works in your terminal environment.
Constraints include:
Since a year
Number
Types of publications
For instance:
vitae.write_bibs(bibfile = '/Users/jslater/Documents/Resumes/cv.bib',
bibliographystyle='aiaa',
outfile_name='try.html',
since_year=2008)
Summary
Please see the full help on each function.
It’s on pypi, but you can pip install the latest, and possibly non-working, version right now from github (I love bug reports!):
pip install git+https://github.com/josephcslater/vitae
Release notes:
1.0.0: You can now convert your bib citations to any format that pandoc can handle. I think.
0.1.1: You can now select only bibentries by a defined author. Note that authornames are not always all that unique. You need to ensure that all authornames are perfect for the selected author. That means initials, etc. I hope to use fuzzywuzzy for this someday- it’s a bit complicated and a judgement call.
0.1.0: First release. It works, it’s useful, it’s not done, but it does what I needed it for. You can now use \input statements with bibentry instead of typing your own citations by hand.
Future plans
Bug fixes when I find them. Any other suggestions?
What else would be nice?
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.