经过研究,我发现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


对于tex→图像转换,LaTeXiT工具可以产生更高质量的输出。我相信这是大多数TeX分布的标准,但如果你还没有它,你当然可以在网上找到它。你所需要做的就是把它放在TeX中,将图像拖到桌面,然后从桌面拖到图像托管站点(我使用imgur)。


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


另一种解决方法是使用jupyter笔记本,并在单元格中使用markdown模式来渲染方程。

基本的东西似乎很完美,比如居中方程

\begin{equation}
...
\end{equation}

或者内联方程

$ \sum_{\forall i}{x_i^{2}} $

虽然,我真正想要的一个函数在github中根本没有呈现是\mbox{},这是一个遗憾。但是,总的来说,这是在github上渲染方程的最成功的方式。


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。


我在标记文件的头部使用了以下内容

<script type="text/javascript" async
src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js? 
config=TeX-MML-AM_CHTML"
</script>

然后输入以下mathjax语句 $$x_{1,2} = \frac{-b \pm \sqrt{b^2-4ac}}{2b}.$$ 这对我很有效


有一个很好的解决方案,你的问题-使用TeXify github插件(提到了汤姆黑尔的答案-但我开发了他的答案在下面给出的链接)-关于这个github插件的更多细节,并解释为什么这是一个很好的方法,你可以在答案中找到。


我使用下面提到的过程转换方程markdown。这对我来说很有效。非常简单!!

比方说,我想表示矩阵乘法方程

步骤1:

从这里获取公式脚本- https://csrgxtu.github.io/2015/03/20/Writing-Mathematic-Fomulars-in-Markdown/ 我的例子:我想表示Z(I,j)=X(I,k) * Y(k, j);K =1到n的求和公式。 参考网站,需要的脚本是=> Z_i_j=\sum_{k=1}^{10} X_i_k * Y_k_j

步骤2:

使用URL编码器- https://www.urlencoder.org/将脚本转换为有效的URL 我的例子:

步骤3:

使用本网站通过复制粘贴步骤2中的“eq”请求参数中的输出来生成图像- http://www.sciweavers.org/tex2img.php?eq=<b><i>粘贴-output-here</i></b>&bc=White&fc=Black&im=jpg&fs=12&ff=arev&edit= -我的例子: http://www.sciweavers.org/tex2img.php?eq=Z_i_j= \ sum_ {k = 1} ^ {10} % 20 x_i_k % 20 * % 20 y_k_j&bc = White&fc = Black&im = jpg&fs = 12 ff = arev&edit =

步骤4:

参考图片使用markdown语法- ![alt文本](在这里输入url) -复制这个在你的markdown和你是好的: ![Z(i,j)=X(i,k) * Y(k, j);k=1 ~ n](http://www.sciweavers.org/tex2img.php?eq=Z_i_j%3D%5Csum_%7Bi%3D1%7D%5E%7B10%7D%20X_i_k%20%2A%20Y_k_j&bc=White&fc=Black&im=jpg&fs=12&ff=arev&edit=)

下图是markdown的输出。华友世纪! !



现在已经是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


一个“快速而肮脏”的解决方案是使用标准的TeX方程来维护一个标准的.md文件,例如_README.md。 当你满意时,通过Pandoc将整个文件从标准Markdown转换为Markdown (Github风味),并将输出复制到README.md。

您可以在线快速完成,或者在本地安装/配置Pandoc。


Mathcha是一个复杂的数学编辑器,但它可以用于呈现单个方程并将其保存为纯html,然后可以将其作为内联html添加到文档中,也可以保存为SVG并作为图像插入。https://www.mathcha.io/


我刚刚发布了一个小小的Chrome扩展,xhub,它可以让你在GitHub页面中使用LaTeX数学(以及更多)。

优点:

你不需要在你的回购中设置任何东西,只需在Markdown中使用数学(来自GitLab的sytax): 有些显示数学: ' '的数学 E ^{i\pi} + 1 = 0 ' ' ' 还有一些内联运算,$ ' a^2 + b^2 = c^2 ' $。 它同样适用于浅色和深色背景。 你可以复制粘贴数学

缺点:

你必须安装一次浏览器扩展。


另一种可能是依赖GitHub自己的笔记本渲染器。这甚至可以在SO中工作。

要呈现x_{1,2} = \frac{-b \pm \sqrt{b^2-4ac}}{2b},请使用以下HTML img标记:

<img src="https://render.githubusercontent.com/render/math?math=x_{1,2} = \frac{-b \pm \sqrt{b^2-4ac}}{2b}">

现场演示:

这种方法的伟大之处在于,你可以直接在Markdown中编辑你的公式,预览版也会相应更新。 您可以通过编辑这个答案来尝试一下。(如果你的编辑不能给答案加分,那就扔掉吧;))

来源:https://gist.github.com/a-rodin/fef3f543412d6e1ec5b6cf55bf197d7b


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

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


你可以将你的LaTeX嵌入到render.githubusercontent.com渲染的图像URL中,例如:

<img src="https://render.githubusercontent.com/render/math?math={x + y}">

这将呈现如下:

你会发现这里少了一个+号。为了解决这个问题,你可以URL编码加号为%2b或URL编码整个等式,这将呈现如下:

不幸的是,它总是以黑色呈现,所以你会想要使用这个GitHub特定的技巧来为使用暗模式的用户呈现白色文本,为使用浅色模式的用户呈现黑色文本,方法是使用#gh-light-mode-only和使用LaTeX命令\color{white}和#gh-dark-mode-only标签来包含方程:

<img src="https://render.githubusercontent.com/render/math?math={x - y}#gh-light-mode-only">
<img src="https://render.githubusercontent.com/render/math?math={\color{white}x - y}#gh-dark-mode-only">

这将显示给轻模式用户:

并显示给暗模式用户:


自2022年5月起正式支持:

Render mathematical expressions in Markdown You can now use LaTeX style syntax to render math expressions within Markdown inline (using $ delimiters) or in blocks (using $$ delimiters). Writing expressions as blocks To add math as a multiline block displayed separately from surrounding text, start a new line and delimit the expression with two dollar symbols $$. **The Cauchy-Schwarz Inequality** $$\left( \sum_{k=1}^n a_k b_k \right)^2 \leq \left( \sum_{k=1}^n a_k^2 \right) \left( \sum_{k=1}^n b_k^2 \right)$$ Writing inline expressions To include a math expression inline with your text, delimit the expression with a dollar symbol $. This sentence uses `$` delimiters to show math inline: $\sqrt{3x-1}+(1+x)^2$ GitHub's math rendering capability uses MathJax; an open source, JavaScript-based display engine. MathJax supports a wide range of LaTeX macros and a number of useful accessibility extensions. For more information, see the MathJax documentation and the MathJax Accessibility Extensions documentation. Some users have previously used a workaround to generate images of mathematical expressions through API requests. Images generated this way will remain viewable, but this technique will no longer work. Going forward, expressions should be written directly in Markdown using LaTeX syntax as described above. For more information about authoring content with advanced formatting, see Working with advanced formatting in the GitHub documentation.


这仍然是测试版,并受到批评。 参见“GitHub上的数学:好,坏和丑”,来自Nico Schlömer。 语法介绍:

竞争Markdown和数学渲染器 难以解释的数学问题


正如brc-dd在评论中指出的:

2022年6月:

用于数学表达式的隔离块语法 除了已经支持的分隔符之外,用户现在还可以使用“math fenced”代码块语法来描述数学表达式。 如果使用此方法,则不需要两个美元符号$$分隔符。 这里有一些数学!** ' '的数学 \ sqrt {3} ”。“ 就变成: 阅读有关使用高级格式的更多信息。


现在自2022年5月起,Github接受LATEX直接进入Markdown,唯一要做的就是把LATEX代码放在$$$$上

还有一件事,你可以使用markdown上的{\color{nameColor}text}为数学着色

$${\color{red}\sum\limits_{\color{lightblue}i=0}^{\color{orange}n} {\color{pink}i}} = \frac{\color{pink}n!}{\color{lightblue}k!(n-k)!}$$

图片中的例子:

$$\sum\limits_{i=0}^n i^2$$创建和: