我使用 leqno,并希望方程式数字相对于自身右对齐。也就是说,我希望个位列中的所有数字都对齐,就像不使用 leqno 时一样。下面是自然发生的情况,但我希望方程式数字看起来像枚举数字。
\documentclass{article}
\usepackage[leqno]{amsmath}
\usepackage[shortlabels]{enumitem}
\begin{document}
\begin{enumerate}[(1)]
\setcounter{enumi}{7}
\item A
\item B
\item C
\item D
\end{enumerate}
\setcounter{equation}{7}
\begin{align}
a=b\\
b=c\\
c=d\\
d=e
\end{align}
\end{document}
答案1
首先你需要分离\eqref
和方程编号制作宏。然后你可以重新定义\tagform@
以添加与数字一样宽的空格,以防方程编号小于 10。
\documentclass{article}
\usepackage[leqno]{amsmath}
\usepackage[shortlabels]{enumitem}
\makeatletter
% detach \eqref and \tag making
\renewcommand{\eqref}[1]{\textup{\eqreftagform@{\ref{#1}}}}
\let\eqreftagform@\tagform@
\def\tagform@#1{%
\ifx\theequation#1%
\ifnum\value{equation}<10 \hphantom{0}\fi
\fi
\maketag@@@{(\ignorespaces#1\unskip\@@italiccorr)}%
}
\makeatother
\begin{document}
\begin{enumerate}[(1)]
\setcounter{enumi}{7}
\item A
\item B
\item C
\item D
\end{enumerate}
\setcounter{equation}{7}
\begin{gather}
a=b\\
b=c\\
c=d\\
d=e
\end{gather}
\end{document}
您使用的情况\tag{...}
不在涵盖范围内。
我不会这么做。