交联 Tcb 定理

交联 Tcb 定理

我创建了一个包含问题的文档。我实现的一个功能是单击问题编号,即可在文档末尾找到答案,反之亦然(参见 MWE)。

我的实现基于ntheoremanswers包。

但是现在我想用tcolorbox( tcbtheorem) 包实现这样的功能。我不知道该怎么做,tcbtheorem如下所示:

\item[\theorem@headerfont\hyperlink{solution:\@roman{##2}}

-

% !TeX program = pdflatex
% !TeX encoding = utf8

\documentclass{book}
\usepackage{ntheorem}
\usepackage{answers}
\usepackage{lipsum}
\usepackage{hyperref}
\usepackage[many]{tcolorbox}

\makeatletter

%========================================================================================================
%
%                                   Problem environment
%
%========================================================================================================
\newtheoremstyle{problemstyle}%
{%
    \hypertarget{problem:\@roman{##2}}{}%
    \ifcsname r@solution\@roman{##2}\endcsname
        \item[\theorem@headerfont\hyperlink{solution:\@roman{##2}}{##2\theorem@separator}]
    \else
        \item[\theorem@headerfont##2\theorem@separator]
    \fi
}%
{%
    \hypertarget{problem:\@roman{##2}}{}%
    \ifcsname r@solution\@roman{##2}\endcsname
        \item[\theorem@headerfont\hyperlink{solution:\@roman{##2}}{##2\theorem@separator}] (##3)
    \else
        \item[\theorem@headerfont##2\theorem@separator] (##3)
    \fi
}

\theoremstyle{problemstyle}

\newtheorem{problem}{}[chapter]


%========================================================================================================
%
%                                   Answer environment
%
%========================================================================================================


\Newassociation{solution}{Solution}{answer}
\renewenvironment{Solution}[1]{%
    \par%
    \addpenalty{-\@lowpenalty}%
    \noindent%
    \hypertarget{solution:\@roman{#1}}{\noindent\hyperlink{problem:\@roman{#1}}{#1.}\label{solution\@roman{#1}}}
}{%
    \par%
    \addpenalty{-\@lowpenalty}%
}


\makeatother

%========================================================================================================
%
%                                   Document
%
%========================================================================================================

\begin{document}


\chapter{Chapter}
\Opensolutionfile{answer}[Answers]

\begin{problem}
\lipsum[10]
\begin{solution}
\lipsum[20]
\end{solution}
\end{problem}

\Closesolutionfile{answer}
\newpage
\input{Answers}
\end{document}

相关内容