表达式等距列的标准数学环境?

表达式等距列的标准数学环境?

我经常需要一个显示环境,让我能够轻松地在同一行中显示等距表达式,并且连续行上的内容与第一行上的内容以相同的 x 坐标为中心显示。我可以像这样获得我想要的效果:

\begin{align*}
x+y && e^{2 \pi i} && \sigma
\\
\text{First} && \text{Second} && \text{Third}
\end{align*}

但它并不完美,因为“列”看起来是右对齐的,而不是居中的。

当然,我可以使用数组轻松实现这一点。但是我必须自己设置列之间的间距,对齐环境会自动为我完成。我只是想知道是否有任何标准数学环境可以做到这一点。我希望能够像这样编码:

\begin{myenvironment*}
x+y & e^{2 \pi i} & \sigma
\\
\text{First} & \text{Second} & \text{Third}
\end{myenvironment*}

答案1

对于等距列(不同于等宽列),您可以将内容放在固定宽度tabular*环境中:

\documentclass{article}
\usepackage{lipsum,array,amsmath}
\begin{document}
​​​​​​​​​​​​​​​​​​​​​​​​\lipsum[1]
\newcolumntype{E}{@{}c@{}}% begin-/end-column definitions
\noindent\begin{tabular*}{\textwidth}{@{\extracolsep{\fill}}E*{3}{>{$}c<{$}}E}
  & x+y & e^{2 \pi i} & \sigma & \\& \text{First} & \text{Second} & \text{Third} &
\end{tabular*}
\lipsum[2]
\end{document}

我定义了一种新的列类型E,仅用作第一列/最后一列的间隔。此外,添加的添加@{\extracolsep{\fill}}会在每列之前/之后延伸,以均匀地分隔开\textwidth。使用*{3}{>{$}c<{$}}允许 3 个类似定义的列(居中c并在数学模式下排版$...$)。

表格中的等距列*

当然,这需要您知道要排版多少列,因为您正在使用环境tabular*。虽然这不太明显,但您可能希望在环境周围添加\renewcommand{\tabcolsep}{0pt}并限定范围,以消除列类型造成的间距。例如代码{...}tabular*E

\newcolumntype{E}{@{}c@{}}% begin-/end-column definitions

{\renewcommand{\tabcolsep}{0pt}% No \tabcolsep
\noindent\begin{tabular*}{\textwidth}{@{\extracolsep{\fill}}E*{3}{>{$}c<{$}}E}
  & x+y & e^{2 \pi i} & \sigma & \\ & \text{First} & \text{Second} & \text{Third} &
\end{tabular*}}

\noindent\begin{tabular*}{\textwidth}{@{\extracolsep{\fill}}E*{3}{>{$}c<{$}}E}
  & x+y & e^{2 \pi i} & \sigma & \\& \text{First} & \text{Second} & \text{Third} &
\end{tabular*}

产生这种边际差异

通过 \tabcolsep 对 tabular* 环境列进行小幅调整

相关内容