2011/11/20

アップデートでTeXShopのコンパイルが通らなくなった場合の対処法(特にsjis文書)

TeX Live Utility と TeXShop を最新にアップデートしたら
タイプセット(コンパイル)が通らなくなった。

ググってみても先人たちは対症療法しか書いておらず、
何が原因なのかについて言及している人はいない。
それでいいのかと問い詰めたくもなったが、今となってはどうでもいい。


曰く、
line 12: ptex: command not found
だそうだ。
どのソースをコンパイルしても同じエラー&行数が表示されることから、
コンパイル時に何か共通のスクリプトが走っていて、
そのスクリプトが問題を持っている感じがする。
特にパス関連の。

TeXShopのタイプセットなる操作はtexファイルからpdfまで作ってくれるありがたい機能だが、その実、ただのシェルスクリプトであることが分かった。
 で、そのスクリプトは  ~/Library/TeXShop/bin/platex2pdf-sjis
なるファイルである。
で、その12行目を見ると、
ptex -kanji=$ENCODE -fmt=$PTEX-$ENCODE -progname=$PTEX $1 && \  
だってさ。
試しに端末でptex実行すると問題なく動作した。
よく見ると、このファイルの4行目に

export PATH=$PATH:/usr/local/bin:/usr/local/teTeX/bin

とか、$PATH を再定義しちゃってんですよ。
少なくともTex Live Utility を導入した時点でこのどちらのパスにも
ptex なんてコマンドは存在しない。teTeX/bin なんて存在すらしてねえ。

オレのptexは
/usr/texbin
にあるんだコノヤロー。
そういうわけで、

export PATH=$PATH:/usr/local/bin:/usr/local/teTeX/bin:/usr/texbin

と、パスを付け足してやればひとまず通って実行できた。
しかし、またしても問題が。

I can't find the format file `platex-sjis.fmt'!
 

イラっとすんぜ、おい。(続く)



20111212 追記
ここによれば、ptexをアップデートすると.fmtファイルがいらなくなるのだそうだ。
なので、余計なエンコーディングを指定する箇所は削除せねばならんということか。
ちなみにこのままタイプセットを実行すると
platex.fmt was written by eptex
とかいうエラー(?)を吐く。


そこで、~/Library/TeXShop/bin/platex2pdf-sjis 内


ptex -kanji=$ENCODE  -fmt=$PTEX-$ENCODE -progname=$PTEX $1 && \

----> platex -kanji=$ENCODE -progname=$PTEX $1 && \

というように、エンコーディングのオプションを解除、さらに
ptex -> platex と書き換えることで解決。

しかし、なぜplatexのスクリプト内のコマンドがptexなのか、理解できない。
しかもスクリプトもptex, platexで区別してあったし。
単純なミスか、昔よくあった、「こうしないと動かない」的なバグなのか。

そういうわけで、真実に辿り着いた。
・TeXShop のptex, platex 用のタイプセットスクリプトは古いバージョンのptex, platex 用に書かれている。
・あとパス指定も適当
・新しいバージョンのptex, platex にはエンコーディングを指定するオプションは不要

従って
・タイプセットのスクリプトから該当部分を削除・パス繋ぎ直す

解決!




0 件のコメント: