В тексте есть несколько групп команд для выбора начертания шрифта

  • \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}}}

bi1.png

Видно, что старые команды \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}

bi2.png

Видно, что при использовании полужирного шрифта или курсива \textbf (\textit) делает небольшой дополнительный отступ, тогда как результат \bfseries (\itshape) "наползает" на соседнее слово (равно как и \bf с \it).

Теперь ответ на вопрос, "что лучше использовать?" выглядит так: использовать лучше \textrm, \textbf, \textit.

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

bi3.png

Впрочем, проще сделать настройки в редакторе для быстрого набора команд (в Texmaker-e команды курсива и полужирного шрифта вставляются при помощи обычных комбинаций Ctrl+I, Ctrl+B).

Любопытно, что если выделить курсивом текст, который уже выделен

Выделенный текст \textit{внутри курсива печатается \textit{прямым шрифтом}}.

то ничего не случится:

bi4.png

хотя, по идее, второе выделение должно было отменить первое и дать в результате прямой шрифт — вот так:

bi5.png

Чтобы этого добиться, выделять нужно не с помощью \textit, а с помощью \emph:

Выделенный текст \emph{внутри курсива печатается \emph{прямым шрифтом}}.

Можно использовать и \em, но она, как и другие старые команды, не делает дополнительного отступа.



Комментарии

comments powered by Disqus