Latex Math¶
Breathe has basic support for latex math markup in the doxygen comments. A class with a comment like:
/**
* @brief A class
*
* A inline formula: \f$ f(x) = a + b \f$
*
* A display style formula:
* @f[
* \int_a^b f(x) dx = F(b) - F(a)
* @f]
*/
class MathHelper
{
public:
MathHelper() {}
~MathHelper() {}
}
Will be renderer as:
-
class MathHelper¶
A class.
A inline formula: \( f(x) = a + b \)
A display style formula:
\[ \int_a^b f(x) dx = F(b) - F(a) \]
Without any additional configuration except for including a math extension in
the Sphinx conf.py
:
extensions = [ "breathe", "sphinx.ext.mathjax" ]
The specific environment formula fails when using sphinx.ext.pngmath
so more
work is needed.
Implementation¶
Breathe uses a internal reStructuredText node provided by
sphinx.ext.mathbase
which is then picked up and rendered by the extension
chosen in the conf.py
. It does not pass any additional options through to
the node, so settings like label
and nowrap
are currently not supported.
Credits¶
Thank you to dazzlezhang for providing examples and a full run down of necessary details. It made the implementation much easier.