* 各種スクリプト(バッチファイル,シェルスクリプト) [#head] // TeXShop の「設定」のページの上のほうに,使う頻度の低いシェルスクリプトが // 大量に展示されていたので,移転する目的で作りました。 // 同時に,W32TeX 利用者からときどき「pdfpLaTeX ってなんだ?」という声を // 聞くので,その説明も兼ねています。 -- アセトアミノフェン (2015-06-12) 最近は [[ptex2pdf]] というプログラム(実体は Lua スクリプト)が開発されたこともあり,あらゆる環境で (u)pLaTeX + dvipdfmx という「日本語ユーザが最も利用しているタイプセット方法」が一発で可能になりました。 しかし,今でも従来の -バッチファイル(Windows の場合) -シェルスクリプト(Unix 系の場合) による方法が使われている環境も,各所で見受けられます。 そこで,ここにそうしたスクリプトの例を挙げておきます。 ---- #contents ---- ** pdfpLaTeX (platex + dvipdfmx) [#pdfplatex] オーソドックスな pLaTeX + [[dvipdfmx]] による PDF 生成スクリプトです。 [[W32TeX]] をインストールした場合,[[TeXworks]] のデフォルトとして使われています。 [[TeXShop]] にはシェルスクリプト版が含まれています。 ---- -pdfplatex.bat(バッチファイル) ---- @echo off platex -synctex=1 -kanji=utf8 -no-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 -kanji=utf8 -no-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 -g > "%~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 を実行します。