nocite 与 mathtools 方程式引用的等效性是什么?

nocite 与 mathtools 方程式引用的等效性是什么?

通常,我使用 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}

相关内容