我注意到,98% 的时间我都会使用align
或aligned
将 放在每行的&
第一个等号之前=
。有没有办法定义一个新环境,自动将方程式与第一个等号对齐(就像&
在那里放置一个不可见的符号一样)?
理想情况下,此代码
\begin{myalign}
a = b \\
= c = d
\end{myalign}
完全等同于此代码
\begin{align}
a &= b \\
&= c = d
\end{align}
答案1
我不确定这是否是一个好主意,但您可以在对齐前言中添加 = 的局部定义:
\documentclass{article}
\usepackage{amsmath}
\makeatletter
\def\myalign@preamble{%
\myeq\hfil
\strut@
\setboxz@h{\@lign$\m@th\displaystyle{##}$}%
\ifmeasuring@\savefieldlength@\fi
\set@field
\tabskip\z@skip
&\setboxz@h{\@lign$\m@th\displaystyle{{}##}$}%
\ifmeasuring@\savefieldlength@\fi
\set@field
\hfil
\tabskip\alignsep@
&&\hfil
\strut@
\setboxz@h{\@lign$\m@th\displaystyle{##}$}%
\ifmeasuring@\savefieldlength@\fi
\set@field
\tabskip\z@skip
&\setboxz@h{\@lign$\m@th\displaystyle{{}##}$}%
\ifmeasuring@\savefieldlength@\fi
\set@field
\hfil
\tabskip\alignsep@
}
\def\myeq{\mathcode`\="8000\begingroup\lccode`\~`\=\lowercase{\endgroup\def~{&=}}}
\newenvironment{myalign}
{\let\align@preamble\myalign@preamble\align}
{\endalign}
\begin{document}
\begin{myalign}
a = b \\
= c = d
\end{myalign}
\begin{align}
a &= b \\
&= c = d
\end{align}
\end{document}