【问题标题】:latex newcommand in doxgygen html outputdoxgygen html输出中的latex newcommand
【发布时间】:2017-03-09 07:02:28
【问题描述】:

我按照 doxygen 手册和这里有关堆栈溢出的一些其他问题,我设法让 doxygen 从我的代码中创建一个 pdf。我正在写一本手册,有很多方程式,并且想要一个一致的符号,所以我创建了一个乳胶样式文件。我在文件夹manual 中的设置大致类似于

html/
latex/
Doxyfile
style.sty

然后我必须在latex/ 中创建一个链接以使其工作ln -s ../style.stystyle.sty

\newcommand{\cond}{\,|\,}
\newcommand\rmdx[1]{\mbox{d}#1\,}

我添加到Doxyfile

EXTRA_PACKAGES         = style

不幸的是,创建的 html 输出只包含 mathjax 框说

Undefined control sequence \cond

虽然 pdf 中的数学很好

【问题讨论】:

    标签: latex doxygen mathjax


    【解决方案1】:

    有点繁琐的方法是在javascript中配置mathjax来学习newcommands,如下所示:

    MATHJAX_CODEFILE = newcommands.js 添加到doxyfile。然后 在与doxyfile相同的目录下创建newcommands.js

    MathJax.Hub.Config({
        TeX: {
            Macros: {
                cond: ["{\\,|\\,}"],
                rmdx: ["{\\mbox{d}#1\\,}",1]
            }
        }
    });
    

    因此必须复制命令才能获得 pdf 和 html 输出,但至少可以这样。

    来源:关于 mathjax 的 doxygen 手册 http://www.doxygen.nl/manual/config.html#config_html,关于 tex 宏的 mathjax 手册 http://docs.mathjax.org/en/latest/tex.html#defining-tex-macros

    【讨论】:

    【解决方案2】:

    这是一个老问题,但我相信它仍然与许多 doxygen 用户相关。所以这里有一个替代方案:

    有一个稍微简单的解决方案。我不确定它是否适用于旧版本的 MathJax,但它确实适用于 v2.7。 您可以使用\htmlonly\endhtmlonly 来实现相同的目的,而无需创建像newcommands.js 这样的外部文件。例如:

    \htmlonly
        \(
            \def\KK{\bf K}
            \def\uu{\bf u}
            \def\ff{\bf f}
        \)
    \endhtmlonly
    

    定义了 3 个宏。它只对一个 HTML 文件是本地的。因此,根据您的情况,newcommands.js 可能更容易,或者这个可能更容易。

    \htmlonly and \endhtml tags 分隔文本将逐字放置在 html 输出中。 \( and \) tags 分隔 MathJax 将处理的部分。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-08-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多