252びぼーろく; texからpdfへ(再)

xelatexが使えるようになったので、自動で xelatex , platex + dvipdfmx , platex + dvips + ps2pdf の3種類を使うように変更することにした。


まず、texファイルの先頭に xelatex,dvips,dvipdfmxが記入されていれば、以下の様に動くようにする。
xelatex : xelatex
dvips: platex+dvips+ps2pdf
dvipdfmx: platex+dvipdfmx


さらにplatex,xelatexは batchmode で動かしていたけど、エラーがどこか分からないので、元に戻すように変更。
ただしエラーが出て止まった時に、自動で終了するよう、xを予め打っておく。

platexの終了ステータスが0の時だけ次の処理(dvips ,dvipdfmx)へ進むように変更。

というわけで以下の様に変えた。適当に名前をつけて保存し、chmod +x で実行権限を与えると動いて動いてくれるはず。

---------------------ここから--------------------

#!/bin/bash
 
   export TEXFILE=$1
   ## tex ファイルの指定
 
   export LATEXTYPE=$(head -1 $1 |grep tex )
   ## xelatexかplatexの指定が含まれているかどうか
 
   export DVITYPE=$(head -1 $1 |grep dvi )
  ## dvipsかdvipdfmxかを指定。この時はplatexを使う。



  if test "$(echo $LATEXTYPE|sed s/.*xelatex.*/xelatex/)" = "xelatex" ; then
          echo "use xelatex"
          #xelatex  -interaction=batchmode --shell-escape $TEXFILE
          echo x |xelatex   --shell-escape $TEXFILE

  elif test "$(echo $DVITYPE|sed s/.*dvips.*/dvips/)" = "dvips" ; then
          echo "use platex + dvips"
          echo x |platex  --shell-escape $TEXFILE
          ## platex にかける
          if test "$?" = "0" ;then
                  dvips $(echo $TEXFILE|sed s/\.tex$/\.dvi/)
                  ps2pdf $(echo $TEXFILE|sed s/\.tex$/\.ps/)
                  ##dvipsが含まれている時、dvips, ps2pdf経由でpdfを生成
          else echo "DVIPS EXIT!!"
          fi

  else    echo "use platex + dvipdfmx"
          echo x |platex  --shell-escape $TEXFILE
          ## platex にかける
          if test "$?" = "0" ;then
                  dvipdfmx $(echo $TEXFILE|sed s/\.tex$/\.dvi/)
                  ##dvipsが含まれていない時、dvipdfmx でpdfを生成
          else echo "DVIPDFMX EXIT!!"
          fi
  fi

---------------------ここまで--------------------


今のところうまく動いている様子。

さて風邪を引いてしまい少ししんどい。今週から休みだし、明日は打ち合わせなので早めに寝よう。

コメント

このブログの人気の投稿

471びぼーろく; ffmpegの音・映像ずれ修正

329びぼーろく; latexでヤング図を書く

531びぼーろく; python上でのヤコビ楕円関数