latex — professional Résumé layout made simple 

Résumé, Curriculum Vitae or simply CV is an important brief about your professional life. It is likely to be one of the first contacts with a prospective employer. Curriculum Vitae means course of life in Latin. So what exactly should a Résumé contain and how detailed should it be? There is no silver bullet answer. A fair amount of variability exists in Résumé expectations across different employers and different countries. For instance, career advisors in Australia tend to recommend three to four page resumes and that is what I have used for a while. Recently however, I have switched to a European style single-page resume. This article is not so much about the actual Résumé content, as it is about professional layout and formating. This is where the LATEX Project comes into the picture. LATEX is a programming language used for technical publications. Simply put, it uses the TEX engine (a set of complex rules) to figure out how to make your publications look great! Given a good document class file all you need to provide is the actual content.

To get started download the LATEX Résumé source: resume.tex as well as this Résumé document class: resume.cls. The credit for these files goes to Michael DeCorte for the Résumé style file and to Chris Paciorek for the Résumé template. Lets compile these LATEX sources using the LATEX interpreter from the Bash shell as follows.

latex resume.tex

The above command produces number of auxiliary files as well as an output device independent file format (DVI) file, resume.dvi. To view this file you can use KDE DVI file viewer, KDVI. To convert the DVI file into a PostScript (PS) file or a PDF file the following commands are used, respectively.

dvips resume.dvi
dvipdf resume.dvi

The output of the first command should be resume.ps while the output of the second command should be resume.pdf. However, on some Linux systems the output of the dvips, for example, gets redirected by default to the printer (via a lpr pipe) as is shown below.

This is dvips(k) 5.95a Copyright 2005 Radical Eye Software (www.radicaleye.com)
'TeX output 2007.12.19:2107' -> |lpr
<tex.pro><texps.pro>. <cmmi10.pfb><cmr7.pfb><cmsl10.pfb><cmsy10.pfb>
<cmbx10.pfb><cmr10.pfb><cmcsc10.pfb><cmbx12.pfb>[1] [2]

You can overcome this by explicitly specifying the output PostScript or PDF file and using the following commands instead.

dvips resume.dvi -o resume.ps
dvipdf resume.dvi resume.pdf

OK, lets take a look at what the output looks like. Here is a preview of the Résumé format I use.

Latex Résumé Printout

Getting to this point successfully should be easy. Lets move on to editing of LATEX sources. Any ASCII file editor will do the job, but to make your job considerably easier I recommend a KDE app called Kile. Kile is a great choice especially if you prefer GUI-based editors over console ones. Kile offers many great features, such as:

  • Rich and easy to use GUI with syntax high-lighting
  • Advanced highly configurable compilation and build tools
  • Auto-completion of LATEX commands
  • Various LATEX document templates and wizards
  • Project management very useful for larger LATEX publications
  • Access to various help resources

Use your favourite package manager to install Kile, f.e.

sudo yast2 --install kile 	# in Novell's openSUSE
sudo yum install kile 		# in RedHat's Fedora
sudo apt-get install kile 	# in Ubuntu

Once installed, run Kile from Office » Kile applications menu, or simply from your shell as follows.

kile resume.tex

Kile GUI screenshot is shown below.

Kile Editor — Latex Résumé

To compile the resume in Kile use Build » QuickBuild as shown below.

Kile Editor — Latex Résumé

If messing around with a GUI IDE is not your cup-a-tea, then I recommend the console-based Vim editor. If it is not already installed, use one of the following commands to install it.

sudo yast2 --install vim*       # in Novell's openSUSE
sudo yum install vim* 		# in RedHat's Fedora
sudo apt-get install vim* 	# in Ubuntu

Then, to open the Résumé source code in the Vim editor, simply type the following command.

vim resume.tex

Granted, Vim does take a little getting used to, especially at first. This is truly offset by how quick things get done in Vim after you gain some proficiency with it. I highly recommend it. Here is a Vim screenshot.

Vim editor — Latex resume

So what's left? Ahhh, just learning the LATEX programming language. Easy! For this purpose there is an excellent, popular and best of all free LATEX reference entitled The Not So Short Introduction To LATEX2e, which I also host locally for your convenience: lshort.pdf. Whilst for some topics it is possible and enjoyable to learn simply by reading about them (from start to end), LATEX is not one of them. The simplest and most effective way to learn LATEX is to start writing articles and look-up concepts as they come-up. The other way is so boring that you'll get disinterested very quickly.

Note that LATEX2e sources are platform independent and (at least in theory) should compile without problems on non-Linux hosts. If you succeed at this, please leave a comment below.

To finish up, here are the compiled files and LATEX sources again, as well as a some useful links:

Hope you have enjoyed this brief introduction to Résumés with LATEX!


Did you find the above information useful and interesting? If so, please support this site by using the blog directory links at the bottom of this page. Thanks for your support!

If you have any Linux related problems or questions then please feel free to post them on our Linux Forums: http://linux.dsplabs.com.au/forums.




VPS Hosting Referral Code DZZCC3

Add me to Technorati Favorites Vote for me on Blog Skinny Vote for me on Blog Catalog

19 Responses to “latex — professional Résumé layout made simple”

  1. Lunar_Lamp Says:

    I see in your tex document you have used a horizontal fill to space out the Contact Information details. I think a nicer solution than specifying a static horizontal fill is to use the following:

    Your line 22-26:
    \begin{tabular}{@{} l @{\hspace{38mm}} r}
    Signal Processing Laboratory & +61 4 1215 1771 \\
    Griffith School of Engineering & kwojcicki@griffith.edu.au \\
    Griffith University, Nathan Q4111, Australia & http://kamil.dsplabs.com.au\\
    \end{tabular}

    Replacing this with a more "proper" alignment can allow you more flexibility with paper-sizes etc:

    \begin{tabular*}{1.0\textwidth}%
    {@{\extracolsep{\fill}}lr}
    Signal Processing Laboratory & +61 4 1215 1771 \\
    Griffith School of Engineering & kwojcicki@griffith.edu.au \\
    Griffith University, Nathan Q4111, Australia & http://kamil.dsplabs.com.au\\
    \end{tabular*}

  2. Bourbonnais Says:

    Great article (although a little bit complex for me).

  3. Gargoyle Says:

    Great-looking resume. However, I want to change the paper size to "letter" or 215.9 mm x 279.4 mm (yep, I'm in the US :)

    I couldn't find any place to change it in resume.cls. How do I do that?

  4. LaTeX Resume Examples | Derek Hildreth's Blog Says:

    […] linux.dsplabs.com.au (Great tutorial!) […]

  5. Solkeun Says:

    For letterpaper, use /LoadClass[letterpaper]{article} instead of /LoadClassWithOptions{article} in resume.cls. Then, add letterpaper in \documentclass[margin,line,letterpaper]{resume} in resume.tex.

  6. Tim Says:

    Nice resume. Any idea why the resume class doesn't work with bibtex? I have all my publications in a bibtex database and would rather it format them than do it manually. All I get is:

    LaTeX2e
    Babel and hyphenation patterns for english, usenglishmax, dumylang, noh
    yphenation, arabic, basque, bulgarian, coptic, welsh, czech, slovak, german, ng
    erman, danish, esperanto, spanish, catalan, galician, estonian, farsi, finnish,
    french, greek, monogreek, ancientgreek, croatian, hungarian, interlingua, ibyc
    us, indonesian, icelandic, italian, latin, mongolian, dutch, norsk, polish, por
    tuguese, pinyin, romanian, russian, slovenian, uppersorbian, serbian, swedish,
    turkish, ukenglish, ukrainian, loaded.
    (/Users/tim/texmf/tex/latex/resume/resume.cls
    Document Style `resume' .
    Document Class: resume 2000/05/19 v1.4b Resume class
    (/opt/local/share/texmf-dist/tex/latex/base/article.cls
    Document Class: article 2005/09/16 v1.4f Standard LaTeX document class
    (/opt/local/share/texmf-dist/tex/latex/base/size10.clo))
    No auxiliary output files.

    )
    No file resume.aux.
    No file resume.bbl.


    [1{/opt/local/share/texmf/fonts/map/pdftex/updmap/pdftex.map}]

    LaTeX Warning: There were undefined references.

    Any help would be greatly appreciated.

  7. Tim Says:

    The problem lies on line 203:
    \nofiles % resume's don't need .aux files
    Comment out this line so it looks like:
    %\nofiles % resume's don't need .aux files
    or simply delete it and voila bibtex works.

  8. Kamil Says:

    Thanks Tim.

  9. Krishnan Says:

    Hi, thanks for the stuff. this is indeed helpful. There is however a problem when i use bibtex to generate the publication list. I have of course, done the needful to generate the aux file. After running bibtex and latex, i get a "*" all by itself on the next line after the publications header. Then the list of publications comes without any mistake. How do i remove this lonely "*"?

  10. Kamil Says:

    Hi Krishnan, have a look at Tim's comments above. Cheers, Kamil

  11. josh Says:

    Excellent layout. I've had to change a few things around. But I'm also looking for a way to insert page numbers. I've tried modifying the .cls pagestyle, and in the .tex as well. But so far no results. Any advice would be appreciated.

    Thanks

  12. Random Walk of Life » Blog Archive » Resume, Webpage and More Says:

    […] bad. Any word doc would have easily put this Resume to shame. Thus, looking around, and found this excellent guide to writing Resumes in […]

  13. Free Resume Maker | Blogger Says:

    Excellent resume layout you have there. It's definitely a great share to IT job seekers.

  14. Ana Says:

    I would like to add page numbers, except on the first page. Suggestions would be greatly appreciated.

    Thanks

  15. Kamil Says:

    Hi Ana, try setting the \pagestyle{} option like so:

    \pagestyle{empty}

    \pagestyle{plain}

    see: http://web.image.ufl.edu/help/latex/intext.shtml

  16. David Says:

    Thanks for posting this! The template produces an absolutely beautiful layout, the best I've seen anywhere.

  17. Mouna Says:

    Wonderful example. thanks
    I was wondering if there is a way to add a footer or a header bellow or above the main text. Please let me know the way to do it.
    Thanks

  18. Kamil Says:

    Hi Mouna, to be able to add header or foother you'll have to modify resume.tex and/or resume.cls … and to do that you'll need some proficiency with LaTeX — take a look at 'Not so short introduction to LaTeX'. A quick and dirty hack for a footer would be to place \vspace{1cm} command to achieve vertical space of 1 cm at the end of last section on each page (adjust 1cm manually to suit). This is obviously quite painful — to do it properly you'll need to learn LaTeX.

  19. Mouna Says:

    Thanks Kamil, looks great.

Leave a Reply