\tag 中的 \substack 错误

\tag 中的 \substack 错误

由于某种原因,使用\substack标签的标签会导致此类错误

在此处输入图片描述

\documentclass{article}
\usepackage{amsmath}

\begin{document}

\begin{gather}
p+q=w \\
a+b=c \label{eq:1} \tag{$\substack{a\\a}$}
\end{gather}

\eqref{eq:1}

\end{document}

然而其他任何事情,甚至\vec{a}内部的数学\tag运算都完全正常。

为什么要这样做\substack?我该如何解决这个问题?

答案1

使用 texlive 2022 您将获得

! TeX capacity exceeded, sorry [input stack size=10000].
\protect ->\noexpand \protect 
                              \noexpand 
l.9 \end{gather}
                
!  ==> Fatal error occurred, no output PDF file produced!

使用 texlive 2021

! TeX capacity exceeded, sorry [input stack size=5000].
\restore@math@cr ->\def \math@cr@@@ 
                                    {\cr }
l.9 \end{gather}
                
!  ==> Fatal error occurred, no output PDF file produced!

使用 2020 年,您会得到显示的错误

! Use of \math@cr@@ doesn't match its definition.
\new@ifnextchar ...ved@d = #1\def \reserved@a {#2}
                                                  \def \reserved@b {#3}\futu...
l.9 \end{gather}
                
? 

使用当前的 texlive 2022,您可以使用\protect。这也适用于 2021 年,但不适用于较旧的 texlive 2020 版本。

\documentclass{article}
\usepackage{amsmath}

\begin{document}

\begin{gather}
p+q=w \\
a+b=c \label{eq:1} \tag{$\protect\substack{a\\a}$}
\end{gather}

\eqref{eq:1}

\end{document}

相关内容