LaTeX 将什么理解为运算符?

LaTeX 将什么理解为运算符?

我不太明白 LaTeX 如何理解通过\operatorname{…}/创建的对象\DeclareMathOperator。我知道它会以直立罗马字体排版,但系统如何处理它?

我应该何时使用这些命令,以便 LaTeX 将该函数视为运算符

  1. $d(x,y)$
  2. $\operatorname{d}(x,y)$
  3. $\mathit{Var}(x)$
  4. $\operatorname{Var}(x)$
  5. $P(X=x)$
  6. $\operatorname{P}(X=x)$
  7. $E[X]$
  8. $\operatorname{E}[X]$
  9. $\mathit{Bin}(n,p)$
  10. $\operatorname{Bin}(n,p)$
  11. $B(\ell,\varepsilon)$
  12. $\operatorname{B}(\ell,\varepsilon)$
  13. $O(x)$
  14. $\operatorname{O}(x)$
  15. \sigma = \mathit{id}
  16. \sigma = \operatorname{id}

d(x,y) 表示距离,Var 表示分布的方差,P 表示概率,E 表示平均值(或分布的均值),B 表示二项分布,B 表示以 l 为中心、半径为 epsilon 的球,O 表示大 O 符号

在这些例子中,哪些应该被 LaTeX 视为运算符?然后排版正确。

我的问题可能是我不太明白运算符是什么(除了它在 LaTeX 中的含义)。

编辑:好吧,正如@cgnieder 所说,这可能偏离主题。问题是,我认为这不是偏离主题的原因是我从未考虑过 LaTeX 世界中的运算符和直立罗马字母。基本上是因为我在手写数学时不会改变形状。因此,我确实认为这与 (La)TeX 有关。抱歉,我编辑了而不是添加评论,但我的连接不允许我这样做。

编辑2:我不想包括微分算子在列表中,因为它有自己的问题

答案1

从数学上来说,运算符(在这种情况下)是一种以标准前缀形式使用的函数,而不是位于其参数之间的二元运算符(例如 +)(或位于其参数之后的后缀运算符,群论学家所钟爱的)。

对于 TeX 来说,运算符是任何(在扩展之后)被原语包围的表达式,或者是数学类 1(大运算符)的\mathop{...}字符标记或-ed 标记。\mathchardef

因此,为了获得具有数学意义的排版,我们的想法是让这两个概念尽可能地匹配。

虽然有一些小问题,特别是单字母原始 mathop 在数学轴上垂直居中,这通常适用于符号d在显示模式下,但对于字母运算符(例如或)来说通常不需要,D尤其是在内联数学中,因此有时您需要使用\mathord而不是,或者通过包含如来\mathop确保 mathop 原子永远不会只有一个字母(这是 AMS所做的)。对于多字母运算符名称,使用罗马字体也是惯例,尽管 TeX 本身并不认为字体选择是 mathop 规范的一部分,但的默认字体与表达式其余部分的字体相同。{}\mathop{d{}}\DeclareMathOperator\mathop

原子的间距取决于其类别(当前情况下为普通或 mathop),但也取决于下一个原子的类别。您的问题有很多例子,只选一个,当它后面跟着有类别的mathop 字符Bin时,您实际上看不到 mathop 间距的效果,但是如果您在它后面跟着一个 mathord 字符,例如,那么您会更清楚地看到差异。(\mathopenX

\documentclass{article}

\usepackage{amsmath}

\begin{document}

$\mathit{Bin}(n,p)$

$\operatorname{Bin}(n,p)$

$\mathrm{Bin}(n,p)$

$\mathop{\mathrm{Bin}}(n,p)$

$\mathrm{Bin} X$

$\mathop{\mathrm{Bin}} X$

\end{document}

在此处输入图片描述

相关内容