我想在Rust文档中为我的箱子写一个数学公式。
看起来像LaTeX的基本支持至少power
起作用:
/// $ 2^8 $
呈现为:
我想在我的公式中使用一个分数,但不幸的是,这不起作用:
/// $ \frac{x}y $
答案 0 :(得分:6)
看起来有LaTeX的基本支持
不完全。支持 Markdown ,而非LaTeX。 Stack Overflow也支持Markdown,但风格各异。例如:a<sup>b</sup>
=&gt; a ^ b,但是/// Hi
///
/// $ 2^8 $
pub fn what() {
}
=&gt;一个 B'/ SUP>。 Markdown不支持任意LaTeX。的确,你的榜样:
$
生成仍包含{{1}}的内容:
下一个最好的事情可能是生成预渲染图像,然后将它们包含在您的文档中,但an open issue似乎表明目前不可能,除非您将图像托管在其他地方。 / p>
答案 1 :(得分:2)
您可以使用MathJax和rustdoc
的{{1}}来传递指向所需脚本标记的链接。这非常hacky,并且不适用于docs.rs,但如果您托管自己的文档,它可以工作。
答案 2 :(得分:2)
类似于Steve's answer,使用katex,您可以遵循以下方法:
您需要将html文件放在板条箱中的某个位置,其代码应包含在--html-in-header
选项中。然后执行:
RUSTDOCFLAGS="--html-in-header path-to-your-header-file.html" cargo doc --no-deps
--no-deps
并非绝对必要,但如果您不想将标头添加到另一个外部包装箱的文档中,则很方便。
要在http://docs.rs中使用,必须将其放在Cargo.toml
上:
[package.metadata.docs.rs]
rustdoc-args = [ "--html-in-header", "path-to-your-header-file.html" ]
标头html文件的内容可能是(这是Kernfeld的解决方案):
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.10.0/dist/katex.min.css" integrity="sha384-9eLZqc9ds8eNjO3TmqPeYcDj8n+Qfa4nuSiGYa6DjLNcv9BtN69ZIulL9+8CqC9Y" crossorigin="anonymous">
<script src="https://cdn.jsdelivr.net/npm/katex@0.10.0/dist/katex.min.js" integrity="sha384-K3vbOmF2BtaVai+Qk37uypf7VrgBubhQreNQe9aGsz9lB63dIFiQVlJbr92dw2Lx" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/katex@0.10.0/dist/contrib/auto-render.min.js" integrity="sha384-kmZOZB5ObwgQnS/DuDg6TScgOiWWBiVt0plIRkZCmE6rDZGrEOQeHM5PcHi+nyqe" crossorigin="anonymous"></script>
<script>
document.addEventListener("DOMContentLoaded", function() {
renderMathInElement(document.body, {
delimiters: [
{left: "$$", right: "$$", display: true},
{left: "\\(", right: "\\)", display: false},
{left: "$", right: "$", display: false},
{left: "\\[", right: "\\]", display: true}
]
});
});
</script>
See pwnies是扩展doc html页面可能性的其他示例(没有LaTeX)。