Как показать математические уравнения с DDoc?

Я хотел бы использовать математические уравнения в документации с использованием DDoc. Какой хороший способ заставить это выглядеть хорошо?

Что-то вроде:

/**
 * Returns x + sqrt(2).
 */
double add_sqrttwo(double x) {
    return x + sqrt(2);
}

3 ответа

Вы можете импортировать MathJax, а затем поставить математику между \(\) или же \[\],

Пример:

/**
* Macros:
* DDOC =
* <!DOCTYPE html>
* <html lang="en-US">
* <head>
* <script type="text/javascript" async src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-MML-AM_CHTML"></script>
* <title>$(TITLE)</title>
* </head>
* <body><h1>$(TITLE)</h1>$(BODY)</body>
* </html>
*
*/

module example;

import std.math;

/**
 * Jay! \( a + \sqrt{2} \)
 *
 * You must prefix parameter names with an underscore: \( _x + \sqrt{2} \).
 * 
 */
double add_sqrttwo(double x) {
    return x + sqrt(2.0);
}

Боюсь, что сама DDOC не может этого сделать. Вы должны будете использовать, например, Javascript, чтобы выполнить это или предварительно сгенерировать их как изображения.

Если вы ориентируетесь на HTML, есть несколько вариантов, но ни один из них не является ddoc как таковым: вы можете сделать ссылку на изображение по формуле (<img src="...">), вы можете поместить теги вокруг него и обработать позже (будь то постпроцессор на этапе генерации или библиотека Javascript в Интернете), или вы можете попробовать написать MathML в документе https://developer.mozilla.org/en-US/docs/Web/MathML/Authoring...

Вы также можете попробовать использовать различные символы Юникода, такие как returns X + √2 но это также довольно ограничено.

Но все они работают вокруг ddoc, а не с ним. ddoc просто не может сделать это самостоятельно.

Другие вопросы по тегам