A friend of mine has been learning to use LaTeX (I’ll take credit for that) and has asked me about the packages I use for my resume. I have been working on this document for years now, ever since I first translated it from Word at the end of high school. It has suffered a nadir, such as the time I tried to use a really dark purple for headers, thinking it’ll help stand out. It has also come a long way to becoming a document I am proud to hand out to represent me. Here are some of the packages that helped create my resume and may help with yours.

1. Geometry

One of those standard packages that you’ll use no matter what, geometry lets you define the margins for the document.


2. AMS packages

Again, pretty standard. These packages by the American Mathematical Society provide many of the commands fundamental to creating beautiful math in LaTeX. You probably won’t need it in your resume, but I just think it’s good practice to include them anyway. The package amssymb provides a variety of mathematical symbols; amsmath provides handling for limits, multiline equations, and more; and amsfonts for the characters Computer Modern needs to display it all.

3. xhfill

xhfill lets you make rules across the page and customize them, to be thicker or to have colors or at what height to draw the rule. It’s a part of my headers.

4. xcolor

A requirement for xhfill, so if you have that you already have xcolor. This package makes it easier to use colors and to color text. It lets you define colors, such as deep purple through the command


and then you can use that definition instead of remembering the RGB or Hex code, through \color{deepPurple}. But you can easily mix colors, create shades, use wavenumbers and all this other phenomenal stuff. Just look at the introduction to the package documentation to get an idea.

5. fancyhdr

Fancyhdr is another standard package because it gives you extra flexibility on your headers and footers, allowing you to have separate information on the left, center and right of each. If you want to get rid of that top line, you can use the following code.


It’s been a long time but I believe this is where I learned the trick.

6. lastpage

I’m one of those people who have two page long resumes. At least, my master copy is. The one I send out is tailored to each position to shorten it. However, it’s helpful to keep track of the pages in case it does run over. This package gives you a command that returns the page number of the last page, so you don’t have to worry about updating the last page number when you add or subtract material. I use it in the footer to show Page 1 of 2 or 2 of 2. The command in conjunction with fancyhdr footers is

\rfoot{\thepage\ of \pageref{LastPage}}

7. multicol

I’ve adopted a multiple column design for my resume. It creates a professional look, reminiscent of scientific articles or textbooks, and prevents empty whitespace because the text is forced to use more of the horizontal space. It also automatically decides where to split your text to make even columns. The environment is

\begin{multicols}{#}%where # is number of columns
%your stuff here

8. enumitem

One of the issues with my resume is that it has a lot of manually defined\vspace{}in there to decrease the spacing between items in my lists. At times it’s not consistent because I had to manually decide how much space to remove. While sections may seem good individually, some sections were deleterious to the document flow by being slightly different. I recently found this package which allows you to customize lists, and one of the options is manipulating spacing between items. I’m currently implementing it in my resume to have a more consistent spacing.