pdfファイルを2upにしてpdfで出力する

古いAcrobat Distillerでは,pdfファイルを印刷するときに,プリンタとしてpdfを選べば,普通にpdfファイルを出力することができました。そのときに,pdfのオプションとして2upを選んでおけば2upにするのもとても簡単でした。

Acrobat Pro DCになってからこれができなくなりました。pdfファイルの印刷出力で出力先にpdfを選ぶと,ファイルメニューから保存を選べ,というメッセージがでて印刷が中止されてしまいます。もちろん,ファイルメニューから「別名で保存」を選べばpdfとして出力できますが,(当たり前ですが)2upなどの印刷用のオプションはまったく使えません。なんとも,ふざけた仕様です。

それでどうしようか,と困っていたのですが,teTeXとかLiveTeXをインストールするといっしょにインストールされているらしいコマンドにConTeXtというなんともダジャレ全開のコマンド群があって,そのなかのtexexecというコマンドがpdfの結合,ページ抽出,面付けなどの機能があるようです。たとえば,ここここにそういう情報があります。

要するに,2upにしたければ,
texexec --pdfcombine --combination=2*1 --paperformat=a3,landscape --nobanner --result=OUTPUT.pdf INPUT.pdf
というふうにオプションを指定すればよいようです。

しかし,ここでFreeBSDのコマンドラインできっちり罠にはまりました。2*1というところに*が入っているのでシェルが横取りして展開しようとして,そんなファイルはありません,という得意のエラーを吐いて終了,というパターンです。クオーテーションマークで挟めばよいという話もありますが,どこをどのように挟めばよいのかよくわからんので,ここはunixなら*ではなく,xだろう,とヤマをはって試して見たら,うまく行きました。なんという適当な...

やりたいことは「pLaTeXのbeamerやprosperを使ってA4 (landscape)に出力したスライドをA4 (ポートレート)に縦に2枚並べて2upで出力する」です。上のコマンドの例では,--combination=2*1となっていますが,これは横に2枚,縦に1枚の面付けをする,という意味なので,やりたいこととマッチしていません。それに気がつくのにかなり時間がかかりました。っていうか,マニュアル見ろよ,って話ですね。すいません。横着しました。

というわけで,目的は,
texexec --pdfcombine --combination=1x2 --paper=a4 --nobanner --result=OUTPUT.pdf INPUT.pdf
というふうにオプションを指定して解決しました。上の例では紙の指定が--paperformatとなっていますが、FreeBSDの古い環境ではそんなオプションは知らないというエラーになるので--paperとしています。ConTeXtのバージョンに依存するのかもしれません。

めでたしめでたし,というかしょーもないことにハマりすぎです。あぁ...。
posted by MOR at 21:09Comment(0)General