这可能是一个关于 TeX 历史的问题。
为什么没有命令\nothing
?如果没有\nothing
,为什么\varnothing
叫\varnothing
而不是\nothing
?
如果我尝试用 编译文档\nothing
,我会收到错误“!未定义的控制序列。”
命令\varnothing
由包定义amssymb
,并由\emptyset
TeX 本身定义,但均未定义\nothing
。是\nothing
由某物定义的吗?
我联系了 cjw-latex 的作者 Colin J. Wynne。他不记得为什么写了这句话,因为那是 20 多年前的事了。但他表示
我最好的假设是,AMS-(La)TeX 的早期版本确实使用 序列
\nothing
作为 的别名或替代品\emptyset
。AMS-(La)TeX 确实为一些东西想出了自己的名称,还有不少自定义符号。鉴于我更喜欢\varnothing
,我可以假设大多数其他人也喜欢,他们最终放弃了\nothing
,但留下来是\varnothing
因为那是大多数人使用的控制序列。
目前我希望通过阅读可以发现一些东西ftp://ftp.tug.org/historic/不幸的是,他们拥有的最旧版本的 AMS-TeX 是 1993 年的,所以我们无法验证 Colin 的理论。他们还有 1983 年的 LaTeX,它定义了\emptyset
但没有定义\nothing
。
由于这是一个很难的问题,所以我决定悬赏。
答案1
这不是一个明确的答案,但也许是一个合理的假设......
\varnothing
比 短\varemptyset
。数学家通常不是很好的打字员。
尽管\varempty
更短,\empty
但并不是原始的,却具有完全不同的含义,并且“var”只会造成混淆。
“the joy of tex” 虽然提到了这两者,但对此事没有任何有用的说明(抱歉,今天早上一定是自动双关语),事实上甚至没有指出它们具有相同的含义。
控制序列\nothing
做出现在 中cjwmath.sty
,其中它等同于,并且\varnothing
还有另一个别名。我在 tex live 上的任何包中都没有找到这个名字。\leer
\nothing
所以对我来说,其原因已经随着时间的流逝而消失。
我想我可以问问迈克·斯皮瓦克。
我查阅了 ams 在 tex 之前使用的排版系统的文档。斜线圆圈的名称是“空集”,并为empty
输入键盘手分配了一个“短名称”。(该系统是高度编码的,规范代码是*yo
;键盘手可以自由使用他们喜欢的任何形式,即更容易记住的形式。)因此,在创建 ams 符号字体之前,ams 从未使用过与此符号相关的术语“无”。
这些字体的内容是由一个委员会定义的;我已经向委员会为数不多的幸存成员之一发出了询问,希望他能够记得。
我确实问过迈克·斯皮瓦克,他不记得了,但他很确定自己没有责任。
我找到了原始 ams extra 符号字体的最终发布通知1985 年 7 月的《拖船》杂志. 这些是msxm
和msym
字体,最初(错误地)被称为“euler”,这个错误在更新中得到了纠正那年晚些时候。虽然使用了该名称\varnothing
,但是没有对名称的选择做出任何评论。(并且不幸的是,更新扫描中显示该符号的页面丢失了;但是我已经确认它存在于我书架上的纸质副本中。我会尝试更正拖船网站上发布的副本。)
答案2
我在 9 月 15 日的评论中提到了cjw-latex
历史背景,这是 Barbara Beeton 在其有趣的答案当天晚些时候,我对这个问题进行了修正。尽管翻阅了一堆尘封的旧 TeX 书籍,我还是没有发现\nothing
TeX 中其他非局部用法。
相关问题:好看的空集?讨论了空集字形的各种形状,这使我根据该符号在数学中的历史来考虑其他选择。
在布尔巴基之前,空集被表示为 {},有时仍使用(例如参见维基百科和证明维基空集上的文章)。
布尔巴基提出的空集符号是挪威语大写字母 O 加斜线(见安德烈·韦伊所著《数学家的学徒生涯》,英文译本,Google 图书上的 p114也引用自“空集符号(Ø)”一节集合论和逻辑符号的最早用途。这意味着,对于那些想要正宗的布尔巴基群符号的人来说,空集符号可以是\O
(参见 TeXBook,第 52 页,关于斯堪的纳维亚斜线 O 被定义为\O
但未提议用于空集符号的重音符号)。因此,虽然我还没有找到它的权威,但似乎\O
可以合理地将 视为 ,\nothing
而后者则\varnothing
是它的替代品。实际上,没有理由\nothing
为此目的正式定义为 ,因为\O
它更短,而且可以说更有意义,尤其是对于那些习惯于布尔巴基符号及其起源的人来说。(从轻松的角度来说,它还可以避免在日常对话\nothing
中混淆\notin
:-)
为了进行比较,下面显示了“无”或“空集”的四个简单候选者(\phi
和\Phi
不是候选者),以便\not=
于比较空集斜线的角度(一些用户担心), 在适当情况下。
\documentclass[12pt]{article}
\usepackage{amssymb} % for \varnothing
\begin{document}
\begin{enumerate}
\item $S \not= \{\}$
\item $S \not= \O$
\item $S \not= \varnothing$
\item $S \not= \emptyset$
\end{enumerate}
\end{document}
在实践中,这些符号的使用和定义存在重叠,此外,用户对空集符号的偏好也不同。
例如,\varnothing
在 msbm.etx
\setslot{emptyset}
\comment{The symbol `$\varnothing$'.}
\endsetslot
甚至在“The LaTeX Companion”中也可以看到这一点。以下摘录自致 UK-TUG 杂志编辑的一封信巴斯克维尔 第 5 卷第 2 期大卫·卡莱尔:
\emptyset
关于重新定义用户级命令的不明智的评论是正确的,但AMS 包中存在的问题示例只是由于第一次印刷时出现错误而导致的LaTeX 伴侣(如compan.err
LaTeX 发行版中所述。)“amssymb”包未重新定义\emptyset
。它仍然看起来像一个带有一条线的 0。与纯 TEX 中的字形相同。\varnothing
是一个斜线圆。实际上,这引发了一个有趣的问题。Companion 印刷中的错误是由于露西达 字体。(Companion 不使用 cm 或 AMS 字体)。由于 Lucida 确实提供了这两种字形,因此将名称互换只是一个错误,但请考虑一个数学字体系列仅提供一个斜线闭合曲线的假设情况。在将其分配给命令之前,它在视觉上与 ∅ 有多大的不同
\emptyset
?对于文本字体,较大的差异是可以接受的。'Q' 看起来不太像 '问' [字体不同] 但两者都可以通过“Q”访问,任何差异都会被读者接受为字体设计的差异。在数学中,情况根本不清楚……
这是对一篇文章的回应LaTeX 中的数学:第 3 部分,不同类型的数学对象作者:RA Bailey在上一期。
相关行compan.err
来自
-* Page 219, 222 (DRo,FMi)
The \varnothing and \emptyset do show the wrong
character, ie need exchanging.
最后,TeX Live 2011 中出现了一些\nothing
与西里尔字体相关的内容:
$ grep -r '\\nothing[^a-zA-Z]' *
2011/texmf-dist/doc/fonts/ec/tcstdedt.tex:\def\dofonttest#1[#2]#3\nothing{%
2011/texmf-dist/doc/fonts/ec/tcstdedt.tex:\def\dofont{\doentry\expandafter\dofonttest\fontsize[]\nothing\Dofont}
2011/texmf-dist/doc/fonts/ec/ecstdedt.tex:\def\dofonttest#1[#2]#3\nothing{%
2011/texmf-dist/doc/fonts/ec/ecstdedt.tex:\def\dofont{\doentry\expandafter\dofonttest\fontsize[]\nothing\Dofont}
2011/texmf-dist/source/fonts/lh/tex/cfstdedt.tex:\def\dofonttest#1[#2]#3\nothing{%
2011/texmf-dist/source/fonts/lh/tex/cfstdedt.tex:\def\dofont{\doentry\expandafter\dofonttest\fontsize[]\nothing\Dofont}
2011/texmf-dist/source/fonts/lh/tex/cod-edt.tex:\def\docodetest#1[#2]#3\nothing{%
$