Maidsphere

2011.3.8

気が向いたので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で書いてね! 禁則事項共