将MathJax与Jekyll一起使用
我有一个Jekyll博客,我想使用MathJax,从某种意义上说,我希望能够键入将MathJax与Jekyll一起使用,jekyll,mathjax,Jekyll,Mathjax,我有一个Jekyll博客,我想使用MathJax,从某种意义上说,我希望能够键入 $$\sum_{n=1}^\infty 1/n^2 = \frac{\pi^2}{6}$$ 在我的标记文件中,使用MathJax生成正确的LaTeX表达式,方法与在中的操作类似 最简单的方法是什么?目前我的目录中有一个文件(GitHub gist),我想我可以在我的\u includes目录中有一个名为mathjs的简单文件 <script src="path/to/jsmath.js></sc
$$\sum_{n=1}^\infty 1/n^2 = \frac{\pi^2}{6}$$
在我的标记文件中,使用MathJax生成正确的LaTeX表达式,方法与在中的操作类似
最简单的方法是什么?目前我的目录中有一个文件(GitHub gist),我想我可以在我的\u includes
目录中有一个名为mathjs
的简单文件
<script src="path/to/jsmath.js></script>
但这似乎不起作用——当我运行jekyll--server
时,会生成页面,但没有任何内容可见
我这样做对吗?有没有更好的方法将MathJax与Jekyll一起使用?当然,您可以将MathJax与Jekyll一起使用。要使这项工作正常进行,请确保
元素中,将内联数学放在
元素中,而大多数降价解释器将不使用这些元素李>
\begin{equation}
等)
您的jsmath.js
脚本可能存在一些问题;CDN版本将更快,可能更可靠。(我在每个页面的页脚中都有javascript加载,但是如果您不想在不需要的时候加载javascript,那么当然您的包含策略是有意义的。)
如果你给我们一个你博客的链接,我们能帮上更多忙吗?您可以看到一些示例(如果有帮助的话,还可以在github上找到Jekyll安装程序的链接) 您可以尝试我的静态博客生成器:。Jekyde类似于Jekyll,但它很好地处理了Markdown文件中的LaTeX。只需将公式放入$…$和$$…$中即可。另外,Jekyde在带有LaTeX预览的浏览器中包含一个降价编辑器。我不久前写了一篇关于设置MathJax的博文: 本质上,您必须停止降价,以免将MathJax弄乱 我最终使用了代码块,这对我来说很好。因此,在写东西之前,或者至少使用4个空格,或者使用锐符号:
`
;
不幸的是,MathJax在默认情况下跳过了
标记,因为它不想转换不应该转换的代码
因此,在主布局文件的某个地方,您必须添加一些javascript代码:
MathJax.Hub.Config({
tex2jax: {
skipTags: ['script', 'noscript', 'style', 'textarea', 'pre']
}
});
此外,我们必须告诉MathJax忽略非latex代码块或普通代码块:
MathJax.Hub.Queue(function() {
var all = MathJax.Hub.getAllJax(), i;
for(i=0; i < all.length; i += 1) {
all[i].SourceElement().parentNode.className += ' has-jax';
}
});
可能不是最好的方法,但在过去的几年中,它一直适用于我的博客,我从未遇到过任何进一步的问题。如果您对发布过程有足够的控制权(例如,您自己运行的是Jekyll),则需要将标记解析器切换到支持TeX的解析器。例如,使用:
将\u config.yml
中的标记行更改为
markdown: kramdown
再加上
到\u layouts/default.html
。现在,您可以简单地使用。如果您使用kramdown
作为您的降价风格,这很容易。Kramdown内置了对mathjax
的支持
在默认布局的
标记之前添加此项
<script type="text/javascript" async
src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?
config=TeX-AMS-MML_HTMLorMML"></script>
完成了。为了背叛Mathjax
- 内联,使用
\(…\)
- 块,使用
\[…\]
唯一需要注意的是使用标记时反斜杠的转义,因此对于内联数学和块数学,分隔符分别成为\\(…\\)
和\[…\\]
下面是MathJax内联渲染\\(1/x^{2}\\)
的示例,下面是块渲染:
\[\frac{1}{n^{2}\\]
我在我的博客上使用了它。在尝试以下任一选项之前,请先记下一些注意事项
选项0
将增加构建时间,即使使用--增量
也是如此,而且在大多数情况下可能会使用选项1
,但是,如果您部署在客户端可能无法访问CDN的网络上,那么这与占用的额外空间一起可能值得付出成本
这两个选项都在私有服务器上进行了测试,使用kramdown
作为标记解释器,并在项目的\u config.yml
文件中设置mathjax:true
;请参阅的答案及其前言,以及upto的前两个代码块,了解这些位的操作方法
选项0
下载未打包的源代码并将其复制到项目名称
下载源代码
cd~
mkdir-p git/hub和&cd git/hub
git克隆--深度1https://github.com/mathjax/MathJax.git
在项目中创建一个目录路径,并将文件从MathJax/unpacket
复制到此路径
cd~
mkdir-p git/lan/project name/assets/JS_第三方/MathJax
cp-r git/hub/MathJax/unpacket/*git/lan/project name/assets/JS_第三方/MathJax/
将源添加到git
跟踪
cd git/lan/project name/
git添加资产/JS_第三方/MathJax
git提交-m'将MathJax.js解包源添加到git跟踪'
写一个包含文件
tee./\u includes/MathJax.html 1>/dev/null/dev/nullJekyll使用kramdown作为2.0+的默认标记转换器。它不支持mathjax等等,我认为下面的内容可以帮助您
jekyll spaceship-对于我来说,将此添加到默认的_布局或标题_includeworks(与首页或帖子变量结合使用):
{%if page.mathjax%}
MathJax.Hub.Config({
tex2jax:{
gem install kramdown
markdown: kramdown
<script type="text/javascript" async
src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?
config=TeX-AMS-MML_HTMLorMML"></script>
mathjax: true
---
mathjax: yes
---