Легко использовать любые современные шрифты TrueType и OpenType позволяет XeLaTeX.
Вначале нужно установить XeLaTeX. В Debian/Ubuntu для этого достаточно поставить пакет
texlive-xetex
.Помимо этого, нужно определиться собственно с используемыми шрифтами. XeLaTeX может использовать любые шрифты, которые может использовать Fontconfig. Просмотреть список установленных в системе шрифтов и их имена можно с помощью команды
fc-list
: $ fc-list | grep Inconsolata
Inconsolata:style=Medium
Ещё можно поставить программу FontMatrix для просмотра и сравнения шрифтов. Установку дополнительных шрифтов я здесь описывать подробно не буду, скажу лишь, что в большинстве случаев для этого достаточно поместить файлы шрифта в ~/.fonts/
.Далее создаём документ LaTeX, как обычно. В преамбулу добавляем:
\usepackage[cm-default]{fontspec}Главный пакет тут —
\usepackage{xunicode}
\usepackage{xltxtra}
fontspec
. Опция cm-default
необходима, чтобы он не пытался использовать шрифты lmodern
(которые в Debian/Ubuntu надо ставить отдельно, а русских глифов в них всё равно нет).Как я понял,
xunicode
изменяет традиционнее латэховские макросы вроде \"
таким образом, что немецкую «о умляют» (ö) в XeLaTeX можно ввести не только напрямую с клавиатуры как ö
, но и как обычно, \"o
. Вообще, все уникодные символы можно вводить непосредственно с клавиатуры (например, с помощью клавиши Compose). Это удобно. Пакет xltxtra
добавляет чудесный макрос \XeLaTeX
. Затем можно задать стандартные шрифты документа:
\setromanfont{Charis SIL}В общем-то, названия этих команд говорит сами за себя. Они меняют шрифт всего документа в целом. Есть ещё команда
\setsansfont{Liberation Sans}
\setmonofont{Inconsolata}
\setmainfont{Имя шрифта}
.Дополнение 20081226: поскольку рост строчных букв у разных гарнитур одного кегля разнится, то при совместном использовании в пределах одного абзацах их необходимо соответствующим образом масштабировать. Для того, чтобы обеспечить одинаковый росит строчных букв, можно задать глобальную опцию:Временное переключение гарнитуры делается командой\defaultfontfeatures{Scale=MatchLowercase}Можно, конечно, задавать опцию Scale для каждой гарнитуры отдельно. Аналогичная опцияScale=MatchUppercase
позволяет обеспечить единый рост заглавных букв разных гарнитур.
\fontspec{Имя шрифта}
в теле документа.Компилировать нужно с помощью
xelatex
вместо latex
. А так — как обычно. Получается PDF. Всё на удивление просто. Примеры по ссылкам. Инструкции в примерах немного более подробные, чем в этой заметке.пример использования (исходник, UTF-8)
пример использования (PDF)
Да, очень рекомендую посмотреть на что способен XeLaTeX, если ему дать хороший шрифт. Вот только где бы ещё лицензионных (свободно распространяемых) русских шрифтов найти…
Дополнение: XeLaTeX не совместим с пакетом
babel
. Можно или пользоваться дополнительным пакетом xecyr
, переопределяющий кириллический символы LaTeX в соответствии с уникодом, или пользоваться пакетом polyglossia
, заменяющим babel
. Спасибо Shender-у за подсказанные решения.Дополнение 20081226: выкладываю также примеры использования BibTeX совместно с XeLaTeX для написания русскоязычных текстов. Рассмотрены оба способа: и с
babel
+xecyr
, и с polyglossia
.