気が向いたのでTeXを布教しようと思う
研究室ではTeXエヴァンジェリストとしてブイブイいわせてるんだけど
Webではさっぱりだったので
で,TeXのインストールなんて
TeXインストーラ使って
「次へ」を押してるだけで,いつの間にか君のPCにもTeXが導入されるので
特に難しいところはないと思うんだけど
たぶんみんなが躓くのがコンパイル
ということで,私がいつも使ってる
TeXコンパイルのバッチファイル「makepdf.bat」を公開してみる
ライセンスはパブリックドメインで
# いっつもWindowsでやってるので,スクリプトではなくてバッチファイルですw
追記@2011.12.14 このコードは古いコードです.新しいコードはこちら.
@echo off
rem Usage:
rem $ ./makepdf.bat sample
rem
rem Info:
rem %1 = basename of target file (same as %~n1)
rem Image name of Adobe Reader (e.g. AcroRd32.exe)
set acrord=AcroRd32.exe
rem File encoding (platex style)
set encoding=utf8
rem -------------------------------------------------------------------
if exist %1.bbl ( del %1.bbl )
platex -sjis-terminal -kanji=%encoding% -kanji-internal=%encoding% %1
if exist %1.bib ( pbibtex -sjis-terminal -kanji=%encoding% %1 )
platex -sjis-terminal -kanji=%encoding% -kanji-internal=%encoding% %1
platex -sjis-terminal -kanji=%encoding% -kanji-internal=%encoding% %1
tasklist /fi "IMAGENAME eq %acrord%" /nh | findstr "%acrord%" > nul
rem If Adobe Reader is available...
if not errorlevel 1 (
pdfclose --rx --file %1.pdf
rem IF failed to close PDF document...
if errorlevel 1 (
tasklist /fi "WINDOWTITLE eq %1.pdf - Adobe Reader" /nh | findstr "%acrord%" > nul
rem If compiling PDF document may be locked by Adobe Reader...
if not errorlevel 1 (
rem Close ALL documents opened by Adobe Reader
pdfclose --rx --all
if errorlevel 1 (
echo Failed to close locked document
echo Abort...
exit /b
)
)
)
)
echo.
dvipdfmx %1
tasklist /fi "IMAGENAME eq %acrord%" /nh | findstr "%acrord%" > nul
rem If Adobe Reader is available...
if not errorlevel 1 (
pdfopen --rx --file %1.pdf
)
del %1.log
del %1.aux
del %1.dvi
if exist %1.toc ( del %1.toc )
if exist %1.lot ( del %1.lot )
if exist %1.lof ( del %1.lof )
if exist %1.lol ( del %1.lol )
if exist %1.bbl ( del %1.bbl )
if exist %1.blg ( del %1.blg )
なんと,TeXファイルのファイル名を渡すと
コンパイルして,PDFにして,Adobe Readerで表示までしてくれます
さらには,ゴミまで削除してくれる親切設計
しかも,BibTeX(pbibtex)対応済み
真ん中あたりで,tasklistなんて呼び出して何やってるのかといえば
Adobe ReaderでPDF開いてるかどうかを確認してます
というのも,Adobe Readerはオープン中のPDFファイルをロックするので
コンパイルするときに,PDFファイルを閉じさせる必要があるから
修正してはコンパイルし……を繰り返すときに
この機能がエクストリーム便利なんです
もちろん,Adobe Readerが立ち上がってないときは
わざわざ立ち上げないで,コンパイルして黙って終了するので
変な煩わしさもないし,だいぶ前に作って以降愛用してる
使い方は簡単
ソースコードにも書いてあるけど
> ./makepdf.bat sample
これは,TeXのソースコードが「sample.tex」の場合
拡張子まで含めるとおかしなことになるのでやらないようにww
テキストエディタの「外部ツール」なんかに設定しておくと
すごく楽にTeXを弄くれます
WinShellとか秀丸+祝鳥とかを使わなくても充分イケる!
あと,このバッチファイルはAdobe Reader Xが
インストールされている環境を想定してるので
もし,Adobe Reader 9とかFoxit Readerとかを使ってる人は
うまく動きません!
それと,pdfopen/pdfcloseは角藤さんの配布してる
pdftexに同梱されてるプログラムです(確か)
とりあえず,TeXインストーラで何も考えずに「次へ」を押してたら
いつの間にか勝手に入ってるはずです
さいご
ソースコードはUTF-8で書いてね!
禁則事項共
- WinShellの下位互換にしか見えません
- PDFまで行かずに,DVIで(ry
- それ,*nixで