Skip to content
3月 3 / rakkyoo

LateXのコンパイルからPDF作成まで自動化

最近,書類を作るときに,Latexを使っています.
作成時は,おきまりのこの本を参考に書いています.

texのソースを書いてから,PDF化するまでに,以下の3つのステップで処理しています.

  • 「platex」を使って,dviファイルを出力
  • 「dvipdfmx」を使ってdviからPDFを作成
  •  PDFファイルをオープンして確認

毎回毎回この作業をするのが面倒なので,シェルスクリプトを書いて,処理することにしました.
シェルスクリプトはここでやってみたことはあるのですが,未だによくわからないので,かなり適当に作ってみました.
第一引数にファイル名(拡張の有無はどちらでもいい)を受け取って,platex→dvipdfmx→open とするだけです.
どこかでエラーになったらその旨を出力する様にするために,「if [ -a ・・・」っと「-a」でファイルの存在有無を確認しています.

1
if [ -a ${filename}.tex ]; then

入力引数を拡張子の有無をどちらでも指定できるように,

1
2
basename=$1 # 引数からファイル名を受取る
filename=${basename%.*} # 拡張子を取った名前

っとしました.
かなり冗長的ですが,一応動くのでひとまずはこれで満足しています.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#!/bin/bash
 
basename=$1 # 引数からファイル名を受取る
filename=${basename%.*} # 拡張子を取った名前
pdfflag=1
dviflag=1
 
if [ -a ${filename}.tex ]; then
    # tex -> dviファイル
    platex ${filename}.tex
else
    echo "ファイル:${filename}.tex が存在しません"
    dviflag=0
    pdfflag=0
fi
 
if [ -a ${filename}.dvi ]; then
	# dvi -> pdfファイル
    dvipdfmx ${filename}.dvi
elif [ $dviflag != 0 ]; then
    echo "${filename}.dvi が作成できていないようです."
    pdfflag=0
fi
 
if [ -a ${filename}.pdf ]; then
	    # pdfファイルを開く
    open ${filename}.pdf
elif [ $pdfflag != 0 ]; then
    echo "${filename}.pdf が開けません."
fi

シェルスクリプトでばりばりと処理できるようになったら快適だろうなと思います.

[`twib` not found]

Leave a comment

CAPTCHA


This blog is kept spam free by WP-SpamFree.