如果我想修补所有amsmath
显示数学环境以将其包装在另一个环境中(例如equation
例如这个答案调整线宽),有没有一种方便的方法可以一次性修补所有这些环境?也就是说,这些环境中是否有任何通用钩子可用于此目的?还是我必须单独修补所有这些环境?
在下面的 MWE 中,我只修补了equation
,但希望所有其他的也以相同的方式进行修补。
\documentclass{article}
\usepackage[
showframe,
includemp,
margin=2cm,
marginparwidth=5cm,
marginparsep=.5cm,
]{geometry} % I know, terrible. It's just for illustration!
\usepackage{lipsum}
\usepackage{etoolbox}
\usepackage{amsmath}
\usepackage[strict]{changepage}
\newenvironment{fullwidth}
{\begin{adjustwidth*}{}{\dimexpr-\marginparwidth-\marginparsep\relax}}
{\end{adjustwidth*}}
\preto\equation{\fullwidth}
\appto\endequation{\endfullwidth}
\begin{document}
\def\longeq{\sum_{i=1}^{20} i = 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11 + 12 + 13 + 14 + 15 + 16 + 17 + 18 + 19 + 20}
\def\alongeq{\sum_{i=1}^{20} i &= 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11 + 12 + 13 + 14 + 15 + 16 + 17 + 18 + 19 + 20}
\begin{equation}
\longeq
\end{equation}
\begin{equation*}
\longeq
\end{equation*}
\begin{multline}
\longeq
\end{multline}
\begin{multline*}
\longeq
\end{multline*}
\begin{gather}
\longeq
\end{gather}
\begin{gather*}
\longeq
\end{gather*}
\begin{align}
\alongeq
\end{align}
\begin{align*}
\alongeq
\end{align*}
\begin{flalign}
\alongeq
\end{flalign}
\begin{flalign*}
\alongeq
\end{flalign*}
\begin{alignat}{1}
\alongeq
\end{alignat}
\begin{alignat*}{1}
\alongeq
\end{alignat*}
\end{document}