pdfpages 中的目录条目顺序混乱

pdfpages 中的目录条目顺序混乱

目前我的情况是,我已经通过 includepdf 插入了一些页面,然后使用 addtotoc 函数进行了额外的 \includepdf 调用,如下所示:

\includepdf{pdffile1}
\includepdf{pdffile2}
\includepdf{pdffile3}
\includepdf{pdffile4}
\includepdf{pdffile5}
\includepdf{pdffile6}

\addcontentsline{toc}{part}{Part 1. Part 1}
\includepdf[pages=-,pagecommand={},addtotoc={1, subsection, 2, somename, somenamelabel,
...
n, subsection, 2, somenameN, somenameNlabel}]{./part1docs}

\addcontentsline{toc}{part}{Part 2. Part 2}
\includepdf[pages=-,pagecommand={},addtotoc={1, subsection, 2, somenamepart2, somenamep2label,
...
n, subsection, 2, somenamepart2N, somenamep2Nlabel}]{./part2docs}

我现在想添加一个新的章节标题,称为“第 3 部分”,其中的子章节将引用 \includepdf{pdffile1}..\includepdf{pdffile6} 调用中的页面。

编辑:我发现某人的宏允许我输入条目

\newcommand*{\NoPageAddContentsLine}[3]{%
  \begingroup
    \newpage
    \let\protected@write\protected@immediate@write
    \addcontentsline{#1}{#2}{#3}%
  \endgroup
  \stepcounter{page}%
}

通过 \NoPageAddContents 行,如果我添加此代码:

\setcounter{page}{1}
\NoPageAddContentsLine{toc}{part}{Part 3. Transcripts}
\NoPageAddContentsLine{toc}{subsection}{pdffile1name}
...
\NoPageAddContentsLine{toc}{subsection}{pdffile6name}

看起来正确,但链接仍然是一个问题。即使我向每个 pdf 文件添加 link=true、linkname=x,它仍然不起作用。

如果通过 pdfpages 创建链接,有什么技巧可以获取以这种方式添加的内容条目的有效链接?

答案1

你真的想要一个这样的 TOC 吗?不是遵循文档结构?我想这会让阅读文档的每个人都感到困惑。

或许,一个包含对其他页面引用的简单表格可能是比将其放入目录中更好的解决方案。

无论如何,这是一个没有页码的快速解决方案。添加页码会更加麻烦。

\documentclass[a4paper]{article}
\usepackage{pdfpages}
\usepackage{hyperref}

\makeatletter
\newcommand\mysection[2]{%
  \stepcounter{section}
  \addtocontents{toc}{%
    \protect\contentsline{section}%
    {\protect\numberline {\thesection}#1}%
    {}%
    {#2}%
    \protected@file@percent}}
\makeatother

\begin{document}
\includepdf[pages=-, link, linkname=AAA]{dummy.pdf}

\tableofcontents
\section{First}
\mysection{Let's see}{AAA.2}
\section{Next}

\end{document}

答案2

通过使用

\newcommand*{\NoPageAddContentsLine}[3]{%
  \begingroup
    \newpage
    \let\protected@write\protected@immediate@write
    \addcontentsline{#1}{#2}{#3}%
  \endgroup
  \stepcounter{page}%
}

然后在每个无序索引的 includepdf 调用之后添加 \label{x} :

\includepdf{pdffile1}\label{whatiwant}

然后在 nopageaddcontentsline 中使用 hyperref,

\NoPageAddContentsLine{toc}{subsection}{\hyperref[whatiwant]{pdffile1 header name}}

它会起作用。这不是最漂亮的解决方案,但是它已经生成,所以我会接受它。

我也同意马蒂亚斯的观点,但这不是最好的做事方式。

但是 < 自夸的实体 > 就是 < 自夸的实体 >。在与他们争论之前,您的文件必须符合他们的标准;)

相关内容