我目前正在使用hyperref
和makeidx
制作超链接索引,效果很好。但现在,超链接总是将我带到页面顶部;理想情况下,我希望链接更精确(直接将我带到段落或表格,而不仅仅是页面)。
hyperref
使用和可以实现吗makeidx
?如果可以,我该怎么做?如果不行,还有哪些软件包可以实现这一点?
梅威瑟:
\documentclass{article}
\usepackage{makeidx}
\usepackage{hyperref}
\usepackage{lipsum}
\makeindex
\begin{document}
First page\index{First}
\lipsum[1-3]
Later on the first page\index{Later}
\newpage
\printindex
\end{document}
我希望“稍后”链接直接转到“稍后”段落,而不是页面顶部。
答案1
最简单的方法是makeindex
生成一个页面索引,其中可以找到 \index 条目,这些条目可能出现在多个页面上,或者可能在一个页面内出现多次,因此索引将组合一个页面的所有条目并累积页码以供稍后列出。
当您单击索引编号条目时,它主要只知道页码,因此它只能转到该页面上的锚点,并且锚点通常位于页面的开头(顶部)。
对于替代链接,手册中描述了许多内容,例如目录 (ToC/Outline),您可以在那里添加额外内容,但对于标准文本列表或双向链接来说,它用处不大。还有其他级别,例如“书签”(命名目标) 和“特殊”(通常是外部 URL,尽管它们可以内省使用),但我建议您在发布时不要广泛使用这些级别,因为对于读者来说,如果做得不好,它们可能会成为问题的巢穴。对于用户来说,当名称很长时,即使是目录 (大纲) 也会出现问题。
最简单的内部链接级别
你可以建立一个超链接列表或表格
\hyperlink{First}
\hyperlink{Later}
这些需要定义它们的目标(命名目的地)
This is the first page, with a \hypertarget{First}
Later on the first page\hypertarget{Later}
这些可以是双向的
This is the first page, with a \hypertarget{First}
{\hyperlink{Later}{and link to a target later on.}}
Later on the first page\hypertarget{Later}{\hyperlink{First}{Top of page.}}