段落在对齐*完成之前结束 - 找不到拼写错误

段落在对齐*完成之前结束 - 找不到拼写错误

这是有问题的代码

\end{align*} 
These correspond to translations $z \mapsto z + \lambda$
\begin{align*}
M \text{ is elliptic } &\iff M \text{ has exactly 2 complex conjugate fixed points } \\
&\iff M & \!\begin{aligned[t] \text{ is conjugate in } \SL_2{\mathbb{R}} \text{ to }
\begin{pmatrix}
\cos(\theta) & \sin(\theta) \\ -\sin(\theta) & \cos(\theta)
\end{pmatrix} \\  
\pi \le \theta \le \pi, \, \theta \neq 0
\end{aligned}
\end{align*} 

我已经尝试调试它一个小时了。我看过以前的帖子,知道我应该在 \align 环境中寻找换行符,或者在最后一行寻找双斜杠,但我就是找不到。

答案1

\begin{aligned[t]没有关闭}。然后您问了一个显而易见的后续问题:您如何才能发现这个问题,并且不会让它再次发生。

发现这个问题的最简单方法是使用编辑器中的语法高亮功能。让我们来看看应该是一个可编译语句(环境{align*}):

  • 在 Overleaf 中,会立即在有问题的位置(以及不平衡\begin{align*}\end{aligned})突出显示该片段。
  • 在 TeXWorks 中,所有内容都\begin{aligned[t] \text{ is conjugate in }以“环境”颜色突出显示,表明它认为这是环境名称(如果您不仔细查看,这确实有点微妙)。此外,如果您跳过有问题的部分并输入},它将显示匹配的{内容\begin{aligned
  • 在 TeXShop 中,如果你转到该段的末尾并使用Source -> Close Current Environment(在 Mac 上为 ctrl-cmd-c),它会说当前环境已关闭\end{aligned[t] \text{ is conjugate in }。与 TeXWorks 一样,如果你越过有问题的部分并输入},它会突出显示从不匹配的部分开始的所有{内容\begin{aligned
  • 我不确定其他编辑是否如此。

下一步是注释掉应该没问题的内容,然后看看是否仍然有错误。将代码变成可编译的示例,然后注释掉几行,我得到:

\documentclass{amsart}
\begin{document}
%\end{align*} 
%These correspond to translations $z \mapsto z + \lambda$
\begin{align*}
%M \text{ is elliptic } &\iff M \text{ has exactly 2 complex conjugate fixed points } \\
&\iff M & \!\begin{aligned[t] \text{ is conjugate in } \SL_2{\mathbb{R}} \text{ to }
%\begin{pmatrix}
%\cos(\theta) & \sin(\theta) \\ -\sin(\theta) & \cos(\theta)
%\end{pmatrix} \\  
%\pi \le \theta \le \pi, \, \theta \neq 0
\end{aligned}
\end{align*} 
\end{document}

仍然有相同的错误和消息。下一步是找出剩余行中哪一部分导致了问题。在剩下的行中,只有一行有多个部分,所以我们可以将该行拆分成多行并注释掉所有可以注释掉的内容。这样我们就得到了:

\documentclass{amsart}
\begin{document}
%\end{align*} 
%These correspond to translations $z \mapsto z + \lambda$
\begin{align*}
%M \text{ is elliptic } &\iff M \text{ has exactly 2 complex conjugate fixed points } \\
%&
%\iff M
%& \!
\begin{aligned[t]
%\text{ is conjugate in }
%\SL_2{\mathbb{R}}
%\text{ to }
%\begin{pmatrix}
%\cos(\theta) & \sin(\theta) \\ -\sin(\theta) & \cos(\theta)
%\end{pmatrix} \\  
%\pi \le \theta \le \pi, \, \theta \neq 0
\end{aligned}
\end{align*} 
\end{document}

如果我们仍然无法发现错误,下一步就是将aligned和 环境分开。它仍然需要位于数学环境中,因此我们将它移至\[...\]。这样做表明我们的问题出在aligned而不是align*,因此我们可以注释掉:

\documentclass{amsart}
\begin{document}
%\end{align*} 
%These correspond to translations $z \mapsto z + \lambda$
%\begin{align*}
%M \text{ is elliptic } &\iff M \text{ has exactly 2 complex conjugate fixed points } \\
%&
%\iff M
%& \!
%\end{align*} % moved from below
\[
\begin{aligned[t]
%\text{ is conjugate in }
%\SL_2{\mathbb{R}}
%\text{ to }
%\begin{pmatrix}
%\cos(\theta) & \sin(\theta) \\ -\sin(\theta) & \cos(\theta)
%\end{pmatrix} \\  
%\pi \le \theta \le \pi, \, \theta \neq 0
\end{aligned}
\]
\end{document}

这仍然有同样的错误,如果我们删除注释行,我们会得到 7 行示例:

\documentclass{amsart}
\begin{document}
\[
\begin{aligned[t]
\end{aligned}
\]
\end{document}

希望您在隔离该\begin{aligned[t]行之后就能发现错误,而不需要转到第 7 行示例,但这确实可以减少问题以避免再次发生。

相关内容