让我们看看下面的代码:
\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)。