我想向我的同事发送一份文档的一部分。该文档包含来自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
生成链接时,不知道哪些页面被排除在外。根据驱动程序的不同,如果链接指向包含的页面范围之外,这些过时的链接可能会被替换为指向文档开头的链接。