对齐多个二元运算符

对齐多个二元运算符

客观的

我想对齐以下内容:

expr_a1 <= expr_a2 <= expr_a3 \\
expr_b2 <= expr_b2 <= expr_b3 \\

现在,我希望<=彼此对齐; 居中expr_*2expr_*1右对齐,expr_*3左对齐

我已尝试过:

\begin{flalign}\begin{align}

问题:

这可以用flalign/来实现吗align,或者我应该研究 AmsMath 中的其他包,或者 LaTeX 中的其他包?

最小损坏示例:

\begin{flalign}
a_1    & \leq &    a_2    & \leq &   a_3 \\
b_1    & \leq &    b_2    & \leq &   b_3 \\
\end{flalign}

答案1

以下是如何获得所需的对齐方式 - 使用array

在此处输入图片描述

\documentclass{article}
\begin{document}
\[
  \begin{array}{r@{{}\leq{}}c@{{}\leq{}}l}
    a_1 a_1 a_1 & a_2         & a_3 a_3 a_3 \\[\jot]
    b_1         & b_2 b_2 b_2 & b_3
  \end{array}
\]
\end{document}

关系运算符的对齐方式被指定为列分隔,并具有适当的间距(关系数学运算符的间距{}\leq{}- 在两侧添加一个空对象很重要)。\jot在表达式之间添加一点垂直空间,以便于演示。

如果您希望对表达式进行编号,则还需要做更多的工作。

答案2

对于多个对齐点我建议使用以下alignat环境:

在此处输入图片描述

align环境类似,alignat提供了多个rl对齐方式,但没有方程对之间的间距rl&&有必要使以下列l左对齐(并跳过r右对齐列)。

如果您想要使某一列居中,\makebox{}{}一旦您知道该列中最宽的条目,您就可以使用宏:

在此处输入图片描述


代码(左对齐列):

\documentclass{article}
\usepackage{amsmath}

\begin{document}
\begin{alignat}{3}
a_1 a_1 a_1 & \le a_2         && \le a_3 a_3 a_3 \\
    b_1     & \le b_2 b_2 b_2 && \le b_3
\end{alignat}
\end{document}

代码(居中列):

\documentclass{article}
\usepackage{amsmath}
\usepackage{calc}

\newcommand*{\Widest}{b_2 b_2 b_2}%
\newcommand*{\Center}[1]{\makebox[\widthof{$\Widest$}]{$#1$}}%

\begin{document}
\begin{alignat}{3}
a_1 a_1 a_1 & \le \Center{a_2        } && \le a_3 a_3 a_3 \\
    b_1     & \le \Center{b_2 b_2 b_2} && \le b_3
\end{alignat}
\end{document}

答案3

您尝试过使用表格结构吗?我认为这样的方法可能会有效:

\begin {tabular} {r @{$\leq$} c @{$\leq$} l}
  $a_1$ & $a_2$ & $a_3$ \\
  $b_1$ & $b_2$ & $b_3$
\end {tabular}

相关内容