C ++嵌入数学公式

时间:2012-01-25 10:25:29

标签: c++ math documentation

我想知道用C ++代码记录数学公式的最佳实践。

理想情况下,将方程式直接写入注释可能是完美的,但以人类可读的方式编写它们是不可行的。

我看过LaTex,MathML,当与来自不同视野的许多人合作时,语法很复杂(毕竟不是每个人都是数学家)。如果您对该领域有任何经验,请发表评论。

例如,我在每个需要记录的函数中添加了对外部HML文件的交叉引用,但是很难维护。我尝试了Doxygen公式,我们大多数人发现语法也非常复杂。

  \f[
    |I_2|=\left| \int_{0}^T \psi(t) 
             \left\{ 
                u(a,t)-
                \int_{\gamma(t)}^a 
                \frac{d\theta}{k(\theta,t)}
                \int_{a}^\theta c(\xi)u_t(\xi,t)\,d\xi
             \right\} dt
          \right|
  \f]

3 个答案:

答案 0 :(得分:4)

你总是可以使用“ASCII”艺术。如果你的编辑器支持Unicode(特别是UTF-8编码),那就更好了。实际查看代码时可能更具可读性。虽然维护它可能不比TeX语法更容易。 E.g。

//          │  ⌠T      {                                            }    │
//          │  |       {          ⌠a       dθ   ⌠θ                  }    │
// │ I  │ = │  |  ψ(t) { u(a,t) - |      ------ |   c(ξ) u (ξ,t) dξ } dt │
// │  2 │   │  |       {          ⌡γ(t)  k(θ,t) ⌡a        t         }    │
//          │  ⌡0      {                                            }    │

答案 1 :(得分:3)

如果您有复杂的数学方程需要各种符号,最好将它们写在功能文档中,而不是代码文档中。即一份单独的文件。

答案 2 :(得分:1)

LaTeX语法并不是过于复杂,而且比MathML更加人性化(人类可写!)(好的,这是一种观点)。一些练习确实有帮助,但这不是你几个小时内不会接受的。根据我的经验,在LaTeX中编写数学丰富的文本是目前最方便的选择。

取决于您的公式有多复杂 - 或者更确切地说,您是否需要花哨的符号 - 我会说您可以将公式嵌入代码并使用doxygen,或者,如已经指出的那样,创建一个单独的文件。