Запись была существенно дополнена и переделана 23 мая 2018 года. Добавлены
примеры в картинках и .pdf, установка PSCyr, изменена структура записи.
Иногда встречаются требования заполнять документ конкретным шрифтом. Есть
несколько методов, позволяющих использовать не входящие в стандартную поставку
шрифты с кириллицей, например, Verdana, Courier, Georgia, Ubuntu
Mono. Сначала немного терминологии, затем описаны методы получения разных
шрифтов в документе. Больше теории (и лучше) на
en.wikibooks.org.
\rmfamilyRoman family — шрифты с засечками (serif);
\sffamily Sans serif family — шрифты без засечек (sans-serif);
\ttfamilyTypewriter family — моноширинные шрифты (они же monospace), где все символы имеют одинаковую ширину.
Стандартное значение \familydefault — \rmfamily, то есть текст, набранный
без каких-либо уточнений в документе, будет напечатан шрифтом, который
установлен для \rmfamily (см. ниже). Это можно изменить в преамбуле,
например:
У шрифтов может быть несколько начертаний. Не все шрифты имеют все возможные
начертания. Если у шрифта есть жирный и есть курсив, то жирного курсива может и
не быть. Также обратите внимание, что курсив и наклонный шрифт — разные вещи.
Двухбуквенные команды (\rm, \it и т.д.) считаются устаревшими, их
использование не рекомендуется. Не следует путать \emph с \textit, хоть в
большинстве ситуаций они и дают одинаковый результат.
Команды {\rmfamily ... }, {\sffamily ... } и {\ttfamily ... } обычно не
используются, рекомендуют использовать \textrm{ ... }, \textsf{ ...} и
\texttt{ ... } соответственно.
Поменять шрифты для всего документа можно в преамбуле командой
\renewcommand{семейство}{аббревиатура шрифта}. Например, поставленные в
преамбулу команды
установят стандартные шрифты cmr для \rmfamily, cmss для \sffamily и cmtt
для \ttfamily. Приведённые команды никак не изменят внешний вид документа,
потому что в них указаны стандартные значения. Если же добавить в преамбулу к
последнему примеру
то весь текст будет написан одним и тем же шрифтом Computer Sans Serif.
\sfdefault можно не указывать, потому что Computer Sans Serif — и так его
стандартное значение. Таким образом, для семейства шрифтов \rmfamily можно
использовать любой шрифт — необязательно с засечками.
Здесь перечислены некоторые из шрифтов с кириллицей, которые можно подгрузить по \usepackage{}. В системе надо установить texlive-full, чтобы не пришлось каждый пакет устанавливать отдельно. Мне пакеты в преамбуле подключать не пришлось, работает и код, представленный ниже.
% Названия шрифтов чувствительны к регистру. \begin{document}
{\Huge Шрифты, поставляемые с \texttt{texlive}.}
Такие шрифты доступны при поделючении пакета по \texttt{\textbackslash{usepackage}\{<font name>\}}.
\section{\textbackslash{rmfamily} (Roman fonts, с засечками)}
Computer Modern Roman (cmr, по умолчанию): Эй, жлоб, где туз? Прячь юных съёмщиц в шкаф!
{\usefont{T2A}{Tempora-TLF}{m}{n} Tempora (Tempora-TLF, \texttt{\textbackslash{usepackage}\{tempora\}}): Эй, жлоб, где туз? Прячь юных съёмщиц в шкаф!} % Шрифт, похожий на Times New Roman.
{\usefont{T2A}{PTSerif-TLF}{m}{n} PT Serif (PTSerif-TLF, \texttt{\textbackslash{usepackage}\{paratype\}}): Эй, жлоб, где туз? Прячь юных съёмщиц в шкаф!}
{\fontfamily{LinuxLibertineT-TLF}\selectfont Linux Libertine (LinuxLibertineT-TLF, \texttt{\textbackslash{usepackage}\{libertine\}}): Эй, жлоб, где туз? Прячь юных съёмщиц в шкаф!}
{\usefont{T2A}{erewhon-TLF}{m}{n} Erewhon (erewhon-TLF, \texttt{\textbackslash{usepackage}\{erewhon\}}): Эй, жлоб, где туз? Прячь юных съёмщиц в шкаф!}
{\usefont{T2A}{gentium}{m}{n} Gentium (gentium, \texttt{\textbackslash{usepackage}\{gentium\}}): Эй, жлоб, где туз? Прячь юных съёмщиц в шкаф!}
{\usefont{T2A}{antt}{m}{n} Antykwa Toruńska (antt, \texttt{\textbackslash{usepackage}\{antt\}}): Эй, жлоб, где туз? Прячь юных съёмщиц в шкаф!}
{\usefont{T2A}{fco}{m}{n} Comfortaa (fco, \texttt{\textbackslash{usepackage}\{fco\}}): Эй, жлоб, где туз? Прячь юных съёмщиц в шкаф!} % Странно, судя по документации, Comfortaa --- шрифт без засечек. % Вероятно, код fco имеет и какой-то другой шрифт.
{\usefont{T2A}{fdr}{m}{n} Droid Serif (fdr, \texttt{\textbackslash{usepackage}\{droid\}}): Эй, жлоб, где туз? Прячь юных съёмщиц в шкаф!}
{\usefont{T2A}{PTSerifCaption-TLF}{m}{n} PT Serif Caption (PTSerifCaption-TLF, \texttt{\textbackslash{usepackage}\{paratype\}}): Эй, жлоб, где туз? Прячь юных съёмщиц в шкаф!}
\section{\textbackslash{sffamily} (Sans-serif fonts, без засечек)} {\usefont{T2A}{cmss}{m}{n} Computer Modern Sans serif (cmss, по умолчанию): Эй, жлоб, где туз? Прячь юных съёмщиц в шкаф!}
{\usefont{T2A}{PTSans-TLF}{m}{n} PT Sans (PTSans-TLF, \texttt{\textbackslash{usepackage}\{paratype\}}): Эй, жлоб, где туз? Прячь юных съёмщиц в шкаф}
{\fontfamily{LinuxLibertineT-TLF}\selectfont Linux Libertine (LinuxLibertineT-TLF, \texttt{\textbackslash{usepackage}\{libertine\}}): Эй, жлоб, где туз? Прячь юных съёмщиц в шкаф!}
{\usefont{T2A}{fds}{m}{n} Droid Sans (fds, \texttt{\textbackslash{usepackage}\{droid\}}): Эй, жлоб, где туз? Прячь юных съёмщиц в шкаф!}
{\usefont{T2A}{fos}{m}{n} Open Sans (fos, \texttt{\textbackslash{usepackage}\{fos\}}): Эй, жлоб, где туз? Прячь юных съёмщиц в шкаф!}
{\usefont{T2A}{fca}{m}{n} Cantarell (fca, \texttt{\textbackslash{usepackage}\{Cantarell\}}): Эй, жлоб, где туз? Прячь юных съёмщиц в шкаф!}
{\usefont{T2A}{iwona}{m}{n} iwona (iwona, \texttt{\textbackslash{usepackage}\{iwona\}}): Эй, жлоб, где туз? Прячь юных съёмщиц в шкаф!}
{\usefont{T2A}{kurier}{m}{n} kurier (kurier, \texttt{\textbackslash{usepackage}\{kurier\}}): Эй, жлоб, где туз? Прячь юных съёмщиц в шкаф!}
Что делать, если нам нужен какой-то другой шрифт, не входящий в стандартную поставку LaTeX, но установленный в системе?
Быстрее всего будет использование XeLaTeX или LuaLaTeX вместо LaTeX. Если
команды xelatex и lualatex системе неизвестны, поставьте пакет
texlive-full. В Debian/Ubuntu это можно сделать так: sudo apt-get install texlive-full.
Такой код позволят задавать русские шрифты при компиляции xelatex или lualatex (LaTeX такое не скомпилирует):
\begin{document} Просто текст будет таким, каким указан \textbackslash{setmainfont}. В нашем случае это Georgia.
\textrm{Это тоже Georgia. Это шрифт семейства \textbackslash{rmfamily}, оно же Roman font или serif font, то есть шрифт с засечками.}
\textsf{Это шрифт семейства \textbackslash{sffamily}, оно же sans serif или шрифт без засечек (sans serif в переводе с французского означает «без засечек»). В нашем случае это шрифт Verdana.}
\texttt{Это шрифт семейства \textbackslash{ttfamily}, оно же typewriter или monospace. В нашем случае это шрифт Lucida Console. Все буквы и символы здесь занимают одинаковую ширину.} \end{document}
Обратите внимание, что если не уточнять, каким семейством печатать шрифт, по умолчанию будет использоваться шрифт, установленный для семейства \rmfamily, то есть то, что было указано в преамбуле командой \setmainfont.
А что, если нужно использовать именно LaTeX, а не XeLaTeX, и конкретный шрифт, поддерживающий кириллицу? Перечислю некоторые варианты. Пакеты winfonts и PSCyr предоставят ограниченное количество шрифтов, а в следующем разделе описано, как использовать действительно любой шрифт.
Пакет разработан для использования имеющихся в Windows шрифтов с помощью MiKTeX & Windows. Инструкция по установке и настройке есть в README. Доступны шрифты Arial, Franklin, Gothic, Tahoma, Comic Sans, Georgia, Times, Courier, New Palatino, Linotype, Verdana, Wingding, Webdings. Подключается \usepackage{winfonts}.
\begin{document} \section{Начертания для Times New Roman из пакета pscyr} Съешь ещё этих французских булок да выпей чаю ж!\\ \textrm{(Roman) С засечками}\\ \textit{(Italic) Курсив — не наклонный!}\\ \textsl{(Slanted) Наклонный — не курсив!}\\ \textbf{(Bold) Жирный}\\ \textbf{\textit{(Bold italic) Жирный курсив}}\\ \textbf{\textsl{(Bold slanted) Жирный наклонный}}\\ \texttt{(Monospace) Моноширинный}\\ \textsc{(Small caps) «Малые заглавные»}\\ \textbf{\textsc{(Bold Small caps) Жирный «Малые заглавные»}}
\section{Переключение шрифтов внутри документа} \usefont{T2A}{fac}{m}{n} Съешь ещё этих французских булок да выпей чаю ж!\\ \usefont{T2A}{faq}{m}{it} Съешь ещё этих французских булок да выпей чаю ж!\\ \usefont{T2A}{ftm}{b}{sl} Съешь ещё этих французских булок да выпей чаю ж!\\ \usefont{T2A}{fco}{m}{sc} Съешь ещё этих французских булок да выпей чаю ж!\\ \usefont{T2A}{ftm}{m}{n} Съешь ещё этих французских булок да выпей чаю ж! % fac, faq, ftm — название шрифта в pscyr % m,b — medium, bold (нормальный или жирный) % n,it,sl,sc — normal, italic, slanted, small caps — тип шрифта \end{document}
Код ftm соответствует шрифту Times New Roman. Компилировать документ можно с помощью latex или pdflatex. Поиск по файлу работает. Результат (pscyr.pdf):
Пакет PSCyr, установка которого описана в этой записи, не обновляется
с 2001 года. Было любопытно бы разобраться с юридическим статусом этих
шрифтов. Официальное место хранения пакета, по-видимому,
тут.
Если пакет не заработал, попробуйте выполнить ещё updmap-sys.
\documentclass[a4paper,12pt]{article} \usepackage[T2A]{fontenc} % и без этого работает? \usepackage[utf8]{inputenc} \usepackage[russian]{babel} \usepackage{cmap} % для работы поиска кириллицы в pdf
\renewcommand{\rmdefault}{times}
\begin{document}
\section{Проверка букв} Эй, жлоб! Где туз? Прячь юных съёмщиц в шкаф!\\ How vexingly quick daft zebras jump!
Если все шрифты выглядят хорошо, можно их разложить туда, где обычно latex хранит получившиеся в нашей папке .afm, .fd, .tfm файлы. Тогда использовать подготовленные шрифты можно будет и в других проектах. Я, однако, этого не делал. Некоторую информацию по этой теме можно найти здесь.
Также везде рекомендуют манипуляции с файлом pdftex.cfg, но я их опустил, так как всё заработало и без этого. Если что, см. ссылку выше.
У меня при скачанных по ссылке выше шрифтах проявился такой баг: при компиляции latex + dvips + ps2pdf или pdflatex буква «ё» отображается корректно, тогда как при компиляции latex + dvipdfmx буква «ё» заменяется на «j».