我正在使用 python 和 pdftk 从许多 pdf 文件创建作品集。大约一半的文件由 LaTeX 生成,另一半则扫描到文档中。完成后,我想创建一个目录,其中包含指向最终组装文档中特定页面的超链接。我有一个目录,其中包含每个文档的正确页码。它看起来不错(在我看来),但超链接不起作用。我认为问题在于 toc tex 文件只有一页,因此指向其他页面的链接似乎不起作用。这是我的 toc 文件代码:
\input{toc_header}
\begin{document}
\begin{center}
\begin{tabularx}{0.95\textwidth}{Xr}
{\large \textbf{Table of Contents}} & page \\
Table of Contents & \hyperlink{page.2}{2} \rule{0pt}{1.2EM} \\
\hline
CV & \hyperlink{page.3}{3} \rule{0pt}{1.2EM} \\
\hline
Support Letter from Nominator & \hyperlink{page.7}{7} \rule{0pt}{1.2EM} \\
\hline
Section 1: Philosophy of Teaching & \hyperlink{page.10}{10} \rule{0pt}{1.2EM} \\
\hline
Section 2: Implementation and Outcomes of the Teaching Philosophy & \hyperlink{page.12}{12} \rule{0pt}{1.2EM} \\
\hline
\hspace{0.25in} 2. A: Evidence of Acting on Teaching Evaluations & \hyperlink{page.13}{13} \rule{0pt}{1.2EM} \\
\hline
\hspace{0.25in} 2. B: Examples of How My Teaching Philosophy Has Been Implemented & \hyperlink{page.26}{26} \rule{0pt}{1.2EM} \\
\hline
\hspace{0.25in} 2. C: Evidence of the Effectiveness of My Teaching & \hyperlink{page.45}{45} \rule{0pt}{1.2EM} \\
\hline
\hspace{0.25in} 2. D: Syllabi for the Past Three Semesters & \hyperlink{page.58}{58} \rule{0pt}{1.2EM} \\
%many more entries
\end{tabularx}
\end{center}
\end{document}
有没有什么方法可以创建像这样的单页文档,其中包含指向技术上不存在的页面的链接,以便当我使用 pdftk 将其与其他 pdf 合并时,超链接可以起作用?
答案1
pdfpages
可用于将 PDF 嵌入文档和将条目添加到目录中。
假设您有一个文件kant.pdf
,想要将其嵌入到主文件中,您可以通过调用includepdf
以下参数来实现:
\includepdf[%
pages=-,
addtotoc={% You can add more than one entry to the toc
1, % page number
section, % latex section name
1, % level: 1 for section, 2 for subsection...
Important paper on Kant, % title text for toc
pdf:kant % label
}
]{kant.pdf}
这是一篇简单的康德论文:
% filename: kant.tex
\documentclass[a4paper]{article}
\usepackage{kantlipsum}
\usepackage{hyperref}
\title{Important paper on Kant}
\begin{document}
\maketitle
\tableofcontents
\section{Practical reason}
\kant
\section{Impractical reason}
\kant
\end{document}
还有一个主文件,其中包含kant.pdf
并设置三个书签(针对标题和两个部分):
% filename: main.tex
\documentclass[a4paper]{article}
\usepackage{pdfpages}
\usepackage{hyperref}
\begin{document}
\tableofcontents
\includepdf[%
pages=-,
addtotoc={% You can add more than one entry to the toc
1, % page number
section, % latex section name
1, % level: 1 for section, 2 for subsection...
Important paper on Kant, % title text for toc
pdf:kant, % label
1, subsection, 2, Practical reason, pdf:kant:sec1,
3, subsection, 2, Impactical reason, pdf:kant:sec2
}
]{kant.pdf}
\end{document}
如果您希望保留现有的表,那么请不要使用,而\tableofcontents
应使用:\pageref
\hyperlink
% filename: main2.tex
\documentclass[a4paper]{article}
\usepackage{pdfpages}
\usepackage{hyperref,bookmark}
\begin{document}
The paper on kant is on page \pageref{pdf:kant}.
\clearpage
\includepdf[%
pages=-,
addtotoc={% You can add more than one entry to the toc
1, % page number
section, % latex section name
1, % level: 1 for section, 2 for subsection...
Important paper on Kant, % title text for toc
pdf:kant, % label
1, subsection, 2, Practical reason, pdf:kant:sec1,
3, subsection, 2, Impactical reason, pdf:kant:sec2
}
]{kant.pdf}
\end{document}
警告:所包含的 pdf 文件中的链接(和注释)丢失。
如果您想要一致的页码、页眉和/或页脚,您可以定义页面样式并将其与选项一起使用pagecommand
(默认为pagecommand={\thispagestyle{empty}}
)。