![对齐文本方程和数学方程](https://linux22.com/image/287987/%E5%AF%B9%E9%BD%90%E6%96%87%E6%9C%AC%E6%96%B9%E7%A8%8B%E5%92%8C%E6%95%B0%E5%AD%A6%E6%96%B9%E7%A8%8B.png)
如何将文本等式与其下的数学表达式对齐?
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}