带有 hyperref 的精美目录

带有 hyperref 的精美目录

我真的不喜欢表示链接的红框。我希望渲染一些填充的矩形,当有人将鼠标悬停在矩形上时,这些矩形就会显示出来。显然,在文本渲染之前,您无法看到那里写了什么。为了更好地理解我的想法,我希望当您将鼠标悬停在链接上时,每个链接都会显示如下内容:

但如果您不悬停它,它就会变成干净的白色。我该如何实现这一点?

答案1

这只是部分答案,但它可以作为实现这一目标的路线图。

首先,请注意,该hyperref软件包不提供执行此类操作的“标准方法”。它仅提供链接的边框样式(包括为链接添加下划线,如下所述:如何使用 hyperref 制作彩色和带下划线的链接?)。其中一个原因可能是 PDF 标准直接为链接注释提供了此类边框样式,但要获得非边框样式,您需要使用外观流并形成 XObject。此类流和对象的文档可在此处找到:http://www.adobe.com/content/dam/Adobe/en/devnet/acrobat/pdfs/pdf_reference_1-7.pdf(从第 612 页开始了解外观流,从第 355 页开始了解表单 XObjects)

需要做以下事情:找出 PDF 输出中链接的背景颜色是什么样子(幸运的是,外观流已经提供了三种不同的模式,包括一种用于非活动模式和一种用于悬停在对象上;因此,您需要的“动作逻辑”已经在 PDF 标准中实现,您只需要提供实现所需外观的属性)。

然后通过重新定义某些命令来更改包的相应部分hyperref,如该答案的“自动”部分所示:如何使用 hyperref 制作彩色和带下划线的链接?

您可以在这里找到该包的源代码hyperrefhttp://www.ctan.org/pkg/hyperref

由于 PDF 标准和hyperref软件包都非常庞大,因此可能需要花费大量时间来寻找正确的属性和命令来将这些东西组合在一起。

无论如何,这种解决方案可能不适用于每个 PDF 查看器,因为大多数 PDF 查看器并未实现 PDF 标准中规定的所有内容。但是,只要您只使用背景颜色,它可能适用于许多查看器(但不保证)。

相关内容