包含公式

Doxygen 允許您在輸出中放入 {\LaTeX} 公式(這僅適用於 HTML、{\LaTeX} 和 RTF 輸出)。為了能夠在 HTML 和 RTF 文件中包含公式(以圖像形式),您還需要安裝以下工具:

  • latex: {\LaTeX} 編譯器,用於解析公式。為了測試,我使用了 teTeX 1.0 發行版。
  • dvips: 一個將 DVI 文件轉換為 PostScript 文件的工具。我為了測試使用了 Radical Eye software 的 5.92b 版本。
  • gs: GhostScript 解譯器,用於將 PostScript 文件轉換為點陣圖。我為了測試使用了 Aladdin GhostScript 8.0。

對於 HTML 輸出,還有一個使用 MathJax 的替代解決方案,不需要上述工具。如果您在設定中啟用 USE_MATHJAX,則 LaTeX 公式將「原樣」複製到 HTML 中,並且客戶端 JavaScript 將解析它們並將其轉換為(互動式)圖像。

在文件中包含公式有四種方式。

  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$.
    

    產生

    $(x_1,y_1)$$(x_2,y_2)$ 之間的距離是 $\sqrt{(x_2-x_1)^2+(y_2-y_1)^2}$

  2. 使用出現在文字中的行內公式,與 \f$ 相反,它不會在 {\LaTeX} 中明確開啟數學模式。這些公式應該放在 \f(\f) 指令之間,所以

      The LaTeX and Tex logos are: \f(\LaTeX \f) and \f(\TeX \f).
    

    產生

    LaTeX 和 Tex 標誌是:{\LaTeX}{\TeX}

  3. 未編號的顯示公式,這些公式在單獨的行中置中。這些公式應該放在 \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]
    
    產生

    \[    |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|
\]

  4. 可以使用 \f{environment} 指定不在數學環境中的公式或其他 latex 元素,其中 environment{\LaTeX} 環境的名稱,對應的結束指令是 \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}
    
    產生

    \begin{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
\end{eqnarray*}

對於第一個和第三個指令,應確保公式在 {\LaTeX} 的數學模式中包含有效的指令。第二個指令應該是有效文字模式指令,在使用 USE_MATHJAX 時也可以在數學模式下運作。對於第四個指令,該節應包含特定環境的有效指令。

警告
目前,Doxygen 在從公式中的錯字中恢復時,容錯能力並不是很好。可能需要刪除寫入到 html、rtf 等目錄的 formula.repository 檔案,以擺脫不正確的公式以及 form_* 檔案。

為了能夠定義自己的 {\LaTeX} 指令,例如公式建構塊或一致地寫入某些單字,可以使用設定選項 FORMULA_MACROFILE 來提供一個包含 {\LaTeX} 指令的檔案。該檔案可以包含 {\LaTeX} \newcommand\renewcommand 指令,並且它們包含在公式(圖像版本和 MathJax 版本)以及產生的 {\LaTeX} 輸出中(用於產生 PDF)。
\newcommand(和 \renewcommand)僅限於沒有可選參數的版本,因此僅支援以下類型

\newcommand{\cmd}{replacement}
\newcommand{\cmd}[nr]{replacement}

例如:

\newcommand{\E}{\mathrm{E}}
\newcommand{\ccSum}[3]{\sum_{#1}^{#2}{#3}}

前往下一節或返回索引