どこかに向かうらしい話

迷走エンジニアの放浪記

Latex作業用バッチファイルとフォルダ構成の備忘録

「編集対象」フォルダでtexファイルを編集 → 『pdfmake.bat』の実行 → 「pdf」フォルダにpdfの出来上がり!

ってのを実現してくれるツールが欲しいぞ!ってことで、バッチ化。

『pdfmake.bat』の仕様はだいたい以下の感じ。

  • 編集対象以下にあるtexファイルからdviファイルを生成
  • 作成したdviファイルからpdfファイルを生成
  • 編集対象以下のフォルダのバックアップ

そんで、以下のようなフォルダ構成を取る。

(作業フォルダの/)
+- backup
+- pdf
+- tmp
|   +- backup
+- tools
|   +- 7za920(7-Zip)
+- 編集対象
+- pdfmake.bat

7-Zipは以下のサイトより、コマンドラインバージョンを取得する。

http://sevenzip.osdn.jp/download.html

以下が『pdfmake.bat』のソース。

REM ファイル名の指定
set filename=dammyName

REM バックアップの取得
    REM 事前作業
    copy .\編集対象\%filename%.tex .\tmp\backup\
    copy .\編集対象\%filename%_part.tex .\tmp\backup\
    copy .\編集対象\本文 .\tmp\backup\本文


    REM 日付を取得
    set yyyy=%date:~0,4%
    set mm=%date:~5,2%
    set dd=%date:~8,2%

    REM 時刻(時・分・秒)を取得
    set time0=%time: =0%
    set hh=%time0:~0,2%
    set mn=%time0:~3,2%
    set ss=%time0:~6,2%

    REM zipファイル名のセット
    set backupfile=%yyyy%-%mm%-%dd%-%hh%-%mn%-%ss%.zip
    .\tools\7za920\7za.exe a %backupfile% .\tmp\backup\*

    move %backupfile% .\backup\

REM auxファイルの削除
rm .\編集対象\%filename%.aux

REM dviファイルの生成
    REM LaTeXのラベルの以下のような仕様に対応するため、2回タイプセットを行う。
    REM ■1回目のタイプセット時
    REM LaTeXが,\label{…} を順番に数えて,ラベルと番号の一覧表を sample.aux に書き込む。
    REM この段階では,本文中の対応する \ref{…} は、「??」となっている。
    REM ■2回目のタイプセット時
    REM LaTeX が,一覧表 sample.aux を見て,\ref{…} を番号に置き換える。
cd .\編集対象
platex -kanji=utf8 %filename%.tex
platex -kanji=utf8 %filename%.tex
cd ..\

REM pdfファイルの生成
cd .\編集対象
dvipdfmx %filename%
cd ..\

REM 各ファイルの掃除
move .\編集対象\%filename%.pdf .\pdf\
move .\編集対象\%filename%.* .\tmp\
move .\tmp\%filename%.tex .\編集対象\

REM pdfファイルの表示
.\pdf\%filename%.pdf

REM Latexのエラーは標準出力/エラー出力に吐かれないので、デバッグのためにpauseで止める仕様にする。
pause