您的位置:首页 > 其它

使用doxygen排版数学公式出错的解决方法

2015-07-08 12:39 267 查看

问题

今天玩了一下doxygen,碰到一个问题

! Undefined control sequence.
l.77 $ y_{\mbox{test}} = \mathbb
{E}[y_{\mbox{train}}] = x $
?
! Emergency stop.


这时候打开生成的网页,所有应该是公式(图片)的地方都只有LATEX\LaTeX代码。

分析

doxygen对代码注释中LATEX\LaTeX公式的处理方法是:

把公式都提取出来写到一个_formulas.tex文件里

这个文件先用LATEX\LaTeX编译成DVI格式

再由dvips转成PostScript格式

最后由gs(GhostScript)转成图片显示在网页里

上面的错误信息意思是在第2步遇到了问题。

解决

我把上面的公式拎出来用自己的模板编译了一下发现没什么问题,说明LATEX\LaTeX工作是正常的。Google+查阅日志之后发现doxygen调用LATEX\LaTeX的时候默认仅调用了epsfig、graphicx、keyval、graphics、dvips等几个基本的包,其他如amsmath这种常用的包都没有调用。所以如果要排版数学公式的话需要手动把需要的包加进来。

在Linux环境下直接修改doxygen的配置文件即可,在windows下需要通过图形界面,在Expert->LaTeX->EXTRA_PACKAGES填入amsmath、xr、amsfonts三个包即可。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: