总是 \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意味着当前字体系列应该是罗马字体,而不是 sanserif 或等宽字体。然而,它确实不是改变当前形状(直立/斜体/倾斜)或粗细(细/中/粗):这就是 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

需要强调的是,Joseph Wright 的回答中有一个重要因素: \textrm\textbf\textit等在本地模式下并不是普通的\rm\bf\it等的简单等价物。此外:它们的含义在 LaTeX 中属于不同类型(例如,family 与 shape)。

相关内容