将 showlabels 包与 tcbtheorem 结合使用

将 showlabels 包与 tcbtheorem 结合使用

我想使用该包showlabels来显示我的文档中所有内容的标签,如下https://www.overleaf.com/learn/latex/Latex-questions/Keep_track_of_your_labels_with_showlabels演示。我正在使用newtcbtheorem 环境创建定理/引理框,这些框会自动附带标签(如下所述:tcbtheorem 环境的正文被纳入选项)。 然而

\documentclass{article}
\usepackage{amsmath}
\usepackage{tcolorbox}
\tcbuselibrary{theorems}
\tcbuselibrary{breakable}
\usepackage[colorlinks = true, urlcolor = red]{hyperref}
\usepackage{pifont}
\usepackage{showlabels}


\newtcbtheorem[number within=section]{mylemma}{Lemma}%
{colframe=blue!45!white,enlarge top by=0.15cm,before
skip=3pt,after skip=6.5pt,fonttitle=\slshape,breakable}{lem}

\usepackage{thmtools}
\declaretheorem[name=Theorem,numberwithin=section]{thm}

\begin{document}


\[
E=mc^2 \label{eq:einstein} \tag{\ding{37}}
\]
As we can see from \eqref{eq:einstein}

\begin{mylemma}{Substitution lemma}{substitution}
Lemma in a tcolorbox
\end{mylemma}
Reference to the lemma \ref{lem:substitution}
\end{document}

词干框在输出中没有明显标记(而明确的\labeled 方程是): 在此处输入图片描述 (MWE 的灵感部分来自于用符号标记方程式)。

答案1

您提到定理/引理框会自动定义标签,例如lem:substitution。我的猜测是,这样做是使用 的原始定义\label,而不是已showlabels更改的定义。我原本以为使用的定义是扩展时有效的定义,但我可以想象在某些情况下,它是定义{mylemma}时有效的定义。{mylemma}

如果是这样,那么可能如果您将 showlabels 放在定义 的包之前,这将神奇地起作用{mylemma}。否则,它将涉及逐步检查实际执行的操作,以查看它使用{mylemma}的定义。\label

相关内容