マクロ(命令を自作する)

命令を自作して、効率よく文書を作成することができます。

次のパッケージを利用します。

\usepackage{amsmath}
\usepackage{amssymb}

命令を定義する(def)

使用法

\def\命令の名前{定義内容}

例.

\def\C{\mathbb{C}}
\[z \in \C\]

実行結果.

\[z \in \C \]

注意. def を使用すると、定義済みの命令であっても上書きされるだけでエラーは出ません。

新しい命令を作る(newcommand)

defとは異なり、すでにある命令を上書きしようとするとエラーがでます。使用法も少しだけ違います。

基本的な使用法

\newcommand{\命令の名前}{定義内容}

例.

\newcommand{\mtc}{\mathbb{C}}
\[z \in \mtc \]

実行結果.

\[z \in \mathbb{C}\]

引数があるケース

使用法

\newcommand{\命令の名前}[引数の個数]{定義内容}

例.

\newcommand{\mymod}[3]{#1 \equiv #2 \mod #3}
\[\mymod{5}{2}{3}\]

実行結果.

\[5 \equiv 2 \mod 3\]

命令名mymodのあとの[3]は引数の個数です。それに続く波かっこは「定義本体」で、引数は#1,#2,#3のように 「#番号」の形で利用します。

既存の定義を上書きする(renewcommand)

すでに定義がある場合はnewcommandは使用できません。そのようなときはrenewcommandを使用します。

defで定義する命令は、すでに同名の定義があってもなくても使用できますが、renewcommandはすでに定義 されている命令にしか使用できません。

例(newcommandで定義した命令をすぐにrenewcommandで書きかえる.)

\newcommand{\mymod}[3]{#1 \equiv #2 \mod #3}
\renewcommand{\mymod}[3]{#1 \equiv #2 \pmod #3}
\[\mymod{5}{2}{3}\]

実行結果.

\[5 \equiv 2 \pmod 3\]

Note. pmodは丸カッコつきで表示するものです。

ローカルに定義する

マクロを波かっこ{}でくくると、そのマクロは波かっこ内でローカルに定義されます。 ローカル定義は、「今すこしだけ手軽に使用したい」というときに便利です。

例(最初のnewcommandだけを{}に入れる)

{
\newcommand{\mymod}[3]{#1 \equiv #2 \mod #3}
\[\mymod{5}{2}{3}\]
}
\newcommand{\mymod}[3]{#1 \equiv #2 \pmod #3}
\[\mymod{5}{2}{3}\]

実行結果.

\[5 \equiv 2 \mod 3\] \[5 \equiv 2 \pmod 3\]

もし最初のnewcommandを{}に入れないと2度目のnewcommandは、すでにmymodが定義されているため、 エラーが起きます。 上の例でエラーが起きないのは、最初のmymodの有効範囲が波かっこ内のみであり、外部では未定義だとみなされるためです。