定义一个始终与第一个等号对齐的对齐环境

定义一个始终与第一个等号对齐的对齐环境

我注意到,98% 的时间我都会使用alignaligned将 放在每行的&第一个等号之前=。有没有办法定义一个新环境,自动将方程式与第一个等号对齐(就像&在那里放置一个不可见的符号一样)?

理想情况下,此代码

\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}

相关内容