左右两侧均有文本的方程式环境

左右两侧均有文本的方程式环境

编辑:有没有办法在不使用 flalign 环境的情况下完成下面的操作?正如我在问题中提到的,我知道使用 flalign 环境可以实现我所要求的功能。但是,此环境无法包装在新环境中,因此解决方案无法自动化。有人知道其他解决方法吗?

我的问题很简单。我正在尝试创建一个方程式环境,该环境将使用自定义文本和方程式编号标记方程式。文本应左对齐,方程式编号应右对齐。它应该如下所示。

(customTxt)                      1 + 1 = 2                                 (1)

自定义文本由一个复杂的命令生成,该命令使用计数器进行一些算术运算。方程编号与往常一样只是 \theequation。

我当然可以使用例如 flalign 来实现这一点:

\begin{flalign}
  \mycommand && 1 + 1 = 2 &&
\end{flalign}

但是,我似乎无法将其包装到新环境中。这似乎是关于 align cf 的一个已知问题这个问题或者这个问题。我正在处理一份很长的文档,每个方程式都需要像这样标记。我真的很想有某种自定义方程式环境来为我设置这个:

\begin{myEqn}{\mycommand}
  1 + 1 = 2
\end{myEqn}

有人能提供建议吗?编辑如何定义快捷方式或命令来简洁地执行此操作?每次我使用此命令时,部分

\mycommand && ... &&

总是相同的。有没有办法自动完成这个?问题是,在提到的问题中给出的解决方案将不是在 \newenvironment 命令中工作。

答案1

实际上,可以将其包装flalign到不同的环境中。下面我使用以下方法捕获环境的内容:environ并以两种不同的方式像宏一样处理它:

在此处输入图片描述

\documentclass{article}

\usepackage{amsmath,environ}

\NewEnviron{myEqnA}[1]{%
  \begin{flalign}
    #1 && \BODY &&
  \end{flalign}
}

\newcommand{\mycommand}{%
  \text{mycom}% ...or a complicated macro
}

\NewEnviron{myEqnB}[1]{%
  \begin{equation}
    \makebox[0pt]{$\displaystyle \BODY$}% Set equation
    \makebox[0pt][r]{\makebox[.5\linewidth][l]{#1}}% Set custom text (argument)
  \end{equation}
}

\begin{document}

\begin{myEqnA}{\mycommand}
  1 + 1 = 2
\end{myEqnA}

\begin{myEqnB}{\mycommand}
  1 + 1 = 2
\end{myEqnB}

\end{document}

水平对齐的差异源于方程设置方式的差异。在 中myEqnB,方程和自定义文本(参数)都设置在零宽度框中(以便于对齐)。

相关内容