有没有办法在GitHub存储库的README.md中呈现LaTex?我已经搜索了Google和Stack Overflow,但似乎没有一个可行的答案。
有没有办法在GitHub存储库的README.md中呈现LaTex?我已经搜索了Google和Stack Overflow,但似乎没有一个可行的答案。
- <img src="https://latex.codecogs.com/gif.latex?O_t=\text { Onset event at time bin } t " />
- <img src="https://latex.codecogs.com/gif.latex?s=\text { sensor reading } " />
- <img src="https://latex.codecogs.com/gif.latex?P(s | O_t )=\text { Probability of a sensor reading value when sleep onset is observed at a time bin } t " />
![equation](http://latex.codecogs.com/gif.latex?O_t%3D%5Ctext%20%7B%20Onset%20event%20at%20time%20bin%20%7D%20t)
![equation](http://latex.codecogs.com/gif.latex?s%3D%5Ctext%20%7B%20sensor%20reading%20%7D)
![equation](http://latex.codecogs.com/gif.latex?P%28s%20%7C%20O_t%20%29%3D%5Ctext%20%7B%20Probability%20of%20a%20sensor%20reading%20value%20when%20sleep%20onset%20is%20observed%20at%20a%20time%20bin%20%7D%20t)
我将带有方程式的代码库上传到Gitlab,因为它原生支持在.md文件中使用LaTeX:
```math
SE = \frac{\sigma}{\sqrt{n}}
```
内联LaTeX的语法为$`\sqrt{2}`$
。
Gitlab使用浏览器中的JavaScript呈现方程式,而不是显示图像,这提高了方程式的质量。
更多信息请点击此处。
希望Github将来也会实现这一点。
<pre xml:lang="latex">\sqrt{2}</pre>
- LinconFivepre
代码复制粘贴到 Github 上的 README.md 中,但它没有起作用(只显示了 \sqrt{2}
文本)。 - Evgenii我的技巧是使用Jupyter Notebook。
GitHub内置支持渲染.ipynb文件。你可以在notebook中编写行内和显示LaTeX代码,GitHub将为你呈现出来。
这里有一个示例笔记本文件:https://gist.github.com/cyhsutw/d5983d166fb70ff651f027b2aa56ee4e
我一直在开发一个脚本,可以自动化大部分的工作,使得 LaTeX 可以很好地排版到 Github 风格的 markdown 中:https://github.com/leegao/readme2tex
在 Github 上渲染 LaTeX 时有一些挑战。首先,Github 风格的 markdown 剥离了大多数标签和属性。这意味着没有基于 Javascript 的库(如 Mathjax)也没有任何 CSS 样式。
因此,自然的解决方案似乎是嵌入预编译公式的图像。然而,您很快就会意识到,LaTeX 所做的不仅仅是将用美元符号括起来的公式转换为图像。
从在线编译器嵌入图像会使您的文档看起来非常不自然。实际上,我认为它甚至比跳动的在您的日常x^2数学俚语中更易读。
我认为确保文档以自然且易读的方式排版很重要。这就是为什么我编写了一个脚本,除了将公式编译成图像外,还确保生成的图像适当地适配并对齐到其余文本。
例如,这是一个使用readme2tex
排版的关于正则表达式枚举属性的.md
文件摘录:
就像你所预期的那样,顶部的方程组是通过启动相应的align*
环境来指定的。
**Theorem**: The translation $[\![e]\!]$ given by
\begin{align*}
...
\end{align*}
...
\begin{ENV}...\end{ENV}
或$$...$$
分隔的公式)是居中的。这使得那些已经习惯于LaTeX的人们可以保持高效生产力。dvisvgm
二进制文件? - juanmf还可以使用这个在线编辑器:https://www.codecogs.com/latex/eqneditor.php,它可以即时生成SVG
文件。您可以像这样在文档中插入一个链接:![](https://latex.codecogs.com/svg.latex?y%3Dx%5E2)
,结果如下所示:
我测试了一些别人提出的解决方案,我想推荐agurodriguez在评论中创建和提出的TeXify,并由Tom Hale进一步描述 - 我想发展他的答案并给出一些原因,说明这是一个非常好的解决方案:
TeXify是Lee answer中提到的Readme2Tex的包装器。要使用Readme2Tex,您必须在本地计算机上安装许多软件(如python、latex等),但TeXify是github插件,所以您不需要在本地计算机上安装任何东西——您只需要按一个button在线安装该插件,并选择为其提供读/写访问权限以解析您的tex公式并生成图片的存储库。*.tex.md
文件时,TeXify会检测更改并生成*.md
文件,其中latex公式将被其图片替换,这些图片保存在存储库中的tex
目录中。因此,如果您创建README.tex.md文件,则TeXify将生成README.md文件,其中包含图片而不是tex公式。因此,解析tex公式并生成文档是自动完成的,每次提交和推送都会进行:)tex
目录中更改为图片,并且README.md文件使用链接指向那些图片,即使卸载TeXify,您所有旧的文档仍将正常工作:)。tex
目录和*.tex.md
文件将保留在存储库中,因此您可以访问原始的latex公式和图片(您还可以安全地将其他手工制作的文档图片存储在tex
目录中——TeXify不会触及它们)。
您可以直接在README.tex.md文件中使用方程式latex语法(而不会失去.md markdown语法),这非常方便。Julii in his answer建议使用特殊链接(带有公式)到外部服务,例如http://latex.codecogs.com/gif.latex?s%3D%5Ctext%20%7B%20sensor%20reading%20%7D
,这很好,但是有一些缺点:链接中的公式不易于阅读和更新,如果第三方服务出现问题,您的旧文档将停止工作...在TeXify中,即使卸载了该插件,您的旧文档仍将始终正常工作(因为从latex公式生成的所有图片都保留在存储库的tex
目录中)。Yuchao Jiang在他的答案中建议使用Jupyter Notebook,这也很好,但是有些缺点:您无法直接在README.md文件中使用公式,需要在那里创建指向存储库中其他文件*.ipynb的链接,其中包含latex(MathJax)公式。文件*.ipynb格式为JSON,不方便维护(例如,当您忘记在正确位置放置逗号时,Gist不会显示*.ipynb文件中的行号详细错误...)。
这里是链接,其中一些我使用TeXify的repo,其文档是从README.tex.md文件生成的。
今天2020.12.13,我意识到TeXify插件停止工作了 - 即使重新安装也是如此 :(
如果您想要在推送到GitHub时自动转换文件格式,请查看TeXify应用程序:
这是一个GitHub应用程序,它会检查您的推送中是否有扩展名为*.tex.md的文件,并将其TeX表达式渲染为SVG图像。
它是如何工作的(来自源代码库):
每当您进行推送时,TeXify将运行并搜索您最后一次提交中的*.tex.md文件。对于每个这样的文件,它都会运行readme2tex,该程序将取出括在美元符号之间的LaTeX表达式,将其转换为纯SVG图像,然后将输出保存到.md扩展名文件中(这意味着名为README.tex.md的文件将被处理,输出将保存为README.md)。之后,输出文件和新的SVG图像将被提交并推回您的存储库。
$...$
时,渲染就会跳行。有什么线索吗?这是repo的链接:https://github.com/brunoconteleite/Spatial-Model-Solver - Bruno Conte Leite我刚刚发布了xhub的新版本,这是一个浏览器扩展,可以在GitHub页面中渲染LaTeX(和其他内容)。
缺点:
优点:
Display math:
```math
e^{i\pi} + 1 = 0
```
and line math $`a^2 + b^2 = c^2`$.
(Syntax like on GitLab.)虽然 Markdown 支持 LaTeX 已经从2022年5月开始,但是随着2023年5月的更新,内联表达式更好地表示出来:
新的行内数学表达式分隔符语法 (2023年5月)
我们正在引入一种新方法,用于在 Markdown 中内联包含基于 LaTeX 的数学表达式。
除了现有的分隔符之外,我们现在支持使用美元符号和反引号作为 LaTeX 风格的数学语法分隔符(例如,$
\sqrt{3}$
)。
如果您编写的数学表达式包含与 Markdown 语法重叠的字符,则此新语法尤其有用。要了解有关在 GitHub 上使用 Markdown 中的数学表达式的更多信息,请查看 GitHub 文档中的"编写数学表达式"。