![目录页码与 includepdf 和 addtotoc 以及标题错误](https://linux22.com/image/337415/%E7%9B%AE%E5%BD%95%E9%A1%B5%E7%A0%81%E4%B8%8E%20includepdf%20%E5%92%8C%20addtotoc%20%E4%BB%A5%E5%8F%8A%E6%A0%87%E9%A2%98%E9%94%99%E8%AF%AF.png)
我正在使用addtotoc
选项为两个包含的 PDF 添加目录条目includepdf
。但是,目录始终认为它们在第一页(请注意,我已经重建了文档足够多次,以便可以正确读取辅助文件)。此网站上的其他类似答案似乎建议使用addtotoc
,但我已经这样做了(如果手动添加内容行,结果相同,如示例中所示)。
在这种情况下,我希望每个文档标题都显示为目录中正确页面的条目(例如,在此特定示例中为第 1 页和第 220 页左右):
\documentclass[letterpaper]{book}
\usepackage{pdfpages}
\usepackage{titling}
\setcounter{secnumdepth}{-1}
% Add the title to the Table of Contents
% Has the same result as using the addtotoc option
% \renewcommand{\maketitlehooka}{\phantomsection\addcontentsline{toc}{chapter}{\thetitle}}
\newcommand{\includerfc}[4]{
\cleardoublepage
\title{#1}
\author{#2}
\date{#3}
\maketitle
\cleardoublepage
\includepdf[pages=-,addtotoc={1, chapter, 1, \thetitle, rfc:#4}]{rfc#4.pdf}
}
\begin{document}
\frontmatter
\tableofcontents
\mainmatter
\includerfc{Extensible Messaging and Presence Protocol: Core}{P. Saint‐Andre}{March 2011}{6120}
\includerfc{Use of Transport Layer Security in the\\*Extensible Messaging and Presence Protocol}{P. Saint‐Andre\\T. Alkemade}{June 2015}{7590}
\end{document}
我可以做些什么来确保页码是输出 PDF 中的实际页面,或者直到插入外部 PDF 后才会读取?
本示例文档中使用的 PDF 为:
答案1
TL;DR —\maketitle
正在重置页码。
挖掘了一段时间后,我决定仔细查看列表并开始注释掉那些看似与问题无关的内容,以防出现一些有趣的副作用;回想起来,也许我应该从这开始。
事实证明,当我注释掉 时\maketitle
,一切都正常。这促使我深入研究该titlepage
包,因此我开始注释掉那里的内容。最终,我注意到当我摆脱环境时它起作用了titlepage
,所以我深入研究了它并在书籍类中找到它。
事实证明,标题页重置了行号(正如您所预料的,因为它应该是第一页),并且使用环境titling
插入多个标题页不会改变这种行为或为您提供配置它的方法(据我所知)。