我定义了一组不同的 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=...
。tcolorbox
tcolorbox
use counter=BoxCounter
\refstepcounter
label=
\@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}