2018 年 7 月 30 日更新

2018 年 7 月 30 日更新

不久前(TeX Live 2013),xelatex 将超目标的标签存储在 PDF 中。然后(至少在 TeX Live 2016 中)行为发生了变化,里面不再有符号名称。

我怎样才能找回这些名字?

一个例子:

\documentclass{article}
\usepackage[verbose]{hyperref}
\begin{document}
An anchor for postprocessing:
\hypertarget{ID01234567}{}
\end{document}

使用 xelatex 编译文档后,我检查了其内部结构:

$ qpdf --stream-data=uncompress test.pdf - | gvim -

我想要的是找到:

<< /Names [ (Doc-Start) 7 0 R (ID01234567) 8 0 R (page.1) 9 0 R ] >>

我使用 TeX Live 2013 获得了预期的结果,但使用 2016 却没有。

2018 年 7 月 30 日更新

我在较新的系统上生成了 XDV(而不是 PDF),并在较旧的系统上将 XDV 转换为 PDF。我已获取目标。因此,问题很可能出在dvipdfm。以下是供以后调查的变更日志: http://www.tug.org/svn/texlive/trunk/Build/source/texk/dvipdfm-x/spc_pdfm.c?view=log

答案1

这在手册的第 11 节中被记录为不兼容的更改。选项的dvipdfmx位位置可用于禁用优化 PDF 目标。计数以 开头,因此位位置对应于。您可以在使用以下方式调用 XeLaTeX 时传递此标志5-C1516

 xelatex -output-driver="xdvipdfmx -C 16" test.tex

如果您使用 Windows,您可能需要另一种方式来引用该命令。

相关内容