要約
この回では、自前の命令と環境を定義し、それらを再利用できるプリアンブルにまとめる方法を学ぶ。見た目をくり返し書くのではなく、テキストの機能に名前をつけるほうがよい理由を説明し、必須引数をもつ \newcommand と既定値つきのオプション引数をもつ \newcommand、\renewcommand と \providecommand、そして名前がすでに存在するときに生じるエラーを紹介する。LaTeX のカーネルに組み込まれた現代的なインターフェースである \NewDocumentCommand を簡単に示し、引数のない命令の後で失われる空白を分析する。\newenvironment で環境を、開始と終了のコードとともに定義する。最後に、プリアンブルを独立したファイル、すなわち \input で読み込むファイルか .sty パッケージに移す方法を、パッケージの読み込み順と全体の簡潔さに注意しながら学ぶ。
学習目標
- 自前の命令を定義する根拠を、入力の手間の節約ではなく、それが名指す機能に求める。
- 必須引数をもつ命令とオプション引数をもつ命令を定義し、それぞれの使い方での結果を予測する。
\newcommand、\renewcommand、\providecommandを区別し、使用済みの名前が引き起こすエラーを解釈する。- 引数のない命令の後で空白が失われることを予見し、それを避ける。
- 引数をもつ環境を定義し、定義のどの部分が引数を使えるかを見分ける。
- 自前のプリアンブルを別ファイルまたはパッケージにまとめ、どちらが適切かを判断し、パッケージの読み込み順を整える。
なぜ自前の命令を定義するのか
意味のある書式の回では中心となる考えを見た。書式の指定はどれもテキストの何らかの機能に対応すべきであり、自前の命令はその機能に名前をつけ、プリアンブルに一度だけ書かれたその定義が見た目を決める。この回では、その仕組みを詳しく学ぶ。その前に、何が得られるのかをはっきりさせておこう。命令を定義する価値があるときとないときは、それによって決まるからである。
得られるものは三つある。第一は意味である。\gainen{存在者} はその語が何であるかを述べるが、\textbf{存在者} はどう見えるかしか述べない。ソースは組版上の指示の羅列ではなく、注釈のついたテキストとして読めるようになる。第二は一貫性である。ベクトルをいつも \vect で書いていれば、不注意で一部が太字に、一部が矢印つきになるということは起こりえない。第三は、規約を一か所で変更できることである。審査委員会や学術誌や指導教員が別の記法を求めたら、プリアンブルの一行を書き換えるだけで、変更は文書全体に及ぶ。ここから基準が導かれる。認識できる機能を果たし、くり返し現れるものは自前の命令に値する。その場かぎりの調整は、その場所に書けばよく、くり返されないので命令には値しない。
コンテンツを読み込んでいます…