\textrm{} 和 \mathrm{} 之间的区别

\textrm{} 和 \mathrm{} 之间的区别

\textrm{}您能解释一下在数学模式下使用时它们之间的区别吗\mathrm{}?在什么情况下一个比另一个更受欢迎?

答案1

\textrm(和相应的开关\rmfamily)更改字体的一个方面 - 在本例中为系列。如果可能的话,其他方面 - 如系列(粗体或非粗体)或形状(斜体) - 将被保留。 -\text...命令可以嵌套,并且它们的“方面更改”可以组合:

\documentclass{article}
\usepackage[T1]{fontenc}

\begin{document}
\sffamily\bfseries\itshape abc
\textrm{abc}\textrm{\textup{abc}}
\end{document}

文本

\mathrm而其他数学字母表不会只改变字体的一个方面。它们会切换到特定的字体。它们使得以特殊字体打印符号成为可能。完全可以设置一些东西,例如\mathrm使用时间,\mathbf是粗体 palatino,\mathit倾斜的 Arial 等。您还可以通过定义\mathbf为浅色 itshape palatino 和\mathit粗体 Arial 来迷惑所有人。您可以定义自己的特殊数学字体,例如\mathvector\mathmatrix\mathfancy。由于所有这些命令都会切换到专用字体,因此它们不能嵌套。最后一个命令(内部命令)始终获胜:

\documentclass{article}
\usepackage[T1]{fontenc}

\begin{document}

$\mathit{A}
 \mathbf{A}
 \mathit{\mathbf{A}}
 \mathbf{\mathit{A}}$

\end{document}

数学

答案2

抱歉,我使用了巫术,但我想更详细地讲一下:

\textrm命令使用默认字体系列,即\familydefault在 NFSS 中或加载\setmainfont时指定的字体系列fontspec。它还使用周围文本的粗细和形状参数。因此,的参数\textrm将在斜体定理语句中以斜体显示,或在粗体标题中以粗体显示。内容将以文本模式呈现,因此输出中会出现空格。

\mathrm命令使用声明为 的字母表。这是用NFSS 中的或命令或中的命令\mathrm设置的。它将字体更改为正常粗细和直立形状,并且内容将以数学模式呈现,因此空格将被忽略。\DeclareMathAlphabet\DeclareSymbolFontAlphabet\setmathrmfontspec

大多数字体包会将\mathrm和设置\textrm为相同的字体。但有一个例外eulerpx,它将默认罗马字体设置为 Palatino,将数学字母设置为 AMS Euler。

答案3

\mathrm和之间的一个重要区别\textrm是,它将、、等\mathrm解释为数学运算符。因此,连字符被解释并排版为减号。如果您使用文本注释变量,则更合适。通常用于编写函数名称(尽管,-+=\textrm\mathrm\operatorname 可能更合适

例子:

\documentclass[]{article}
\usepackage[fleqn]{amsmath}
\begin{document}
\noindent This is \texttt{{\textbackslash}mathrm}:\\
$\mathrm{hello-world; How are you?}\\
\mathrm{I am fine. Woo-hoo! A+B=C}$
\\

\noindent This is \texttt{{\textbackslash}textrm}:\\
$\textrm{hello-world; How are you?}\\
\textrm{I am fine. Woo-hoo! A+B=C}$

\begin{align}
    \texttt{{\textbackslash}mathrm\:\:\:\:} & x_\mathrm{special-case} = x_\mathrm{normal-case}^{1+\theta} \\
    \texttt{{\textbackslash}textrm\:\:\:\:} & x_\textrm{special-case} = x_\textrm{normal-case}^{1+\theta} \\
    \texttt{{\textbackslash}mathrm\:\:\:\:} & \mathrm{frame-rate} = \mathrm{frames / time-in-seconds}     \\
    \texttt{{\textbackslash}textrm\:\:\:\:} & \textrm{frame-rate} = \textrm{frames / time-in-seconds}     \\
    \texttt{{\textbackslash}mathrm\:\:\:\:} & \mathrm{duration} = \mathrm{end - start}                    \\
    \texttt{{\textbackslash}textrm\:\:\:\:} & \textrm{duration} = \textrm{end - start}
\end{align}
\end{document}

mathrm 与 textrm 输出

相关内容