LaTeX文書作成の裏技:frontmatter, mainmatter, backmatter代替手段と応用
2025-05-26
\frontmatter (前付)
- 目次への記載: このセクション内の章や節は、通常、目次には記載されません(ただし、
\tableofcontents
などは自身が目次として記載されるわけではありません)。 - ページ番号: 通常、ローマ数字の小文字 (i, ii, iii, ...) でページ番号が付けられます。
- 内容:
- タイトルページ
- 献辞 (Dedication)
- 目次 (Table of Contents)
- 図目次 (List of Figures)
- 表目次 (List of Tables)
- 謝辞 (Acknowledgements)
- 要旨 (Abstract) などが含まれることが一般的です。
- 役割: 文書の冒頭部分に位置し、本文に入る前の導入部分を構成します。
例
\documentclass{book}
\begin{document}
\frontmatter
\maketitle % タイトルページ
\tableofcontents % 目次
\listoffigures % 図目次
\listoftables % 表目次
% 他の前付コンテンツ
\chapter*{謝辞} % 章番号なしで目次にも載せない謝辞
感謝の言葉をここに述べます。
\end{document}
\mainmatter (本文)
- 目次への記載: このセクション内の章や節は、通常の番号付けとスタイルで目次に記載されます。
- ページ番号: 通常、アラビア数字 (1, 2, 3, ...) でページ番号が付けられます。
\mainmatter
が開始されると、ページ番号は1にリセットされます。 - 役割: 文書の主要な内容、すなわち本文が記述される部分です。
例
\documentclass{book}
\begin{document}
\frontmatter
% ... (前付コンテンツ) ...
\mainmatter
\chapter{はじめに}
これは本文の最初の章です。
\section{背景}
このセクションでは背景について説明します。
\chapter{理論}
ここでは理論について詳しく述べます。
\end{document}
- 目次への記載: このセクション内の章や節は、通常、章番号なしで目次に記載されるか、または「付録A」「付録B」のように独自のスタイルで記載されます(これは使用するスタイルやパッケージによります)。
\appendix
コマンドを使用すると、自動的に「付録A」などの形式になります。 - ページ番号: 通常、アラビア数字が継続して使用されますが、一部のスタイルでは独自の番号付けがなされることもあります。ページ番号は
\mainmatter
から継続されます。
\documentclass{book}
\begin{document}
\frontmatter
% ... (前付コンテンツ) ...
\mainmatter
% ... (本文コンテンツ) ...
\backmatter
\appendix
\chapter{付録A:データセット}
この付録ではデータセットについて説明します。
\chapter{付録B:詳細な計算}
詳細な計算結果をここに示します。
\bibliographystyle{plain} % 参考文献スタイル
\bibliography{myreferences} % 参考文献ファイル
\printindex % 索引の出力 (makeindex などが必要)
\end{document}
「Undefined control sequence」エラー
- トラブルシューティング:
- ドキュメントクラスの確認: 論文やレポートなど、より短い文書を作成している場合は、
article
クラスを使用している可能性があります。book
クラスやreport
クラスに切り替えることで解決することが多いです。\documentclass{book} % または \documentclass{report}
- 手動でのページ番号設定:
article
クラスを使用し続けたい場合は、\frontmatter
などの自動機能を使わず、\pagenumbering{roman}
(前付)、\pagenumbering{arabic}
(本文)などのコマンドを手動で挿入してページ番号のスタイルを切り替える必要があります。章番号を付けたくない場合は\chapter*{タイトル}
を使用します。
- ドキュメントクラスの確認: 論文やレポートなど、より短い文書を作成している場合は、
- 原因: このエラーは、使用しているドキュメントクラスが
\frontmatter
、\mainmatter
、\backmatter
コマンドをサポートしていない場合に発生します。これらのコマンドは、主にbook
クラスやreport
クラス(一部のカスタムクラスも含む)で定義されています。article
クラスなどでは、これらのコマンドはデフォルトでは利用できません。 - エラーメッセージの例:
! Undefined control sequence. \frontmatter
ページ番号付けがおかしい
- 原因:
\frontmatter
,\mainmatter
コマンドの配置が不適切。\pagenumbering
などのページ番号関連のコマンドを、\frontmatter
などの自動設定と競合する形で使用している。titlepage
環境など、特定の環境がページ番号をリセットする挙動を持つ場合がある。
目次 (Table of Contents) の表示がおかしい
- トラブルシューティング:
\frontmatter
内の章:\frontmatter
内で\chapter{タイトル}
を使うと、通常は目次に番号なしで表示されます。もし番号が表示されてしまう場合は、\frontmatter
が正しく宣言されていない可能性があります。\backmatter
と\appendix
:\backmatter
は、その後の章の番号付けを無効にするだけです。実際に章を「付録A」のように表示するには、\backmatter
の後に\appendix
コマンドを挿入する必要があります。\backmatter \appendix % これ以降の\chapterが「付録A」「付録B」となる \chapter{データ}
- 目次に表示したくないコンテンツ: 目次に入れたくないが、章や節として扱いたいコンテンツがある場合は、
\chapter*{タイトル}
や\section*{タイトル}
のようにアスタリスク付きのコマンドを使用します。これらは番号が振られず、目次にも自動では記載されません。もし目次に手動で記載したい場合は、\addcontentsline{toc}{chapter}{表示したいタイトル}
のように追加します。
- 原因:
\frontmatter
内の\chapter
が目次に番号付きで表示される、またはその逆。\backmatter
内の章が目次で「付録A」などと表示されない。
\frontmatter、\mainmatter、\backmatterの機能のカスタマイズ
- 原因: 特定の要件(例:特定のページのヘッダー/フッターを変えたい、章番号のフォーマットを変えたいなど)があり、デフォルトの挙動では不十分な場合。
- ログファイル (
.log
) の確認: LaTeXのコンパイル中に生成される.log
ファイルには、エラーや警告の詳細な情報が記録されています。エラーメッセージだけでなく、その前後の警告なども確認すると、問題のヒントが見つかることがあります。 - MWE (Minimal Working Example) の作成: エラーが発生した場合、問題の箇所を特定するために、必要最小限のコードでエラーを再現できるMWEを作成することがトラブルシューティングの第一歩です。無関係なパッケージやコンテンツを一時的にコメントアウトすることで、原因が特定しやすくなります。
基本的な構成例
まず、最も基本的なbook
クラスを使った例です。
\documentclass{book} % bookクラスはこれらのコマンドをサポートします
\usepackage{lipsum} % ダミーテキストを生成するために使用します
\title{私の素晴らしい本}
\author{山田 太郎}
\date{\today}
\begin{document}
% --- frontmatter (前付) ---
\frontmatter % ここから前付が始まります。ページ番号はローマ数字 (i, ii, iii...) になります。
\maketitle % タイトルページを生成します。
\clearpage % 目次の前にページをクリアします。
\tableofcontents % 目次を生成します。
\listoffigures % 図目次を生成します。
\listoftables % 表目次を生成します。
\chapter*{謝辞} % アスタリスク付きの\chapterは、目次には載らず、番号もつきません。
\addcontentsline{toc}{chapter}{謝辞} % 手動で目次に「謝辞」を追加します。
\lipsum[1] % ダミーテキスト
\chapter*{要旨} % アスタリスク付きの\chapter
\addcontentsline{toc}{chapter}{要旨} % 手動で目次に「要旨」を追加します。
\lipsum[2] % ダミーテキスト
% --- mainmatter (本文) ---
\mainmatter % ここから本文が始まります。ページ番号はアラビア数字 (1, 2, 3...) にリセットされます。
\chapter{はじめに}
\lipsum[3-4] % ダミーテキスト
\section{背景}
\lipsum[5] % ダミーテキスト
\subsection{研究の目的}
\lipsum[6] % ダミーテキスト
\chapter{理論}
\lipsum[7-8] % ダミーテキスト
\section{主な概念}
\lipsum[9] % ダミーテキスト
\chapter{実験と結果}
\lipsum[10-11] % ダミーテキスト
\begin{figure}[h]
\centering
% \includegraphics{example-figure} % 実際の図のパスを指定
\rule{5cm}{3cm} % 例として四角形を表示
\caption{実験装置の概略図}
\label{fig:apparatus}
\end{figure}
\begin{table}[h]
\centering
\caption{実験結果のまとめ}
\label{tab:results}
\begin{tabular}{|c|c|}
\hline
項目 & 値 \\
\hline
A & 10 \\
B & 20 \\
\hline
\end{tabular}
\end{table}
% --- backmatter (後付) ---
\backmatter % ここから後付が始まります。ページ番号は本文から続きます。
\appendix % これ以降の\chapterは「付録A」「付録B」となります。
\chapter{付録A:データセット}
\lipsum[12] % ダミーテキスト
\chapter{付録B:詳細な計算}
\lipsum[13] % ダミーテキスト
% 参考文献
% \usepackage{natbib} などのパッケージを使用し、bibファイルから生成する場合
% \bibliographystyle{plain} % 参考文献スタイル
% \bibliography{myreferences} % myreferences.bib ファイルを参照
\chapter*{参考文献} % 手動で参考文献リストを作成する場合
\addcontentsline{toc}{chapter}{参考文献}
\begin{thebibliography}{99} % 99は参考文献の最大数
\bibitem{latexbook} Lamport, L. (1994). \textit{LaTeX: A Document Preparation System}. Addison-Wesley.
\bibitem{otherbook} Knuth, D. E. (1984). \textit{The \TeX{}book}. Addison-Wesley.
\end{thebibliography}
% 索引 (makeindex などのツールが必要)
% \printindex
\end{document}
\mainmatter
:- このコマンドが実行されると、ページ番号がアラビア数字(
1
,2
,3
, ...)にリセットされ、番号が再び1から始まります。 - ここからが文書の本文となり、
\chapter
、\section
などのコマンドは通常の番号付きで表示され、目次にもその番号が反映されます。
- このコマンドが実行されると、ページ番号がアラビア数字(
\frontmatter
:- このコマンドが実行されると、その後のページ番号がローマ数字(
i
,ii
,iii
, ...)に自動的に設定されます。 - このセクション内の
\chapter
コマンドは、デフォルトで番号なしとなり、目次にも番号なしで表示されます。 \maketitle
、\tableofcontents
、\listoffigures
、\listoftables
などは、通常\frontmatter
内に配置されます。\chapter*{謝辞}
のようにアスタリスクを付けると、章の番号が振られず、目次にも自動で追加されません。目次に追加したい場合は、\addcontentsline{toc}{chapter}{謝辞}
のように手動で追記する必要があります。
- このコマンドが実行されると、その後のページ番号がローマ数字(
\usepackage{lipsum}
: このパッケージは、ダミーのテキスト(ラテン語のLorem ipsum)を生成するために使用しています。実際の文書では、この部分にあなたの内容を記述します。\documentclass{book}
:book
クラスを使用することが重要です。report
クラスも同様の機能を提供しますが、article
クラスではこれらのコマンドは利用できません。
articleクラスなどで手動でページ番号と章のスタイルを制御する方法
article
クラスは\frontmatter
などをサポートしていませんが、手動でページ番号のスタイルを変更したり、章の代わりに見出しを作成したりすることができます。これは、比較的短いレポートや論文で、書籍のような厳密な構造が不要な場合に有効です。
\documentclass{article} % articleクラスは\frontmatterなどをサポートしない
\usepackage{lipsum} % ダミーテキスト
\title{私のレポート}
\author{山田 太郎}
\date{\today}
\begin{document}
% --- 前付の代わり ---
% ページ番号をローマ数字にする
\pagenumbering{roman}
\maketitle % タイトルページ
\tableofcontents % 目次
\clearpage % ページをクリア
\section*{謝辞} % アスタリスク付きの\sectionで番号なし見出し
\addcontentsline{toc}{section}{謝辞} % 目次に手動で追加
\lipsum[1]
\section*{要旨}
\addcontentsline{toc}{section}{要旨}
\lipsum[2]
% --- 本文の代わり ---
% ページ番号をアラビア数字にしてリセット
\clearpage % 新しいページから開始
\pagenumbering{arabic}
\setcounter{page}{1} % ページ番号を1にリセット
\section{はじめに} % 通常の番号付きセクション
\lipsum[3-4]
\subsection{背景}
\lipsum[5]
\section{理論}
\lipsum[6-7]
% --- 後付の代わり ---
% ページ番号は本文から継続
\clearpage % 新しいページから開始
\section*{付録A:データセット} % アスタリスク付きの\sectionで番号なし見出し
\addcontentsline{toc}{section}{付録A:データセット} % 目次に手動で追加
\lipsum[8]
\section*{付録B:詳細な計算}
\addcontentsline{toc}{section}{付録B:詳細な計算}
\lipsum[9]
\section*{参考文献}
\addcontentsline{toc}{section}{参考文献}
\begin{thebibliography}{99}
\bibitem{latexbook} Lamport, L. (1994). \textit{LaTeX: A Document Preparation System}. Addison-Wesley.
\end{thebibliography}
\end{document}
ポイント:
- 目次に手動で項目を追加したい場合は、
\addcontentsline{toc}{<レベル>}{<表示タイトル>}
を使用します。<レベル>
はchapter
(book
/report
クラスの場合)やsection
(article
クラスの場合)など、適切な階層を指定します。 \section*{タイトル}
のようにアスタリスクを付けることで、章や節の番号を振らず、目次にも自動で記載されなくなります。\setcounter{page}{1}
でページ番号を1にリセットします。\pagenumbering{roman}
でページ番号をローマ数字にし、\pagenumbering{arabic}
でアラビア数字に戻します。
\includeや\inputコマンドを使ったモジュール化
大規模な文書の場合、各パート(前付、本文の各章、後付)を別々の.tex
ファイルに分割し、メインファイルでそれらを\include
または\input
で読み込むことで、管理を容易にすることができます。これは\frontmatter
などと組み合わせて使うこともできますし、代替手段としても利用できます。
main.tex
\documentclass{book}
\usepackage{lipsum}
% プリアンブル設定
\title{私のモジュール化された本}
\author{山田 太郎}
\date{\today}
\begin{document}
% --- 前付 ---
\frontmatter
\input{frontmatter/title.tex} % タイトルページやメタデータを別のファイルに
\input{frontmatter/toc_lof_lot.tex} % 目次、図目次、表目次を別のファイルに
\input{frontmatter/acknowledgements.tex} % 謝辞を別のファイルに
\input{frontmatter/abstract.tex} % 要旨を別のファイルに
% --- 本文 ---
\mainmatter
\include{chapters/introduction.tex} % 章ごとにファイルを分割
\include{chapters/theory.tex}
\include{chapters/experiments.tex}
% --- 後付 ---
\backmatter
\include{backmatter/appendix_a.tex} % 付録を別のファイルに
\include{backmatter/appendix_b.tex}
\include{backmatter/references.tex} % 参考文献を別のファイルに
\end{document}
frontmatter/acknowledgements.texの例
\chapter*{謝辞}
\addcontentsline{toc}{chapter}{謝辞}
\lipsum[1]
chapters/introduction.texの例
\chapter{はじめに}
\lipsum[3-4]
\section{背景}
\lipsum[5]
ポイント:
- この方法は、大規模なプロジェクトで複数の著者が分担して執筆する場合や、文書の管理を体系的に行いたい場合に非常に有効です。
\include{ファイル名}
は、指定したファイルを読み込み、そのファイルの前後で\clearpage
を実行します。これは、各章を新しいページから始めたい場合に特に便利です。また、\includeonly{}
コマンドと組み合わせて、特定のファイルだけをコンパイルすることも可能です。\input{ファイル名}
は、指定したファイルのコンテンツを現在の位置に「コピー&ペースト」します。ページの強制改ページは行いません。
KOMA-Scriptクラスの使用(より柔軟な代替)
KOMA-Script
バンドル(scrartcl
, scrreprt
, scrbook
など)は、標準のbook
, report
, article
クラスよりも高いカスタマイズ性を提供します。これらのクラスは、\frontmatter
などの標準コマンドをサポートするだけでなく、章やセクションの見た目、ページスタイルなどをより詳細に制御するための追加コマンドを提供します。
KOMA-Script
の\setkomafont
や\addchap
、\addsec
などのコマンドを使えば、\frontmatter
のような挙動をカスタマイズしたり、アスタリスク付きの章やセクションの見た目を変更したりできます。
例 (KOMA-Script)
\documentclass{scrbook} % KOMA-Scriptのbookクラス
\usepackage{lipsum}
\usepackage[automark,headsepline]{scrlayer-scrpage} % ヘッダー/フッターのカスタマイズ用
\title{KOMA-Scriptを使った本}
\author{山田 太郎}
\date{\today}
\begin{document}
\frontmatter % KOMA-Scriptも\frontmatterをサポート
\maketitle
\tableofcontents
% KOMA-Scriptの\addchapは、番号なしの章を作成し、目次にも自動で追加される
\addchap{謝辞}
\lipsum[1]
\addchap{要旨}
\lipsum[2]
\mainmatter
\chapter{はじめに}
\lipsum[3-4]
\backmatter
\appendix % KOMA-Scriptも\appendixをサポート
\chapter{付録A:データセット}
\lipsum[12]
\end{document}
ポイント:
KOMA-Script
は、タイトルのフォーマット、ページスタイル、章の開始ページなど、文書のあらゆる側面を細かく設定するための多くのオプションを提供します。KOMA-Script
の\addchap
や\addsec
は、番号なしの章やセクションを作成し、自動的に目次にも追加してくれます。これは、標準クラスの\chapter*{}
と\addcontentsline
の組み合わせを簡略化したものと考えることができます。
- 標準機能では物足りない、より柔軟なカスタマイズが必要:
KOMA-Script
クラスを検討してください。より高度な設定が可能になり、独自の要件に合わせた文書を作成できます。 - 大規模な文書で構造化したい:
book
またはreport
クラスを使用し、\frontmatter
,\mainmatter
,\backmatter
を使うのが最も標準的で推奨される方法です。さらに、\include
や\input
でファイルを分割すると管理が楽になります。 article
クラスでシンプルな文書:\frontmatter
などが不要な場合、手動で\pagenumbering
と\section*
、\addcontentsline
を使うのが最もシンプルです。