有没有办法在README中渲染LaTex ?md在GitHub存储库?我在谷歌上搜索了堆栈溢出,但没有一个相关的答案似乎可行。


自述文件2Tex

我一直在写一个脚本,它可以自动地把LaTeX排版很好地转换成github风格的markdown: https://github.com/leegao/readme2tex

在Github上渲染LaTeX有一些挑战。首先,github风格的markdown去掉了大多数标签和属性。这意味着没有基于Javascript的库(如Mathjax),也没有任何CSS样式。

自然的解决方案似乎是嵌入预编译方程的图像。但是,您很快就会意识到,LaTeX不仅仅是将美元符号的封闭公式转换为图像。

简单地嵌入来自在线编译器的图像会给文档带来这种不自然的外观。事实上,我认为它在日常的x^2数学俚语中比跳跃更有可读性

我相信确保你的文档以自然和可读的方式排版是很重要的。这就是为什么我写了一个脚本,除了将公式编译成图像外,还确保生成的图像正确地拟合并与其余文本对齐。

例如,下面是一个.md文件的摘录,涉及正则表达式的一些枚举属性,使用readme2tex:

正如您所期望的,顶部的方程集是通过启动相应的align*环境来指定的

**Theorem**: The translation $[\![e]\!]$ given by
\begin{align*}
...
\end{align*}
...

注意,当内联方程($…$)与文本一起运行时,显示方程(那些由\begin{ENV}分隔的方程…\end{ENV}或$$…$$)居中。这使得那些已经习惯使用LaTeX的人可以很容易地保持工作效率。

如果这听起来有帮助,一定要去看看。https://github.com/leegao/readme2tex


你也可以使用这个在线编辑器:https://www.codecogs.com/latex/eqneditor.php,它可以动态生成SVG文件。你可以像这样在你的文档中添加一个链接: ![](https://latex.codecogs.com/svg.latex?y%3Dx%5E2),结果是: .


对于简短的表达式和不那么花哨的数学,您可以使用内联HTML在codecogs上获得乳胶渲染的数学,然后嵌入生成的图像。这里有一个例子:

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

这会导致类似下一次的事情吗

更新:这是伟大的工作在eclipse,但不是在github不幸。唯一的解决办法是:

把你的乳胶方程,去http://www.codecogs.com/latex/eqneditor.php,在你的方程出现的区域的底部显示有一个小的下拉菜单,选择URL编码,然后粘贴在你的github markdown下一种方式:

![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)

对于推送到GitHub的自动转换,看看TeXify应用程序:

GitHub应用程序,在你的推文件扩展名*.tex。md和渲染它的TeX表达式为SVG图像

它是如何工作的(从源存储库):

每当你按TeXify将运行并搜索*.tex。Md文件。对于其中的每一个,它将运行readme2tex,它将接受美元符号之间的LaTeX表达式,将其转换为普通的SVG图像,然后将输出保存到.md扩展文件中(这意味着将处理名为README.tex.md的文件,并将输出保存为README.md)。在此之后,将提交输出文件和新的SVG图像并将其推回您的repo。


我的诀窍是用木星笔记本。

GitHub内置了呈现.ipynb文件的支持。你可以编写内联的LaTeX代码并在笔记本中显示,GitHub会为你呈现它。

下面是一个示例笔记本文件:https://gist.github.com/cyhsutw/d5983d166fb70ff651f027b2aa56ee4e


我测试了其他人提出的一些解决方案,我想推荐TeXify在agurodriguez的评论中创建和提出,并由Tom Hale进一步描述-我想发展他的答案,并给出一些理由,为什么这是一个非常好的解决方案:

TeXify is wrapper of Readme2Tex (mention in Lee answer). To use Readme2Tex you must install a lot of software in your local machine (python, latex, ...) - but TeXify is github plugin so you don't need to install anything in your local machine - you only need to online installation that plugin in you github account by pressing one button and choose repositories for which TeXify will have read/write access to parse your tex formulas and generate pictures. When in your repository you create or update *.tex.md file, the TeXify will detect changes and generate *.md file where latex formulas will be exchanged by its pictures saved in tex directory in your repo. So if you create README.tex.md file then TeXify will generate README.md with pictures instead tex formulas. So parsing tex formulas and generate documentation is done automagically on each commit&push :) Because all your formulas are changed into pictures in tex directory and README.md file use links to that pictures, you can even uninstall TeXify and all your old documentation will still works :). The tex directory and *.tex.md files will stay on repository so you have access to your original latex formulas and pictures (you can also safely store in tex directory your other documentation pictures "made by hand" - TeXify will not touch them). You can use equations latex syntax directly in README.tex.md file (without loosing .md markdown syntax) which is very handy. Julii in his answer proposed to use special links (with formulas) to external service e.g . http://latex.codecogs.com/gif.latex?s%3D%5Ctext%20%7B%20sensor%20reading%20%7D which is good however has some drawbacks: the formulas in links are not easy (handy) to read and update, and if there will be some problem with that third-party service your old documentation will stop work... In TeXify your old documentation will works always even if you uninstall that plugin (because all your pictures generated from latex formulas are stay in repo in tex directory). The Yuchao Jiang in his answer, proposed to use Jupyter Notebook which is also nice however have som drawbacks: you cannot use formulas directly in README.md file, you need to make link there to other file *.ipynb in your repo which contains latex (MathJax) formulas. The file *.ipynb format is JSON which is not handy to maintain (e.g. Gist don't show detailed error with line number in *.ipynb file when you forgot to put comma in proper place...).

这里是我的一些回购的链接,我使用TeXify的文档是从README.tex.md文件生成的。

更新

今天2020.12.13我意识到TeXify插件停止工作-即使重新安装后:(


我将带有方程式的存储库上传到Gitlab,因为它在.md文件中原生支持LaTeX:

```math
SE = \frac{\sigma}{\sqrt{n}}
```

内联latex的语法是$ ' \sqrt{2} ' $。

Gitlab使用JavaScript在浏览器中呈现方程,而不是显示图像,这提高了方程的质量。

更多信息请点击这里。

希望Github将来也能实现这个功能。


编辑:正如锗指出的那样,它对README不起作用。Md但其他git页面,虽然没有解释可用。 我的快速解决方案是这样的

步骤1。将latex添加到.md文件中

$$x=\sqrt{2}$$

注意:数学公式必须在$$…$$或\\(…\ \)。

步骤2。将以下代码添加到scripts.html或主题文件中(将此代码附加在末尾)

<script type="text/javascript" async

src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-MML-AM_CHTML">

完成了!。通过加载页面查看你的等式。


你可以获得持续集成服务(例如Travis CI)来呈现LaTeX并将结果提交到github。CI将在每次新提交后部署一个“云”worker。工作人员将您的文档编译为pdf,并使用ImageMagick将其转换为图像,或者使用PanDoc尝试LaTeX->HTML转换,其中成功与否可能取决于您的文档。Worker然后将图像或html提交到您的存储库,从那里可以在自述文件中显示。

示例TravisCi配置构建PDF,将其转换为PNG,并将其提交到您的repo的静态位置是粘贴下面。您需要添加一行来获取PDF,将PDF转换为图像

sudo: required
dist: trusty
os: linux
language: generic
services: docker
env:
  global:
  - GIT_NAME: Travis CI
  - GIT_EMAIL: builds@travis-ci.org
  - TRAVIS_REPO_SLUG: your-github-username/your-repo
  - GIT_BRANCH: master
# I recommend storing your GitHub Access token as a secret key in a Travis CI environment variable, for example $GH_TOKEN.
  - secure: ${GH_TOKEN}
script:
- wget https://raw.githubusercontent.com/blang/latex-docker/master/latexdockercmd.sh
- chmod +x latexdockercmd.sh
- "./latexdockercmd.sh latexmk -cd -f -interaction=batchmode -pdf yourdocument.tex -outdir=$TRAVIS_BUILD_DIR/"
- cd $TRAVIS_BUILD_DIR
- convert -density 300 -quality 90 yourdocument.pdf yourdocument.png
- git checkout --orphan $TRAVIS_BRANCH-pdf
- git rm -rf .
- git add -f yourdoc*.png
- git -c user.name='travis' -c user.email='travis' commit -m "updated PDF"
# note we are again using GitHub access key stored in the CI environment variable
- git push -q -f https://your-github-username:$GH_TOKEN@github.com/$TRAVIS_REPO_SLUG $TRAVIS_BRANCH-pdf
notifications:
  email: false

这个Travis Ci配置会启动一个Ubuntu worker,下载一个latex docker镜像,将文档编译为pdf,并将其提交到一个名为branchanme-pdf的分支。

要了解更多的例子,请参阅这个github回购及其附带的sx讨论,PanDoc示例, https://dfm.io/posts/travis-latex/,以及Medium上的这篇文章。


你可以用markdown,例如:

![equ](https://latex.codecogs.com/gif.latex?log(y)=\beta_0&space;&plus;&space;\beta_1&space;x&space;&plus;&space;u)

代码可以在这里输入:https://www.codecogs.com/latex/eqneditor.php。


如果你对https://www.codecogs.com/latex/eqneditor.php有问题,我发现https://alexanderrodin.com/github-latex-markdown/对我有用。它生成您需要的Markdown代码,因此您只需将其剪切并粘贴到README中。md文档。


您还可以看看我的工具latexMarkdown2Markdown,它可以将LaTeX转换为SVG并生成带有章节编号的内容表。


我刚刚发布了一个新版本的xhub,这是一个浏览器扩展,可以在GitHub页面中渲染LaTeX(和其他东西)。

缺点:

你必须安装扩展一次。

优点:

不需要设置任何东西。 用数学写下Markdown 显示数学: ' '的数学 E ^{i\pi} + 1 = 0 ' ' ' 直线数学$ ' a^2 + b^2 = c^2 ' (语法类似于GitLab。) 工作的明暗背景。(数学有文字颜色) 你可以像复制粘贴文本一样复制粘贴数学

作为一个例子,看看这个GitHub README:


我一直在四处寻找,发现另一个问题中的这个答案最适合我。即使用githubcontent数学渲染器,例如显示:

使用这个链接 小心乳胶需要url编码,但其他工作对我来说很好。


好消息! 根据这篇博文,现在GitHub在自述文件中支持Mathjax。

可以使用$分隔符使用内联LaTeX语法,或者使用$$分隔符使用块内语法。


自2022年5月以来,这已得到官方支持:

内联:

Where $x = 0$, evaluate $x + 1$

块:

Where
$$x = 0$$

Evaluate
$$x + 1$$

编写内联表达式:

这句话使用$分隔符来显示数学内联: $ \√6 {3 x - 1} + (1 + x) ^ 2美元

将表达式写成块:

柯西-施瓦茨不等式 $ $ \离开(\ sum_ {k = 1} ^ n a_k b_k \右)^ 2左(\ \ leq \ sum_ {k = 1} ^ n a_k ^ 2 \右)\左(\sum {k=1}^n b_k^2 \右)$$

来源:https://docs.github.com/en/get-started/writing-on-github/working-with-advanced-formatting/writing-mathematical-expressions