Sam*_*uel 44 jekyll github-pages
我用jekyll写帖子并在github-pages中显示它.我的源文件是用markdown写的.
如何将公式插入markdown文件?
我不想将公式保存到图像中并将图像加载到markdown文件中.我其实想直接在markdown文件中写乳胶配方.
mat*_*aly 36
由于关于这个问题的在线资源已经改变,这里是关于使用GitHub页面支持LateX的更新.
请注意,最接近Latex渲染但未导出为图像并在Jekyll站点上本机支持它将使用MathJax.
MathJax实际上是 在Jekyllrb文档中推荐用于数学支持,使用Kramdown,它也将它从LaTeX转换为PNG,更多详细信息请参见Kramdown文档
选项1:在MathURL中编写等式并嵌入它.
您可以使用MathURL编写等式,然后生成永久指向等式的URL,并将其显示在<iframe>
标记中.但是,如果MathURL脱机,这将停止工作.
选项2:实现jsMath
jsMath将允许几乎类似LateX的语法,如果你已正确设置它将在你的博客中得到支持,有大量的文档.
选项3: Mathjax(到目前为止,我认为最简单)
许多网站都提到Mathjax被认为是jsMath的继承者,并且使用Jekyll更容易实现.MathJax也被mathics.stackexchange.com使用!
第1步:让您的网站在要显示数学的网站中加载脚本.(通常在标题中完成)
可选:检查您的降价解析器_config.yml
.redcarpet
或kramdown
在此示例中建议.某些解析器discount
会干扰语法,但我在下面有一个解决方案.
第2步:编写方程式.
由Gaston Sanchez引用本教程:
MathJax与LaTeX没有完全相同的行为.默认情况下,tex2jax预处理器定义LaTeX数学分隔符,它们是用于内联数学的\(... \)和用于显示方程式的\ [... \].它还为显示的公式定义了TeX分隔符$$ ... $$,但它没有将$ ... $定义为内联数学分隔符.
阅读有关语法的文档以获取更多详细信息.
raw
液体标签确保Markdown解析器不会干扰MathJax语法.\\[ \frac{1}{n^{2}} \\]
)以确保它们被正确解析,如Chistopher Poole的教程所述,但这并不总是直观且看起来很复杂.一个更简单的解决方案是使用原始液体标签来确保Markdown处理器忽略文本并直接输出为静态html.这是完成的{% raw %}
,也是{% endraw %}
这是一个代码示例:
{% raw %}
$$a^2 + b^2 = c^2$$ --> note that all equations between these tags will not need escaping!
{% endraw %}
Run Code Online (Sandbox Code Playgroud)
最后还要确保字体支持显示LateX,因为有些问题比如字体太小.另外,这里还有一些其他方法,比如乳胶StackExchange姊妹网站中讨论的Google Charts和MathML.
小智 27
如果您在GitHub页面中使用了Jekyll,则可以添加
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
tex2jax: {
skipTags: ['script', 'noscript', 'style', 'textarea', 'pre'],
inlineMath: [['$','$']]
}
});
</script>
<script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script>
Run Code Online (Sandbox Code Playgroud)
在文件中_includes/head.html
,然后您的GitHub页面站点将支持MathJax
dav*_*les 17
只需将以下内容放入您的<head>
:
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.10.2/dist/katex.min.css" integrity="sha384-yFRtMMDnQtDRO8rLpMIKrtPCD5jdktao2TV19YiZYWMDkUR5GQZR/NOVTdquEx1j" crossorigin="anonymous">
<script defer src="https://cdn.jsdelivr.net/npm/katex@0.10.2/dist/katex.min.js" integrity="sha384-9Nhn55MVVN0/4OFx7EE5kpFBPsEMZxKTCnA+4fqDmg12eCTqGi6+BB2LjY8brQxJ" crossorigin="anonymous"></script>
<script defer src="https://cdn.jsdelivr.net/npm/katex@0.10.2/dist/contrib/auto-render.min.js" integrity="sha384-kWPLUVMOks5AQFrykwIup5lo0m3iMkkHrD0uJ4H5cjeGihAutqP0yW0J6dpFiVkI" crossorigin="anonymous" onload="renderMathInElement(document.body);"></script>
Run Code Online (Sandbox Code Playgroud)
请注意,这假定以下分隔符出现在您的 HTML 中:
$$\LaTeX code$$ (for display)
\\[\LaTeX code\\] (also for display)
\\(\LaTeX code\\) (for inline)
Run Code Online (Sandbox Code Playgroud)
请注意,如果使用 Jekyll,您将需要在您的_config.yml
:
markdown: kramdown
kramdown:
math_engine: katex
Run Code Online (Sandbox Code Playgroud)
警告:不要使用math_engine: mathjax
. 它将通过自动删除 LaTeX 分隔符来打破这一点。