公式末尾的上下文感知点

公式末尾的上下文感知点

amsmath定义\dots哪个执行前瞻,并根据下一个标记使用不同的点(基本上是垂直居中或不垂直居中)。参见神奇的 \dots 在 amsmath 中如何发挥作用?

然而,正因为如此(至少这是我的理解),当点在最后公式为:

\documentclass{article}
\usepackage{amsmath}
\begin{document}

\[ x + \dots + x + \dots \]

\end{document}

韋斯特.jpg

现在,使用时没有什么大问题,+因为我可以直接使用\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

相关内容