この例では,コマンド名の周りを枠で囲むcommandという 新しい環境と,コマンド名を出力しそのコマンド名を 索引の見出しとして書き出す新しいコマンド \ciが 使用されています. 実際に,この巻末にある索引で \dumコマンドを 探してみて下さい. そうすれば \dumという項目を見つけることができ, この \dumコマンドについて説明している全てのページ数が 書かれていることがわかるでしょう.
コマンドを枠の中に入れて出力するのがイヤになれば, 違った出力となるようにcommand環境の定義を 変えることが簡単にできます. これは,コマンドを枠で囲うようにLATEXコマンドを 直接使用して出力を行った箇所を文書中から全て探し出し, いちいち変更するよりもはるかに簡単に行うことができるのです.
基本的に,このコマンドは二つの引数を取ります.
一つは作ろうとしているコマンド名nameであり,
もう一つはそのコマンドの定義を書き込むdefinitionです.
ブラケット(角括弧,[ ]
)の中に書かれる引数
numはオプション引数であり,この新しいコマンドが取る
引数の数(9までの数が可能)を指定します.
このオプションが指定されていなければ,
引数は0すなわち引数がないことを表します.
以下の二つの例は,コマンド定義の方法とその使い方を 示しています. 最初の例は,\tnssという名前の新しいコマンドを 定義しています. これは,この冊子のオリジナル英文の表題である ``The Not So Short Introduction to LATEX2e''という文字列を 定義したものです. このようなコマンドは,文書中に何度も何度も繰り返し 同じ文字列を書かなければならないときに使用すると便利でしょう.
次の例は,引数を一つ取る新しいコマンドの定義を
示したものです.
#1
の文字列の部分は,コマンドを使用する際に
指定する引数に置き換えられます.
もし二つ以上の引数を使用したければ,
#2
などというように書けばよいのです.
LATEXでは,すでに存在しているコマンドと
同じ名前を持つ新しいコマンドを作ることはできません.
そこで既存のコマンドを再定義する時のために,
特別な \renewcomanndコマンドがあります.
このコマンドは,\newcommand
コマンドと同じ方法で
使用することができます.
また,\providecommandコマンドを使いたくなることが あるかもしれません. このコマンドも \newcommandと同じなのですが, すでに同名のコマンドが存在しているときには, LATEX2eはその定義を無視して処理を続けるところが異なります.
LATEXコマンドの直後のホワイトスペースについては, 注意すべき点がいくつかあります. 詳しくは,ページを参照して下さい.
\newcommand
コマンドと同じように,
必要な環境を作り出すコマンドとして \newenvironmentが
あります.
\newenvironmentコマンドは,以下のようにして使用します.
\newcommand
コマンドと同様に,
\newenvironmentもオプション引数が指定できます.
引数beforeには,環境内の文章を処理する前に行う
内容を定義します.
引数afterには,
\end{
name}
コマンドが現れたときに行う
処理内容を定義します.
以下に \newenvironmentコマンドの使用例を示します.
引数numは,\newcommand
コマンドと同じように
使用します.
LATEXでは,すでに存在している環境と同じ名前の環境は
定義できません.
すでに存在している環境を変更したいときには,
\renewenvironmentコマンドを使用します.
定義の仕方は,\newenvironmentコマンドと同じです.
ここで示した例で使用しているコマンドについては, 後ほど説明します. \ruleコマンドについてはページ, \stretchコマンドについてはページ, \hspaceコマンドに関してはページを 参照して下さい.
パッケージの作成は,基本的に文書のプリアンブルに 書いてあった定義内容を,拡張子.styを持つファイルに コピーすればよいだけです. 作成するパッケージの最初には,以下のコマンドを 書いておきます.
\ProvidesPackage
コマンドは,
LATEXにパッケージ名を伝え,パッケージを二度
読み込もうとした際に気の利いたエラーメッセージを
出力してくれます.
図7.1は,これまでに示した例の中で
定義したコマンドを含んだパッケージの例を示しています.