TeXとBiBTeXとbashのgetoptの練習がてらに

texからpdfまでを一括で行うスクリプト。作ったけどtexbinの中に入ってそうだ。-bオプションを取得してBiBTeXの処理オプション、-cオプションを取得して中間ファイルの削除オプションもつけてみた。

function tex2pdf() {
    
    # set options
    BIBTEX=false
    CLEANING=true
    
    while getopts bc OPT; do
        case $OPT in
            b) BIBTEX=true;;
    	c) CLEANING=true;;
        esac
    done
    shift $((OPTIND - 1))
    
    # tex process
    platex $1
    if $BIBTEX; then
    	pbibtex $1
    	platex $1
    fi
    dvipdfmx $1
    
    # cleaning
    if $CLEANING; then
    	rm $1.{log,aux,dvi}
    	if $BIBTEX; then
    		rm $1.{bbl,blg,lof,lot,toc}
    	fi
    fi

}

使い方

第一引数にターゲットのtexファイルを拡張子抜きで指定。

$ tex2pdf texfile

bibtexする場合

$ tex2pdf texfile -b

中間ファイルを削除する場合

$ tex2pdf texfile -c

はじめはplatexとdvipdf打つのが面倒だなと思って作り始めたこんなのだった。

function tex2pdf() {
    platex $1
    dvipdfmx $1
}

こんなのになるまで

Advertisement