在公式中使用 \colon 或 :?

在公式中使用 \colon 或 :?

我注意到,在许多文档中,你会遇到$f: X \to Y$而不是$f \colon X \to Y$。另一个例子是量化表达式:$\forall x: P (x)$与 相比$\forall x \colon P(x)$。我发现\colon视觉上更令人愉悦,但是有时我觉得我似乎是唯一一个,因为绝大多数文档似乎都使用了:。是否有经验法则来决定在哪里应该使用\colon:

答案1

:和都\colon排版为冒号,但是\colon是标点符号,而:被视为与间距相关的符号。

主要用于:集合描述

\{\, x : x \notin x \,\}

(有人使用\mid此方法,但简单的使用|是错误的;Knuth 建议在\{前后留出较窄的空间,使用时要保持一致,或者不要使用)。\}

反过来,\colon 应该用于映射

f\colon A \to B

但不幸的是,许多作家没有做出这种区分,而使用了:,导致间距错误。

要遵循的规则是一样的:\colon当它是“标点冒号”时使用,:当它表示其左侧和右侧之间的关系时使用。在“for all x:”之类的情况下,我会将冒号视为标点,因此\forall x\colon

请注意,该amsmath包改变了的定义,\colon因此它与标点符号不完全相同:

\renewcommand{\colon}{\nobreak\mskip2mu\mathpunct{}\nonscript
  \mkern-\thinmuskip{:}\mskip6muplus1mu\relax}

这会在冒号前添加一些空格,这似乎比简单的更正确\mathpunct

答案2

如果您尝试在类型理论中排版变量具有类型冒号,则需要{:}\mathord{:}(它们显示相同)。例如,您将获得一个漂亮的 STLC 身份函数$\lambda x {:} A . x$

这一页进行更普遍的讨论。

答案3

OpTeX:在加载其 Unicode 数学时设置了不同的值。原因是 MathClass-15.txt 将 定义为标点符号。我们保留了普通 TeX 的关系:设置,并保留了 Unicode 建议:。::\mathpunct

后果:您可以输入,结果正常。当然,空格比$f: A → B$LaTeX 的空格略小,但恕我直言,LaTeX 定义的空格比需要的要大(因为它在 Plain TeX 默认的关系和所需标点符号之间做出了糟糕的妥协)。OpTeX 没有任何妥协,是标点符号,您可以自然地输入它,而无需任何控制序列。\colonamsmath\colon::

另一方面,在某些情况下$x \mathbin: y$您需要使用 TeX 原始控制序列\mathbin\mathrel获得良好的空间。

做出这一决定的原因是:在数学排版中, :as的使用比在所有其他情况下$f: A → B$的使用更为常见。:

相关内容