[Tex/LaTex] Always \textrm, never \rm? A counterexample

best practicesobsolete

Let us see the following code:

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

enter image description here

And \textrm, which should be better than an obsolete \rm (I know the differences of using them) doesn't work as one can expect. Is it an argument for using \rm from time to time?

Best Answer

No, \rm is deprecated and should not be used in a LaTeX2e document (ConTeXt and plain are of course different). What is happening here is deliberate. Issuing \textrm means that the current font family should be roman, not sanserif or monospaced. However, it does not alter the current shape (upright/italic/slanted) or weight (light/medium/heavy): that's the entire point of the LaTeX2e 'New Font Selection Scheme'. In contrast, \rm sets a fixed font: upright, roman, medium weight.

What you therefore are looking for here is altering the font shape, not the family: \textup is the command you are after (cf. \textit, \textsl). Of course, in a real case you should be applying this as an change to the general theorem style not just on an ad hoc basis.

Related Question