コマンドか環境か?

マクロは引数を取ります。環境は領域をラップします。

コマンドか環境か?

LaTeX でプレーン テキスト以外に入力するものはすべて、コマンドまたは環境という 2 つの形式のいずれかになります。最初のエラー メッセージが表示されるまでは、この区別は学術的に聞こえます。 LaTeX に関する苦情の半分は、一方が他方に属する場所で使用されていることに関するものです。どの図形を見ているのかを理解することを学ぶと、ドキュメントとエラーの両方が読みやすくなります。

コマンド

\newcommand{\foo}{bar}
\foo
\textbf{argument}

コマンドはバックスラッシュの後に名前が続き、その文字が出現した時点で置換を実行します。 \textbf{argument} は 1 つの引数を中括弧で囲み、太字でタイプセットします。効果は中括弧で始まり中括弧で終わります。コマンドは複数の中括弧引数を取ることができ、\documentclass[11pt]{article} のように、コマンドの前に角括弧で囲まれたオプションの引数も受け入れることができます。

最初の 2 行は、コマンドが作成できるものであることを示しています。 \newcommand{\foo}{bar} は、\foo という名前の新しいコマンドを定義し、その展開はテキスト bar になります。それ以降、どこにでも \foo を入力すると bar が生成されます。これは カスタム マクロ の背後にあるメカニズムであり、パッケージの動作方法でもあります。パッケージは主にコマンド定義のファイルです。

早い段階で知っておく価値がある癖が 1 つあります。\LaTeX のようなコマンドはその後のスペースを飲み込むので、\LaTeX is fun は単語をまとめて出力します。スペースを確保するために「\LaTeX{} は楽しいです」または「\LaTeX\ です」と書いてください。

環境

\begin{center}
Centered block
\end{center}

環境は、一致する \begin{...}\end{...} のペアの間のドキュメントの領域をラップし、その動作を内部のすべてに適用します。ここで、「center」環境はブロックの各行を中央に配置します。環境は、開いたときと逆の順序で閉じることを条件として入れ子にすることができ、引数も受け取ることができます。 \begin{tabular}{ll} はテーブルを開き、それに列の仕様を渡します。

環境はバランスをとる必要があるため、独特の方法で失敗します。 \begin{itemize} completed by \end{document} などのエラーは、環境が開かれていて閉じられていないことを意味します。欠落している \end を見つけます。エラー名の行を見つめないでください。

経験則

明確な開始と終了を持つ領域をラップする場合、それはおそらく環境です。ちょっとした交代や切り替えであれば、それは命令だ。 2 つの形状は重なっています。すべての環境 foo は内部でコマンド ペア \foo\endfoo として実装されています。よく遭遇するコマンドと環境のツアーについては、すべてのコマンドの説明 を参照するか、ライブ プレイグラウンド で両方のシェイプを試してください。

Commands vs environmentsOptional practice quiz5 questions

A short check on what this lesson covers. Wrong answers show the right one. Choices are shuffled each attempt. You can retry as often as you like.

机上リファレンス に戻る