cases
我正在尝试在环境中使用环境equation
。示例代码非常简单:
\begin{equation*}
X(\omega) = \begin{cases}
1 \text{se $\omega \in A$} \\
0 \text{se $\omega \in A^c$}
\end{cases}
\end{equation*}
使用 Kile 编译它会导致以下错误:
Missing $ inserted
以及有关不存在结束分隔符的一些其他消息。
\usepackage{amsmath}
在我的文档的开头有。
另外我必须告诉你,我还有另一段代码,它们是相同的,而且运行良好:
\begin{equation*}
B_i = \begin{cases}
A_i^c \text{se $i \in I$,}
\\
A_i \text{se $i \in I \smallsetminus I'$}.
\end{cases}
\end{equation*}
前几天,这个程序也给我带来了一些错误,然后我将 改为\begin{equation*} ... \end{equation*}
和$$
,$$
它就正常工作了。$$
用 方程式 环境替换,错误就神奇地消失了。
我已经尝试用那段代码来做到这一点,但没有任何变化。
答案1
在 displaymath 模式下,您不能使用任何触发段落的命令,例如空行或\par
命令。(这不是一个好主意,但您可以在 cases 环境中使用它)。此外,您不需要切换到文本模式然后再切换到数学模式。您只需在文本上使用文本,其余部分保持原样。
另一点是字符的使用&
,它是环境中应使用的列分隔符cases
。如果其中一个案例以 开头,1250
而另一个案例以 开头,则这一点很明显1
,这会导致对齐不良(尝试不使用&
字符!)。
\documentclass{article}
\usepackage{amsmath}
\begin{document}
\begin{equation*}
X(\omega) = \begin{cases}
1 &\text{se $\omega\in A$}\\
1250 &\text{se $\omega \in A^c$}
\end{cases}
\end{equation*}
\end{document}
还mathtools
软件包提供了一些很好的扩展和错误修复amsmath
dcases*
,因此这里有一个在案例声明的第二个条目中自动切换到文本模式的环境示例:
\documentclass{article}
\usepackage{mathtools}
\begin{document}
\[
X(\omega) = \begin{dcases*}
1 & se $\omega\in A$\\
0 & se $\omega \in A^c$
\end{dcases*}
\]
\end{document}
如果你正在使用该类standalone
(它会产生错误),那么你必须使用它作为
\documentclass[preview]{standalone}
答案2
我发现\begin{cases}
需要用 $ 包裹才能不产生错误。我刚刚学习 LaTeX,但当我确保\end{cases}
在数学环境中时,我的错误就消失了。