TeXからPDFへの変換をmakeコマンドで

TeXからdvi、dviからPDFへの変換を楽にしたかった。

はじめに

配属されている研究室の週報や卒業論文tex形式で作成することになるので、Makefileを作成してみました。

texとかmakeについて

TeX Wiki Linuxコマンド集 - 【make】コンパイル等の処理を自動的に行う:ITpro

texのインストールについて

TeX入手法 - TeX Wiki

一般的な変換

# tex -> dvi
$ platex sample.tex

# dvi -> pdf
$ dvipdfmx sample

理想的な変換

# tex -> pdf
$ make

Makefileの作成

Makefileについて

自動化のためのGNU Make入門講座 - Makefileの基本:ルール

作成したMakefile

Makefile

.SUFFIXES: .tex .dvi .pdf

all: sample.pdf

clean:
    rm -rf *.aux *.dvi *.log

.tex.dvi:
    platex -kanji=euc $<

.dvi.pdf:
    dvipdfmx $<

sample.pdf: sample.tex sample.dvi

Makefileの解説

ざっくりと流れを説明します。 まずは標準のターゲットと、依存関係を明示します。

# 標準のターゲット
all: sample.pdf

# pdfの依存関係
sample.pdf: sample.tex sample.dvi

これで引数無しでmakeを実行すると、allがターゲットになります。 sample.pdfの作成には、texからdvi、dviからpdfへ変換する必要があるので、 その関係を明示します。

# dviが必要ならtexから作成する
.tex.dvi:
    platex $<

# pdfが必要ならdviから作成する
.dvi.pdf:
    dvipdfmx $<

拡張子を利用したルールを明示することで、pdfへの変換に必要な依存関係をトップダウンで洗い出し変換していってくれます。

おわりに

履歴書、週報、卒業論文などtex漬けの一年になりそうです。

おまけ

ptex2pdf

ptex2pdfコマンドが使えるなら、texからpdfへの変換は一発です。

$ ptex2pdf -l -ot -kanji=euc sample

けど、makeの方がタイプ数少なくていいですよね。

tex執筆環境

論文の執筆には句読点にピリオドとカンマを利用することがあると思います。 Emacs勢な私の環境ファイルをそっと添えておきます…。
GitHub: tsukachu/dotfiles