在未对齐的居中公式中将文本向左对齐

在未对齐的居中公式中将文本向左对齐

我正在寻找一种方法来编写几个居中方程式,每行都有左对齐的文本。换句话说,我想将 的功能flalign与混合gather(这样第一列将向左对齐,而第二列将居中),但我还没有找到这样做的方法。请帮忙。

答案1

我曾在评论中问过,中心方程是否对齐,因为在这种情况下方法不同。所以在这里,我使用equationalign环境以及我的宏来展示它\addlefttext[textwidth-fraction]{left text}{equation}

如果将其与equation环境一起使用,则不需要可选参数,并且应该将完整的方程式作为第二个强制参数括起来。

align环境中,需要进行一些手动调整,因为只能将对齐方程的最左边的字段作为的第二个强制参数\addlefttext。这意味着所需的左移将取决于最左边align字段的最终位置。

可选参数提供将标签向左移动的分数\textwidth(相对于第一个字段的右端align)。因此,坏消息是,可选参数必须根据特定align环境进行调整。然而,好消息是,调整后的分数对于对齐环境的每一行都是相同的。

已编辑,以删除对ifthen包的需要。

\documentclass{scrartcl}
\usepackage{stackengine,amsmath,lipsum}
\newcommand\addlefttext[3][-1]{%
  \def\stacktype{L}\def\useanchorwidth{T}%
  \ifdim#1pt<0pt\relax%
    \def\stackalignment{c}%
    \stackon[0pt]{$\displaystyle#3$}{\makebox[\textwidth][l]{#2}}%
  \else%
    \def\stackalignment{r}%
    \stackon[0pt]{$\displaystyle#3$}{\makebox[#1\textwidth][l]{#2}}%
  \fi%
}
\begin{document}
\lipsum[1]
\begin{equation}
\addlefttext{My text}{y = mx + b}
\end{equation}
\begin{equation}
\addlefttext{My other text}{E = mc^2}
\end{equation}
\lipsum[1]
\begin{align}
\addlefttext[.452]{My text}{y} &= mx + b\\
\addlefttext[.452]{My other text}{E} &= mc^2
\end{align}
\end{document}

在此处输入图片描述

答案2

您可以使用我的答案的变体来使用左右注释对齐方程式, 适应flalign

\documentclass{article}
\usepackage{amsmath}

\usepackage{lipsum}

\makeatletter
\newcommand{\Cen}[2]{%
  \ifmeasuring@
    #2%
  \else
    \makebox[\ifcase\expandafter #1\maxcolumn@widths\fi]{$\displaystyle#2$}%
  \fi
}
\makeatother

\begin{document}

\lipsum*[2]
\begin{flalign}
&\text{Straight line} & \Cen{3}{y=mx+q}      && \\
&\text{Parabola}      & \Cen{3}{y=ax^2+bx+c} &&
\end{flalign}
\lipsum[3]

\end{document}

在此处输入图片描述

相关内容