多重比对

多重比对

如果我有一串等号对齐的方程式,其中一个方程式太长,需要跨越多行,我该如何创建第二个对齐。例如,在以下示例中

\begin{align*}  
  f(x)&=eqn1\\  
      &=eqn2_part1+eqn2_part2\\   
      &           +eqn2_part3\\  
      &=eqn3\\   
      &=eqn4\\  
\end{align*}

如何对齐等号和加号。

答案1

如果对齐字符妨碍了长方程式,那么使用框\phantom也是一个选择:&&

在此处输入图片描述

\documentclass{article}
\usepackage{amsmath}% http://ctan.org/pkg/amsmath
\begin{document}
\begin{align*}  
  f(x)&=\text{eqn}_1\\  
      &=\text{eqn}_2\text{-part}_1+\text{eqn}_2\text{-part}_2\\   
      &\phantom{{}=\text{eqn}_2\text{-part}_1}{}+\text{eqn}_2\text{-part}_3\\  
      &=\text{eqn}_3\\   
      &=\text{eqn}_4\\  
\end{align*}
\end{document}

不过,需要修正二元运算符 ( {}+) 和关系 ( ) 之间的间距。请参阅 Herbert 的{}=mathmode文档有关 AMS 环境和对齐的更多信息。

答案2

您也可以使用alignat该包中的内容amsmath

在此处输入图片描述

\documentclass{article}

\usepackage{amsmath}

\begin{document}

\begin{alignat*}{2}
  f(x)&=eqn1                    &&   \\  
      &=eqn2_part1              && +eqn2_part2 \\   
      &                         && +eqn2_part3\\  
      &=eqn3                    &&   \\   
      &=eqn4                    &&   \\  
\end{alignat*}

\end{document}

您会注意到环境alignat采用一个参数 - 该参数(引用自文档)

“等式列”的数量:计算任意行中 & 的最大数量,加 1 并除以 2。

答案3

请尝试breqn包。然后使用\begin{dmath}...\end{dmath}环境。例如

\documentclass[12pt]{article} %
\usepackage{breqn}
\begin{document}
\begin{dmath}
        g\left[Pr(unrest_{im}=1)\right]=\alpha_{0i}
            +\alpha_{1}.\left|price\_shock_{im}\right|
            +\beta.{year}+\gamma.region.\left|price\_shock_{im}\right|
            +\delta.{region}+\epsilon_{im}
\end{dmath}
\end{document}

在此处输入图片描述

相关内容