前: alias, 上: Defining New Texinfo Commands


18.5 `definfoenclose': 強調のカスタマイズ

@definfoencloseコマンドは,Infoに対しては使用しTeXに対しては 使用しない強調コマンドの定義として使用してもかまいません. @definfoencloseで定義されたコマンドは,前後のテキストの文字列内 の,そのコマンドで囲んだテキストに印を付けます.Info出力に似た制御を行な うためこれを使用することも可能です.

おそらく,Infoに対し@definfoencloseでコマンドを定義する場合, texinfo.textexinfo.cnf,またはドキュメントの `@iftex'の中でTeXに対し対応するコマンドを作成することになるでしょ う.

@definfoencloseコマンドを一行で書き,カンマで区切られた三つの引 数を続けてください.@definfoencloseの最初の引数は(@がな い) @-コマンド名です.二番目の引数はInfoを開始するデリミタ文字列です. そして,三番目の引数はInfoを終了するデリミタ文字列です.デリミタ文字列は スペースを含めてもかまいません.開始と終了のデリミタは必須ではありません. 開始デリミタが不要で,終了デリミタが欲しい場合,コマンド名で同じ行に二つ のカンマを続ける必要があります.そうしない場合,Info書式化コマンドは,当 然,終了デリミタ文字列を開始デリミタ文字列だと誤って解釈します.

(@emph@strong@t,または@iのように)前 もって定義されているマクロ名で@definfoencloseする場合,囲まれた 定義は組込み定義に優先されます.

囲みコマンドはカッコ内の一つの引数を取り,以下のように定義されます.これ は,新しいマークアップコマンドを意図しています(see Marking Text).

例えば,以下のように書くことが可能です.

     @definfoenclose phoo,//,\\

@phooの引数の前に`//',後ろに`\\'を挿入するInfo書式化コマンドと して@phooを定義するために,Texinfoファイルの最初の方に書きます. そして,Infoで強調された`//bar\\'が必要な場所ならどこでも, @phoo{bar}を書くことが可能です.

また,TeX書式化で以下のように書くことも可能でしょう.

     @iftex
     @global@let@phoo=@i
     @end iftex

@phooをTeXに@phooの引数をイタリック対で植字させるコマ ンドとして@phooを定義します.

それぞれの定義は独自のフォーマッタに適用さます.一つはTeXに対し,もう1 つはtexinfo-format-buffertexinfo-format-regionに対するも のです.@definfoencloseコマンドは`@ifinfo'の中に書く必要は ありませんが,生のTeXコマンドは`@iftex'の中に書く必要があります.

もう一つの例です.以下のように書きます.

     @definfoenclose headword, , :

@headwordの引数の前には何も挿入せず,後にコロンを挿入するInfo書 式化コマンドとして@headwordを定義するために,ファイルの最初の方 に書いてください.

`@definfoenclose'定義は,直接的または間接的に,再帰的してはいけま せん.