TeXでコンパイルエラーがあったとき、[e]キーを押せばエラー行にジャンプする機能がある。そのためにはautoexec.batなどに環境変数TEXEDITに、編集で使うエディタのタグジャンプを記述しておく。sakuraの場合は例えば
set TEXEDIT="C:\Program Files\SakuraEd\sakura.exe" -Y=%%d %%s
%dは行数, %sはファイル名が入る変数。バッチを実行したときに%記号が一つ取れるため、%をダブって書く。なおこれはバッチで書くときだけの注意ではなく、DOSプロンプトで直接setコマンドを叩いて設定するときも実は%をダブらせないとダメ。(この点がFOR %a in の%aの書き方と違う。)さもないと%d %sのうちの%d %が環境変数と解釈されてしまう。
さて、一見これでうまく環境変数TEXEDITが設定されたと思いきや、実は設定されていない。DOSプロンプトで直接set ...を打ってみればわかるが、構文エラーとなる。
(原因) オプションスィッチに使われている'='が set xxx=の'='と見なされるから。
(対策) オプションスィッチに'='を使わないようにする。少なくとも使わない指定もできるようにする。
(例1)省く。-Y%%d
(例2):にする。-Y:%%d
起動オプションに=を使うのはsetコマンドとの絡みで、あまりいい仕様とはいえない。起動オプションを使っているユーザは少ないだろうから、個人的には指定に=を使わない仕様に変更したい。しかし互換性の問題で誰かに言われそうなので、一歩譲って、なし(一般にこれが多い)や:でもいいように追加したい。しかしそうするとほとんど同じコードがずらーーっと増えるのであんまり・・・ (やっぱり仕様変更したいな)
とりあえずTeXのために最低限必要なYオプションだけ、Y=の他にY:でもOKとなるように追加した。
set TEXEDIT="C:\Program Files\SakuraEd\sakura.exe" -Y:%%d %%s
これで環境変数が設定可能となった。