我注意到,当 a\dotsc
两边各有一个分号时,省略号周围的空间会不均匀。使用
\documentclass{article}
\usepackage{amsmath}
\begin{document}
\begin{align*}
&[A_1;\dotsc;A_n]\\
&[A_1;\dots;A_n]\\
&[A_1;\ldots;A_n]
\end{align*}
\end{document}
我明白了
正如您所见,两者都\dots
运行\ldots
正常。
这是一个已知问题吗?我正在使用amsmath
2013/01/14 v2.14。
答案1
该行为是从 ams-tex 继承而来的 - 但是 ams-tex 中有一种特定的“理解”尚未被继承。
ams-tex 假设\ldots
仅在文本中使用,然后(引用未公开分发的内部文档)
在文本中,我们希望忽略 \dots 之前的空格,并且如果下一个标记(通过 \futurelet 获取)是 , 或 . 或 ; 或 : 或 ? 或 !,我们希望留下一个额外的细空格;否则(接下来是另一个字母或符号),我们希望留下一个普通空格。
通过使用(普通)tex 处理此文件可以轻松证明这一点:
\input amstex
$$ A_1 ; \dots ; A_n \qquad A_1 ; \dotsc ; A_n \qquad A_1 ; \ldots ; A_n $$
\bye
结果在 之后\ldots
以及 之后插入了细空格\dotsc
。
\dots
仅此而已,就具有此上下文中所需的均匀间距。
可惜的是,没有文件amsmath.dtx
说明为什么做出这样的改变。
看看tex 的喜悦,第 152 页,给出了另一个提示:\dotsc
用于以点结束(数学)短语的例子中:
Consider the infinite sequence $a_1, a_2, a_3,\dots$.
虽然在这个例子中,下一个是句号(句子结束),但它也可能是一个分号(从句结束),在这种情况下,额外的细空格是可取的,并且建议(“正确的做法”)“是告诉 AMS-TeX 应该使用哪种点:”
Consider the infinite sequence $a_1, a_2, a_3,\dotsc$.
对于我自己来说,我会使用\dots
而不是\ldots
或\dotsc
,只检查输出以检查我是否真的应该使用\cdots
。
答案2
这不是一个“已知问题”,而是一个非常明确的设计目标\dotsc
。
\ifx\@let@token;\@ldots\,
即它测试跟随者;
并添加一个较窄的空间\,
遗憾的是,我怀疑这种选择的原因已经随着时间的流逝而逐渐被遗忘(除非芭芭拉给出理由)