我写了一个矩阵方程
\[
\left[ \begin{array}{c}
v^{0}_{n} \\
v^{K-1}_{n}
\end{array} \right] =
-\frac{1}{C_{ref}}
\left[ \begin{array}{ccc} V^{0}_{0,n} & \cdots & V^{0}_{M-1,m} \\
\vdots & \ddots & \vdots \\
V^{K-1}_{0,n} & \cdots & V^{K-1}_{M-1,n}
\end{array} \right]
\left[ \begin{array}{c}
C_{0,n} \\
C_{M-1,n}
\end{array}
\right]
\]
我想在这个方程的末尾加上一个方程编号。但我唯一知道的方法是把整个方程放进去\begin{equation}
,\end{equation}
这会产生错误。错误是
错误的数学环境分隔符
当我从方程的开始和结束处删除\[
和\]
时,不再出现错误。我的问题是,为什么我只需在\begin
和中移动方程就会出现此错误\end
。
答案1
LaTeX 宏\begin{equation}
和\[
两者发起显示数学组,宏\end{equation}
和\]
都终止显示数学组。(此外,equation
环境提供了一种对方程式进行编号的方法,而\[ ... \]
没有。)LaTeX 宏\begin{equation}
和的设计目的是为了不让用户打开显示数学组两次;这就是为什么当 LaTeX在处理后\[
遇到时,您会收到错误消息“数学环境分隔符错误” 。\[
\begin{equation}
结果是:使用其中一种方法来设置显示数学组,但不要同时使用两种方法。
有关如何设置各种 LaTeX displaymath 环境的更详细讨论,请参阅这个答案$$
对于“ 、\[
、align
和equation
之间有什么区别displaymath
?”这个问题,无耻的自我引用警报!
答案2
我无法改进 @Mico 对您提出的问题的正确接受答案,但可以建议您使用环境,bmatrix
而不是对括号和数组进行硬编码。您可以节省打字时间,提高可读性,并最大限度地减少摆弄:
\[
\begin{bmatrix}
v^{0}_{n} \\
v^{K-1}_{n}
\end{bmatrix} =
-\frac{1}{C_{ref}}
\begin{bmatrix}
V^{0}_{0,n} & \cdots & V^{0}_{M-1,m} \\
\vdots & \ddots & \vdots \\
V^{K-1}_{0,n} & \cdots & V^{K-1}_{M-1,n}
\end{bmatrix}
\begin{bmatrix}
C_{0,n} \\
C_{M-1,n}
\end{bmatrix}
\]
答案3
由于这是在 Google 上查找错误时建议的线程Bad math environment delimiter
,因此让我添加一个额外的修复。要点是:Mico 答案的逆序也是正确的,即如果您在数学环境中,\begin{equation}
等等\begin{align}
... 不起作用。
您可能会遇到三种相关错误:Bad math environment delimiter
、Missing \endgroup inserted
和\begin{align} allowed only in paragraph mode
,具体取决于您是否mathtools
加载以及您打开的数学环境。
就我的情况而言,我加载后不小心忘记了段落中几行上方的mathtools
结尾,导致 LaTeX 停留在数学模式。我的情况的 MWE:$
begin{equation}
\documentclass[a4paper]{article}
\usepackage{mathtools} % Without this loaded, you get "Missing \endgroup" i.o. "Bad math".
\begin{document}
$\zeta(s) is the Riemann zeta function. Oops, forgot a dollar sign there.
Some more sample text.
I, the unsuspecting author, will now attempt to enter a math environment.
\begin{equation} % If this is align, you get "allowed only in paragraph mode".
\zeta(s) = \sum_{n=1}^\infty \frac{1}{n^s}
\end{equation}
The compiler did not like that.
\end{document}