Hatena::ブログ(Diary)

アセトアミノフェンの気ままな日常

2015-07-22

dvipdfmx で pagebox が指定できるように!(& BXglyphwiki パッケージ)

先週からずっと話題にしてきた BoundingBox 問題(メインブログのまとめ(1), (2)を参照)。調査していくうちに「extractbb が任意の Box を返してくれるようになればなあ」とか「pagebox オプションが使えるようになればいいなあ」とか呟いていたのだが、これらの要望が早速取り入れられた形となった。先日問題提起した pagebox オプションに関する進捗は、ユーザにとって特にありがたいだろう。

dvipdfmx の場合については、3回のコミット (r37918, r37922, r37923) を経て以下の仕様が新設された:

  • extractbb の -B オプションで任意の Box (cropbox, mediabox, artbox, bleedbox, trimbox) を指定できるようになった
  • graphicx パッケージの pagebox=****box オプションが使えるようになった(pdfLaTeX 使用時と完全互換)
  • extractbb の -B オプションや pagebox を指定しない場合の挙動は、従来と全く変わらない(後方互換性の維持)

これにより、pagebox 指定時の挙動は pdfLaTeX と完全に互換となった。注意すべきなのは「pagebox 非指定時にヤヤコシイ選択律によって ****Box が選ばれた場合に返ってくる値と、pagebox=****Box を指定した場合に返ってくる値が必ずしも一致しない」ということ。このような不一致が起こるのは「MediaBox をほかの ****Box がはみ出している不正な PDF の場合」である*1が、これは致し方ないことで、安全で“理想的な落としどころ”といえるだろう。XeLaTeX のほうも pagebox オプションを利用できるように改修が施された。

ちなみに、以上のコミットは既に W32TeX に反映されている:

[2015/07/23]
(01) dvipdfm-w32.tar.xz
     Update dvipdfmx.dll: Improve obtaining BoundingBox. Thanks Y. Terada.
(02) xetex-w32.tar.xz
     Update xdvipdfmx.exe: Improve obtaining BoundingBox. Thanks Y. Terada.
(03) win64/dvipdfm-w64.tar.xz
     Update dvipdfmx.dll: Improve obtaining BoundingBox. Thanks Y. Terada.
(04) win64/xetex-w64.tar.xz
     Update xdvipdfmx.exe: Improve obtaining BoundingBox. Thanks Y. Terada.
[2015/07/22]
(01) dvipdfm-w32.tar.xz
     Fix bugs in  dvipdfmx.dll and dvipdfmx.def. Thanks Y. Terada.
(02) xetex-w32.tar.xz
     Fix a bug in xdvipdfmx.exe. Thanks Y. Terada.
(03) win64/dvipdfm-w64.tar.xz
     Fix a bug in  dvipdfmx.dll. Thanks Y. Terada.
(04) win64/xetex-w64.tar.xz
     Fix a bug in xdvipdfmx.exe. Thanks Y. Terada.
[2015/07/21]
(02) dvipdfm-w32.tar.xz
     Update dvipdfmx.dll and dvipdfmx.def: Support pagebox=artbox etc. in
     PDF inclusion.
(04) xetex-w32.tar.xz
     Rebuild xdvipdfmx.exe.
(05) win64/dvipdfm-w64.tar.xz
     Update dvipdfmx.dll: Support pagebox=artbox etc. in PDF inclusion.
(07) win64/xetex-w64.tar.xz
     Rebuild xdvipdfmx.exe.

というわけで、(x)dvipdfmx 使用時に pdfLaTeX 互換に pagebox を指定できるようになったメリットを後日メインブログで紹介する予定。乞うご期待!

追記 (2015-07-23):これに伴う dvipdfmx.def の改変(現時点では W32TeX 限定の独自改変で、TeX Live には commit されていない)で不具合が混入してしまったそうだ(僕も同じ現象を確認)。近々 W32TeX 本体に修正が入るはず。

追記 (2015-07-24):修正が入ったようだ。

[2015/07/24]
(02) dvipdfm-w32.tar.xz
     Improve dvipdfmx.def. Thanks ZR.
[2015/07/23]
(01) dvipdfm-w32.tar.xz
     Update dvipdfmx.def: Fix bugs. Thanks N. Abe.

さて、もう一つの話題

ところで、ZR さんの BXglyphwiki パッケージW32TeX に取り込まれていた。

[2015/07/21]
(03) web2c-w32.tar.xz
     Add bxglyphwiki.exe.
(06) win64/web2c-w64.tar.xz
     Add bxglyphwiki.exe.

というわけでちょっと遊んでみたZR さんの当初のソースに書かれていたころと比べるとグリフ名変更があったらしく、そこさえ修正すればタイプセットできた。

% pLaTeX 文書
% platex -shell-escape で組版する
\documentclass[a4paper]{jsarticle}
\usepackage[dvipdfmx]{bxglyphwiki}
\begin{document}
% 参考: グリフウィキ - グループ:ガンダム漢字
% http://glyphwiki.org/wiki/Group:%E3%82%AC%E3%83%B3%E3%83%80%E3%83%A0%E6%BC%A2%E5%AD%97

先ず\GWI{sosaku-gundam}より始めよ。

前門の\GWI{sosaku-gundam-zaku}、後門の\GWI{sosaku-gundam-dom}\end{document}

f:id:acetaminophen:20150723031937p:image

*1:pagebox 指定時は pdfLaTeX 互換(=PDF の仕様に準拠)のクリッピングを行った結果を返すが、非指定時は従来の挙動(=PDF の仕様を無視)を踏襲するのではみ出しかどうかについて無頓着である。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証