特殊指令

簡介

文件中所有的指令都以反斜線 (\) 或 at 符號 (@) 開頭。如果您偏好,您可以將下方所有以反斜線開頭的指令替換為以 at 符號開頭的對應指令。

有些指令有一個或多個參數。每個參數都有特定的範圍。

  • 如果使用 <尖括號>,則參數是單一詞。
  • 如果使用 (圓括號),則參數延伸至指令所在行的末尾。
  • 如果使用 {大括號},則參數延伸至下一個段落。段落以空白行或章節指示符分隔。請注意,{大括號} 也用於指令選項,這裡的大括號是強制性的,並且只是「普通」字元。起始大括號必須緊接在指令之後,中間沒有空格。

如果除了上述參數指定符之外還使用 [方括號],則參數是可選的,除非它們放在引號之間,在這種情況下它們是指令參數的強制部分。

以下是所有指令的字母排序列表,並附有其文件參考:

以下小節提供 Doxygen 可識別的所有指令列表。無法識別的指令將被視為普通文本。

--- 結構指示符 ---

\addtogroup <名稱> [(標題)]

定義一個群組,就像 \defgroup 一樣,但與該指令不同的是,多次使用相同的 <名稱> 不會導致警告,而是產生一個具有合併文件和指令中找到的第一個標題的群組。

標題是可選的,因此此指令也可以用於使用 @{@} 將多個實體新增至現有群組,如下所示

  /*! \addtogroup mygrp
   *  Additional documentation for group 'mygrp'
   *  @{
   */

  /*!
   *  A function
   */
  void func1()
  {
  }

  /*! Another function */
  void func2()
  {
  }

  /*! @} */
另請參閱
頁面 分組、章節 \defgroup\ingroup\weakgroup

\callgraph

當此指令放置在函數或方法註解區塊中,並且 HAVE_DOT 設定為 YES 時,Doxygen 將為該函數產生呼叫圖(前提是函數或方法的實作呼叫了其他有文件的函數)。無論 CALL_GRAPH 的值為何,都將產生呼叫圖。

注意
呼叫圖的完整性(和正確性)取決於 Doxygen 程式碼剖析器,而程式碼剖析器並不完美。
另請參閱
章節 \callergraph、章節 \hidecallgraph、章節 \hidecallergraph 和選項 CALL_GRAPH

\hidecallgraph

當此指令放置在函數或方法註解區塊中時,Doxygen 將不會為該函數產生呼叫圖。無論 CALL_GRAPH 的值為何,都不會產生呼叫圖。

注意
呼叫圖的完整性(和正確性)取決於 Doxygen 程式碼剖析器,而程式碼剖析器並不完美。
另請參閱
章節 \callergraph、章節 \callgraph、章節 \hidecallergraph 和選項 CALL_GRAPH

\callergraph

當此指令放置在函數或方法註解區塊中,並且 HAVE_DOT 設定為 YES 時,Doxygen 將為該函數產生呼叫者圖(前提是函數或方法的實作被其他有文件的函數呼叫)。無論 CALLER_GRAPH 的值為何,都將產生呼叫者圖。

注意
呼叫者圖的完整性(和正確性)取決於 Doxygen 程式碼剖析器,而程式碼剖析器並不完美。
另請參閱
章節 \callgraph、章節 \hidecallgraph、章節 \hidecallergraph 和選項 CALLER_GRAPH

\hidecallergraph

當此指令放置在函數或方法註解區塊中時,Doxygen 將不會為該函數產生呼叫者圖。無論 CALLER_GRAPH 的值為何,都不會產生呼叫者圖。

注意
呼叫者圖的完整性(和正確性)取決於 Doxygen 程式碼剖析器,而程式碼剖析器並不完美。
另請參閱
章節 \callergraph、章節 \callgraph、章節 \hidecallgraph 和選項 CALLER_GRAPH

\showrefby

當此指令放置在函數、方法或變數的註解區塊中時,Doxygen 將為該函數、方法、變數產生一個概述,說明哪些有文件的函數和方法呼叫/使用它。無論 REFERENCED_BY_RELATION 的值為何,都將產生概述。

注意
概述的完整性(和正確性)取決於 Doxygen 程式碼剖析器,而程式碼剖析器並不完美。
另請參閱
章節 \showrefs、章節 \hiderefby、章節 \hiderefs 和選項 REFERENCED_BY_RELATION

\hiderefby

當此指令放置在函數、方法或變數的註解區塊中時,Doxygen 將不會為該函數、方法或變數產生概述,說明哪些函數和方法呼叫/使用它。無論 REFERENCED_BY_RELATION 的值為何,都不會產生概述。

注意
概述的完整性(和正確性)取決於 Doxygen 程式碼剖析器,而程式碼剖析器並不完美。
另請參閱
章節 \showrefs、章節 \showrefby、章節 \hiderefs 和選項 REFERENCED_BY_RELATION

\showrefs

當此指令放置在函數或方法註解區塊中時,Doxygen 將為該函數或方法產生一個概述,說明哪些函數和方法呼叫它。無論 REFERENCES_RELATION 的值為何,都將產生概述。

注意
概述的完整性(和正確性)取決於 Doxygen 程式碼剖析器,而程式碼剖析器並不完美。
另請參閱
章節 \showrefby、章節 \hiderefby、章節 \hiderefs 和選項 REFERENCES_RELATION

\hiderefs

當此指令放置在函數或方法註解區塊中時,Doxygen 將不會為該函數或方法產生概述,說明哪些函數和方法呼叫它。無論 REFERENCES_RELATION 的值為何,都不會產生概述。

注意
概述的完整性(和正確性)取決於 Doxygen 程式碼剖析器,而程式碼剖析器並不完美。
另請參閱
章節 \showrefs、章節 \showrefby、章節 \hiderefby 和選項 REFERENCES_RELATION

\showinlinesource

當此指令放置在函數、多行巨集、列舉或清單初始化的變數的註解區塊中時,Doxygen 將為該成員產生內嵌原始碼。無論 INLINE_SOURCES 的值為何,都將產生內嵌原始碼。

另請參閱
章節 \hideinlinesource、選項 INLINE_SOURCES

\hideinlinesource

當此指令置於函式、多行巨集、列舉或列表初始化變數的註解區塊時,Doxygen 將不會為該成員產生內嵌原始碼。無論 INLINE_SOURCES 的值為何,皆不會產生內嵌原始碼。

另請參閱
章節 \showinlinesource,選項 INLINE_SOURCES

\includegraph

當此指令置於檔案的註解區塊時,Doxygen 將為該檔案產生包含圖。無論 INCLUDE_GRAPH 的值為何,皆會產生包含圖。

另請參閱
章節 \hideincludegraph,章節 \includedbygraph,章節 \hideincludedbygraph 和選項 INCLUDE_GRAPH

\hideincludegraph

當此指令置於檔案的註解區塊時,Doxygen 將不會為該檔案產生包含圖。無論 INCLUDE_GRAPH 的值為何,皆不會產生包含圖。

另請參閱
章節 \includegraph,章節 \includedbygraph,章節 \hideincludedbygraph 和選項 INCLUDE_GRAPH

\includedbygraph

當此指令置於包含檔的註解區塊時,Doxygen 將為該包含檔產生被包含圖。無論 INCLUDED_BY_GRAPH 的值為何,皆會產生被包含圖。

另請參閱
章節 \hideincludedbygraph,章節 \ncludegraph,章節 \hideincludegraph 和選項 INCLUDED_BY_GRAPH

\hideincludedbygraph

當此指令置於包含檔的註解區塊時,Doxygen 將不會為該包含檔產生被包含圖。無論 INCLUDED_BY_GRAPH 的值為何,皆不會產生被包含圖。

另請參閱
章節 \includedbygraph,章節 \ncludegraph,章節 \hideincludegraph 和選項 INCLUDED_BY_GRAPH

\directorygraph

當此指令置於目錄的註解區塊時 (請參閱章節 \dir),Doxygen 將為該目錄產生目錄圖。無論 DIRECTORY_GRAPH 的值為何,皆會產生目錄圖。

另請參閱
章節 \hidedirectorygraph,選項 DIRECTORY_GRAPH

\hidedirectorygraph

當此指令置於目錄的註解區塊時 (請參閱章節 \dir),Doxygen 將不會為該目錄產生目錄圖。無論 DIRECTORY_GRAPH 的值為何,皆不會產生目錄圖。

另請參閱
章節 \directorygraph,選項 DIRECTORY_GRAPH

\collaborationgraph

當此指令置於類別的註解區塊時,Doxygen 將為該類別產生協作圖。無論 COLLABORATION_GRAPH 的值為何,皆會產生協作圖。

另請參閱
章節 \hidecollaborationgraph,選項 COLLABORATION_GRAPH

\hidecollaborationgraph

當此指令置於類別的註解區塊時,Doxygen 將不會為該類別產生協作圖。無論 COLLABORATION_GRAPH 的值為何,皆不會產生協作圖。

另請參閱
章節 \collaborationgraph,選項 COLLABORATION_GRAPH

\inheritancegraph['{option}']

當此指令置於類別的註解區塊時,Doxygen 將為該類別產生符合 option 的繼承圖。無論 CLASS_GRAPH 的值為何,皆會產生符合 option 的繼承圖。 option 的可能值與 CLASS_GRAPH 可用的值相同。若未指定 option,則預設值為 YES

另請參閱
章節 \hideinheritancegraph,選項 CLASS_GRAPH

\hideinheritancegraph

當此指令置於類別的註解區塊時,Doxygen 將不會為該類別產生繼承圖。無論 CLASS_GRAPH 的值為何,皆不會產生繼承圖。

另請參閱
章節 \inheritancegraph,選項 CLASS_GRAPH

\groupgraph

當此指令置於 \defgroup 指令的註解區塊時,Doxygen 將為該群組產生群組依賴圖。無論 GROUP_GRAPHS 的值為何,皆會產生群組圖。

另請參閱
章節 \hidegroupgraph,選項 GROUP_GRAPHS

\hidegroupgraph

當此指令置於 \defgroup 指令的註解區塊時,Doxygen 將不會為該群組產生群組依賴圖。無論 GROUP_GRAPHS 的值為何,皆不會產生群組圖。

另請參閱
章節 \groupgraph,選項 GROUP_GRAPHS

\showenumvalues

當此指令置於列舉的註解區塊時,doxygen 將顯示該列舉的指定列舉值,無論 SHOW_ENUM_VALUES 的值為何。

另請參閱
章節 \hideenumvalues,選項 SHOW_ENUM_VALUES

\hideenumvalues

當此指令置於列舉的註解區塊時,doxygen 將不會顯示該列舉的指定列舉值,無論 SHOW_ENUM_VALUES 的值為何。

另請參閱
章節 \showenumvalues,選項 SHOW_ENUM_VALUES

\qualifier <標籤> | "(文字)"

使用此指令可以為成員和類別新增自訂限定詞標籤。這些標籤將以與自動產生的標籤 (例如 "static"、"inline" 和 "final") 相同的方式顯示在輸出中。

例如,若要表示函式僅供測試用途,可以新增 \qualifier test


\category <名稱> [<標頭檔>] [<標頭名稱>]

僅限 Objective-C:表示註解區塊包含名稱為 <名稱> 的類別類別文件。引數與 \class 指令相同。

另請參閱
章節 \class

\class <名稱> [<標頭檔>] [<標頭名稱>]

表示註解區塊包含名稱為 <名稱> 的類別文件。選擇性地可以指定標頭檔和標頭名稱。如果指定了標頭檔,HTML 文件中將會包含一個指向標頭檔逐字副本的連結。 <標頭名稱> 引數可用於覆寫類別文件中使用的連結名稱,使其與 <標頭檔> 不同。如果 include 名稱不在預設的 include 路徑上 (例如 <X11/X.h>),這會很有用。您也可以使用 <標頭名稱> 引數指定 include 敘述的外觀,方法是在名稱周圍加上引號或角括號。如果僅給定名稱,則使用角括號。請注意,最後兩個引數也可以使用 \headerfile 指令指定。

範例
/* 一個虛擬類別 */
class Test
{
};
/*! \class Test class.h "inc/class.h"
* \brief 這是一個測試類別。
*
* 有關 Test 類別的一些詳細資訊。
*/
點擊 此處 以取得 Doxygen 產生的對應 HTML 文件。

\concept <名稱>

表示註解區塊包含名稱為 <名稱> 的 C++20 概念文件。另請參閱 \headerfile 指令,以指定使用者應包含的標頭才能使用該概念。


\def <名稱>

表示註解區塊包含 #define 巨集的文件。

範例
/*! \file define.h
\brief 測試定義
這是為了測試定義的文件。
*/
/*!
\def MAX(x,y)
計算 \a x 和 \a y 的最大值。
*/
/*!
\brief 計算其引數 \a x 的絕對值。
\param x 輸入值。
\returns \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))
/*!< 計算 \a x 和 \a y 的最小值。 */
點擊 此處 以取得 Doxygen 產生的對應 HTML 文件。

\defgroup <名稱> (群組標題)

表示註解區塊包含類別、模組、概念、檔案或命名空間的 主題 文件。這可用於對符號進行分類,並記錄這些類別。您也可以將群組用作其他群組的成員,從而建立群組的階層。

<名稱> 引數應為單字識別碼。

另請參閱
頁面 分組,章節 \ingroup\addtogroup\weakgroup

\dir [<路徑片段>]

表示註解區塊包含目錄的文件。"路徑片段" 引數應包含目錄名稱和足夠的路徑,以使其相對於專案中的其他目錄是唯一的。 STRIP_FROM_PATH 選項決定在輸出中顯示之前,從完整路徑中去除哪些部分。


\enum <名稱>

表示註解區塊包含名稱為 <名稱> 的列舉文件。如果列舉是類別的成員,且文件區塊位於類別定義之外,則也應指定類別的範圍。如果註解區塊直接位於列舉宣告之前,則可以省略 \enum 註解。

注意
無法記錄匿名列舉的類型,但可以記錄匿名列舉的值。
範例
class Enum_Test
{
public:
enum TEnum { Val1, Val2 };
/*! 另一個列舉,帶有內嵌文件 */
enum AnotherEnum
{
V1, /*!< 值 1 */
V2 /*!< 值 2 */
};
};
/*! \class Enum_Test
* 類別的描述。
*/
/*! \enum Enum_Test::TEnum
* 列舉型別的描述。
*/
/*! \var Enum_Test::TEnum Enum_Test::Val1
* 第一個列舉值的描述。
*/
點擊這裡查看 Doxygen 產生的對應 HTML 文件。

\example['{lineno}'] <檔案名稱>

表示註解區塊包含原始碼範例的文件。原始檔名稱為 <檔案名稱>。此檔案的內容將會包含在文件中,緊接在註解區塊所包含的文件之後。您可以加入選項 {lineno},如果需要的話,可以啟用範例的行號。所有範例都會放在一個列表中。原始碼會掃描是否有已記錄的成員和類別。如果找到任何項目,其名稱會與文件交叉參照。可以使用 Doxygen 設定檔的 EXAMPLE_PATH 標籤指定原始檔或目錄。

如果 <檔案名稱> 本身對於 EXAMPLE_PATH 標籤指定的範例檔案集合而言不是唯一的,您可以加入部分絕對路徑來消除歧義。

如果範例需要多個原始檔,則可以使用 \include 命令。

範例
/** 一個 Example_Test 類別。
* 關於此類別的更多詳細資訊。
*/
class Example_Test
{
public:
/** 一個範例成員函式。
* 關於此函式的更多詳細資訊。
*/
void example();
};
void Example_Test::example() {}
/** \example example_test.cpp
* 這是一個如何使用 Example_Test 類別的範例。
* 關於此範例的更多詳細資訊。
*/
範例檔案 example_test.cpp 如下所示
void main()
{
Example_Test t;
t.example();
}
點擊這裡查看 Doxygen 產生的對應 HTML 文件。
另請參閱
區段 \include

\endinternal

此命令會結束一個以 \internal 命令開始的文件片段。只有當 INTERNAL_DOCS 設定為 YES 時,才會顯示 \internal\endinternal 之間的文字。


\extends <名稱>

當程式語言本身不支援此概念時 (例如 C),可以使用此命令手動指示繼承關係。

範例目錄中的檔案 manual.c 顯示如何使用此命令 (另請參閱 \memberof 以取得完整檔案)。

點擊這裡查看 Doxygen 產生的對應 HTML 文件。

另請參閱
區段 \implements 和區段 \memberof

\file [<名稱>]

表示註解區塊包含名稱為 <名稱> 的原始檔或標頭檔的文件。如果單獨的檔案名稱不是唯一的,則檔案名稱可以包含 (部分) 路徑。如果省略檔案名稱 (亦即,在 \file 之後的行保留為空白),則包含 \file 命令的文件區塊將會屬於該命令所在檔案。

重要事項
只有當全域函式、變數、typedef 和列舉所在的檔案也有文件或 EXTRACT_ALL 設定為 YES 時,其文件才會包含在輸出中。
範例
/** \file file.h
* 簡要的檔案描述。
* 更詳細的檔案描述。
*/
/**
* 全域整數值。
* 關於此值的更多詳細資訊。
*/
extern int globalValue;
點擊這裡查看 Doxygen 產生的對應 HTML 文件。
注意
在上述範例中,設定檔中的 JAVADOC_AUTOBRIEF 已設定為 YES

\fileinfo['{'選項'}']

顯示此命令所在的檔案名稱 (部分)。選項 可以是 nameextensionfilenamedirectoryfull,其中

  • name 沒有副檔名的檔案名稱
  • extension 檔案的副檔名
  • filename 檔案名稱,亦即 name 加上 extension
  • directory 給定檔案的目錄
  • full 給定檔案的完整路徑和檔案名稱。

如果未指定選項,則會使用 filename,除非 FULL_PATH_NAMES 設定為 YES,在這種情況下會使用 full

注意
\fileinfo 命令不能做為 \file 命令的引數使用
另請參閱
區段 \lineinfo

\lineinfo

顯示此命令所在的檔案內行號。

另請參閱
區段 \fileinfo

\fn (函式宣告)

表示註解區塊包含函式 (全域或做為類別的成員) 的文件。只有當註解區塊放置在函式宣告或定義的前面 (或後面) 時,才需要此命令。

如果您的註解區塊位於函式宣告或定義的前面,則可以 (且為了避免冗餘,應該) 省略此命令。

完整的函式宣告 (包含引數) 應該在 \fn 命令之後的行上指定,因為引數會在行尾結束!

此命令等同於 \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 類別。
*
* 關於 Fn_Test 的詳細資訊。
*/
/*! \fn const char *Fn_Test::member(char c,int n)
* \brief 成員函式。
* \param c 字元。
* \param n 整數。
* \exception std::out_of_range 參數超出範圍。
* \return 字元指標。
*/
點擊這裡查看 Doxygen 產生的對應 HTML 文件。
另請參閱
區段 \var\property\typedef

\headerfile <標頭檔> [<標頭名稱>]

用於類別、結構或聯集文件,其中文件位於定義的前面。此命令的引數與 \class 的第二個和第三個引數相同。<標頭檔> 名稱是指應用程式為了取得類別、結構或聯集的定義而應該包含的檔案。<標頭名稱> 引數可用於覆寫類別文件中使用的連結名稱,使其與 <標頭檔> 不同。如果包含名稱未位於預設的包含路徑上 (例如 <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_INCLUDES 設定為 YES

若要完全停用包含資訊,請將 SHOW_HEADERFILE 設定為 NO


\hideinitializer

預設情況下,會顯示定義的值和變數的初始設定式,除非它們的長度超過 30 行。將此命令放入定義或變數的註解區塊中,則初始設定式一律會隱藏。可以使用設定參數 MAX_INITIALIZER_LINES 變更初始設定行數上限,預設值為 30。

另請參閱
區段 \showinitializer

\idlexcept <名稱>

表示註解區塊包含名稱為 <名稱> 的 IDL 例外狀況的文件。


\implements <名稱>

當程式語言本身不支援此概念時 (例如 C),可以使用此命令手動指示繼承關係。

範例目錄中的檔案 manual.c 顯示如何使用此命令 (另請參閱 \memberof 以取得完整檔案)。

點擊這裡查看 Doxygen 產生的對應 HTML 文件。

另請參閱
區段 \extends 和區段 \memberof

\ingroup (<群組名稱> [<群組名稱>]*)

如果 \ingroup 命令放置在複合實體 (例如類別、檔案或命名空間) 的註解區塊中,則會將其加入以 <群組名稱> 識別的群組。對於成員 (例如變數、函式、typedef 和列舉),成員只會加入一個群組 (以避免在成員未在其類別、命名空間或檔案的內容中記錄,而僅做為群組一部分時,產生不明確的連結目標)。

另請參閱
頁面 分組、區段 \defgroup\addtogroup\weakgroup

\interface <名稱> [<標頭檔>] [<標頭名稱>]

表示註解區塊包含名稱為 <名稱> 的介面文件。引數與 \class 命令的引數相同。

另請參閱
章節 \class

\internal

此命令會開始一個僅供內部使用的文件片段。片段自然會在註解區塊的結尾結束。您也可以使用 \endinternal 命令強制內部區段提前結束。

如果 \internal 命令放置在區段內 (請參閱例如 \section),則該命令之後的所有子區段也會被視為內部區段。只有在相同層級的新區段才會結束被視為內部的片段。

您可以使用設定檔中的 INTERNAL_DOCS 來顯示 (YES) 或隱藏 (NO) 內部文件。

另請參閱
區段 \endinternal

\mainpage [(標題)]

如果將 \mainpage 命令放置在註解區塊中,則該區塊會被用來自訂首頁 (在 HTML 中) 或第一章 (在 {\LaTeX} 中)。

標題參數是可選的,它會取代 Doxygen 通常產生的預設標題。如果您不想要任何標題,您可以將 notitle 指定為 \mainpage 的參數。

以下是一個範例

/*! \mainpage My Personal Index Page
 *
 * \section intro_sec Introduction
 *
 * This is the introduction.
 *
 * \section install_sec Installation
 *
 * \subsection step1 Step 1: Opening the box
 *
 * etc...
 */

您可以使用以下方式參照首頁:\ref index

另請參閱
章節 \section、小節 \subsection 和頁面 \page

\memberof <name>

此命令使函數成為類別的成員,方式與 \relates 類似,只不過使用此命令時,函數會被表示為類別的真實成員。當程式語言本身不支援成員函數的概念時(例如 C),這會很有用。

也可以將此命令與 \public\protected\private 一起使用。

範例
範例目錄中的 manual.c 檔案展示了如何使用此命令
/**
* \file manual.c
*/
typedef struct Object Object; //!< 物件類型
typedef struct Vehicle Vehicle; //!< 載具類型
typedef struct Car Car; //!< 汽車類型
typedef struct Truck Truck; //!< 卡車類型
/*!
* 基礎物件類別。
*/
struct Object
{
int ref; //!< \private 參考計數。
};
/*!
* 將物件參考計數增加一。
* \public \memberof Object
*/
static Object * objRef(Object *obj);
/*!
* 將物件參考計數減少一。
* \public \memberof Object
*/
static Object * objUnref(Object *obj);
/*!
* 載具類別。
* \extends Object
*/
struct Vehicle
{
Object base; //!< \protected 基礎類別。
};
/*!
* 啟動載具。
* \public \memberof Vehicle
*/
void vehicleStart(Vehicle *obj);
/*!
* 停止載具。
* \public \memberof Vehicle
*/
void vehicleStop(Vehicle *obj);
/*!
* 汽車類別。
* \extends Vehicle
*/
struct Car
{
Vehicle base; //!< \protected 基礎類別。
};
/*!
* 卡車類別。
* \extends Vehicle
*/
struct Truck
{
Vehicle base; //!< \protected 基礎類別。
};
/*!
* 主要函數。
*
* 參照 vehicleStart()、objRef()、objUnref()。
*/
int main(void)
{
Car c;
vehicleStart((Vehicle*) &c);
}
點擊這裡查看 Doxygen 產生的對應 HTML 文件。
另請參閱
章節 \extends\implements\public\protected\private

\module <name>

表示註解區塊包含名稱為 <name> 的 C++20 模組的文件。


\name [(header)]

此命令將註解區塊轉換為成員群組的標頭定義。註解區塊之後應緊接著一個包含群組成員的 @{ ... @} 區塊。

有關範例,請參閱 成員群組 章節。


\namespace <name>

表示註解區塊包含名稱為 <name> 的命名空間的文件。


\nosubgrouping

此命令可以放在類別的文件中。它可以與成員分組結合使用,以避免 Doxygen 將成員群組置於 Public/Protected/Private/... 區段的子群組中。

另請參閱
章節 \publicsection\protectedsection\privatesection

\overload [(函數宣告)]

此命令可用於為重載的成員函數產生以下標準文字

‍這是一個為了方便而提供的重載成員函數。它與上面的函數的區別僅在於它接受的參數。

如果重載成員函數的文件不是位於函數宣告或定義之前,則應使用可選參數來指定重載函數的正確宣告。當然,當 \overload 命令直接位於重載的成員函數之前,並且使用了可選參數時,這也應該是重載函數的正確宣告。

註解區塊中的任何其他文件都將附加在產生的訊息之後。

注意 1
您有責任確保確實存在一個先前記錄的成員被此成員重載。為了防止文件重新排序文件,在這種情況下您應該將 SORT_MEMBER_DOCS 設定為 NO
注意 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 簡短描述。
*
* 更多文字。
*/
/*! \fn void Overload_Test::drawRect(int x,int y,int w,int h)
* 此命令繪製一個左上角位於 ( \a x , \a y ) 的矩形,
* 寬度為 \a w,高度為 \a h。
*/
/*!
* \overload void Overload_Test::drawRect(const Rect &r)
*/
點擊這裡 以查看 Doxygen 產生的對應 HTML 文件。

\package <name>

表示註解區塊包含名稱為 <name> 的 Java 套件的文件。


\page <name> (標題)

表示註解區塊包含一段與特定類別、檔案或成員沒有直接關聯的文件。HTML 產生器會建立一個包含文件的頁面。{\LaTeX} 產生器會在「頁面文件」章節中開始一個新的章節。

範例
/*! \page page1 一個文件頁面
\tableofcontents
開頭文字。
\section sec 一個範例章節
此頁面包含子章節 \ref subsection1 和 \ref subsection2。
如需更多資訊,請參閱頁面 \ref page2。
\subsection subsection1 第一個子章節
文字。
\subsection subsection2 第二個子章節
更多文字。
*/
/*! \page page2 另一個頁面
甚至更多資訊。
*/
點擊這裡 以查看 Doxygen 產生的對應 HTML 文件。
注意
<name> 參數由字母和數字的組合組成。如果您希望在 <name> 參數中使用大寫字母 (例如 MYPAGE1) 或大小寫混合字母 (例如 MyPage1),則應將 CASE_SENSE_NAMES 設定為 YES。但是,只有在您的檔案系統區分大小寫時,才建議這樣做。否則(為了更好的可攜性),您應該在對頁面的所有參照中,為 <name> 使用所有小寫字母 (例如 mypage1)。
另請參閱
章節 \section、小節 \subsection 和參照 \ref

\private

表示註解區塊所記錄的成員是私有的,也就是說,只能由同一類別中的其他成員存取。

請注意,Doxygen 會自動偵測物件導向語言中成員的保護級別。此命令僅適用於當語言本身不支援保護級別的概念時 (例如 C、PHP 4)。

為了開始一個私有成員的區段,方式類似於 C++ 中的 "private:" 類別標記,請使用 \privatesection

另請參閱
章節 \memberof\public\protected\privatesection

\privatesection

開始一個私有成員的區段,方式類似於 C++ 中的 "private:" 類別標記。表示註解區塊所記錄的成員是私有的,也就是說,只能由同一類別中的其他成員存取。

另請參閱
章節 \memberof\public\protected\private

\property (限定屬性名稱)

表示註解區塊包含屬性 (全域或類別成員) 的文件。此命令等效於 \fn\typedef\var

另請參閱
章節 \fn\typedef\var

\protected

表示註解區塊所記錄的成員是受保護的,也就是說,只能由同一類別或衍生類別中的其他成員存取。

請注意,Doxygen 會自動偵測物件導向語言中成員的保護級別。此命令僅適用於當語言本身不支援保護級別的概念時 (例如 C、PHP 4)。

為了開始一個受保護成員的區段,方式類似於 C++ 中的 "protected:" 類別標記,請使用 \protectedsection

另請參閱
章節 \memberof\public\private\protectedsection

\protectedsection

開始一個受保護成員的區段,方式類似於 C++ 中的 "protected:" 類別標記。表示註解區塊所記錄的成員是受保護的,也就是說,只能由同一類別或衍生類別中的其他成員存取。

另請參閱
章節 \memberof\public\private\protected

\protocol <name> [<header-file>] [<header-name>]

表示註解區塊包含名稱為 <name> 的 Objective-C 中協定的文件。參數與 \class 命令相同。

另請參閱
章節 \class

\public

表示註解區塊所記錄的成員是公開的,也就是說,可以由任何其他類別或函數存取。

請注意,Doxygen 會自動偵測物件導向語言中成員的保護級別。此命令僅適用於當語言本身不支援保護級別的概念時 (例如 C、PHP 4)。

為了開始一個公開成員的區段,方式類似於 C++ 中的 "public:" 類別標記,請使用 \publicsection

另請參閱
章節 \memberof\protected\private\publicsection

\publicsection

開始一個公開成員的區段,類似於 C++ 中的 "public:" 類別標記。表示註解區塊所記錄的成員是公開的,也就是說,可以被任何其他類別或函式存取。

另請參閱
章節 \memberof\protected\private\public

\pure

表示註解區塊所記錄的成員是純虛擬的,也就是說,它是抽象的,沒有與之相關的實作。

此命令僅用於語言本身不原生支援純虛擬方法概念時 (例如 C、PHP 4)。


\relates <名稱>

此命令可用於非成員函式 <名稱> 的文件。它將函式放在類別文件的「相關函式」區段中。此命令對於記錄與特定類別密切相關的非朋友函式很有用。它可以避免必須記錄檔案,但僅適用於函式。

範例
/*!
* 一個字串類別。
*/
class String
{
friend int strcmp(const String &,const String &);
};
/*!
* 比較兩個字串。
*/
int strcmp(const String &s1,const String &s2)
{
}
/*! \relates String
* 一個字串偵錯函式。
*/
void stringDebug()
{
}
點擊這裡查看 Doxygen 產生的相應 HTML 文件。

\related <名稱>

等同於 \relates


\relatesalso <名稱>

此命令可用於非成員函式 <名稱> 的文件。它將函式同時放在類別文件的「相關函式」區段中,並保留在它正常的檔案文件位置。此命令對於記錄與特定類別密切相關的非朋友函式很有用。它僅適用於函式。


\relatedalso <名稱>

等同於 \relatesalso


\showinitializer

預設情況下,只有當 define 的值和變數的初始化器少於 30 行時才會顯示。透過在 define 或變數的註解區塊中放置此命令,初始化器將無條件顯示。最大初始化行數可以使用組態參數 MAX_INITIALIZER_LINES 更改,預設值為 30。

另請參閱
參見章節 \hideinitializer

\static

表示註解區塊所記錄的成員是靜態的,也就是說,它作用於類別,而不是類別的實例。

此命令僅用於語言本身不原生支援靜態方法概念時 (例如 C)。


\struct <名稱> [<標頭檔>] [<標頭名稱>]

表示註解區塊包含名稱為 <名稱> 的結構的文件。參數與 \class 命令的參數相同。

另請參閱
章節 \class

\typedef (typedef 宣告)

表示註解區塊包含 typedef 的文件 (全域或作為類別的成員)。此命令等同於 \fn\property\var

另請參閱
參見章節 \fn\property\var

\union <名稱> [<標頭檔>] [<標頭名稱>]

表示註解區塊包含名稱為 <名稱> 的聯合的文件。參數與 \class 命令的參數相同。

另請參閱
章節 \class

\var (變數宣告)

表示註解區塊包含變數或列舉值的文件 (全域或作為類別的成員)。此命令等同於 \fn\property\typedef

請注意,對於 PHP,也可以指定變數的類型。語法與 phpDocumentor 類似,但描述必須從下一行開始,即:

@var  datatype $varname
Description
另請參閱
參見章節 \fn\property\typedef

\vhdlflow [(流程圖的標題)]

這是一個 VHDL 特定的命令,可以放在程序的文檔中,以產生程序中邏輯的流程圖。可選擇提供流程圖的標題。

注意
目前,流程圖只會出現在 HTML 輸出中。

\weakgroup <名稱> [(標題)]

可以像 \addtogroup 一樣使用,但在解析衝突的分組定義時具有較低的優先順序。

另請參閱
參見頁面 分組 和章節 \addtogroup

--- 章節指示器 ---


\attention { 注意事項文字 }

開始一個段落,可以在其中輸入需要注意的訊息。段落會縮排。段落的文字沒有特殊的內部結構。所有視覺增強命令都可以在段落中使用。多個相鄰的 \attention 命令會被合併成一個段落。當遇到空白行或其他章節命令時,\attention 命令結束。


\author { 作者列表 }

開始一個段落,可以在其中輸入一個或多個作者姓名。段落會縮排。段落的文字沒有特殊的內部結構。所有視覺增強命令都可以在段落中使用。多個相鄰的 \author 命令會被合併成一個段落。每個作者描述都會在新行開始。或者,一個 \author 命令可以提及多個作者。當遇到空白行或其他章節命令時,\author 命令結束。

範例
/*!
* \brief 相當不錯的類別。
* \details 這個類別是用來示範一些章節命令。
* \author John Doe
* \author Jan Doe
* \version 4.1a
* \date 1990-2011
* \pre 首先初始化系統。
* \bug 刪除此類別的物件時,並非所有記憶體都會釋放。
* \warning 使用不當可能會導致應用程式崩潰
* \copyright GNU 公共授權條款。
*/
class SomeNiceClass {};
點擊這裡查看 Doxygen 產生的相應 HTML 文件。

\authors { 作者列表 }

等同於 \author


\brief { 簡短描述 }

開始一個段落,作為簡短描述。對於類別和檔案,簡短描述將用於清單中和文件頁面的開頭。對於類別和檔案成員,簡短描述將放置在成員的宣告處,並附加到詳細描述之前。簡短描述可以跨越多行 (儘管建議保持簡短!)。當遇到空白行或另一個章節命令時,簡短描述結束。如果存在多個 \brief 命令,它們將被合併。有關範例,請參閱章節 \author

\short 同義。


\bug { 錯誤描述 }

開始一個段落,可以在其中報告一個或多個錯誤。段落會縮排。段落的文字沒有特殊的內部結構。所有視覺增強命令都可以在段落中使用。多個相鄰的 \bug 命令會被合併成一個段落。每個錯誤描述都會在新行開始。或者,一個 \bug 命令可以提及多個錯誤。當遇到空白行或其他章節命令時,\bug 命令結束。有關範例,請參閱章節 \author

描述也會在單獨的錯誤清單中新增一個項目,並且描述的兩個實例將會互相參照。錯誤清單中的每個項目之前都會有一個標頭,指示該項目的來源。

錯誤清單和對應的條目可以透過將 GENERATE_BUGLIST 設定為 NO 來停用。


\cond [(章節標籤)]

開始一個條件區段,該區段以相應的 \endcond 命令結束,該命令通常在另一個註解區塊中找到。這對命令的主要目的是 (有條件地) 將檔案的一部分排除在處理之外 (在舊版本的 Doxygen 中,這只能使用 C 前置處理器命令來實現)。

位於 \cond\endcond 之間的區段,可以透過將其區段標籤加入 ENABLED_SECTIONS 設定選項來包含進來。如果省略區段標籤,該區段將無條件地被排除在處理之外。區段標籤可以是區段標籤、圓括號、&& (AND)、|| (OR) 和 ! (NOT) 所構成的邏輯表達式。如果使用表達式,需要將其包在圓括號中,例如 \cond (!LABEL1 && LABEL2)

對於註解區塊內的條件式區段,應使用 \if ... \endif 區塊。當使用 \cond 且條件不滿足時,目前的註解區塊會結束,並且會移除直到相符的 \endcond 的所有內容,並在那裡開始一個新的命令區塊。

條件式區段可以巢狀化。在這種情況下,只有當巢狀區段及其包含區段都被包含時,才會顯示巢狀區段。

以下範例展示了這些命令的運作方式

/** An interface */
class Intf
{
  public:
    /** A method */
    virtual void func() = 0;

    /// @cond TEST

    /** A method used for testing */
    virtual void test() = 0;

    /// @endcond
};

/// @cond DEV
/*
 *  The implementation of the interface
 */
class Implementation : public Intf
{
  public:
    void func();

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

    /// @cond
    /** This method is obsolete and does
     *  not show up in the documentation.
     */
    void obsolete();
    /// @endcond
};

/// @endcond

輸出結果會因 ENABLED_SECTIONS 是否包含 TESTDEV 而有所不同

另請參閱
區段 \if\ifnot\else\elseif\endif\endcondENABLED_SECTIONS
注意
由於剖析時機的關係,\cond\endcond 命令不能在 ALIASES 中使用。

\copyright { 版權描述 }

開始一個段落,可以在其中描述實體的版權。此段落將會縮排。段落的文字沒有特殊的內部結構。請參閱 \author 區段以取得範例。


\date { 日期描述 }

開始一個段落,可以在其中輸入一個或多個日期。此段落將會縮排。段落的文字沒有特殊的內部結構。所有視覺強化命令都可以在段落內使用。多個相鄰的 \date 命令將會合併為單一段落。每個日期描述都將從新的一行開始。或者,一個 \date 命令可以提及多個日期。當遇到空白行或其他分節命令時,\date 命令會結束。請參閱 \author 區段以取得範例。


\showdate "<格式>" [ <日期時間> ]

根據給定的 <格式> 和 <日期時間> 顯示日期和時間。其中 <格式> 是一個字串,其中下列符號具有特殊含義

代碼描述
%y不含世紀的年份,以零填充的十進制數字表示。
%Y包含世紀的年份,以十進制數字表示。
%m月份,以零填充的十進制數字表示。
%-m月份,以十進制數字表示。
%b月份,以地區的縮寫名稱表示。
%B月份,以地區的完整名稱表示。
%d月份中的日期,以零填充的十進制數字表示。
%-d月份中的日期,以十進制數字表示。
%u星期幾,以十進制數字表示 (1-7),其中星期一為 1。
%w星期幾,以十進制數字表示 (0-6),其中星期日為 0。
%a星期幾,以地區的縮寫名稱表示。
%A星期幾,以地區的完整名稱表示。
   
%H小時 (24 小時制),以零填充的十進制數字表示。
%-H小時 (24 小時制),以十進制數字表示。
%I小時 (12 小時制),以零填充的十進制數字表示。
%-I小時 (12 小時制),以十進制數字表示。
%M分鐘,以零填充的十進制數字表示。
%-M分鐘,以十進制數字表示。
%S秒,以零填充的十進制數字表示。
%-S秒,以十進制數字表示。
%p地區的 AM 或 PM 對應值。
   
%% 一個 % 字元。

請注意,<格式> 必須在雙引號之間。

如果指定了 <日期時間>,則必須具有以下表示形式

  • 可選的 date,其中 date
    • 年份的 4 位數字
    • 一個減號
    • 月份的 1 或 2 位數字
    • 一個減號
    • 日期的 1 或 2 位數字
  • 可選的 time,其中 time
    • 空白
    • 小時的 1 或 2 位數字
    • 一個冒號
    • 分鐘的 1 或 2 位數字
    • 當格式包含 %S 或 %-S 時
      • 一個冒號
      • 秒的 2 位數字

如果未指定 <日期時間>,則使用目前的日期和時間。

以下是一個範例

- \showdate "%A %d-%m-%Y" 2015-3-14
- \showdate "%a %d-%m-%y" 2015-3-14
- \showdate "%-m.%d%y" 2015-3-14
- \showdate "%A %d-%m-%Y %H:%M:%S" 2015-3-14 03:04:15
- \showdate "%A %d-%m-%Y %H:%M" 2015-3-14 03:04

如果 OUTPUT_LANGUAGE=english,則結果為

  • Saturday 14-03-2015
  • Sat 14-03-15
  • 3.1415
  • Saturday 14-03-15 03:04:15
  • Saturday 14-03-15 03:04

如果 OUTPUT_LANGUAGE=dutch,則結果為

  • zaterdag 14-03-15
  • za 14-03-2015
  • 3.1415
  • zaterdag 14-03-15 03:04:15
  • zaterdag 14-03-15 03:04

\deprecated { 描述 }

開始一個段落,指示此文件區塊屬於已棄用的實體。可以用來描述替代方案、預期的生命週期等等。此段落將會縮排。段落的文字沒有特殊的內部結構。所有視覺強化命令都可以在段落內使用。多個相鄰的 \deprecated 命令將會合併為單一段落。每個棄用描述都將從新的一行開始。當遇到空白行或其他分節命令時,\deprecated 命令會結束。

此描述還會將一個項目添加到單獨的「已棄用」清單中,並且這兩個描述的實例將會交叉參照。 「已棄用」清單中的每個項目都會在前面加上一個標頭,指示該項目的來源。

可以將 GENERATE_DEPRECATEDLIST 設定為 NO 來停用「已棄用」清單和對應的項目。


\details { 詳細描述 }

就像 \brief 開始簡短描述一樣,\details 開始詳細描述。您也可以開始一個新段落 (空白行),則不需要 \details 命令。


\noop ( 要忽略的文字 )

將忽略直到行尾的所有文字,包括命令。此命令最常與 ALIASES 結合使用,以忽略例如其他處理工具中存在的不支援命令。


\raisewarning ( 要顯示為警告的文字 )

將文字 (不包含命令) 一字不差地顯示為文件警告,直到行尾。文字 (包含命令) 會從輸出中移除。此命令最常與 ALIASES 結合使用,以顯示特定的警告。

範例
\raisewarning My specific warning

\warnNoDoc

\warnNoDoc{My specific warning}
ALIASES  = warnNoDoc="\raisewarning Missing documentation"
ALIASES += warnNoDoc{1}="\raisewarning Incomplete documentation: \1"
將導致
   ex_1.md:1: warning: My specific warning
   ex_1.md:3: warning: Missing documentation
   ex_1.md:5: warning: Incomplete documentation: My specific warning

\else

如果先前的條件式區段未啟用,則開始條件式區段。先前的區段應該已使用 \if\ifnot\elseif 命令開始。

另請參閱
區段 \if\ifnot\elseif\endif。

\elseif (區段標籤)

如果先前的區段未啟用,則開始條件式文件區段。條件式區段預設為停用。若要啟用它,您必須將區段標籤放在設定檔中 ENABLED_SECTIONS 標籤之後。區段標籤可以是區段名稱、圓括號、&& (AND)、|| (OR) 和 ! (NOT) 所構成的邏輯表達式。條件式區塊可以巢狀化。只有當所有外圍區段也啟用時,才會啟用巢狀區段。

另請參閱
區段 \if\ifnot\else\endif。

\endcond

結束由 \cond 開始的條件式區段。

另請參閱
區段 \cond
注意
由於剖析時機的關係,\endcond\cond 命令不能在 ALIASES 中使用。

\endif

結束由 \if\ifnot 開始的條件式區段。對於每個 \if\ifnot,必須有一個且只有一個相符的 \endif 跟隨。

另請參閱
區段 \if\ifnot\else\elseif。

\exception <例外物件> { 例外描述 }

開始一個名稱為 <例外物件> 的例外物件的例外描述。後接例外的描述。不會檢查例外物件的存在。段落的文字沒有特殊的內部結構。所有視覺強化命令都可以在段落內使用。多個相鄰的 \exception 命令將會合併為單一段落。每個例外描述都將從新的一行開始。當遇到空白行或其他分節命令時,\exception 描述會結束。請參閱 \fn 區段以取得範例。


\if (區段標籤)

開始一個條件式文件區段。此區段以相符的 \endif 命令結束。條件式區段預設為停用。若要啟用它,您必須將區段標籤放在設定檔中 ENABLED_SECTIONS 標籤之後。

區段標籤可以是區段名稱、圓括號、&& (AND)、|| (OR) 和 ! (NOT) 所構成的邏輯表達式。如果使用表達式,需要將其包在圓括號中,例如 \if (!LABEL1 && LABEL2)

條件式區塊可以巢狀化。只有當所有外圍區段也啟用時,才會啟用巢狀區段。

\if 和對應的 \endif 必須在同一個註解區塊中。當條件區塊需要跨越多個註解區塊時,必須使用 \cond ... \endcond

範例
  /*! Unconditionally shown documentation.
   *  \if Cond1
   *    Only included if Cond1 is set.
   *  \endif
   *  \if Cond2
   *    Only included if Cond2 is set.
   *    \if Cond3
   *      Only included if Cond2 and Cond3 are set.
   *    \endif
   *    More text.
   *  \endif
   *  Unconditional text.
   */

您也可以在別名中使用條件指令。例如,若要以兩種語言記錄一個類別,您可以使用

範例 2
/*! \english
 *  This is English.
 *  \endenglish
 *  \dutch
 *  Dit is Nederlands.
 *  \enddutch
 */
class Example
{
};

其中,以下別名在組態檔中定義

ALIASES  = "english=\if english" \
           "endenglish=\endif" \
           "dutch=\if dutch" \
           "enddutch=\endif"

ENABLED_SECTIONS 可用來啟用 englishdutch

另請參閱
區段 \endif\ifnot\else\elseif\cond\endcondENABLED_SECTIONS

\ifnot (區段標籤)

開始一個條件式文件區段。該區段以相符的 \endif 指令結束。此條件區段預設為啟用。若要停用它,您必須將區段標籤放在組態檔中的 ENABLED_SECTIONS 標籤之後。區段標籤可以是區段名稱、圓括號、&& (AND)、|| (OR) 和 ! (NOT) 組成的邏輯運算式。

另請參閱
區段 \endif\if\else\elseif\cond\endcondENABLED_SECTIONS

\important { 重要文字 }

開始一個段落,可以在其中輸入需要注意的重要訊息。該段落會縮排。段落的文字沒有特殊的內部結構。所有視覺強化指令都可以在段落內使用。多個相鄰的 \important 指令將會合併成單一段落。當遇到空白行或其他分節指令時,\important 指令會結束。


\invariant { 不變量描述 }

開始一個段落,可以在其中描述實體的不變量。該段落會縮排。段落的文字沒有特殊的內部結構。所有視覺強化指令都可以在段落內使用。多個相鄰的 \invariant 指令將會合併成單一段落。每個不變量描述都會在新的一行開始。或者,一個 \invariant 指令可以提及多個不變量。當遇到空白行或其他分節指令時,\invariant 指令會結束。


\note { 文字 }

開始一個段落,可以在其中輸入註解。該段落會縮排。段落的文字沒有特殊的內部結構。所有視覺強化指令都可以在段落內使用。多個相鄰的 \note 指令將會合併成單一段落。每個註解描述都會在新的一行開始。或者,一個 \note 指令可以提及多個註解。當遇到空白行或其他分節指令時,\note 指令會結束。請參閱 \par 區段的範例。


\par [(段落標題)] { 段落 }

如果提供段落標題,此指令會開始一個具有使用者定義標題的段落。標題會延伸到該行結尾。指令後面的段落會縮排。

如果沒有提供段落標題,此指令將會開始一個新的段落。這也適用於其他段落指令內(如 \param\warning),而不會結束該指令。

段落的文字沒有特殊的內部結構。所有視覺強化指令都可以在段落內使用。當遇到空白行或其他分節指令時,\par 指令會結束。

範例
/*! \class Par_Test
* 一般文字。
*
* \par 使用者定義段落
* 段落內容。
*
* \par
* 同標題下的新段落。
*
* \note
* 此註解由兩個段落組成。
* 這是第一個段落。
*
* \par
* 而這是第二個段落。
*
* 更多一般文字。
*/
class Par_Test {};
點擊這裡查看 Doxygen 產生的相應 HTML 文件。

\param[<dir>] <參數名稱> { 參數描述 }

開始描述函數參數,其名稱為 <參數名稱>,接著是參數的描述。系統會檢查參數是否存在,如果此參數(或任何其他參數)的文件遺失或未出現在函數宣告或定義中,則會發出警告。

\param 指令具有一個可選屬性 <dir>,用於指定參數的方向。可能的值為 "[in]"、"[out]" 和 "[in,out]";請注意此描述中的 [方括號]。對於雙向值,方向 "in" 和 "out" 可以以任何順序指定,並且可以一起寫入,也可以用逗號 (,) 或空格分隔。這表示例如值 "[outin]" 或 "[in out]" 也有效。請注意,也可以在指令和 <dir> 之間放置空格。當一個參數既是輸入又是輸出時,會使用 [in,out] 作為屬性。以下是函數 memcpy 的範例:

/*!
* 從來源記憶體區域複製位元組到目的地記憶體區域,
* 其中兩個區域可能不會重疊。
* @param[out] dest 要複製到的記憶體區域。
* @param[in] src 要複製來源的記憶體區域。
* @param[in] n 要複製的位元組數
*/
void memcpy(void *dest, const void *src, size_t n);

參數描述是一個沒有特殊內部結構的段落。所有視覺強化指令都可以在段落內使用。

多個相鄰的 \param 指令將會合併成單一段落。每個參數描述都會在新的一行開始。當遇到空白行或其他分節指令時,\param 描述會結束。請參閱 \fn 區段的範例。

請注意,您也可以使用逗號分隔的清單,用單個 \param 指令記錄多個參數。以下是一個範例

/** 設定位置。
* @param x,y,z 3D 空間中位置的座標。
*/
void setPosition(double x,double y,double z,double t)
{
}

請注意,對於 PHP,也可以指定參數允許的類型(或多種類型,如果用管線符號分隔),因為這不是定義的一部分。語法與 phpDocumentor 相同,即

@param  datatype1|datatype2 $paramname description

\parblock

對於期望單一段落作為引數的指令(例如 \par\param\warning),\parblock 指令允許開始一個涵蓋多個段落的描述,然後以 \endparblock 結束。

範例

/** Example of a param command with a description consisting of two paragraphs
 *  \param p
 *  \parblock
 *  First paragraph of the param description.
 *
 *  Second paragraph of the param description.
 *  \endparblock
 *  Rest of the comment block continues.
 */

請注意,\parblock 指令也可以直接出現在 \param 的第一個引數之後。


\endparblock

這會結束以 \parblock 開始的段落區塊。


\tparam <範本參數名稱> { 描述 }

為類別或函數範本參數開始一個範本參數,其名稱為 <範本參數名稱>,接著是範本參數的描述。

其他方面與 \param 類似。


\post { 後置條件描述 }

開始一個段落,可以在其中描述實體的後置條件。該段落會縮排。段落的文字沒有特殊的內部結構。所有視覺強化指令都可以在段落內使用。多個相鄰的 \post 指令將會合併成單一段落。每個後置條件都會在新的一行開始。或者,一個 \post 指令可以提及多個後置條件。當遇到空白行或其他分節指令時,\post 指令會結束。


\pre { 前置條件描述 }

開始一個段落,可以在其中描述實體的前置條件。該段落會縮排。段落的文字沒有特殊的內部結構。所有視覺強化指令都可以在段落內使用。多個相鄰的 \pre 指令將會合併成單一段落。每個前置條件都會在新的一行開始。或者,一個 \pre 指令可以提及多個前置條件。當遇到空白行或其他分節指令時,\pre 指令會結束。


\remark { 備註文字 }

開始一個段落,可以在其中輸入一個或多個備註。該段落會縮排。段落的文字沒有特殊的內部結構。所有視覺強化指令都可以在段落內使用。多個相鄰的 \remark 指令將會合併成單一段落。每個備註都會在新的一行開始。或者,一個 \remark 指令可以提及多個備註。當遇到空白行或其他分節指令時,\remark 指令會結束。


\remarks { 備註文字 }

\remark 相同。


\result { 結果值描述 }

\return 相同。


\return { 回傳值描述 }

開始一個函數的回傳值描述。段落的文字沒有特殊的內部結構。所有視覺強化指令都可以在段落內使用。多個相鄰的 \return 指令將會合併成單一段落。當遇到空白行或其他分節指令時,\return 描述會結束。請參閱 \fn 區段的範例。


\returns { 回傳值描述 }

\return 相同。


\retval <回傳值> { 描述 }

開始描述函數的回傳值,其名稱為 <回傳值>,接著是回傳值的描述。構成描述的段落文字沒有特殊的內部結構。所有視覺強化指令都可以在段落內使用。多個相鄰的 \retval 指令將會合併成單一段落。每個回傳值描述都會在新的一行開始。當遇到空白行或其他分節指令時,\retval 描述會結束。


\sa { 參考資料 }

開始一個段落,其中可以指定一個或多個對類別、函式、方法、變數、檔案或 URL 的交叉引用。以 ::# 連接的兩個名稱,會被理解為指向一個類別及其成員。可以透過在方法名稱後包含帶括號的引數類型列表來選擇數個多載的方法或建構子之一。

\see 同義。

另請參閱
請參閱 autolink 章節,以了解如何建立指向物件的連結。

\see { 參考 }

\sa 等效。為與 Javadoc 相容而引入。


\short { 簡短描述 }

\brief 等效。


\since { 文字 }

此命令可用於指定實體可用的起始時間 (版本或時間)。 \since 後面的段落沒有任何特殊的內部結構。所有視覺增強命令都可以在段落內使用。當遇到空白行或其他分節命令時,\since 描述結束。


\test { 描述測試案例的段落 }

開始一個段落,其中可以描述一個或多個測試案例。段落會縮排。段落的文字沒有特殊的內部結構。所有視覺增強命令都可以在段落內使用。多個相鄰的 \test 命令將會合併成一個段落。每個測試案例描述都會在新的一行開始。或者,一個 \test 命令可以提及多個測試案例。當遇到空白行或其他分節命令時,\test 命令結束。

描述也會將一個項目添加到單獨的測試清單中,並且這兩個描述實例將會交叉引用。測試清單中的每個項目都會以標頭作為開頭,標頭會指出該項目的來源。

可以透過將 GENERATE_TESTLIST 設定為 NO 來停用測試清單和對應的條目。


\throw <例外物件> { 例外描述 }

\exception 同義。

注意
命令 \throws 是此命令的同義詞。
另請參閱
請參閱 \exception 章節

\throws <例外物件> { 例外描述 }

\throw 等效。


\todo { 描述待辦事項的段落 }

開始一個段落,其中描述一個或多個待辦事項。段落會縮排。段落的文字沒有特殊的內部結構。所有視覺增強命令都可以在段落內使用。多個相鄰的 \todo 命令將會合併成一個段落。每個待辦事項描述都會在新的一行開始。或者,一個 \todo 命令可以提及數個待辦事項描述。當遇到空白行或其他分節命令時,\todo 命令結束。

描述也會將一個項目添加到單獨的待辦事項清單中,並且這兩個描述實例將會交叉引用。待辦事項清單中的每個項目都會以標頭作為開頭,標頭會指出該項目的來源。

可以透過將 GENERATE_TODOLIST 設定為 NO 來停用待辦事項清單和對應的條目。


\version { 版本號 }

開始一個段落,其中可以輸入一個或多個版本字串。段落會縮排。段落的文字沒有特殊的內部結構。所有視覺增強命令都可以在段落內使用。多個相鄰的 \version 命令將會合併成一個段落。每個版本描述都會在新的一行開始。或者,一個 \version 命令可以提及數個版本字串。當遇到空白行或其他分節命令時,\version 命令結束。請參閱 \author 章節以取得範例。


\warning { 警告訊息 }

開始一個段落,其中可以輸入一個或多個警告訊息。段落會縮排。段落的文字沒有特殊的內部結構。所有視覺增強命令都可以在段落內使用。多個相鄰的 \warning 命令將會合併成一個段落。每個警告描述都會在新的一行開始。或者,一個 \warning 命令可以提及數個警告。當遇到空白行或其他分節命令時,\warning 命令結束。請參閱 \author 章節以取得範例。


\xrefitem <key> "標題" "清單標題" { 文字 }

此命令是 \todo\bug 等命令的通用化。它可用於建立使用者定義的文字區段,這些區段會在出現的地方和將會產生的相關頁面之間自動交叉引用。在相關頁面上,所有相同類型的區段都會被收集。

第一個引數 <key> 是一個唯一代表區段類型的識別碼。第二個引數是一個引號括住的字串,表示在其中放置作為第四個引數傳遞的文字的區段標題。第三個引數(清單標題)用作相關頁面的標題,其中包含所有具有相同金鑰的項目。第二個和第三個字串引數不能包含換行符號。金鑰 "todo""test""bug""deprecated" 是預先定義的。

為了了解如何使用 \xrefitem 命令及其效果,請考慮待辦事項清單,(對於英文輸出)可以將其視為命令的別名

\xrefitem todo "Todo" "Todo List" 

由於為每個區段重複命令的前三個參數非常繁瑣且容易出錯,因此該命令旨在與組態檔案中的 ALIASES 選項結合使用。例如,要定義一個新的命令 \reminder,應在組態檔案中加入以下行

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

請注意為 \xrefitem 命令的第二個和第三個引數使用跳脫的引號。

如果參數 "(heading)" 是空字串,則不會產生標題。當與 \page 命令結合使用時,這很有用,例如

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

/** \error ERROR 101: in case a file can not be opened.
    Check about file system read/write access. */
#define MY_ERR_CANNOT_OPEN_FILE                   101

/** \error ERROR 102: in case a file can not be closed.
    Check about file system read/write access. */
#define MY_ERR_CANNOT_CLOSE_FILE                  102

\error 定義為

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

--- 建立連結的命令 ---


\addindex (文字)

此命令將 (文字) 新增至 {\LaTeX}、DocBook 和 RTF 索引。


\anchor <單字>

此命令會在文件中放置一個不可見的具名錨點,您可以使用 \ref 命令引用該錨點。

另請參閱
請參閱 \ref 章節。

\cite <標籤>

在文字和書目參考清單中新增書目參考。<標籤> 必須是一個有效的 BibTeX 標籤,可以在 CITE_BIB_FILES 中列出的 .bib 檔案中找到。對於 {\LaTeX} 輸出,文字中參考的格式可以使用 LATEX_BIB_STYLE 進行設定。對於其他輸出格式,則使用固定的表示方式。請注意,使用此命令需要 bibtex 工具出現在搜尋路徑中。


\endlink

此命令結束以 \link 命令開始的連結。

另請參閱
請參閱 \link 章節。

\link <連結物件>

Doxygen 自動產生的連結,連結文字通常會使用連結指向的物件名稱。

\link 命令可用於建立指向物件(檔案、類別或成員)的連結,並使用使用者指定的連結文字。連結命令應以 \endlink 命令結束。\link\endlink 命令之間的所有文字都會作為指向 \link 的第一個引數指定的 <連結物件> 的連結文字。

另請參閱
請參閱 autolink 章節,以取得有關自動產生連結和有效連結物件的更多資訊。

\ref <名稱> ["(文字)"]

建立對具名符號、檔案、區段、子區段、頁面或錨點的參考。

對於 HTML 文件,參考命令會產生指向該區段的連結。對於區段或子區段,區段的標題將會用作連結的文字。對於錨點,將會使用引號括住的可選文字,如果未指定文字,則會使用 <名稱>。

如果 <名稱> 包含空格(例如,如果它引用一個包含空格的檔案名稱),則需要在 <名稱> 周圍加上雙引號,例如 "my file.md"。

對於 {\LaTeX} 文件,參考命令會相同,除非 PDF_HYPERLINKS 選項已設定為 NO,在這種情況下,它會產生區段的區段標題,或者如果 <名稱> 指向錨點,則會產生文字,後接頁碼。

另請參閱
請參閱 \page 章節以取得 \ref 命令的範例。

\refitem <名稱>

\ref 命令一樣,此命令會建立對具名區段的參考,但是此參考會出現在由 \secreflist 開始並以 \endsecreflist 結束的清單中。此類清單的範例可以在頁面頂部看到。


\secreflist

開始一個使用 \refitem 建立的項目索引清單,每個項目都連結到一個具名區段。


\endsecreflist

結束以 \secreflist 開始的索引清單。


\subpage <名稱> ["(文字)"]

此命令可用於建立頁面階層。可以使用 \defgroup\ingroup 命令建立相同的結構,但是對於頁面,\subpage 命令通常更方便。主頁面(請參閱 \mainpage)通常是階層的根目錄。

此命令的行為與 \ref 類似,它會建立對標籤為 <名稱> 的頁面的參考,並帶有第二個引數中指定的可選連結文字。

它與 \ref 命令的不同之處在於,它僅適用於頁面,並且會在頁面之間建立父子關係,其中子頁面(或子頁面)由標籤 <名稱> 識別。

如果要新增結構而不建立多個頁面,請參閱 \section\subsection 命令。

注意
每個頁面只能是另一個頁面的子頁面,並且不允許循環關係,即頁面階層必須具有樹狀結構。

以下是一個範例

/*! \mainpage A simple manual

Some general info.

This manual is divided in the following sections:
- \subpage intro
- \subpage advanced "Advanced usage"
*/

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

/*! \page intro Introduction
This page introduces the user to the topic.
Now you can proceed to the \ref advanced "advanced section".
*/

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

/*! \page advanced Advanced Usage
This page is for advanced users.
Make sure you have first read \ref intro "the introduction".
*/

\tableofcontents['{'[option[:level]][,option[:level]]*'}']

在頁面頂端建立目錄,列出頁面中所有的章節和小節。option 可以是 HTMLLaTeXXMLDocBook。當指定了 level 時,表示顯示的最大巢狀層級。level 的值應在 1..6 的範圍內,超出此範圍的值會被視為 6。如果沒有指定 level,則 level 會設定為 6(顯示全部)。如果沒有指定 option,則 \tableofcontents 的行為就像只指定了 option HTMLXML。如果一個頁面中有多個 \tableofcontents 指令,option(s) 會附加到已經指定的 option(s) 中,但只有最後一個 optionlevel 有效。

警告
此指令僅在相關頁面文件中有效,在其他文件區塊中有效,且僅在指定的輸出中有效果!

\section <章節名稱> (章節標題)

建立一個名稱為 <章節名稱> 的章節。章節的標題應指定為 \section 指令的第二個引數。

警告
此指令僅在相關頁面文件中有效,在其他文件區塊中有效!
另請參閱
請參閱 \page 章節,以了解 \section 指令的範例。

\subsection <小節名稱> (小節標題)

建立一個名稱為 <小節名稱> 的小節。小節的標題應指定為 \subsection 指令的第二個引數。

警告
此指令僅在相關頁面文件的章節中有效,在其他文件區塊中有效!
另請參閱
請參閱 \page 章節,以了解 \subsection 指令的範例。

\subsubsection <子小節名稱> (子小節標題)

建立一個名稱為 <子小節名稱> 的子小節。子小節的標題應指定為 \subsubsection 指令的第二個引數。

警告
此指令僅在相關頁面文件的子小節中有效,在其他文件區塊中有效!
另請參閱
請參閱 \page 章節,以了解 \section 指令和 \subsection 指令的範例。

\paragraph <段落名稱> (段落標題)

建立一個名稱為 <段落名稱> 的具名段落。段落的標題應指定為 \paragraph 指令的第二個引數。

警告
此指令僅在相關頁面文件的子小節中有效,在其他文件區塊中有效!

\subparagraph <子段落名稱> (子段落標題)

建立一個名稱為 <子段落名稱> 的具名子段落。子段落的標題應指定為 \subparagraph 指令的第二個引數。

警告
此指令僅在相關頁面文件的段落中有效,在其他文件區塊中有效!

\subsubparagraph <子子段落名稱> (子子段落標題)

建立一個名稱為 <子子段落名稱> 的具名子子段落。子子段落的標題應指定為 \subsubparagraph 指令的第二個引數。

警告
此指令僅在相關頁面文件的子段落中有效,在其他文件區塊中有效!

--- 用於顯示範例的指令 ---


\dontinclude['{lineno}'] <檔案名稱>

此指令可用於解析原始碼檔案,而實際上並未將其逐字包含在文件中(如同 \include 指令所做的那樣)。如果您想將原始碼檔案分成較小的部分,並在這些部分之間添加文件,這會很有用。可以使用 Doxygen 組態檔的 EXAMPLE_PATH 標籤來指定原始碼檔案或目錄。

您可以添加選項 lineno,如果需要,可以為包含的程式碼啟用行號。

您可以添加選項 strip,這將始終隱藏包含程式碼中的任何特殊註解,覆寫 STRIP_CODE_COMMENTS 設定;或者添加選項 nostrip 來始終顯示特殊註解。

在解析包含 \dontinclude 指令的註解區塊期間,會「記住」程式碼片段中的類別和成員宣告及定義。

對於原始碼檔案的逐行描述,可以使用 \line\skip\skipline\until 指令來顯示範例的一或多行。這些指令會使用內部指標。\dontinclude 指令會將指標設定為範例的第一行。

範例
/*! 一個測試類別。 */
class Include_Test
{
public:
/// 一個成員函式
void example();
};
/*! \page pag_example
* \dontinclude include_test.cpp
* 我們的 main 函式從這裡開始
* \skip main
* \until {
* 首先,我們建立一個 \c t 物件,該物件屬於 Include_Test 類別。
* \skipline Include_Test
* 然後我們呼叫範例成員函式
* \line example
* 之後,我們的小型測試常式結束。
* \line }
*/
範例檔案 include_test.cpp 的內容如下
void main()
{
Include_Test t;
t.example();
}
請點擊這裡,查看 Doxygen 產生的對應 HTML 文件。
另請參閱
請參閱 \line\skip\skipline\until\include 章節。

\include['{'option'}'] <檔案名稱>

此指令可用於將原始碼檔案作為程式碼區塊包含。該指令以包含檔案的名稱作為引數。可以使用 Doxygen 組態檔的 EXAMPLE_PATH 標籤來指定原始碼檔案或目錄。

如果 <檔案名稱> 本身對於 EXAMPLE_PATH 標籤指定的範例檔案集合而言不是唯一的,您可以加入部分絕對路徑來消除歧義。

使用 \include 指令等同於將檔案插入到文件區塊中,並用 \code\endcode 指令將其包圍。

\include 指令的主要目的是避免在由多個原始碼和標頭檔組成的範例區塊中重複程式碼。

對於原始碼檔案的逐行描述,請將 \dontinclude 指令與 \line\skip\skipline\until 指令結合使用。

或者,可以使用 \snippet 指令來僅包含原始碼檔案的片段。為使此功能正常工作,必須標記該片段。

注意
Doxygen 的特殊指令在程式碼區塊中不起作用。但是,允許在程式碼區塊中巢狀 C 風格的註解。

option 可以是 linenodoc,此外還可以指定 local

  • option lineno 可以用來為包含的程式碼啟用行號(如果需要)。
  • option doc 可以用來將檔案視為文件而非程式碼。
  • option local 可以用來使 Doxygen 將程式碼解釋為它位於包含 include 指令的類別或命名空間中,而不是位於全域命名空間中。
  • option strip 可以用來始終隱藏包含程式碼中的任何特殊註解,覆寫 STRIP_CODE_COMMENTS 設定,而選項 nostrip 可以用來始終顯示特殊註解。這些選項與選項 doc 結合使用時無效。

當使用選項 doc 時,還可以指定選項 raise,以將參考檔案中找到的所有章節提高一定數量。例如

  \include{doc,raise=1} file.dox

將會把在 file.dox 中找到的任何層級 1 的 \section 視為層級 2 的 \subsection,並將任何層級 2 的 \subsection 視為層級 3 的 \subsubsection,依此類推。同樣,對於 Markdown,# 章節將被視為 ## 章節。

此外,還有選項 prefix,可用於為包含的章節的每個標籤添加前綴,以便它們保持唯一性。例如

  \include{doc,prefix=fn_} file.dox

將會把在 file.dox 中找到的 \section s1 視為像是指定了 \section fn_s1

注意
包含的文件中不應包含註解符號,因為它們也會出現在文件中。
另請參閱
請參閱 \example\dontinclude\verbatim\includedoc\snippet 章節。

\includelineno <檔案名稱>

此指令已過時,但仍支援以實現向後相容性,其運作方式與 \include{lineno} 相同。

另請參閱
請參閱 \include{lineno} 章節。

\includedoc['{'option'}'] <檔案名稱>

此指令已過時,但仍支援以實現向後相容性,其運作方式與 \include{doc} 相同。

option 與在 \include 中使用選項 doc 時所使用的 option 相同。

另請參閱
請參閱 \include{doc} 章節。

\line ( 樣式 )

此指令會逐行搜尋上次使用 \include\dontinclude 包含的範例,直到找到非空白行為止。如果該行包含指定的樣式,則會將其寫入輸出。

用於追蹤範例中目前行的內部指標,會設定為找到的非空白行之後的行開頭(如果找不到此類行,則設定為範例結尾)。

請參閱 \dontinclude 章節,以了解範例。


\skip ( 樣式 )

此指令會逐行搜尋上次使用 \include\dontinclude 包含的範例,直到找到包含指定樣式的行為止。

用於追蹤範例中目前行的內部指標,會設定為包含指定樣式的行開頭(如果找不到樣式,則設定為範例結尾)。

請參閱 \dontinclude 章節,以了解範例。


\skipline ( 樣式 )

這個命令會逐行搜尋最後使用 \include\dontinclude 包含的範例,直到找到包含指定模式的行。然後它會將該行寫入輸出。

用來追蹤範例中目前行的內部指標,會設定到寫入行的下一行開頭(如果找不到模式,則設定到範例的結尾)。

注意
命令
\skipline pattern
等同於
\skip pattern
\line pattern

請參閱 \dontinclude 章節,以了解範例。


\snippet['{'option'}'] <file-name> ( block_id )

如果 \include 命令可以用來包含整個檔案作為原始碼,則此命令可以用來只引用原始檔的一段。如果 <file-name> 使用了 this,則會將目前檔案作為擷取程式碼片段的檔案。

例如,在文件中放置以下命令,會參考位於子目錄中的 `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] 標記在原始檔中應恰好出現兩次。

option 可以是 linenotrimleftdoc,另外還可以指定 local

  • option lineno 可以用來為包含的程式碼啟用行號(如果需要)。
  • option trimleft 可用於移除所有行前面的共同空格(也會考慮 TAB_SIZE 標籤的設定)。
  • option doc 可以用來將檔案視為文件而非程式碼。
  • option local 可以用來使 Doxygen 將程式碼解釋為它位於包含 include 指令的類別或命名空間中,而不是位於全域命名空間中。
  • option strip 可以用來始終隱藏包含程式碼中的任何特殊註解,覆寫 STRIP_CODE_COMMENTS 設定,而選項 nostrip 可以用來始終顯示特殊註解。這些選項與選項 doc 結合使用時無效。

當使用選項 doc 時,還可以指定選項 raise,以將參考檔案中找到的所有章節提高一定數量。例如

 \snippet{doc,raise=1} file.dox XXX

會將程式碼片段中找到的任何 1 級 \section 視為 2 級 \subsection,並將任何 2 級 \subsection 視為 3 級 \subsubsection,依此類推。同樣地,對於 Markdown,# 區段將被視為 ## 區段。

此外,還有選項 prefix,可用於為包含的章節的每個標籤添加前綴,以便它們保持唯一性。例如

 \include{doc,prefix=fn_} file.dox

將會把在 file.dox 中找到的 \section s1 視為像是指定了 \section fn_s1

注意
包含的文件中不應包含註解符號,因為它們也會出現在文件中。

請參閱 \dontinclude 區段,以了解包含原始檔程式碼片段的替代方法,該方法不需要標記。


\snippetlineno <file-name> ( block_id )

此命令已過時,但基於回溯相容性的原因仍支援,它的運作方式與 \snippet{lineno} 相同

另請參閱
區段 \snippet{lineno}

\snippetdoc['{'option'}'] <file-name> ( block_id )

此命令已過時,但基於回溯相容性的原因仍支援,它的運作方式與 \snippet{doc} 相同

option 與使用 \snippet 時使用 doc 選項時所使用的 option 相同。

另請參閱
區段 \snippet{doc}\include{doc}

\until ( pattern )

這個命令會將最後使用 \include\dontinclude 包含的範例的所有行寫入輸出,直到找到包含指定模式的行為止。包含模式的行也會被寫入。

用來追蹤範例中目前行的內部指標,會設定到最後寫入行的下一行開頭(如果找不到模式,則設定到範例的結尾)。

請參閱 \dontinclude 章節,以了解範例。


\verbinclude <file-name>

這個命令會將 <file-name> 檔案的內容逐字包含在文件中。該命令等同於將檔案的內容貼到文件中,並在其周圍放置 \verbatim\endverbatim 命令。

Doxygen 應搜尋的檔案或目錄可以使用 Doxygen 組態檔的 EXAMPLE_PATH 標籤來指定。


\htmlinclude['[block]'] <file-name>

這個命令會將 <file-name> 檔案的內容原樣包含在 HTML 文件中,並在產生的 XML 輸出中標記為 <htmlonly>。該命令等同於將檔案的內容貼到文件中,並在其周圍放置 \htmlonly\endhtmlonly 命令。

通常,由 \htmlinclude 指示的檔案內容會按原樣插入。當您想要插入具有區塊範圍的 HTML 片段(例如應該出現在 <p>..</p> 之外的表格或清單)時,這可能會導致無效的 HTML。您可以使用 \htmlinclude[block] 來讓 Doxygen 結束目前的段落,並在包含檔案後重新開始。

Doxygen 應搜尋的檔案或目錄可以使用 Doxygen 組態檔的 EXAMPLE_PATH 標籤來指定。

另請參閱
區段 \htmlonly\latexinclude\rtfinclude\maninclude\docbookinclude\xmlinclude

\latexinclude <file-name>

這個命令會將 <file-name> 檔案的內容原樣包含在 {\LaTeX} 文件中,並在產生的 XML 輸出中標記為 <latexonly>。該命令等同於將檔案的內容貼到文件中,並在其周圍放置 \latexonly\endlatexonly 命令。

Doxygen 應搜尋的檔案或目錄可以使用 Doxygen 組態檔的 EXAMPLE_PATH 標籤來指定。

另請參閱
區段 \latexonly\htmlinclude\rtfinclude\maninclude\docbookinclude\xmlinclude

\rtfinclude <file-name>

這個命令會將 <file-name> 檔案的內容原樣包含在 RTF 文件中,並在產生的 XML 輸出中標記為 <rtfonly>。該命令等同於將檔案的內容貼到文件中,並在其周圍放置 \rtfonly\endrtfonly 命令。

Doxygen 應搜尋的檔案或目錄可以使用 Doxygen 組態檔的 EXAMPLE_PATH 標籤來指定。

另請參閱
區段 \rtfonly\htmlinclude\latexinclude\maninclude\docbookinclude\xmlinclude

\maninclude <file-name>

這個命令會將 <file-name> 檔案的內容原樣包含在 MAN 文件中,並在產生的 XML 輸出中標記為 <manonly>。該命令等同於將檔案的內容貼到文件中,並在其周圍放置 \manonly\endmanonly 命令。

Doxygen 應搜尋的檔案或目錄可以使用 Doxygen 組態檔的 EXAMPLE_PATH 標籤來指定。

另請參閱
區段 \manonly\htmlinclude\latexinclude\rtfinclude\docbookinclude\xmlinclude

\docbookinclude <file-name>

這個命令會將 <file-name> 檔案的內容原樣包含在 DocBook 文件中,並在產生的 XML 輸出中標記為 <docbookonly>。該命令等同於將檔案的內容貼到文件中,並在其周圍放置 \docbookonly\enddocbookonly 命令。

Doxygen 應搜尋的檔案或目錄可以使用 Doxygen 組態檔的 EXAMPLE_PATH 標籤來指定。

另請參閱
區段 \docbookonly\htmlinclude\latexinclude\rtfinclude\maninclude\xmlinclude

\xmlinclude <file-name>

這個命令會將 <file-name> 檔案的內容原樣包含在 XML 文件中。該命令等同於將檔案的內容貼到文件中,並在其周圍放置 \xmlonly\endxmlonly 命令。

Doxygen 應搜尋的檔案或目錄可以使用 Doxygen 組態檔的 EXAMPLE_PATH 標籤來指定。

另請參閱
區段 \xmlonly\htmlinclude\latexinclude\rtfinclude\maninclude\docbookinclude

--- 用於視覺增強的命令 ---

\a <word>

以斜體顯示引數 <word>。使用此命令來強調文字。使用此命令來在執行文字中參考成員引數。

範例
  ... the \a x and \a y coordinates are used to ...
這將產生以下文字

... xy 座標用於 ...

等同於 \e\em。若要強調多個字詞,請使用 <em>多個字詞</em>


\arg { 項目說明 }

這個命令有一個引數,它會持續到第一個空白行或遇到另一個 \arg 為止。此命令可用於產生簡單、非巢狀的引數清單。每個引數都應以 \arg 命令開頭。

範例
輸入
  \arg \c AlignLeft left alignment.
  \arg \c AlignCenter center alignment.
  \arg \c AlignRight right alignment

  No other types of alignment are supported.
將產生以下文字

  • AlignLeft 左對齊。
  • AlignCenter 置中對齊。
  • AlignRight 右對齊

不支援其他類型的對齊方式。
注意
對於巢狀清單,應使用 HTML 命令。

等同於 \li


\b <word>

使用粗體字顯示引數 <word>。等同於 <b>word</b>。若要以粗體字顯示多個單字,請使用 <b>多個單字</b>


\c <word>

使用打字機字體顯示引數 <word>。使用此命令來引用程式碼中的單字。等同於 <tt>word</tt>

範例
輸入
     ... This function returns \c void and not \c int ...
將產生以下文字

... 此函式返回 void 而不是 int ...

等同於 \p。若要以打字機字體顯示多個單字,請使用 <tt>多個單字</tt>


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

開始一個程式碼區塊。程式碼區塊的處理方式與普通文字不同。它會被解讀為原始碼。類別和成員以及其他已記錄實體的名稱會自動替換為指向文件內容的連結。

預設情況下,用於語法突顯的語言會根據找到 \code 區塊的位置而定。例如,如果程式碼區塊位於 Python 檔案中,則會根據 Python 語法進行語法突顯。

如果從上下文無法清楚判斷所使用的語言(例如註解位於 .txt.markdown 檔案中),則您也可以明確指出語言,方法是在程式碼區塊之後的花括號中放入 Doxygen 通常與該語言關聯的檔案副檔名。以下是一個範例

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

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

如果程式碼區塊的內容是 Doxygen 無法解析的語言,Doxygen 只會照原樣顯示輸出。您可以使用 .unparsed 明確指出,或者使用 Doxygen 不支援的其他副檔名,例如:

  \code{.unparsed}
  Show this as-is please
  \endcode

  \code{.sh}
  echo "This is a shell script"
  \endcode
另請參閱
章節 \endcode 和章節 \verbatim

\copydoc <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 文件中,並在產生的 XML 輸出中標記為 <docbookonly>。此區塊以 \enddocbookonly 命令結束。

另請參閱
請參閱章節 \manonly\latexonly\rtfonly\xmlonly\htmlonly\docbookinclude

\dot ["標題"] [<尺寸指示>=<尺寸>]

開始一個文字片段,其中應包含有效的 dot 圖表描述。文字片段以 \enddot 結束。Doxygen 會將文字傳遞給 dot,並將產生的影像(和影像地圖)包含在輸出中。

第一個引數是選用的,可用於指定顯示在影像下方的標題。即使此引數不包含任何空格,也必須以引號指定。在顯示標題之前,引號會被移除。

第二個引數也是選用的,可用於指定影像的寬度或高度。如需可能性的說明,請參閱 尺寸指示 段落,其中包含 \image 命令。

可以使用 URL 屬性讓圖表的節點可點擊。藉由在 URL 值內使用 \ref 命令,您可以方便地連結到 Doxygen 內的項目。以下是一個範例

注意
使用此命令需要將 HAVE_DOT 設定為 YES
Doxygen 會建立一個暫存檔案,除非將 DOT_CLEANUP 標籤設定為 NO,否則該檔案會自動移除。
/*! 類別 B */
class B {};
/*! 類別 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 輸出中)。
*/

\emoji "名稱"

此命令將產生給定名稱的表情符號字元。

支援的名稱也是 GitHub 支援的名稱,並列於此處 https://gist.github.com/rxaviers/7360908

您可以使用帶或不帶冒號的名稱,即 \emoji smile 與寫入 \emoji :smile: 相同。當不支援表情符號時,名稱會放在文字中,並在冒號之間,即 \emoji unsupported 會在輸出中產生 :unsupported:。Doxygen 也會發出警告訊息。

如需詳細資訊,另請參閱 表情符號支援頁面


\msc ["標題"] [<尺寸指示>=<尺寸>]

開始一個文字片段,其中應包含有效的訊息序列圖表描述。如需範例,請參閱 https://www.mcternan.me.uk/mscgen/。文字片段以 \endmsc 結束。

第一個引數是選用的,可用於指定顯示在影像下方的標題。即使此引數不包含任何空格,也必須以引號指定。在顯示標題之前,引號會被移除。

第二個引數也是選用的,可用於指定影像的寬度或高度。如需可能性的說明,請參閱 尺寸指示 段落,其中包含 \image 命令。

注意
文字片段應該只包含訊息序列圖表中 msc {...} 區塊內的部分(這與 \mscfile 不同)。
mscgen 現在已內建於 Doxygen 中
Doxygen 會建立一個暫存檔案,除非將 DOT_CLEANUP 標籤設定為 NO,否則該檔案會自動移除。

以下是使用 \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);
};
另請參閱
請參閱章節 \mscfile

\startuml ['{'選項[,選項]'}'] ["標題"] [<尺寸指示>=<尺寸>]

開始一個文字片段,其中應包含有效的 PlantUML 圖表描述。如需範例,請參閱 https://plantuml.com/。文字片段以 \enduml 結束。

注意
如果您想要使用此命令,您需要安裝 Java 和 PlantUML 的 jar 檔案。在 {\LaTeX} 中使用 PlantUML 時,您必須下載更多 jar 檔案,如需詳細資訊,請參閱 PlantUML 文件。對於 <engine> latexmath,此要求也適用。應該使用 PLANTUML_JAR_PATH 指定 PlantUML 檔案的位置。其他 jar 檔案也應位於此目錄中。
無法在 {\LaTeX} 中使用 <engine> ditaa,因為 PlantUML 只支援 png 格式,而 Doxygen 則需要暫時的 eps 輸出。

並非所有圖表都可以使用 PlantUML 的 @startuml 命令建立,而是需要另一個 PlantUML 的 @start... 命令。其形式會像 @start<引擎>,目前支援的 <引擎> 有:umlbpmwiredotditaasaltmathlatexganttmindmapwbsyamlcreolejsonflowboardgithclregexebnffileschenchronology。預設的 <引擎>uml<引擎> 可以指定為選項。此外,也可以透過選項指定要將產生的圖片寫入的檔案,詳情請參閱第一個(可選)引數的說明。當然,只能指定一個 <引擎>,且檔名也只能指定一次。

第一個引數是可選的,為了與將 PlantUML 作為 Doxygen 執行前的預處理步驟相容,您也可以在 \startuml 之後並在花括號內新增圖片檔案名稱作為選項,例如:

  @startuml{myimage.png} "Image Caption" width=5cm
  Alice -> Bob : Hello
  @enduml

當指定圖片名稱時,Doxygen 會產生該名稱的圖片。若沒有名稱,Doxygen 會自動選擇一個名稱。

第二個引數也是可選的,可用於指定顯示在圖片下方的標題。即使此引數不包含任何空格,也必須以引號括住。在顯示標題之前,會移除引號。

第三個引數也是可選的,可用於指定圖片的寬度或高度。有關可能性的描述,請參閱 尺寸指示 段落,其中有關於 \image 命令的說明。

注意
Doxygen 並不直接支援 Plantuml 的 @startjson 等命令,這是設計使然,但使用者可以透過在 Doxygen 設定檔中新增設定來實現支援
  ALIASES += startjson=@startuml{json}
  ALIASES += endjson=@enduml
Doxygen 會建立一個暫存檔案,除非將 DOT_CLEANUP 標籤設定為 NO,否則該檔案會自動移除。

以下是使用 \startuml 命令的範例。

/** 傳送者類別。可用於將命令傳送至伺服器。
* 接收者會透過呼叫 Ack() 來確認命令。
* \startuml
* Sender->Receiver : Command()
* Sender<--Receiver : Ack()
* \enduml
*/
class Sender
{
public:
/** 來自伺服器的確認 */
void Ack(bool ok);
};
/** 接收者類別。可用於接收和執行命令。
* 執行命令之後,接收者會傳送確認
* \startuml
* Receiver<-Sender : Command()
* Receiver-->Sender : Ack()
* \enduml
*/
class Receiver
{
public:
/** 在伺服器上執行命令 */
void Command(int commandId);
};

\dotfile <檔案> ["標題"] [<尺寸指示>=<尺寸>]

將由 <檔案> 的 dot 產生的圖片插入到文件中。

第一個引數指定圖片的檔案名稱。Doxygen 將會在您在 DOTFILE_DIRS 標籤後指定的路徑(或檔案)中尋找檔案。如果找到 dot 檔案,它將會被用作 dot 工具的輸入檔案。產生的圖片將會被放入正確的輸出目錄。如果 dot 檔案名稱包含空格,您必須在其周圍加上引號 ("...")。

第二個引數也是可選的,可用於指定顯示在圖片下方的標題。即使此引數不包含任何空格,也必須以引號括住。在顯示標題之前,會移除引號。

第三個引數也是可選的,可用於指定圖片的寬度或高度。有關可能性的描述,請參閱 尺寸指示 段落,其中有關於 \image 命令的說明。

注意
使用此命令需要將 HAVE_DOT 設定為 YES
另請參閱
參見 \dot 區段。

\mscfile <檔案> ["標題"] [<尺寸指示>=<尺寸>]

將由 <檔案> 的 mscgen 產生的圖片插入到文件中。請參閱 https://www.mcternan.me.uk/mscgen/ 以取得範例。

第一個引數指定圖片的檔案名稱。Doxygen 將會在您在 MSCFILE_DIRS 標籤後指定的路徑(或檔案)中尋找檔案。如果找到 msc 檔案,它將會被用作內建 mscgen 工具的輸入檔案。產生的圖片將會被放入正確的輸出目錄。如果 msc 檔案名稱包含空格,您必須在其周圍加上引號 ("...")。

第二個引數也是可選的,可用於指定顯示在圖片下方的標題。即使此引數不包含任何空格,也必須以引號括住。在顯示標題之前,會移除引號。

第三個引數也是可選的,可用於指定圖片的寬度或高度。有關可能性的描述,請參閱 尺寸指示 段落,其中有關於 \image 命令的說明。

注意
文字片段應包含序列圖的部分訊息,以及起始的 msc { 和結尾的 } (這與 \msc 不同)。
另請參閱
參見 \msc 區段。

\diafile <檔案> ["標題"] [<尺寸指示>=<尺寸>]

將從 <檔案> 中以 dia 建立的圖片插入到文件中。

第一個引數指定圖片的檔案名稱。Doxygen 將會在您在 DIAFILE_DIRS 標籤後指定的路徑(或檔案)中尋找檔案。如果找到 dia 檔案,它將會被用作 dia 的輸入檔案。產生的圖片將會被放入正確的輸出目錄。如果 dia 檔案名稱包含空格,您必須在其周圍加上引號 ("...")。

第二個引數也是可選的,可用於指定顯示在圖片下方的標題。即使此引數不包含任何空格,也必須以引號括住。在顯示標題之前,會移除引號。

第三個引數也是可選的,可用於指定圖片的寬度或高度。有關可能性的描述,請參閱 尺寸指示 段落,其中有關於 \image 命令的說明。


\doxyconfig <組態選項>

顯示在處理此命令時 Doxygen 使用的組態檔案中,組態選項 <組態選項> 的值。

範例
在建立本手冊時,以下命令:
  ... Project name = \doxyconfig PROJECT_NAME ...
會輸出:
... 專案名稱 = Doxygen ...

\e <字詞>

以斜體顯示引數 <字詞>。使用此命令來強調文字。

範例
輸入
  ... this is a \e really good example ...
將產生以下文字

... 這是一個 *非常* 好的範例 ...

等同於 \a\em。要強調多個字詞,請使用 <em>多個字詞</em>


\em <字詞>

以斜體顯示引數 <字詞>。使用此命令來強調文字。

範例
輸入
  ... this is a \em really good example ...
將產生以下文字

... 這是一個 *非常* 好的範例 ...

等同於 \a\e。要強調多個字詞,請使用 <em>多個字詞</em>


\endcode

結束程式碼區塊。

另請參閱
參見 \code 區段

\enddocbookonly

結束以 \docbookonly 命令開始的文字區塊。

另請參閱
參見 \docbookonly 區段。

\enddot

結束以 \dot 開始的區塊。


\endmsc

結束以 \msc 開始的區塊。


\enduml

結束以 \startuml 開始的區塊。


\plantumlfile <檔案> ["標題"] [<尺寸指示>=<尺寸>]

將從 <檔案> 中以 PlantUml 建立的圖片插入到文件中。

第一個引數指定圖片的檔案名稱。Doxygen 將會在您在 PLANTUMLFILE_DIRS 標籤後指定的路徑(或檔案)中尋找檔案。如果找到 plantuml 檔案,它將會被用作 plantuml 程式的輸入檔案。產生的圖片將會被放入正確的輸出目錄。如果 plantuml 檔案名稱包含空格,您必須在其周圍加上引號 ("...")。

第二個引數也是可選的,可用於指定顯示在圖片下方的標題。即使此引數不包含任何空格,也必須以引號括住。在顯示標題之前,會移除引號。

第三個引數也是可選的,可用於指定圖片的寬度或高度。有關可能性的描述,請參閱 尺寸指示 段落,其中有關於 \image 命令的說明。


\endhtmlonly

結束以 \htmlonly 命令開始的文字區塊。

另請參閱
參見 \htmlonly 區段。

\endlatexonly

結束以 \latexonly 命令開始的文字區塊。

另請參閱
參見 \latexonly 區段。

\endmanonly

結束以 \manonly 命令開始的文字區塊。

另請參閱
參見 \manonly 區段。

\endrtfonly

結束以 \rtfonly 命令開始的文字區塊。

另請參閱
參見 \rtfonly 區段。

\endverbatim

結束以 \verbatim 命令開始的文字區塊。

另請參閱
參見 \verbatim 區段。

\endxmlonly

結束以 \xmlonly 命令開始的文字區塊。

另請參閱
參見 \xmlonly 區段。

\f$

標記內文公式的開始和結束。

另請參閱
參見 公式 區段以取得範例。

\f(

標記內文公式的開始,但與 \f$ 相反,它不會在 {\LaTeX} 中明確開啟數學模式。

另請參閱
參見 \f) 區段和 公式 區段。

\f)

標記以 \f( 開始的內文公式的結束。

另請參閱
參見 \f( 區段和 公式 區段。

\f[

標記長公式的開始,該公式會在單獨的行上居中顯示。

另請參閱
參見 \f] 區段和 公式 區段。

\f]

標記長公式的結束,該公式會在單獨的行上居中顯示。

另請參閱
參見 \f[ 區段和 公式 區段。

\f{環境}{

標記特定環境中公式的開始。

注意
第二個 { 是可選的,僅用於幫助編輯器 (例如 Vim) 透過使開頭和結尾大括號的數量相同來進行正確的語法突顯。
另請參閱
參見 \f} 區段和 公式 區段。

\f}

標記特定環境中公式的結束。

另請參閱
參見 \f{ 區段和 公式 區段。

\htmlonly['[區塊]']

開始一個文字區塊,該區塊只會逐字包含在產生的 HTML 文件中,並在產生的 XML 輸出中以 <htmlonly> 標記。該區塊以 \endhtmlonly 命令結束。

此命令可用於包含對於 Doxygen 而言太複雜的 HTML 程式碼(即 applet、java-script 和需要特定屬性的 HTML 標籤)。

通常,\htmlonly\endhtmlonly 之間的內容會按原樣插入。當您想要插入具有區塊範圍的 HTML 片段(如表格或列表),且該片段應出現在 <p>..</p> 之外時,可能會導致 HTML 無效。您可以使用 \htmlonly[區塊] 讓 Doxygen 結束目前段落,並在 \endhtmlonly 之後重新開始。

注意
環境變數(如 $(HOME))會在 HTML-only 區塊內解析。
另請參閱
參見 \manonly\latexonly\rtfonly\xmlonly\docbookonly\htmlinclude

\image['{'選項[,選項]'}'] <格式> <檔案> ["標題"] [<尺寸指示>=<尺寸>]

將圖片插入到文件中。此命令是格式特定的,因此如果您想要插入多種格式的圖片,您必須為每種格式重複此命令。

第一個引數指定應嵌入圖片的輸出格式。目前支援以下值:htmllatexdocbookrtfxml

第二個引數指定圖片的檔案名稱。Doxygen 將會在您在 IMAGE_PATH 標籤後指定的路徑(或檔案)中尋找檔案。如果找到該圖片,它將會被複製到正確的輸出目錄。如果圖片名稱包含空格,您必須在名稱周圍加上引號 ("...")。您也可以指定絕對 URL 而不是檔案名稱,但這樣 Doxygen 不會複製圖片,也不會檢查其是否存在。

第三個參數是選用的,可以用來指定顯示在圖片下方的標題。這個參數必須在單一行指定,並用引號括住,即使它不包含任何空格也一樣。在顯示標題之前,會移除引號。

第四個參數也是選用的,可以用來指定圖片的寬度或高度。這對於 {\LaTeX} 或 DocBook 輸出(即 format=latex 或 format=docbook)可能很有用。

尺寸指示
sizeindication 可以指定要使用的寬度或高度(或兩者的組合)。 {\LaTeX} 中的尺寸指定符號(例如 10cm4in 或像 \textwidth 這樣的符號寬度)。

目前僅支援 inlineanchor 選項。如果指定了 inline 選項,圖片會被放置在「行內」,當有標題時,它會以 HTML 工具提示的形式顯示(其他格式則忽略)。對於 anchor 選項,語法為:anchor:<anchorId>

這是一個註解區塊的範例

  /*! Here is a snapshot of my new application:
   *  \image html application.jpg
   *  \image latex application.eps "My application" width=10cm
   */

這是配置檔案相關部分的範例

  IMAGE_PATH     = my_image_dir
警告
HTML 的圖片格式受限於您的瀏覽器支援的格式。
對於 {\LaTeX},圖片格式必須受 {\LaTeX} \includegraphics 命令支援,例如:封裝式 PostScript (eps)、可攜式網路圖形 (png)、聯合影像專家組 (jpg / jpeg)。

Doxygen 不會檢查圖片格式是否正確。因此,必須確保情況如此!

\latexonly

開始一個文字區塊,該區塊只會逐字包含在產生的 {\LaTeX} 文件中,並在產生的 XML 輸出中標記為 <latexonly>。該區塊以 \endlatexonly 命令結束。

此命令可用於包含對 Doxygen 來說太複雜的 {\LaTeX} 程式碼(即圖片、公式、特殊字元)。您可以使用 \htmlonly\endhtmlonly 配對來提供適當的 HTML 替代方案。

注意:環境變數(如 $(HOME))會在 {\LaTeX} only 區塊內解析。

另請參閱
章節 \rtfonly\xmlonly\manonly\htmlonly\docbookonly\latexinclude

\manonly

開始一個文字區塊,該區塊只會逐字包含在產生的 MAN 文件中,並在產生的 XML 輸出中標記為 <manonly>。該區塊以 \endmanonly 命令結束。

此命令可用於直接在 MAN 頁面中包含 groff 程式碼。您可以使用 \htmlonly\endhtmlonly 以及 \latexonly\endlatexonly 配對來提供適當的 HTML 和 {\LaTeX} 替代方案。

另請參閱
章節 \htmlonly\xmlonly\rtfonly\latexonly\docbookonly\maninclude

\li { item-description }

此命令有一個參數,該參數會持續到第一個空白行或直到遇到另一個 \li 為止。此命令可用於產生簡單、未巢狀的引數清單。每個引數都應該以 \li 命令開頭。

範例
輸入
  \li \c AlignLeft left alignment.
  \li \c AlignCenter center alignment.
  \li \c AlignRight right alignment

  No other types of alignment are supported.
將產生以下文字

  • AlignLeft 左對齊。
  • AlignCenter 置中對齊。
  • AlignRight 右對齊

不支援其他類型的對齊方式。
注意
對於巢狀清單,應使用 HTML 命令。

等同於 \arg


\n

強制換行。等同於 <br>,並受 printf 函式啟發。


\p <word>

使用打字機字體顯示參數 <word>。您可以使用此命令在執行文字中參考成員函式參數。

範例
  ... the \p x and \p y coordinates are used to ...
這將產生以下文字

... 使用 xy 座標來 ...

等同於 \c。若要在打字機字體中顯示多個單字,請使用 <tt>多個單字</tt>


\rtfonly

開始一個文字區塊,該區塊只會逐字包含在產生的 RTF 文件中,並在產生的 XML 輸出中標記為 <rtfonly>。該區塊以 \endrtfonly 命令結束。

此命令可用於包含對 Doxygen 來說太複雜的 RTF 程式碼。

注意:環境變數(如 $(HOME))會在 RTF-only 區塊內解析。

另請參閱
章節 \manonly\xmlonly\latexonly\htmlonly\docbookonly\rtfinclude

\verbatim

開始一個文字區塊,該區塊會逐字包含在文件中。該區塊應該以 \endverbatim 命令結束。所有命令在逐字區塊中都會停用。

警告
請確保每個 \verbatim 命令都包含 \endverbatim 命令,否則剖析器會混淆!
另請參閱
章節 \code\endverbatim\verbinclude

\xmlonly

開始一個文字區塊,該區塊只會逐字包含在產生的 XML 輸出中。該區塊以 \endxmlonly 命令結束。

此命令可用於包含自訂 XML 標籤。

另請參閱
章節 \manonly\rtfonly\latexonly\htmlonly\docbookonly

\\

此命令會將反斜線字元 (\) 寫入輸出。在某些情況下,必須逸出反斜線,因為 Doxygen 使用它來偵測命令。


\@

此命令會將 at 符號 (@) 寫入輸出。在某些情況下,必須逸出 at 符號,因為 Doxygen 使用它來偵測 Javadoc 命令。


\~[LanguageId]

此命令會啟用/停用語言特定的篩選器。這可以用來將不同語言的文件放在同一個註解區塊中,並使用 OUTPUT_LANGUAGE 標籤來篩選出特定語言。使用 \~language_id 只為特定語言啟用輸出,並使用 \~ 為所有語言啟用輸出(這也是預設模式)。

範例

/*! \~english This is English \~dutch Dit is Nederlands \~german Dies ist
    Deutsch. \~ output for all languages.
 */

\&

此命令會將 & 字元寫入輸出。此字元必須逸出,因為它在 HTML 中具有特殊含義。


\$

此命令會將 $ 字元寫入輸出。在某些情況下,必須逸出此字元,因為它用於展開環境變數。


\#

此命令會將 # 字元寫入輸出。在某些情況下,必須逸出此字元,因為它用於參考已記錄的實體。


\<

此命令會將 < 字元寫入輸出。此字元必須逸出,因為它在 HTML 中具有特殊含義。


\>

此命令會將 > 字元寫入輸出。此字元必須逸出,因為它在 HTML 中具有特殊含義。


\%

此命令會將 % 字元寫入輸出。在某些情況下,必須逸出此字元,因為它用於防止自動連結到也是已記錄的類別或結構的單字。


\"

此命令會將 " 字元寫入輸出。在某些情況下,必須逸出此字元,因為它成對使用以指示未格式化的文字片段。


\.

此命令會將點號 (.) 寫入輸出。當啟用 JAVADOC_AUTOBRIEFQT_AUTOBRIEF 時,這可以用於防止結束簡短描述,或防止在行的開頭點號接在數字後開始編號清單。


\?

此命令會將問號 (?) 寫入輸出。當啟用 JAVADOC_AUTOBRIEFQT_AUTOBRIEF 時,這可以用於防止結束簡短描述。


\!

此命令會將驚嘆號 (!) 寫入輸出。當啟用 JAVADOC_AUTOBRIEFQT_AUTOBRIEF 時,這可以用於防止結束簡短描述。


\=

此命令會將等號 (=) 寫入輸出。在某些情況下,必須逸出此字元序列,因為它用於 Markdown 標頭處理。


\::

此命令會將雙冒號 (::) 寫入輸出。在某些情況下,必須逸出此字元序列,因為它用於參考已記錄的實體。


\|

此命令會將管道符號 (|) 寫入輸出。在某些情況下,必須逸出此字元,因為它用於 Markdown 表格。


\--

此命令會將兩個破折號 (--) 寫入輸出。這允許將兩個連續的破折號寫入輸出,而不是一個 n-dash 字元 (–)。


\---

此命令會將三個破折號 (---) 寫入輸出。這允許將三個連續的破折號寫入輸出,而不是一個 m-dash 字元 (—)。


前往下一個章節,或返回索引