各種スクリプト(バッチファイル,シェルスクリプト)

最近は ptex2pdf というプログラム(実体は Lua スクリプト)が開発されたこともあり,あらゆる環境で (u)pLaTeX + dvipdfmx という「日本語ユーザが最も利用しているタイプセット方法」が一発で可能になりました。 しかし,今でも従来の

による方法が使われている環境も,各所で見受けられます。 そこで,ここにそうしたスクリプトの例を挙げておきます。



pdfpLaTeX (platex + dvipdfmx)

オーソドックスな pLaTeX + dvipdfmx による PDF 生成スクリプトです。 TeXShop にはシェルスクリプト版が含まれています。



@echo off
platex -synctex=1 -kanji=utf8 -no-guess-input-enc %1 && ^
dvipdfmx "%~n1"



#!/bin/sh
platex -synctex=1 "$1" && \
dvipdfmx "`basename "$1" .tex`"

pdfupLaTeX (uplatex + dvipdfmx)

upLaTeX + dvipdfmx による PDF 生成スクリプトです。 TeXShop にはシェルスクリプト版が含まれています。



@echo off
uplatex -synctex=1 -kanji=utf8 -no-guess-input-enc %1 && ^
dvipdfmx "%~n1"



#!/bin/sh
uplatex -synctex=1 "$1" && \
dvipdfmx "`basename "$1" .tex`"

pdfpLaTeX2 (platex + dvips + convbkmk + ps2pdf)

PSTricks などの dvips ドライバ依存のパッケージを利用している場合に使用します。 convbkmk は日本語文書で PDF のしおりが文字化けしないようにする Ruby スクリプトです。 事前に Ruby インタプリタがインストールされていることを確認してください。 TeXShop にはシェルスクリプト版が含まれています。



@echo off
platex -synctex=1 -kanji=utf8 -no-guess-input-enc %1 && ^
dvips -z -f "%~n1.dvi" | ^
convbkmk -g > "%~n1.ps" && ^
ps2pdf.exe "%~n1.ps"



#!/bin/sh
platex -synctex=1 "$1" && \
dvips -z -f "`basename "$1" .tex`.dvi" | \
convbkmk -g > "`basename "$1" .tex`.ps" && \
ps2pdf "`basename "$1" .tex`.ps"

pdfupLaTeX2 (uplatex + dvips + convbkmk + ps2pdf)

上の pdfpLaTeX2 の upLaTeX 版です。 やはり convbkmk を使用します。 TeXShop にはシェルスクリプト版が含まれています。



@echo off
uplatex -synctex=1 -kanji=utf8 -no-guess-input-enc %1 && ^
dvips -z -f "%~n1.dvi" | ^
convbkmk -u > "%~n1.ps" && ^
ps2pdf.exe "%~n1.ps"



#!/bin/sh
uplatex -synctex=1 "$1" && \
dvips -z -f "`basename "$1" .tex`.dvi" | \
convbkmk -u > "`basename "$1" .tex`.ps" && \
ps2pdf "`basename "$1" .tex`.ps"

その他

LaTeX ではなく plain TeX を使うスクリプトも同様に作成することができます。 参考までに,TeXShop に含まれているものを紹介します*1

pdfeupTeX (e-upTeX + dvipdfmx)



#!/bin/sh
euptex -synctex=1 -file-line-error "$1" && \
dvipdfmx "`basename "$1" .tex`" 

pdfeupTeX2 (e-upTeX + dvips + convbkmk + ps2pdf)



#!/bin/sh
euptex -synctex=1 -file-line-error "$1" && \
dvips -z -f "`basename "$1" .tex`.dvi" | \
convbkmk -u > "`basename "$1" .tex`.ps" && \
ps2pdf "`basename "$1" .tex`.ps"

シェルスクリプト利用時の注意

シェルスクリプト(Unix 系)を自作した場合は,当然ながら PATH の通っている場所に置き,さらに実行権限を割り当てておく必要があります。

スクリプトを置く場所を例えば ~/bin とすると,~/.bash_profile または ~/.bashrc に

export PATH=$HOME/bin:$PATH

と書き加えます。

スクリプト pdfuplatex を nano で作成するには,ターミナルで

$ nano ~/bin/pdfuplatex

として下記のシェルスクリプトを記述し,保存してから

$ chmod +x ~/bin/pdfuplatex

を実行します。


*1 これらはすべて TeXShop.app/Contents/Resources/TeXShop/bin 以下にあります。

Last-modified: 2019-08-30 (金) 11:31:00 (52d)