1. 程式人生 > >DOxygen for C++使用說明——新增數學公式

DOxygen for C++使用說明——新增數學公式

$\mbox{\LaTeX}$ 公式

Doxygen允許你把$\mbox{\LaTeX}$ 公式顯示在最終的輸出中(這個功能僅限於HTML和$\mbox{\LaTeX}$輸出).為了可以在HTML documentation顯示公式(轉化為圖片),你必須安裝以下軟體:

  • latex:  $\mbox{\LaTeX}$ 編譯器, 被用來解析公式, 首先提取公式寫到一個_formulas.tex檔案裡,再用$\mbox{\LaTeX}$編譯成DVI格式.
  • dvips: 轉化DVI檔案到 PostScript.
  • gs:  GhostScript 轉換PostScript 檔案為 bitmaps.這樣就可以顯示在網頁了。

以上三個軟體可以單獨安裝,可參考<<Including formulas>>,不過我是在windows環境下使用的,實際上只需要裝一個

CTEX程式,以上三個軟體均會被裝上。

對於HTML輸出,還有一種辦法就是使用MathJax,它不要求以上工具。如下圖,我們選取USE_MATHJAX即可。


使用公式有三種方法:

  1.   使用行內公式,即在文字之間使用公式。這些公式將被放在一對 \f$ 之間。
     The distance between \f$(x_1,y_1)\f$ and \f$(x_2,y_2)\f$ is 
      \f$\sqrt{(x_2-x_1)^2+(y_2-y_1)^2}\f$.
    顯示為:The distance between $(x_1,y_1)$ and $(x_2,y_2)$ is $\sqrt{(x_2-x_1)^2+(y_2-y_1)^2}$
  2. 使用行間公式,即公式單獨成一行 。這些公式將被放在一對 \f[ 和\f]之間 
      \f[
        |I_2|=\left| \int_{0}^T \psi(t) 
                 \left\{ 
                    u(a,t)-
                    \int_{\gamma(t)}^a 
                    \frac{d\theta}{k(\theta,t)}
                    \int_{a}^\theta c(\xi)u_t(\xi,t)\,d\xi
                 \right\} dt
              \right|
      \f]
    顯示為:
                   3. 使用environment,至於什麼是environment,可以查詢Latex的語法。語法是以 \f{environment}開始,以\f}結尾.
 \f{eqnarray*}{
        g &=& \frac{Gm_2}{r^2} \\ 
          &=& \frac{(6.673 \times 10^{-11}\,\mbox{m}^3\,\mbox{kg}^{-1}\,
              \mbox{s}^{-2})(5.9736 \times 10^{24}\,\mbox{kg})}{(6371.01\,\mbox{km})^2} \\ 
          &=& 9.82066032\,\mbox{m/s}^2
   \f}
  顯示為:      

Note:

有時候我們在編譯Latex公式時需要某些包支援,而Doxygen呼叫Latex時僅僅呼叫了epsfig、graphicx、keyval、graphics、dvips等幾個基本的包
其他如amsmath這種常用的包都沒有呼叫。所以如果要排版數學公式的話需要手動把需要的包加進來。

在Linux環境下直接修改doxygen的配置檔案即可,在windows下需要通過圖形介面,在Expert->LaTeX->EXTRA_PACKAGES填入amsmath、xr、amsfonts三個包即可。

效果:

我在libtest的test-helper.h使用了數學公式,可以檢視效果

參考文獻: