Опубликован: 07.02.2007 | Доступ: свободный | Студентов: 3719 / 1147 | Оценка: 4.56 / 3.95 | Длительность: 23:09:00
Специальности: Художник
Лекция 3:

Набор текста

Подробности о шрифтах

Каждый из доступных в LaTeX'е текстовых шрифтов характеризуется следующими четырьмя атрибутами: семейством (family), насыщенностью (series), начертанием (shape) и размером (size)1Это не вся правда. Более полную информацию о шрифтах можно найти в приложении В. Что такое размер, читатель разберется самостоятельно, а смысл остальных атрибутов следующий:

  • семейство означает примерно (но не в точности) то же, что отечественный термин "гарнитура"; в стандартной поставке определены семейства rmfamily (шрифты с засечками), sffamily (шрифты без засечек) и ttfamily (шрифты типа "пишущая машинка");
  • насыщенность определяет ширину и жирность шрифта. В стандартной поставке возможны насыщенности средняя (mdseries) и полужирная (bfseries);
  • начертание бывает прямое (upshape), курсивное (itshape), наклонное (slshape) и " капитель"(scshape).

Семейство, насыщенность, начертание и размер шрифта могут различным образом сочетаться. Это предложение, например, набрано шрифтом семейства "без засечек" (sffamily), полужирной насыщенности (bfseries), прямого начертания (upshape) и размера \large.

Каждый из шрифтовых атрибутов можно менять независимо от остальных. Разберем, какие команды для этого предусмотрены.

Все команды для изменения размера вам уже известны: это десять команд, от \tiny до \Huge, перечисленных в предыдущем разделе. Каждая из команд для изменения остальных атрибутов существует в LaTeX'е в двух вариантах:

  1. в виде команды без аргументов, меняющей атрибут текущего шрифта вплоть до того момента, пока он не будет изменен другой командой (или пока не закончится группа, если атрибут менялся внутри группы);
  2. в виде команды с одним аргументом (помещаемым, как водится, в фигурные скобки), меняющей атрибут шрифта только у своего аргумента (т.е. у текста в фигурных скобках) — некоторые из этих команд ( \textit, \upshape и т.д.) уже нам знакомы.

Имя команды без аргумента совпадает с английским названием соответствующего атрибута (например, \sffamily или \scshape ); имя команды с аргументом состоит из слова \texttt{text}, к которому добавлены две буквы, описывающие атрибут (например, \textsf или \textsc ).

Ниже перечислены все команды для смены атрибутов в обоих вариантах.

\begin{tabular}{|l|l|l|}
\hline
Без аргументов & С аргументом & На печати выйдет\\
\hline
\verb"{\rmfamily Шрифт}"& \verb"\textrm{Шрифт}"& \textrm{Шрифт}\\
\verb"{\sffamily Шрифт}"& \verb"\textsf{Шрифт}"& \textsf{Шрифт}\\
\verb"{\ttfamily Шрифт}"& \verb"\texttt{Шрифт}"& \texttt{Шрифт}\\
\verb"{\mdseries Шрифт} "& \verb"\textmd{Шрифт}"& \textmd{Шрифт}\\
\verb"{\bfseries Шрифт} "& \verb"\textbf{Шрифт}"&
\textbf{Шрифт}\\
\verb"{\upshape Шрифт}"& \verb"\textup{Шрифт}"& \textup{Шрифт}\\
\verb"{\itshape Шрифт} "&
\verb"\textit{Шрифт}"& \textit{Шрифт}\\
\verb"{\slshape Шрифт}"& \verb"\textsl{Шрифт}"& \textsl{Шрифт}\\
\verb"{\scshape Шрифт}"& \verb"\textsc{Шрифт}"& \textsc{Шрифт}\\
\hline
\end{tabular}

Обратите внимание, что в трех строках этой таблицы шрифт совпадает с основным шрифтом текста: это строки, в которых стоят команды, устанавливающие семейство "с засечками", среднюю насыщенность или прямое начертание. Поскольку текущий шрифт и так обладает этими атрибутами, от соответствующей команды он не меняется.

Вот пример применения этих команд:

Сменим сначала \slshape
начертание, затем \ttfamily
семейство, затем \small размер,
затем \bfseries насыщенность,
затем \upshape\mdseries
\rmfamily\normalsize
все вернем на место
.
Сменим сначала \slshape
начертание, затем 
\ttfamily семейство, 
затем \small размер,
затем \bfseries 
насыщенность, затем 
\upshape\mdseries
\rmfamily\normalsize
все вернем на место.

Некоторым сочетаниям атрибутов никакого шрифта не соответствует. В этом случае затребованный, но отсутствующий шрифт заменяется на другой (по возможности, с близкими атрибутами). В нашем примере, в частности, не существует шрифта с атрибутами \ttfamily и \bfseries, поэтому LaTeX действует так, словно была дана команда \mdseries. О каждой такой замене выдается сообщение в процессе трансляции.

А вот пример, когда для смены атрибутов шрифта используются команды с аргументом:

Выберем \textbf{полужирный
шрифт в \textit{курсивном}
начертании} (временно,
конечно же)
.
Выберем \textbf{полужирный
шрифт в \textit{курсивном}
начертании} (временно,
конечно же).

Обратите внимание, что на фоне полужирного шрифта ( \bfseries ) команда \textit поменяла только атрибут " начертание", сменив его на курсивное.

После многочисленных изменений атрибутов шрифта хочется вернуться к обычному шрифту "одним махом", не устанавливая заново все четыре атрибута. Для этих целей предусмотрена команда \normalfont, переключающая шрифт на " нормальный" — основной шрифт документа. Наряду с ней есть, как водится, и команда с одним аргументом \textnormal, печатающая текст, являющийся ее аргументом, основным шрифтом.

В стандартных TeX'овских шрифтах (гарнитура Computer modern и ее русские аналоги) жирный шрифт, задаваемый командами \bfseries, \textbf и т.п., выглядит, по мнению многих, довольно неудачно. Можно сделать его несколько более приемлемым, если написать в преамбуле такую строку: \renewcommand{bfdefault}{b}.

Если по какой-либо причине вы используете команды изменения атрибутов без аргумента, следует иметь в виду одну тонкость. При соседстве слова, набранного шрифтом с наклоном (курсивным в частности) и слова, набранного прямым шрифтом, последняя буква " наклонного" и первая буква "прямого" слова могут слишком сблизиться, что на печати выглядит некрасиво. Чтобы избежать этого явления, необходимо после последней буквы слова, которое будет набрано наклонным шрифтом, поставить команду \/ ; она создаст после буквы небольшой дополнительный пробел (зависящий от шрифта и от буквы), который скомпенсирует наклон и предотвратит нежелательное сближение со следующей буквой:

You {\itshape and} I\\
You {\itshape and \/} I
You {\itshape and} I\\
You {\itshape and \/} I

(команда \\ используется здесь для разрыва строки).

Если фрагмент текста, имеющий наклон, завершается точкой или запятой, то после них ставить \/ не нужно: требуемый эффект достигается за счет места, занимаемого в тексте этим знаком.

Всё это, повторим, относится лишь к командам изменения атрибутов без аргумента; команды \textit, \textsl и \emph вносят нужную поправку автоматически.

Если команда \/ поставлена между двумя символами, дающими на печати лигатуру, то вместо лигатуры на печати получатся два этих символа по отдельности; если эту команду поставить в слове между двумя символами, между которыми в текущем шрифте предусмотрен кернинг, то кернинг между этими символами будет отключен.

"Старые" команды изменения шрифта

Наряду с описанными выше, в LaTeX'е пока сохраняются (для совместимости с LaTeX'ом 2.09) команды переключения шрифта, перечисленные в таблице 3.1 .

Таблица 3.1. Смена начертания: старые команды.
Команда Равносильна последовательности команд
\bf \normalfont\bfseries
\it \normalfont\itshape
\sl \normalfont\slshape
\sf \normalfont\sffamily
\sc \normalfont\scshape
\tt \normalfont\ttfamily
\rm \normalfont\rmfamily

До некоторых шрифтов с помощью "старых" команд добраться невозможно (поскольку шрифты, получаемые с помощью этих команд, отличаются от "основного" не более чем в одном атрибуте).

Василий Майоров
Василий Майоров
Даврон Юсупалиев
Даврон Юсупалиев
Андрей Лучицкий
Андрей Лучицкий
Россия
Михаил Алексеев
Михаил Алексеев
Россия, Уфа, УГАТУ, 2002