platex して dvipdfmx するスクリプト
本スクリプトはTeXファイルを引数にとりPDFファイルを作成するPerlスクリプ
トです.内部では,platex
コマンド,dvipdfmx
コマンドを使っています.
つまり,
platexpdf hoge.tex
は,
platex hoge.tex
dvipdfmx hoge.dvi
とふたつのコマンドを実行することにほぼ等しいです.
Perlが動作する環境で本スクリプトをPATHの通ったところに置くと以下のよう にコマンドとして使えます.
platexpdf hoge.tex
hoge.tex
を引数にとり,DVIファイル及びPDFファイルを一度に作成していま
す.
文字コードを明示的に指定したり,埋め込みたいフォントのフォントマップを 指定することができます.
platexpdf -k utf8 -f cid-x.map hoge.tex
また,ファイルの変更を監視して,変更されたときに自動でコンパイルを実行 することもできます.この機能を使うには Filesys::Notify::Simple モジュールが必要です.
# hoge.texが修正されたときに自動でコンパイル
platexpdf -w -- hoge.tex
# hoge.texもしくはpiyo.texが修正されたときに自動でhoge.texをコンパイル
platexpdf -w hoge.tex -w piyo.tex hoge.tex
WindowsでActivePerlを使用して いる場合は,コマンドラインから
pl2bat platexpdf
で,platexpdf.bat
を作成して,それをPATHの通ったところに置いてください.
本スクリプトは,いくつかのオプションを指定することができます.
-
--bibtex / -b
bibTeXを使うときに指定します.
-
--clean EXTENSION / -c EXTENSION
削除したい中間ファイルの拡張子を指定します.
-
--fontmap FILENAME / -f FILENAME
フォントマップファイルを指定します.
dvipdfmx
の-f
オプションに相当 します. -
--help / -h
ヘルプを表示します.
-
--kanji ENCODING / -k ENCODING
TeXファイルの文字コードを明示的に指定します.
platex
の-kanji
オプショ ンに相当します.(ENCODING=euc|jis|sjis|utf8) -
--landscape / -l
用紙を横に使うモードでPDFを出力します.
dvipdfmx
の-l
オプションに相当します. -
--papersize PAPERSIZE / -p PAPERSIZE
用紙サイズを明示的に指定します.
dvipdfmx
の-p
オプションに相当しま す.(e.g. a4) -
--watch FILE / -w FILE
変更を監視するファイルを指定します.FILEを省略した場合は,コンパイル 対象のTeXファイルを監視します.このオプションを指定すると,ファイルを 監視し,ファイルが変更されればコンパイルを実行します.このオプション を使う場合は,追加モジュールとして Filesys::Notify::Simple が必要です.
Filesys::Notify::Simpleは,プラットフォームごとに Linux::Inotify2, Mac::FSEvents, Filesys::Notify::KQueue, Win32::ChangeNotify を使い分けます.プラットフォームに合ったモジュールをインストールする ことで,ファイルの監視を効率的に行えるようになります.
--clean
オプション,--fontmap
オプション,--watch
オプションは以下の
ように複数指定することができます.
platexpdf --watch piyo.tex --watch hoge.tex --clean log --clean dvi hoge.tex
Adobe ReaderでPDFファイルを開いている状態でplatexpdfを実行してもPDFファ イルを更新できません.これは,Adobe Readerがファイルをロックしているた めです.
platexpdf実行時にはPDFビューアを閉じるか,ファイルをロックしないような PDFビューアを使用するようにしてください.たとえば,Windowsでは, Sumatra PDFというPDFビューアがあります.Linuxでは,evince等を使え ば大丈夫です.
MITライセンスです.