在 ams 包中,在 `\alignat` 后添加一个超大数字有问题吗?

在 ams 包中,在 `\alignat` 后添加一个超大数字有问题吗?

在里面官方文件alignat后面跟着“右列和左列”对的总数。

alignat这是文档中的一个示例。

\begin{alignat}{2}
x& = y_1-y_2+y_3-y_5+y_8-\dots
&\quad& \text{by \eqref{eq:C}}\\
& = y’\circ y^* && \text{by \eqref{eq:D}}\\
& = y(0) y’ && \text {by Axiom 1.}
\end{alignat}

后面的数字设置大一点有问题吗alignat?例如:

\begin{alignat}{999}
x& = y_1-y_2+y_3-y_5+y_8-\dots
&\quad& \text{by \eqref{eq:C}}\\
& = y’\circ y^* && \text{by \eqref{eq:D}}\\
& = y(0) y’ && \text {by Axiom 1.}
\end{alignat}

如果我以后添加更多列,这样做可以减少修改数字的努力。

我看不出 KaTex 渲染的结果有什么区别。 在此处输入图片描述

更新

我认为 KaTex 也是用 Tex 实现的,所以我提供了一张关于 KaTex 的图片。但我真正关心的是 Tex 中的实现。

答案1

alignat(像大多数 ams 对齐一样)构建一个\halign对应于左右对齐的列对的模板,类似于\begin{array}{rl rl rl ...}

因此,如果您使用999而不是1标记列表,则构建时间将延长 1000 倍。构建此列表的循环将花费更长的时间,并且列表将占用更多内存。

如果代码是在 1990 年左右编写的,那么运行时间会更长,而且可能由于缺少令牌内存而失败。如今,它效率低下,但在实践中可能并不明显。

文档中没有过度宣传,但您可以使用 -1。这避免了构建列表并使用了原始功能,这\halign意味着可以根据需要将前导标记为重复。

请注意,所有这些考虑仅针对alignat用 TeX 编写的 amsmath 版本。在评论中,您表示您也对 katex 版本感兴趣。该版本是用 JavaScript 实现的,因此实现会有所不同,并且 JavaScript 运行时的内存模型与 tex 的内存模型完全不同。我不知道 katex 如何实现这个参数,JavaScript 特定问题在这里不属于主题。

相关内容