Julius Plenz – Blog

Keeping a two-language LaTeX resume in sync

Today I finally had time to update my Résumé. So I imported an old version in a new Git repo and set out to do it right once and for all:

  1. Use one of the many CV classes available
  2. Devise a mechanism to keep the German and English version in sync

I settled for moderncv (see the ‘examples’ subdirectory for some nice examples). It’ll automatically create the headers, align all the CV items — and does a pretty good job at providing a simple yet good-looking and versatile \cventry command.

I’m now keeping a single cv.tex file that will get processed differently according to which file I want to compile. The Makefile looks like this:

DEFAULT: cv-en.pdf cv-de.pdf
cv-en.pdf: cv.tex
    pdflatex -jobname cv-en cv
cv-de.pdf: cv.tex
    pdflatex -jobname cv-de cv

The -jobname argument will influence where the output file will be saved. Also, it is available from within the LaTeX document as such:

\usepackage{etoolbox}
\usepackage{ifthen}

\newtoggle{de}
\newcommand{\de}[2]{\iftoggle{de}{#1}{#2}}

\ifthenelse{\equal{\detokenize{cv-de}}{\jobname}}{
  \toggletrue{de}
}{
  \togglefalse{de}
}

So if the job name is cv-de, then the de toggle will be true. With the little \de helper function, I can now use something like

\title{\de{Lebenslauf}{Résumé}}

or

\cvlistdoubleitem{
  \de{Deutsch (Muttersprache)}
     {German (native speaker)}
}{
  \de{Englisch (fließend)}
     {English (fluent)}
}

throughout the document. A simple distrib rule that contains a scp command to upload the PDFs to a website, and I’m done for today.

Oh, by the way: If you know a company in the Dubai or Abu Dhabi region that might be interested in giving me a two-month internship opportunity — please contact me! CV available on request ;-)

posted 2012-09-30 tagged latex