我想将多行放在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
包文档中讨论的那样),可以通过在所需范围的末尾“手动”清除全局定义来提供本地范围的外观(例如,单行中的单元格集)。