在我的文档开头,我插入了一个 3 页的 PDF。在目录中,我引用了上述 3 页 PDF 中的项目。但是,目录旁边的页码不正确。有没有办法更改这个页码。这是 MWE
我像这样导入到 LaTeX 中:
\includepdf[pages=-]{resources/frontmatter.pdf}
现在我将其放在 \begin{document} 之后
% add signature block stuff
\addcontentsline{toc}{section}{Signature Block}
\addcontentsline{toc}{section}{Record of Revision}
\setcounter{page}{4}
那么我的目录显示的内容如下:
我希望签名栏和修订记录旁边的页码分别为 2 和 3。我不关心目录是否超链接到签名栏或修订记录;只是想更改页码。
答案1
pdfpages
提供addtotoc
一个选项,用于指定应将包含的文档的哪些部分添加到目录中。它需要 5 个参数:
addtotoc={<page number>, <section>, <level>, <heading>, <label>}
因此,您可以包含文档的各个组件并放置适当的addtotoc
参数以确保正确的格式和链接。
\documentclass{article}
\usepackage{pdfpages,lipsum}
\usepackage{hyperref}
\newcounter{secnumdepthstore}% For storing whatever secnumdepth is
\begin{document}
\tableofcontents
\setcounter{secnumdepthstore}{\value{secnumdepth}}% Store value of secnumdepth counter
\setcounter{secnumdepth}{0}% Avoid numbering sections
\includepdf[
pages=1-2,
addtotoc={%
1,% <page number>
section,% <section>
1,% <level>
Signature block,% <heading>
signature_block% <label>
}
]{example-image-letter-numbered.pdf}
\includepdf[
pages=3,
addtotoc={%
3,% <page number>
section,% <section>
1, % <level>
Record of revision,% <heading>
record_of_revision% <label>
}
]{example-image-letter-numbered.pdf}
\setcounter{secnumdepth}{\value{secnumdepthstore}}% Restore section numbering up to secnumdepth
\section{Introduction}
\lipsum[1-10]
\end{document}
由于未指定您使用的文档类,因此secnumdepth
在包含页面之前,我会捕获 (指定哪些部分单元已编号或未编号)的值 - 将其设置为0
因此\section
(处于级别1
)未编号 - 并在包含页面后重置它。
答案2
请注意,这对应于 的 TOC 条目\section*
。
\documentclass{article}
\usepackage{lipsum}
\AddToHook{shipout/background}{\ifodd\value{page}%
\setlength{\dimen0}{\dimexpr 1in+\oddsidemargin}%
\else
\setlength{\dimen0}{\dimexpr 1in+\evensidemargin}%
\fi
\setlength{\dimen1}{\dimexpr 1in+\topmargin+\headheight+\headsep+\topskip}% first baseline
\ifnum\value{page}=2\relax \put (\dimen0,-\dimen1)
{\addcontentsline{toc}{section}{Signature Block}}\fi
\ifnum\value{page}=3\relax \put (\dimen0,-\dimen1)
{\addcontentsline{toc}{section}{Record of Revision}}\fi}
\begin{document}
\tableofcontents
\newpage
\lipsum[1-12]
\end{document}
只是为了好玩,这里有一个超文本兼容版本\section
。您甚至可以使用调整位置\put
。
\documentclass{article}
\usepackage{lipsum}
\usepackage{hyperref}
\AddToHook{shipout/background}{\ifodd\value{page}%
\setlength{\dimen0}{\dimexpr 1in+\oddsidemargin}%
\else
\setlength{\dimen0}{\dimexpr 1in+\evensidemargin}%
\fi
\setlength{\dimen1}{\dimexpr 1in+\topmargin+\headheight+\headsep+\topskip}% first baseline
\ifnum\value{page}=2\relax \put (\dimen0,-\dimen1)
{\refstepcounter{section}\addcontentsline{toc}{section}{\string\numberline{\thesection}Signature Block}}\fi
\ifnum\value{page}=3\relax \put (\dimen0,-\dimen1)
{\refstepcounter{section}{\addcontentsline{toc}{section}{\string\numberline{\thesection}Record of Revision}}}\fi}
\begin{document}
\tableofcontents
\newpage
\lipsum[1-12]
\end{document}