包含公式

Doxygen 允许您在输出中放入 {\LaTeX} 公式(这仅适用于 HTML、{\LaTeX} 和 RTF 输出)。为了能够在 HTML 和 RTF 文档中包含公式(作为图像),您还需要安装以下工具

  • latex: {\LaTeX} 编译器,需要解析公式。为了测试,我使用了 teTeX 1.0 发行版。
  • dvips: 一个将 DVI 文件转换为 PostScript 文件的工具,我使用了 Radical Eye 软件的 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}{替换}
\newcommand{\cmd}[nr]{替换}

例如

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

转到下一节或返回索引