演習:LaTeXファイルの分割

長大な文書を書く場合には、LaTeXソースを分割するとよい。 このための手順は次のようである。

  1. 文書専用フォルダを作成する。
  2. フォルダ内に、文書作成に必要な全てのファイルを格納する。
  3. 必要なファイルを読み込むように記述したルートファイルをタイプセットする。
  4. ルートファイルで指定したファイルを読み込むコマンド \input を使ってファイルを読み込み、ルートファイと読み込んだ全てのファイル全体で1つのLaTeX素ソースファイルとなるようにする。
split_file

左図は、ルートファファイルを mybook.tex とし(文書スタイルを jsbook としている)、プリアンブルでのパッケージ読み込みやさまざまな定義を記述したファイルを preemble.tex 、タイトル情報に関わる記述を title.tex のファイルにして、これらをプリアンブル部で \input preemble.tex および \input title.tex と読み込んでいる。 また、概要内容を abstract.tex 、序論を introduction.texまど、結語を conlusion.tex そして参考文献を bibliography.tex にして、これらを読み込むようになっている様子を表している。


ルートファイルから分割したファイルを読み込む

たとえば右図のように、適当な名称のフォルダを作成し(空白文字は使わず、できれば英数字とアンダーバー _ だけで)、フォルダ内にLaTeXルートファイルとして documentroot.tex を置く。

フォルダ内のファイル abstract.tex, introduction.tex, problem.tex, analysis.tex, result.tex, conclusion.tex reference.tex はすべて、ルートファイル documentroot.tex から読み込まれるファイルで、それら全体で継ぎ合わせて、LaTeXソースファイルを構成するように分割されているとする。

ここでは、フォルダ内の image フォルダはは、LaTeXファイルで画像張り込みのために必要な画像ファイルが収納されているとしている(明快なファイル管理を目指そう)。

ルートファイルから指定したファイル内容を読み込むための方法を紹介しよう。 ルートファイルにおいて目的をファイルを読み込むためには、 \input コマンドを使ってdocumentroot.tex を次のように書く。 コマンド \input で指定したファイルをその場所に素直に読み込んで(内容を挿入して)、タイプセットできるように目的の文書を完成するようにしているのである。

\documentclass{jsarticle}
.....
  プリアンブル
.....
\begin{document}
% 概要
\input abstract.tex
% 目次
\maketitle
% 目的・序論
\input introduction.tex
% 問題設定
\input problem.tex
% 解析
\input analysis.tex
% 結果
\input result.tex
% 結語
\input conclusion.tex

% 参考文献
\input reference.tex
\end{document}

ファイル分割する意味と利点

LaTeXファイルを複数のファイル群に分割して文書作成することで、以下のような利便を得ることができる。

演習:ファイル分割の具体例

以下の演習例では、パッケージ showkeys を使った:

\usepackage{showkeys}

パッケージ showkeys は 文中でラベル名を定義 \label{...} または、それを利用している \ref{...} または \pageref{...}、あるいは参考文献ラベル名の定義 \bibitem{...} その引用 \cite{...} を検出して表示するパッケージである。 文中で利用しているラベル名を覚えたり、呼び出したりすることが困難な場合を補助するために利用するとよい。 文書が完成したときには、% 記号をつけてパッケージ宣言の行を %\usepackage{showkeys}とコメントアウトすればよいので重宝する。

graphics1

演習:画像ファイルを貼り込むのサンプルファイルの構成を変えてgraphic1.zipとした。

  1. このZIPファイルを展開して、フォルダとファイル構成をよく点検しなさい(右図参照)。
  2. ファイル main1.tex がルートドキュメントである。 main1.tex から ファイル tsuda_mac.tex, eps.tex, jpeg.tex, png.tex, pdf.tex, bmp.tex, gif.tex, mutual_refer.tex, biblio.tex を読み込んでいることを確認する。
  3. さらに、エディタで eps.tex, jpeg.tex, png.tex, pdf.tex, bmp.tex, gif.tex を開いて、これからかフォルダ image 内の画像ファイルを取り込んで表示するようになっていることを確認する。
  4. ルートドキュメント main1.tex をタイプセットしなさい(2回以上)。
  5. 生成されるPDFファイルはmain1.pdfとなることを確認する。

graphics2

次に、graphic2.zipをダウンロードし、展開する。

  1. このZIPファイルを展開して、フォルダとファイル構成をよく点検しなさい。
  2. ファイル main2.tex がルートドキュメントである(しかし、\input で読み込まれるファイル指定が誤っている)。 フォルダ tsuda 内にファイル tsuda_mac.tex が、フォルダ eps 内に eps.tex が、フォルダ jpg 内に jpeg.tex が、フォルダ png 内に png.tex が、フォルダ pdf 内に pdf.tex が、フォルダ bitmap 内に bmp.tex が、フォルダ gif 内に gif.tex が、フォルダ refer 内に mutual_refer.tex が、そしてフォルダ bib 内に biblio.tex があることを確認する(右図参照)。
  3. フォルダ eps 内、jpg 内、png 内、pdf 内、bitmap 内、gif 内にはフォルダ image があり、それら内には画像ファイルが格納されていることを確認しよう。
  4. ルートドキュメント main1.tex をタイプセット(2回以上)して, 先のmain1.pdfと同じPDFファイルとなるように、ルートファイル main2.tex および、eps.tex, jpeg.tex, png.tex, pdf.tex, bmp.tex, gif.tex を修正しなさい。

大部の書籍などのように大量の図表ファイルを利用する場合には、後者のように、関連するフォルダ内でそれぞれ必要とする図表ファイルを格納してLaTeXファイル群を構成する方が管理しやすいことがわかる。