如何仅对标记的方程式进行编号?

如何仅对标记的方程式进行编号?

我写所有方程式都是用

\begin{equation} ... \end{equation}

所以它们全都编号了,但只有部分有标签。我不需要所有都有编号,只要有标签的就行。

由于我的文档非常大,我不想手动使用 * 来处理所有其他文档。我该如何自动执行此操作?

答案1

你可以使用mathtools包(加载amsmath,因此加载后者是没用的):写

\mathtoolsset{showonlyrefs,showmanualtags}

在您的序言中,只有referenced方程式会被编号(使用\eqref)。这不完全是您所要求的(编号labelled方程式),但您可以尝试在文档的最后制作“假引用”。

答案2

没有保修。;-)

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


\makeatletter
\newif\ifdavid@number
\preto\equation{\david@numberfalse}
\preto\endequation{\ifdavid@number\else\notag\fi}
\patchcmd\label@in@display{\@empty}{\@empty\david@numbertrue}{}{}
\makeatother

\begin{document}
Text
\begin{equation}
\text{this has a number}\label{a}
\end{equation}
text
\begin{equation}
\text{this hasn't}
\end{equation}
\end{document}

在此处输入图片描述

相关内容