客观的
我想对齐以下内容:
expr_a1 <= expr_a2 <= expr_a3 \\
expr_b2 <= expr_b2 <= expr_b3 \\
现在,我希望<=
彼此对齐; 居中expr_*2
;expr_*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}