带有超链接的单页目录,可用于 pdftk

带有超链接的单页目录,可用于 pdftk

我正在使用 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}})。

相关内容