hyperref 的更简单替代方案?

hyperref 的更简单替代方案?

我一直在尝试让超链接目录与现有的大型图书项目协同工作。我尝试过 hyperref,但无法正常工作。如果您感兴趣,我将附上问题的简要描述,但总而言之,我对 hyperref 的印象是它是一个庞大、复杂、脆弱的软件包,其中包含许多不相关的功能(例如 PDF 标题),我不想使用它。有没有其他替代方案可以让我做一些更底层的事情并生成我想要的超链接?我想要的只是这样的东西:

\target{about-socrates}Socrates was sentenced to execution by drinking hemlock.
...
We recall that \href{about-socrates}{Socrates} drank hemlock.

这就是我所需要的。我不需要它为我做任何链接样式(颜色、方框等)——我可以自己处理。我只需要它处理 PDF 输出,而不是 DVI、HTML 等。我不需要它自动生成目录中的超链接;我想我也可以自己做。

hyperref 的问题描述(可能不相关)

如果我在调用所有其他包之后调用 hyperref,则会收到一条难以理解的错误消息(! Package hyperref Error: This should not happen! (hyperref) Missing version of 'hpdftex.def'.),尽管如果我在其他包之前调用它,此错误就会消失,但它链接到的某些页码是错误的。不幸的是,我没能找到 MWE 来演示这两个问题。

答案1

您可以使用navigator包裹。

Navigator 使用 PDFTEX、LuaTEX 和 X∃TEX(即 xdvipdfmx)实现了所有格式的 PDF 功能(ConTEXt 有一些限制)。功能包括:

  • 可定制的大纲(即书签);
  • 锚;
  • 链接和动作(例如 JavaScript 或用户定义的 PDF 动作);
  • 文件嵌入(不在 ConTEXt 中);
  • 文档信息和 PDF 查看器的显示(不在 ConTEXt 中);以及
  • 创建和使用原始 PDF 对象的命令

Navigator 需要texapiyax,两者的版本至少为 1.03。

使用navigator,上面包含的代码片段将如下所示

\anchor{about-socrates}Socrates was sentenced to execution by drinking hemlock.
...
We recall that \jumplink{about-socrates}{Socrates} drank hemlock.

相关内容