如何在一般的github's markdown(不是github's博客)中显示数学方程

经过研究,我发现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页面中显示数学符号
359144 次浏览

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

GitHub降价解析由日落 (ex libUpSkirt)库执行。

这个库的座右铭是标准符合、快速、 安全 C"减价处理库;。重要的词是“安全”;在那里,考虑你的问题:)。

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

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

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

你最好的选择是找到一个类似< a href = " http://yuml。我/图表/的/类/样品noreferrer“rel = > 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=)

它将显示以下图像

equation

请注意:为了使图像正确显示,你必须确保url的查询字符串部分是 % encoded。你可以很容易地找到在线工具来帮助你完成这项任务,比如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})

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

它结合了回答回答

对我来说,GitHub支持仅在使用上述可读LaTeX的原始html语法时有效。如果上面的方法对你不起作用,另一个选择是选择URL编码渲染,并使用该输出手动创建一个链接,如:

\Large 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合并到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语句
$ $间{1,2}= \压裂{- b \ \下午√6 b {^ 2-4ac}} {2 b}。$ $ < br > 它对我有用

有一个很好的解决方案,你的问题-使用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 to n表示成一个求和公式。

enter image description here

参考网站,需要的脚本是=> Z_i_j=\sum_{k=1}^{10} X_i_k * Y_k_j

. b

步骤2:

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

我的例子:

enter image description here < / p >

步骤3:

使用本网站通过复制粘贴步骤2中的“情商”请求参数- 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} % 20 x_i_k % 20 * % 20 y_k_j&公元前= White& fc = Black&我= jpg& fs = 12, ff = arev&编辑=

enter image description here < / p >

步骤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=) < / p >

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

< p >
enter image description here < / p >

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

GitHub,Bitbucket都

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

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

GitHub /markup -渲染数学方程 .

GitHub /markup -- -支持乳胶 .

GitHub社区论坛-[功能请求]LaTeX数学在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调味Markdown -数学

谁支持通用分隔符?

Hugo使用的Markdown解析器

其他渲染方法

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

你可以在网上做快速周转,或在本地安装/配置Pandoc。

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

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

enter image description here

优点:

    你不需要在你的repo中设置任何东西,只需在Markdown中使用数学(sytax from GitLab):
    Some display math:
    ```math
    e^{i\pi} + 1 = 0
    ```
    and some inline math, $`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}">

现场演示:

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

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

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

  • 添加动作。yml文件到你的回购.github/workflows/action.yml
  • 如有必要,更改分支main的名称。

你可以将你的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月起正式支持:

< a href = " https://github。blog/changelog/2022-05-19 Render - maths -expressions-in- Markdown /" rel="noreferrer">在Markdown中渲染数学表达式

现在,您可以使用LaTeX样式语法在Markdown内联(使用$分隔符)或块(使用$$分隔符)中呈现数学表达式。

以块形式编写表达式

若要将math添加为与周围文本分开显示的多行块,请开始新行并使用两个美元符号$$分隔表达式。

**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)$$

 returned math markdown rendering .

编写内联表达式

若要在文本中包含数学表达式,请使用美元符号$分隔表达式。

This sentence uses `$` delimiters to show math inline: $\sqrt{3x-1}+(1+x)^2$

Inline math markdown渲染

GitHub的数学渲染能力使用MathJax;一个开源的,基于javascript的显示引擎。
MathJax支持广泛的LaTeX宏和许多有用的可访问性扩展。
有关更多信息,请参见MathJax文档 .MathJax易访问性扩展文档.

. 0 一些用户以前使用了一种变通方法,通过API请求生成数学表达式的图像。
以这种方式生成的图像将保持可见,但这种技术将不再有效。
接下来,表达式应该直接使用上面描述的LaTeX语法在Markdown中编写

有关使用高级格式创作内容的更多信息,请参见使用GitHub文档中的高级格式


这仍然是测试版,并且受到了批评。
看到“GitHub上的数学:好的,坏的和丑陋的"从尼科Schlomer
语法引入:

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

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

2022年6月:

< a href = " https://github。blog/changelog/2022-06-28 Fenced -block-syntax-for-mathematical-expressions/" rel="noreferrer">数学表达式的Fenced块语法

除了已经支持的分隔符之外,用户现在还可以使用“math fenced”代码块语法来描述数学表达式。
如果使用此方法,则不需要两个美元符号$$分隔符
**Here is some math!**


```math
\sqrt{3}
.```

就变成:

math-expression-as-a-栅栏-code-block——https://i0.wp.com/user-images.githubusercontent.com/7219923/175109268-ee329b99-c2dc-4589-a5be-0a4eee31d916.png?ssl=1

阅读更多关于使用高级格式

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

还有一件事,你可以使用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)!}$$

图片中的例子:

Colorized Sum

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

Normal Sum