2008年9月23日火曜日

TeXShopで自作のスクリプトを使う

僕がMacでTeXを書く時は、TeXShopが欠かせない。ここにある通りにインストール・設定すれば、ちゃんと使えるしWindowsで環境作るよりはるかにラク。でも1つだけいまいちな部分があった。

それは、ptex2pdf-utf8でタイプセットしてもpTeXを1回しか実行しないから、PDFにした時にしおりが出来ない。。。WindowsでTeXを使う時は、自作のシェルスクリプトで自動的にplatex3回→dvipdfmxをするようにしてるから、しおりもちゃんとできるんだけど。。。

なんとかしたいなぁと考えてて、ふと自分で設定したptex2pdf-utf8の中身を見てみたら、これシェルスクリプトじゃん。。。じゃあ自分で書いたものを設定すればいいと考えて、作ってみた。

#!/bin/sh

BASENAME=`basename $1 .tex`
ENCODE=utf8

# make .bb file
for i in *.png *.jpg
do
ebb $i
done

# First platex
platex -kanji=$ENCODE $1
if [ $? -eq 1 ] ; then
echo "platex 1 ERROR!"
exit
fi

# Second platex
platex -kanji=$ENCODE $1
if [ $? -eq 1 ] ; then
echo "platex 2 ERROR!"
exit
fi

# Third platex
platex -kanji=$ENCODE $1
if [ $? -eq 1 ] ; then
echo "platex 3 ERROR!"
exit
fi

# make PDF file
dvipdfmx -v $BASENAME
if [ $? -eq 1 ] ; then
echo "dvipdfmx ERROR!"
exit
fi

# *.bb file delete
rm -f *.bb

これを適当な所、例えば~/bin/texshop.shとかに保存して、TeXShopの環境設定→内部設定→TeX + dvips + distillerのLaTeXにパスを書けば、タイプセットした時に使える。

このスクリプトのポイントは、pngファイルがあればebbして、bbファイルを作ってくれること。前はいちいち画像に対してebbしてたんだけど、めんどくさいし画像が変わったらまたやり直しだから、それも解消してくれるようにした。

MacでTeXShop使ってる人は、もし良ければ使ってみてください。TeXファイルの文字コードがUTF-8じゃない人は、ENCODE=utf8のとこをeucにすればOK。

このスクリプトも1つ問題があって、TeXコマンドをptexにするとコンパイルエラーになる。platexだったら大丈夫。でもplatexはptexへのシンボリックリンクだから問題ないはずなんだけど。。。原因が分かる方がいたら教えてください。

0 コメント:

コメントを投稿