pdfpages 的标题/说明/脚注

pdfpages 的标题/说明/脚注

我经常使用 pdfpages 包来将单页或多页包含到我的文档中(测量图、几页外部文档等)。我不想将它们作为图片包含进去\includegraphics{},因为这样会将它们的大小调整太多。无论如何,包含的页面通常都具有已打印的格式。

\documentclass{scrartcl}

\usepackage{pdfpages}

\begin{document}
% Include a single PDF page
\includepdf[
    frame,
    scale=0.90
]{pdfdocument.pdf}

% Include a pdf-document with several pages
\includepdf[
    pages=-,                
    nup=1x2,                
    frame,                  
    landscape,          
    delta=5mm 5mm,  
    scale=0.95,         
]{pdfdocument.pdf}

\end{document}

关于如何在所包含的文档的上方或下方设置描述、标题或类似内容,您有什么想法吗?

请参阅此草图以获取解释。

在此处输入图片描述 在此处输入图片描述 在此处输入图片描述

答案1

该答案尝试通过以下步骤完成您的要求:

  1. 用于geometry设置页边距以适应您想要的标题和页码。
  2. 使用caption\captionof及其\captionof*命令来设置标题。
  3. 在环境中使用pdflscape和包装横向页面,landscape以正确​​的方向设置标题。
  4. 该示例假设每个包含的文档都有一个标题。为此,pdfpages已进行修补以提供一个pagecommand*选项,允许在包含的页面的第一页上执行不同的命令。我编写的方式pagecommand*是在第一页执行,pagecommand在第二页和后续页面上执行(尽管如果需要,这可以相对容易地更改)。如果您希望为不同的页面使用不同的标题,最好一次包含 2 页文档(在这种情况下,补丁不是必需的)。

示例输出:

给出的输出提供了所有页面的页码(纵向布局,适合打印)。

第1页

第2页

第3页

代码

此代码已被注释,以便了解哪里进行了更改。

\documentclass{scrartcl}

\usepackage{caption}  % Use for \captionof(*) command

% Set the page margins to accomodate space for captions and page numbers
\usepackage[left=0.9cm,right=0.9cm,bottom=1cm,footskip=1em,includefoot]{geometry}
% Use for 'landscape' environment to position landscape captions properly
\usepackage{pdflscape}

% Setup the new 'pagecommand*' option key-value
\usepackage{etoolbox}
\usepackage{pdfpages}
\makeatletter
\newcommand*{\AM@pagecommandstar}{}
\define@key{pdfpages}{pagecommand*}{\def\AM@pagecommandstar{#1}}
\patchcmd{\AM@output}{\begingroup\AM@pagecommand\endgroup}
{\ifthenelse{\boolean{AM@firstpage}}{\begingroup\AM@pagecommandstar\endgroup}{\begingroup\AM@pagecommand\endgroup}}{}{} % Patch to use new option
\patchcmd{\AM@split@optionsii}{\equal{pagecommand}{\AM@temp}\or}
{\equal{pagecommand}{\AM@temp}\or\equal{pagecommand*}{\AM@temp}\or}{}{}
\makeatother

\begin{document}

% Include a single PDF page
\includepdf[
    frame,
    scale=0.90,
    % Use new 'pagecommand*' to set caption on the first page, include page #
   pagecommand*={\thispagestyle{plain}\null\vfill\captionof{figure}{This is the FIRST caption}}
]{pdfdocument.pdf}

% Include a pdf-document with several pages
\begin{landscape} % Be sure to wrap in 'landscape' environment
\includepdf[
    pages=-,                
    nup=1x2,                
    frame,                  
    landscape,          
    delta=5mm 5mm,  
    scale=0.90,
    % Set the caption on the first page of output
    pagecommand*={\thispagestyle{plain}\null\vfill\captionof{figure}{This is the SECOND caption}},
    % Set the [continued] caption on second and subsequent pages
    % Use '\captionof*{...} to avoid duplicate entries in listoffigures
    pagecommand={\thispagestyle{plain}\null\vfill\captionof*{figure}{\figurename~\thefigure: This is the SECOND caption (Continued)}}
]{pdfdocument.pdf}
\end{landscape}

\end{document}

答案2

另一种解决方案是使用\addtolistpdfpages 的功能,并使用 更改布局geometry

\documentclass{scrartcl}

\usepackage{pdfpages}
\usepackage{lipsum}

\usepackage{geometry}
\geometry{a4paper}

\usepackage[]{scrlayer-scrpage}

% Fußzeile
\ofoot[\pagemark]{\pagemark}
\cfoot[]{Section}
\ifoot[]{Document number}
\pagestyle{scrheadings}

\newcommand{\pdfportrait}[2]{
\newgeometry{bottom=0.5cm,includefoot}
\cfoot[#1]{}
\includepdf[
    frame,
    scale=0.90,
    addtolist={1,figure,#1,#1},
    pagecommand={\thispagestyle{plain}}
]{#2}
\restoregeometry
}

\newcommand{\pdfbooklet}[2]{
\newgeometry{bottom=0.5cm,includefoot}
\cfoot[#1]{}
\includepdf[
    pages=-,                
    nup=1x2,                
    frame,                  
    landscape,          
    delta=5mm 5mm,  
    scale=0.90,
    addtolist={1,figure,#1,#1},
    pagecommand={\thispagestyle{plain}}
]{#2}
\restoregeometry
}

\begin{document}

\listoffigures

\lipsum

% Include a single PDF page
\pdfportrait{Single page portrait oriented}{pdfdocument.pdf}

\lipsum

% Include a pdf-document with several pages
\pdfbooklet{Multiple pages - 2 per page}{pdfdocument.pdf}

\lipsum

\end{document}

在此处输入图片描述

在此处输入图片描述

在此处输入图片描述

在此处输入图片描述

在此处输入图片描述

在此处输入图片描述

相关内容