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

ale*_*der 122 markdown github mathjax

在我调查之后,我发现mathjax可以做到这一点.但是当我在markdown文件中写一些例子时,它无法显示正确的公式:

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

<script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=default"></script>
Run Code Online (Sandbox Code Playgroud)

然后输入mathjax语句:

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

但github没有为数学符号显示任何内容!请帮帮我,谢谢!告诉我如何在一般的github markdown中显示数学符号.

nul*_*ken 128

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

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

该库的座右铭是"C标准兼容,快速, 安全的 降价处理库".考虑到你的问题:)重要的一句是"安全".

实际上,允许执行javascript将略微偏离MarkDown标准的文本到HTML合同.

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

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

您最好的选择是找到一个类似于yuml.me的网站,该网站可以通过解析提供的URL查询字符串来生成即时图像.

更新

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

给出以下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=)
Run Code Online (Sandbox Code Playgroud)

它将显示以下图像

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

注意:为了正确显示图像,您必须确保URL的查询字符串部分是百分比编码的.您可以轻松找到帮助您完成该任务的在线工具,例如www.url-encode-decode.com

  • @nultoken,谢谢你的回答.我使用了上面引用的iTex2Img网站,并在文档中添加了两个公式.我有一个问题,当我打开GitHub上的文档页面时,两个公式显示相同,而它们实际上是不同的.你会碰巧知道它为什么会发生吗? (6认同)
  • 如果你必须生成图像,http://mathurl.com/也是一个值得注意的网站. (3认同)
  • 这似乎不适用于github.图像无法渲染.谁知道为什么? (2认同)

Spe*_*er5 65

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

快速简单的内联

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

    h<sub>&theta;</sub>(x) = &theta;<sub>o</sub> x + &theta;<sub>1</sub>x
Run Code Online (Sandbox Code Playgroud)

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

虽然这种方法有局限性,但它几乎适用于所有降价,并且不需要任何外部库.

使用LaTeX和Codecogs进行复杂的可扩展内联渲染

如果您的需求更大,请使用像CodeCogs这样的外部LaTeX渲染器.使用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}" />
Run Code Online (Sandbox Code Playgroud)

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

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)
Run Code Online (Sandbox Code Playgroud)

这会在alt图像文本中手动合并LaTex,并使用编码的URL在GitHub上呈现.

多行渲染

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

  • 这应该是公认的答案。对我来说,“R&lt;sup&gt;-1&lt;/sup&gt;”正确呈现了 R^-1。 (2认同)
  • SVG(和任何其他基于图片的)方法在用于非白色配色方案(例如使用 Dark Reader)时会中断。 (2认同)

Von*_*onC 27

自 2022 年 5 月起正式支持(自 2023 年 5 月起支持内联表达式,见末尾):

\n
\n

在 Markdown 中渲染数学表达式

\n

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

\n

将表达式写成块

\n

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

\n
**The Cauchy-Schwarz Inequality**\n$$\\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)$$\n
Run Code Online (Sandbox Code Playgroud)\n

显示数学 Markdown 渲染

\n

编写内联表达式

\n

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

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

内联数学 Markdown 渲染

\n

GitHub 的数学渲染功能使用MathJax;一个开源的、基于 JavaScript 的显示引擎。
\nMathJax 支持广泛的 LaTeX 宏和许多有用的辅助功能扩展。
\n有关详细信息,请参阅MathJax 文档MathJax 辅助功能扩展文档

\n

一些用户之前使用过一种解决方法,通过 API 请求生成数学表达式的图像。
\n以这种方式生成的图像将保持可见,但此技术将不再起作用。
\n今后,应使用如上所述的 LaTeX 语法直接在 Markdown 中编写表达式。

\n

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

\n
\n
\n

这仍然是测试版,并受到批评。
\n请参阅Nico Schl\xc3\xb6mer的“ GitHub 上的数学:好、坏和丑” 。\n语法介绍:

\n
    \n
  • Markdown 和数学渲染器的竞争
  • \n
  • 难以解释的数学块
  • \n
\n
\n

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

\n

2022 年 6 月:

\n
\n

数学表达式的围栏块语法

\n

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

\n
**The Cauchy-Schwarz Inequality**\n$$\\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)$$\n
Run Code Online (Sandbox Code Playgroud)\n

变成:

\n

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

\n

阅读有关使用高级格式的更多信息。

\n
\n
\n
\n

内联数学表达式的新分隔符语法(2023 年 5 月)

\n

我们正在引入一种新方法,用于将基于 LaTeX 的数学表达式内联到 Markdown 中。
\n除了现有的分隔符之外,我们现在还支持使用美元符号和反引号来分隔 LaTeX 样式的数学语法(例如$\\sqrt{3} $)。
\n如果您正在编写的数学表达式包含与 Markdown 语法重叠的字符,则此新语法特别有用。

\n

要了解有关在 GitHub 上的 Markdown 中使用数学表达式的更多信息,请查看GitHub 文档中的“编写数学表达式” 。

\n
\n

  • @brc-dd 谢谢。我已将您的评论和相关链接内容包含在答案中。 (2认同)

Xue*_* Ye 26

现在是2020年了,总结一下源码仓库主机数学公式渲染支持的进展。

GitHub 和 Bitbucket

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

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

GitHub / 标记 -- 渲染数学方程

GitHub / 标记 -- 支持乳胶

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

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

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
```
Run Code Online (Sandbox Code Playgroud)

GitLab 风味降价 - 数学

谁支持通用分隔符?

Hugo 使用的 Markdown 解析器

其他渲染方式


小智 9

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

基本的东西似乎完美地工作,就像中心方程式

\begin{equation}
...
\end{equation}
Run Code Online (Sandbox Code Playgroud)

或内联方程

$ \sum_{\forall i}{x_i^{2}} $
Run Code Online (Sandbox Code Playgroud)

虽然,我真正想要的其中一个功能在github中根本没有呈现\mbox{},这真是一个无赖.但是,总而言之,这是在github上渲染方程式的最成功方法.

  • 谢谢你的回答,但有这个问题:我设法在降价模式下使用jupyter笔记本,方程式显示正常.但是,现在你怎么能把这个jupyter markdown转移到GitHub上的`readme.md`? (2认同)
  • 方程不会直接在 Markdown 文件上呈现。这些方程几乎必须是“readme.md”中的图像。但是,您始终可以将 `file.ipynb` 放在 github 上,并且 github 可以很好地呈现它。 (2认同)

nn0*_*n0p 8

如果只是想在浏览器中显示自己的数学,可以尝试使用MathJax的Chrome扩展GitHub.这很方便.


Tho*_*rad 8

另一种可能是依赖 GitHub 自己的 notebook 渲染器。这甚至适用于 SO。

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

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

现场演示:

这种方法的优点在于您可以直接在 Markdown 中编辑您的公式,并且预览会相应地更新。
您可以通过编辑此答案来尝试一下。(如果它们没有添加到答案中,请丢弃您的编辑;))

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

  • 任何使用这种方法的人,因为`+` 是URI 中的转义字符,所以使用`%2B` 来渲染`+`。 (3认同)

Tom*_*ale 5

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

我建议您看一下GitHub应用TeXify

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

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

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