\colon 与 : 在课堂上

\colon 与 : 在课堂上

恢复在公式中使用 \colon 或 :?集合符号:\colon vs :,我们来看看 Knuth 的 TeXbook 第 174 页:

$\{\,x\mid x>5\,\}$    { x | x > 5 }
$\{\,x:x>5\,\}$        { x : x > 5 }

在第 438 页上我们看到:

f : A → B            $f\colon A\rightarrow B$
L(a, b; c: x, y; z)  $L(a,b;c\colon x,y;z)$

AMS 的 LaTeX 简明数学指南第 12 页写道:“该命令\colon产生特殊间距,可用于诸如f\colon A\to Bf : A → B 之类的结构。”

总之,这些研究建议您在 { x : x > 5 } 和 f : A → B 中对冒号使用不同的命令(即使用不同的间距)。

现在,让我们假设您确实使用冒号(使用任何命令产生的任何间距)作为类术语内的分隔符(例如,因为竖线 | 或点 ⦁ 被大量用于其他目的)。从纯粹的语法上讲,术语“{x:p}”是变量绑定结构:花括号是变量绑定,冒号是分隔符。该术语在公式上与“∀x⦁p”/“∀x:p”属于同一类,其中量词是变量绑定,点/冒号是分隔符,或与“λx.p”属于同一类,其中小 lambda 是变量绑定,句点是分隔符。因此,所有这些术语的排版都类似,这太合乎逻辑了,与 Knuth 的 TeXbook 相矛盾。但在我看来,这会打破传统:我从未在同一文本中看到所有三个术语的分隔符周围的间距相等。现在,如果您仍然这样做坚持关于一致性,您会选择哪种间距以及如何实现这一点?

一些测试(部分无意义):

\documentclass{article}
\pagestyle{empty}
\usepackage{amssymb}
\begin{document}\noindent
\(\{\,x\in\mathrm{Nat}\mathpunct{:} p\,\}\)\\
\(\forall\, x\in\mathrm{Nat}\mathpunct{:} p\)\\
\(\mathrm{\lambda}\, x\in\mathrm{Nat}\mathpunct{.} p\)\\\\
\(\{\,x\in\mathrm{Nat}\mathrel{:} p\,\}\)\\
\(\forall\, x\in\mathrm{Nat}\mathrel{:} p\)\\
\(\mathrm{\lambda}\, x\in\mathrm{Nat}\mathrel{.} p\)\\\\
\(\{\,x\in\mathrm{Nat}\mathpunct{\colon} p\,\}\)\\
\(\forall\, x\in\mathrm{Nat}\mathpunct{:} p\)\\
\(\mathrm{\lambda}\, x\in\mathrm{Nat}\mathpunct{.} p\)\\\\
\(\{\,x\in\mathrm{Nat}\mathrel{\colon} p\,\}\)\\
\(\forall\, x\in\mathrm{Nat}\mathrel{:} p\)\\
\(\mathrm{\lambda}\, x\in\mathrm{Nat}\mathrel{.} p\)
\end{document}

输出

相关内容