经过研究,我发现mathjax可以做到这一点。但是当我在我的markdown文件中写一些例子时,它并没有显示正确的方程:

我在markdown文件的头部添加了这个:

<script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=default"></script>

然后输入mathjax语句:

\(E=mc^2\),$$x_{1,2} = \frac{-b \pm \sqrt{b^2-4ac}}{2b}.$$

但是github没有显示任何数学符号!请帮帮我,谢谢! 告诉我如何显示数学符号在github markdown页面。


当前回答

但是github没有显示任何数学符号!请帮帮我,谢谢!

GitHub markdown解析由SunDown (ex libUpSkirt)库执行。

该库的座右铭是“符合标准、快速、安全的C语言markdown处理库”。考虑到你的问题,这里重要的词是“安全”:)。

事实上,允许执行javascript与MarkDown标准的文本到html合同有点不符。

此外,所有看起来像HTML标记的内容都被转义或删除。

告诉我如何显示数学符号在一般github markdown。

最好的办法是找一个类似yuml的网站。me,它可以通过解析提供的URL查询字符串生成实时图像。

更新

我发现一些网站为用户提供这样的服务:codedogs.com(似乎不再支持嵌入)或iTex2Img。 你可能想尝试一下。当然,其他的可能存在,一些Google-fu会帮助你找到它们。

给定以下markdown语法

![equation](http://www.sciweavers.org/tex2img.php?eq=1%2Bsin%28mc%5E2%29&bc=White&fc=Black&im=jpg&fs=12&ff=arev&edit=)

它将显示以下图像

注意:为了使图像正确显示,您必须确保url的querystring部分是百分比编码的。你可以很容易地找到在线工具来帮助你完成这项任务,比如www.url-encode-decode.com

其他回答

如果只是想自己在浏览器中展示数学,你可以尝试Chrome扩展GitHub和MathJax。这很方便。

现在已经是2020年了,让我来总结一下源代码存储库主机的数学公式呈现支持的进展。

GitHub和Bitbucket

GitHub和Bitbucket仍然不支持数学公式的呈现,无论是默认的分隔符还是其他。

Bitbucket Cloud / BCLOUD-11192 -在MarkDown文档中添加LaTeX支持(BB-12552) GitHub / markup—呈现数学方程 GitHub / markup—支持latex GitHub社区论坛-[功能请求]乳胶数学在Markdown talk.commonmark.org—数学公式可以添加到markdown

GitHub近年来几乎没有取得任何实质性进展。

GitLab

GitLab已经得到了支持,但不是最常见的方式。它使用自己的分隔符。

This math is inline $`a^2+b^2=c^2`$.

This is on a separate line

```math
a^2+b^2=c^2
```

GitLab Flavored Markdown -- Math

谁支持通用分隔符?

Hugo使用的Markdown解析器

其他渲染方法

使用web api渲染根据一个黑客显示乳胶公式在GitHub markdown,你甚至可以写jupyter笔记本。 readme2tex

Markdown支持内联HTML。内联HTML可以用于快速和简单的内联方程,也可以使用外部工具进行更复杂的渲染。

快速简单的内联

对于快速和简单的内联项目,使用HTML &实体代码。将这种思想与markdown中的下标文本结合起来的一个例子是:hθ(x) = θo x + θ1x,其代码如下。

    h<sub>&theta;</sub>(x) = &theta;<sub>o</sub> x + &theta;<sub>1</sub>x

常见数学符号的HTML &实体代码可以在这里找到。这里是希腊字母的密码。一个广泛的列表html实体代码到Unicode字符可以在这里找到。

虽然这种方法有局限性,但它实际上适用于所有的降价,并且不需要任何外部库。

使用LaTeX和Codecogs进行复杂的可伸缩内联渲染

如果你的需求更大,可以使用像CodeCogs这样的外部LaTeX渲染器。用CodeCogs编辑器创建一个方程。选择svg来呈现,选择HTML来嵌入代码。Svg在调整大小时呈现良好。当您查看源代码时,HTML使LaTeX易于阅读。从页面底部复制嵌入代码,并将其粘贴到您的标记中。

<img src="https://latex.codecogs.com/svg.latex?\Large&space;x=\frac{-b\pm\sqrt{b^2-4ac}}{2a}" title="\Large x=\frac{-b\pm\sqrt{b^2-4ac}}{2a}" />

用markdown表示

![\Large x=\frac{-b\pm\sqrt{b^2-4ac}}{2a}](https://latex.codecogs.com/svg.latex?\Large&space;x=\frac{-b\pm\sqrt{b^2-4ac}}{2a}) 

它结合了这个和这个答案。

对我来说,GitHub只支持使用上面的原始html语法来编写可读的LaTeX。如果上面的不工作,你的另一个选择是选择URL编码呈现,并使用该输出手动创建一个链接,如:

![\Large x=\frac{-b\pm\sqrt{b^2-4ac}}{2a}](https://latex.codecogs.com/svg.latex?x%3D%5Cfrac%7B-b%5Cpm%5Csqrt%7Bb%5E2-4ac%7D%7D%7B2a%7D)

这手动将LaTex合并到alt图像文本中,并使用一个编码的URL在GitHub上渲染。

多行显示

如果你需要多行渲染,看看这个答案。

虽然GitHub不会解释MathJax公式,但您可以自动生成一个新的Markdown文档,将公式替换为图像。

我建议你看看GitHub应用TeXify:

GitHub应用程序,在你的推文件扩展名*.tex。md和渲染它的TeX表达式为SVG图像

它是如何工作的(从源存储库):

每当你按TeXify将运行并搜索*.tex。Md文件。对于其中的每一个,它将运行readme2tex,它将接受美元符号之间的LaTeX表达式,将其转换为普通的SVG图像,然后将输出保存到.md扩展文件中(这意味着将处理名为README.tex.md的文件,并将输出保存为README.md)。在此之后,将提交输出文件和新的SVG图像并将其推回您的repo。

TeXify不再工作。检查我的repo readme2tex-action如何创建Github动作。

添加动作。Yml文件到.github/workflow /action.yml。 如有必要,请更改分支主名称。