Batcher

任意のファイルにバッチ処理を行います。



・ダウンロード

Batcher.zip


・使い方

1.設定ファイルにバッチ処理を書き込む。
2.ツールにファイルを渡せば設定ファイル通りに処理を行います。
わかりやすい解説画像(ツール名が旧名になってますが気にせずに)

-使ってみる
ファイルをBatcherのアイコンにドロップすると実行されます。

-プロンプトから実行する方法
Batcher [処理したいファイル] ([引数])

-TextPadから使う
設定→環境設定→ツールマネージャに「Batcher」を追加
引数:$File or $WspBaseName (どっちでもいい) (引数があればここに加える)
開始フォルダ:$FileDir (ワークスペース使ってる場合:$WspDir)


・設定ファイルの書き方

XMLもどきで記入します。
厳密に構文解析してるわけではないので、書き方注意。
属性値は必ず「"」で囲んでください。

-使用できるタグ
<extension ext="拡張子"></extension>
<extension ext="拡張子" arg="-a"></extension>
拡張子ごとに処理を変える為に利用する。
複数の処理をこのタグで囲む必要があります。
空行には出来ません。
同じ拡張子で複数の処理を分けたいとき、引数を使って処理を分けることができます。
<CurDir dir="ディレクトリパス" /> カレントディレクトリを変更する時に使います。
空行です。
<delete type="ファイルかディレクトリか" name="ファイル名" /> ファイルやディレクトリを削除する時に使います。
type属性には「file」か「dir」を入れてください。
name属性には拡張子付きのファイル名を入れてください。
空行です。
<make type="ファイルかディレクトリか" name="ファイル名" /> ファイルやディレクトリを作成する時に使います。
type属性には「file」か「dir」を入れてください。
name属性には拡張子付きのファイル名を入れてください。
空行です。
<command cmd="システムコマンド"></command> 上記以外のコマンドはこのタグで直接指定します。
上記のタグの処理をこのタグで実現することも可能です。
<argument arg="引数" /> commandタグに引数を加えたい場合に利用します。
複数同時に使用することが可能です。
空行です。
<!-- コメント --> コメントを書く際に使用します。
このタグがある行は全てコメントとして無視されます。

-使用できるマクロ
$FileExt ツールに渡したファイル名+拡張子に変換されます。
$File ツールに渡したファイル名に変換されます。
$Ext ツールに渡したファイルの拡張子に変換されます。
$Dir ツールに渡したファイルがあるディレクトリパスに変換されます。

-初期の設定ファイル
LaTeXのtexファイルをPDFにする処理とAdobe Readerを使ったPDFの表示が設定されています。
LaTeXでbibtexを使用する場合は“-bt“を引数に指定してください。
<!-- texファイルの処理-->
<extension ext="tex">
 <!-- カレントディレクトリを移動 -->
 <CurDir dir="$Dir" />

 <!-- コマンド実行 -->
 <command cmd="C:\tex\bin\platex.exe">
  <argument arg="$FileExt" />
 </command>
 <command cmd="C:\tex\bin\platex.exe">
  <argument arg="$FileExt" />
 </command>
 <command cmd="C:\tex\bin\dvipdfmx.exe -d 5">
  <argument arg="$File.dvi" />
 </command>

 <!-- 一時ファイル削除 -->
 <delete type="file" name="$File.aux" />
 <delete type="file" name="$File.log" />
 <delete type="file" name="$File.toc" />
 <delete type="file" name="$File.dvi" />
 <delete type="file" name="$File.out" />
</extension>

<!-- texファイルの処理 bibtex使用-->
<extension ext="tex" arg="-bt">
 <!-- カレントディレクトリを移動 -->
 <CurDir dir="$Dir" />

 <!-- コマンド実行 -->
 <command cmd="C:\tex\bin\platex.exe">
  <argument arg="$FileExt" />
 </command>
 <command cmd="C:\tex\bin\bibtex.exe">
  <argument arg="$File" />
 </command>
 <command cmd="C:\tex\bin\platex.exe">
  <argument arg="$FileExt" />
 </command>
 <command cmd="C:\tex\bin\platex.exe">
  <argument arg="$FileExt" />
 </command>
 <command cmd="C:\tex\bin\dvipdfmx.exe -d 5">
  <argument arg="$File.dvi" />
 </command>

 <!-- 一時ファイル削除 -->
 <delete type="file" name="$File.aux" />
 <delete type="file" name="$File.log" />
 <delete type="file" name="$File.toc" />
 <delete type="file" name="$File.dvi" />
 <delete type="file" name="$File.out" />
 <delete type="file" name="$File.bbl" />
 <delete type="file" name="$File.blg" />
</extension>

<!-- pdfファイルの処理-->
<extension ext="pdf">
 <!-- カレントディレクトリを移動 -->
 <CurDir dir="$Dir" />

 <!-- コマンド実行 -->
 <command cmd=""C:\Program Files\Adobe\Reader 8.0\Reader\AcroRd32.exe"">
  <argument arg="$FileExt" />
 </command>
</extension>
この設定を使用するためには、色々注意が必要です。
各プログラム等までのパスを通す必要があります。
PDF用の処理でAdobe Readerまでのパスにスペースが含まれているため「"」が2重になってます(わざとですよ)。

-準備
LaTeXがコンパイルできる環境でなければいけません。
・角籐さんによるW32TeX
・dviout for Windows
・GhostScript(8.11以降)
の3つが必要です。

http://www.ms.u-tokyo.ac.jp/~abenori/mycreate/
ここの「作ったもの→まだやる気のあるもの→TeXインストーラ3 0.xx」
なら全部一括でインストール出来ます。


・ちょっと技術的な話

結局何をやっているかというと、設定ファイルのtexファイルに関する部分だけで言えば、
カレントディレクトリに関しては、ちと微妙ですが、
「C:\prog\」に存在する「main.tex」ファイルをツールに渡した場合。

C:\tex\bin\platex.exe C:\prog\main.tex
C:\tex\bin\platex.exe C:\prog\main.tex
C:\tex\bin\dvipdfmx.exe -d 5 C:\prog\main.dvi
del C:\prog\main.aux
del C:\prog\main.log
del C:\prog\main.toc
del C:\prog\main.dvi
del C:\prog\main.out
というバッチ処理を行っているに過ぎません。
カレントディレクトリの変更というのは、ファイルをフルパスで指定する必要が無くなるだけで、「$Dir$FileExt」と指定すればカレントディレクトリを変更する必要はありません。
更に言えば、
 <command cmd="C:\tex\bin\platex.exe $Dir$FileExt" />
 <command cmd="C:\tex\bin\platex.exe $Dir$FileExt" />
 <command cmd="C:\tex\bin\dvipdfmx.exe -d 5 $Dir$File.dvi" />
 <command cmd="del $Dir$File.aux" />
 <command cmd="del $Dir$File.log" />
 <command cmd="del $Dir$File.toc" />
 <command cmd="del $Dir$File.dvi" />
 <command cmd="del $Dir$File.out" />
と、書いても全く同じ事が出来るはず(試してはいませんが)。
つまり、コマンドタグさえあればどうにかなるって事です。


・動作確認した環境

OS: WindowsXP/Vista/7
※たぶんWindowsならどんな環境でも動くと思いますが、保証はないです。


・更新履歴

2010年7月30日 設定ファイルを修正。Acrobat Readerの多重起動を許可。
2010年6月16日 ダブルクォート(")が2重になっているのを正しく検出できなかったのを修正
2010年1月1日 extensionタグに引数を付けられるように拡張
2009年3月7日 公開開始


・免責事項

当ソフトの使用によって、いかなる問題が生じても制作者は一切の責任を負いません。
ご了承ください。またこの文書の内容、プログラムの内容を予告なしに変更することがあります。





ホーム