+# 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/p' $< $(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))
+# .aux_prevファイル
+AUXFILE_PREV = $(addsuffix .aux_prev,$(BASE))
+
+# .dviファイル
+DVIFILE = $(addsuffix .dvi,$(BASE))
+
+# .dファイル
+DFILE = $(addsuffix .d,$(BASE))
+
+# .logファイル
+LOGFILE = $(addsuffix .log,$(BASE))
+
+# .tocファイル
+TOCFILE = $(addsuffix .toc,$(BASE))
+# .toc_prevファイル。.tocファイルのコピー
+TOCFILE_PREV = $(addsuffix .toc_prev,$(BASE))
+
+# .lofファイル
+LOFFILE = $(addsuffix .lof,$(BASE))
+# .lof_prevファイル。.lofファイルのコピー
+LOFFILE_PREV = $(addsuffix .lof_prev,$(BASE))
+
+# .lotファイル
+LOTFILE = $(addsuffix .lot,$(BASE))
+# .lot_prevファイル。.lotファイルのコピー
+LOTFILE_PREV = $(addsuffix .lot_prev,$(BASE))
+
+# .idxファイル
+IDXFILE = $(addsuffix .idx,$(BASE))
+# .idx_prevファイル。.idxファイルのコピー
+IDXFILE_PREV = $(addsuffix .idx_prev,$(BASE))
+
+# .indファイル
+INDFILE = $(addsuffix .ind,$(BASE))
+# .ind_prevファイル。.indファイルのコピー
+INDFILE_PREV = $(addsuffix .ind_prev,$(BASE))
+
+# .ilgファイル
+ILGFILE = $(addsuffix .ilg,$(BASE))
+
+# .bblファイル
+BBLFILE = $(addsuffix .bbl,$(BASE))
+# .bbl_prevファイル。.bblファイルのコピー
+BBLFILE_PREV = $(addsuffix .bbl_prev,$(BASE))
+
+# .blgファイル
+BLGFILE = $(addsuffix .blg,$(BASE))
+
+# .outファイル
+OUTFILE = $(addsuffix .out,$(BASE))
+# .out_prevファイル。.outファイルのコピー
+OUTFILE_PREV = $(addsuffix .out_prev,$(BASE))
+
+INTERFILES = $(strip \
+ $(if $(toc),$(TOCFILE)) \
+ $(if $(lof),$(LOFFILE)) \
+ $(if $(lot),$(LOTFILE)) \
+ $(if $(makeindex),$(INDFILE)) \
+ $(if $(bibdb),$(BBLFILE)) \
+ $(if $(hyperref),$(OUTFILE)) \
+ )
+
+INTERFILES_PREV = $(addsuffix _prev,$(INTERFILES))
+