在Doxygen注釋中,我們經常需要用空格加上符號來描述一種結構圖,但是因為Doxygen默認忽略空格和換行,因此導致輸出的結果不是我們想要的。假定我們想輸出如下的注釋:
[cpp]
/**
* JOIN (exists (select 1 from x3 where x1.id3 = x3.id3)
* / \
* r1 x1
*/
因為Doxygen忽略空格和換行,因此輸出到html以後,就變成了下面的樣子:
[cpp]
JOIN(preserve) (exists (select 1 from x3 where x1.id3 = x3.id3) / \ r1 x1
如果需要按原始格式輸出,有兩種方法:
1. 用html標簽<pre>
[cpp]
/**
* <pre>
* JOIN (exists (select 1 from x3 where x1.id3 = x3.id3)
* / \
* r1 x1
* </pre>
*/
這樣輸出就成了
[cpp]
JOIN(preserve) (exists (select 1 from x3 where x1.id3 = x3.id3)
/ \
r1 x1
2. 用Doxygen的標簽verbatim和endverbatim
[cpp]
/**
* @verbatim
* JOIN (exists (select 1 from x3 where x1.id3 = x3.id3)
* / \
* r1 x1
* @endverbatim
*/
輸出如下
[cpp]
JOIN(preserve) (exists (select 1 from x3 where x1.id3 = x3.id3)
/ \
r1 x1
<pre>標簽和verbatim的區別。
1. <pre>是html的標簽,verbatim是Doxygen自己的標簽。
2. <pre>不會影響Doxygen自身的標簽,例如<pre>標簽中有Doxygen標簽@ref等,@ref仍然會指向參考。
3. verbatim標簽是真正的逐字輸出,因此@verbatim和@endverbatim之間的所有Doxygen標簽都會失效。