Hyperref 和 lineno:始终跳转到第一页

Hyperref 和 lineno:始终跳转到第一页

我有一个文档,其中的行是编号的。我想引用一些特殊的行,并为这些行生成正确的行号。但使用hyperref并没有给出预期的结果:单击行引用总是将我移动到文档的第一页,而不是引用行所在的页面。检查以下最小示例以重现我的问题:

\documentclass[11pt]{article}

\usepackage{lipsum}
\usepackage{hyperref}
\usepackage[right]{lineno}

\begin{document}
  \linenumbers
  \lipsum[1-8]
  \textbf{Here is the line, I want a reference to.}\linelabel{test}
  \lipsum[5-8]
  \textbf{Here is the line, where I refence a the special line (on page two):
  \ref{test}}
\end{document}

我在用着pdflatex

答案1

hyperref您可以使用s 命令\hypertarget和来设置创建此类引用的系统\hyperlink。我将标记命令\llabel和引用命令称为\lrefllineno:前缀是为了避免与其他目标名称发生冲突。

\documentclass[11pt]{article}

\usepackage{lipsum}
\usepackage[right]{lineno}
\usepackage{hyperref}

\newcommand{\llabel}[1]{\hypertarget{llineno:#1}{\linelabel{#1}}}
\newcommand{\lref}[1]{\hyperlink{llineno:#1}{\ref*{#1}}}

\begin{document}
  \linenumbers
  \lipsum[1-8]
  \llabel{test}\textbf{Here is the line, I want a reference to.}
  \lipsum[5-8]
  \textbf{Here is the line, where I refence a the special line (on
  page two): \lref{test}}
\end{document}

相关内容