В тексте есть несколько групп команд для выбора начертания шрифта
\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