如何在一般的GitHub降价中显示数学方程式(不是github的博客)


150

经过调查,我发现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页面中显示数学符号。


2
对于一般用户而言,这不能解决问题,但是此答案建议使用一个浏览器脚本,该脚本至少可以让您看到方程式:stackoverflow.com/q/11255900/180892
Jeromy Anglim

gitlab使用KaTeX
Foad 18'Aug

Answers:


143

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

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

该库的座右铭是“标准兼容,快速, 安全的 C语言降价处理库”。考虑到您的问题,重要的词是“安全的” :)。

确实,允许执行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=)

它将显示以下图像

等式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


6
@nultoken,感谢您的帮助。我使用了您上面引用的iTex2Img网站,并在文档中添加了两个公式。我遇到一个问题,当我在GitHub上打开文档页面时,两个公式显示相同,而实际上却不同。您是否会知道为什么会发生?
山姆

3
如果必须生成图像,mathurl.com也是一个值得注意的网站。
马丁·托马

2
不过,这似乎在github上不起作用。图像无法渲染。有人知道为什么吗?
OganM 2015年

1
@OganM语法已更改。链路已经固定和GitHub的测试以及
nulltoken

1
iTex2Img网站似乎不适用于我。该图像似乎未在Github上呈现。
timbram '16

91

Markdown支持内联HTML。内联HTML可用于快速和简单的内联方程式,以及用于外部工具的更复杂的呈现方式。

快速简单的内联

对于快速简单的内联项,请使用HTML和号实体代码。H:结合这个想法与降价是下标文字的例子θ(X)=θ ø X +θ 1 x,则代码下面。

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

可以在此处找到用于常见数学符号的HTML和号实体代码。希腊字母代码在这里

尽管这种方法有局限性,但实际上可以在所有降价中使用,并且不需要任何外部库。

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

如果您的需求更大,请使用外部LaTeX渲染器,例如CodeCogs。使用CodeCogs编辑器创建一个方程式。选择svg进行渲染,选择HTML作为嵌入代码。SVG在调整大小时呈现良好。当您查看源代码时,HTML可使LaTeX易于阅读。从页面底部复制嵌入代码,然后将其粘贴到您的markdown中。

<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}" />

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

GitHub仅支持somtimes使用上述原始html语法为我可读的LaTeX。如果上述方法对您不起作用,则另一个选择是选择“ URL编码的呈现”,然后使用该输出手动创建一个链接,例如:

\ x = \ frac {-b \ pm \ sqrt {b ^ 2-4ac}} {2a}

![\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合并到替代图像文本中,并使用编码的URL在GitHub上呈现。

多行渲染

如果您需要多行渲染,请查看此答案


1
这很棒。我必须将一个jupyter笔记本(.ipynb)转换为,.md而这些方程式实质上是多行乳胶代码。
马克·麦克斯麦斯特


10

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

基本的东西看起来像完美的工作原理一样完美

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

或内联方程

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

虽然,我真正想要的功能之一根本不是在github中呈现的\mbox{},这真是令人讨厌。但是,所有这些都是在github上渲染方程式的最成功方法。


3
谢谢您提供这个答案,但是有一个问题:我设法在markdown模式下使用jupyter notebook,方程式似乎还可以。但是,现在您如何才能将这个jupyter降价转移到readme.mdGitHub上?
DavidC。

1
公式不会直接在Markdown文件上呈现。等式几乎必须是图像readme.md。但是,您总是可以放到file.ipynbgithub上,而github可以很好地渲染它。
hexicle

8

现在是2020年,让我总结一下对源代码存储库主机进行数学公式渲染的支持的过程。

GitHub和Bitbucket

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

Bitbucket Cloud / BCLOUD-11192-在MarkDown文档中添加LaTeX支持(BB-12552)

GitHub / markup-渲染数学方程

GitHub / markup-支持乳胶

GitHub社区论坛-[功能需求] Markdown中的LaTeX Math

talk.commonmark.org-可以将数学公式添加到减价中吗

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

亚搏体育app

已经支持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调味Markdown-数学

谁支持通用定界符?

雨果使用的Markdown解析器

其他渲染方式


6

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

我建议您看一下GitHub应用TeXify

GitHub App,查找您带有扩展名* .tex.md的文件并将其TeX表达式呈现为SVG图像

工作原理(来自源存储库):

每当您按下TeXify时,它将在最后一次提交中运行并搜索* .tex.md文件。对于其中的每一个,它将运行readme2tex,它将使用放在美元符号之间的LaTeX表达式,将其转换为纯SVG图像,然后将输出保存到.md扩展文件中(这意味着名为README.tex.md的文件将被处理,输出将另存为README.md。之后,输出文件和新的SVG映像将被提交并推回到您的仓库中。



2

我使用下面提到的过程将方程式转换为降价。这对我来说很好。非常简单!

假设我要代表矩阵乘法方程

第1步:

从此处获取用于公式的脚本-https: //csrgxtu.github.io/2015/03/20/Writing-Mathematic-Fomulars-in-Markdown/

我的示例:我想表示Z(i,j)=X(i,k) * Y(k, j); k=1 to n一个求和公式。 引用该网站,所需的脚本为=>

在此处输入图片说明

Z_i_j=\sum_{k=1}^{10} X_i_k * Y_k_j

第2步:

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

我的示例:

在此处输入图片说明

第三步:

使用此网站通过将步骤2的输出复制粘贴到“ eq”请求参数中来生成图像http://www.sciweavers.org/tex2img.php?eq=<b><i>paste-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}%20X_i_k%20 *%20Y_k_j&bc = White&fc = Black&im = jpg&fs = 12&ff = arev&edit =

在此处输入图片说明

第4步:

使用markdown语法的参考图片![alt text](enter url here)

-- 将其复制到markdown中,您可以使用:

![Z(i,j)=X(i,k) * Y(k, j); k=1 to 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的输出。欢呼!!


在此处输入图片说明


任何阅读此书的人,“ Typora”是我最喜欢的降价应用程序。.刚刚说
Dexter

0

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


应该指出的是,LaTeXiT似乎只能在MacOS下工作(尽管在网站上没有明确说明)。
–ƒacu。

0

我在降价文件的开头使用了以下内容

<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}。$$
对我有用

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.