Всегда \textrm, никогда \rm? Контрпример?

Всегда \textrm, никогда \rm? Контрпример?

Давайте посмотрим на следующий код:

\documentclass{article}
\begin{document}
\newtheorem{theorem}{Theorem}

\begin{theorem}
TFAE
\begin{itemize}
\item[(i)]
$0<1$;
\item[(ii)]
$1>0$.
\end{itemize}
\end{theorem}

But I want (i)'s Roman:

\begin{theorem}
TFAE
\begin{itemize}
\item[\textrm{(i)}]
$0<1$;
\item[\textrm{(ii)}]
$1>0$.
\end{itemize}
\end{theorem}

Alas, still italic, but\ldots

\begin{theorem}
TFAE
\begin{itemize}
\item[\rm(i)]
$0<1$;
\item[\rm(ii)]
$1>0$.
\end{itemize}
\end{theorem}

\end{document}

введите описание изображения здесь

И \textrm, который должен быть лучше устаревшего \rm(я знаю разницу в их использовании) не работает так, как можно было бы ожидать. Это аргумент в пользу использования \rmвремя от времени?

решение1

Нет, \rmустарело и не должно использоваться в документе LaTeX2e (ConTeXt и plain, конечно, отличаются). То, что здесь происходит, сделано намеренно. Выдача \textrmозначает, что текущее семейство шрифтов должно быть римским, а не без засечек или моноширинным. Однако это не такнетизменить текущую форму (прямой/курсивный/наклонный) или толщину (тонкий/средний/толстый): в этом и заключается суть «Новой схемы выбора шрифта» LaTeX2e. Напротив, \rmустанавливает фиксированный шрифт: прямой, римский, средней толщины.

Следовательно, здесь вы ищете изменение формы шрифта, а не семейства: \textupэто команда, которую вы ищете (ср. \textit, \textsl). Конечно, в реальном случае вы должны применять это как изменение общего стиля теоремы, а не простодля этого случаяоснова.

решение2

Нет, если вы хотите быть уверены, что метки элементов соответствуют " \rmстилю", вам следует использовать

{\normalfont(i)}

Конечно, как указал @egreg, вы можете захотеть использовать enumitemи переопределять метки элементов глобально, поскольку локальные изменения, подобные этому, несистематичны и не подвержены ошибкам. Поэтому следующее в вашей преамбуле может помочь:

\documentclass{article}

\usepackage{enumitem}
\setlist[enumerate,1]{label={\normalfont(\roman*)}}

\newtheorem{theorem}{Theorem}

\begin{document}

\begin{theorem}
TFAE
\begin{enumerate}
\item
$0<1$;
\item
$1>0$.
\end{enumerate}
\end{theorem}

\end{document}

решение3

Один важный фактор, вытекающий из ответа Джозефа Райта, который следует подчеркнуть: \textrm, \textbf, \textit, и т. д. не являются простыми эквивалентами простых \rm, \bf, \it, и т. д. в локальном режиме. Более того: их значения имеют разные типы в LaTeX (например, семейство против формы).

Связанный контент