次: Typed Variables, 前: Variables Commands, 上: Def Cmds in Detail
@deftypefnコマンドとその変形は,CやC++のような変数の型と関数を宣
言する必要がある言語の関数を記述するためのものです.
@deftypefn category data-type name arguments...@deftypefnコマンドは,関数と,引数を取るものや型のある類似の構成
要素の定義コマンドです.@deftypefnは行の最初に書き,同じ行に記述
される構成要素のカテゴリ,戻り値の型,この特定の構成要素の名前と,存在す
る場合引数が続きます.
例えば,以下のようにします.
@deftypefn {Library Function} int foobar
(int @var{foo}, float @var{bar})
...
@end deftypefn
(“...”の前のテキストは,二行で表示され,Texinfoファイルでは実際に は単一行です.)Infoでは以下を生成します.
-- Library Function: int foobar (int FOO, float BAR)
...
これは,foobarが“ライブラリ関数”で,それはintを返し,引
数はfoo(int)とbar(float)だということを意味しま
す.
@deftypefnで書いた引数名は,暗黙で@varにはなりません —
@deftypefnの引数の実際の名前は,データ型名とキーワードで通常はバ
ラバラなので,Texinfoは助けなしに見つけることができません.代わりに,
@varを引数名の周りに明示的に書く必要があります.上の例では,引数
名は`foo'と`bar'です.
@deftypefnのテンプレートは以下の通りです.
@deftypefn category data-type name arguments ...
body-of-description
@end deftypefn
categoryやdata typeが1単語以上の場合,単一の引数にするためカッ コで囲む必要があることに注意してください.
Adaのようなパッケージ言語のプロシージャを記述する場合,前の段落で記述さ
れている慣習と幾分反対の方法として,@deftypefnの使用を手法として
考えるかもしれません.
例えば以下のようにします.
@deftypefn stacks private push
(@var{s}:in out stack;
@var{n}:in integer)
...
@end deftypefn
(@deftypefnの引数は,三行に分割されていますが,実際のTexinfoファ
イルでは単一行になります.)
この例では,プロシージャは`プロシージャ'と分類するのではなくパッケージ
stacksに属するものとして分類され,そのデータ型はprivateと
して記述されます.(プロシージャの名前はpushで,その引数はs
とnです.)
@deftypefnはnameに対し関数索引に項目を作成します.
@deftypefun data-type name arguments...@deftypefunコマンドは,型のある言語の関数のための特別な定義コマ
ンドです.そのコマンドは`@deftypefn Function ...'と同じです.
このため以下のようにします.
@deftypefun int foobar (int @var{foo}, float @var{bar})
...
@end deftypefun
Infoでは以下を生成します.
-- Function: int foobar (int FOO, float BAR)
...
テンプレートは以下の通りです.
@deftypefun type name arguments...
body-of-description
@end deftypefun
@deftypefunはnameに対し関数索引に項目を作成します.