c - 使用 Doxygen 引用 LaTeX 方程

标签 c formula doxygen

我目前正在记录一些使用 Doxygen 的高级模拟工具。我希望能够引用 HTML 文档中的方程式。

为了说明问题。执行以下操作

doxygen -g Doxyfile
sed -i 's/^EXTRA_PACKAGES.*/EXTRA_PACKAGES = amsmath amsfonts/g' Doxyfile
sed -i 's/^LATEX_BATCHMODE.*/LATEX_BATCHMODE = YES/g' Doxyfile

您现在有了一个 Doxyfile,它可以用于包含公式的项目。

在同一目录下放置以下内容

示例.h:

/**
 * @file   sample.h
 */

/**
 * @mainpage Some example
 *
 * Some complicated math:
 * \f{equation}{\label{eq:1}
 * p(\vec{r}_{0},t) = \ldots
 * \f}
 */

/** 
 * The function computes the pressure based on \f$\ref{eq:1}\f$
 * 
 * @param rho 
 * @param v 
 * @param r 
 * @param t 
 * 
 * @return 
 */
int CalcPressure(float rho, float v[3], float r[3], float t);  

执行以下命令生成 LaTeX 文档。

doxygen Doxyfile
cd latex
make

CalcPressure 函数的文档中包含对等式 (1.1) 的引用。

另一方面,HTML 文档包含一个“??”引用公式。是否可以调整 doxygen 以运行两次以生成公式,以便创建的图像包含引用“(1.1)”而不是“??”。

另一种解决方案也可能有效。我知道如何使用 xr 包在另一个 LaTeX 文档中包含对函数的引用,http://www.cheshirekow.com/wordpress/?p=335

我可以使用这个过程,如果我可以告诉 Doxygen 不要删除 _formulas.aux 文件,重命名文件并使用 xr 包将其作为输入传递,但我不知道如何告诉 Doxygen 不要删除临时文件。

我希望有一个创建公式引用的解决方案。请帮忙

最佳答案

部分答案。要从 html 中删除 ??,请仅在 latex 中创建链接

/**
 * The function computes the pressure based on @latexonly\ref{eq:1}@endlatexonly
 */

但是这样你就不会得到一个html格式的链接。

关于c - 使用 Doxygen 引用 LaTeX 方程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43191252/

相关文章:

c - 未对齐的指针性能

go - 如何为 Homebrew 程序打包 Go 项目

doxygen QGDict 空键

doxygen 中的 svg 图像文件

c++ - 无法生成 Doxygen 图

c - 我的 pthread 没有调度。在 C 中

c - 指向函数及其返回类型 (void) 的指针

c - 为什么这个 scanf 会导致段错误?

excel - Excel 单元格公式可以引用 UserForm 控件吗?

date - Crystal 报表日期公式使其成为月底