在 A4 纸上打印双面 A5 文档

在 A4 纸上打印双面 A5 文档

我有一份双面 A5 横向文档,其页面顺序如下:

页面顺序:第 1 页正面,第 1 页反面,第 2 页正面,第 2 页反面,第 3 页正面,第 3 页反面,...

由于我的打印机仅支持 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 页背对背放置,依此类推。

相关内容