\mathrm 和 \operatorname 之间有什么区别?

\mathrm 和 \operatorname 之间有什么区别?

我显然看不出编译 (pdflatex)\mathrm和之间的区别\operatorname。因此,正如标题所示,问题是:有区别吗?在什么场合哪一个更可取?

答案1

它们之间有很多不同。主要的区别在于 的\mathrm{xyz}行为类似于普通字母,而\operatorname{xyz}的行为类似于诸如 之类的函数名称\sin。以下是一个例子

$\sin x + \sin(x+y) + a\sin z$

$\mathrm{sin} x + \mathrm{sin}(x+y) + a\mathrm{sin}z$

在此处输入图片描述

很明显,第二行排版错误。即使你的“运算符”后面需要括号,它也应该是\operatorname,如第三个加数所示,其中有一个很细的空格将系数与运算符分开。

另一个细微的差别在于\mathrm和 中某些字符的解释方式\operatorname。假设你有一个运算符,叫做“pre-norm”,带有连字符。以下是示例

$\operatorname{pre-norm}(\mathbf{v})$

$\mathrm{pre-norm}(\mathbf{v})$

在此处输入图片描述

现在很清楚要使用什么了。事实上\operatorname(对于用 定义的宏也是如此\DeclareMathOperator)以特殊方式处理标点符号;\mathrm相反,将它们视为数学符号。

答案2

\operatorname

该论点以直立模式书写,但前后留有一些额外的空间。

\mathrm

它类似于数学模式(无空格),但处于直立模式。字体大小不会改变。

以下示例显示了差异:

\documentclass[]{article}
\usepackage{amsmath}
\begin{document}
\[x\operatorname{foo}y\]
\[x\mathrm{foo}y\]
\end{document}

在此处输入图片描述

答案3

在其他LaTeX环境中\mathrm{xyz}很有用。MathJax v 2.0

$ i \\, \mathrm{sinh} \; $

给出了等效的输出$ i \sinh x $MathJax无法识别\operatorname

相关内容