我写所有方程式都是用
\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}