![使用 includepdf 和 pagecommand 避免多个部分](https://linux22.com/image/335071/%E4%BD%BF%E7%94%A8%20includepdf%20%E5%92%8C%20pagecommand%20%E9%81%BF%E5%85%8D%E5%A4%9A%E4%B8%AA%E9%83%A8%E5%88%86.png)
我有一个 3 页的 PDF。我想使用 \includepdf 命令和 pagecommand 选项将 PDF 插入文档,如下所示:
\includepdf[pages=-, scale=0.8, pagecommand=\subsubsection{Foo}]{./Attachments/foo.pdf}
但是,这会产生多个部分 (Foo 1、Foo 2、Foo 3)。如何避免这种情况并只为每个部分生成一个“Foo”标题?
答案1
好的,我找到了我为某个叫 victor 的人做过的东西,并对其进行了简化。基本上,每次\includepdf
调用 page 命令时以及包含任何此类 PDF 的第 1 页时,都会重新定义 page 命令。第一次,它被重新定义为添加附加材料。第二次,它被重新定义为不添加附加材料。结果是该材料仅在所包含 PDF 的第一页上使用。
\pdfminorversion=7
\begin{filecontents}{\jobname x.tex}% once written, you need to compile \jobname x.tex to produce \jobname x.pdf for inclusion below (the first run will produce an error but this is only for the example anyway)
\documentclass[a4paper]{article}
\usepackage{geometry}
\geometry{scale=.75}
\begin{document}
foo1\newpage foo2 \newpage foo3
\end{document}
\end{filecontents}
\documentclass[a4paper]{article}
\usepackage{geometry,pdfpages,etoolbox}
\geometry{scale=.85}
\makeatletter
\pretocmd{\includepdf}{%
\def\victor@dynpage{\victor@firstpage\global\let\victor@dynpage\relax}%
}
\newcommand*\dynpage[1]{%
\def\victor@firstpage{#1}%
\victor@dynpage}
\makeatother
\begin{document}
\includepdf[pages={-}, pagecommand=\dynpage{\subsubsection{Subsubsection}}]{\jobname x}
\end{document}