对于多行方程,是否有一种简单的方法可以将方程的左侧 (LHS) 和右侧 (RHS) 围绕对齐的等式居中。我的意思是 1.) 每个方程的等号都出现在同一个位置,2.) LHS 上表达式的中心出现在 LHS 上最长表达式的中心。RHS 也是如此。这可以通过(对称地)用幻像字符填充所有表达式以使它们等长来实现。但这是一种繁琐且不太易读的格式化方法。
请参见下面的示例,我通过添加幻影字符实现了所需的格式。
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}
\begin{document}
\begin{align}
\phantom{aa} a \phantom{aa} &= \phantom{aaaaa}b \\
abcde &= \phantom{aaaaa} c\\
\phantom{aa} a \phantom{aa} &= eefefefefef \\
\end{align}
\end{document}
答案1
在我看来,所提议的调整根本就没有什么吸引力。
您可以这样做。 的第一个参数\eqmathbox
是任意标签,对于任何一组要均衡的框,该标签都应该不同。
\documentclass{article}
\usepackage{amsmath,eqparbox}
\newcommand{\eqmathbox}[3][c]{%
\eqmakebox[#2][#1]{$\displaystyle#3$}%
}
\begin{document}
\begin{gather}
\eqmathbox{A-l}{a} = \eqmathbox{A-r}{b} \\
\eqmathbox{A-l}{abcde} = \eqmathbox{A-r}{c} \\
\eqmathbox{A-l}{a} = \eqmathbox{A-r}{eefefefefee}
\end{gather}
\end{document}
我使用是gather
因为宽度都一样。align
如果只想均衡一侧的表达式,则要使用。
如果左侧宽度相差不是很大的话,我或许能够理解使其均等化,但一般来说,使整个集合居中是不可能的。
答案2
以下方法并非完全自动,因为用户仍必须选择最宽的 LHS 和 RHS 粒子作为相应\padbox
指令的第一个参数。但是,这似乎比使用适当选择的\phantom
指令手动填充各行更方便。
顺便说一句,我不得不同意@daleif 的观点,即这种布局并不那么吸引人。
\documentclass{article}
\usepackage{amsmath,calc}
\newcommand\padbox[2]{\makebox[\widthof{$\displaystyle #1$}]{$\displaystyle #2$}}
\begin{document}
\begin{align}
\padbox{abcde}{a} &= \padbox{eefefefefee}{b} \\
abcde &= \padbox{eefefefefee}{c}\\
\padbox{abcde}{a} &= eefefefefee
\end{align}
\end{document}