Windows版pTeXでダメ文字を含むファイル名を扱う

Windows版pTeXでダメ文字を含むファイル名を扱う

- t tk の投稿
返信数: 3
Windows版(W32TeXを含む)のpTeXで、
Shift_JISのダメ文字 (2バイト目の0x5c) を含むファイル名を扱うと
うまくいかない問題があることは以前から知られていますが、
どこがまずいかが分かったので、お知らせしておきます。

◇現象
 D:\hoge> platex 表.tex
のようなものを実行すると、
表.dvi 表.log 表.aux ではなく、.dvi .log .aux が出力される。
jobname を使う回避法を使うのが現状。

◇調査結果
ptex.web の more_name の中の IS_DIR_SEP のあたりで、 データが壊れる。

◇改良実験
添付のようなパッチで、一応直るようです。
mingwでテストし、期待通りの動作をしました。
pTeXの内部コードに関係する話ではなく、
ファイルシステムの文字コードに関係する話のようです。
なので、当パッチでは、
ptexenc の iskanji1(), iskanji2() ではなく、
kpathsearchの方 の is_cp932_system, isknj(), isknj2() でチェックしています。

◇パッチの問題点
パッチはpTeX専用になっていますが、
この問題は、pTeX に限る話ではなく、
upTeX, luatex, XeTeX などでもおそらく同様であろう、と思いました。
また、Windows版以外の場合には patchが無効になるような形式にはなっていません。
もっと全体的に見てふさわしいやり方があるように思っています。

ご興味のある方はお試しください。

t tk への返信

Re: Windows版pTeXでダメ文字を含むファイル名を扱う

- t tk の投稿
upTeXでは、同様の修正だけではダメのようです。
kpathsearchをUTF-8ベースにするなど、大きな変更が要りそうです。

t tk への返信

Re: Windows版pTeXでダメ文字を含むファイル名を扱う

- Akira Kakuto の投稿
(e)upTeX や Unix に対しては、今までと同じになる
ようにして TeX Live にコミットしました。
ありがとうございました。
W32TeX バイナリはできるだけ早急に update します。

Akira Kakuto への返信

Re: Windows版pTeXでダメ文字を含むファイル名を扱う

- t tk の投稿
動作のご確認、およびTeX Liveへのコミット、ありがとうございました。

昨晩私は、upTeXでダメなのを確認して、力尽きてしまいました。