我读带有答案的超链接并尝试将该技术应用到我使用该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 版本)?