关闭

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

标签: doxygenlatex
528人阅读 评论(0) 收藏 举报
分类:

问题

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

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

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

分析

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

  1. 把公式都提取出来写到一个_formulas.tex文件里
  2. 这个文件先用LATEX编译成DVI格式
  3. 再由dvips转成PostScript格式
  4. 最后由gs(GhostScript)转成图片显示在网页里

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

解决

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

在Linux环境下直接修改doxygen的配置文件即可,在windows下需要通过图形界面,在Expert->LaTeX->EXTRA_PACKAGES填入amsmath、xr、amsfonts三个包即可。

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:72562次
    • 积分:964
    • 等级:
    • 排名:千里之外
    • 原创:25篇
    • 转载:6篇
    • 译文:0篇
    • 评论:55条
    最新评论