+# TeX中間ファイルの拡張子
+# .aux: 相互参照
+# .fls: tex -recorderで生成されるファイルリスト
+# .lof: 図リスト(\tableoffigures)
+# .lot: 表リスト(\tableoftables)
+# .out: hyperrefパッケージ
+# .toc: 目次(\tableofcontents)
+# .log: ログ
+TEX_INT := .aux .fls .lof .lot .out .toc .log
+# 索引中間ファイルの拡張子
+# .idx: auxから作成
+# .ind: idxから作成
+# .ilg: 索引ログ
+IND_INT := .idx .ind .ilg
+# BiBTeX中間ファイルの拡張子
+# .bbl: auxから作成
+# .blg: BiBTeXログ
+BIB_INT := .bbl .blg
+
+.SECONDARY: $(wildcard $(addsuffix $(TEX_INT) $(IND_INT) $(BIB_INT) .d,*))
+
+# \tableofcontents命令
+toc = $(shell $(SED) -n -e '/^.*[^\]\{0,1\}%.*\\tableofcontents/!s/.*\(\\tableofcontents\).*/\1/p' $<)
+
+# \listoffigures命令
+lof = $(shell $(SED) -n -e '/^.*[^\]\{0,1\}%.*\\listoffigures/!s/.*\(\\listoffigures\).*/\1/p' $<)
+
+# \listoftables命令
+lot = $(shell $(SED) -n -e '/^.*[^\]\{0,1\}%.*\\listoftables/!s/.*\(\\listoftables\).*/\1/p' $<)
+
+# \makeindex命令
+makeindex = $(shell $(SED) -n -e '/^.*[^\]\{0,1\}%.*\\makeindex/!s/.*\(\\makeindex\).*/\1/p' $<)
+
+# \bibliography命令で読み込まれる文献データベースファイル
+bibdb = $(addsuffix .bib,$(basename $(strip $(shell \
+ $(SED) -n -e '/^.*[^\]\{0,1\}%.*\\bibliography/!s/\\bibliography\(\[[^]]*\]\)\{0,1\}{\([^}]*\)}/&\n/gp' $< $(intex) | \
+ $(SED) -e 's/.*{\([^}]*\)}.*/\1/' | \
+ $(SED) -e 's/,/ /g'))))
+
+# hyperrefパッケージ読み込み
+hyperref = $(shell $(SED) -n -e '/^.*[^\]\{0,1\}%.*\\usepackage\(\[[^]]*\]\)\{0,1\}{hyperref}/!s/.*\(\\usepackage\)\(\[[^]]*\]\)\{0,1\}\({hyperref}\).*/\1\3/p' $<)
+
+# ファイル名から拡張子を除いた部分
+BASE = $(basename $<)
+
+# .texファイル
+TEXFILE = $(addsuffix .tex,$(BASE))
+
+# .auxファイル
+AUXFILE = $(addsuffix .aux,$(BASE))
+# .prev_auxファイル
+PREV_AUXFILE = $(addsuffix .prev_aux,$(BASE))
+
+# .dviファイル
+DVIFILE = $(addsuffix .dvi,$(BASE))
+
+# .dファイル
+DFILE = $(addsuffix .d,$(BASE))
+
+# .logファイル
+LOGFILE = $(addsuffix .log,$(BASE))
+
+# .tocファイル
+TOCFILE = $(addsuffix .toc,$(BASE))
+# .prev_tocファイル。.tocファイルのコピー
+PREV_TOCFILE = $(addsuffix .prev_toc,$(BASE))
+
+# .lofファイル
+LOFFILE = $(addsuffix .lof,$(BASE))
+# .prev_lofファイル。.lofファイルのコピー
+PREV_LOFFILE = $(addsuffix .prev_lof,$(BASE))
+
+# .lotファイル
+LOTFILE = $(addsuffix .lot,$(BASE))
+# .prev_lotファイル。.lotファイルのコピー
+PREV_LOTFILE = $(addsuffix .prev_lot,$(BASE))
+
+# .idxファイル
+IDXFILE = $(addsuffix .idx,$(BASE))
+# .prev_idxファイル。.idxファイルのコピー
+PREV_IDXFILE = $(addsuffix .prev_idx,$(BASE))
+
+# .indファイル
+INDFILE = $(addsuffix .ind,$(BASE))
+# .prev_indファイル。.indファイルのコピー
+PREV_INDFILE = $(addsuffix .prev_ind,$(BASE))
+
+# .ilgファイル
+ILGFILE = $(addsuffix .ilg,$(BASE))
+
+# .bblファイル
+BBLFILE = $(addsuffix .bbl,$(BASE))
+# .prev_bblファイル。.bblファイルのコピー
+PREV_BBLFILE = $(addsuffix .prev_bbl,$(BASE))
+
+# .bblファイル
+BLGFILE = $(addsuffix .blg,$(BASE))
+
+# .outファイル
+OUTFILE = $(addsuffix .out,$(BASE))
+# .prev_outファイル。.outファイルのコピー
+PREV_OUTFILE = $(addsuffix .prev_out,$(BASE))
+