如何在 PDF 中保留作为较大 PDF 中页面子集的超链接?

如何在 PDF 中保留作为较大 PDF 中页面子集的超链接?

我想向我的同事发送一份文档的一部分。该文档包含来自hyperref包的超链接,可在文档内点击进行交叉引用。

我尝试使用 evince 中的“打印到文件”功能创建一个 PDF,它是较大 PDF 文件中页面的子集。它可以创建仅包含部分页面的 PDF,但它不会保留超链接hyperref。如何创建仅包含原始 PDF 中页面子集的 PDF,同时保留超链接?

更新:相关:仅编译页面范围或页面选择

更新 2:虽然 Adam Liter 的解决方案对我有用,但对于 LaTex 中的(首选)解决方案,请参阅 Heiko Oberdiek 的回答以下

答案1

对于非 TeX 解决方案:您可以使用命令行工具pdftk拼接原始 PDF 并仅使用原始 PDF 中的部分页面创建新 PDF。这将保留原始 PDF 中的超链接。

答案2

另外还提​​供 LaTeX 解决方案。

\include\includeonly

文档可以按页面边界划分为单个文件,例如章节。然后通过 包含这些文件\include。然后\includeonly使用应包含的文件名。示例:

\documentclass{book}
\usepackage{hyperref}

\includeonly{Summary}

\begin{document}
  \include{Introduction}
  \include{Theory}
  \include{Experiments}
  \include{Results}
  \include{Summary}
\end{document}

包裹pagesel

pagesel如果需要选择某些页面,可以使用包,例如:

\documentclass{book}
\usepackage[1,11]{pagesel}
\usepackage{hyperref}
\begin{document}
  \tableofcontents
  \chapter{Introduction}
  \chapter{Theory}
  \chapter{Experiments}
  \chapter{Results}
  \chapter{Summary}
\end{document}

首先在不使用软件包的情况下编译文档,pagesel以获取正确/更新的辅助文件。使用 时pagesel,不会默认写入辅助文件,而是使用辅助文件并输出所选页面。

指向选定范围之外的链接

hyperref生成链接时,不知道哪些页面被排除在外。根据驱动程序的不同,如果链接指向包含的页面范围之外,这些过时的链接可能会被替换为指向文档开头的链接。

相关内容