对齐文本方程和数学方程

对齐文本方程和数学方程

如何将文本等式与其下的数学表达式对齐?

Some text before          Sum = Summand + Summand * Factor of Eternity
                           x  =    a    +    b    *        c

我目前得到了这个:

\documentclass[a4paper]{article}
\usepackage{amsmath}
\begin{document}

\begin{flalign*}
  \text{Text before} && Sum & = \text{Summand + Summand * Factor of Eternity} & \\
  && x & = a + b * c &
\end{flalign*}

\end{document}

我正在寻找alignat和的组合。flalign

答案1

为什么不使用tabular

在此处输入图片描述

代码

\documentclass[a4paper]{article}
\usepackage{amsmath}
\usepackage{array}

\begin{document}

\noindent
\begin{tabular}{p{2cm}c@{$\;=\;$}c@{$\;+\;$}c@{$\;*\;$}c}
  Text before & Sum &  Summand &  Summand & Factor of Eternity \\
  & $x$ &  $a$ & $b$ & $c$
\end{tabular}

\end{document} 

答案2

只是为了完整性,这里是使用 TABstack 完成的方法。

告诉\TABbinary堆栈组件假设在 的远端有操作数&,因此对于任何相邻的运算符(例如=+),为它们留出适当的数学空间。默认值是 ,\TABunaryLeft这将告诉+a 后面的 a&将自己视为正号而不是加法运算符(但在这种情况下,我们希望&+&被视为加法运算符)。当然,这些设置可以以通常的方式手动覆盖:{+}强制一元,{}+{}强制二元。

行之间的间隙(默认为 3pt)可以通过可选参数来更改\tabbedstackunder,例如\tabbedstackunder[6pt]{...}{...}

\documentclass{article}
\usepackage{tabstackengine}
\usepackage{amsmath}
\stackMath
\begin{document}
\noindent Some text before$\qquad$\TABbinary\tabbedstackunder
  {\text{Sum}&=&\text{Summand} &+&\text{Summand}&*&\text{Factor of Eternity}}
  {x&=&a&+&b&*&c}
\end{document}

在此处输入图片描述

答案3

我建议在显示的数学环境中使用矩阵:

\documentclass[a4paper]{article}
\usepackage{amsmath}
\begin{document}

  \begin{flalign*}
     \begin{matrix}
       \text{Text before} & \text{Sum} & = &\text{Summand} &+& \text{Summand}& *& \text{Factor of Eternity}  \\
        & x & = &a &+& b &*& c
    \end{matrix}
  \end{flalign*}

\end{document}

这样,您就拥有一个用于显示属于一起的各个部分的单一数学环境,并且当您在某个时候需要此类构造的方程编号时,您不会遇到麻烦。

如果你觉得列之间的空间太宽,你可以使用以下方法进行调整

\arraycolsep 1pt

之间。\begin{flalign*}\begin{matrix}

相关内容