boxedminipageにeps画像を入れる方法

boxedminipageにeps画像を入れる方法

- myu myo の投稿
返信数: 7

連続して質問してしまい、申し訳ありません。


boxedminipageにpngとeps画像を挿入して使いたいのですが
png画像はextrabbで自動でサイズを調整してくれるので
問題無く表示することができます。
またextrabbが動作しない環境であっても
自作プログラムなどで解像度やdpiを調べることができるので
問題無く使うことができます。

一方で、TeXでよく使われるeps画像を挿入してみると
bbを指定しないとboxedminipageが正方形になりません。

それでpng画像と同じく適当に正方形になるように
bbを指定してみるとboxedminipageは正方形になるのですが
画像の大きさが変わってしまいます。

eps画像の場合、pngとは異なりextrabbが動作していないように思います。

bbをうまく調整してやると所望の大きさで表示することができます。

しかしepsの画像サイズがバラバラの複数ファイルを読み込んだ時
bbが固定値ではうまくいきません。

一つ一つepsのサイズを調べる方法あるいはソフトを探しているのですが
irfanviewであれば調べることができるのですが
コマンドラインで取得できるソフトがあれば教えてください。

あるいはTeX上のコマンドでこの問題を回避できる方法があれば教えてください。

以下にソースコードをアップしました。

http://fast-uploader.com/file/7001039635777/

よろしくお願いいたします。




myu myo への返信

Re: boxedminipageにeps画像を入れる方法

- aminophen の投稿
ファイルを見てみました。
2つの PNG の extractbb の結果は

- graph2.png
%%BoundingBox: 0 0 141 105
%%HiResBoundingBox: 0.000000 0.000000 140.621375 105.466031

- or.png
%%BoundingBox: 0 0 800 600
%%HiResBoundingBox: 0.000000 0.000000 800.000000 600.000000

でした。ソース中で
 \includegraphics[width=7.5cm,bb=0 0 800 800]{.//graph2.png}
 \includegraphics[width=7.5cm,bb=0 0 800 800]{.//or.png}
のように書いて正方形にしたいようですが、この方法も正しくありません。
なぜなら dvipdfmx にとっての正解は extractbb が返す値だから。
EPS だけは例外で extractbb に頼らずに TeX が自分で読む値が正解です。
前のトピックにも追記しておきました。「正解の bb の値」以外は bb= に
書かないのが無難です。(いまはなんとなく「うまくいっている」と思っても
将来的に何が起きるかはわからないから、ワケワカラナイことになるかも。)

EPS を見てみると冒頭に
%%BoundingBox: 50 50 410 302
と書かれていました。この値が dvipdfmx にとっての正解です。
ほかの値を指定したらワケワカラナイことになってしまいます。
これをコマンドで取得したければ KUROKI Yusuke さんがおっしゃるとおり
gs -sDEVICE=bbox です。…が、手元の Mac では Arial MT という
フォントが見つからないというエラーが出ました。Windows なら取得できるでしょう。
aminophen への返信

Re: boxedminipageにeps画像を入れる方法

- myu myo の投稿




ご回答ありがとうございます。

epsファイルを直接テキスト形式で開いて見れば良かったのですね。
問題は解決しました。

あと、本題とは異なる質問ですが
テキスト形式で開いて見ると
58 61 397 294
と書かれてあるのですが
rungs -sDEVICE=bbox hoge.eps
を使うと
50 50 410 302
となり、微妙に違う値となります。
ファイル内を検索して調べましたが
rungsで得られた数値はどこにも書かれてありませんでした。
両方試しましたが、テキスト形式で得られた数値の方が正しいように思います。
これはなぜでしょうか?

あと、rungsというものを初めて知ったのですが
png画像のフォーマットを調べたい場合にはどうしたら良いですか?
rungs -sDEVICE=bbox hoge.png
としてもpng画像を読み込むことはできませんでした。

よろしくお願いいたします。

myu myo への返信

Re: boxedminipageにeps画像を入れる方法

- aminophen の投稿
> rungsというものを初めて知ったのですが
rungs とは TeX が Ghostscript を呼び出すときに使うコマンド名です。
Un*x 系なら gs というのが Ghostscript ですし、Windows では gswin32c とか
gswin64c というのが Ghostscript です。
これを環境に応じて使い分けるために、TeX Live や W32TeX には rungs が
入っています。つまりそれは Ghostscript なので、EPS / PS / PDF 以外は
読み取ることができません。PNG は出力できるけど入力は無理。

Ghostscript が rungs -sDEVICE=bbox hoge.eps で何を返すかは、そういえば
私はよくわかっていません。
「バウンディングボックス」を返すツールとして extractbb と pdfinfo と
gs を知っていますが、このうち gs だけは
「余白を含まない、実際に図や文字がある領域の範囲」
だけを返すということはわかっています。EPS の場合もたぶんそうです。
aminophen への返信

Re: boxedminipageにeps画像を入れる方法

- myu myo の投稿
ご回答ありがとうございます。

取得したサイズを計算してみると
テキストで開いた場合
【397-58】
339
【294-61】
233
rungsを使った場合
【410-50】
360
【302-50】
252
となっており、rungsで使った場合の方が大きなサイズとなります。
空白を削除しているのだとすると
rungsの方が小さくならないといけないことはないでしょうか?
 
aminophen への返信

Re: boxedminipageにeps画像を入れる方法

- myu myo の投稿
すいません。
逆でした。
仰る通りrungsの方が小さなサイズになることが確認できました。

ご回答ありがとうございました。
 
myu myo への返信

Re: boxedminipageにeps画像を入れる方法

- 上田 完 の投稿
> あと、rungsというものを初めて知ったのですが
> png画像のフォーマットを調べたい場合にはどうしたら良いですか?

コマンドラインで rungs を使ったら、何が立ち上がっているか分かると
思うんですが…… 

GPL Ghostscript 9.16 (2015-03-30)
Copyright (C) 2015 Artifex Software, Inc.  All rights reserved.
This software comes with NO WARRANTY: see the file PUBLIC for details.
%%BoundingBox: 17 177 565 753
%%HiResBoundingBox: 17.253492 177.202190 564.310108 752.488993
>>showpage, press <return> to continue<<

GS>

こんな風になると思うんですが。つまり rungs は ghostscript を呼んでいる
ので、eps に対して使うもの、ということではないかと。