總是 \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

從 Joseph Wright 的回答中得出一個重要因素,應該強調的是: \textrm\textbf\textit等不是本地模式下普通\rm\bf、等的簡單等價物。\it此外:它們的意義在 LaTeX 中具有不同的類型(例如,族與形狀)。

相關內容