* 各種スクリプト(バッチファイル,シェルスクリプト) [#head]

// TeXShop の「設定」のページの上のほうに,使う頻度の低いシェルスクリプトが
// 大量に展示されていたので,移転する目的で作りました。
// 同時に,W32TeX 利用者からときどき「pdfpLaTeX ってなんだ?」という声を
// 聞くので,その説明も兼ねています。 -- アセトアミノフェン (2015-06-12)

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

-バッチファイル(Windows の場合)
-シェルスクリプト(Unix 系の場合)

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

----
#contents
----


** pdfpLaTeX (platex + dvipdfmx) [#pdfplatex]

オーソドックスな pLaTeX + [[dvipdfmx]] による PDF 生成スクリプトです。
現在でも,[[W32TeX]] を [[TeX インストーラ 3:http://www.math.sci.hokudai.ac.jp/~abenori/soft/abtexinst.html]] でインストールした場合,[[TeXworks]] のデフォルトとして使われています。
[[TeXShop]] にはシェルスクリプト版が含まれています。

----
-pdfplatex.bat(バッチファイル)
----
 @echo off
 platex -synctex=1 -jobname="%~n1" -kanji=utf8 -guess-input-enc %1 && ^
 dvipdfmx "%~n1"
----

----
-pdfplatex(シェルスクリプト)
----
 #!/bin/sh
 platex -synctex=1 "$1" && \
 dvipdfmx "`basename "$1" .tex`"
----


** pdfupLaTeX (uplatex + dvipdfmx) [#pdfuplatex]

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

----
-pdfuplatex.bat(バッチファイル)
----
 @echo off
 uplatex -synctex=1 -jobname="%~n1" -kanji=utf8 -guess-input-enc %1 && ^
 dvipdfmx "%~n1"
----

----
-pdfuplatex(シェルスクリプト)
----
 #!/bin/sh
 uplatex -synctex=1 "$1" && \
 dvipdfmx "`basename "$1" .tex`"
----


** pdfpLaTeX2 (platex + dvips + convbkmk + ps2pdf) [#pdfplatex2]

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

----
-pdfplatex2.bat(バッチファイル)
----
 @echo off
 platex -synctex=1 -kanji=utf8 -no-guess-input-enc %1 && ^
 dvips -Ppdf -z -f "%~n1.dvi" | ^
 convbkmk -u > "%~n1.ps" && ^
 ps2pdf.exe "%~n1.ps"
----

----
-pdfplatex2(シェルスクリプト)
----
 #!/bin/sh
 platex -synctex=1 "$1" && \
 dvips -Ppdf -z -f "`basename "$1" .tex`.dvi" | \
 convbkmk -g > "`basename "$1" .tex`.ps" && \
 ps2pdf "`basename "$1" .tex`.ps"
----


** pdfupLaTeX2 (uplatex + dvips + convbkmk + ps2pdf) [#pdfuplatex2]

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

----
-pdfuplatex2.bat(バッチファイル)
----
 @echo off
 uplatex -synctex=1 -kanji=utf8 -no-guess-input-enc %1 && ^
 dvips -Ppdf -z -f "%~n1.dvi" | ^
 convbkmk -u > "%~n1.ps" && ^
 ps2pdf.exe "%~n1.ps"
----

----
-pdfuplatex2(シェルスクリプト)
----
 #!/bin/sh
 uplatex -synctex=1 "$1" && \
 dvips -Ppdf -z -f "`basename "$1" .tex`.dvi" | \
 convbkmk -u > "`basename "$1" .tex`.ps" && \
 ps2pdf "`basename "$1" .tex`.ps"
----


** その他 [#others]

LaTeX ではなく plain TeX を使うスクリプトも同様に作成することができます。
参考までに,TeXShop に含まれているものを紹介します((これらはすべて TeXShop.app/Contents/Resources/TeXShop/bin 以下にあります。))。

*** pdfeupTeX (e-upTeX + dvipdfmx) [#pdfeuptex]

----
-pdfeuptex(シェルスクリプト)
----
 #!/bin/sh
 euptex -synctex=1 -file-line-error "$1" && \
 dvipdfmx "`basename "$1" .tex`" 
----

*** pdfeupTeX2 (e-upTeX + dvips + convbkmk + ps2pdf) [#pdfeuptex2]

----
-pdfeuptex2(シェルスクリプト)
----
 #!/bin/sh
 euptex -synctex=1 -file-line-error "$1" && \
 dvips -Ppdf -z -f "`basename "$1" .tex`.dvi" | \
 convbkmk -u > "`basename "$1" .tex`.ps" && \
 ps2pdf "`basename "$1" .tex`.ps"
----

** シェルスクリプト利用時の注意 [#notice]

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

スクリプトを置く場所を例えば ~/bin とすると,~/.bash_profile または ~/.bashrc に
 export PATH=$HOME/bin:$PATH
と書き加えます。

スクリプト pdfuplatex を nano で作成するには,ターミナルで
 $ nano ~/bin/pdfuplatex
として下記のシェルスクリプトを記述し,保存してから
 $ chmod +x ~/bin/pdfuplatex
を実行します。