マクロツイーター

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

dvipdfmx で mediabb できない件、の最中ですが

結論をどう纏めればよいのかを迷って文章が進まなくなってしまったので、 代わりにコレを作ってみた。

このパッケージは、dvipdfmx + graphicx 専用であり、mediabb を内部で読み込み、その機能を利用して、PDF 画像のバウンディングボックス(bbox)の情報を可能であれば自前で読み取る。そして、それ以外の(dvipdfmx + graphicx にとっては有害な)挙動の変更を一切行わない。つまり、extractbb の自動起動が有効である環境では、bbox がテキストで読み取れない PDF 画像やビットマップ画像については普通に .xbb を作って bbox を取得する。

\dpcumentclass[a4paper]{article}
\usepackage[dvipdfmx]{graphicx}
\usepackage{tcxmediabb}
% (以下の説明は extractbb の自動起動が有効の場合)
\begin{document}
% /MediaBox の値が読み取れる場合はそれを利用
\includegraphics[width=5cm]{image-1_4.pdf}\par
% ただし usebb 指定の場合は普通に extractbb を実行する
\includegraphics[width=5cm,usebb]{image-1_4.pdf}\par
% 読み取れないなら普通に extractbb を実行する
\includegraphics[width=5cm]{image-1_5.pdf}\par
% ビットマップ画像の場合も普通に extractbb を実行する。
\includegraphics[width=5cm]{image.png}\par
\end{document}

extractbb の自動起動が無効の場合や bmpsize パッケージを併用した場合でもこの tcxmediabb パッケージは使用できる。とにかく、「bbox を直接読み取れる PDF 画像の場合はそうする」以外は、(可能な限り)非使用時の動作を踏襲しようとする。