我使用该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}