通常,我使用 mathtools 时,只有在引用公式时才会显示公式编号。如何引用公式而不在文档中实际显示编号,以便在公式旁边显示标签?
以下是 MWE:
\documentclass{article}
\usepackage{mathtools}
\mathtoolsset{showonlyrefs,showmanualtags}
\begin{document}
\begin{equation}
Ax = b \label{eq1}
\end{equation}
The equation above will be numbered since I am referencing it using \refeq{eq1}.
The equation below will not be numbered since I am never referencing it. I want something like nocite: referencing
the equation, so that a number appears next to the equation, but no mention of that in the text.
\begin{equation}
Ax = b \label{eq2}
\end{equation}
\end{document}
答案1
该命令\refeq
除了排版参考文献外,还在文件\MT@newlabel
中写入一个条目.aux
,因此定义\silentrefeq
执行此操作的命令就足够了。
\documentclass{article}
\usepackage{mathtools}
\mathtoolsset{showonlyrefs,showmanualtags}
\makeatletter
\MHInternalSyntaxOn
\newcommand{\silentrefeq}[1]{
\@bsphack
\MH_if_boolean:nT {show_only_refs} {
\protected@write\@auxout{}{\string\MT@newlabel{#1}}
}
\@esphack
}
\MHInternalSyntaxOff
\makeatother
\begin{document}
\silentrefeq{eq2}
An equation:
\begin{equation}
Ax = b \label{eq1}
\end{equation}
The equation above will be numbered since I am referencing it using \refeq{eq1}.
The equation below will not be numbered since I am never referencing it. I want something
like nocite: referencing the equation, so that a number appears next to the equation, but
no mention of that in the text.
\begin{equation}
Ax = b \label{eq2}
\end{equation}
\end{document}
如果showonlyrefs
未激活,则命令将不执行任何操作。该\silenteqref
命令几乎可以运行在任何地方,但文档的开头是一个不错的位置。
请注意,我没有更改您的文本,以确保没有\refeq{eq2}
添加会触发对第二个等式进行编号的内容;该数字只是因为\silentrefeq
之后的命令而出现\begin{document}
。