代码

代码

我希望能够对齐方程式,如下所示: 在此处输入图片描述

我用了这个代码:

\begin{align*}
    \displaystyle {eq1} &\Longleftrightarrow& \displaystyle {eq2}
    \\\\
    \displaystyle {eq3} &\Longleftrightarrow& \displaystyle {eq4}
\end{align*}

每个 eq#s 的长度都不同。如果我使用此代码,则结果如下: 在此处输入图片描述

答案1

使用alignat环境。

代码

\documentclass{article}
\usepackage{mathtools}

\begin{document}
\begin{alignat}{3}
  aaa&=bbb &&\quad\Longleftrightarrow\quad & ccc&=ddd \\
  a  &=b   &&\quad\Longleftrightarrow      & c  &=d
\end{alignat}
\end{document}

输出

在此处输入图片描述

答案2

由于您使用的是align*,我假设您对对方程进行编号不感兴趣。因此,使用array可以让您自由地根据需要指定对齐方式:

在此处输入图片描述

\documentclass{article}

\usepackage{array}

\begin{document}

\[
  \setlength{\arraycolsep}{0pt}% Remove horizontal column separation
  \renewcommand{\arraystretch}{1.2}% Stretch vertically
  \begin{array}{ *{3}{>{\displaystyle}c} }
    \mbox{a very long LHS} & {}\Longleftrightarrow{} & \mbox{a very long RHS} \\
       \mbox{short LHS}    & {}\Longleftrightarrow{} &    \mbox{short RHS}
  \end{array}
\]

\end{document}

答案3

一个简单的解决方案,使用eqparbox包。我定义了一个\eqmathbox命令,它以 displaystyle 数学模式输入其内容。它使用tag 确保所有具有相同标签的框都具有最大内容的宽度。

\documentclass{article}

\usepackage{eqparbox}
\newcommand\eqmathbox[2][]{\eqmakebox[Eq#1]{\ensuremath{ \displaystyle#2}}}

 \usepackage{mathtools}

\begin{document}

  \begin{align*}
    \eqmathbox[1]{\text{a very long equation}} & \Longleftrightarrow \eqmathbox[2]{\text{a still looooonger equation}} \\
       \eqmathbox[1]{\text{a short equation}} &{} \Longleftrightarrow \eqmathbox[2]{\text{a shorter eq}}
  \end{align*}

\end{document} 

在此处输入图片描述

答案4

环境IEEEeqnarray体积庞大,但功能强大。它可让您拥有多个对齐的列,还可为您的=\Leftrightarrow标志周围提供适当的间距。

\usepackage[retainorgcmds]{IEEEtrantools}
\begin{document}

\begin{IEEEeqnarray*}{rClCrCl}
   aaa & = & bb & \Leftrightarrow & cccc & = & dd
\\ e & = & f & \Leftrightarrow & g & = & hhhhh
\end{IEEEeqnarray*}
\end{document}

输出:

好看的方程式。

IEEEtrantools 维护良好,但安装起来非常困难。此 StackExchange 问题提供了正确安装过程的良好指南,但一个完全可行的选择是从下载 IEEEtrantools.sty这里并将其放在与代码相同的文件夹中。

相关内容