W32TeX の 64bit/32bit 共存時の挙動について

W32TeX の 64bit/32bit 共存時の挙動について

- aminophen の投稿
返信数: 5
不可解な挙動を見つけたので、質問させていただきます。私の環境は
  • Windows 7 Professional (64bit)
  • W32TeX [2015/07/04]
  • Ghostscript 9.15 (32bit)
  • Strawberry Perl 5.20.2
です。W32TeX と Ghostscript は阿部さんのインストーラの標準的なインストールに
従っています。すなわち
  • W32TeX 32bit/64bit バイナリを全てダウンロードして展開
  • パスは C:\w32tex\bin;C:\PROGRA~2\gs\gs9.15\bin;C:\PROGRA~2\gs\gs9.15\lib を追記
となっています(C:\w32tex\bin64 は「存在するがパスは通っていない」)。

この状態で repstopdf を実行すると、エラーが出ます。
 $ repstopdf abcdef.eps
 epstopdf ($Id: epstopdf.pl 36129 2015-01-24 00:30:11Z karl $) 2.23
 !!! Error: Writing to rungs failed, error code 255
もちろん EPS → PDF 変換だけなら epstopdf を起動すれば良いのですが、問題は pdflatex で
epstopdf パッケージを援用して EPS を \includegraphics する場合に起こります。

\documentclass{article}
\usepackage{graphicx}
\usepackage{epstopdf}
\begin{document}
\includegraphics[width=0.5\textwidth]{abcdef.eps}
\end{document}

本来これは restricted \write18 enabled. であれば repstopdf を呼び出して
abcdef-eps-converted-to.pdf を生成し、これを取り込むと理解しています。
しかし、上で述べた環境(C:\w32tex\bin64 は「存在するがパスは通っていない」)で
実行すると類似のエラーが出ます。

[Loading MPS to PDF converter (version 2006.09.02).]
)epstopdf ($Id: epstopdf.pl 36129 2015-01-24 00:30:11Z karl $) 2.23
!!! Error: Writing to c:/w32tex/share/texmf-dist/scripts/epstopdf/../../../../bi
n64/rungs failed, error code 255


! Package pdftex.def Error: File `abcdef-eps-converted-to.pdf' not found.

See the pdftex.def package documentation for explanation.
Type  H <return>  for immediate help.
 ...                                              
 
l.5 ...degraphics[width=0.5\textwidth]{abcdef.eps}
 

pdflatex の 32bit バイナリ実行中に rungs 64bit を呼び出し、しかも gswin64c を
インストールしていないが故にエラーとなっているようです。この問題は
  1. Ghostscript 64bit をインストールする
  2. bin64 フォルダを適当にリネームする
のいずれか少なくとも片方を実行すると回避されます。どうやら
「bin64 ディレクトリが存在すれば、たとえパスが通っていなくても64bit バイナリを呼ぶ」
という挙動になっているのが筋が悪い気がしています。

ちなみに関連するトピックは把握しています。
  • forum:1544 の dvipdfmx の場合は repstopdf を呼ばないので今回とは無関係
  • forum:1061 の説明どおり bin64 と bin にこの順にパスを通してもダメ(64bit gs が無いと無駄)
という理解です。「bin64 が存在するだけで干渉する」という挙動を改善できないでしょうか。
aminophen への返信

Re: W32TeX の 64bit/32bit 共存時の挙動について

- aminophen の投稿
リンクの追加です。forum:1489 が現行の (r)epstopdf に関する議論ですね。
(このときに私もテストしておけばよかったですね…すみません)そして
  • rungs (32bit) は gswin32c に依存
  • rungs (64bit) は gswin64c に依存
というのは分かりやすい仕様なので、今のままで良いと思います。
aminophen への返信

Re: W32TeX の 64bit/32bit 共存時の挙動について

- Akira Kakuto の投稿
> 「bin64 が存在するだけで干渉する」という挙動を
> 改善できないでしょうか。

すみません。 2015/07/10 の日付の pdftex-w32.tar.xz
で,訂正しておきました。
Akira Kakuto への返信

Re: W32TeX の 64bit/32bit 共存時の挙動について

- aminophen の投稿
早々に対応していただき、感謝いたします。

# そして、これは dev に投げるべき内容だったでしょうね… すみません
aminophen への返信

Re: W32TeX の 64bit/32bit 共存時の挙動について

- Akira Kakuto の投稿
> Ghostscript 9.15 (32bit)

gs-9.15 は,環境変数がちゃんと働かない等のバグがあったと
記憶していますので,gs-9.16 の方が良いと思います。
Akira Kakuto への返信

Re: W32TeX の 64bit/32bit 共存時の挙動について

- aminophen の投稿
> gs-9.15 は,環境変数がちゃんと働かない等のバグがあったと
> 記憶していますので,gs-9.16 の方が良いと思います。

そうなのですね、教えていただきありがとうございます。
更新しました。