我有以下代码:
\documentclass{article}
\usepackage{amsmath}
\begin{document}
\begin{eqnarray*}
\Rightarrow & x^2 > 4 \ \land & x\ge 0
\end{eqnarray*}
\end{document}
我想要做的是在上面设置一个列分隔符eqnarray
。但是,如果我在前面放置一个\land
或尝试在中间添加一个额外的列,LaTeX 会给出错误,并给出类似这样的描述! Missing $ inserted
。
嗯,为什么?谢谢!
Emma 的更新:
\documentclass{article}
\usepackage{amsmath}
\usepackage{amsthm}
\begin{document}
\begin{proof}
$\subseteq$: Sei $x \in M $.
\begin{align*}
\Rightarrow & x^2 > 4 &\text{\ und\ }&x \ge 0 \\
\Rightarrow &\underbrace{x^2 - 4}_{(x-2)(x+2)} > 0 & \text{\ und\ } & x \ge 0 \\
\Rightarrow & x>2 & & \\
\Rightarrow & x \in N & &
\end{align*}
\end{proof}
\end{document}
答案1
普遍的共识是eqnarray
已经过时,而您应该使用amsmath
环境align
、gather
等。
出现这种! Missing $ inserted
情况的原因是eqnarray
只需要三列(LHS、运算符、RHS),因此它会尝试\ge
在文本模式下在不存在的“第四”列中排版。
由于您已经在使用amsmath
,因此您只需将其替换eqnarray
为align
,您的代码就可以运行。
如果你希望列之间的空间更小,也许你真的想使用环境alignat
,它会让不除了明确插入的内容外,请留出空格。例如,
\documentclass{article}
\usepackage{amsmath,mathtools}
\usepackage{amsthm}
\begin{document}
\begin{proof}
$\subseteq$: Sei $x \in M $.
\begin{alignat*}{3} % Argument is number of <r&l> columns
\Rightarrow&\quad & &x^2 > 4 & \text{und\ }&x \ge 0 \\
\Rightarrow& & &\!\underbrace{x^2 - 4}_{\mathclap{(x-2)(x+2)}} > 0
& \quad\text{und\ }&x \ge 0 \\
\Rightarrow& & &x>2 & & \\
\Rightarrow& & &x \in N & &
\end{alignat*}
\end{proof}
\end{document}
就像 一样align
,列在右对齐和左对齐之间交替(我试图通过在代码中添加空格来帮助跟踪)。我还包含了mathtools
命令\mathclap
,这使得括号下的描述不占用水平空间,以便方程式更好地对齐(括号本身也占用了一些空间,我用 来吃掉了\!
)。