Опубликован: 07.02.2007 | Уровень: для всех | Доступ: платный
Дополнительный материал 3:

Приложение В. Шрифты и LaTeX

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

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

Такие возможности действительно есть. Например, образцы шрифтов типа 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{ptm} \fontsize{17pt}{24pt}
\selectfont This is Times Roman\\ 17 pt / 24 pt

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

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

Команда Определение в стандартных классах
\rmdefault cmr
\sfdefault cmss
\ttdefault cmtt
\bfdefault bx
\mddefault m
\itdefault it
\sldefault sl
\scdefault sc
\updefault n

Читать эту таблицу надо следующим образом: если семейство, насыщенность или начертание шрифта обозначается буквами xx, то команда \xxfamily, \xxseries или \xxshape (или команда с одним аргументом \textxx ) установит соответствующий атрибут шрифта с внутренним именем, указанным в таблице в строчке с командой \xxdefault.

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

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

\renewcommand*{\rmdefault}{cmss}

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

Нина Казачек
Нина Казачек
Василий Майоров
Василий Майоров
Алина Вадяева
Алина Вадяева
Россия
Юлия Адамовская
Юлия Адамовская
Украина, Славянск