つれづれなる備忘録

日々の発見をあるがままに綴る

Texによる文書作成9 ~ マクロの利用

 今回はLaTeX文書でのマクロの作成方法やマクロの利用例について紹介したい。

1. マクロの作成

 定義されていない記号や文中の強調する上で複数の処理を行う場合など、マクロにより新しく定義したコマンドを用いることで楽に処理をすることができる。 マクロの作成は引数がある場合とない場合で書式が異なるがプリアンブル領域で\newcommand{新しいコマンド}{処理内容}として記述する。

2. 引数なしのコマンド

 新しい記号を表示するなど引数がないコマンドは\newcommand{新しいコマンド}{処理内容}とする。 例として温度の単位である℃は直接出力するコマンドがなく、$^{\circ}$Cで代用している。そこでこれをコマンド処理できるようにするには、プリアンブルで

\newcommand{\degC}{$^{\circ}$C}

と記述する。文中で\degCとすることで$^{\circ}$Cを実行してくれる。 ほかには、数式モード中は特にしてしない限りイタリックで出力するが、例えば微分記号dはローマンにしておきたい場合(実際には些細な違いなので気にせずにイタリックのままにすることも多い)、

\newcommand{\dfd}{\mathrm{d}}

数式モード中に\dfdとするとローマン体のdが出力できる。

\begin{eqnarray}
& &\frac{dx}{dt}\quad (italic) \\
& &\frac{\dfd x}{\dfd t}\quad (roman)
\end{eqnarray}

"微分記号dの比較"
微分記号dの比較

3. 引数ありのコマンド

 引数がある場合のコマンドは\newcommand{新しいコマンド}[引数の数]{処理内容}と記述する。引数は#1,#2,…,#9と9つまで設定できる。引数ありのコマンドとしては、数式だけでなく文中の文字を修飾するために使用することもできる。文中の強調を赤文字のイタリックし指定したい場合は

\usepackage{color}
\newcommand{\emp}[1]{{\color{red}\it{#1}}}

文字色を変更するためにcolorパッケージをインクルードする必要があるため\usepackage{color}としておく。引数を1としてイタリック体にするところが\it{#1}となる。

\newcommand{\emp}[1]{{\color{red}\it{#1}}}

文中で\emp{test}などと使用するとtestのように表示される。

引数が2つある例としては組み合わせ記号に関しても、独自の記号がないので頻繁に使用する場合はマクロで定義しておくと便利だ。

\newcommand{\comb}[2]{{}_{#1} \mathrm{C}_{#2}}

引数が2つあるので引数の数は[2]として引数は#1#2を用いる。使用時は\comb{n}{k}にように用いる。 引数3つの場合の例としてクリストッフェル記号を生成するコマンドを以下のように作成した。

\newcommand{\christt}[3]{\Gamma_{#1 #2}^{#3}}

使用時は\christt{i}{j}{t}のように用いる。

なお基本的に数式モード中で用いる場合は定義中の$ $はなしにして、文中に挿入する場合はインラインモード$\newcommand$のように使用するが、温度の記号にように基本的に文中での使用をメインにする場合は、数式モードで使用するコマンドは$^{\circ}$のようにコマンド定義に含めておく。

3. マクロ実行例

 今回紹介したマクロの定義と実行例をまとめて示す。

\documentclass{jsarticle}

\usepackage{color}
\usepackage[dvipdfmx]{graphicx}

\newcommand{\degC}{$^{\circ}$C}
\newcommand{\dfd}{\mathrm{d}}
\newcommand{\emp}[1]{{\color{red}\it{#1}}}
\newcommand{\comb}[2]{{}_{#1} \mathrm{C}_{#2}}
\newcommand{\christt}[3]{\Gamma_{#1 #2}^{#3}}

\begin{document}

温度の単位はマクロで生成T=10\degC \par
微分記号dをローマン体に変更するマクロ\verb|\dfd|
\begin{eqnarray}
& &\frac{dx}{dt}\quad (italic) \\
& &\frac{\dfd x}{\dfd t}\quad (roman)
\end{eqnarray}

強調する場合、赤イタリックで\emp{test} \par
マクロで組み合わせ記号
\begin{equation}
\comb{n}{k} = \frac{n!}{k! (n-k)!}
\end{equation}
クリストッフェル記号は$ \christt{i}{j}{t} $

\end{document}

"マクロの定義と実行例"
マクロの定義と実行例

4. まとめ

  今回はLaTeX文書でのマクロの作成方法やマクロの利用例について紹介した。よく使われる記号や処理に関してはパッケージを導入するという手もあるが、1つ、2つであればマクロを作成した方が便利なことが多い。