如何在github页面中支持latex?

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.redcarpetkramdown在此示例中建议.某些解析器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.

  • @user2516837 该链接似乎不再存在。 (4认同)

小智 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

  • 根据文档 http://docs.mathjax.org/en/v2.7-latest/start.html#using-a-content-delivery-network-cdn `src`-url 应替换为以下之一 ` src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/MathJax.js?config=TeX-MML-AM_CHTML"` 或 `src="https://cdnjs.cloudflare.com /ajax/libs/mathjax/2.7.7/latest.js?config=TeX-MML-AM_CHTML"` (2认同)

dav*_*les 17

现在最简单的方法是使用KaTeX 自动渲染扩展

只需将以下内容放入您的<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 分隔符来打破这一点。