如何正确引用计数器

如何正确引用计数器

我定义了一组不同的 tcolorboxes,用来指示某件事何时重要,何时只是一条评论,等等。我还创建了一个\newcounter{BoxCounter}对所有这些框都全局的计数器,因此无论它们是哪种类型的框,它们都被编号,就像框 1、框 2、框 3……

问题是我不知道如何准确地制作\ref其中一个框。我定义了如下内容:

\newcounter{BoxCounter}

\newtcolorbox{Comentario}[2][] {
colback=ComentarioBoxBackgroundColor,
colframe=ComentarioBoxFrameColor,
center, 
valign=top, 
halign=left,
breakable,
enhanced,
title=\bfseries\sffamily #2 \hfill Box \refstepcounter{BoxCounter}\theBoxCounter,
#1
}

\newtcolorbox{Importante}[2][] {
colback=EcuacionImportanteBoxBackgroundColor,
colframe=EcuacionImportanteBoxFrameColor,
center, 
valign=top, 
halign=left,
before skip=1cm, % Espacio en blanco antes del recuadro.
after skip=1cm, % Espacio en blanco después del recuadro.
breakable,
enhanced,
title=\bfseries\sffamily #2 \hfill Box \refstepcounter{BoxCounter}\theBoxCounter,
#1
}

其中第一个参数(可选)的形式为,label = some box因此我使用\ref{some box。问题是,虽然框的编号只是 1、2、3、...,但引用以 1.1 格式打印,依此类推。

我怎样才能使这些参考资料以与框标题中打印的相同格式打印?

答案1

选项只有在计数器的步进由机制完成时才有用,因此使用而不是,否则会抓取最后的,这可能是上一次调用等留下的 label=...tcolorboxtcolorboxuse counter=BoxCounter\refstepcounterlabel=\@currentlabel\section

也可以看看tcolorbox:如何引用盒子?

\documentclass{article}

\usepackage[most]{tcolorbox}




\newcounter{BoxCounter}

\newtcolorbox[use counter=BoxCounter]{Comentario}[2][] {
%colback=ComentarioBoxBackgroundColor,
%colframe=ComentarioBoxFrameColor,
center, 
valign=top, 
halign=left,
breakable,
enhanced,
title=\bfseries\sffamily #2 \hfill Box \theBoxCounter,
#1
}

\newtcolorbox[use counter={BoxCounter}]{Importante}[2][] {
%colback=EcuacionImportanteBoxBackgroundColor,
%colframe=EcuacionImportanteBoxFrameColor,
center, 
valign=top, 
halign=left,
before skip=1cm, % Espacio en blanco antes del recuadro.
after skip=1cm, % Espacio en blanco después del recuadro.
breakable,
enhanced,
title=\bfseries\sffamily #2 \hfill Box \theBoxCounter,
#1
}

\begin{document}


See \ref{foo} and \ref{foobar}

\begin{Comentario}[label=foo]{}

\end{Comentario}

\begin{Importante}[label={foobar}]{}

\end{Importante}

\end{document}

在此处输入图片描述

相关内容