В тексте есть несколько групп команд для выбора начертания шрифта
\rm
,\bf
,\it
, пришедшие со времен седой старины,\textrm
,\textbf
,\textit
,\rmfamily
,\bfseries
,\itshape
.
Чем они отличаются и какие лучше использовать? (в частности, чтобы получить полужирный курсив)
Рассмотрим пример:
{\rm Roman {\bf Bold {\it Bold Italic}}}
\textrm{Roman \textbf{Bold \textit{Bold Italic}}}
{\rmfamily Roman {\bfseries Bold {\itshape Bold Italic}}}
Видно, что старые команды \bf
и \it
не "складываются" друг с другом, не позволяя в результате получить полужирный курсив. Почему так происходит описано в руководстве по устаревшим командам и пакетам. То, что \bf
и \it
названы устаревшими не означает, что их нельзя использовать. Просто они имеют меньше возможностей по сравнению с современными командами. Один случай мы рассмотрели, сейчас рассмотрим еще один.
Итак, новые команды успешно справились с задачей. Но зачем их так много? Дело в том, что команды \rmfamily
, \bfseries
, \itshape
и им подобные -- это низкоуровневые команды, с помощью которых реализованы, в частности, \textrm
, \textbf
, \textit
...
Чтобы понять, зачем нужны все эти \textxx
, рассмотрим следующий пример (для того чтобы использовать \toprule
и \bottomrule
, понадобится подключить пакет booktabs
):
\begin{tabular}{lll}
\toprule
\verb|\textbf{fluff} hair| & \textbf{fluff} hair
\verb|{\bfseries fluff} hair| & {\bfseries fluff} hair
\verb|{\bf fluff} hair| & {\bf fluff} hair
\midrule
\verb|\textit{fluff} hair| & \textit{fluff} hair
\verb|{\itshape fluff} hair| & {\itshape fluff} hair
\verb|{\it fluff} hair| & {\it fluff} hair
\bottomrule
\end{tabular}
Видно, что при использовании полужирного шрифта или курсива \textbf
(\textit
) делает небольшой дополнительный отступ, тогда как результат \bfseries
(\itshape
) "наползает" на соседнее слово (равно как и \bf
с \it
).
Теперь ответ на вопрос, "что лучше использовать?" выглядит так: использовать лучше \textrm
, \textbf
, \textit
.
Если вам больше нравится способ записи, при которым команда и текст помещаются в фигурные скобки, то используйте \rmfamily
, \bfseries
, \itshape
. Можно создать для них свои макросы, чтобы сделать имя команды короче. И не забывайте добавить пробелы.
Впрочем, проще сделать настройки в редакторе для быстрого набора команд (в Texmaker-e команды курсива и полужирного шрифта вставляются при помощи обычных комбинаций Ctrl+I
, Ctrl+B
).
Любопытно, что если выделить курсивом текст, который уже выделен
Выделенный текст \textit{внутри курсива печатается \textit{прямым шрифтом}}.
то ничего не случится:
хотя, по идее, второе выделение должно было отменить первое и дать в результате прямой шрифт — вот так:
Чтобы этого добиться, выделять нужно не с помощью \textit
, а с помощью \emph
:
Выделенный текст \emph{внутри курсива печатается \emph{прямым шрифтом}}.
Можно использовать и \em
, но она, как и другие старые команды, не делает дополнительного отступа.
Комментарии
comments powered by Disqus