dvipdfm/dvipdfmxの途中でgswin32が画像変換で失敗したりする

dvipdfm/dvipdfmxの途中でgswin32が画像変換で失敗したりする

- 匿 名 の投稿
返信数: 5
初めまして。

XPでgs8.64を使っています。

表題の件ですが、つい最近、特になにも設定変更してないはずなのに、DVIからPDFへの変換でエラーが出るようになりました。また、前通ってた変換においてもエラーがでたりします。また、dvioutのDviprtで、dvipdfmxを使うと通るけど、dvipdfm (not x)だと通りません。

エラーのlogは下記のようです:

** WARNING ** Filtering file via command -->gswin32c -q -dSAFER -dNOPAUSE -dBATCH -sPAPERSIZE=a0 -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dAutoFilterGrayImages=false -dAutoFilterColorImages=false -dGrayImageFilter=/FlateEncode -dColorImageFilter=/FlateEncode -dUseFlateCompression=true -sOutputFile=C:/DOCUME~1/xxxx/LOCALS~1/Temp/dvipdfmx.a0376000013 -c .setpdfwrite -f ./fig/xxxxx.eps -c quit<-- failed.
** WARNING ** Image format conversion for "./fig/xxxxx.eps" failed...
** WARNING ** pdf: image inclusion failed for "fig/xxxxx.eps".
** WARNING ** Failed to read image file: fig/xxxxx.eps
** WARNING ** Interpreting special command PSfile (ps:) failed.
** WARNING ** >> at page="6" position="(73.3491, 672.698)" (in PDF)
** WARNING ** >> xxx "PSfile="fig/xxxxx.eps" llx=97 lly=337 u"

全てのファイルにおいてでてくるわけではなくて、いつも同じファイルで出てきます。しかしその.epsファイルを今まで何度も使って、エラーは特に出ませんでした。Linuxマシンでdvipdfmx/dvipdfm両方とも通ります(しかしdvipdfmだとPDFでの図の位置がおかしい)。自分の別のパソコン(XP、TeX環境はほとんど同じ設定)だと同じくエラーがでます。友達のパソコン(XP, gs8.14)だとエラーはでません。

どなたか心当たりありますでしょうか?

推測としては、フォントと関連してるかもしれません。(例えばAdobe等のなんらかのプログラムがフォントの設定を変更をした)。Meadowを使用していますが、以前にも標準以外のフォントのロードが非常に重くて(ファイル読み込みに1分程度かかるぐらい)、つかいものにならなかったので今でも標準フォントにしています。

よろしくおねがいいたします。
匿 名 への返信

Re: dvipdfm/dvipdfmxの途中でgswin32が画像変換で失敗したりする

- KUROKI Yusuke の投稿
> つい最近、特になにも設定変更してないはずなのに
順を追っていくことが求められる案件です.問題の切り分けをしましょう.

エラーの再現するソースとコマンド (環境依存なら環境も) を提示してもらえませんか?
とくに,そのままコマンドプロンプトなどにコピーアンドペーストして通じるように書いてください.ファイルも添付できますので,文字コードなどに注意しつつ,そのままコマンドラインを通るようにソースを固めて提示していただければ,解決が近いと思います.

また,dvipdfm はおおよそ dvipdfmx と同じように使えるはずですが,dvipdfmx のほうを使っていただきたいと思います.
dvipdfmx のバージョン情報などを探っていただくのは吉と思いますが,dvipdfm のほうは深追いしないでください.
KUROKI Yusuke への返信

Re: dvipdfm/dvipdfmxの途中でgswin32が画像変換で失敗したりする

- ル * の投稿
トピックをたてたものです。

ご返事ありがとうございます。

色々試してみて、なぞがどんどん深まってきました。

とりあえず問題の出る.epsファイルを添付します。
下記のソースでコンパイルできます:

\documentclass[a4paper]{article}
\usepackage{epsfig,graphicx}
\begin{document}

\begin{figure}[t]
\begin{minipage}[b]{\linewidth}
\centering
\centerline{\epsfig{figure=figtest.eps,width=0.8\linewidth}}
\end{minipage}
\end{figure}

\end{document}

添付ファイルは2つあります。figtest.epsには文字が入っていません。figtest2.epsには文字が入っています。

以下は一般的にMeadowのtex-shell内でdvipdfmx.exe xxx.dviで変換を行います。

文字の入っていないfigtest.epsのDVIからPDFへ変換すると問題はありません。

文字の入っているfigtest2.epsの場合は、問題がでたりでなかったりします:
1)パソコン1(let'snote)では、最初からエラーがでます:

~/xxx> dvipdfmx d\:/home/xxx/gswin_test.dvi

d:/home/xxx/gswin_test.dvi -> gswin_test.pdf
[1
** WARNING ** Filtering file via command -->gswin32c -q -dSAFER -dNOPAUSE -dBATCH -sPAPERSIZE=a0 -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dAutoFilterGrayImages=false -dAutoFilterColorImages=false -dGrayImageFilter=/FlateEncode -dColorImageFilter=/FlateEncode -dUseFlateCompression=true -sOutputFile=C:/DOCUME~1/xxx/LOCALS~1/Temp/dvipdfmx.a0213600001 -c .setpdfwrite -f ./figtest2.eps -c quit<-- failed.
** WARNING ** Image format conversion for "./figtest2.eps" failed...
** WARNING ** pdf: image inclusion failed for "figtest2.eps".
** WARNING ** Failed to read image file: figtest2.eps
** WARNING ** Interpreting special command PSfile (ps:) failed.
** WARNING ** >> at page="1" position="(159.173, 359.243)" (in PDF)
** WARNING ** >> xxx "PSfile="figtest2.eps" llx=97 lly=337 urx=481 ury=502 rwi=2749 "
]
1620 bytes written

2)パソコン2(desktop)では、Meadowを立ち上げてすぐに変換しますと通ります。しかし、同じ.texファイルと.epsファイルを別のフォルダにおいて、そのフォルダ内でdviをpdfに変換しようとするとエラーがでます。また、最初うまくいってたフォルダに戻ってもう一度やろうとするとエラーがでるようになる。エラーメッセージは上記と全く同じです。tex-shellをexitしてbufferをcloseしてからやりなおすとまた変換できるようになります。

3)Meadow内のbash(cygwinのbashなはず)ではなくて、cygwinのターミナルで直接変換しようとするとdvipdfmxは無事に通ります。

ところで、関係あるかどうかわかりませんが、dvipdfmはまた別のことで両方の図に対しても失敗します。エラーメッセージは:

d:/home/xxx/gswin_test.dvi -> gswin_test.pdf
[1(./figtest.eps<PS>
Conversion via ->gswin32c -q -dNOPAUSE -dBATCH -sPAPERSIZE=a0 -sDEVICE=pdfwrite -dCompatibilityLevel=1.3 -dAutoFilterGrayImages=false -dAutoFilterColorImages=false -dGrayImageFilter=/FlateEncode -dColorImageFilter=/FlateEncode -dUseFlateCompression=true -sOutputFile=./aa03724 -c .setpdfwrite -f ./figtest.eps -c quit<- failed
)
pdf: image inclusion failed for (figtest.eps).
]
5679 bytes written

別の論文で同じ図を使ってますが、その論文のDVIはなぜか無事にPDFへ変換できています。。。

MeadowのバージョンはMeadow-3.00-dev (KIKU)です。
BashはGNU bash, version 3.2.49(22)-release (i686-pc-cygwin)です。
dvipdfmxはdvipdfmx-20090329(cvs)です。
dvipdfmは version 0.13.2d-TL-j-p1dです。

きっとなにかを見落としてると思いますが、ヒントになればと思います。

どうぞよろしくお願い致します。
ル * への返信

Re: dvipdfm/dvipdfmxの途中でgswin32が画像変換で失敗したりする

- TONE Kozaburo の投稿
graphicx.sty を用い,EPS ファイルの読み込みには \includegraphics とした以下のソースにすれば figtest.eps はもちろん figtest2.eps でも dvipdfm(x 無し)と dvipdfmx(x あり)の両方で問題は生じませんでした。

epsfig.sty は,かなり古いスタイルファイルだったと記憶していますので,使わないことをお薦めします。

\documentclass[a4paper]{article}
%%\usepackage{epsfig,graphicx}
\usepackage[dvipdfm]{graphicx}
\begin{document}

\begin{figure}[t]
\begin{minipage}[b]{\linewidth}
\centering
%%\centerline{\epsfig{figure=figtest.eps,width=0.8\linewidth}}
\centerline{\includegraphics[width=0.8\linewidth,clip]{figtest.eps}}
\end{minipage}
\end{figure}

\end{document}
ル * への返信

Re: dvipdfm/dvipdfmxの途中でgswin32が画像変換で失敗したりする

- KUROKI Yusuke の投稿
たぶん私の環境 (Cygwin, ptetex, Ghostscript 7.07 + gs-cjk) はル * さんの環境と異なると思うので,深追いはできそうにありません.

直接の回答ではありませんが,eps を PDF に予め変換しておくと,dvipdfmx での処理の警告が減る (& 高速になる) ので,便利かもしれません.epstopdf というコマンドがあるはずです.

以下に,私が試した結果を貼り付けておきます.

* dvipdfm では画像が張り込めません.

$ dvipdfm main
[1(./figtest.eps<PS>)]
46507 bytes written

main.dvi -> main.pdf

$ dvipdfm main
[1(./figtest2.eps<PS>)]
46539 bytes written

main.dvi -> main.pdf

と出ますが,Adobe Reader では開いたときにエラーメッセージがでて,画像が含まれません.

* dvipdfmx では画像 figtest{,2}.eps とも張り込めますが,図中の凡例の文字列が●になってしまい,何が書いてあるかわかりません (Adobe Reader でのエラーメッセージを添付しておきます.)

$ dvipdfmx main
main.dvi -> main.pdf
[1*** unembeddable CIDFont: /GothicBBB-Medium
]
10052 bytes written

$ dvipdfmx main
main.dvi -> main.pdf
[1*** unembeddable CIDFont: /GothicBBB-Medium
]
10083 bytes written
添付 figtest2-topdf.PNG
ル * への返信

Re: dvipdfm/dvipdfmxの途中でgswin32が画像変換で失敗したりする

- ル * の投稿
TONE Kozaburoさん、kuroky +さん、

ご返事ありがとうございました。

graphicx.sty と \includegraphicsの組み合わせに変えてみまて、よくなった気がしますが、エラーがやはりまだ出たりしています。しかし、エラーが出る場合を少し絞ることができました。

変換したい TeX ファイルをMeadowで開いて、そこからMeadow内の shell を M-x shell で起動するとデフォルトでその TeX ファイルのフォルダで開きます。そのフォルダ内でコンパイル・PDFへの変換するとエラー無し無事に通りますが、cd で別のフォルダに一回移動したあと、移動先のフォルダでコンパイル・PDFへの変換をしようとするといつものエラーがでます。例えば ~/aaa/ を最初のフォルダとして、 cd ../aaa/ と同じフォルダに移動したとしても、変換のときエラーが出ます。

Meadow内ではエラーがでるのにcygwinのターミナルではでないというのはMeadowのshellのpathの管理になにか問題があるのではないかと思います。その内Meadowの再インストールを試してみたいと思います。それまではcygwinまたはdvioutのdviprtで我慢しようかと思います。

また、上記の問題が特定の画像でしかでないというのは、やはりフォントにも関連しそうなので、今後Matlabで図を作る時にフォントの指定をMatlabに任せず厳密に指定していこうかと思います。

一般性のなさそうななぞで、あまり勉強にならない問題で申し訳ありません。貴重なお時間をさいていただきありがとうございました。