LaTeX のコマンドと環境を使う
コマンドの引数、オプション設定、begin–end 環境の構文を迷わず読み取れるようにします。
このページの内容
LaTeX の文法が見えるようになると、ソースのデバッグは格段に容易になります。コマンドは処理を実行し、引数は内容を渡します。環境は一定の範囲に同じ規則を適用し、パッケージは基本形式にない定義を追加します。
コマンドを左から右へ読む#
ほとんどのコマンドはバックスラッシュで始まります。必須引数には波括弧を、オプション設定には角括弧を使います。
\section{Method}には必須引数が 1 つあります。\documentclass[11pt]{article}では、必須のクラス名の前にオプション設定を追加しています。\includegraphics[width=0.7\linewidth]{figures/result.pdf}では、キーと値からなるオプションと必須のファイルパスを使っています。%からコメントが始まり、LaTeX はそのソース行の残りを無視します。
オプションに意味があるのは、そのコマンドまたはパッケージで定義されている場合だけです。波括弧と角括弧を入れ替えても、引数をオプションにはできません。
スコープと環境の対応を確認する#
波括弧はスコープも限定します。{\small calibration data} では、文字サイズの変更は閉じ波括弧で終わります。環境は \begin{name} で始まり、必ず同じ \end{name} で終わらせます。
\documentclass[11pt]{article}
\usepackage[margin=30mm]{geometry} % page layout package
\newcommand{\dataset}{\textsc{RiverFlow}}
\begin{document}
We evaluated the model on the \dataset{} data set.
\begin{quote}
Reproducible analysis begins with a clearly defined data set.
\end{quote}
The full text is normal size; {\small this qualification is smaller}.
\end{document}出力には、30 mm の余白、再利用できるスモールキャピタルのデータセット名、字下げされた引用、1 つの句だけに限定された文字サイズの変更が反映されます。文書全体で使う \newcommand の定義は、使用前に利用できるようプリアンブルにまとめます。これはソースを整理するための慣習で、すべてのコマンド定義をそこに置かなければならないという文法上の決まりではありません。\dataset{} の空の波括弧は、後続の空白より前でコマンドを終わらせます。これがないと、TeX がソース上の空白を取り込む場合があります。
壊れた構文の形を見分ける#
LaTeX は欠けている境界を探し続けるため、次のエラーは実際の誤りより後の行で表面化することがよくあります。
| 誤ったソース | 正しいソース | 理由 |
|---|---|---|
\textbf{Key result |
\textbf{Key result} |
必須引数には閉じ波括弧が必要です。 |
\begin{quote} ... \end{quotation} |
\begin{quote} ... \end{quote} |
環境名は完全に一致させる必要があります。 |
\includegraphics{width=5cm}[plot.pdf] |
\includegraphics[width=5cm]{plot.pdf} |
オプションは必須引数より前に置きます。 |
50% of samples |
50\% of samples |
エスケープされていない % は、その行の残りをコメントにします。 |
「Undefined control sequence」は通常、コマンドの綴りが間違っている、必要なパッケージが読み込まれていない、または定義の位置が遅すぎることを示します。手当たり次第にパッケージを追加せず、まずコマンドを特定してから、未定義コマンドのガイドを参照してください。
演習として、プリアンブルに \newcommand{\species}{\textit{E. coli}} を追加し、例の中で \species{} を 2 回使ってください。コンパイルして、両方の箇所が一緒に変わることを確認します。その後、文書構造へ進んでください。
