マクロ(命令を自作する)
命令を自作して、効率よく文書を作成することができます。
次のパッケージを利用します。
\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の有効範囲が波かっこ内のみであり、外部では未定義だとみなされるためです。