我似乎遇到了 eqnarray 环境和 tabstackengine 包(对于矩阵、列向量等非常有用)之间的冲突。
\documentclass{report}
\usepackage{tabstackengine}
\begin{document}
\begin{eqnarray*}
v &=& \bracketMatrixstack{1 & 2 \\ 3 & 3} \bracketVectorstack{-3 \\ 2} \\
a &=& b
\end{eqnarray*}
\end{document}
如果我尝试编译这个,我会得到大约一百万个错误!
答案1
eqnarray
除了它是一个对齐环境之外,该错误与(无论如何都不应该使用)无关。
问题在于,它tabstackengine
无法保护内部&
免受可能的外部对齐的影响。
只需支撑矩阵:
\documentclass{report}
\usepackage{amsmath}
\usepackage{tabstackengine}
\begin{document}
\begin{align*}
v &= {\bracketMatrixstack{1 & 2 \\ 3 & 3}} \bracketVectorstack{-3 \\ 2} \\
a &= b
\end{align*}
\end{document}
我不知道这比
\documentclass{report}
\usepackage{amsmath}
\begin{document}
\begin{align*}
v &= \begin{bmatrix} 1 & 2 \\ 3 & 3 \end{bmatrix}
\begin{bmatrix} -3 \\ 2 \end{bmatrix} \\
a &= b
\end{align*}
\end{document}
您可以修复tabstackengine
:
\documentclass{report}
\usepackage{amsmath}
\usepackage{tabstackengine}
\makeatletter
\renewcommand\ensureTABstackMath[1]{%
{\ifnum`}=\z@\fi
\let\sv@TABmode\TAB@delim\TABstackMath#1\let\TAB@delim\sv@TABmode
\ifnum`{=\z@\fi}%
}
\makeatother
\begin{document}
\begin{align*}
v &= \bracketMatrixstack{1 & 2 \\ 3 & 3} \bracketVectorstack{-3 \\ 2} \\
v &= \begin{bmatrix} 1 & 2 \\ 3 & 3 \end{bmatrix}
\begin{bmatrix} -3 \\ 2 \end{bmatrix} \\
a &= b
\end{align*}
\end{document}
但我仍然看不到任何改善。