Contents
1. Purpose
2. Contents
3. Prerequisites
4. Usage
5. Input specifications
5.1 - Allowed characters
5.2 - Special characters
5.3 - Available cards
5.4 - Unknown information
5.5 - Aliases
5.6 - Résumé layout
1. Purpose
Create a fancy résumé file for research applications only. Three languages are predefined: English, Spanish and Catalan. The user must collect all relevant information in a specific format (see section 5). Then, writeLatexCV converts it into a nice LaTeX format file and pdfLatex is used to convert it to PDF. LaTeX intermediate file is kept for further modifications, if needed.
2. Contents
The contents are described hereafter.
- LICENSE - MIT license
- writeLatexCV v1.1.1 - User Guide.pdf - User manual
Directory matlab
- libLatexCV.m - MATLAB library file
- texFormat_utf8.m - MATLAB function with UTF-8 encoding (for Unix OS)
- texFormat_win1252.m - MATLAB function with Windows-1252 encoding (for Windows OS)
- writeLatexCV.m - MATLAB main program
Directory sample
- Connor_John_EN.inp - Input sample
- Connor_John_EN.pdf - Output PDF sample
- Connor_John_EN.tex - Intermediate LaTeX file
- readme - Steps to get sample pdf file
3. Prerequisites
Software:
- MATLAB
- pdfLatex1
LaTeX packages:
- array - New column types
- babel - Dictionary
- extsizes - Extra font sizes
- fancyhdr - Modify headers
- fontenc - Recommended font encoding
- geometry - Page geometry
- hhline - Black lines over colored cells
- hyperref - Add links and bookmarks
- lastpage - Get total pages
- lmodern - Latin Modern fonts
- longtable - Table spans multiple pages
- marvosym - For €, β and @ symbols
- multicol - Marge columns
- multirow - Marge rows
- textcomp - For ¥ and $ symbols
- xcolor - Color in tables
writeLatexCV was tested under:
- openSUSE Leap 42.3 with pdfTeX Version 3.14159265-2.6-1.40.17 (TeX Live 2016/TeX Live for SUSE Linux) and MATLAB R2016b (9.1.0.441655) 64-bit
- Windows 10 64-bit with pdfTeX Version 3.14159265-2.6-1.40.18 (MiKTeX 2.9.6500 64-bit) and MATLAB R2016a (9.0.0.341360) 64-bit
- macOS Catalina 10.15 with pdfTeX, Version 3.14159265-2.6-1.40.20 (TeX Live 2019) and MATLAB R2019b (9.7.0.1190202) 64-bit
1 Under Windows or macOS pdfLatex comes with MiKTeX, under Unix OS install it from the official repository.
4. Usage
writeLatexCV(input, output, language, currency, font_size, blue_links, us_date, us_paper)
All input arguments are optional:
input: input file name1 with résumé data (default iswriteLatexCV.inp)output: output PDF file name1, without extension (default iswriteLatexCV)language: language option, available options are:currency: currency option, available options are:EUR- euros (€, default)
USD- dollars ($)
GBP- pounds (£)
JPY- yens (¥)font_size: font size in output PDF, available options are 8, 9, 10, 11 (default), 12, 14, 17 and 20blue_links: colored links, available options are:false- links are black, just as other text (default)
true- links are blue, thus standing out from other textus_date: date format in front page, available options are:false- European date format, for example 24th of May, 2010 (default)
true- American date format, for example May 24th, 2010us_paper: paper size, available options are:false- A4 paper size is used (default)
true- letter paper size is used
The order of input arguments is strict, therefore, to change the paper size, us_paper, you must introduce all input arguments. For example, this command sets a user-specified option for the input and output names and the language but other options are set as default.
writeLatexCV('John_CV_ES.inp', 'John_CV_ES', 'ES')
Next command assigns all input arguments as the default values, therefore, it is the same as writeLatexCV().
writeLatexCV('writeLatexCV.inp', 'writeLatexCV', 'EN', 'EUR', 11, false, false, false)
Input arguments can also be introduced following the keyword syntax, that is keyword = value.
writeLatexCV('input = writeLatexCV.inp', 'output = writeLatexCV', 'language = EN', 'currency = EUR', 'font_size = 11', 'blue_links = false', 'us_date = false', 'us_paper = false')
With this syntax, input arguments can be introduced follow any order and are still all optional. For example, this command uses all input arguments by default but the currency and paper size option:
writeLatexCV('currency = USD', 'us_paper = true')
Due to differences in character encoding among OS, it is strongly recommended to run writeLatexCV in the same OS in which the input file was created.
1 Relative or absolute paths are also accepted.
2 When language is EN superscript is automatically used when a number is followed by st, nd, rd or th in the input file.
3 When language is EN amounts of money in the generated résumé are written as $1000, instead of 1000 $.
5. Input specifications
5.1 - Allowed characters
The user must gather all relevant information in a ASCII input file according to the format specified in section 5. The following characters can be used.
- Lower letters [a-z]
- Upper letters [A-Z]
- Numbers [0-9]
- Spaces
- Special lower vowels: áéíóú àèìòù äëïöü âêîôû ãõ
- Special upper vowels: ÁÉÍÓÚ ÀÈÌÒÙ ÄËÏÖÜ ÂÊÎÔÛ ÃÕ
- Special letters: ñ Ñ ç Ç β
- Punctuation symbols: ¡!¿?;:,.·"'´ºª~_
- Math symbols: /|\<>^*-+=()[]{}
- Other symbols: €$£¥@&#
% cannot be used in text. Characters # and + can be used in text but not at the beginning of the line. See section 5.2 for more information on these symbols.
5.2 - Special characters
The following characters have a special meaning and must be used according to this manual.
- Character
%is used anywhere in a line to write comments - Character
#is used to introduce new cards (section 5.3) or unknown information (section 5.4) - Character
+is used to introduce a new item inside a card. See section 5.3 - Character
$is used to introduce a new alias. See section 5.5 - Character
=is used to define an alias. See section 5.5 - Character
^{}is used for superscript1 in text, for examplex^{2}will producex2 - Character
_{}is used for subscript2 in text, for examplex_{i}will producexi
1 Nested superscripts are not allowed.
2 Nested subscripts are not allowed.
5.3 - Available cards
The symbol # introduces a new card. Table I lists all available cards along a brief description and the information in each card.
Card names in plural can have any number of items in it. For example, several books can be introduced into the BOOKS card. Items into to the same card must be separated with a + character, but NOT between the last item and the next card. Card names in singular only have one item. For example, only one company is allowed in COMPANY card. The information included in each card (or item in card) must follow a specific order (given by the third column of Table I).
All cards, except PERSONAL card, are optional and do not follow any specific order. However, each card, if used, may appear only once. If a card is used, all the information given by the third column of Table I must be filled, see section 5.4) for unknown information. Cards and information in cards can start in any column (i.e. blank spaces before/after can be added).
Table I: available cards, descriptions and specific information
| Card | Description | Information |
|---|---|---|
| #ALIASES | Alias definitions | Any number of aliases can be defined, see section 5.5 |
| #BACKGROUNDS | Academic background |
|
| #BOOKS | Published books |
|
| #CODES | Developed codes |
|
| #COLLABORATIONS | Collaborations with other groups or universities |
|
| #COMPANY | Current company |
|
| #COURSES | Teaching courses at university |
|
| #DEVELOPER_APPS | Software for developers |
|
| #GENERAL_APPS | General software |
|
| #GIVEN_COURSES | Short courses given (see COURSES card for full courses) |
|
| #GIVEN_SEMINARS | Seminars given |
|
| #GIVEN_WORKSHOPS | Workshops given |
|
| #INTERNATIONAL_ CONFERENCES |
Participation in international conferences |
|
| #INTERNSHIPS | Internships in other centers/universities |
|
| #JOBS | Professional experience |
|
| #LANGUAGE_ COURSES |
Language courses received |
|
| #LANGUAGE_ TITLES |
Language titles |
|
| #LANGUAGES | Known languages |
|
| #MATERIALS | Published academic materials |
|
| #NATIONAL_ CONFERENCES |
Participation in national conferences |
|
| #PAPERS | Published research papers |
|
| #PATENTS | Registered patents |
|
| #PERSONAL | Personal data (mandatory card) |
|
| #PROJECTS | Participation in research projects |
|
| #RECEIVED_ COURSES |
Short courses received |
|
| #RECEIVED_ SEMINARS |
Seminars received |
|
| #RECEIVED_ WORKSHOPS |
Workshops received |
|
| #SCHOLARSHIPS | Scholarships awarded |
|
| #SPECIFIC_APPS | Specific software |
|
5.4 - Unknown information
Information in cards follow a specific order (given by the third column of Table I), and MATLAB expects one line for each information item. However, if a piece of information is unknown, fill the line with ###. For example, a conference without reference number (ISBN/ISSN...) will be input as:
#INTERNATIONAL_CONFERENCES S. Connor, J. Connor %list of authors Methodology for programming a Terminator %contribution title International Geek Conference %conference http://www.geekconference.com %link San Francisco, USA %location ### %reference number (unknown) Oral presentation %type of contribution 12 %number of pages August 29, 1997 %date
5.5 - Aliases
Aliases can be defined in ALIASES card and they will be substituted elsewhere in the input file. It could be as many aliases as desired in the ALIASES card but only one alias per line is allowed. Besides, aliases are case sensitive.
Aliases start with the $ character followed by the alias name, then a = character and, finally, the alias definition. Only alphanumeric characters and underscore are allowed in the alias name. The characters $ and = are not allowed in the alias definition. For example, if the following card is used:
#ALIASES
$me = S. Connor
$son = J. Connor
$IGC = International Geek Conference
Then, the card in previous subsection could be rewritten as:
#INTERNATIONAL_CONFERENCES
$me, $son %list of authors
Methodology for programming a Terminator %contribution title
$IGC %conference
http://www.geekconference.com %link
San Francisco, USA %location
### %reference number (unknown)
Oral presentation %type of contribution
12 %number of pages
August 29, 1997 %date
5.6 - Résumé layout
The generated résumé follows a specific layout, given in Table II. The second column shows the card where the information for each section/subsection is obtained from.
Table II: layout followed in résumé
| Section | Subsection | Card | |
|---|---|---|---|
| General information | Personal data Current company Academic background |
PERSONAL COMPANY BACKGROUNDS |
|
| Research | Projects Research publications Papers Collaborations Internships Scholarships Developed codes |
PROJECTS PAPERS COLLABORATIONS INTERNSHIPS SCHOLARSHIPS CODES |
|
| Teaching | University teaching Given courses Given seminars Given workshops Academic materials |
COURSES GIVEN_COURSES GIVEN_SEMINARS GIVEN_WORKSHOPS MATERIALS |
|
| Employment experience | JOBS | ||
| Other achievements | Languages
Official titles Courses and seminarsReceived courses General software |
LANGUAGES LANGUAGE_TITLES RECEIVED_COURSES GENERAL_APPS |
6. To-do list
There is no plan to make further versions of writeLatexCV, but hereafter some ideas are presented.
- Manage longtable break1
- Include thesis supervised under the teaching title
- Include teaching innovation projects under the teaching title
- Include artistic works under the research title
- Sort items in cards according to their date or year
- Load publications from a bibtex file
1 Currently, page breaks are set before all sections and pdfLatex decides the page break inside sections. However, feel free to add or remove \newpage command into/from the tex file for a better table format.
7. Changelog
Version: v1.1.1 - 09/12/19
- marvosym package included for Windows/macOS
- Vertical alignment bug in cells Windows/macOS fixed
- Minor bugs fixed
Version: v1.1.0 - 02/12/19
- Web page created: http://writelatexcv.x10host.com
- User guide created in html and PDF
- Input argument names modified to be more readable
- Input argument
date_formatis redefined - New input arguments
font_size,blue_links,us_paper - Some card names are changed
- Two new cards
GIVEN_WORKSHOPSandRECEIVED_WORKSHOPS - If English is chosen, the currency symbol is always in front of amounts despite the currency
- Add special characters
^{}and_{}for subscript and superscript in text - Add bookmarks in produced pdf
- Add link to email in PERSONAL card
- Minor bugs fixed and code refactor for readability
Version: v1.0.3 - 26/05/18
CODEScard added for developed codes
Version: v1.0.2 - 14/02/18
- Bug fixed: syntax error in last item of last card is handled properly
Version: v1.0.1 - 13/02/18
- Links added to publications
- Minor bugs fixed
Version: v1.0.0 - 05/02/18
- Create résumé in pdf format (via Latex)
- Create résumé in three languages: English, Spanish and Catalan
- Five main sections: general, research, teaching, experience and others
- Each section with different subsections
- Two distributions tested: Unix and Windows
- Minor bugs identified
8. Farewell
Please, contact me for any suggestion or bug at mesado31@gmail.com.
Thank you for using writeLatexCV!