有或无证明的定理中的 Hyperref 与 tcolorbox

有或无证明的定理中的 Hyperref 与 tcolorbox

我写了一个包含定理和证明的文档。证明保存在其他文件中,并出现在文档末尾(带有\tcbsartrecording)。当没有证明时,我也会使用\tcbset{no demo/.style={no recording,after upper=}},但它工作正常。现在我想要的是定理和证明之间的链接。但我不知道该怎么做。这是一个 MWE(有点长,抱歉):

\documentclass[10pt,a4paper,french]{book}

\usepackage{mathtools}
\usepackage{babel}
\usepackage[warnings-off={mathtools-colon,mathtools-overbracket},math-style=french]{unicode-math}
\usepackage[scale={0.75,0.8},footskip=1.5cm,heightrounded]{geometry}
\usepackage[most]{tcolorbox}
\usepackage{hyperref}

\newtcbtheorem[number within=chapter]{prop}{Proposition}{% Proposition
    enhanced,breakable,
    fonttitle=\bfseries,separator sign dash,
    lowerbox=ignored,
    sharp corners,
    hypertarget=prop@#1,hyperlink=demop@#1,
    label={prop@\thetcbcounter},
    savelowerto=demo-\thetcbcounter.tex,
    record={\string\demop{\thetcbcounter}{demo-\thetcbcounter.tex}}}
{Proposition}

\NewTotalTColorBox{\demop}{mm}{% Démonstration d'une proposition
    enhanced,breakable,fonttitle=\bfseries,
    sharp corners,
    title=Démonstration de la proposition~\ref{prop@#1},
    hypertarget=demop@#1,hyperlink=prop@#1
}
{\input{#2}}

\tcbset{no demo/.style={no recording,after upper=}}

\begin{document}

\tcbstartrecording\relax

\chapter{Premier}
    
    \begin{prop}{}{}%with proof
        Premier théorème
        \tcblower
        Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc ligula nisl, laoreet vitae nibh id, dictum finibus est. Sed sed sem ut ligula interdum euismod vel id dolor. Morbi auctor magna nec lectus consectetur rhoncus. Ut sapien mauris, sodales ac tortor at, vestibulum venenatis augue. Nulla fringilla, ante ut feugiat interdum, lectus tellus pulvinar sem, vel gravida nulla odio vitae lacus. Morbi sed quam in sem luctus pharetra. Etiam maximus eleifend nibh, eget bibendum nulla feugiat id. Curabitur eget mauris imperdiet, vulputate lectus in, dapibus mauris. Aliquam sit amet pharetra leo. Nam vehicula vitae nisl a faucibus. Etiam elit odio, finibus facilisis purus at, aliquam luctus purus. Aenean rhoncus, dolor quis lacinia eleifend, ipsum erat commodo quam, eget molestie lacus dolor et felis.
    \end{prop}
    
    \begin{prop}[no demo]{}{}%without proof
        Deuxième théorème mais sans démo
        \tcblower
        Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc ligula nisl, laoreet vitae nibh id, dictum finibus est. Sed sed sem ut ligula interdum euismod vel id dolor. Morbi auctor magna nec lectus consectetur rhoncus. Ut sapien mauris, sodales ac tortor at, vestibulum venenatis augue. Nulla fringilla, ante ut feugiat interdum, lectus tellus pulvinar sem, vel gravida nulla odio vitae lacus. Morbi sed quam in sem luctus pharetra. Etiam maximus eleifend nibh, eget bibendum nulla feugiat id. Curabitur eget mauris imperdiet, vulputate lectus in, dapibus mauris. Aliquam sit amet pharetra leo. Nam vehicula vitae nisl a faucibus. Etiam elit odio, finibus facilisis purus at, aliquam luctus purus. Aenean rhoncus, dolor quis lacinia eleifend, ipsum erat commodo quam, eget molestie lacus dolor et felis.
    \end{prop}
    
    \begin{prop}{}{}%with proof
        Troisième théorème
        \tcblower
        Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc ligula nisl, laoreet vitae nibh id, dictum finibus est. Sed sed sem ut ligula interdum euismod vel id dolor. Morbi auctor magna nec lectus consectetur rhoncus. Ut sapien mauris, sodales ac tortor at, vestibulum venenatis augue. Nulla fringilla, ante ut feugiat interdum, lectus tellus pulvinar sem, vel gravida nulla odio vitae lacus. Morbi sed quam in sem luctus pharetra. Etiam maximus eleifend nibh, eget bibendum nulla feugiat id. Curabitur eget mauris imperdiet, vulputate lectus in, dapibus mauris. Aliquam sit amet pharetra leo. Nam vehicula vitae nisl a faucibus. Etiam elit odio, finibus facilisis purus at, aliquam luctus purus. Aenean rhoncus, dolor quis lacinia eleifend, ipsum erat commodo quam, eget molestie lacus dolor et felis.
    \end{prop}
    
    \begin{prop}{}{}%with proof
        Quatrième théorème
        \tcblower
        Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc ligula nisl, laoreet vitae nibh id, dictum finibus est. Sed sed sem ut ligula interdum euismod vel id dolor. Morbi auctor magna nec lectus consectetur rhoncus. Ut sapien mauris, sodales ac tortor at, vestibulum venenatis augue. Nulla fringilla, ante ut feugiat interdum, lectus tellus pulvinar sem, vel gravida nulla odio vitae lacus. Morbi sed quam in sem luctus pharetra. Etiam maximus eleifend nibh, eget bibendum nulla feugiat id. Curabitur eget mauris imperdiet, vulputate lectus in, dapibus mauris. Aliquam sit amet pharetra leo. Nam vehicula vitae nisl a faucibus. Etiam elit odio, finibus facilisis purus at, aliquam luctus purus. Aenean rhoncus, dolor quis lacinia eleifend, ipsum erat commodo quam, eget molestie lacus dolor et felis.
    \end{prop}
    
    \begin{prop}{}{}%with proof
        Cinquième théorème
        \tcblower
        Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc ligula nisl, laoreet vitae nibh id, dictum finibus est. Sed sed sem ut ligula interdum euismod vel id dolor. Morbi auctor magna nec lectus consectetur rhoncus. Ut sapien mauris, sodales ac tortor at, vestibulum venenatis augue. Nulla fringilla, ante ut feugiat interdum, lectus tellus pulvinar sem, vel gravida nulla odio vitae lacus. Morbi sed quam in sem luctus pharetra. Etiam maximus eleifend nibh, eget bibendum nulla feugiat id. Curabitur eget mauris imperdiet, vulputate lectus in, dapibus mauris. Aliquam sit amet pharetra leo. Nam vehicula vitae nisl a faucibus. Etiam elit odio, finibus facilisis purus at, aliquam luctus purus. Aenean rhoncus, dolor quis lacinia eleifend, ipsum erat commodo quam, eget molestie lacus dolor et felis.
    \end{prop}
    
    \begin{prop}{}{}%with proof
        Sixième théorème
        \tcblower
        Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc ligula nisl, laoreet vitae nibh id, dictum finibus est. Sed sed sem ut ligula interdum euismod vel id dolor. Morbi auctor magna nec lectus consectetur rhoncus. Ut sapien mauris, sodales ac tortor at, vestibulum venenatis augue. Nulla fringilla, ante ut feugiat interdum, lectus tellus pulvinar sem, vel gravida nulla odio vitae lacus. Morbi sed quam in sem luctus pharetra. Etiam maximus eleifend nibh, eget bibendum nulla feugiat id. Curabitur eget mauris imperdiet, vulputate lectus in, dapibus mauris. Aliquam sit amet pharetra leo. Nam vehicula vitae nisl a faucibus. Etiam elit odio, finibus facilisis purus at, aliquam luctus purus. Aenean rhoncus, dolor quis lacinia eleifend, ipsum erat commodo quam, eget molestie lacus dolor et felis.
    \end{prop}


\tcbstoprecording

\cleardoublepage

\tcbinputrecords

\end{document}

正如您在 MWE 中看到的,我尝试使用超链接和超目标,就像在 tcolorbox 的文档中(第 220 页)一样。但超链接不起作用:

  • 链接“定理->证明”总是让我跳到最后一页
  • 链接证明->定理也总是让我跳到最后一页

(事实上​​,这比没有超链接/超目标更糟糕。因为如果我删除它们,hyperref 的正常行为只需点击证明的编号就会给我超链接证明->定理,但在那种情况下,我没有超链接定理->证明)。

此外,如果没有证明(没有演示风格),当然就不能有任何链接。所以当有时\begin[no demo]{prop}{}{},定理中不应该有任何超链接。如果没有演示,也许可以进行测试,...

我希望我清楚

相关内容