pdfpagesパッケージがdvipdfmxに対応したようだ.めでたい.というわけでpdfpagesの使い方を書いてみようと思う.
はじめに
pdfpagesとはLaTeXにPDFの各ページを挿入するためのパッケージです.というとgraphicxの\includegraphics
と同じな気がしてきますが,\includegraphics
が文書に図を挿入するのに対し,pdfpagesは文書の特定のページにもともとのPDFのページを挿入することができます.例えば
\documentclass[dvipdfmx]{article}
\usepackage{pdfpages}
\begin{document}
\includepdf[pages=2]{inc.pdf}
\end{document}
とすると,「inc.pdfの2ページ目のみ切り取ったかのようなPDFファイル」が生成されます*1.新しく何か書く,というよりは複数のPDFをまとめる場合などに便利でしょう.もともとのPDFの2ページを1ページにまとめる,などという処理も可能です.
インストール
TeX Live,W32TeXともに既に含まれているので,改めて導入する必要はありません.
使い方
platex + dvipdfmxを使う時は
\documentclass[dvipdfmx]{jsarticle}
\usepackage{pdfpages}
とします.pdflatex/lualatexの場合はオプション無しで,
\documentclass{article}
\usepackage{pdfpages}
でよいようです.
\includepdf[pages={1,3}]{inc.pdf}
とすることで,inc.pdfの1ページ目と3ページ目が挿入されます.最初に述べた通り,inc.pdfの各ページが文書の各ページを占有します.pagesは
- pages=2とすると2ページ目を挿入
- pages={2-4}とすると2ページ目から4ページ目までを挿入
- pages={-3}とすると1ページ目から3ページ目までを挿入
- pages={4-}とすると4ページ目以降全てを挿入.pages={4-last}でも同様.(lastはこのようなページ範囲の指定のみで有効.pages={last}という指定ができるわけではない.)
- pages={5-3}とすると3ページ目から5ページ目までを逆順で挿入.
- pages={last-1}とすると全ページを逆順で挿入.
- pages={1,{},4}とすると1ページ目と4ページ目を挿入し,その間に空ページを入れる
- pages={8,2-4,{},11}とすると8,2,3,4ページ目,空ページ,11ページ目の順番で挿入
- pages=-とすると全ページを挿入
\includepdf[pages=-,lastpage=9]{inc.pdf}
のようにlastpageオプションで指定します.
例
かなりたくさんのオプションがあります.ここで紹介するのはごく一部です.
\includepdf[nup=2x3,pages=-]{inc.pdf}
横2縦3に並べて配置します.順番はcolumnオプションの有無で変わり
\includepdf[nup=2x3,pages=-]{inc,pdf}
1 2 3 4 5 6 \includepdf[nup=2x3,column,pages=-]{inc.pdf}
1 4 2 5 3 6
\includepdf[nup=2x3,pages=-]{inc,pdf}
1 2 3 4 \includepdf[nup=2x3,column,pages=-]{inc,pdf}
1 3 2 4 \includepdf[nup=2x3,column,columnstrict,pages=-]{inc,pdf}
1 4 2 3
\includepdf[pagecommand={\thispagestyle{plain}},pages=-]{inc.pdf}
pagecommandで指定されたLaTeXの命令は,PDF挿入直前に実行されます.デフォルトは\thispagestyle{empty}
で,これによってページ数が消えたりしています.上の例を実行すると,ページ数が追加されたinc.pdfが生成されます.
\includepdf[fitpaper]{inc.pdf}
現在作成している文書サイズと挿入されるPDFのサイズが異なる場合,pdfpagesは挿入するファイルを適当に拡大縮小し,現在の文書サイズにあわせます.fitpaperオプションを指定すると,逆に文書サイズを挿入されるPDF(の最初のページ)のサイズにあわせます.(拡大縮小も行われません.)文書サイズはそのままでよいが,挿入するPDFの拡大縮小を抑制したい場合はnoautoscaleオプションを使います.
\includepdf[nup=2x2,offset=0.5cm 0.7em,delta=0.3cm 2cm]{inc.pdf}
offsetはPDFを挿入する位置の調整,deltaはnupオプションを指定した場合の挿入されたPDF間隔の調整を行います.上の例では,PDFを右に0.5cmずらし,上に0.7cmずらして,また縦の間隔を0.3cm,横の間隔を2cmとして2×2の配置を行っています.マニュアルの9ページ目の図を見てもらうのが早いと思います.
\includepdf[frame]{inc.pdf}
挿入したPDFのまわりを枠で囲みます.
\includepdf[viewport=0 0 50 50]{inc.pdf}
\includegraphics
(graphicxパッケージが提供するもの)が受けつけるオプションも利用可能です.
\includepdf[noautoscale,scale=0.8]{inc.pdf}
noautoscaleは上述した通りpdfpagesによる挿入するPDFの拡大縮小を抑制するオプションです.scaleオプションは\includegraphics
が解釈できるオプションです.この組み合わせにより挿入するPDFを自由な倍率で拡大縮小することができます.
\includepdfmerge[nup=2x3]{inc1.pdf,2,4,inc2.pdf,2-6}
命令が\includepdf
ではなくて\includepdfmerge
であることに注意してください.\includepdf
では,例えばinc1.pdfとinc2.pdfの1ページ目を横に並べるということができません.そのような場合には,\includepdfmerge
を使って複数のファイルを指定します.
ファイルはページ数とともに指定します*2.<ファイル名>,<ページ指定>の繰り返しで指定します.ページ指定は\includepdf
のpagesオプションと同様です.また,\includepdfmerge
は\includepdf
が受けつけるオプションのうち,pages以外を全て受けつけます.
\includepdf[pages=-,booklet]{inc.pdf}
面付けします.
注意
挿入にはgraphicxパッケージの\includegraphics
を用いています.特にBoundingBoxの指定が必要です.pdftexを使っていたり,最近のW32TeXやTeX Live 2015をデフォルトの設定で使っている場合(またはextractbbの自動起動が有効にしている場合)は自動で取得するので不要です*3.
hyperrefパッケージなどを使うとリンクの入ったPDFを作ることができますが,そのようなファイルを\includepdf
で挿入するとリンクが消えてしまいます.pdftkなどの別ツールの利用を検討してください.
マニュアル
いつも通りのtexdoc pdfpagesです.またはCTANへのリンク.
- *1
- サイズは文書のサイズに調整されます.後述のfitpaperオプションを使うと挿入するPDFのサイズに文書のサイズを調整することもできます.
- *2
- ページ数を省略することもできます.その場合は
\includepdf
同様最初のページのみが挿入されます. - *3
- そうでない場合は,extractbbにより.xbbファイルを作っておく必要があります.なお,.xbbファイルを使う場合は,PDFファイルの各ページのサイズが同じでなければなりません.
\includegraphics
にも通用する話ですが,extractbbによりえられる.xbbファイルに書かれているBoundingBoxは1ページ目のみのものです.(-pオプションによりページ数を与えていればそのページのもの.)よって,1ページ目と2ページ目のサイズの違うPDFファイルの場合,.xbbファイルにより得られるBoundingBoxは,2ページ目に関しては間違ったものになります.
0 件のコメント:
コメントを投稿
コメントの追加にはサードパーティーCookieの許可が必要です