我有一份双面 A5 横向文档,其页面顺序如下:
由于我的打印机仅支持 A4 纸,因此我想将其中两页打印在一张纵向 A4 纸上,以便我可以将其切成两半以获得原始大小的纸张。换句话说,我需要的是以下页面布局:
(两页之间的线仅用于演示目的,它不是最终结果的一部分。)
我怎样才能实现这种布局pdfpages
?
“幼稚”的做法
\documentclass[a4paper]{article}
\usepackage{pdfpages}
\begin{document}
\includepdf[pages=-,nup=1x2]{a5-document}
\end{document}
产量
所以每页的正面和背面都是一个相同的纸张的一面,而不是出现在相反的面上。
目前,我正在使用以下手动解决方案,这非常繁琐且容易出错,尤其是对于大型文档而言:
\documentclass[a4paper]{article}
\usepackage{pdfpages}
\begin{document}
\includepdf[pages={1,3,2,4,5,7,6,8,...},nup=1x2]{a5-document}
\end{document}
答案1
以下是在 ConTeXt 中执行此操作的方法:
\setuppagenumbering [位置=] \setuppapersize [A5,横向] [A4] \设置排列[2顶边] \开始文本 \dorecurse{8}{% \centerline{\definedfont[256pt 的衬线字体]\recurselevel}\page} \停止文本
结果如下:
该\setuppapersize
命令表示您要编写一份 A5 横向文档,该文档应打印在 A4 纸上。\setuparranging
用于按您希望的方式排列页面。还有更多方案可用。
答案2
我对这个问题的答案很好奇,所以经过大量的搜索,我找到了这篇由作者 Andreas Matthias 提供的绝佳解决方案,pdfpages
发表于压缩文本.tex。因为它有一个有趣的背景,所以我将提供整个文本,因为它太棒了。
由于显而易见的原因,标记为社区维基。:)
安德烈亚斯的短信:
pdfpages
强制页面翻转,使得打印时页面翻转到长边,而打印时psnup
页面翻转到短边。在 Postscript 中,这被称为/Tumble
,可以设置为 true 或 false。
如今,所有双面打印机都应该能够以短边模式和长边模式进行打印。所以这应该不是什么大问题。
但是,如果您更喜欢短边打印,您可以指示pdftex
( xetex
) 每隔一页旋转一次。以下是示例:
\documentclass[a4paper,final]{article}
\usepackage{pdfpages}
\usepackage{ifpdf,ifxetex}
\makeatletter
\ifpdf
\EveryShipout{\ifodd\c@page\else\pdfpageattr{/Rotate 180}\fi}%
\fi
\ifxetex
\EveryShipout{\ifodd\c@page\special{pdf: put @thispage << /Rotate 180 >>}%
\fi
}
\fi
\makeatother
\begin{document}
\includepdf[pages=-, nup=1x2, booklet=true, landscape]{a5.pdf}
\end{document}
[...]
再见
安德烈亚斯
笔记: \EveryShipout
由包提供everyshi
。:)
感谢 Andreas 和这个很棒的代码,我认为以下代码将对您有所帮助:
\documentclass[a4paper]{article}
\usepackage{pdfpages}
\usepackage{ifpdf,ifxetex,everyshi}
\makeatletter
\ifpdf
\EveryShipout{\ifodd\c@page\else\pdfpageattr{/Rotate 180}\fi}%
\fi
\ifxetex
\EveryShipout{\ifodd\c@page\special{pdf: put @thispage << /Rotate 180 >>}%
\fi
}
\fi
\makeatother
\begin{document}
\includepdf[pages=-,signature=4,angle=180]{a5-document}
\end{document}
现在我确信我对 TeX 力量的方式一无所知。:)
答案3
对于像我这样的新手:
- 创建需要为 A5 格式的 pdf。(我将其命名为“book.pdf”)
- 创建一个 tex 空项目(我将其命名为“bookA5print.tex”)
将其粘贴/写入到您的新 .tex 文件中:
\documentclass[a4paper,final]{article} \usepackage{pdfpages} \usepackage{ifpdf,ifxetex,everyshi} \makeatletter \ifpdf \EveryShipout{\ifodd\c@page\else\pdfpageattr{/Rotate 180}\fi}% \fi \ifxetex \EveryShipout{\ifodd\c@page\special{pdf: put @thispage << /Rotate 180 >>}% \fi } \fi \makeatother \begin{document} \includepdf[pages=-, nup=1x2, booklet=true, landscape]{book.pdf} \end{document}
然后在终端上执行xelatex bookA5print.tex
这避免了旋转问题。
感谢 Paolo Cereda 和 Andreas
答案4
这可以使用以下4 on 2, odd then even
布局来实现pgfmorepages
。这会将两个逻辑页面放在一个物理页面上,但使用顺序 1、3、2、4(重复)。双面打印时,这会将第 1 页和第 2 页背对背放置,第 3 页和第 4 页背对背放置,依此类推。