我正在创建一份 A4 尺寸的文档,但实际上应该将其打印在 A3 尺寸的纸张上。
一些信息:
主文档将设置为 a4、垂直/正常方向。
通过pdfpages得到的文档应该是a3,也就是a4页面并排的。
虽然我不确定这是否相关,但我创建的 A4 文档很可能有相同数量的页数。
=> 是否可以使用某种变量或逻辑表达式来寻址最后一页之前的页面?如果是,则该代码可以通用,而不必写出实际(离散)的寻呼机数量。
因此,相对于下面“a3”-MWE 中的代码,3
可能是那个变量或表达式。(pages={last,1-3},
)
A4 文档的 MWE
\documentclass[
11pt,
a4paper,
]
{scrartcl}
\usepackage{
lmodern,
blindtext
}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{multicol}
\listfiles
\begin{document}
\begin{center}
This document has 4 pages.
\end{center}
\begin{multicols*}{2}
\blinddocument
\blindtext[7]
\end{multicols*}
\end{document}
a3 文档的 MWE
\documentclass[
11pt,
a3paper,
landscape,
]
{scrartcl}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{pdfpages}
\listfiles
\begin{document}
\includepdf[pages={last,1-3},nup=2x1]{problem-pdpfages-second-last-page.pdf} %THIS IS JUST MY DOCUMENT NAME FOR THIS PROBLEM, please choose any document name how you see fit :)
\end{document}
答案1
我想您正在寻找选项signature
:
\includepdf[pages=-, signature=4]{file.pdf}
有些人对每隔一页的方向感到困扰。好吧,以前这样打印更容易。但现在这应该不是问题了。如果您希望将页面旋转回来,请使用:
\usepackage{atbegshi}
\makeatletter
%%% luatex:
\AtBeginShipout{\ifodd\c@page\pdfvariable pageattr{/Rotate 180}\fi}
%%% xetex:
% \AtBeginShipoutFirst{\ifodd\c@page\special{pdf: put @thispage <</Rotate 180>>}\fi}
%%% pdftex:
% \AtBeginShipout{\ifodd\c@page\pdfpageattr{/Rotate 180}\fi}
\makeatletter
注意:在不久的将来,使用 pdfmanagement 代码来旋转页面将会很有利,即
\pdfmanagement_add:nnn{ThisPage}{Rotate}{180}
。
答案2
您可以使用获取外部 PDF 的页数确定所包含的 PDF 中的总页数,然后从那里计算倒数前一页:
\documentclass[
11pt,
a3paper,
landscape,
]
{scrartcl}
\usepackage{pdfpages}
% Read in PDF to be included
\pdfximage{temp.pdf}
% Extract total number of pages and store it
\edef\includePDFpages{\the\pdflastximagepages}
\begin{document}
% \number\numexpr\includePDFpages-1 yields the page before last
\includepdf[pages={last,1-\number\numexpr\includePDFpages-1},nup=2x1]{temp.pdf}
\end{document}