数学模式下生成文本的各种方法之间的差异

数学模式下生成文本的各种方法之间的差异

\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 的差异

带包的示例文件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}

与 amstext 的区别

  • \mbox使用当前文本字体。大小是恒定的,不会在下标、上标、分数等中发生变化……

  • \textamstext(或amsmath)使用当前文本字体,但根据当前数学样式调整大小。因此,需要\mathchoice对所有数学样式设置四次文本,然后当 TeX 知道数学样式时,它会选择正确的版本,这会影响效率。

  • \textrm使用文本罗马字体,但其他字体参数(如编码、形状和系列)取自当前文本字体。如果加载了包amstext(或),字体大小只会适应当前数学样式。amsmath

  • \textnormal使用,如果加载了包(或) \normalfont,则大小仅适应当前数学样式。amstextamsmath

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

相关内容