隐藏公式标签但仍使用它来引用

隐藏公式标签但仍使用它来引用

我使用该semantic包来显示方程式中的自然演绎式推理规则。该\inference命令有一个可选参数,可用于标记规则:

\inference[Rule1]{A}{B}

当我在方程式amsmath环境中使用推理规则时,我希望能够标记推理规则并在文档的其余部分使用“Rule1”作为参考名称。但是,如果我使用\tag{Rule1}/,\tag*{Rule1}方程式标签(当然)也会显示出来。我尝试了各种方法让标签不可见,但由于命令\tag本身不会呈现任何内容,所以似乎什么都行不通。

有没有办法隐藏方程标签,但仍告诉 LaTeX 在引用标签时使用自定义标签名称?

答案1

你可以做这样的事情:

\documentclass{article}
\usepackage{amsmath}
\usepackage{semantic}

\makeatletter
\def\@inferenceFrontName[#1]{%
  \def\@currentlabel{#1}%
  \ltx@label{semantic\detokenize{#1}}%
  \setbox3=\hbox{\footnotesize #1}%
  \ifdim \wd3 > \z@
    \unhbox3%
    \hskip\@@nSpace
  \fi
  \@inferenceMiddle
}
\newcommand{\ruleref}[1]{\ref{semantic\detokenize{#1}}}
\makeatother

\begin{document}

\begin{equation*}
\inference[Rule1]{A}{B}
\end{equation*}

\ruleref{Rule1}

\end{document}

enter image description here

相关内容