inclusion of images and dvipdfmx

inclusion of images and dvipdfmx

- Akira Kakuto の投稿
返信数: 12
TeX Live 2014 以降では,dvipdfmx で graphics image files
を含める場合次のようにされることをお勧めします。
(TeX Live 2013 以前では不可です)

\documentclass{...}
\usepackage[dvipdfmx]{graphicx}
\usepackage{bmpsize}
... ...
\begin{document}
...
...
\end{document}

こうすると,pdf を除く images の場合 (bmp も可能),
extractbb は使用されません。外部プログラムを呼ばない
ので,performance が上がるかも知れません。

pdf の場合は extractbb が呼ばれます。この場合,xbb
ファイルを作成しないように改善した dvipdfmx.def を
提案しているのですが,TeX Live 2014 には間にあいません
でした。DVD 作成終了後,update で新しい dvipdfmx.def
が認められることを期待しています。
Akira Kakuto への返信

Re: inclusion of images and dvipdfmx

- Akira Kakuto の投稿
> (TeX Live 2013 以前では不可です)

この意味は,pdf でない image の場合も
extractbb が呼ばれ (あらかじめ xbb を作成
していない場合),また bmp の場合
はサイズ計算がなされないので,手で
サイズを与えなければいけないという意味です。
Akira Kakuto への返信

Re: inclusion of images and dvipdfmx

- Z. R. の投稿

これってもしかしたら、pTeX 系で bmpsize パッケージが使えるようになったということですか?

Akira Kakuto への返信

Re: inclusion of images and dvipdfmx

- Akira Kakuto の投稿
> この場合,xbb ファイルを作成しないように改善した dvipdfmx.def

v4.02 として update されました。
新バージョンでは,.xbb ファイルは作成されません。
pdf に対して extractbb コマンド自身は実行されるので,
shell_escape_commands に記述しておくことは必要です。
extractbb コマンドがファイルを読んだり,書いたりする
場合の security の問題のため,TL 2014 ではデフォルト
では記述してありません。 TL SVN では上記の問題を解決
しているので,TL 2015 ではデフォルトで記述される予定
です。

旧バージョンでは,イメージファイルが書き込み禁止
領域にあったら,.xbb ファイルが作成されないので,不可
でしたが,新バージョンでは .xbb ファイルを作成しない
ので大丈夫です。

なお,ユーザが前もって extractbb コマンドで .xbb ファイル
を作成している場合には,その .xbb ファイルを読みます。
Akira Kakuto への返信

Re: inclusion of images and dvipdfmx

- Akira Kakuto の投稿
> なお,ユーザが前もって extractbb コマンドで .xbb ファイル
> を作成している場合には,その .xbb ファイルを読みます。

コンパイル時間から見ると,最も効率が良いのは,
どの型のビットマップイメージに対しても,
"bmpsize パッケージを使わないで"
"予め extractbb コマンドで .xbb ファイルを作成しておくこと"
です。

他の方法は,便利ですがコンパイルの度にサイズ計算をするので
それだけの負荷がかかります。

特に今後は自動的に xbb ファイルが作成されることは
なくなりますので,注意して下さい。
Akira Kakuto への返信

Re: inclusion of images and dvipdfmx

- 匿 名 の投稿
角藤先生

こんばんは。

Windows 7でW32TeXのuplatexを利用しているのですが,
xbbが作成されない新しいdvipdfmx.defにしたところ,
日本語名のPDFやビットマップ画像を貼り込もうとすると
extractbbが「Can't find file」というエラーを吐き(ファイル名が文字化けしています)
結果としてLaTeXが「Cannot determine size of image (no BoundingBox)」とエラーを出します。

ASCII文字のみのファイル名であればうまくいくので,
おそらくこの https://okumuralab.org/tex/mod/forum/discuss.php?d=1210
辺りと関わってくる,ファイル名とUTF-8のエンコーディングの問題なのだろうと推測しています。

日本語ファイル名なぞ使うなと言われてしまえばそれまでなのですが,
折角日本語ファイル名が使えるようになったということで,
それ以降の作業を全て日本語ファイル名で行ってきたこともあり,
できればパイプでのinput(?)についても日本語に対応できるようにして頂けるとありがたく存じます。

簡単なことではないのかもしれず,申し訳ないのですが,
よろしくお願いいたします。
匿 名 への返信

Re: inclusion of images and dvipdfmx

- Akira Kakuto の投稿
ご迷惑をかけました。 fix しましたので,
今夜中に compile しなおして,訂正しておきます。
Akira Kakuto への返信

Re: inclusion of images and dvipdfmx

- Dora TeX の投稿
最新の状態の TeX Live 2014 で bmpsize を利用してビットマップ画像をロードする際に,問題を発見しましたので,ご報告しておきます。

\documentclass{article}
\usepackage[dvipdfmx]{graphicx}
\usepackage{bmpsize}
\def\sample{\includegraphics{sample.jpg}}
\setbox0\hbox{\sample}
\begin{document}
\fbox{\sample}
\end{document}

このソースを e-(u)pLaTeX + dvipdfmx でコンパイルすると,dvipdfmxが次のような警告を出し,画像が正しく貼り込まれません。

dvipdfmx:warning: Error locating image file "IMG1"
dvipdfmx:warning: Specified (image) object doesn't exist: IMG1
dvipdfmx:warning: Interpreting special command uxobj (pdf:) failed.
dvipdfmx:warning: >> at page="1" position="(152.1, 574.261)" (in PDF)
dvipdfmx:warning: >> xxx "pdf:uxobj @IMG1"

・\setbox0 の行を削除する
・\fbox{\sample} の部分を \fbox{\usebox0} とする
・bmpsize を使わず extractbb を使用する

のいずれかの対策を採れば正しく貼り込まれますが。
Dora TeX への返信

Re: inclusion of images and dvipdfmx

- Akira Kakuto の投稿
ありがとうございます。 W32TeX における 2014/08/11
の日付け以降の dvipdfmx.dll では,extractbb が bmp
にも対応したので,ほぼどんな場合も
\usepackage[dvipdfmx]{graphicx}
だけで良いと思います。ついでに JPEG2000 (jp2 and jpf)
にも対応しています。(dvipdfmx の作者平田俊作さんによります。)
Akira Kakuto への返信

Re: inclusion of images and dvipdfmx

- Dora TeX の投稿
ありがとうございます。
bmpsize は読み込まず,
\usepackage[dvipdfmx]{graphicx}
のみでの extractbb 起動で対応することにいたします。
Akira Kakuto への返信

Re: inclusion of images and dvipdfmx

- Akira Kakuto の投稿
W32TeX における,2014/08/14 の日付け以降の dvipdfmx.dll
は,streams with DecodeParms に対応しています。
dvipdfmx の作者,平田俊作さんによります。