複数ファイル構成(\input / \include / subfiles)

長い文書は、章ごと・図ごとにファイルを分けたほうが扱いやすくなります。LaTeX には分割したファイルをつなぐ手段がいくつもあり、用途で使い分けます——どこにでも貼り込む \input、章単位の \include(部分ビルド用の \includeonly 付き)、そして各ファイルを単体でもコンパイルできる subfilesstandalone。このページはその選び方です。

\input — どこにでも貼り込む

\input{ファイル} は、そのファイルの中身を 命令を書いた位置にそのまま挿入 します——その場に直接打ち込んだのと同じ扱いです。改ページは起きず、プリアンブルでも本文でも使え、入れ子にもできます。拡張子は .tex が補われます。共通プリアンブル、表、小さな節など 細かい断片 の取り込みに向きます。

latex
% main.tex
\documentclass{report}
\input{preamble/common}
\begin{document}
\input{sections/intro}
\input{tables/experiment-settings}
\end{document}

\include — 章単位で分ける

\include{ファイル} は、取り込みの 前後で \clearpage を行い、さらにその塊だけ 専用の .aux ファイル に切り替えます。章のような大きな単位向けの仕組みです。\include は入れ子にできません(ただし \include したファイルの中で \input を使うのは可)。新しいページから始めたい章ごとの分割に使います。

latex
\include{chapters/ch1}

\includeonly — 一部だけ速くコンパイル

プリアンブルに \includeonly{ch2,ch3} と書くと、LaTeX は その章だけ を処理します。\include は章ごとに .aux を保持しているため、処理しなかった章のページ番号や相互参照も、直前のフル・コンパイルの値が保たれます。つまり一度通しでビルドしておけば、あとは編集中の 1 章だけを短時間で組み直せます(これは \include 専用で、\input には効きません)。

latex
\includeonly{chapters/ch3}   % プリアンブルに置く / put in the preamble

subfiles / standalone — 単体でもコンパイル

\include 方式は、あくまで本体ファイルからしか組めません。subfiles パッケージを使うと、各サブファイルを 単独でもコンパイル でき、しかも 本体のプリアンブルを自動で引き継ぎ ます。本体では \subfile{...}、各サブファイルの冒頭で \documentclass[../main.tex]{subfiles} と書くだけ。本全体を組まずに 1 章だけ確認したいときに便利です。

latex
% main.tex
\documentclass{book}
\usepackage{subfiles}
\begin{document}
\subfile{chapters/ch1}
\end{document}

% chapters/ch1.tex
\documentclass[../main.tex]{subfiles}
\begin{document}
  \chapter{はじめに}
\end{document}

よく似た standalone パッケージ/クラスは、各ファイルが それぞれ独自のプリアンブル を持ちます。より柔軟ですが記述は複雑です。とくに 図や TikZ を単体ファイルにしておき、単独では切り取った PDF・画像として出力しつつ、本文には取り込む、という使い方に向きます。

使い分け

分割の設計は、先にディレクトリで決めておくと迷いません。本文は chapters/、表や長い補足は sections/tables/、図は figures/、共通設定は preamble/ に置きます。ファイル名は空白を避け、英数字・ハイフン・アンダースコアでそろえます。あとから CI や別 OS で組むとき、ここでの地味な規則がそのまま再現性になります。

  • 小さな断片・共通プリアンブル\input
  • 章など大きな単位+新ページ\include(+\includeonly で部分ビルド)。
  • 各章を単体でもコンパイルしたい(共通プリアンブル)subfiles
  • 図を単体ファイル化して本文にも入れたい(各自プリアンブル)standalone

なお latexmk は取り込んだファイルも依存として追跡するので、ファイルを分割しても自動ビルドや保存時の再コンパイルはそのまま機能します。分割した直後に「ファイルが見つからない」エラーが出たら、まずパスを本体ファイルから見た相対パスで書いているか、拡張子 .tex を重複していないか、ビルドコマンドをサブディレクトリではなくプロジェクトのルートで実行しているかを確認します。

もう一つの失敗は、サブファイルを直接コンパイルしてしまうことです。\input\include されたファイルには通常 \documentclass もプリアンブルもないため、単体では組めません。章だけを単独で確認したいなら subfiles、図だけを独立 PDF にしたいなら standalone を選び、普通の章ファイルを無理に単体コンパイルしない、という線引きをしておきます。