\text
、、和\textrm
(以及可能其他常用于在数学模式下生成文本的命令)之间有什么区别?\textnormal
\mbox
各种 (La)TeX 教程教授不同的方法,我相信其中要么有一个最好的方法,要么有略有不同的使用场景。
答案1
更新:添加的示例无需amstext
展示该包对其他命令的影响\text...
。
amstext
不含包(或)的示例文件amsmath
:
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{tgpagella}
\newcommand*{\test}[1]{%
$\csname #1\endcsname{#1}^{\csname #1\endcsname{#1}}$%
}
\renewcommand*{\arraystretch}{1.5}
\begin{document}
\sffamily\bfseries\itshape Text mode: sans serif, bold, italics.
\bigskip
\begin{tabular}{@{}l@{}}
\test{mbox}\\
\test{textrm}\\
\test{textnormal}\\
\test{mathrm}
\end{tabular}
\end{document}
带包的示例文件amstext
:
\documentclass{article}
\usepackage{amstext}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{tgpagella}
\newcommand*{\test}[1]{%
$\csname #1\endcsname{#1}^{\csname #1\endcsname{#1}}$%
}
\renewcommand*{\arraystretch}{1.5}
\begin{document}
\sffamily\bfseries\itshape Text mode: sans serif, bold, italics.
\bigskip
\begin{tabular}{@{}l@{}}
\test{mbox}\\
\test{text}\\
\test{textrm}\\
\test{textnormal}\\
\test{mathrm}
\end{tabular}
\bigskip
$ \textnormal{[a b c \"a \ss] becomes }
\mathrm{[a b c \"a \ss]}
\textnormal{ in mathrm}
$
\end{document}
\mbox
使用当前文本字体。大小是恒定的,不会在下标、上标、分数等中发生变化……\text
包amstext
(或amsmath
)使用当前文本字体,但根据当前数学样式调整大小。因此,需要\mathchoice
对所有数学样式设置四次文本,然后当 TeX 知道数学样式时,它会选择正确的版本,这会影响效率。\textrm
使用文本罗马字体,但其他字体参数(如编码、形状和系列)取自当前文本字体。如果加载了包amstext
(或),字体大小只会适应当前数学样式。amsmath
\textnormal
使用,如果加载了包(或)\normalfont
,则大小仅适应当前数学样式。amstext
amsmath
\mathrm
使用数学罗马字体,可能与文本罗马字体不同。间距也是根据数学计算的,编码也与文本编码不同。
对于数学中的文本,我会加载包amstext
(或amsmath
)并使用\text
或\textnormal
。\text
输入起来更短,但对当前文本字体的依赖有时可能是优点,有时可能是缺点。对于下标,我更喜欢\textnormal
:
v_{\textnormal{car}} \ge v_{\textnormal{bicycle}}
但最好在当前文本字体中设置附加文本:
a \stackrel{\text{according to \dots}}{=} \frac{b}{c} \quad \text{for $c \ne 0$}
答案2
我个人认为 Herbert Voss 的mathmode
文档的权威指南之一mathmode
。
他在第 9 节第 27 页中介绍了这些差异
如果您已经安装了 TeX Live,您可以使用 在您的机器上访问它texdoc mathmode
,在 MiKTeX 中您可以使用 获得它texdoc voss-mathmode
。
答案3
无需使用任何包。
\documentclass{article}
\begin{document}
$Math - \mathrm{upright} - \textrm{upright} - \mbox{upright}$ \par\Large
$A^{\mathrm{text}}_{\mathrm{text}}$ \quad $A^{\textrm{text}}_{\textrm{text}}$\quad
$A^{\mbox{text}}_{\mbox{text}}$ \quad $A^{\textnormal{text}}_{\textnormal{text}}$
\end{document}
但是,对于文本,应该使用使用正确字体大小的amsmath
命令\text