マクロツイーター

はてダから移行した記事の表示が崩れてますが、そのうちに直せればいいのに(えっ)

dvipdfmx で mediabb できない件(2)

前回の続き)
dvipdfmx で mediabb するとどうなるか

以下では、mediabb パッケージを dvipdfmx と併用した場合の挙動について述べる。ただし、まず最初に注意すべきことがある。mediabb パッケージのソースコードは graphicx パッケージあるいはそのドライバのコードに対してパッチを当てる(改変する)箇所があり、それ故、元のコードの実装に大きく依存している、ということである。そして、dvipdfm 用のドライバと dvipdfmx 用のそれの間には割と大きな相違点があり、また、このブログで何度か取り上げているように、dvipdfmx 用のドライバは最近頻繁に更新されている。従って、dvipdfmx における mediabb パッケージの動作は決して自明ではなく、またその全貌を把握するのは非常に困難である。従って、確実な知識を求めるなら、dvipdfmx と mediabb を併用した場合の動作は、

未定義

だと理解しておくのが最も適切であろう。

それを言っておいた上で、敢えて実際にどのような挙動が起こるかを詳細に調べた結果を挙げておく。ただし、ドライバについては最新のもの(v4.02 以降)を用いた場合のみを調査対象とした。

  • 画像フォーマットに依らない全般の話:
    • dvipdfmx のドライバに備わっている「extractbb の自動実行」は全く働かなくなる。ここでその代わりに mediabb 側の bbox の自動取得の機能が動作してくれればよいのであるが、実際にはそう上手くいかない。②の機能は全く動作しないし、①も今は失敗することが多い。その場合、ユーザが意識して何かの対処をする必要がある。
  • PDF 画像について:
    • .xbb ファイルが全く利用できない。従って、mediabb での解析処理が失敗する場合、bbox を指定する方法は bb オプションしかない。*1
      (以下の項目は解析処理が成功する場合と bb オプションを指定した場合の両方に当てはまる)
    • ページ指定(page オプション)が効かなくなる。
    • bbox の左下の座標がゼロでない場合は誤動作を起こす。(恐らく v3.6 以降に限った挙動。)
  • ビットマップ画像について:
    • この場合は .xbb ファイルが利用可能である。(bb オプションも可能。)
    • mediabb の既定(autoebb 非指定)の動作では、“.bb ファイル”が画像より新しい場合は ebb の自動実行を行わないはずである。しかし特に「.bb の代わりに .xbb を見てくれる」わけではないので、(dvipdfmx での手順に従っている場合は、)常に ebb の自動実行が発生する。
    • ebb が自動実行されると .bb ファイルが生成されるが、それは何の役にも立たず、ただ邪魔なだけである。
(続くかも)

*1:実は .bb ファイルであれば利用できるようである。ここで、「全体として dvipdfm にダウングレードした仕様に従う」のであれば、そういうものと理解できるが、残念ながらそれも成り立たない。なので「.bb ファイルを積極的に利用する」という考えは無理があるだろう。