3/23/2009

Как составить резюме в LaTeX: пример CV оформленного в LaTeX

Задача создания красиво оформленного резюме не из лёгких, однако её может облегчить LaTeX. С помощью пакета modernCV можно сделать красиво оформленное резюме быстро и красиво. Немного терпения, и получаем качественный полиграфический результат.


Что нужно для составления резюме 

Для составления резюме в LaTeX нам потребуется пакет moderncv, который можно взять здесь, и немного терпения. В интернете просто прорва сайтов, которые дают детальные рекомендации по составлению резюме. Надеюсь, вы прочли один из них - здесь только технические рецепты по составлению резюме в LaTeX.

Итак, нужно скачать moderncv, и распаковать его. Вместе с пакетом идёт пример составления резюме для John Doe (типа Василий Пупкин), который можно найти в файлах template_en.tex или jdoe_classic.tex в архиве moderncv. 


Надо сказать, что приводимые здесь рецепты относительные, так как авторы moderncv очень активно перепиливают свой шаблон, из-за чего при обновлении стилевый файлов резюме может запросто не собраться. Так что если вас всё устраивает в текущей версии moderncv - не ломайте то, что работает.


Рецептура составления резюме с помощью moderncv и LaTeX
По умолчанию классическое резюме цветное, хотя для удобства печати его можно сделать чёрно-белым:
\moderncvtheme[grey]{classic}
Можно использовать и цвета (возможные значения 'blue', 'orange', 'red', 'green', 'grey'). Так же вместо классического стиля CV можно использовать более свободный:
\moderncvtheme[grey]{casual}
В любом случае стоит поставить кодировку UTF8 внутри документа:
\usepackage[utf8]{inputenc} % replace by the encoding you are using
Это даст возможность копировать текст из PDF документа любыми средствами и на любых языках, что в случае с резюме весьма важно.

Дальше пойдёт заполнение разделов: образование, опыт работы и так далеее. Здесь есть небольшая тонкость: в стилевом файле предусмотрен объект \cventry{}{}{}{}{}{} с кучей опций внутри. Это пригодится, когда нужно одним блоком разместить много информации. Например:


\cventry{2006-2009}{Ph. D. (planned) Physics and Math}
{Moscow Engineering Physics Institute, Russia}
{\newline Subject: optical cryptography in an incoherent quasimonochromatic light, digital image processing, and high dynamic range imaging}
{\newline Supervisors: Manykin~E.A.~(RRC Kurtchatov Institute), Bykovskiy~A.Y.~(Lebedev Physical Institute, LPI), Starikov S.N.~(MePHI)}
{}

Каждый блок текста в фигурных скобках будет продолжать текущую строку, и чтобы начать новую строку, надо оповестить об этом LaTeX. Поэтому не стесняйтесь вставлять для \newline перехода на другую строку.

Для более коротких строчек в резюме используется \cvline{}{}
Вот например так:

\cvline{2005}{Moscow Telecommunication Conference Award.}
Есть в moderncv такой раздел, как Computer Skills, и там реализовано перечисление \cvcomputer. Оно будет набирать ваши компьютерные таланты в две колонки - не знаю, удачный ли это ход. Если что, можно вместо \cvcomputer использовать \cventry что в приводимом здесь примере и делается.

% Publications from a BibTeX file
\nocite{*}
\bibliographystyle{unsrt}
\bibliography{publications} % 'publications' is the name of a BibTeX file

Если ваше резюме предполагает наличие публикаций в научных журналах, то их нужно экспортировать в отдельный bib-файл publications.bib и скопировать в каталог, в котором находится теховский файл с резюме (имя для bib-файла можно подобрать любое). Вы ведь используете библиографические базы, правда? Если нет, то начать делать это очень легко.

Чтобы сделать bib-файл с публикациями быстро, достаточно создать временный tex-файл и накидать в него ссылок на ваши работы, скомпилировать и взять оттуда bib-файл. Ещё хорошо бы открыть его и выделить вашу фамилию в работах полужирным шрифтом, но это уже вензеля.

После всех вышеописанных движений у вас должно получиться красиво оформленное резюме (которое в англоязычном мире называется CV, оно же Curriculum Vitae), например:




Это сокращённое резюме Василия Пупкина, LaTeX код которого можно скачать по этой ссылке


Изменение начертаний шрифтов 
Шрифты по умолчанию вполне разумны, но если хочется изменить шрифт, то можно попробовать следующее:
  
%%%% <======== Changing fonts in the CV - select one of the options %%%%%%%%%  
\renewcommand{\rmdefault}{cmr} % Шрифт с засечками  
\renewcommand{\sfdefault}{cmss} % Шрифт без засечек  
\renewcommand{\ttdefault}{cmtt} % Моноширинный шрифт %%%% 
<======== Changing fonts in the CV - select one of the options %%%%%%%%%

При этом шрифты поменяются во всём резюме.


Русский язык в резюме modernCV
Вообще-то считается хорошим тоном составлять резюме на английском языке, дабы бляснуть своими глубокими познаниями языка вероятного противника :-) Если же блистать нечем или этого не требуется, можно заставить moderncv переваривать русский язык. Для этого требуется вставить следующее в преамбулу документа:

%%%%% <======== THIS IS FOR RUSSIAN RESUME %%%%%%%%%
\documentclass[11pt,a4paper,russian]{moderncv} 
\usepackage[T2A]{fontenc} 
\usepackage[utf8]{inputenc} 
%%%%% <======== THIS IS FOR RUSSIAN RESUME %%%%%%%%%

При этом стоит проверить, что у вас кодировка текста в редакторе выставлена как utf8.

Вот так может выглядеть резюме бравого инженегра Василия Пупкина на хохруссише:




Вместо заключения

Пакет moderncv переделывается авторами часто и весьма агрессивно, так что этот пост может несколько устареть. Дополнительные детали по шрифтам можно найти на ЛОРе. Тем не менее, приведённых рекомендаций должно быть достаточно для старта.

39 комментариев:

  1. В тексте резюме: "краевые задачи" переводится как "boundary value problems"
    По существу: результат симпатичный. :)

    ОтветитьУдалить
  2. 2 Михаил Саушкин комментирует...
    В тексте резюме: "краевые задачи" переводится как "boundary value problems"
    Спасибо, исправлю.

    По существу: результат симпатичный. :)
    Мне тоже нравится :-) Вполне, кстати. Есть ещё вариант Casual, но он какой-то шибко творческий (видимо, для дизайнеров, художников и прочих сильно творческих профессий).

    ОтветитьУдалить
  3. Михаил, а можно чуть подробнее про конвертирование резюме в rtf?
    Я пытался сконвертировать с помощью latex2rtf, так оно пишет, что "Document format <moderncv> unknown, using article format", плюс жалуется на неизвестность всех остальных резюмешных команд - как результат получается rtf, выглядящий сильно хуже pdf.

    ОтветитьУдалить
  4. 2 garm комментирует...

    Михаил, а можно чуть подробнее про конвертирование резюме в rtf?
    Боюсь, что никак.Я тоже пробовал, но ничего не получилось. И потом, резюме всё-таки лучше держать в PDF: редактировать другим его незачем, а просматривается и печатается лучше в PDF.

    ОтветитьУдалить
  5. Держать-то его, может, лучше и в pdf, а вот отправлять куда-нибудь лучше так, что бы на том конце оно гарантированно прочиталось. К сожалению, мсофис всё ещё более частый гость на компьютере среднестатистического офисного сотрудника, чем pdf-читалка.
    Да, раз сконвертировать в rtf резюме нельзя, то статью нужно поправить.

    ОтветитьУдалить
  6. Кроме moderncv можно ещё попробовать пакет europecv, результат тоже неплох.

    ОтветитьУдалить
  7. Спасибо за интересный материал, возникло желание изучать Латекс :)

    ОтветитьУдалить
  8. Привет!

    Неплохой материал. LaTeX таки могуч :) Очарован результатом — честно говоря, такой красоты я не смог бы сделать (на данный момент) не только в OO Writer, но и в Word (который я, по идее, знаю лучше — и учили, и сам учился).

    Традиционно — список правок:

    Как составить резюме в LaTeX: пример CV оформленного в LaTeX
    После CV, наверное, стоит поставить запятую.

    Итак, нужно скачать moderncv, и распаковать его.
    Вторая запятая не нужна.

    при обновлении стилевый файлов резюме
    s/й/х/ :)

    Так же вместо классического стиля
    … ну ты понял, тут твоё любимое «также» :)

    вставлять для \newline
    «Для» должно стоять после \newline.

    Если что, можно вместо \cvcomputer использовать \cventry что в приводимом здесь примере и делается.
    Перед вторым «что» должна быть запятая.
    А где пример?

    % Publications from a BibTeX file
    А правильно ли давать пример до того, как описывается то, что он иллюстрирует?

    вроде того, что получилось у меня
    Это я уже по мелочи придираюсь: а зачем две ссылки?

    Больше багов не отловлено :)

    Удачи! ;)

    ОтветитьУдалить
  9. Скриншотов не хватает очень )

    ОтветитьУдалить
  10. Скриншотов чего?
    Кода? — дак он весь показан в посте. Если интересует ещё что-то по LaTeX, тут есть замечательная серия постов по оформлению диплома в LaTeX — покопай там.
    Результата? — есть pdf, на него даже не одна, а две ссылки проставлены :)
    Среды написания .tex-файла? — а зачем? Поищи в Интернете скриншоты Kile, virens юзает именно его (её? :).

    В общем, скриншоты тут не нужны (по-моему).

    ОтветитьУдалить
  11. Кто-нибудь пробовал использовать русский язык? У меня вылетает куча ошибок, указывающих куда-то в дебри moderncv.

    ОтветитьУдалить
  12. Да, я пробовал русский язык в шаблоне. Взял template_en.tex поправил \firstname{} и familyname{} на свои, кириллические — получил нецензурщину.
    Добавил старое доброе заклинание:
    \usepackage[russian]{babel}
    После этого latex template_en.tex мне отказать не смог.

    ОтветитьУдалить
  13. спасибо за информацию, возьму на заметку. Резюме получилось стильным. Но еще больше впечатлен содержанием :-)

    ОтветитьУдалить
  14. А можно скрины попросить выложить?

    ОтветитьУдалить
  15. У меня не получается с русской начинкой сделать \moderncvtheme[green]{classic}

    если у меня Имя или Фамилия из русских символов
    \firstname{Русский}
    \familyname{Человек}

    вываливается ошибка:

    ! LaTeX Error: Command \CYRN unavailable in encoding T1.

    ...

    l.113 ...irstname~}\familynamestyle{\@familyname}}


    т.к. я слаб в языке, то не могу еще разобрать в чем тут баг:

    \settowidth{\maketitlenamefullwidth}{\firstnamestyle{\@firstname~}\familynamestyle{\@familyname}}

    помогите пожалуйста с этим.

    ОтветитьУдалить
  16. С этим разобрался, теперь проблема с жирным шрифтом при русском наборе. Его latex игнорирует...

    ОтветитьУдалить
  17. При добавлении
    \usepackage[utf8]{inputenc}
    \usepackage[T2A]{fontenc}
    Жирный шрифт пропадает

    ОтветитьУдалить
  18. 1) Ссылки на документы не действительны.
    2) Кто-нибудь научился использовать в moderncv русский так чтобы шрифты не ломались?

    ОтветитьУдалить
  19. 2 Анонимный комментирует...
    Кто-нибудь пробовал использовать русский язык?
    Я не пробовал: у меня всё на английском. Русское резюме в моей области - дурной тон.

    2 Sacha комментирует...
    А можно скрины попросить выложить?
    А вы PDFник скачайте...

    2 Анонимный комментирует...
    У меня не получается с русской начинкой сделать \moderncvtheme[green]{classic}
    Русский оно поддерживает как-то криво. Я пробовал, несмотря на матюги, сделать dvi, а потом PDF - вроде получалось. Но у меня всё на английском, так что увы.


    2 asv комментирует...
    1) Ссылки на документы не действительны.
    Спасибо, это гугловцы мои дукаменты с Page Creator потёрли, мерзавцы. Хотя предупреждали :-)

    ОтветитьУдалить
  20. Вот так делается русский

    \documentclass[11pt,a4paper,russian]{moderncv}
    \moderncvtheme[gray]{classic}

    \usepackage[T2A]{fontenc} %чтото связаное с внутренней кодировкой шрифтов
    \usepackage[utf8]{inputenc}

    Как вставить отчество?

    ОтветитьУдалить
  21. Подскажите, пожалуйста, как сделать руссикй?
    попробовала
    \documentclass[11pt,a4paper,russian]{moderncv}
    \moderncvtheme[gray]{classic}

    \usepackage[T2A]{fontenc} %чтото связаное с внутренней кодировкой шрифтов
    \usepackage[utf8]{inputenc}

    не получается, все равно выдает ошибку.

    ОтветитьУдалить
  22. Добрый день!
    Я попробовала те же 4 строчки, чтобы писать по-русски.
    Ругается,компилируется, и все русские символы не печатает. Что делать?

    ОтветитьУдалить
  23. > Добрый день!
    > Я попробовала те же 4 строчки, чтобы писать по-русски.
    > Ругается,компилируется, и все русские символы не печатает. Что делать?

    Быть может, у вас кодировка текста в редакторе не utf8?

    ОтветитьУдалить
  24. Да, спасибо, оказалось cp1251

    ОтветитьУдалить
  25. Спасибо большое за рассказ! Не могли бы вы чуть поподробнее рассказать про вставку публикаций из .bib-файла? можно ли как-то вставить все публикации, не делая на них ссылки в .tex-файле (\cite(author))?

    ОтветитьУдалить
  26. Это у меня что-то не так или здесь не работает команда \vspace{\fill}?

    ОтветитьУдалить
  27. А как вы добились того, чтобы лчиная информация располагалась именно так? Т.е. телефоны в одной сточке, а также адреса электронной почты?

    ОтветитьУдалить
  28. Спасабо большое за содержательное описание!
    Не мог бы ты, пожалуйста, подсказать, как сделать контактную информацию черной(как у тебя)?
    Спасибо ещё раз!

    ОтветитьУдалить
  29. Решение для русского языка нашел тут http://www.linux.org.ru/forum/general/4219163

    \documentclass[12pt,a4paper]{moderncv}
    \usepackage[russian]{babel}
    \renewcommand{\rmdefault}{cmr} % Шрифт с засечками
    \renewcommand{\sfdefault}{cmss} % Шрифт без засечек
    \renewcommand{\ttdefault}{cmtt} % Моноширинный шрифт
    \moderncvtheme[blue]{classic} % idem
    \usepackage[T2A]{fontenc}
    % character encoding
    \usepackage[utf8]{inputenc}


    Фамилию и Имя Отчество можно добавить, если поменять Имя и Фамилию местами, но придется уменьшить размер шрифта, чтобы всё это влезло в одну строчку

    \familyname{\LARGE Иван Петрович}
    \firstname{\LARGE Кузнецов}

    ОтветитьУдалить
  30. Не отображается title. Кто нибудь знает как исправить?

    ОтветитьУдалить
  31. попробуй поменять стиль.

    Кстати, а для генерации оглавления в том же документе делались какие-то дополнительные пляски или нет?

    ОтветитьУдалить
  32. Не работает \homepage . Если кто нибудь сталкивался с такой проблемой напишите как исправить. Спасибо.

    ОтветитьУдалить
  33. Не работает \textcolor внутри \email . Можно ли получить исходник вашего резюме?

    ОтветитьУдалить
  34. Virens, пока ты ругаешь Gentoo (хоть никогда её в глаза не видал), дебианщики в "squeeze" выпилили moderncv (состав), оставив только огрызки: moderncv.cls, moderncvcompatibility.sty, moderncvthemecasual.sty, moderncvthemeclassic.sty и moderncvthemeempty.sty (пруф). Где blue theme и прочее, а примеры? Не ожидал, право. Подобное невозможно в Gentoo по определению.

    ОтветитьУдалить
  35. Услышав стоны народа, сюда прискакал автор дабы курощать, насаждать и доминировать :-)

    @Антон комментирует...

    Вот так делается русский
    Дополнил пост. Спасибо, Антон. Хотя резюме на аглицком круче выглядит. И тем не менее, добавил.

    @darkled комментирует...
    Не могли бы вы чуть поподробнее рассказать про вставку публикаций из .bib-файла? можно ли как-то вставить все публикации, не делая на них ссылки в .tex-файле (\cite(author))?
    Описанный путь, как мне кажется, проще и короче. Ну, можно, конечно, просто список сделать в окружениях enumerate. Но так красивше.

    @Анонимный комментирует...
    А как вы добились того, чтобы лчиная информация располагалась именно так?
    Давно это было, Анонимус, и авторы modernCV успели это переделать.

    @Анонимный комментирует...
    Не мог бы ты, пожалуйста, подсказать, как сделать контактную информацию черной(как у тебя)?
    При попытке вставить

    \usepackage[usenames]{xcolor}

    латех выдаёт ошибку:

    PoopkinVasyaCV.tex:18:Option clash for package xcolor.

    Хотя при использовании цветов оно вроде как работает:

    \phone{\textcolor{black}{+11111111}}

    @Анонимный комментирует...
    Решение для русского языка нашел тут
    Спасибо, Анонимус, что зашёл и поделился - добавил этот текст в пост.

    ОтветитьУдалить


  36. @Анонимный комментирует...
    Не работает \textcolor внутри \email
    Есть такое. Будем думать, как решить.

    Можно ли получить исходник вашего резюме?
    Оно давно делалось и с тех пор не менялось. Исходники выложил здесь, но там проблема эта есть.


    @iv_vl комментирует...
    Virens, пока ты ругаешь Gentoo
    Это способ призвать iv_vl-я :-)

    дебианщики в "squeeze" выпилили moderncv
    Да, они там вообще обкурились. Воткнули нерабочий КДЕ4.4, IceWM с отломанным треем...

    оставив только огрызки
    В посте написано ясно: качайте из CTAN. Какие ко мне вопросы-то?!

    Где blue theme и прочее, а примеры?
    Она никуда не делась, на CTAN всё на месте. Более того, я выложил исходники примера на Google Code, и там всё включено.

    ОтветитьУдалить
  37. @virens комментирует…
    Не работает \textcolor внутри \email
    Есть такое. Будем думать, как решить.

    Баг подтверждаю, убрал \email и заменил на
    \extrainfo{\emailsymbol {\color{black} blah-blah@gmail.com}}
    Не кошерно, зато цвет можно выбрать по вкусу.

    Воткнули нерабочий КДЕ4.4, IceWM с отломанным треем...
    И это при том, что на фоне деградации Gnome3 других-то хороших DE, кроме KDE, и нет. Крыса (Xfce) откровенно разочаровала.

    В посте написано ясно: качайте из CTAN.
    Примеры со CTAN не работают в стабильном дебиане, а найти примеров к старой версии moderncv сложно. Установка этого пакета из CTAN ломает весь texlive-latex-extra. Печалька :(

    ОтветитьУдалить
  38. А у меня выдает ошибку на русском языке
    ! pdfTeX error (font expansion): auto expansion is only possible with scalable

    ОтветитьУдалить
  39. Все предыдущие способы подключения русского почему-то не сработали.
    В итоге... нашёл решение с XeTeX'ом:
    \usepackage{polyglossia} %% загружает пакет многоязыковой вёрстки
    \setdefaultlanguage[spelling=modern]{russian} %% устанавливает главный язык документа
    \setotherlanguage{english} %% объявляет второй язык документа
    \defaultfontfeatures{Ligatures={TeX},Renderer=Basic} %% свойства шрифтов по умолчанию
    \setmainfont[Ligatures={TeX,Historic}]{CMU Serif} %% задаёт основной шрифт документа
    \setsansfont{CMU Sans Serif} %% задаёт шрифт без засечек
    \setmonofont{CMU Typewriter Text} %% задаёт моноширинный шрифт

    компилируется с сотней варнингов, но хотя бы работает! Может, кому-то поможет.

    ОтветитьУдалить