いつもlatexを使ってるけど、以下のように2系統でpdfを作っている。
通常のファイル: dvipdfmx でdvi-> pdf
スライド作成: powerdot なので dvi-> ps -> pdf
それぞれ処理が違うのでいつも別のスクリプトを作って処理させていた。
けど、いちいち切り替えるのは非常に面倒なので、コンパイルするtexファイルの先頭に手でコメントを追加して、その内容で切り替えることにした。
dvipdfmxを使う場合には先頭行に %% dvipdfmx を入れ、 dvips, ps2pdfを使う場合には %% dvipsを入れておいて、それで判断させて切り替える。
実際にはこのスクリプトはdvips が先頭行に含まれているかどうかで判定しているので、ps経由でコンパイルする場合だけ、先頭行に%%dvipsを追加すればOK。
さて後々のためにスクリプトを残す。といってもすぐ書ける内容なので残すほどでもないと思うけど...。
platex, dvipdfmx ,dvips ,ps2pdf にパスが通っていることが前提。
--------------ここから-------------------
#!/bin/bash
export TEXFILE=$1
## tex ファイルの指定
export DVITYPE=$(head -1 $1 |grep dvips )
## dvipsが含まれているかどうか
platex --shell-escape $TEXFILE && platex --shell-escape $TEXFILE
## 2回platex にかける
if [ "$DVITYPE" = "" ]; then
dvipdfmx $(echo $TEXFILE|sed s/\.tex$/\.dvi/)
##dvipsが含まれていない時、dvipdfmx でpdfを生成
else
dvips $(echo $TEXFILE|sed s/\.tex$/\.dvi/) && ps2pdf $(echo $TEXFILE|sed s/\.tex$/\.ps/)
##dvipsが含まれている時、dvips, ps2pdf経由でpdfを生成
fi
export FILENAME=$(echo $TEXFILE|sed s/\.tex$//)
for i in $FILENAME.*
do(
if [ "$i" = "$FILENAME.tex" ]; then
echo "TEXFILE"
elif [ "$i" = "$FILENAME.pdf" ]; then
echo "PDFFILE"
elif [ "$i" = "$FILENAME.dvi" ]; then
echo "DVIFILE"
else
rm $i
fi
)
done
## tex, dvi,pdf ファイル以外は全て削除
pdfopen $FILENAME.pdf
##pdfを開く
--------ここまで--------------
さて、とうとう200回も書いてしまったけど、あまり内容は変わってない。
ま、備忘録なので変える必要もないんだけれど。
最近matlabのクローンとしてscilabというものがあることを教えてもらった。
行列の計算に定評があるらしい。
ちょっと勉強してみようかと考え中。