pdflatexでの画像変換失敗

pdflatexでの画像変換失敗

- 匿 名 の投稿
返信数: 9
AbTeXInstaller3でw32texを使っております。(Windows8.1 x64)
platex, dvips, dvipdfmx等は全てうまく動いており、dviでの出力及びps, pdfへの変換は問題ないのですが、pdflatexでの直接pdf生成が失敗してしまいます。


./main.fff Invalid value for option -dPDFSETTINGS=C:/MinGW/msys/1.0/prepress, use sNAME= to define string constants

pdftex.def: File `fig-eps-converted-to.pdf' not found. \includegraphics{fig.eps}

といったメッセージが出てepsファイルの変換に失敗します。コマンドラインでrepstopdf fig.epsとやっても同様に-dPDFSETTINGSにMinGWのパスが入って失敗します。
 どなたかMinGW/MSYSのアンインストール無しで解決できた方はいらっしゃらないでしょうか。
匿 名 への返信

Re: pdflatexでの画像変換失敗

- Akira Kakuto の投稿
ソースを見ると,
$::opt_pdfsettings のデフォルト値は 'prepress' であり,
push @GS, "-dPDFSETTINGS=/$::opt_pdfsettings" if $::opt_pdfsettings;
となっています。
msys の shell を使用すると
/ が 単なる文字ではなくて msys のルートディレクトリ C:/MinGW/msys/1.0/
と解釈されてエラーになるものと思われます。
msys の shell は上のような特徴を持つ,特殊なものですから,特殊目的だけに
使用し,常用しないようにすれば解決します。アンインストールする必要は
ありません。

Akira Kakuto への返信

Re: pdflatexでの画像変換失敗

- tat tsan の投稿
cmd.exe から repstopdf を起動しても、perl がmsys のものだとやはり失敗しますね。

msysで/の展開を抑止するには //prepress とすればよく、gsを直接起動して
gswin32c -dPDFSETTNGS=//prepress (その他の引数)
とすれば成功します。しかしrepstopdf は--pdfsettings=//prepress を受け取って
くれないようです。

msys環境なら repstopdf.exe を使わなくてもbashが
#!/usr/bin/env perl
を解釈してくれて直接 repstopdf の perl ソースを起動できますので、ソースを
ちょいといじってしまえばmsys環境でも使えそうに思います。
tat tsan への返信

Re: pdflatexでの画像変換失敗

- Akira Kakuto の投稿
原因は,shell というより perl が msys のものという
ことだったのですね。失礼しました。

> msysで/の展開を抑止するには //prepress とすればよく

msys の perl を使用している方のみ

texmf-dist/scripts/epstopdf/

にある, epstopdf.pl と repstopdf.pl の 567行目を (ただし W32TeX の場合)
push @GS, "-dPDFSETTINGS=/$::opt_pdfsettings" if $::opt_pdfsettings;
から
push @GS, "-dPDFSETTINGS=//$::opt_pdfsettings" if $::opt_pdfsettings;
に変更してみて下さい。

Akira Kakuto への返信

Re: pdflatexでの画像変換失敗

- tat tsan の投稿
すみません。そこのソースを読むようになってたんですね。

他に 593行目の
push @GS, "-dAutoRotatePages=/$::opt_autorotate" if $::opt_autorotate;

push @GS, "-dAutoRotatePages=//$::opt_autorotate" if $::opt_autorotate;
に変更する必要があります。
tat tsan への返信

Re: pdflatexでの画像変換失敗

- Akira Kakuto の投稿
my $forwardslash='/';
push @GS, "-dPDFSETTINGS=$forwardslash$::opt_pdfsettings" if $::opt_pdfsettings;
でも msys perl では / が展開されますか?

Akira Kakuto への返信

Re: pdflatexでの画像変換失敗

- tat tsan の投稿
tat tsan への返信

Re: pdflatexでの画像変換失敗

- Akira Kakuto の投稿
push @GS, "-dPDFSETTINGS=\/::opt_pdfsettings" if $::opt_pdfsettings;

とか

push @GS, "-dPDFSETTINGS=\057::opt_pdfsettings" if $::opt_pdfsettings;

でも MSYS perl では展開されるでしょうか?

これら,あるいはどちらかで OK なら共通に変更可なので
ありがたいのですが...
Akira Kakuto への返信

Re: pdflatexでの画像変換失敗

- tat tsan の投稿
展開されてしまいますね。

perl自身ではなく system() がコマンドを渡す先で展開されるのかも知れません。