【问题标题】:How to show math equations in general github's markdown(not github's blog)如何在一般 github 的 markdown 中显示数学方程(不是 github 的博客)
【发布时间】:2012-06-30 16:03:36
【问题描述】:

经过调查,我发现 mathjax 可以做到这一点。但是当我在我的降价文件中编写一些示例时,它没有显示正确的方程式:

我已经在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 页面中显示数学符号。

【问题讨论】:

  • 它不能解决一般用户的问题,但这个答案建议了一个浏览器脚本,至少可以让你看到方程:stackoverflow.com/q/11255900/180892
  • gitlab 使用 KaTeX

标签: github markdown mathjax


【解决方案1】:

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

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

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

确实,允许执行 javascript 有点偏离 MarkDown 标准的 text-to-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 的查询字符串部分是 percent encoded。您可以轻松找到在线工具来帮助您完成该任务,例如 www.url-encode-decode.com

【讨论】:

  • @nultoken,感谢您的有用回答。我使用了您在上面引用的 iTex2Img 网站,并在我的文档中添加了两个公式。我有一个问题,当我在 GitHub 上打开文档页面时,两个公式显示相同,但​​实际上它们不同。你会碰巧知道为什么会这样吗?
  • mathurl.com 也是一个值得注意的网站,如果您必须生成图像。
  • 这似乎在 github 上不起作用。图像不渲染。有人知道为什么吗?
  • @OganM 语法已更改。该链接也已在 GitHub 中修复和测试
  • iTex2Img 网站似乎并不能一直为我工作。图片似乎没有在 Github 上呈现。
【解决方案2】:

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

快速简单的内联

对于快速简单的内联项目,请使用 HTML 和符号 entity codes。将这个想法与markdown中的下标文本结合的一个例子是:hθ(x) = θo x + θ1x,代码如下。

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

常见数学符号的 HTML & 实体代码可以在 here 找到。希腊字母代码here

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

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

如果您的需求更大,请使用 CodeCogs 等外部 LaTeX 渲染器。用CodeCogs editor 创建一个方程。选择 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}) 

这结合了 answeranswer

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,并使用编码 URL 在 GitHub 上呈现。

多线渲染

如果您需要多行渲染,请查看answer

【讨论】:

  • 这很好用。我不得不将一个 jupyter notebook (.ipynb) 转换为 .md,而这些方程式本质上是多行乳胶代码。
  • 是的,它也适用于 jupyter notebook,虽然没有直接关系,但handcalcs 是一个库,用于在 Latex 中自动呈现 Python 计算代码pip install handcalcs
  • 这应该是公认的答案。对我来说,R&lt;sup&gt;-1&lt;/sup&gt; 正确渲染了 R^-1。
  • SVG(和任何其他基于图片的)方法在用于非白色配色方案(例如,使用 Dark Reader)时会中断。
  • @Ruslan 事实上,这是真的,尽管能够定义背景颜色。我已将图像设置为白色背景,但 SVG 渲染仍将其显示为透明(在黑暗模式下难以阅读 GitHub)。
【解决方案3】:

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

GitHub 和 Bitbucket

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

Bitbucket Cloud / BCLOUD-11192 -- Add LaTeX Support in MarkDown Documents (BB-12552)

GitHub / markup -- Rendering math equations

GitHub / markup -- Support latex

GitHub Community Forum -- [FEATURE REQUEST] LaTeX Math in Markdown

talk.commonmark.org -- Can math formula added to the 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

谁支持通用分隔符?

A Markdown parser used by Hugo

其他渲染方式

【讨论】:

  • 我就是喜欢hack,请多吃hack。
【解决方案4】:

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

基本的东西看起来很完美,比如居中的方程

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

或内联方程

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

虽然,我真正想要的功能之一是\mbox{} 根本没有在 github 中呈现,这真是太糟糕了。但是,总而言之,这是在 github 上呈现方程式的最成功的方式。

【讨论】:

  • 感谢您的回答,但存在这个问题:我设法在降价模式下使用 jupyter notebook 并且等式显示正常。但是,现在如何将这个 jupyter markdown 转移到 GitHub 上的readme.md
  • 方程式不会直接在 Markdown 文件上呈现。这些方程几乎必须是图像才能在readme.md 上。但是,您总是可以将 file.ipynb 放在 github 上,并且 github 会很好地呈现它。
【解决方案5】:

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

【讨论】:

  • 我尝试安装时 icon16.png 出现错误
  • @HomeroEsmeraldo 您可以手动安装 MathJax 扩展。 1. 克隆存储库:github.com/orsharir/github-mathjax.git 2. 在 chrome 扩展中启用开发者模式。 3. 将“github-mathjax.crx”文件拖到chrome扩展中。
【解决方案6】:

另一种可能是依赖 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

【讨论】:

  • 任何人使用这个方法,因为+是URI中的转义字符,使用%2B来渲染+
【解决方案7】:

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

我建议你看看GitHub应用TeXify

GitHub 应用程序可在您的推送中查找扩展名为 *.tex.md 的文件并将其 TeX 表达式呈现为 SVG 图像

它是如何工作的(来自source repository):

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

【讨论】:

    【解决方案8】:

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

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

    第 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

    我的示例:

    第 3 步:

    使用此网站通过在 "eq" 请求参数中复制粘贴第 2 步的输出来生成图像 - http://www.sciweavers.org/tex2img.php?eq=&lt;b&gt;&lt;i&gt;paste-output-here&lt;/i&gt;&lt;/b&gt;&amp;bc=White&amp;fc=Black&amp;im=jpg&amp;fs=12&amp;ff=arev&amp;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=

    第四步:

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

    - 将此复制到您的降价中,然后您就可以开始了:

    ![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&amp;bc=White&amp;fc=Black&amp;im=jpg&amp;fs=12&amp;ff=arev&amp;edit=)

    下图是markdown的输出。万岁!!


    【讨论】:

    • 任何阅读此内容的人,“Typora”是我最喜欢的降价应用程序.. 只是说
    • Typora 方程是否可以在 Github README.md 中正确显示?
    • 这些基本上是图像,所以是的!
    【解决方案9】:

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

    作为用户,您只需安装一次,作为页面作者,您只需使用类似的显示数学

    Some display math:
    ```math
    e^{i\pi} + 1 = 0
    ```
    and some inline math, $`a^2 + b^2 = c^2`$.
    

    【讨论】:

      【解决方案10】:

      您的问题有一个很好的解决方案 - 使用 TeXify github 插件(Tom Hale 答案提到 - 但我在下面给定的链接中开发了他的答案) - 关于这个 github 插件的更多详细信息和解释为什么这是你的好方法可以在那个answer 中找到。

      【讨论】:

        【解决方案11】:

        我在mark down文件的头部使用了以下内容

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

        【讨论】:

        • 这不适用于 GitHub,因为它会过滤
        【解决方案12】:

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

        您可以do this online 进行快速周转,或在本地安装/配置 Pandoc。

        【讨论】:

          【解决方案13】:

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

          【讨论】:

            【解决方案14】:

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

            【讨论】:

            • 应该注意的是,LaTeXiT 似乎在 MacOS 下工作(尽管网站上没有明确说明)。
            猜你喜欢
            • 2016-12-21
            • 2021-02-07
            • 1970-01-01
            • 2012-09-12
            • 1970-01-01
            • 2021-07-12
            • 1970-01-01
            • 2020-08-02
            • 1970-01-01
            相关资源
            最近更新 更多