这是对另一个主题的后续,在该主题中我获得了有关如何在所包含的 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 页类似。
使用@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 的页码,则必须调整修剪和偏移参数。