将等式左侧和右侧居中对齐

将等式左侧和右侧居中对齐

对于多行方程,是否有一种简单的方法可以将方程的左侧 (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}

相关内容