![Hyperref 和 lineno:始终跳转到第一页](https://linux22.com/image/274009/Hyperref%20%E5%92%8C%20lineno%EF%BC%9A%E5%A7%8B%E7%BB%88%E8%B7%B3%E8%BD%AC%E5%88%B0%E7%AC%AC%E4%B8%80%E9%A1%B5.png)
我有一个文档,其中的行是编号的。我想引用一些特殊的行,并为这些行生成正确的行号。但使用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
和引用命令称为\lref
。llineno:
前缀是为了避免与其他目标名称发生冲突。
\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}