根据方程编号的最大长度右对齐方程

根据方程编号的最大长度右对齐方程

请看一下这个最小的例子...

\documentclass{article}
\usepackage{amsmath}
\numberwithin{equation}{section}
\usepackage{showframe} % only for demo

\begin{document}

\section{section 1}
\begin{flalign}
&&\begin{split}
a = b \\
b = c + d + e
\end{split}
\end{flalign}

\section{section 2}
\setcounter{equation}{1234}
\begin{flalign}
&&\begin{split}
a = b \\
b = c + d + e
\end{split}
\end{flalign}


\end{document} 

它生成该文档...

在此处输入图片描述

我的问题是... 第 1 节中的方程位于第 2 节中的方程的右侧。这是方程编号长度的结果。如何垂直对齐方程的右侧?或者,如何使右对齐取决于最宽的方程编号?

答案1

我不确定这种不寻常格式的用途是什么。

这是一种方法,修改了来自的代码https://tex.stackexchange.com/a/240341/4427

\documentclass{article}
\usepackage{amsmath}
\usepackage{etoolbox}
\usepackage{lipsum}

\numberwithin{equation}{section}
\usepackage{showframe} % only for demo


\makeatletter
% detach \eqref processing from \tag processing
\let\tagform@ref\tagform@
\let\maketag@@@ref\maketag@@@
\patchcmd{\eqref}{\tagform@}{\tagform@ref}{}{}
\patchcmd{\tagform@ref}{\maketag@@@}{\maketag@@@ref}{}{}
% redefine \maketag@@@
\def\maketag@@@#1{\makebox[4pc][r]{\m@th\normalfont#1}}
\makeatother

\begin{document}

\section{section 1}
\begin{flalign}
&&\begin{aligned}
a = b \\
b = c + d + e
\end{aligned}
\end{flalign}

\section{section 2}
\setcounter{equation}{1234}
\begin{flalign}
&&\begin{aligned}
a = b \\
b = c + d + e
\end{aligned}
\end{flalign}

\end{document}

调整 4pc 的数量以适应。再做一些工作可以自动化。我不会用split这个,但是aligned

在此处输入图片描述

相关内容