2015年9月9日

TeX2imgはパス名にオプションを含めることができる.しかし,「オプション名と実行パスの間の空白」と「実行パス自身に含まれる空白」を区別することはできないということに基づき,実行ファイル名は""でくくっておく必要がある.(そうでないと全てを実行パスと判断する.)のだが,「C:\w32tex\bin\platex.exe -shell-escape」はどう見ても区別できるだろうと思ったので,もう少し柔軟に判断するようにした.

といっても判断基準は簡単で,ファイルがあるか判断するだけ.先の例だとC:\w32tex\bin\platex.exeというファイルはあるがC:\w32tex\bin\platex.exe -shell-escapeというファイルはない(だろう)ので,C:\w32tex\bin\platex.exeをファイル名と判断すると言うことである.もし「C:\w32 tex\bin\platex.exe -shell-escape」(w32とtexの間に空白がある)でも「C:\w32 tex\bin\platex.exe」というファイルがあれば期待通り処理される.

実際にはこれが行われるのは"がパス名に無いときで,"がある場合は今までと同じようになる.具体的には""で囲まれていない空白までをパス名と見なす.つまり「C:\w32tex\bin\platex.exe "-shell-escape"」は正しく処理されるが,「C:\w32 tex\bin\platex.exe "-shell-escape"」(w32とtexの間に空白あり)はうまく処理されない.「"C:\w32 tex\bin\platex.exe" "-shell-escape"」とする.「C:\"w32 tex"\bin\platex.exe "-shell-escape"」でもよい(多分).

なんてことを思ってみたがどうだろう.実際には""を考慮に入れつつ空白で区切り,ファイルがあるかの判断をすればよいのだと思うが,なんか面倒だし,「ファイルの有無とか関係なくファイル名がここだと指定する」方法(んなことをする必要があるかはさておき)がないのも嫌なのでこんな感じでよいかなと.実用上ほぼ問題はあるまい.

0 件のコメント:

コメントを投稿

コメントの追加にはサードパーティーCookieの許可が必要です