包含公式

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}}

转到下一部分或返回索引