Hyperref 带答案

Hyperref 带答案

我读带有答案的超链接并尝试将该技术应用到我使用该ntheorem包定义的环境中。

在下面的 MWE 中,答案链接正确地指向问题,但问题却没有指向答案。如何解决这个问题?

\documentclass{report}
\usepackage{answers}
\usepackage{ntheorem}
\usepackage{changepage}
\usepackage{lipsum}
\usepackage{hyperref}

\makeatletter
\newtheoremstyle{hanging}%
{\item[\theorem@headerfont \llap{\hyperlink{soln:##2}{##2}}]}% 
\makeatother

% problem environment
\newlength{\problabel}
\theoremstyle{hanging}
\theoremprework{%
\hypertarget{prob:\theproblem}{}%
\settowidth{\problabel}{\textbf{\theproblem} }%
\begin{adjustwidth}{\problabel}{}}
\theorempostwork{\end{adjustwidth}}
\newtheorem{problem}{}

% solution environment
\Newassociation{sol}{Soln}{solutionfilehandle}
\renewenvironment{Soln}[1]
  {\par{ \hyperlink{prob:#1}{#1}}\quad\hypertarget{soln:#1}{}}%
  {}

\begin{document}

\Opensolutionfile{solutionfilehandle}[ans1]

\section{Problems}
\begin{problem}
    \lipsum[1]
    \begin{sol}
        First solution.
    \end{sol}
\end{problem}

\begin{problem}
    \lipsum[2]
    \begin{sol}
        second solution.
    \end{sol}
\end{problem}

\Closesolutionfile{solutionfilehandle}
\newpage
\section{Solutions}
\input{ans1}
    \end{document}

编辑:它也有助于首先确定目标:

    % solution environment
\Newassociation{sol}{Soln}{solutionfilehandle}
\renewenvironment{Soln}[1]
  {\par\hypertarget{soln:#1}{}\hyperlink{prob:#1}{#1}\quad}%
  {}

答案1

我编译了你的 MWE(TeXlive 2011),它运行得很好:问题链接到答案,答案链接到问题。你重新运行了吗?你能添加一个\listfiles之前的内容\begin{document}并发布结果吗(特别是:你使用了哪个 hyperref 版本)?

相关内容