200びぼーろく;dvips & ps2pdf か dvipdfmx か

いつも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というものがあることを教えてもらった。
行列の計算に定評があるらしい。
ちょっと勉強してみようかと考え中。

0 件のコメント:

コメントを投稿

747びぼーろく; チャイコフスキーの悲愴

 を久しぶりに聞いた。やはり名曲。終楽章の序盤のクラリネットの高音を混ぜた和音と終盤ドラの響きを思いついたのは天才的だと思う。