使用 Tcolorbox 在文档中创建链接

使用 Tcolorbox 在文档中创建链接

我正在尝试创建方框,以便在我的书中进行练习。然而,我不知道在某些点上该怎么做。我正在阅读这篇论文:

https://mirror.hmc.edu/ctan/macros/latex/contrib/tcolorbox/tcolorbox.pdf

我不知道该如何处理这些信息。我发现了一些有趣的部分:

如果我能用这个就太好了:

/tcb/hypertarget=〈标记〉p100

/tcb/label=〈标记〉 p 98

如果我理解正确的话,第一个允许我通过单击框转到文档中的其他位置(例如直接转到解决方案),第二个允许我明确地写出练习指的是解决方案?或者换句话说,在文本中,我可以在练习中写出参考?是吗?

无论如何,这就是我写的:

\documentclass[10pt,a4paper]{book}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[dvipsnames]{xcolor}
\usepackage{amsmath,amsfonts,amssymb}
\usepackage{amsthm}
\usepackage{lmodern}    
\usepackage[most]{tcolorbox}




\newtcolorbox[auto counter, number within=section]{theoreme}[2][]{
    colback=red,
    colframe=red,
    colbacktitle=white!80!red,
    coltitle=black,
    fonttitle=\bfseries, 
    title=Théorème~\thetcbcounter.\ #2,
    before={}, 
    after={},
    attach boxed title to top left={yshift=-2mm, xshift=0.5cm},%
    #1
}





\newtcbtheorem[auto counter, number within=section]{exercice}{Exercice}{}{theo}
\newtcbtheorem[auto counter, number within=section]{solution}{Solution}{}{theo}


\begin{document}


hi


\end{document}

那么,我是否可以轻松地参考练习和解决方案,如何做?

谢谢。

答案1

hypertarget和选项hyperlink并不适合此目的,因为它们使整个框成为链接或目标。最好将目标明确地放在框的标题中(或其他地方)。

我已经删除了定理定义并用常规tcolorbox环境替换它们,在框标题处插入一个超目标以及指向解决方案的链接或返回练习的链接。

为了使其发挥作用,练习和解决方案必须具有相同的标签,例如foofoobar等等。

常规标签必须与等一起插入到实例label=mynicelabel的选项中tcolorbox

\documentclass[10pt,a4paper]{book}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[dvipsnames]{xcolor}
\usepackage{amsmath,amsfonts,amssymb}%extensions de l'ams pour les mathématiques
\usepackage{amsthm} %pour les théoremes
\usepackage{lmodern}    %celui ci et le suivant pour les boites
\usepackage[most]{tcolorbox}

\usepackage{hyperref}



\newtcolorbox[auto counter, number within=section]{theoreme}[2][]{
    colback=red,
    colframe=red,
    colbacktitle=white!80!red,
    coltitle=black,
    fonttitle=\bfseries, 
    title=Théorème~\thetcbcounter.\ #2,
    before={}, 
    after={},
    attach boxed title to top left={yshift=-2mm, xshift=0.5cm},%
    #1
}



\newtcolorbox[auto counter, number within=section]{exercice}[3][]{title={\hypertarget{exer:#3}{Exercise \thetcbcounter.\ #2}\hfill\hyperlink{sol:#3}{Solution}},#1}
\newtcolorbox[auto counter, number within=section]{solution}[3][]{title={\hypertarget{sol:#3}{Solution \thetcbcounter.\ #2}\hfill\hyperlink{exer:#3}{Exercise}},#1}




\begin{document}


\begin{exercice}{Foo}{foo}

\end{exercice}

\begin{exercice}[colback=yellow!30!]{Foobar}{foobar}

\end{exercice}



\clearpage

\begin{solution}{Foo solution}{foo}

\end{solution}

\clearpage

\begin{solution}{Foobar solution}{foobar}

\end{solution}


\end{document}

更新时不包含 foo 标题

\documentclass[10pt,a4paper]{book}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[dvipsnames]{xcolor}
\usepackage{amsmath,amsfonts,amssymb}%extensions de l'ams pour les mathématiques
\usepackage{amsthm} %pour les théoremes
\usepackage{lmodern}    %celui ci et le suivant pour les boites
\usepackage[most]{tcolorbox}

\usepackage{hyperref}



\newtcolorbox[auto counter, number within=section]{exercice}[2][]{title={\hypertarget{exer:#2}{Exercise \thetcbcounter.\hfill\hyperlink{sol:#2}{Solution}}},#1}
\newtcolorbox[auto counter, number within=section]{solution}[2][]{title={\hypertarget{sol:#2}{Solution \thetcbcounter.\hfill\hyperlink{exer:#2}{Exercise}}},#1}




\begin{document}


\begin{exercice}{foo}

\end{exercice}

\begin{exercice}[colback=yellow!30!]{foobar}

\end{exercice}



\clearpage

\begin{solution}{foo}

\end{solution}

\clearpage

\begin{solution}{foobar}

\end{solution}
\end{document}

在此处输入图片描述

相关内容