![tcolorbox 中的精确 hyperref 目标](https://linux22.com/image/475629/tcolorbox%20%E4%B8%AD%E7%9A%84%E7%B2%BE%E7%A1%AE%20hyperref%20%E7%9B%AE%E6%A0%87.png)
我正在使用该tcolorbox
包,并且由于该功能attach boxed title to top left
,超目标锚定在主框的顶部而不是标题框的顶部。
即,当我点击第 2 页的链接时,下面给出的代码(MWE)会产生此效果。
如您所见,标题框被“裁剪”了。
问题
我该如何修补它才能让
hyperref
目标精确地锚定在标题框的顶部?(理想情况下,解决方案也应该适用于cleveref
)。
代码:
\documentclass{article}
\usepackage[most]{tcolorbox}
\usepackage[colorlinks=true]{hyperref}
\NewTColorBox[auto counter]{thmboxB}{O{} O{}}{%
title = {theorem~(#1)},
enhanced,
attach boxed title to top left = {yshift = -\tcboxedtitleheight/2, xshift = 5mm},
top = 1.2em,
#2
}
\begin{document}
\begin{thmboxB}[Wow][label=thmB]
Let $Y$ be a set.
\end{thmboxB}
\newpage
theorem \ref{thmB}
\end{document}
答案1
您可以放大 hyperref 提升锚点的数量:
\documentclass{article}
\usepackage[most]{tcolorbox}
\usepackage[colorlinks=true]{hyperref}
\NewTColorBox[auto counter]{thmboxB}{O{} O{}}{%
code={\renewcommand\HyperRaiseLinkDefault{2\baselineskip}},%<---
title = {theorem~(#1)},
enhanced,
attach boxed title to top left = {yshift = -\tcboxedtitleheight/2, xshift = 5mm},
top = 1.2em,
#2
}
\begin{document}
\begin{thmboxB}[Wow][label=thmB]
Let $Y$ be a set.
\end{thmboxB}
\newpage
theorem \ref{thmB}
\end{document}
这自然会影响框内的所有锚点,因此如果您想再次减少那里的数量,请将类似的代码放在内容部分的开始处。