我想在匹配和命令中对齐方程(使用包align
中的环境) 。例如:amsmath
\left(
\right)
\documentclass[a4paper,12pt]{article}
\usepackage{amsmath}
\begin{document}
\begin{align}
a \left( b &= c \right)\\
d \left( e &= f \right)
\end{align}
\end{document}
但是该代码给出了这个错误:
额外},或者忘记了\right。
当我删除分隔符时,错误消失。有解决方法吗?
答案1
您不能将\left
...拆分\right
到对齐制表符之间。一种解决方案是使用\big
-delimiters(不需要成对使用):
\documentclass{article}
\usepackage{amsmath}% http://ctan.org/pkg/amsmath
\begin{document}
\begin{align}
a \bigl( b &= c \biggr) \\
d \Bigl( e &= f \Biggr)
\end{align}
\end{document}
上面的例子只是为了说明你可以选择的一些分隔符大小。请参阅4.14.1 分隔符大小的amsmath
用户指南更多选项:
或者,可以手动调整对齐方式并&
完全避免使用。但是,上述选项更容易管理。
答案2
您还可以将 (i)\left(
与\right.
或 (ii)\left.
与一起服用\right)
。换句话说,
\documentclass[a4paper,12pt]{article}
\usepackage{amsmath}
\begin{document}
\begin{align}
a \left( b \right. &= \left. c \right)\\
d \left( e \right. &= \left. f \right)
\end{align}
\end{document}
这样,您就不会收到您发布的错误。
答案3
您可以使用一个非常有用的解决方法mathtools 手册,第 29 页,甚至包括换行符:
\usepackage{mathtools}
\newcommand\MTkillspecial[1]{% helper macro
\bgroup
\catcode`\&=9
\let\\\relax%
\scantokens{#1}%
\egroup
}
\DeclarePairedDelimiter\brackets()
\reDeclarePairedDelimiterInnerWrapper\brackets{star}{
\mathopen{#1\vphantom{\MTkillspecial{#2}}\kern-\nulldelimiterspace\right.}
#2
\mathclose{\left.\kern-\nulldelimiterspace\vphantom{\MTkillspecial{#2}}#3}
}
平均能量损失
\documentclass[paper=a6]{scrartcl}
\usepackage{mathtools}
\newcommand\MTkillspecial[1]{% helper macro
\bgroup
\catcode`\&=9
\let\\\relax%
\scantokens{#1}%
\egroup
}
\DeclarePairedDelimiter\brackets()
\reDeclarePairedDelimiterInnerWrapper\brackets{star}{
\mathopen{#1\vphantom{\MTkillspecial{#2}}\kern-\nulldelimiterspace\right.}
#2
\mathclose{\left.\kern-\nulldelimiterspace\vphantom{\MTkillspecial{#2}}#3}
}
\begin{document}
\begin{equation}
\begin{alignedat}{2}
x &= \brackets*{a &&+ \int_a^b x \,\mathrm{d}x}\\ % auto size
&= \brackets*{\text{loooong} &&+ (b^2 - a^2)}\\
&= \brackets[\bigg]{\text{loooong} &&+ (b^2 - a^2)}\\ % manual size
&= \brackets[\bigg]{\text{loooong} &&\\&&&+ (b^2 - a^2)}
\end{alignedat}
\end{equation}
\end{document}
注意:如果你查看 mathtools 的 pdf 文档,第 29 页后面的符号\catcode
似乎是一个撇号。但查看.dtx
源代码后,该符号实际上是一个反引号。