表記を正確に保つマクロ

newcommand、NewDocumentCommand、共有マクロ ファイル。

表記を正直に保つマクロ

どの論文にも、実数、期待値演算子、適切なサイズのバーを含む絶対値などの繰り返しの表記があります。 40 か所に \mathbb{R} と入力し、後でアドバイザーが \mathbf{R} を好む場合、40 箇所編集する必要があり、1 つを見逃すことになります。マクロは、その表記を、一度定義された単一の名前付きコマンドに変換します。定義を変更すると、ドキュメント全体が以下のようになります。これが、表記を正直に保つ方法です。つまり、ソースがそれ自体と同期しなくなることがありません。

newcommand によるコマンドの定義

\newcommand{\R}{\mathbb{R}}
\newcommand{\E}[1]{\mathbb{E}\left[#1\right]}
\newcommand{\abs}[1]{\left\lvert #1 \right\rvert}

最初の定義は最も単純な種類です。\R は純粋な省略表現になり、どこにでも \R と入力すると \mathbb{R} が生成されます。

2 番目の形式は引数を受け取ります。名前の後の [1] は、\E が 1 つの引数を受け入れることを宣言し、#1 はその引数が展開内でどこに到達するかをマークします。したがって、\E{X}\mathbb{E}\left[X\right] になります。この定義は簡潔さ以上のものをもたらします。\left[\right] のペアは、内側にあるものに合わせて括弧を拡大します。そのため、\E{\frac{X}{n}} は自動的に長い括弧を取得します。 \abs マクロは、絶対値の正しい縦棒のペアである \lvert\rvert に対しても同じことを行います。最大 9 つの引数を宣言し、それらを #1 から #9 として参照できます。

コマンドがすでに存在する場合、\newcommand はその再定義を拒否し、エラーで停止します。これにより、何も言わずに何かを壊すことがなくなります。既存のコマンドを意図的に置き換えるには、代わりに \renewcommand を使用します。

最新のインターフェース

現在の LaTeX には、より豊富な定義コマンドも付属しています。

\NewDocumentCommand{\citepair}{mm}{\cite{#1}, \cite{#2}}

\NewDocumentCommand は、カウントの代わりに引数指定文字列を使用します。ここで、mm は 2 つの必須引数を意味するため、\citepair{knuth84}{lamport94} は両方のキーを引用します。この仕様言語は \newcommand よりもさらに進んでおり、 o は角括弧内でオプションの引数を宣言し、 s はスター型のバリアントを検出し、 O{default} はオプションの引数にデフォルト値を与えます。単純な置換以外の場合は、このインターフェイスにアクセスしてください。

定義を共有する

macros.sty を章全体で共有してください。定義をその 1 つのファイルに入れ、各ドキュメントから \usepackage{macros} を使用してロードすると、論文の各章、さらにスライドと紙のバージョンのすべてが表記法に一致します。共同作業者が参加すると、テキストからリバース エンジニアリングするのではなく、1 つの短いファイルを読んで規約を学習します。これは、マルチファイル設定 と自然に組み合わされます。

命名に関するヒント: マクロには、「\bigbars」のような見た目に基づいた名前ではなく、「\abs」や「\norm」のような意味のある名前を付けてください。名前は表記の意味を示す必要があるため、定義の見た目は自由に変更できます。また、2 回使用するものに対してマクロを定義することは避けてください。効果は3回目の使用あたりから始まります。

ランタイム に戻る