こえむのちょこっとメモ

大きなまとめにする程でもないけど記録したい事を残します

PDFファイルをPSに変換してLaTeXに埋め込む

(UpTeX 20111010版で動作させている事を前提に記述)

platex用に書いているドキュメントに、付録等で別のドキュメントをインポートする時に使っている。そのやり方を残しとく。

1ページ1ファイルとして抜き出す。
"-sOutPutFile"の引数には、Cのprintfと同じ構文が使える。

$ pdf2ps -sOutputFile='%03d.ps' -dSubsetFonts=true -dEmbedAllFonts=true -sPAPERSIZE=a4  [FILENAME].pdf

実行結果例

$ pdf2ps -sOutputFile='%03d.ps' -dSubsetFonts=true -dEmbedAllFonts=true -sPAPERSIZE=a4  case1.pdf 
$ ll
total 2576
-rw-r--r--  1 koemu  staff    78K  1  1 18:59 001.ps
-rw-r--r--  1 koemu  staff    89K  1  1 18:59 002.ps
-rw-r--r--  1 koemu  staff    73K  1  1 18:59 003.ps
-rw-r--r--  1 koemu  staff    83K  1  1 18:59 004.ps
-rw-r--r--  1 koemu  staff    63K  1  1 18:59 005.ps
-rw-r--r--  1 koemu  staff   266K  1  1 18:59 006.ps
-rw-r--r--  1 koemu  staff    52K  1  1 18:59 007.ps
-rw-r--r--  1 koemu  staff    73K  1  1 18:59 008.ps
-rw-r--r--  1 koemu  staff    85K  1  1 18:59 009.ps
-rw-r--r--  1 koemu  staff    43K  1  1 18:59 010.ps
-rw-r--r--  1 koemu  staff   2.5K  1  1 18:59 011.ps
-rw-r--r--  1 koemu  staff   355K  8 31 21:17 case1.pdf

留意点として、最後に本来存在しない1ページまでPostScript(PS)に変換されている(上記ならば"011.ps")。これは削除する。

続いて、LaTeXファイルへ埋め込む。

\fbox{\includegraphics[bb=52 32 550 792,scale=0.6]{./001.ps}}

\fbox{\includegraphics[bb=52 32 550 792,scale=0.6]{./002.ps}}\fbox{\includegraphics[bb=52 32 550 792,scale=0.6]{./010.ps}}

注意した方が良いのは、pdf2psを使って出力するとbounding boxの具合が良くない時がある。特に、余計な余白が入る症状が起きやすい。その際、bounding boxのサイズを強制指定する。余白を詰めて程よいのが上記の数値だった。なお、余白まで完全に入れる場合は"0 0 612 792"にしておく。
"scale=0.6"は、jsbookを用いて記述している時にすっぽり収まる倍率がこの値だった。
\fboxは、枠をつけているだけなのでなくても良い。