如何在 amsmath `align` 和 friends 中的组中发出 \cr

如何在 amsmath `align` 和 friends 中的组中发出 \cr

我想将多行放在align一个组中。由于组的存在,\\行的分隔会产生错误(如果我猜得没错,组会断开\\,而 latex 会抱怨组未闭合)。

我的目标是拥有一个\mymath可以排版一些复杂公式的宏。公式是固定符号和可选符号的组合,这些符号通过 MWE 中的本地宏(\A\B)定义。我希望定义是\mymath宏参数的本地定义,但我还希望能够从宏的“外部”换行和对齐内容,即无需在align宏本身内部烘焙或类似环境。

平均能量损失

\documentclass[12pt]{article}
\usepackage{amsmath}
\def\A{\alpha_0}\def\B{\beta_0}
\def\mymath#1#2{\def\A{\alpha}\def\B{\beta}\sum #1=[#2]}
\def\mymathb#1#2{\def\A{\gamma}\def\B{\delta}\sum #1=[#2]}
\def\Gmymath#1#2{{\def\A{\alpha}\def\B{\beta}\sum #1=[#2]}}
\def\Gmymathb#1#2{{\def\A{\gamma}\def\B{\delta}\sum #1=[#2]}}

\begin{document}
\begin{equation}
 \mymath{\A}{\B}
 +\A % want alpha_0 here
 \mymathb{\A}{\B}
\end{equation}
\color{red}
\begin{align*}
 \mymath{\A&}{5\B}\\
 \mymathb{\A&}{7\B\\&\qquad\A}
\end{align*}
\color{blue}
\begin{multline*}
 \mymath{\A \B}{long+\\\B superlong \A}
\end{multline*}
\end{document}

如果我使用和\mymath的定义,一旦使用就会丢失,并且不仅仅是参数局部的。\A\B\\

如果我使用\gmymath额外的组会让align和朋友们感到非常困惑\\

问题:有没有办法\mymath\\“泄漏”该组? 同样的故事也适用于对齐字符&

答案1

问题仍然有点不清楚,但我认为你想做出全局定义(因此它们逃离对齐单元格)并且不添加组(这会破坏对齐布局)

在此处输入图片描述

\documentclass[12pt]{article}
\usepackage{color,amsmath}
\def\A{\alpha_0}\def\B{\beta_0}
\def\mymath#1#2{\gdef\A{\alpha}\gdef\B{\beta}\sum #1=[#2]}
\def\mymathb#1#2{\def\gA{\gamma}\gdef\B{\delta}\sum #1=[#2]}


\begin{document}
\begin{equation}
 \mymath{\A}{\B}
 +\A % want alpha_0 here
 \mymathb{\A}{\B}
\end{equation}
\color{red}
\begin{align*}
 \mymath{\A&}{5\B}\\
 \mymathb{\A&}{7\B\\&\qquad\A}
\end{align*}
\color{blue}
\begin{multline*}
 \mymath{\A \B}{long+\\\B superlong \A}
\end{multline*}
\end{document}

请注意,由于每个对齐单元格都是一个组,因此这样的定义必须是全局的(正如blkarray包文档中讨论的那样),可以通过在所需范围的末尾“手动”清除全局定义来提供本地范围的外观(例如,单行中的单元格集)。

相关内容