所含多页 pdf 的(子)部分标题

所含多页 pdf 的(子)部分标题

这是对另一个主题的后续,在该主题中我获得了有关如何在所包含的 pdf 上使用章节和小节标题 \includepdf 的建议:\includepdf 跳转到新页面 - 我可以避免这种情况吗?

建议的 \resizebox + \includegraphics 解决方案似乎确实解决了单页 pdf 的问题。但是,使用上述线程中的解决方案,我的多页 pdf 被视为单页,即仅包含第一页。正如建议的那样,多页 def 文件中的其余页面随后可以通过 \includepdf[pages={2- } 包含。

结合这两个命令不是很方便,但可能是可行的,除非第一页的缩放比例和定位与其余页面不同。

对我来说,在这种情况下制作 MWE 相当复杂,因此我(至少现在)只会提供代码和输出文件的快照。

\begin{center} %centre on page
    \resizebox{1.0 \textwidth}{!}{ %resize inserted page
        \includegraphics{appendix/Initial-presentation-of-the-project.pdf}
    } %close resizebox    
\end{center}

\includepdf[pages={2- }, scale=0.755,pagecommand={\thispagestyle{plain}}] {appendix/Initial-presentation-of-the-project.pdf}

请注意代码片段中的不同比例值以及输出文件左侧第 35 页和第 36 页边框的不同位置。以下页面与第 36 页类似。

第 35 和 36 页的寄宿生

使用@Tom Kelly的最新建议后,尺寸问题得到解决。位置问题没有使用,但已最小化:

在此处输入图片描述

答案1

\includepdf有一个width参数。使用此参数代替scale给出精确的宽度:

\pagebreak

\section*{Appendix of Introduction}

\subsection*{Appendix a: Initial presentation of the project}

\newline
\begin{center} %centre on page
\resizebox{\textwidth}{!}{ %resize inserted page
\includegraphics[page = 1]{{"appendix/Initial-presentation-of-the-project.pdf"}}
} %close resizebox    
\end{center}

\includepdf[pages = {2- }, width = \textwidth, pagecommand = {\thispagestyle{plain}}] {appendix/Initial-presentation-of-the-project.pdf}

答案2

我编写了一个名为的包,pdfoverlay它允许您将文本叠加到现有 PDF 上。只需对将 PDF 定位到页面上的宏进行轻微修改,您就可以让其将每个 PDF 放置在页面文本的底部并缩放到\textwidth

您可以使用它adjustbox轻松地构建每个页面。

可以将每个 PDF 页面以任意大小放置在页面上的任何位置。

像这样:

\documentclass{article}
\usepackage{lipsum}
% use adjustbox to frame each page
\usepackage[export]{adjustbox}
\usepackage{pdfoverlay}
% Options for include graphics to scale to text width and frame each page
\pdfoverlaySetGraphicsOptions{keepaspectratio, width=\textwidth, frame}
% slightly redefine \__pdfoverlay_format_pdf_page: so that pdf page is placed
% at the bottom of the page text, rather than at the centre of the page
\ExplSyntaxOn
\cs_set:Nn \__pdfoverlay_format_pdf_page:
  {
    \AtTextUpperLeft
      {
        \put(0,\LenToUnit{-\textheight})
          {
            \use:x
              {
                \exp_not:N \includegraphics
                  [ \clist_use:Nn \g__pdfoverlay_graphics_options_clist { , } ]
                  { \g__pdfoverlay_pdf_file_name_str }
              }
          }
      }
  }
\ExplSyntaxOff
\begin{document}
\lipsum[1]
\clearpage
\section*{Appendixes}
\subsection*{Appendix A}
\pdfoverlaySetPDF{first.pdf}
\pdfoverlayIncludeToLastPage
\null\clearpage
\subsection*{Appendix B}
\pdfoverlaySetPDF{second.pdf}
\pdfoverlayIncludeToLastPage
\null\clearpage
\subsection*{Appendix C}
\pdfoverlaySetPDF{third.pdf}
\pdfoverlayIncludeToLastPage
\end{document}

答案3

在我看来,\resizebox+\includegraphics组合是一种很笨拙的 hack,它没有利用pdfpages被视为选项的包。如果使用强大的选项,可以使用此包的裁剪和尺寸控制来简化代码pagecommand

这是一个 MWE,它生成一个常规附录,第二个附录的内容是pdf 文档本身pdfpackage。我假设您要包含的第一页的有效高度明显小于常规页面,因为章节标题占据了

\documentclass[a4paper,12pt]{report}
\usepackage{pdfpages}
\pagestyle{headings}
\begin{document}
\appendix
\chapter{My first appendix}
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

\includepdf[width=\paperwidth,pages={1},trim={0in 1.5in 0in 5in},clip,
pagecommand={\chapter{My second appendix}},offset={0mm -2in}]{pdfpages.pdf}

\includepdf[width=\paperwidth,pages={2-4},trim={0in 0in 0in 0in},clip,
pagecommand={},offset={0mm -0.5in}]{pdfpages.pdf}

\end{document}

在此代码中,包括第一页的选定部分(由两个非消失trim参数定义。偏移量用于垂直定位部分,以考虑主文档中的页眉高度和页脚高度(经验法则:底部修剪值减去底部边距的高度)。

对于其他页面,页面命令必须保持为空,以确保排版运行标题,并且仍然使用偏移量来适应两个文档的不同布局。结果如下所示(添加了宽度框架选项\includepdf以可视化偏移量):

在此处输入图片描述

使用此策略,无需做任何事情即可保持初始文本完全不缩放。显然,如果您想剪掉源 PDF 的页码,则必须调整修剪和偏移参数。

相关内容