Next: , Previous: Defining Macros, Up: Defining New Texinfo Commands


18.2 マクロの呼び出し

マクロの定義後(前のセクションを参照してください),以下のようにドキュメン トで使用(呼び出し(invoke))可能です.

     @macroname {arg1, arg2, ...}

そして,結果はその場所にmacroname本体を入力したかのようになります. 例えば以下のようにします.

     @macro foo {p, q}
     Together: \p\ & \q\.
     @end macro
     @foo{a, b}

以下を生成します.

     Together: a & b.

このため,引数とパラメータはカンマで分けられ,カッコで範囲を制限します. カンマの後(前は違います)のあらゆる空白は無視されます.マクロが引数を取ら ない場合でもカッコは呼び出しで(定義では違います)要求され,他の全ての Texinfoコマンドとの一貫性を保ちます.

     @macro argless {}
     
     ここに引数はありません.
     @end macro
     @argless{}

以下を生成します.

     
     ここに引数はありません.

カンマ,カッコ,またはバックスラッシュを引数に挿入するため,以下のように バックスラッシュを前置します.

     @macname {\\\{\}\,}

それは,引数‘\{},’をmacnameに渡します(ほとんど確実にエラー を生成します).しかし,カッコ内のカンマはバックスラッシュでエスケープさ れていても.TeXで問題になるでしょう.

マクロが単一の引数を取るように定義されていて,カッコ無しで呼び出された場 合,マクロ名の後の行の残り全体は引数として供給されます.例えば,以下のよ うになります.

     @macro bar {p}
     Twice: \p\ & \p\.
     @end macro
     @bar aah

以下を生成します.

     Twice: aah & aah.

マクロが単一の引数を取るように定義されていて,カッコ付で呼び出された場合, カンマにかかわらずカッコ付のテキストは引数として渡されます.例えば以下の ようになります.

     @macro bar {p}
     Twice: \p\ & \p\.
     @end macro
     @bar{a,b}

以下を生成します.

     Twice: a,b & a,b.