Работа в системе LaTeX
de301fb4

Семейства шрифтов


Конечно, хотелось бы подключать к LaTeX'у не один шрифт фиксированного размера, а целый набор новых шрифтов таким образом, чтобы в tex}-файле можно было менять их начертание и размер с помощью команд, аналогичных рассмотренным нами в лекции 3.

Такие возможности действительно есть. Например, образцы шрифтов типа Times, приведенные на с. 360, были получены с помощью таких команд:

{\fontfamily{ptm} \selectfont \begin{center} This is Times font sample\\ ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz\\ \fontshape{it}\selectfont ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz \fontseries{b}\fontshape{n}\selectfont ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz\\ \fontshape{it}\selectfont ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz \end{center} }

В них устанавливаются желаемые параметры шрифта, а затем этот шрифт вызывается командой \selectfont.

Сначала мы устанавливаем семейство шрифтов с помощью команды

\fontfamily{ptm}

(где ptm есть внутреннее имя семейства шрифтов типа таймс). При этом остальные параметры (размер, насыщенность, начертание) остаются неизменными. Команда \selectfont переключает шрифт. Затем мы меняем начертание с помощью команды \fontshape, делая его курсивным (it}, прямое начертание обозначается n), и снова переключаем шрифт с помощью \selectfont. После этого мы меняем насыщенность с помощью команды \fontseries (при этом b} означает полужирный шрифт, а обычный шрифт обозначается m}) и возвращаемся к прямому начертанию. И так далее.

Есть еще команда изменения размера шрифта, явно указывающая кегль и интерлиньяж. Например, команды

\fontfamily{ptm} \fontsize{17pt}{24pt} \selectfont This is Times Roman\\ 17 pt / 24 pt

позволяют напечатать две строки шрифтом типа таймс с размером 17 pt и расстоянием между строками 24 pt:

Команды \fontfamily, \fontseries, \fontshape и \fontsize являются командами "нижнего уровня": как правило, надо использовать не их, а команды типа \textbf, \textit, \textsf или же команды смены начертания и насыщенности (\rmfamily, \sffamily, \upshape, \bfseries и др.).


Но откуда же LaTeX узнаёт, что, например, команда \rmfamily предписывает переключиться на семейство шрифтов, известное под внутренним именем cmr, а команда \bfseries устанавливает насыщенность, известную под внутренним именем bx? Эта информация содержится в определении следующих команд:

КомандаОпределение в стандартных классах
\rmdefaultcmr
\sfdefaultcmss
\ttdefault cmtt
\bfdefault bx
\mddefault m
\itdefaultit
\sldefaultsl
\scdefault sc
\updefault n
Читать эту таблицу надо следующим образом: если семейство, насыщенность или начертание шрифта обозначается буквами xx, то команда \xxfamily, \xxseries или \xxshape (или команда с одним аргументом \textxx) установит соответствующий атрибут шрифта с внутренним именем, указанным в таблице в строчке с командой \xxdefault.

Сказанное объясняет рецепт уменьшения ширины жирного шрифта, приведенный на стр.114: переопределяя команду \bfdefault, мы заставляем LaTeX по командам \textbf или \bfseries (а также \bf) выбирать шрифт насыщенности b}, менее широкой, чем насыщенность bx, получающаяся по умолчанию.

А если, например, вы захотите, чтобы основным шрифтом вашего документа был шрифт без засечек, то можно переопределить в преамбуле команду \rmdefault:

\renewcommand*{\rmdefault}{cmss} (согласно нашей таблице, cmss — это LaTeX'овское внутреннее имя для шрифта без засечек). Другой вопрос, будет ли это удачным полиграфическим решением. Не слишком увлекайтесь подобными экспериментами, если вы не полиграфист!


Содержание раздела