LaTeX で PDF の一部だけ表示したい(2)
実際に TeX が使う BoundingBox はどれなのか(続き)
昨日の記事で PDF における正解の BoundingBox とは何かを、ドライバ別に考えていた途中からです。XeLaTeX (+ xdvipdfmx) の場合に「XeLaTeX は CropBox を確保するのに xdvipdfmx が描画するのは後述する “dvipdfmx が選ぶのと同じ ナントカBox の内側” だけである」という奇妙な挙動が判明しました。というわけで、ここで一旦 dvipdfmx を調べてみましょう。
4. dvipdfmx の場合の BoundingBox(正常な PDF の場合)
これが非常に問題なのです。正解は「extractbb というプログラムが返すもの」です。では extractbb が返す BoundingBox とは何かというと
CropBox → ArtBox → TrimBox → BleedBox → MediaBox の順で明示されている最初のもの
です。明示されているが曲者で、そのせいでこんなヤヤコシイ選択律の順序ができてしまっています。明示されていなければその Box は読まないという点で、通常の PDF の仕様と食い違っているわけです。実際にいくつかの PDF を取り込んで pLaTeX + dvipdfmx で処理すると、上記の extractbb の規則と一致する Box が選ばれていることを確認できます。
- BB-a-04-dvipdfmx-TL2015.pdf の全ページより
LaTeX で PDF の一部だけ表示したい(1)
ただいま改訂中です。ところどころ作業に伴いリンク切れや説明不足が生じていますが、ご了承ください…(2015-08-15)
LaTeX で graphicx パッケージを使っていて
余白がある PDF ファイルの一部だけ、余白を切り取って表示したい
と思ったことはないでしょうか。例えば、Excel でグラフを作成して PDF 形式で保存するとデフォルトでは A4 サイズの PDF が生成し、もれなく余白が付いてきます。このような Excel グラフを作成して \includegraphics したいと思っても「そのままでは余白が大きくて不満」という質問は、最近も TeX Forum に寄せられています。
こうした場合は、(上記サイトでの私の回答にもありますが)pdfcrop という TeX Live や W32TeX の付属ツール*1を使って予めトリミングするのが非常に簡単です。ただし、pdfcrop は Perl がインストールされていなければなりません。TeX Live (Windows) には Perl が内蔵されていますし、Unix 系 OS ならば Perl が標準で使えるはずですが、W32TeX ユーザの方は pdfcrop がそのままでは使えません。そこで
- 私のブログを参考に Perl をインストールする
- Windows バッチファイルで似たことが可能な bcpdfcrop.bat(旧:tcpdfcrop.bat)を使う
のいずれかを試してみてください。そのうえで
$ pdfcrop graph.pdf
あるいは
$ tcpdfcrop graph.pdf
のように実行すれば、きっとうまい具合にまっさらな余白を切り取った新しい PDF (graph-crop.pdf) が出てくるでしょう。
…とまあ、これがベストプラクティスであることは間違いありません。pdfcrop(または tcpdfcrop)が出力した PDF を \includegraphics
すれば、バグがない限りどんな場合でも必ずうまくいきます。しかし、中には
pdfcrop せずに直接 LaTeX 側でなんとかならないの?
と思う方もいるでしょう。今回の記事では、その方法を考察することにします。
*1:紛らわしいことに pdfcrop には2種類あり、CTAN と SourceForge にあるものは全く別物です。ここで言っている pdfcrop は CTAN の方です。
動きのカガク展に行ってきた
最近、メインブログの更新をサボっていたので、久々にこちらに書いてみることに(サブブログは毎日更新していたし、最近なぜかそっちが内容的に充実していたけど…)。
昨日、再び 21_21 DESIGN SIGHT へ。以前記事にした単位展に続き2回目である。
企画展「動きのカガク展」続きを読む
会期:2015年6月19日(金)- 9月27日(日)
休館日:火曜日(9月22日は開館)
開館時間:10:00 - 19:00(入場は18:30まで)
主催:21_21 DESIGN SIGHT、公益財団法人 三宅一生デザイン文化財団
後援:文化庁、経済産業省、港区教育委員会、スイス大使館、ドイツ連邦共和国大使館
助成:スイス・プロ・ヘルヴェティア文化財団
特別協賛:三井不動産株式会社
TeX Live 2015 で変わったこと、変わらなかったこと
先日正式にリリースされた TeX Live 2015 であるが、アップデートするメリットはなんだろうか? というわけで、ここに「TeX Live 2015 で変わったこと、変わらなかったこと」の気づいた点をまとめてみる。とはいっても、すべて網羅する気は全くなく、一般ユーザである僕の独断と偏見で選んでいる。
- TeX Live 2015 released | There and back again
- Twitter より:
【速報】TeX Live 2015 にして改善したこと ・e-(u)pTeX に \pdfshellescape が実装された ・e-(u)pTeX で直前の文字を取得できるようになった ・extractbb で複数ページPDFの2ページ目以降のbb取得が可能になった
— Yusuke Terada (@doraTeX) 2015, 6月 12そういえば/DecodeParmsが入ったPDFをdvipdfmxで画像取り込みできるようになったのは、TeX Live 2015以降ですね http://t.co/9hTe3z7q2d Adobe純正品を使ってPDFを作ることが多い方は更新しましょう
— Acetaminophen (@aminophen) 2015, 6月 14そういえば、TL2015 だと LaTeX が fixltx2e したやつに変わるね。 #TeX #テフライブ ……まあ、latex.ltxをリーディングしている某集団を除いて、特に影響はない気がするけど。
— ZR-TeXnobabbler(既定値) (@zr_tex8r) 2015, 6月 14
続きを読む
XyMTeX の機能を最大限引き出す「正しい利用法」
LaTeX で化学構造式を描画するパッケージとして、藤田眞作氏による XyMTeX が有名である。
- XyMTeX 化学構造式描画(藤田氏によるページ)
XyMTeX の使い方は公式マニュアル*1に書かれているし、簡単な紹介は TeX Wiki に、また以下のページに使い方の一部が解説されている。
- XyMTeX 美構造式作成入門(TeX ゼミ;TeX & LaTeX Advent Calendar 2014)
- XyMTeX で化学構造式を描く(yulii 氏)
しかし、そもそも XyMTeX のマクロを使用する以前の問題で、XyMTeX パッケージを読み込む際の注意点についてはどこにも明記されていない。そのため、意外と XyMTeX の使い初めの段階でつまずいている場合も多いのではなかろうか? そこで、今回は XyMTeX の3つの描画方式とそれらの正しい利用法を解説する。サンプルソースと PDF は GitHub に置いた(LaTeX ソースファイルは一つだけ置いた;本文は一切書き変えることなく、プリアンブルのみ書き変えることで本記事の画像を再現できる)。
*1:W32TeX の場合はコマンドで texdoc xymtex-manual と入力すればよい(紛らわしいことに、texdoc xymtex と入力すると古い ver.1.1 のマニュアルが表示される)。TeX Live 2014 にはマニュアルの PDF 版が同梱されていないので、直接公式サイトに読みに行く必要がある。