I'd like to make a template of sorts for a Curriculum Vitae. While there seem to be plenty of examples online of CVs using TeX, I'm looking for an easy way to include everything in the file, but compile one of the following:
- Abbreviated (~1 pg) CV
- Academic CV (most things, but focusing on the academic side)
- Annotated CV (includes longer descriptions of various tasks)
- Exhaustive CV (everything!)
- Resume (less academic, more job experiences and skills)
Essentially, I'd like to write all these things down once and not have to re-write everything whenever I need to submit a different kind of CV or resume.
It'd be neat to define either lists or entries of "publications," "hobbies," "academic_employment" and "nonacademic_employment", and output whatever things make sense given the type of CV or resume I want to make. Perhaps these entries could look like the following: (recognizing that underscores aren't great for command names :-) )
\cv_name{John Doe}
\cv_phone{777-777-7777}
\cv_email{JohnDoeIsCool@TheDoeDomain.com}
\cv_website{http://www.WebsiteOfJohnDoe.com}
\cv_degree{Big State University,Computer Science,Bachelors,1995}
\cv_degree{Big State University,Math,Bachelors,1995} % double-major?
\cv_degree{University Of Big State,Math,PhD,1999}
\cv_job{Cashier,Joe's Bakery,01/01/1990,01/01/1995,555-555-5555,{I was a cashier but got tired of it.}} % optional annotation?
\cv_job{Head Baker,Joe's Bakery,01/01/1990,01/01/1995,555-555-5555}
\cv_current_job{CEO,BakeriesAreUs,01/01/1995,666-666-6666} % no end date needed for current job
\cv_publication{My Autobiography,\cite{myBook}} % incorporate with BibTex?
\cv_award{Some Scholarship,1993} % no annotation
\cv_award{Nobel Peace Prize,2005,{I love humanity!}} % annotated
Output could perhaps use flags and if statements, e.g. (in pseudocode):
make_academic_cv = true
output_name()
output_position()
output_contact_info()
output_education_background()
if (make_exhaustive_cv) or (make_resume) or (make_academic_cv) then
output_academic_employment()
endif
if (make_exhaustive_cv) or (make_resume) then
output_nonacademic_employment()
endif
if (make_exhaustive_cv) or (make_academic_cv) then
output_academic_awards()
endif
if (make_exhaustive_cv) or (make_academic_cv) then
output_publications()
output_conferences_and_presentations()
endif
if (make_exhaustive_cv) then
output_hobbies()
output_social_media_contact_info()
endif
Has anyone done anything like this before?
One possible solution would be to adopt the BibTeX or glossaries model of having a "database" file of various kinds of entries, and then referencing the entries as needed in the main file. I haven't found a package to do this, but I'm definitely open to suggestions!
I am not skilled enough to know how to do this myself, but could work with somebody else's code, if it were similar enough to what I'm looking to do. Perhaps it would be easier to show how to do just one or two of those macros (e.g. "\cv_degree{}").
Thanks in advance!
\newif
,etoolbox
's booleans), it is easy to control output. Then a simpleMakefile
can set the switches:make long
,make superlong
, etc. I don't go quite that far, relying instead on separate template files (e.g., 'letterpaper' vs 'A4') and input files ('publications', 'conferences', 'teaching') in order to avoid overly complex including and excluding or environments.etoolbox
to process a CSV list where each item is a separate file name that gets\input
-ted. Then run something like:pdflatex -jobname=csvlist-include "\RequirePackage{etoolbox}\forcsvlist{\listadd\mylist}{csvlist-include-c.tex, csvlist-include-b.tex}\input{csvlist-include.tex}"
. That way, you can arbitrarily change the order of what gets included (or not). You don't want to type that each time, however, which is why I suggested aMakefile
.