Doxygen latest release v1.8.11 - last update Mon Oct 25 2021

目次

特殊コマンド

はじめに

ドキュメント内のすべてのコマンドは、バックスラッシュ (\)、またはアットマーク (@) で始まります。 お望みであれば、以下のバックスラッシュで始まるすべてのコマンドを、それに対応したアットマークで始まるものに置き換えることができます。

いくつかのコマンドは、1つまたはそれ以上の引数を取ります。 各引数には、ある決まった範囲があります:

  • <山> 括弧が使われている場合、引数は 1単語からなります。
  • (丸) 括弧が使われている場合、引数は、コマンドのある場所からその行の終わりまでとなります。
  • {波} 括弧が使われている場合、引数は、次のパラグラフの頭までとなります。 パラグラフは、空行かセクション指示子で区切られます。

上記の識別子のほかに [角] 括弧が使われている場合、引数は省略可能です。

以下は、全コマンドをアルファベット順に整列したリストです (説明への参照付き)。

以下のサブセクションでは、doxygen が認識する全コマンドのリストを説明します。 コマンドとして認識しないものは、通常のテキストとして扱います。

--- 構造指示子 (Structural indicators) ---

\addtogroup <名前> [(タイトル)]

\defgroup と同様グループを定義しますが、それとは対照的に、 同じ <名前> を2回以上使用しても警告は発せられず、 マージされたドキュメントと、コマンドの引数として最初に見つかったタイトルを持つ 1つのグループが作成されます。

タイトルはオプションです。そこで、このコマンドを使うと、 以下のように @{@} を用いて、 既存のグループにいくつかの要素を追加することもできます。

  /*! \addtogroup mygrp
   *  グループ `mygrp' に追加するドキュメント
   *  @{
   */

  /*!
   *  関数
   */
  void func1()
  {
  }

  /*! 他の関数 */
  void func2()
  {
  }

  /*! @} */

参照: ページ グループ化、セクション \defgroup\ingroup および \weakgroup


\callgraph

このコマンドが関数またはメソッドのコメント・ブロックに指定され、 HAVE_DOTYES ならば、(関数やメソッドの実装において、 他のドキュメント付けされた関数を呼び出していれば) 関数の呼び出しグラフを生成します。 呼び出しグラフは、CALL_GRAPH の値に関わらず生成されます。

覚え書き
呼び出しグラフの完全性 (と正確性) は、doxygenの(完全でない)コード構文解析に依存します。

参照: セクション \callergraph


参照
section \callergraph, section \hidecallgraph, section \hidecallergraph and option CALL_GRAPH

\hidecallgraph

このコマンドを、関数やメソッドのコメントブロックに挿入すると、doxygenは呼び出し関係図を生成しません。呼び出し関係図は、CALL_GRAPHの値にかかわらず、生成されません。

覚え書き
呼び出し関係図の完全性(及び正確性)は、コード解析機の性能に依存します。
参照
section \callergraph, section \callgraph, section \hidecallergraph and option CALL_GRAPH

\callergraph

このコマンドが関数またはメソッドのコメント・ブロックに指定され、 HAVE_DOTYES ならば、(関数やメソッドの実装において、 他のドキュメント付けされた関数を呼び出していれば) 関数の呼び出し元グラフを生成します。 呼び出し元グラフは、CALLER_GRAPH の値に関わらず生成されます。

覚え書き
呼び出しグラフの完全性 (と正確性) は、doxygenの(完全でない)コード構文解析に依存します。
参照
section \callgraph, section \hidecallgraph, section \hidecallergraph and option CALLER_GRAPH

\hidecallergraph

このコマンドを、関数やメソッドのコメントブロックに挿入すると、doxygenは呼び出し元グラフを生成しません。呼び出し元グラフは、CALLER_GRAPHの値にかかわらず、生成されません。

覚え書き
呼び出し元グラフの完全性(及び正確性)は、コード解析機の性能に依存します。
参照
section \callergraph, section \callgraph, section \hidecallgraph and option CALLER_GRAPH

\category <名前> [<ヘッダーファイル>] [<ヘッダー名>]

Objective-C 専用: コメント・ブロックがname <name>という クラスカテゴリーに対するドキュメントを保持していることを示します。 引数は \class コマンドと同じです。

参照: セクション \class


\class <名前> [<ヘッダーファイル>] [<ヘッダー名>]

<名前> というクラスのドキュメントがコメントブロックに含まれることを指示します。 オプション引数として、ヘッダーファイルとヘッダー名を指定することができます。 ヘッダーファイルが指定されると、その字句通りのコピーへのリンクが HTML ドキュメントに埋め込まれます。 <ヘッダー名> 引数を使用すれば、クラスのドキュメントで用いられているリンクの名前を、<ヘッダーファイル> 以外のもので上書きすることができます。 これは、インクルード名が、デフォルトのインクルードパス(<X11/X.h> など) 上にないような場合に役立ちます。 <ヘッダー名> 引数を使って、インクルード文の見え方を指定することもできます。 それには、名前の囲りに引用符か山括弧を付加します。名前だけの場合は山括弧を使います。後の2つの引数は、\headerfile コマンドでも指定できます。

例:
/* A dummy class */

class Test
{
};

/*! \class Test class.h "inc/class.h"
 *  \brief This is a test class.
 *
 * Some details about the Test class.
 */
ここ をクリックすると、これに対応する、doxygen で生成された HTML ドキュメントが開きます。

\def <名前>

コメント・ブロックが、#define マクロに対するドキュメントを保持していることを指示します。

例:
/*! \file define.h
    \brief testing defines
    
    This is to test the documentation of defines.
*/

/*!
  \def MAX(x,y)
  Computes the maximum of \a x and \a y.
*/

/*! 
   Computes the absolute value of its argument \a x.
*/
#define ABS(x) (((x)>0)?(x):-(x))
#define MAX(x,y) ((x)>(y)?(x):(y))
#define MIN(x,y) ((x)>(y)?(y):(x)) 
        /*!< Computes the minimum of \a x and \a y. */
ここ をクリックすると、これに対応する、doxygen で生成された HTML ドキュメントが開きます。

\defgroup <名前> (グループタイトル)

コメント・ブロックが、クラス、ファイル、または名前空間の グループ に対するドキュメントを保持していることを指示します。 これを使うと、クラス、ファイル、または名前空間をいくつかのカテゴリに分類した上で、それらのカテゴリにドキュメント付けをすることができます。 また、グループは、他のグループのメンバーとしても使うことができるので、 グループの階層を構築することができます。

<名前> 引数は、単一語の識別子でなければなりません。

参照: ページ グループ化、セクション \ingroup\addtogroup\weakgroup


\dir [<パス>]

ディレクトリについての記述がコメントブロック内にあることを示します。 引数"パス"には、ディレクトリ名と、プロジェクトで他のディレクトリと 区別のつくユニークなパスを指定してください。 STRIP_FROM_PATH は、フルパスのうち省略する部分を決定します。


\enum <名前>

<名前> という列挙型データに対するドキュメントがコメントブロックに含まれることを示します。 列挙型データがクラスのメンバーなのに、そのドキュメントブロックはクラス定義の外側にあるような場合は、クラスのスコープも指定する必要があります。 コメント・ブロックが列挙型データ宣言の直前にある場合は、\enum コメントを省略できます。

メモ:
名前のない列挙型データの型はドキュメント付けできませんが、値にはドキュメント付けできます。
例:
class Enum_Test
{
  public:
    enum TEnum { Val1, Val2 };

    /*! Another enum, with inline docs */
    enum AnotherEnum 
    { 
      V1, /*!< value 1 */
      V2  /*!< value 2 */
    };
};

/*! \class Enum_Test
 * The class description.
 */

/*! \enum Enum_Test::TEnum
 * A description of the enum type.
 */

/*! \var Enum_Test::TEnum Enum_Test::Val1
 * The description of the first enum value.
 */
ここ をクリックすると、これに対応する、doxygen で生成された HTML ドキュメントが開きます。

\example <ファイル名>

ソースコード例に対するドキュメントが、コメントブロックに含まれることを示します。 ソースファイルの名前は <ファイル名> です。 ファイルのテキストは、コメントブロックに含まれるドキュメントの直後に取り込まれます。 例のすべてがリスト化されます。 ソースコードから、解説つきのメンバーやクラスを見つけます。見つかればその名前はドキュメントでクロスリファレンスされます。 doxygen の設定ファイルの EXAMPLE_PATH タグを用いると、ソースファイルまたはディレクトリを指定することができます。

EXAMPLE_PATH タグによって指定された例ファイルの集合に対して、<ファイル名> だけでは一意にファイルを決定できない場合、それを解消するために、絶対パスの一部を含めることができます。

例として、2つ以上のソースファイルが必要な場合は、\include コマンドを使用することができます。

例:
/** A Example_Test class.
* More details about this class.
*/
class Example_Test
{
public:
/** An example member function.
* More details about this function.
*/
void example();
};
void Example_Test::example() {}
/** \example example_test.cpp
* This is an example of how to use the Example_Test class.
* More details about this example.
*/
ここで、実例ファイル example_test.cpp の内容は、以下のようなものです。
void main()
{
Example_Test t;
t.example();
}
ここ をクリックすると、これに対応する、doxygen で生成された HTML ドキュメントが開きます。

参照: セクション \include


\endinternal

このコマンドは、\internal コマンドで始まるドキュメント断片の終わりを示します。\internal\endinternal の間のテキストが出力されるのは、INTERNAL_DOCSYESのときだけです。


\extends [<名前>]

cmdextendsは、もともと継承関係の概念をサポートしないプログラミング言語(Cなど)の場合に使えます。

exampleディレクトリの manual.cを見れば、このコマンドの使い方がわかります。

ここ をクリックすると、これに対応する、doxygen で生成された HTML ドキュメントが開きます。

参照: セクション \implements とセクション \memberof


\file [<名前>]

<名前> というソースファイルまたはヘッダーファイルの解説がコメントブロックに 含まれることを示します。 ファイル名だけでは一意にならない場合、パス (の一部) を含んでも構いません。 ファイル名が省略された場合 (つまり、\file 以降行が空白の場合) は、\file コマンドを含むドキュメントブロックは、その記述場所に属します。

重要:
グローバルな関数、変数、typedef および enum の解説は、それが記述されたファイルもドキュメント化されている場合のみ出力されます。
例:
/** \file file.h
 * A brief file description.
 * A more elaborated file description.
 */

/**
 * A global integer value.
 * More details about this value.
 */
extern int globalValue;
ここ をクリックすると、これに対応する、doxygen で生成された HTML ドキュメントが開きます。
覚え書き
上記の例では、設定ファイルで JAVADOC_AUTOBRIEFYES にしています。

\fn (関数宣言)

関数(グローバルまたはクラスのメンバー)の解説がコメントブロックに含まれることを示します。 このコマンドは、コメントブロックが関数宣言・定義の前後に置かれていない場合のみ必要となります。

コメントブロックが関数宣言・定義の前に置かれているのであれば、 このコマンドは省略できます (冗長性を避けるためにもそうすべきです)。

\fn コマンドの後には、引数を含む完全な関数宣言を、1行で指定する必要があり、 (コマンドの) 引数は行末で終わります。

このコマンドは、\var, \typedef, \propertyと同等です。

警告
このコマンドは、必須の場合にだけ使ってください。 情報の重複によりエラーが起こりかねません。
例:
class Fn_Test
{
  public:
    const char *member(char,int) throw(std::out_of_range);
};

const char *Fn_Test::member(char c,int n) throw(std::out_of_range) {}

/*! \class Fn_Test
 * \brief Fn_Test class.
 *
 * Details about Fn_Test.
 */

/*! \fn const char *Fn_Test::member(char c,int n) 
 *  \brief A member function.
 *  \param c a character.
 *  \param n an integer.
 *  \exception std::out_of_range parameter is out of range.
 *  \return a character pointer.
 */
ここ をクリックすると、これに対応する、doxygen で生成された HTML ドキュメントが開きます。

参照: セクション \var\property\typedef


\headerfile <ヘッダファイル> [<ヘッダ名>]

このコマンドは、クラス、構造体、共用体のドキュメントが定義の前にある場合に使います。 このコマンドの引数は、\cmdclass の第2引数、第3引数と 同じです。 <ヘッダファイル>名は、アプリケーションがインクルードするファイルを指し、 クラス、構造体、共用体の定義を含むファイルです。 <ヘッダ名>引数は、クラスドキュメントで使っているリンクの名前を <ヘッダファイル>とは別の名前で上書きしたいときに使います。 デフォルトのインクルードパス(<X11/X.h>など)にインクルード名がない場合に 有効です。 また、<ヘッダ名>でインクルード文の見え方を指定することもできます。 これには、引用符や山括弧で名前を囲みます。 デフォルトで、名前だけしかない場合は山括弧を使います。

<ヘッダファイル>や<ヘッダ名>に二重引用符が使われると、現在のファイル(コマンドが見つかったファイル)が使われます。test.hというファイル内部で \headerfile コマンドでコメントブロックを作る場合、次の三つのコマンドは同等です。

  \headerfile test.h "test.h"
  \headerfile test.h ""
  \headerfile "" 

山括弧を得るには何も指定しなくていいのですが、明示するには以下のどれでも使えます。

  \headerfile test.h <test.h>
  \headerfile test.h <>
  \headerfile <> 

デフォルトのインクルード表記をローカルに逆転にするには、FORCE_LOCAL_INCLUDESYES にしてください。 インクルードの情報をすべてなくすには、SHOW_INCLUDE_FILESNO にしてください。


\hideinitializer

デフォルトでは、define の値および変数の初期化子は、30行を超えないかぎり、表示されます。 define または変数のコメントブロックの中でこのコマンドを使うと、 初期化子は常に非表示になります。初期化子の最大行数は、MAX_INITIALIZER_LINES によって変えることができます。デフォルトは30です。

参照: セクション \showinitializer


\idlexcept <名前>

コメントブロックに、<名前>という名のIDL例外についての解説があることを示します。


\implements <名前>

cmdimplementsは、もともと継承関係の概念をサポートしないプログラミング言語(Cなど)の場合にマニュアルで指定します。

exampleディレクトリの manual.c を見れば、このコマンドの使い方がわかります。

ここ をクリックすると、これに対応する、doxygen で生成された HTML ドキュメントが開きます。

参照: セクション \implements,\memberof


\ingroup (<グループ名> [<グループ名> <グループ名>])

\ingroup コマンドが、 クラス、ファイル、名前空間のコメントブロック内で使われている場合、 <グループ名> で識別されるグループ (または複数グループ) に追加されます。

参照: ページ グループ化\defgroup\addtogroup\weakgroup


\interface <名前> [<ヘッダーファイル>] [<ヘッダー名>]

<名前> という名のインタフェースの解説が、コメントブロックに含まれることを示します。 引数は、\class コマンドのものと同じです。

参照: セクション \class


\internal

このコマンドは、内部専用のドキュメント断片の始まりを示します。断片は、コメントブロックの終わりで自然に終わります。内部セクションは、コマンド \endinternal によって先に終わらせることができます。

\internal コマンドをセクション内部に指定する ( \section の例参照) と、コマンドの後ろのすべてのサブセクションも同様に内部とみなします。同レベルの新しいセクションだけが、内部とみなされる断片を終わらせます。

内部記述を出すか隠すかは、設定ファイルの INTERNAL_DOCS を使ってください。

参照:セクション \endinternal


\mainpage [(タイトル)]

\mainpage コマンドをコメントブロック内に指定すると、 インデックスページ (HTML) または、最初の章 () をカスタマイズできます。

タイトル引数が指定されると、doxygen が生成するデフォルトのタイトルを置換します。 タイトルが不要なら、\mainpage の引数に notitle を指定できます。

以下に例を挙げます:

/*! \mainpage 私の個人的なインデックスページ
 *
 * \section intro_sec 導入
 *
 * これは導入です
 *
 * \section install_sec インストール
 *
 * \subsection step1 ステップ1: ボックスを開く
 *  
 * etc...
 */

\ref index によってメインページを参照することができます。

参照: セクション \section\subsection\page


\memberof <名前>

このコマンドは、ある関数をクラスメンバーとして指示できます。\relates と似ていますが、関数をクラスの実メンバーとして表示するのは、このコマンドだけです。 メンバー関数の概念をもともとサポートしていないプログラミング言語(Cなど)で有用です。

\public, \protected, \private と一緒に使うこともできます。

exampleディレクトリの manual.c を見れば、このコマンドの使い方がわかります。 ここ をクリックすると、これに対応する、doxygen で生成された HTML ドキュメントが開きます。

参照: セクション \extends\implements\public\protected\private


\name [(ヘッダー)]

このコマンドは、コメントブロックを、メンバーグループのヘッダー定義に変えます。 コメントブロックの後には、グループのメンバーを含む、 //@{ ... //@} ブロックが続かなければなりません。

例については、セクション メンバーグループ を参照。


\namespace <名前>

<名前> という名の名前空間の解説がコメントブロックに記述されていることを示します。


\nosubgrouping

このコマンドは、クラスの解説内に指定できます。 メンバーグルーピングとの組み合わせで使用でき、doxygenが、メンバーグループを、Public/Protected/Private/... セクションのサブグループとして配置するのを避けることができます。

参照: セクション \publicsection\protectedsection\privatesection


\overload [(関数宣言)]

このコマンドを使うと、オーバーロードされたメンバー関数に対して、 以下のような標準的なテキストが生成されます:

これはオーバーロードされたメンバー関数で、便宜的に提供されています。 上記関数との違いは、受ける引数だけです。

オーバーロードされたメンバー関数に対する解説が、関数宣言・定義の前にない場合は、オプションの引数で、正しく関数指定をする必要があります。

ドキュメントブロック内部にある他のすべてのドキュメントは、 生成されるメッセージの後に追加されます。

メモ 1:
この指定によってオーバーロードされたメンバーの解説は、前においてください。 解説の順入れ替えを防ぐには、SORT_MEMBER_DOCSNO を設定します。
メモ 2:
\overload コマンドは、一行だけのコメント内では機能しません。
例:
class Overload_Test 
{
  public:
    void drawRect(int,int,int,int);
    void drawRect(const Rect &r);
};

void Overload_Test::drawRect(int x,int y,int w,int h) {}
void Overload_Test::drawRect(const Rect &r) {}

/*! \class Overload_Test
 *  \brief A short description.
 *   
 *  More text.
 */

/*! \fn void Overload_Test::drawRect(int x,int y,int w,int h)
 * This command draws a rectangle with a left upper corner at ( \a x , \a y ),
 * width \a w and height \a h. 
 */

/*!
 * \overload void Overload_Test::drawRect(const Rect &r)
 */

ここ をクリックすると、これに対応する、doxygen で生成された HTML ドキュメントが開きます。

\package <名前>

<名前> という Java パッケージの解説がコメントブロックに記述されていることを 示します。


\page <名前> (タイトル)

特定のクラスやファイル、メンバーに直接には関連付けられていない解説の一部が コメントブロックに含まれることを示します。 HTML ジェネレータは、その解説を含むページを作成します。 ジェネレータは、'Page documentation' という章で、 新しいセクションを開始します。

例:
/*! \page page1 A documentation page
  \tableofcontents
  Leading text.
  \section sec An example section
  This page contains the subsections \ref subsection1 and \ref subsection2.
  For more info see page \ref page2.
  \subsection subsection1 The first subsection
  Text.
  \subsection subsection2 The second subsection
  More text.
*/

/*! \page page2 Another page
  Even more info.
*/
ここ をクリックすると、これに対応する、doxygen で生成された HTML ドキュメントが開きます。
メモ:
<名前> 引数は、英文字と数字との組み合わせからなります。 もし、<名前> 引数で、大文字だけを使ったり (MYPAGE1 など)、 大文字と小文字をミックスして使ったり (MyPage1 など) したい場合は、 CASE_SENSE_NAMESYES に設定しておく必要があります。 ただし、これは、ファイルシステムが大文字・小文字を区別する場合にのみ 有効なアドバイスです。その他のシステムでは (また可搬性を高めるためにも)、 ページへの参照となる <名前> には、 すべて小文字 (mypage1 など) を使用するべきです。

参照: セクション \section\subsection\ref


\private

このコマンドは、コメントブロックでドキュメント付けされたメンバーがprivateであることを示します。同じクラス内のメンバーからしかアクセスできないメンバーのことです。

Doxygenは、オブジェクト指向の言語では、メンバーの保護レベルを自動認識します。 このコマンドは、保護レベルの概念をもともとサポートしていない言語(C,PHP 4など)で使うことが目的です。

privateメンバーのセクションの始まりを、C++での"private:"クラスマーカー同様に示すには、\privatesectionを使います。

参照: セクション \memberof\public\protected\privatesection


\privatesection

C++のクラス識別子"private:"と同様、privateメンバーのセクションの始まりを示します。 コメントブロックでドキュメント付けされたメンバーがprivateであること、つまり同じクラスのメンバーからしかアクセスできないことを示します。

参照:セクション \memberof\public\protected\private


\property (qualified property name)

プロパティ(グローバルか、クラスメンバーとして)についての記述が コメントブロックに含まれることを示します。 このコマンドは、\fn\typedef\var と同義です。

参照: セクション \fn\typedef\var


\protected

このコマンドは、コメントブロックでドキュメント付けされたメンバーがprotectedであることを示します。同じクラスまたは派生クラスのメンバーからしかアクセスできないメンバーのことです。

Doxygenは、オブジェクト指向の言語では、メンバーの保護レベルを自動認識します。 このコマンドは、保護レベルの概念をもともとサポートしていない言語(C,PHP 4など)で使うことが目的です。

protectedメンバーセクションの始まりを、C++での"protected:"クラスマーカー同様に示すには、\protectedsectionを使います。

参照: セクション \memberof\public\private\protectedsection


\protectedsection

C++の"protected:"クラス指定子と同様、protected メンバーの始まりを示します。 コメントブロックでドキュメント付けされたメンバーが、protectedであること、つまり同じクラスか派生クラスのメンバーからしかアクセスできないことを示します。

参照:セクション \memberof\public\private\protected


\protocol <名前> [<ヘッダーファイル>] [<ヘッダー名>]

名前 <name> という名の Objective-C でのプロトコルについての記述がコメント ブロックに含まれることを示します。引数は、\class コマンドと同じです。

参照: セクション \class


\public

このコマンドは、コメントブロックでドキュメント付けされたメンバーがpublicであることを示します。どのクラスや関数からもアクセスできるメンバーのことです。

Doxygenは、オブジェクト指向の言語では、メンバーの保護レベルを自動認識します。 このコマンドは、保護レベルの概念をもともとサポートしていない言語(C,PHP 4など)で使うことが目的です。

publicメンバーセクションの始まりを、C++での"public:"クラスマーカー同様に示すには、\publicsectionを使います。

参照: セクション \memberof\protected\private\publicsection


\publicsection

C++の"public:"クラス指定子同様、publicメンバーセクションの始まりを示します。 コメントブロックでドキュメント付けされたメンバーは、public、つまり、他のクラスや関数からアクセス可能であることを示します。

参照:セクション \memberof\protected\private\public


\pure

コメントブロックでドキュメントづけされたメンバーが、pure virtualであることを示します。 つまり、抽象メンバーで、実装されていないことを指します。

このコマンドは、pure virutalメソッドの概念をネイティブにサポートしない言語(C,PHP 4など)にのみ使われます。


\relates <名前>

このコマンドは、<名前> という非メンバー関数の解説で使います。 クラスドキュメントの「関連する関数」というセクションに関数を出力します。 フレンドでないにもかかわらず、特定のクラスに強く結び付いている関数に ドキュメントを付けるのに有用です。 これによりファイルにドキュメント付けをする必要性がなくなりますが、 関数にしか機能しません。

例:
/*! 
 * A String class.
 */ 
  
class String
{
  friend int strcmp(const String &,const String &);
};

/*! 
 * Compares two strings.
 */

int strcmp(const String &s1,const String &s2)
{
}

/*! \relates String
 * A string debug function.
 */
void stringDebug()
{
}
ここ をクリックすると、これに対応する、doxygen で生成された HTML ドキュメントが開きます。

\related <名前>

\relates と同等です。


\relatesalso <名前>

このコマンドは、非メンバー関数 <name> の記述で使えます。これによって、 クラスドキュメントの「関連関数」セクションの中にも、普通のファイルドキュメント にも指定関数を出力します。フレンドでないにもかかわらずあるクラスとのつながりが強い 関数をドキュメント付けするのに有効です。関数にしか機能しません。


\relatedalso <名前>

\relatesalso と同等です。


\showinitializer

デフォルトでは、define の値および変数の初期化子は、 30行未満の場合しか表示されません。 define または変数のコメントブロックの中でこのコマンドを使うと、 初期化子は無条件に表示されるようになります。 初期化子の最大行数の変更は、MAX_INITIALIZER_LINES で行います。デフォルトは30です。

参照: セクション \hideinitializer


\static

コメントブロックでドキュメント付けされたメンバーがstaticであることを示します。 つまり、クラスインスタンスでなく、クラスに対して働くということです。

このコマンドは、staticメソッドの概念をサポートしない言語(Cなど)にのみ使われます。


\struct <名前> [<ヘッダーファイル>] [<ヘッダー名>]

<名前> という構造体の解説がコメントブロックに含まれることを示します。 引数は、\class コマンドのものと同じです。

参照: セクション \class


\typedef (typedef 宣言)

typedef(グローバルまたはクラスメンバー)の解説がコメントブロックに含まれることを示します。 このコマンドは、\fn, \property, \var と等価です。

参照: セクション \fn\property\var


\union <名前> [<ヘッダーファイル>] [<ヘッダー名>]

<名前> という共用体の解説がコメントブロックに含まれることを示します。 引数は、\class コマンドのものと同じです。

参照: セクション \class


\var (変数宣言)

変数やenum 値(グローバルまたはクラスメンバー)の解説がコメントブロックに含まれることを示します。 このコマンドは、\fn, \property, \typedef と等価です。

参照: セクション \fn\property\typedef


\vhdlflow [(フローチャートのタイトル)]

これは、VHDL 専用のコマンドで、プロセス内のロジックを示すフローチャートを、プロセスのドキュメントに置くことができます。オプションで、フローチャートのタイトルを指定できます。

覚え書き
現状、フローチャートはHTMLにしか出現しません。

\weakgroup <名前> [(タイトル)]

\addtogroup と全く同様に使用することができますが、 グループ化定義での衝突を解消するという用には優先度が低くなります。

参照: ページ グループ化 および セクション \addtogroup


--- セクション指示子 (Section indicators) ---


\attention { 注意すべきテキスト }

注意が必要なメッセージを入力するパラグラフを開始します。 パラグラフはインデントされます。 パラグラフのテキストには、特別な内部構造はありません。 すべての視覚的強調コマンドが、パラグラフ内で使用可能です。 複数並んだ \attention コマンドは1つのパラグラフに結合されます。 \attention コマンドは、空行か他のセクション導入コマンドのところで終わりです。


\author { 作者のリスト }

ひとつ以上の作者名を入力するパラグラフを開始します。 パラグラフはインデントされます。 パラグラフのテキストには、特別な内部構造はありません。 すべての視覚的強調コマンドが、パラグラフ内で使用可能です。 複数並んだ \author コマンドは、1つのパラグラフに結合されます。 このコマンドは行を作ります。 1つの \author コマンドで複数の作者名を挙げることもできます。 \author コマンドは、空行か他のセクション導入コマンドのところで終わりです。

例:
/*! 
 *  \brief     Pretty nice class.
 *  \details   This class is used to demonstrate a number of section commands.
 *  \author    John Doe
 *  \author    Jan Doe
 *  \version   4.1a
 *  \date      1990-2011
 *  \pre       First initialize the system.
 *  \bug       Not all memory is freed when deleting an object of this class.
 *  \warning   Improper use can crash your application
 *  \copyright GNU Public License.
 */
class SomeNiceClass {};
ここ をクリックすると、これに対応する、doxygen で生成された HTML ドキュメントが開きます。

\authors { 作者のリスト }

\author と同等です。


\brief {要約説明}

要約説明の役割をするパラグラフを開始します。 クラスとファイルでは、リストや、ドキュメントページの最初の部分で使われます。 クラスやファイルのメンバーでは、メンバーの宣言箇所に配置されたり、 詳細説明の前に付加されたりします。 要約説明は、複数行にできます(それでも簡潔なほうがよい)。 要約説明は、空行または他のセクション導入コマンドで終わります。 複数の \brief コマンドは結合されます。 例については、\author を参照してください。

同義語: \short


\bug { バグ記述 }

ひとつ以上のバグをリポートするパラグラフを開始します。 パラグラフはインデントされます。 パラグラフのテキストには、特別な内部構造はありません。 すべての視覚的強調コマンドが、パラグラフ内で使用可能です。 複数の \bug コマンドが並ぶと、1つのパラグラフに結合されます。 各々のバグ記述は新しい行で始まります。 別のやり方として、1つの \bug コマンドで複数のバグを挙げることもできます。 \bug コマンドは、空行または他のセクション導入コマンドで終了します。 例については、\author を参照してください。


\cond [<セクションラベル>]

条件付セクションの始まりを示し、\endcond コマンド(別のコメントブロックに指定します)で終了します。こういった コマンドの組を使う主な目的は、ファイルの一部を処理から(条件付で)除外することです。 (以前のDoxygenでは、これはCプロセッサコマンドでしかできませんでした)

\cond コマンドと \endcond コマンドの間のセクションは、 設定オプションのENABLED_SECTIONS にセクションラベルを 追加することで含めることができます。セクションラベルを省略すると、セクションは 無条件に処理から除外されます。セクションラベルとなりうるのは、セクションラベル、丸括弧、&&(AND), ||(OR), !(NOT)の論理式ビルドです。 式を使う場合は、\cond (!LABEL1 && LABEL2) のように丸括弧で囲んでください。

コメントブロック内の条件付セクションの場合は、 \if ... \endif ブロックを使ってください。

条件付セクションはネストできます。この場合ネストしたセクションを出力するには それを内包するセクションとともに含めなければなりません。

コマンド使用例を示します。

/** インターフェース */
class Intf
{
  public:
    /** メソッド */
    virtual void func() = 0;

    /// @cond TEST

    /** テストに使うメソッド */
    virtual void test() = 0;

    /// @endcond
};

/// @cond DEV
/*
 *  インターフェースの実装 
 */
class Implementation : public Intf
{
  public:
    void func();

    /// @cond TEST
    void test();
    /// @endcond

    /// @cond
    /** このメソッドは使わなくなった。
     *  ドキュメントに出ない。
     */
    void obsolete();
    /// @endcond
};

/// @endcond 

出力結果は、ENABLED_SECTIONSTEST か, DEV かによって違ってきます。

参照:セクション \endcond, ENABLED_SECTIONS


\copyright { 著作権の記述 }

エンティティの著作権を記述する段落の始まりを示します。 段落はインデントされます。 段落のテキストには、特別な内部構造がありません。 セクション \author にサンプルがあります。


\date { 日時記述 }

ひとつ以上の日時を記入するパラグラフを開始します。 パラグラフはインデントされます。 パラグラフのテキストには、特別な内部構造はありません。 すべての視覚的強調コマンドが、パラグラフ内で使用可能です。 複数の \date コマンドが並ぶと、1つのパラグラフに結合されます。 各々の日時記述は、新しい行から始まります。 1つの \date コマンドで複数の日時を記述することもできます。 \date コマンドは、空行または他のセクション導入コマンドで終了します。 例については、\author を参照してください。


\deprecated { 記述 }

ドキュメントブロックが非推奨要素に属することを示すパラグラフの始まりです。 代替や予想有効期間などを記述します。


\details {詳細説明}

\brief は要約説明の始まりを, \detailsは詳細説明の始まりを示します。空行でパラグラフをはじめれば、\detailsは要りません。


\else

前の条件付きセクションが有効でなかった場合に 条件付きセクションを開始します。 前のセクションは、 \if, \ifnot, \elseif のいずれかのコマンドで始まっていなければなりません。

参照: \if\ifnot\elseif\endif


\elseif (セクションラベル)

前の条件付きセクションが有効でなかった場合に条件付きドキュメント・セクションを開始します。 デフォルトで、条件付きセクションは無効になっています。 有効にするには、設定ファイルの中で ENABLED_SECTIONS タグの後にセクションラベルを置かなければなりません。セクションラベルになりうるのは、セクション名、丸括弧、&& (AND), || (OR) , ! (NOT) などの論理式ビルドです。 条件付きブロックはネストすることができます。 ネストされたセクションは、その外側のセクションもすべて有効になっている場合に限り、有効になります。

参照: セクション \endif\ifnot\else\elseif


\endcond

\cond で始まる条件付セクションの終了を示します。

参照: \cond


\endif

\if\ifnot で始まった条件付きセクションを終了させます。 \if\ifnot ひとつに対して、唯一の \endif を対応させなければなりません。

参照: \if\ifnot


\exception <例外オブジェクト> { 例外記述 }

<例外オブジェクト> という名の例外オブジェクトの例外記述を開始します。 後には、例外についての記述が続きます。 例外オブジェクトが存在するかどうかについては、チェックされません。 パラグラフのテキストには、特別な内部構造はありません。 すべての視覚的強調コマンドが、パラグラフ内で使用可能です。 複数の \exception コマンドが並ぶと、1つのパラグラフに結合されます。 各々の例外記述は、新しい行で始まります。 \exception コマンドは、空行または他のセクション導入コマンドで終了します。 例については、\fn を参照してください。


\if <セクションラベル>

条件付きドキュメント・セクションを開始します。 セクションは、対応する \endif コマンドで終了します。 デフォルトでは、条件付きセクションは無効です。 有効にするには、設定ファイルで、ENABLED_SECTIONS タグの後にセクションラベルを置く必要があります。

セクションラベルになりうるのは、セクション名、丸括弧、&& (AND), || (OR) , ! (NOT) などの論理式ビルドです。式を使うには、\cond (!LABEL1 && LABEL2) のように、丸括弧で囲んでください。 条件付きブロックは、ネストすることができます。 ネストの内側のセクションが有効になるのは、 それを囲むすべてのセクションも有効な場合だけです。

例:
  /*! 無条件に表示されるドキュメント
   *  \if Cond1
   *    Cond1が設定されていれば含まれる
   *  \endif
   *  \if Cond2
   *    Cond2が設定されていれば含まれる
   *    \if Cond3
   *      Cond2,Cond3が設定されていれば含まれる
   *    \endif
   *    他のテキスト
   *  \endif
   *  無条件のテキスト
   */

条件付きコマンドをエイリアス内部で使うこともできます。 2つの言語でクラスにドキュメントを付けるには、たとえば、以下のように使います。

例 2:
/*! \english
 *  これは英語。
 *  \endenglish
 *  \dutch
 *  これはオランダ語。
 *  \enddutch
 */
class Example
{
};
ただし、設定ファイルで以下のようなエイリアスが定義されているものとします:
ALIASES  = "english=\if english" \
           "endenglish=\endif" \
           "dutch=\if dutch" \
           "enddutch=\endif"

そして、english または dutch のいずれかを有効にするために、 ENABLED_SECTIONS を使用できます。

参照: セクション \endif\ifnot\else、and \elseif ENABLED_SECTIONS


\ifnot (セクションラベル)

条件付きドキュメント・セクションを開始します。 セクションは、対応する \endif で終了します。 この条件付きセクションは、デフォルトで有効です。 無効にするには、設定ファイルで、 ENABLED_SECTIONS タグの後に セクションラベルを置く必要があります。セクションラベルになりうるのは、セクション名、丸括弧、&& (AND), || (OR) , ! (NOT) などの論理式ビルドです。

参照: セクション \endif\if\else、および \elseif ENABLED_SECTIONS


\invariant { 不変条件記述 }

実体についての不変条件を記述することのできるパラグラフを開始します。 パラグラフはインデントされます。 パラグラフのテキストには、特別な内部構造はありません。 すべての視覚的強調コマンドが、パラグラフ内で使用可能です。 複数の \invariant コマンドが並ぶと、1つのパラグラフに結合されます。 各々の不変条件は、新しい行で始まります。 1つの \invariant コマンドで複数の不変条件を記述することもできます。 \invariant コマンドは、空行または他のセクション導入コマンドで終了します。


\note { テキスト }

メモを記述するパラグラフを開始します。 パラグラフはインデントされます。 パラグラフのテキストには、特別な内部構造はありません。 すべての視覚的強調コマンドが、パラグラフ内で使用可能です。 複数の \note コマンドが並ぶと、1つのパラグラフに結合されます。 各々のメモは、新しい行で始まります。 1つの \note コマンドで複数のメモを記述することもできます。 \note コマンドは、空行または他のセクション導入コマンドで終了します。 例については、\par を参照してください。


\par [(パラグラフタイトル)] { パラグラフ }

パラグラフタイトルを指定すると、ユーザ定義の見出しを持つパラグラフを開始します。 見出しの範囲は、行の終わりまでです。 このコマンドに後続するパラグラフはインデントされます。

パラグラフタイトルがない場合、新しいパラグラフを開始します。 これは、他のパラグラフコマンド (

引数
[(dir)]< 引数名>=""> { 引数説明 }
\param や
警告
{ 警告メッセージ }
\warningなど) の内部でも機能します。その際、そのコマンドを終了させることはありません。

パラグラフのテキストには、特別な内部構造はありません。 すべての視覚的強調コマンドが、パラグラフ内で使用可能です。 \par コマンドは、空行または他のセクション導入コマンドで終了します。

例:
/*! \class Par_Test
 * Normal text.
 *
 * \par User defined paragraph:
 * Contents of the paragraph.
 *
 * \par
 * New paragraph under the same heading.
 *
 * \note
 * This note consists of two paragraphs.
 * This is the first paragraph.
 *
 * \par
 * And this is the second paragraph.
 *
 * More normal text. 
 */
  
class Par_Test {};
ここ をクリックすると、これに対応する、doxygen で生成された HTML ドキュメントが開きます。

\param [(dir)] <引数名> { 引数説明 }

このコマンドは、<引数名> という名前の関数引数の説明の始まりを示し、続いて引数の説明を記述します。 Doxygenは引数の存在をチェックします。引数の説明がなかったり関数の宣言・定義に 見つからない場合、警告を出します。

\param コマンドには、オプションの属性として、(dir)、方向属性があります。 指定できる値は、"[in]"、"[in,out]"、"[out]" です。[]括弧に気をつけてください。input,output両方の場合、[in,out]を属性に使います。 以下は関数 memcpy の例です。

/*!
バイトを元のメモリ領域から先のメモリ領域へコピーする。
ただし、領域は重ならないものとする。
@param[out] dest コピー先のメモリ領域
@param[in] src コピー元のメモリ領域
@param[in] n コピーするバイト数
*/
void memcpy(void *dest, const void *src, size_t n);

パラメータの説明は特殊な内部構造のない段落です。 視覚効果を高めるすべてのコマンドは段落の中で使うことができます。

複数の \param コマンドが並ぶと、1つの段落に結合されます。 各々の引数記述は、新しい行で始まります。 \param 記述は、空行や他のセクション導入コマンドで終了します。 例については、\fn を参照してください。

コンマで区切ったリストを使えば、一つの \param コマンドだけで、複数の引数をドキュメントにすることができます。例:

/** 位置をセットする
@param 3次元空間内のx,y,z 座標
*/
void setPosition(double x,double y,double z,double t)
{
}

PHPでは、タイプ(パイプ記号で区別すれば複数のタイプ)を指定できます。タイプは引数のために(これは定義をするものではないので)許されます。 指定は、phpDocumentorと同様、次のようにします。

@param  datatype1|datatype2 $引数名 説明

\parblock

単一のパラグラフを引数にとるコマンド(\par, \param and \warning)には、\parblockコマンドを使えば、複数のパラグラフをカバーする説明を始めることができます。終わらせるには、\endparblockを使います。

例:

/** 2つのパラグラフからなる説明つきparamコマンド
 *  \param p 
 *  \parblock
 *  param説明の最初のパラグラフ
 *
 *  param説明の2番目のパラグラフ
 *  \endparblock
 *  コメントブロックの残りがこのあと続きます。
 */

\parblockコマンドは、 cmdparam "\\param"の第一引数の直後にも使われうることに注意。


\endparblock

このコマンドは、\parblockで始まるパラグラフのブロックを終わらせます。

\tparam <テンプレート引数名> { 説明 }

このコマンドは、クラスまたは関数の、<テンプレート引数名>という名のテンプレート引数の始まりを示し、引数の説明を後述します。

\cmdparam に少し似ています。


\post { 事後条件記述 }

実体についての事後条件を記述することのできるパラグラフを開始します。 パラグラフはインデントされます。 パラグラフのテキストには、特別な内部構造はありません。 すべての視覚的強調コマンドが、パラグラフ内で使用可能です。 複数の \post コマンドが並ぶと、1つのパラグラフに結合されます。 各々の事後条件は、新しい行で始まります。 1つの \post コマンドで複数の事後条件を記述することもできます。 \post コマンドは、空行または他のセクション導入コマンドで終了します。


\pre { 事前条件記述 }

実体についての事前条件を記述することのできるパラグラフを開始します。 パラグラフはインデントされます。 パラグラフのテキストには、特別な内部構造はありません。 すべての視覚的強調コマンドが、パラグラフ内で使用可能です。 複数の \pre コマンドが並ぶと、1つのパラグラフに結合されます。 各々の事前条件は、新しい行で始まります。 1つの \pre コマンドで複数の事前条件を記述することもできます。 \pre コマンドは、空行または他のセクション導入コマンドで終了します。


\remark { 注釈のテキスト }

1つ以上の注釈を記述するパラグラフを開始します。 パラグラフはインデントされます。 パラグラフのテキストには、特別な内部構造はありません。 すべての視覚的強調コマンドが、パラグラフ内で使用可能です。 複数の \remark コマンドが並ぶと、1つのパラグラフに結合されます。 各々の注釈は、新しい行で始まります。 1つの \remark コマンドで複数の注釈を記述することもできます。 \remark コマンドは、空行または他のセクション導入コマンドで終了します。


\remarks { 注釈のテキスト }

\remark と同等です。


\result { 結果値の記述 }

\return と同等です。


\return { 戻り値の記述 }

関数の戻り値についての記述を開始します。 パラグラフのテキストには、特別な内部構造はありません。 すべての視覚的強調コマンドが、パラグラフ内で使用可能です。 複数の \return コマンドが並ぶと、1つのパラグラフに結合されます。 \returnコマンドは、空行または他のセクション導入コマンドで終了します。 例については、\fn を参照してください。


\returns { 戻り値の記述 }

\return と同等です。


\retval <戻り値> { 記述 }

<戻り値> という名の関数戻り値についての記述を開始します。 後には、戻り値についての記述が続きます。 記述を構成するパラグラフのテキストには、特別な内部構造はありません。 すべての視覚的強調コマンドが、パラグラフ内で使用可能です。 複数の \retval コマンドが並ぶと、1つのパラグラフに結合されます。 各々の戻り値の記述は、新しい行で始まります。 \retval コマンドは、空行または他のセクション導入コマンドで終了します。


\sa { 参照先 }

クラス、関数、メソッド、変数、ファイルまたは URL へのクロスリファレンスを 指定するパラグラフを開始します。 2つの名前が :: または # で結合されていると、 クラスとそのメンバーを参照すると解釈されます。 メソッド名の後に、カッコで囲まれた引数型リストを付加することで、 オーバーロードされた複数のメソッドやコンストラクタの 1つを選択することができます。

同義語: \see

参照: オブジェクトへのリンクをどのように生成するかということについては、 セクション autolink を参照


"\see"

\sa と同じ。JavaDoc との互換性のために用意しています。


\short { 要約説明 }

\brief と同等です。


\since { テキスト }

このタグは、実体が利用可能になった時期 (バージョンや日時) を指定するのに使われます。 \since に続くパラグラフには、特別な内部構造はありません。 すべての視覚的強調コマンドが、パラグラフ内で使用可能です。 \since コマンドは、空行または他のセクション導入コマンドで終了します。


\test { テストケースを記述するパラグラフ }

テストケースを記述できるパラグラフを開始します。 この記述により、テストケースは別のテストリストにも追加されます。 記述の2つのインスタンスは、クロスリファレンスされます。 テストリスト内の各テストケースには、そのテストケースの出自を示すヘッダーが付加されます。


\throw <例外オブジェクト> { 例外記述 }

同義語: \exception (セクション \exception を参照)

メモ:
\throws タグは、このタグの同義語です。

参照:セクション \exception


\throws <例外オブジェクト> { 例外記述 }

\throw と同等です。


\todo { TODO を記述するパラグラフ }

TODO 項目を記述するパラグラフを開始します。 この記述により、別の TODO リストにも項目が追加されます。 記述の2つの例は、クロスリファレンスされます。 TODO リスト内の各項目には、その項目の出自を示すヘッダーが付加されます。


\version { バージョン番号 }

1つ以上のバージョン文字列を記述することのできるパラグラフを開始します。 パラグラフはインデントされます。 パラグラフのテキストには、特別な内部構造はありません。 すべての視覚的強調コマンドが、パラグラフ内で使用可能です。 複数の \version コマンドが並ぶと、1つのパラグラフに結合されます。 各々のバージョン記述は、新しい行で始まります。 1つの \version コマンドで複数のバージョン文字列を記述することもできます。 \version コマンドは、空行または他のセクション導入コマンドで終了します。 例については、\author を参照してください。


\warning { 警告メッセージ }

1つ以上の警告メッセージを記述することのできるパラグラフを開始します パラグラフはインデントされます。 パラグラフのテキストには、特別な内部構造はありません。 すべての視覚的強調コマンドが、パラグラフ内で使用可能です。 複数の \warning コマンドが並ぶと、1つのパラグラフに結合されます。 各々の警告記述は、新しい行で始まります。 1つの \warning コマンドで複数の警告を記述することもできます。 \warning コマンドは、空行または他のセクション導入コマンドで終了します。 例については、\author を参照してください。


\xrefitem <key> "(ヘディング)" "(リストタイトル)" {テキスト}

このコマンドは、\todo\bug などのコマンドの 汎化です。 このコマンドを使って、発生場所と関連ページの間で自動的に相互参照される、ユーザ定義のテキストを作れます。 関連ページでは、同種のセクションすべてが集められます。

最初の引数 <key> はセクションのタイプをユニークに代表するIDです。 第2引数は、セクションのヘディング(4つ目の引数に与えられるテキスト) を代表する引用文字列です。第3引数(リストタイトル)は、同じキーですべての 要素を内包する関連ページのタイトルとなります。キーには、"todo", "test", "bug", "deprecated"が既に定義されています。

\xrefitem コマンドの使い方と効果を知るには、todoリストについて考えてみてください。 todoリストは、(英語の出力では)次のコマンドのエイリアスとなります。

\xrefitem todo "Todo" "Todo List" 

各セクションについてコマンドの3引数を繰り返すと、とても冗長でエラーを 起こしやすくなるので、設定ファイルに ALIASES を指定して それとの組み合わせで使うようにしてください。 たとえば新しいコマンド \reminder を定義するには、設定ファイルに次の行を 追加してください。

ALIASES += "reminder=\xrefitem reminders \"Reminder\" \"Reminders\"" 

\xrefitem コマンドの第2,3引数にはエスケープ引用符を使います。

パラメータ "(heading)" が空文字ならば、ヘディングは生成されません。 \page と共に使ったりします。

/** @page my_errors My Errors
 *  @brief Errors page
 *
 *  Errors page contents.
 */

/** \error ERROR 101: ファイルが開かない場合
    Check about file system read/write access. */
#define MY_ERR_CANNOT_OPEN_FILE                   101

/** \error ERROR 102: ファイルが閉じられない場合
    Check about file system read/write access. */
#define MY_ERR_CANNOT_CLOSE_FILE                  102

with \error defined as

ALIASES += "error=\xrefitem my_errors \"\" \"\"" 

--- リンク生成コマンド ---

\addindex (テキスト)

このコマンドは、 インデックスに (テキスト) を追加します。


\anchor <単語>

このコマンドは、\ref コマンドで参照できるドキュメントに、 不可視な名前付きアンカーを埋め込みます。

覚え書き
アンカーは今のところ、\page によりページとして、 あるいは\mainpage によりメインページとしてマークされた コメントブロックにしか指定できません。

参照: セクション \ref


\cite <ラベル>

テキストと、書誌参照リストに、書誌参照を加えます。<ラベル> には、 CITE_BIB_FILES にリストされている .bib ファイルの一つから取り出した、有効な BibTeX ラベルを指定します。 出力するには、参照のフォーマットは、LATEX_BIB_STYLE スタイルで構成できます。他のフォーマットで出力する場合は、固定の参照となります。このコマンドを使うには、 bibtex ツールをサーチパスに登録してください。


\endlink

このコマンドは、\link コマンドによって開始されたリンクを終了させます。

参照: セクション \link


\link <リンクオブジェクト>

doxygen によって自動的に生成されるリンクは、 それが指示しているオブジェクトの名前を、 リンクテキストとして、常に保持しています。

\link コマンドを使用すると、ユーザが指定したリンクテキストを持った、 (ファイル、クラス、メンバーなどの) オブジェクトへのリンクを生成することができます。 link コマンドは、 \endlink コマンドによって終了します。 \link\endlink の間にあるすべてのテキストは、 \link の最初の引数で指定された <リンクオブジェクト> へのリンクについてのテキストとして扱われます。

参照
autolink 自動的に生成されるリンクおよび妥当なリンクオブジェクトについて、より詳しくは、セクション autolink を参照。

\ref <名前> ["(テキスト)"]

名前の付いたセクション、サブセクション、ページ、またはアンカーへの 参照を生成します。 HTML ドキュメントでは、参照コマンドはセクションへのリンクを生成します。 セクションやサブセクションに対しては、セクションのタイトルは、 リンクのテキストとして使用されます。 アンカーに対しては、引用符に囲まれたオプションのテキストか、 それが指定されていなければ、<名前> が使用されます。 ドキュメントでは、参照コマンドは、 セクションに対してセクション番号を生成します。あるいは、 <名前> がアンカーを指示している場合には、 テキストとそれに後続するページ番号を生成します。

参照
\page \ref コマンドの例について参照

\refitem <name>

\ref コマンド同様、このコマンドは名前つきセクションへの参照を生成します。 ただし、この参照は、\secreflist で始まり、\endsecreflist で終わるリストの中に現れます。その例は、ページのトップにある showsecreflist に見ることができます。


\secreflist

アイテムのインデックスリストを開始します。\refitem によって生成され、名前槻セクションへのリンクとなります。


\endsecreflist

\secreflist で始まったインデックスリストを終了します。


\subpage <名前> ["(テキスト)"]

このコマンドを使って、ページの階層を作ることができます。同じ構造が、 \defgroup\ingroup コマンドを 使って作れますが、ページには \subpage コマンドの方が便利なことが多いです。 メインページ(\mainpage を参照)は階層のルートです。

このコマンドは、\ref に似た振る舞いをします。 <名前>というラベルのページへのリファレンスができ、第2引数を指定すれば リンクテキストが付きます。

これは、ページだけに有効で、ページ間で親子関係を作るというところが \ref コマンドと違います。ここで子のページ(つまりサブページ)には <name> というラベルがつきます。

複数ページを作らずに構造を追加したいときは、 \section コマンドと \subsection コマンドを見てください。

覚え書き
各ページは、1ページだけのサブページになりえます。また、連鎖はゆるされず、 階層は木構造になっていなければなりません。

例をあげます。

/*! \mainpage A simple manual

一般情報
  
このマニュアルは次のセクションに分かれています。
- \subpage intro 
- \subpage advanced "Advanced usage"
*/

//-----------------------------------------------------------

/*! \page intro 導入
このページは主題への導入です。
次に、\ref advanced "advanced section" へ進んでください。
*/

//-----------------------------------------------------------

/*! \page advanced Advanced Usage
このページは、上級者向けです。
最初に \ref intro "the introduction" を読んでください。
*/

\tableofcontents

ページの先頭に目次を作ります。すべてのセクションとサブセクションをリストアップします。

警告
このコマンドは、関連するページドキュメント内でしか働きません。ドキュメントブロックでは働きません。また、HTML 出力でのみ働きます。

\section <セクション名> (セクションタイトル)

<セクション名> という名前のセクションを生成します。 \section コマンドの第2引数として、 セクションのタイトルを指定する必要があります。

警告
このコマンドは、関連するページドキュメントの内部でのみ機能します。 その他のドキュメントブロックでは機能しません
参照
\page に、\section の例があります。

\subsection <サブセクション名> (サブセクションタイトル)

<サブセクション名> という名前のサブセクションを生成します。 \subsection コマンドの第2引数として、 サブセクションのタイトルを指定する必要があります。

警告
このコマンドは、関連するページドキュメントの内部でのみ機能します。 その他のドキュメントブロックでは機能しません
参照
\page \subsection コマンドの例

\subsubsection <サブサブセクション名> (サブサブセクションタイトル)

<サブサブセクション名> という名前のサブサブセクションを生成します。 \subsection コマンドの第2引数として、 サブサブセクションのタイトルを指定する必要があります。

警告
このコマンドは、関連するページドキュメントの内部でのみ機能します。 その他のドキュメントブロックでは機能しません
参照
\pageに、\section\subsection の例があります。

\paragraph <パラグラフ名> (パラグラフタイトル)

<パラグラフ名>という名のパラグラフを作ります。パラグラフのタイトルは、 第2引数に指定してください。

警告
このコマンドは、関連ページのドキュメントブロックのサブセクション内で のみ有効で、他のドキュメントブロックでは無効です。

--- 実例を表示するためのコマンド ---


\dontinclude <ファイル名>

このコマンドを使えば、ソースファイルを(\include コマンドのように)そのままドキュメントに含めなくても、解析できます。 これは、ソースファイルをいくつかの小部分に分割し、 それらの間にドキュメントを追加したいような場合に、役立ちます。 ソースファイルやディレクトリは、doxygen の設定ファイルで、 EXAMPLE_PATH タグを使うことによって指定できます。

コード断片内にあるクラスおよびメンバーの宣言・定義は、 \dontinclude コマンドを含んでいるコメントブロックの解析中に記憶します。

ソースファイルの一行ごとの記述に対しては、 \line\skip\skipline および \until コマンドを使うことによって、 実例の1行またはそれ以上の行が表示されます。 これらのコマンドに対しては、内部的なポインタが使用されます。 \dontinclude コマンドは、実例の最初の行にポインタをセットします。

例:
/*! A test class. */

class Include_Test
{
  public:
    /// a member function
    void example();
};

/*! \page example
 *  \dontinclude include_test.cpp
 *  Our main function starts like this:
 *  \skip main
 *  \until {
 *  First we create an object \c t of the Include_Test class.
 *  \skipline Include_Test
 *  Then we call the example member function 
 *  \line example
 *  After that our little test routine ends.
 *  \line }
 */
ここで、実例ファイル example_test.cpp の内容は、以下のようなものです:
void main()
{
  Example_Test t;
  t.example();
}
ここ をクリックすると、これに対応する、doxygen で生成された HTML ドキュメントが開きます。

あるいは、\snippet コマンドを使えば、ソースファイルの1断片だけを含めることができます。このコマンドを働かせるには、断片にマークする必要があります。

参照: セクション \line\skip\skipline\until\include


\include <ファイル名>

このコマンドを使うと、ソースファイルをコードブロックとしてインクルードすることができます。 インクルードファイルの名前を引数にとります。 ソースファイルやディレクトリは、doxygen の設定ファイルで、 EXAMPLE_PATH タグを使うことによって指定できます。

EXAMPLE_PATH タグで指定された実例ファイルの集合に対して、 <ファイル名> だけでは一意にファイルを決定できない場合、 それを解決するために、絶対パスの一部を含めることができます。

\include コマンドを使用することは、ファイルをドキュメントブロックに挿入して、それを \code\endcode コマンドで囲むことと等価です。

\include コマンドの主な目的は、 実例ブロックが複数のソースおよびヘッダーファイルから構成されているような場合に、コードの重複を避けることにあります。

ソースファイルの一行ごとの記述に対しては、 \line\skip\skipline、 および \until コマンドと共に、\dontinclude コマンドを使用します。

あるいは、\snippet コマンドを使えば、ソースファイルの1断片だけを含めることができます。このコマンドを働かせるには、断片にマークする必要があります。

覚え書き
Doxygenの特殊コマンドは、コードブロック内では働きません。 しかし、コードブロック内部にCスタイルのコメントをネストすることはできます。

参照: セクション \example\dontinclude\verbatim


\includelineno <ファイル名>

このコマンドは、\include と同様の働きをしますが、インクルードファイルに行番号を追加します。

参照: セクション \include


\line ( パターン )

このコマンドは、\include または \dontinclude によって最後にインクルードされた実例を、 非空白行が見つかるまで、一行ずつ検索していきます。 見つかった行が指定のパターンを含んでいる場合、それは出力に書き出されます。

実例の中の現在行を追跡するのに使われる内部的なポインタは、 見つかった非空白行の次の行の先頭 (あるいは、そのような行が見つからない場合は、 実例の末尾) にセットされます。

例については、セクション \dontinclude を参照してください。


\skip ( パターン )

このコマンドは、\include または \dontinclude によって最後にインクルードされた実例を、 指定のパターンを含む行が見つかるまで、一行ずつ検索していきます。

実例の中の現在行を追跡するのに使われる内部的なポインタは、 指定パターンを含む行の先頭 (あるいは、パターンが見つからなかった場合は、 実例の末尾) にセットされます。

例については、セクション \dontinclude を参照してください。


\skipline ( パターン )

このコマンドは、\include または \dontinclude によって最後にインクルードされた実例を、 指定のパターンを含む行が見つかるまで、一行ずつ検索していきます。 見つかった行は、出力に書き出されます。

実例の中の現在行を追跡するのに使われる内部的なポインタは、 書き出された行の次の行の先頭 (あるいは、パターンが見つからなかった場合は、 実例の末尾) にセットされます。

注:
コマンド:
\skipline pattern
は、次のものと等価です:
\skip pattern
\line pattern

例については、セクション \dontinclude を参照してください。


\snippet <file-name> ( block_id )

\include コマンドを使えば、ファイル全体をソースコードとして含めることができますが、このコマンドでは、ソースファイルの1断片だけを引用できます。this が<file-name>として使用されると、現在のファイルからスニペットを取得するよう指示したものとみなされます。

例えば、次のコマンドをドキュメントにおくと、サブディレクトリに存在する example.cpp ファイル内の断片を参照することになります。サブディレクトリは、EXAMPLE_PATH で指定します。

  \snippet snippets/example.cpp Adding a resource

ファイル名の次のテキストは、断片を特定する名前です。関連する断片ファイル内の引用コードの範囲を区切るために使います。上記の \snippet コマンドに対応する例を示します。

QImage image(64, 64, QImage::Format_RGB32);
image.fill(qRgb(255, 160, 128));
//! [Adding a resource]
document->addResource(QTextDocument::ImageResource,
QUrl("mydata://image.png"), QVariant(image));
//! [Adding a resource]
...

ブロックマーカーを含む行は、含められません。したがって、出力は次のようになります。

document->addResource(QTextDocument::ImageResource,
QUrl("mydata://image.png"), QVariant(image));

[block_id] マーカーは、ソースファイルにちょうど2回必要です。

マーカーが要らないソースファイルの断片をインクルードする方法は、\dontinclude セクションにあります。


\until ( パターン )

このコマンドは、指定のパターンを含む行が見つかるまで、 \include または \dontinclude によって最後にインクルードされた実例の 全ての行を出力に書き出します。パターンを含む行も書き出されます。

実例の中の現在行を追跡するのに使われる内部的なポインタは、 最後に書き出された行の次の行の先頭 (あるいは、パターンが見つからなかった場合は、 実例の末尾) にセットされます。

例については、セクション \dontinclude を参照してください。


\verbinclude <ファイル名>

このコマンドは、ファイル <ファイル名> の字句通りのコピーを、 ドキュメントに取り込みます。 このコマンドは、ファイルをドキュメントにペーストして、 \verbatim\endverbatim コマンドで囲むことと等価です。

doxygen が検索の対象とするファイルやディレクトリは、 設定ファイルの EXAMPLE_PATH タグによって指定できます。


\htmlinclude <ファイル名>

このコマンドは、HTMLドキュメントの中になるように、 ファイル <ファイル名> を取り込みます。 このコマンドは、ファイルをドキュメントにペーストして、 \htmlonly\endhtmlonly コマンドで囲むことと等価です。

doxygen が検索の対象とするファイルやディレクトリは、 設定ファイルの EXAMPLE_PATH タグによって指定できます。

\latexinclude <ファイル名>

このコマンドは、ドキュメントの中になるように、 ファイル <ファイル名> を取り込みます。 このコマンドは、ファイルをドキュメントにペーストして、 \latexonly\endlatexonly コマンドで囲むことと等価です。

doxygen が検索の対象とするファイルやディレクトリは、 設定ファイルの EXAMPLE_PATH タグによって指定できます。


--- 視覚的強調のためのコマンド ---

\a <単語>

イタリックスで、引数 <単語> を表示します。 単語を強調するにはこのコマンドを使用します。 実行中のテキスト内のメンバー引数を参照するには、このコマンドを使用してください。

例:
  ... the \a x and \a y coordinates are used to ...
これは、次のテキストのような結果となります:

... the x and y coordinates are used to ...

\e\em と同じです。 複数の単語を強調するには、<em>複数の単語</em>を使います。


\arg { 項目記述 }

このコマンドは、一つの引数を取ります。引数は、空行または別の \arg に 遭遇するまで続きます。 このコマンドを使用すると、単純でネストされない引数リストが生成できます。 各引数は、\arg コマンドで始まる必要があります。

例:
以下のようにタイブすると:
  \arg \c AlignLeft 左揃え
  \arg \c AlignCenter 中央揃え
  \arg \c AlignRight 右揃え
  
  他の揃え方はサポートしていません。
次のテキストのような結果となります:

  • AlignLeft 左揃え
  • AlignCenter 中央揃え
  • AlignRight 右揃え

他の揃え方はサポートしていません。
メモ:
ネストされたリストには、HTMLコマンドを使う必要があります。

\li に等価。


\b <単語>

ボールドフォントを使用して、引数 <語> を表示します。 <b>word</b> に等価。 複数単語をボールドにしたい場合は、<b>複数単語</b> とします。


\c <単語>

タイプライタフォントを使用して、引数 <単語> を表示します。 コードとなる語を参照するために使用します。 <tt>単語</tt> に等価。

例:
次のように入力すると:
     ... This function returns \c void and not \c int ...
次のような結果となります:

... This function returns void and not int ...

\p に等価。 複数単語をタイプライタフォントにしたい場合は、<tt>複数単語</tt> とします。


\code [ '{'<word>'}']

参照
section \endcode and section \verbatim. コードブロックを開始します。 コードブロックは、通常のテキストとは区別して扱われ、ソースコードとして解釈されます。 クラスやメンバーなどのドキュメント化されるエンティティの名前は、ドキュメントへのリンクで自動的に置換されます。

デフォルトで、シンタックスを強調するために推測される言語は、\code ブロックが見つかった場所をベースとします。例えば Python ファイルの部分の場合、シンタックスの強調は Python シンタックスで行われます。

どの言語を意味しているか内容からは不明瞭な場合(例えばコメントが .txt, .markdownファイル内の場合)、言語を明示することができます。それには、ファイル拡張子を波括弧で囲んでコードブロックの後ろに入れます。例:

  \code{.py}
  class Python:
     pass
  \endcode

  \code{.cpp}
  class Cpp {};
  \endcode

コードブロックの内容の言語が、doxygenで解析できない場合、doxygenはそのまま表示します。 この動作を明示的に命令したい場合、.unparsedまたはサポートされていない拡張子にしてください。

参照: セクション \endcode、セクション \verbatim


\copydoc <link-object>

<link-object> で指定されたオブジェクトの説明ブロックをコピーして、コマンドの位置に貼り付けます。 ドキュメントブロックを重複して書かないといけない場合にこのコマンドは有用です。、また、継承メンバーの説明を拡張するのにも使えます。

link-objectにはクラスやファイル、グループのメンバー、クラス、名前空間、 グループ、ページ、ファイルが指定でき、この順にチェックされます。 関数、変数、typedefなどのメンバーが指定された場合、それを含むクラス、ファイル、グループにも説明がないと、コピーがうまくいきません。

たとえばクラスメンバーの説明をコピーするとき、次のように説明を入れることができます。

  /*! @copydoc MyClass::myfunction() 
   *  More documentation.
   */

メンバーがオーバーロードされていれば、下記のように引数の型も明示的に(空白なし)指定してください。

  /*! @copydoc MyClass::myfunction(type1,type2) */

修飾名が必要かどうかは、説明ブロックが見つかった箇所の内容によります。

\copydocコマンドは再帰的に使用できますが、\copydoc関係で循環が行われるとエラーになります。 \copydoc foo() は、次とおおまか同等です。

  \brief \copybrief foo()
  \details \copydetails foo()

コメントブロックの中の要約か詳細か一方だけをコピーするには、\copybrief\copydetails を見てください。


\copybrief <link-object>

このコマンドは、\copydoc に似ていますが、要約説明だけをコピーし、詳細説明はコピーしません。


\copydetails <link-object>

このコマンドは、\copydoc に似ていますが、詳細説明だけをコピーし、要約説明はコピーしません。


\docbookonly

生成される docbook ドキュメントだけに含ませるための、テキストブロックを始めます。 このブロックは、\enddocbookonly コマンドで終わります。

参照
section \manonly, \latexonly, \rtfonly, \xmlonly, and \htmlonly.

\dot ["caption"] [<sizeindication>=<size>]

dot グラフの有効な説明を含むテキスト要素の始まりを示します。 テキスト要素の終わりは、\enddot で示します。 Doxygen は、テキストをdot に渡し、その結果のイメージ (及びイメージマップ) を出力に含めます。

最初の引数はオプションで、イメージの下に表示するキャプションを指定します。 この引数を指定する際は、空白がなくてもクォートで囲んでください。 キャプションが表示されれ前に取り除かれます。

第2引数もオプションで、イメージの幅か高さを指定します。詳細については、\imageコマンドの、image_sizeindicator の箇所を参照してください。

グラフのノードは、URL属性を使えばクリック可にできます。 URL値の中で \ref コマンドを使えば、doxygen内の要素にリンクできます。 例を示します。

/*! class B */
class B {};
/*! class C */
class C {};
/*! \mainpage
インラインのdotグラフを使って表現されたクラス関係
\dot
digraph example {
node [shape=record, fontname=Helvetica, fontsize=10];
b [ label="class B" URL="\ref B"];
c [ label="class C" URL="\ref C"];
b -> c [ arrowhead="open", style="dashed" ];
}
\enddot
上のグラフに表示されているクラスはクリックできる(HTML出力で)
*/

\msc ["caption"] [<sizeindication>=<size>]

このコマンドは、メッセージシーケンス図についての有効な説明を含むテキスト要素の始まりを示します。 http://www.mcternan.me.uk/mscgen/ で例を見てください。 テキスト要素の終わりは、\endmscで示します。

最初の引数はオプションで、イメージの下に表示するキャプションを指定します。 この引数を指定する際は、空白がなくてもクォートで囲んでください。 キャプションが表示される前に取り除かれます。

第2引数もオプションで、イメージの幅か高さを指定します。詳細については、\imageコマンドの、image_sizeindicator の箇所を参照してください。

覚え書き
テキスト要素に含めることができるのは、msc {...}の形の中にある、メッセージシーケンス図の要素だけです。
このコマンドを使うには、mscgenツールのインストールが必要です。

\mscコマンドの使用例です。

/** 送信側クラス。サーバーにコマンドを送る。
受信側は、Ack()をコールしてコマンドを承認する。
\msc
Sender,Receiver;
Sender->Receiver [label="Command()", URL="\ref Receiver::Command()"];
Sender<-Receiver [label="Ack()", URL="\ref Ack()", ID="1"];
\endmsc
*/
class Sender
{
public:
/** サーバーからの承認 */
void Ack(bool ok);
};
/** 受信側クラス。コマンドを受信して実行する。
コマンド実行の後、受信側は承認を送信する。
\msc
Receiver,Sender;
Receiver<-Sender [label="Command()", URL="\ref Command()"];
Receiver->Sender [label="Ack()", URL="\ref Sender::Ack()", ID="1"];
\endmsc
*/
class Receiver
{
public:
/** サーバーでコマンドを実行 */
void Command(int commandId);
};

\startuml [{file}] ["caption"] [<sizeindication>=<size>]

このコマンドは、PlantUMLダイアグラムについての有効な説明を含むテキスト要素の始まりを示します。 http://plantuml.sourceforge.net/ で例を見てください。 テキスト要素の終わりは、\enduml で示します。 \注意 このコマンドを使うには、JavaとPlantUMLのjarファイルをインストールしてください。 jarファイルの位置を PLANTUML_JAR_PATH で指定してください。

最初の引数はオプションで、PlantUMLを、doxygenを動かす前の前処理段階で使用するときに使います。イメージファイルの名前を追加するには、\startuml の後ろで、波括弧で囲みます。 例:

  @startuml{myimage.png} "イメージキャプション" width=5cm
  Alice -> Bob : Hello
  @enduml

イメージ名が指定されている場合、doxygenは、指定された名前のイメージを生成します。そうでなければ、名前は自動的に選択されます。

第2引数はオプションで、イメージの下に表示するキャプションを指定します。 この引数を指定する際は、空白がなくてもクォートで囲んでください。 キャプションが表示される前に取り除かれます。

第3引数もオプションで、イメージの幅か高さを指定します。詳細については、\imageコマンドの、image_sizeindicator の箇所を参照してください。

\startuml コマンドの使用例:

/** Senderクラス。サーバーにコマンドを送信するのに使えます。
受信側は、Ack()関数をコールすることでコマンドを承認します。
\startuml
Sender->Receiver : Command()
Sender<--Receiver : Ack()
\enduml
*/
class Sender
{
public:
/** サーバーからの承認(acknowledgment) */
void Ack(bool ok);
};
/** Receiverクラス。コマンドを受け取って、実行するのに使えます。
コマンドの実行後、受信側は承認(acknowledgment)を送信します。
\startuml
Receiver<-Sender : Command()
Receiver-->Sender : Ack()
\enduml
*/
class Receiver
{
public:
/** Executable a command on the server */
void Command(int commandId);
};

\dotfile <ファイル> ["キャプション"] [<sizeindication>=<size>]

<ファイル> から dot によって生成された画像を、ドキュメントに挿入します。

最初の引数は画像のファイル名を指定します。 doxygen は、そのファイルを、DOTFILE_DIRS タグで指定されたパス (またはファイル) の中から探します。 dot ファイルが見つかった場合、それは dot ツールへの入力ファイルとして扱われます。 出来上がった画像は適切な出力ディレクトリに出力されます。 dot ファイル名が空白文字を含む場合は、ファイル名を引用符で囲まなければなりません。

第2引数はオプションで、イメージの下に表示するキャプションを指定します。 この引数を指定する際は、空白がなくてもクォートで囲んでください。 キャプションが表示される前に取り除かれます。

第3引数もオプションで、イメージの幅か高さを指定します。詳細については、\imageコマンドの、image_sizeindicator の箇所を参照してください。 参照:セクション \dot


\mscfile <ファイル> ["キャプション"]

mscgenによって<ファイル>から生成されるイメージを、ドキュメントに挿入します。 http://www.mcternan.me.uk/mscgen/ に例があります。

最初の引数に、イメージのファイル名を指定します。 Doxygenは、MSCFILE_DIRS で指定されたパスかファイルの中でファイルを探します。mscファイルが見つかったら、mscgenツールの入力ファイルとして使います。生成したイメージは、正しいディレクトリに出力します。mscファイルの名前に空白が含まれる場合は、("...")のように、引用符で囲む必要があります。

2つ目の引数はオプションで、イメージの下に表示するキャプションを指定します。この引数は、空白が含まれなくても、引用符で囲む必要があります。表示の際には、引用符は省かれます。

参照:セクション\msc

\diafile <ファイル> ["キャプション"] [<sizeindication>=<size>]

mscgenによって<ファイル>から生成されるイメージを、ドキュメントに挿入します。

最初の引数は画像のファイル名を指定します。 doxygen は、そのファイルを、DOTFILE_DIRS タグで指定されたパス (またはファイル) の中から探します。 dot ファイルが見つかった場合、それは dot ツールへの入力ファイルとして扱われます。 出来上がった画像は適切な出力ディレクトリに出力されます。 dot ファイル名が空白文字を含む場合は、ファイル名を引用符で囲まなければなりません。

参照:セクション \dot

第2引数はオプションで、イメージの下に表示するキャプションを指定します。 この引数を指定する際は、空白がなくてもクォートで囲んでください。 キャプションが表示される前に取り除かれます。

第3引数もオプションで、イメージの幅か高さを指定します。詳細については、\imageコマンドの、image_sizeindicator の箇所を参照してください。


\e <単語>

引数 <単語> をイタリック体で表示します。 このコマンドは、語を強調するために使います。

例:
以下のようにタイプすると:
  ... this is a \e really good example ... 
次のテキストのような結果となります:

... this is a really good example ...

\a\em に等価。 複数の単語を強調するには、<em>multiple words</em>のように使ってください。


\em <単語>

引数 <単語> をイタリック体で表示します。 このコマンドは、語を強調するために使います。

例:
以下のようにタイプすると:
  ... this is a \em really good example ... 
次のテキストのような結果となります:

... this is a really good example ...

\a\em に等価。 複数の単語を強調するには、<em>multiple words</em>のように使ってください。


\endcode

コードブロックを終了します。 参照: セクション \code


\enddocbookonly

\docbookonly コマンドで始まったテキストブロックを終了します。

参照
セクション \docbookonly

\enddot

\dotで始まったブロックを終了します。


\endmsc

\mscで始まったブロックを終了します。


\enduml

\startuml で始まるブロックを終了します。


\endhtmlonly

\htmlonly コマンドで始まったテキストブロックを終了します。

参照
セクション \htmlonly

\endlatexonly

\latexonly コマンドで始まったテキストブロックを終了します。

参照
セクション \latexonly

\endmanonly

\manonly コマンドで始まったテキストブロックを終了します。

参照
セクション \manonly.

\endrtfonly

\rtfonly で始まるテキストブロックの終了を示します。

参照
セクション \rtfonly

\endverbatim

\verbatim コマンドで始まったテキストブロックを終了します。

参照
セクション \verbatim

\endxmlonly

\xmlonly コマンドで始まったテキストブロックを終了します。

参照
セクション \xmlonly.

\f$

テキスト内の式の開始と終了をマークします。

参照
例については、セクション formulas

\f[

別の行に中央揃えで表示される、長い式の開始をマークします。

参照
セクション \f] および、セクション formulas

\f]

別の行に中央揃えで表示される、長い式の終了をマークします。

参照
セクション \f[ および、セクション formulas

\f{環境}{

このコマンドは、特定の環境で使う公式の始まりを示します。

覚え書き
2番目の はオプションで、Vimなどのエディターでハイライトができるように括弧の数を合わせているだけです。 セクション \f{ 、 セクション formulas

\f}

このコマンドは、特定の環境で使う公式の終わりを示します。

参照
セクション \f} 、 セクション formulas

\htmlonly ["[block]"]

生成される HTML ドキュメントにのみ、字句通りにインクルードされるテキストブロックを開始します。 ブロックは、\endhtmlonly コマンドで終了します。

このコマンドは、doxygen にとっては複雑すぎる HTML コード (すなわち、アプレット、Javaスクリプト、特別な属性を必要とする HTML タグ) をインクルードするために使用することができます。

通常、\latexonly\endlatexonly の間に内容がそのまま挿入されています。 <p>..</p>の外側に現れるべきテーブルやリストのようなブロックスコープがあるようなHTML断片を挿入しようとすると、無効なHTMLとなる可能性があります。 doxygenに現在の段落を終了させ、\endhtmlonlyの後ろで再開始させるには、\htmlonly[block] を使うことができます。

注: ($(HOME) のような) 環境変数は、HTML-only なブロックの内部で解釈されます。

参照
セクション \manonly, \latexonly, \rtfonly, \xmlonly, \docbookonly

\image <format> <file> ["キャプション"] [<sizeindication>=<size>]

ドキュメントに画像を挿入します。 このコマンドは、フォーマットを認識します。 したがって、一つの画像を複数フォーマットで挿入したい場合は、 フォーマットごとにこのコマンドを繰り返さなければなりません。

最初の引数で、画像を埋め込む場合の出力フォーマットを指定します。 現在のところ、以下の値がサポートされています。html, latex, rtf

2番目の引数で、画像のファイル名を指定します。 doxygen は、IMAGE_PATH タグの後に指定したパス (またはファイル) の中から、ファイルを探し出します。 画像が見つかると、それは、現在の出力ディレクトリにコピーされます。 画像名が空白文字を含んでいる場合は、引用符 ("...") で囲む必要があります。 ファイル名のかわりに絶対 URL を指定することもできます。しかし、その場合、 doxygen は、画像のコピーも存在チェックもしません。

3番目の引数はオプションです。これを使うと、 画像の下に表示されるキャプションを指定することができます。 この引数は、1行に記述し、かつ空白文字を全く含まない場合であっても、 引用符で囲まなければなりません。 引用符は、キャプションが表示される前に取り除かれます。

4番目の引数もオプションです。これを使うと、 画像の幅や高さを指定することができます。 これは、 や docbook 出力 (つまり format=latex や format=docbook)に対して、有用です。

Size indication
サイズ指示 は、width または height のいずれかです。 sizeindication によって、採用する幅または高さ(または双方の組み合わせ)を指定できます。

サイズは、 において有効なサイズ指定である必要があります (たとえば、10cm4in\\textwidth のようなシンボリックな幅指定)。

下は、コメント・ブロックの例です:

  /*! 私の新アプリケーションのスナップショット
   *  \image html application.jpg
   *  \image latex application.eps "私のアプリケーション" width=10cm
   */

また、下は、設定ファイルの関連部分の例です:

  IMAGE_PATH     = my_image_dir
警告
HTML に対する画像フォーマットは、 ユーザが使用しているブラウザがサポートしているものに制限されます。 $\mbox{\LaTeX}$ については、画像フォーマットは、 Encapsulated PostScript (eps) でなければなりません。

doxygen は、画像が正しいフォーマットであるかどうかチェックしません。 したがって、それが正しいということは、ユーザが確認しなければなりません!

\latexonly

生成される $\mbox{\LaTeX}$ ドキュメントにのみ、 字句通りにインクルードされるテキストブロックを開始します。 ブロックは、\endlatexonly コマンドで終了します。

このコマンドは、doxygen にとっては複雑すぎる コード (すなわち、画像、式、特殊文字) をインクルードするために使用することができます。 適切な HTML の代替物を提供するために、 \htmlonly\endhtmlonly のペアを使うことができます。

注: ($(HOME) のような) 環境変数は、-only なブロックの内部で解釈されます。

参照
セクション \rtfonly, \xmlonly, \manonly, \htmlonly \docbookonly

\manonly

テキストブロックの始まりを示し、MAN ドキュメントだけに そのまま出力されます。ブロックは、\endmanonly コマンドで終わります。

このコマンドは、MAN ページに直接 groff コードを含めるのに使えます。 \htmlonly, \latexonly, \endhtmlonly, \endlatexonly を組み合わせれば、 HTML と の適切な代替となりえます。

参照: セクション \htmlonly, \xmlonly, \rtfonly, \latexonly, docbookonly


\li { 項目記述 }

このコマンドは、一つの引数を取ります。引数は、空行または別の \li に 遭遇するまで続きます。 このコマンドを使用すると、単純でネストされない引数リストが生成できます。 各引数は、\li コマンドで始まる必要があります。

例:
以下のようにタイブすると:
  \li \c AlignLeft 左揃え
  \li \c AlignCenter 中央揃え
  \li \c AlignRight 右揃え
  
  他の揃え方はサポートしていません。
次のテキストのような結果となります:

  • AlignLeft 左揃え
  • AlignCenter 中央揃え
  • AlignRight 右揃え

他の揃え方はサポートしていません。
注:
ネストされたリストには、HTMLコマンドを使う必要があります。

\arg に等価。


\n

強制的に改行します。<br> と等価で、printf関数が引き起こします。


\p <単語>

タイプライタフォントを使用して、引数 <語> を表示します。 このコマンドを使用すると、 実行中のテキスト内のメンバー関数の引数を参照することができます。

例:
  ... the \p x and \p y coordinates are used to ...
これは、次のテキストのような結果となります:

... the x and y coordinates are used to ...

\c に等価。 複数の単語をタイプライタフォントにするには、<tt>複数の単語</tt>のようにしてください。


\rtfonly

生成されるRTFドキュメントにのみ、逐語的に含まれるべきテキストブロックの始まりを指示します。ブロックは、\endrtfonly コマンドで終了します。

このコマンドは、doxygenにとっては複雑すぎるRTFコードを含めるのに使えます。

メモ: $(HOME)のような環境変数は、RTFのみのブロック内部で解決されます。

参照:セクション \manonly, \xmlonly, \latexonly, \htmlonly, \docbookonly


\verbatim

ドキュメント内に文字通りに含めたいテキストブロックを開始します。 このブロックは、\endverbatim コマンドで終了する必要があります。 verbatim ブロック内では、すべてのコマンドが無効となります。

警告
\verbatim コマンドに対して、 確実に \endverbatim コマンドを付けてください。 さもないと、doxygen は解析で混乱してしまいます!
参照
セクション \code, \verbatim, \verbinclude,

\xmlonly

生成されるXML出力にのみ、逐語的に含まれるべきテキストブロックの始まりを示します。 ブロックは、\endxmlonly コマンドで終了します。

このコマンドは、カスタムXMLタグを含めるのに使えます。

参照: セクション \manonly, \rtfonly, \latexonly, \htmlonly, \docbookonly


\\

このコマンドは、出力に、バックスラッシュ文字 (\) を書き出します。 doxygen は、バックスラッシュによってコマンドを検出するので、 バックスラッシュをエスケープしなければなりません。


\@

このコマンドは、出力に、アットマーク (\@) を書き出します。 doxygen は、アットマークによって JavaDoc コマンドを検出するので、 アットマークをエスケープしなければなりません。


\~[LanguageId]

このコマンドは言語特定フィルタの有効無効を指定します。 これを使えば、1コメントブロック中に違う言語での解説を入れて、 特定の言語を OUTPUT_LANGUAGE タグでフィルタリングするのに使えます。 特定の言語の出力だけをさせるには \~language_idを、すべての言語(デフォルト)について出力させるには \~ を使います。

例:

/*! \~english This is english \~dutch Dit is Nederlands \~german Dieses ist
    deutsch. \~ output for all languages.
 */

\&

このコマンドは、& 文字を書き出します。 この文字は、HTML において特別な意味を持つのでエスケープする必要があります。


\$

このコマンドは、$ 文字を書き出します。 この文字は、環境変数を展開するのに使うので、エスケープの必要な場合があります。


\#

このコマンドは、# 文字を書き出します。 この文字は、解説付きの要素を参照するのに使うので、エスケープの必要な場合があります。


\<

このコマンドは、< 文字を書き出します。 この文字は、HTML で特別な意味を持つのでエスケープが必要です。


\>

このコマンドは、> 文字を書き出します。 この文字は、HTML で特別な意味を持つのでエスケープが必要です。


\%

このコマンドは、% 文字を書き出します。 この文字は、解説付きのクラスや構造体でもあるワードへの自動リンクを避けるのに 使うので、エスケープの必要な場合があります。


\"

このコマンドは、" 文字を書き出します。 この文字は、書式なしの文字列を示すのにペアで使われることがあるため、 エスケープの必要な場合があります。


\.

このコマンドは、ドット(.) を出力に書き込みます。JAVADOC_AUTOBRIEF が有効な場合に要約説明の終わりを避けたり、行の始めの数字の次にドットがあるとき番号付リストが始まるのを避けたりするのに使います。


\::

このコマンドは、出力に ダブルコロン (::)を書き出します。この文字シーケンスは、ドキュメントつき要素への参照を示すのに使われるので、エスケープが必要な場合があります。


\|

このコマンドは、パイプ記号 (|) を出力に書き込みます。 この文字は、エスケープしなければならないケースもあります。Markdown テーブルに使えるからです。


\--

このコマンドは、出力に2つのダッシュ(--)を書き込みます。 一つのnダッシュ文字(–)の代わりに、2つの連続したダッシュを書き込むことが可能になります。


\---

このコマンドは、出力に3つのダッシュ(-–)を書き込みます。 一つのmダッシュ文字(—)の代わりに、3つの連続したダッシュを書き込むことが可能になります。


--- Qt との互換性のために存在するコマンド ---

以下のコマンドは、 Qt クラスブラウザジェネレータとの互換性を維持するためにサポートされています。 これらのコマンドをユーザ自身のドキュメントでは使わないでください。

  • \annotatedclasslist
  • \classhierarchy
  • \define
  • \functionindex
  • \header
  • \headerfilelist
  • \inherit
  • \l
  • \postheader

のセクションに行く / インデックス に戻る


This page was last modified on Mon Oct 25 2021.
© 1997-2021 Dimitri van Heesch, first release 27 oct 1997.
© 2001 OKA Toshiyuki (Japanese translation).
© 2006-2021 TSUJI Takahiro (Japanese translation).
© 2006-2014 TAKAGI Nobuhisa (Japanese translation).