amsmath
定义\dots
哪个执行前瞻,并根据下一个标记使用不同的点(基本上是垂直居中或不垂直居中)。参见神奇的 \dots 在 amsmath 中如何发挥作用?
然而,正因为如此(至少这是我的理解),当点在最后公式为:
\documentclass{article}
\usepackage{amsmath}
\begin{document}
\[ x + \dots + x + \dots \]
\end{document}
现在,使用时没有什么大问题,+
因为我可以直接使用\dotsb
。但是,自定义命令也可以“感知点”:
\documentclass{article}
\usepackage{amsmath}
\begin{document}
\newcommand*\myop{\DOTSB\rightarrow}
\[ x \myop \dots \myop x \myop \dots \]
\end{document}
在这种情况下,我希望最后一个\dots
根据的定义自动调整自身\myop
。如何做到这一点?
我不一定期望\dots
“记住”之前发生的事情(虽然这会很好),通过在点后重复操作符来给它某种提示是可以的:
\[ x \myop \dots \myop x \myop \dots \hint\myop \]
编辑:或者更好:
\[ x \myop \dots \myop x \myop \dotsfor{\myop} \]
也许可以使用一个前瞻宏来查看其参数的第一个标记?虽然它不仅仅是前瞻,但参数的其余部分应该被丢弃。
答案1
这似乎没有任何现成的文献对此进行解释,但 是解释tex 的喜悦(ams-tex 手册),这是首次定义点变化的地方。来自第 156 页:
因此,当你
\dots
在数学模式下使用时,要排版的特定类型的点由公式中的样式和下一个符号决定。不幸的是,有一种情况下这种方案会失败,即当 不是任何下一个符号。如果您输入 [\dots
公式末尾显示的示例],则\dots
不能指望它知道您想要哪种类型的点 - 它只能向前看,无法知道在它之前输入了什么符号 - 并且\dots
只是在所有这些情况下进行选择\dotso
。因此,当公式以点结尾时,正确的做法是告诉 AMS-TeX 它应该使用哪种类型的点。
在创建 ams-tex 时,已经仔细考虑了这个问题,但边缘情况太难以预测,无法考虑。
我认为双宏方法是您的最佳选择:\myop
和\myopdots
(或其他可能更短的第二个名称);如果您需要更改,则很容易在您的文件中找到。
编辑:正如 @Zarko 在评论中指出的那样,\dotsm
(对于“乘法点”) 是合适的,\dotsb
(“带有二元运算符/关系的点”) 也是合适的。两者都解析为\cdots
。