在 Doxygen 中,@verbatim 是一个特殊命令,用于指示 Doxygen 将其后的文本内容以逐字(verbatim)方式输出,不进行任何格式化或解析。这意味着文本会以代码块的形式显示,保留原始格式(如空格、换行、特殊字符等),并且不会被 Doxygen 解析为其他文档元素(如链接、命令等)。
用途
- 展示代码片段:用于在文档中插入未经处理的代码或文本,例如示例代码、配置文件内容等。
- 避免解析:防止 Doxygen 将某些内容误认为是 Doxygen 命令或格式化标记。
- 保持格式:适合展示需要精确格式的文本,如 ASCII 艺术、JSON 数据、脚本等。
语法
@verbatim
这里是逐字输出的内容
可以包含多行
不会被解析为 Doxygen 命令
@endverbatim
- 以 @verbatim 开始,以 @endverbatim 结束。
- 两者之间的内容会以固定宽度字体(如 <pre> 标签)显示在生成的文档中。
示例
示例 1:展示代码片段
/// @brief 这是一个函数的说明
/// @verbatim
/// int main() {
/// printf("Hello, World!\n");
/// return 0;
/// }
/// @endverbatim
void myFunction();
输出效果: 在生成的 HTML 文档中,@verbatim 内的代码会显示为:
int main() {
printf("Hello, World!\n");
return 0;
}
以代码块形式呈现,保留缩进和换行。
示例 2:展示配置文件
/// @brief 配置文件示例
/// @verbatim
/// [settings]
/// debug = true
/// port = 8080
/// @endverbatim
#define CONFIG_DEBUG 1
输出效果:
[settings]
debug = true
port = 8080
文本按原样显示,不会将 debug 或其他内容解析为 Doxygen 命令。
示例 3:避免命令冲突
如果文档中需要包含类似 Doxygen 命令的文本(如 @param),可以用 @verbatim 防止解析:
/// @brief 描述如何使用 @param
/// @verbatim
/// 我的脚本中有个参数叫 @param
/// @endverbatim
void myFunction();
输出效果:
我的脚本中有个参数叫 @param
@param 不会被误认为是 Doxygen 命令。
注意事项
替代命令:
- 如果只是展示代码,可以使用 @code 和 @endcode,它们专门用于代码块,且支持语言高亮(例如 @code{.c})。
- @verbatim 更通用,适合非代码的原始文本。
嵌套限制:
- @verbatim 块内不能嵌套其他 Doxygen 命令,内容会被完全按原样输出。
HTML 输出:
- 在 HTML 文档中,@verbatim 内容通常被包裹在 <pre> 标签中,显示为等宽字体。
- 在其他格式(如 LaTeX、PDF)中,也会保持原始格式。
多行支持:
- @verbatim 支持多行内容,适合长文本或复杂代码。
总结
@verbatim 是 Doxygen 中用于逐字输出文本的命令,适合展示代码、配置文件或需要保留原始格式的内容。它与 @endverbatim 配对使用,内容不会被 Doxygen 解析,常用于示例代码或特殊文本的文档化。