使用 tcolorbox 录制两个文件

使用 tcolorbox 录制两个文件

使用 tcolorbox 的记录(软件包文档的第 147 页),我将证明与定理分开。定理的证明位于 tcolorbcox 的下部,并出现在章节末尾tcbstartrecordingtcbinputrecords依此类推。我还在证明和定理之间添加了超链接。这很有效(主要感谢这个论坛)。但现在,我也想对练习和练习提示做同样的事情。这是一个 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}
\hypersetup{hidelinks}

\newtcbtheorem[number within=chapter]{prop}{Proposition}{% Proposition
    enhanced,breakable,
    fonttitle=\bfseries,separator sign dash,
    lowerbox=ignored,
    sharp corners,
    hypertarget=prop@\thetcbcounter,hyperlink=demop@\thetcbcounter,
    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}}

\newtcbtheorem[number within=chapter]{exer}{Exercice}{% Exercice avec indication
    enhanced,breakable,
    fonttitle=\bfseries,separator sign dash,
    lowerbox=ignored,
    sharp corners,
    hypertarget=exer@\thetcbcounter,hyperlink=indication@\thetcbcounter,
    label={exer@\thetcbcounter},
    savelowerto=indic-\thetcbcounter.tex,
    record={\string\indication{\thetcbcounter}{indic-\thetcbcounter.tex}}
    }
    {Exercice}

\NewTotalTColorBox{\indication}{mm}{% Indication pour un exercice
    enhanced,breakable,fonttitle=\bfseries,
    sharp corners,
    title=Indication pour l'exercice~\ref{exer@#1},
    hypertarget=indication@#1,hyperlink=exer@#1
}
{\input{#2}}



\begin{document}

\tcbstartrecording\relax

\chapter{Premier}
    
    \begin{prop}{}{}
        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.
        
        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.
        
        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.
        
        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{exer}{}{}
        Un premier exercice
        \tcblower
        Une indication
    \end{exer}
    
    \begin{prop}{}{}
        Deuxiè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{exer}{}{}
        Un deuxième exercice
        \tcblower
        Une indication
    \end{exer}

\tcbstoprecording

\newpage

\begin{center}
    {\Huge\bfseries Démonstrations}
\end{center}

\tcbinputrecords

\newpage

\begin{center}
    {\Huge\bfseries Indications pour les exercices}
\end{center}

\end{document}

但当然,定理的证明和练习的提示是混在一起的,我不希望这样。我希望证明在“演示”页面之后,提示在“练习指示”页面之后。所以,我想我需要两个单独的录音文件,这样我才能在正确的页面中调用它们。我该怎么做呢(我甚至不知道这是否可能)

答案1

您无需使用另一个文件进行写入(这会消耗有限的资源),只需跳过文件中.records不需要的行即可。

\let\indicationsaved\indication
\def\indication#1#2{\relax}

\tcbinputrecords

这会保存的含义\indications,然后将其重新定义为不执行任何操作,因此在调用.records时将跳过文件中记录的提示\tcbinputrecords,仅留下证明。

\let\indication\indicationsaved
\def\demop#1#2{\relax}

\tcbinputrecords

这将恢复原有的含义\indications并重新定义\demop为不执行任何操作,因此.records文件中记录的证明将被跳过,只留下提示。

完整 MWE:

\documentclass[10pt,a4paper,french]{book}
\usepackage{babel}
\usepackage[scale={0.75,0.8},footskip=1.5cm,heightrounded]{geometry}
\usepackage[most]{tcolorbox}
\usepackage{hyperref}
\hypersetup{hidelinks}

\newtcbtheorem[number within=chapter]{prop}{Proposition}{% Proposition
    enhanced,breakable,
    fonttitle=\bfseries,separator sign dash,
    lowerbox=ignored,
    sharp corners,
    hypertarget=prop@\thetcbcounter,hyperlink=demop@\thetcbcounter,
    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}}

\newtcbtheorem[number within=chapter]{exer}{Exercice}{% Exercice avec indication
    enhanced,breakable,
    fonttitle=\bfseries,separator sign dash,
    lowerbox=ignored,
    sharp corners,
    hypertarget=exer@\thetcbcounter,hyperlink=indication@\thetcbcounter,
    label={exer@\thetcbcounter},
    savelowerto=indic-\thetcbcounter.tex,
    record={\string\indication{\thetcbcounter}{indic-\thetcbcounter.tex}}
    }
    {Exercice}

\NewTotalTColorBox{\indication}{mm}{% Indication pour un exercice
    enhanced,breakable,fonttitle=\bfseries,
    sharp corners,
    title=Indication pour l'exercice~\ref{exer@#1},
    hypertarget=indication@#1,hyperlink=exer@#1
}
{\input{#2}}



\begin{document}

\tcbstartrecording\relax

\chapter{Premier}
    
    \begin{prop}{}{}
        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.
        
        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.
        
        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.
        
        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{exer}{}{}
        Un premier exercice
        \tcblower
        Une indication
    \end{exer}
    
    \begin{prop}{}{}
        Deuxiè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{exer}{}{}
        Un deuxième exercice
        \tcblower
        Une indication
    \end{exer}

\tcbstoprecording

\newpage

\begin{center}
    {\Huge\bfseries Démonstrations}
\end{center}

\let\indicationsaved\indication
\def\indication#1#2{\relax}

\tcbinputrecords

\newpage

\begin{center}
    {\Huge\bfseries Indications pour les exercices}
\end{center}

\let\indication\indicationsaved
\def\demop#1#2{\relax}

\tcbinputrecords

\end{document}

分离提示和证明

相关内容