resumetex
ResumeTex is a modular and a multilingual LaTeX CV template for making application tailored CVs on the fly.
Backstory
Until a couple of years ago, I used the CareerCup’s resume template for the most of my applications. I also used Europass template for some other niche purposes. But as my curriculum vitae grew bigger and my applications to different positions required emphasizing certain experiences at the expense of others, it became quite the struggle to keep track of personalized resumes for different positions. Even writing customized resumes from a master CV that contains all of one’s experiences, albeit faster, proved to be unsustainable with these templates for the reasons below:
- For one, I used Microsoft Word version of the CareerCup template as I did not know LaTeX when I first started writing my CV. Sections were organized as table cells in a Microsot Word 97-2003 format which made adding, modifying, and removing sections from the resume a horrific nightmare.
- Furthermore, using either of templates brought about a danger of vendor lock-in. CareerCup Microsoft Word template rendered inconsistently with other editors like LibreOffice Writer and Europass template can only be modified through the platform of the provider of this template.
- Lastly, as time goes by, one ends up with multiple master CV’s of different nature. For me, I ended up with at least two: An academic master CV and a professional master CV. The reason behind this is that, depending on the nature of the position one is applying to, one cannot always ommit sections and add others and call it a day. Different audiences require different styles of writing as well as levels of detail on certain sections and elements.
For those reasons, and after I felt sufficiently confident using LaTeX, I decided to switch to a LaTeX-based template. I found about the wonderful Resumake website, chose the first template, and started building my CV from there. Once done, I downloaded the resulting LaTeX project, and started building on it from there. While it did not completely solve my problems, it did make creating customized resumes easier and more consistent. I kept perfecting it for about two years, but I always knew that I can do better.
Enter ResumeTex
From the difficulties explained before was born the idea of making a modular LaTeX CV template. The basic file structure of this template looks roughly like this:
To understand this structure, Let us first explain the simple principles guiding this design:
locale-n
represents on translation of your CV. This could been
for English,ar
for Arabic and/or whatever you need.- Each directory underneath specific translation is a section in the CV. The names of the directories are preceeded with a number to make ordering more obvious and visible to the naked eye.
- Underneath each subsection, there are subsection directories each representing one element of the section. The naming of each subsction directory is preceeded with either a date format that starts by the year or a number to ensure correct ordering in your favorite text editor’s file eplorer.
- Each subsection can contain multiple variations of the same element in your CV (e.g.
default.tex
,short.tex
,long.tex
,pro.tex
,academia.tex
, etc.) depending on how much the writer would like to elaborate on it and how relevant it is in the specific CV that is being written. For example, you might want to use the short variation of publications in a professional CV while use the long ones in an academic CV. - Finally,
cv-n.tex
represents a variation of your CV under the respective locale. You can create as many variations as you would like including, excluding, and mixing different variations of your CV elements. Typically, a CV variation would not have content in itself but rather reference content from subsection directories inside its locale. Other than that, the CV variation may only contain styling and template customizations. For example, this what a typical Experince section would look like insidecv-n.tex
:
- While an experience variation like
short.tex
might look like this:
Taking Dwight K. Schrute III as an example for the ResumeTex template (just like Resumake because we are fans of The Office), this is what the ResumeTex English template looks like:
Right-to-Left: ResumeTex Arabic Template
Additionally, ResumeTex cannot only be adapted to Right-to-Left languages, but it can also be configured to mix RTL and LTR languages in the same CV. Suppose that you want to write your CV in Arabic but still want to include some English words like technical terms, company names, or any other non-translatable words. This can be done by defining Arabic as the default language in your cv.tex
and set English as the fallback language using babel
package. You can also set the main font for the fallback language and for Arabic via fontspec
package. These are the lines that should be added to the cv.tex
file:
بالإضافة إلى ما سبق، لا يمكن تكييف ResumeTex مع اللغات المكتوبة من اليمين إلى اليسار وحسب، ولكن يمكن أيضًا تهيئتها لمزج لغات تكتب من الجهتين في نفس السيرة الذاتية. لنفترض أنك تريد كتابة سيرتك الذاتية باللغة العربية ولكنك لا تزال تريد تضمين بعض الكلمات الإنجليزية مثل المصطلحات الفنية أو أسماء الشركات أو أي كلمات أخرى غير قابلة للترجمة. يمكن القيام بذلك عن طريق تحديد اللغة العربية كلغة أساسية في ملف cv.tex
وتعيين اللغة الإنجليزية كلغة احتياطية باستخدام حزمة babel
. يمكنك أيضًا تعيين الخط الرئيسي للغة الاحتياطية وللغة العربية عبر حزمة fontspec
. هذه هي الأسطر التي يجب إضافتها إلى ملف cv.tex
:
Now, everything on the CV will be rendered from right to left unless specified otherwise. If you have some words that need to be rendered in a different language you need to explicitly tell LaTeX using \foreignlanguage
. For example, a CV element in the publications section would look like this:
الآن، سيتم عرض كل شيء في السيرة الذاتية من اليمين إلى اليسار ما لم يتم تحديد العكس. إذا كانت لديك بعض الكلمات التي تحتاج إلى العرض بلغة مختلفة، فأنت بحاجة إلى إخبار LaTeX صراحةً باستخدام \foreignlanguage
. على سبيل المثال، يمكن كتابة أحد عناصر السيرة الذاتية في قسم المنشورات الأكاديمية كما يلي:
Taking Dwight K. Schrute III once again as an example for the ResumeTex template, this is what the Arabic template looks like:
بأخذ دوايت ك. شروت الثالث مرة أخرى كمثال لنموذج ResumeTex، هذا ما يبدو عليه نموذج اللغة العربية:
Make Your Own
Compiling the project is really straightforward. You have two options:
Option 1: Overleaf
This is the simplist option. If you are an Overleaf user, you can follow these steps:
- Download the the template from GitHub as a
.zip
file. - On Overleaf, select New Project > Upload Project and upload the
.zip
file you just downloaded. - Open the project and change the compiler from
pdfLaTeX
toLuaLaTeX
in the Settings section inside the Menu pane. - You should now be able to compile with no problem.
Option 2: On your Machine
Alternatively, compiling the project is really straightforward if you prefer working on your own machine. First, make sure that you set up your machine with the following requirements:
- Tex Live Distribution: You can get it from here.
- ResumeTex Template
You can then run lualatex
command inside the directory containing your CV variant to compile your into a PDF. For example, running these commands will compile the the English ResumeTex template into a PDF inside the same directory:
I hope this helps someone simplify their CV making and accelerate their applications process. The template can be found on GitHub. Any feedback or suggestions are welcome.