使用 \begin{equation} 和 \end{equation} 时数学环境分隔符错误

使用 \begin{equation} 和 \end{equation} 时数学环境分隔符错误

我写了一个矩阵方程

\[
  \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 环境的更详细讨论,请参阅这个答案$$对于“ 、\[alignequation之间有什么区别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 delimiterMissing \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}

相关内容