在Github上的README.md中进行乳胶渲染

时间:2016-02-19 06:15:21

标签: github latex markdown

有没有办法在GitHub存储库中的README.md中呈现LaTex?我搜索了它并搜索了堆栈溢出,但没有相关的答案似乎可行。

13 个答案:

答案 0 :(得分:22)

对于简短的表达而不是那么花哨的数学,你可以使用内联HTML在代码架上获得乳胶渲染数学,然后嵌入生成的图像。这是一个例子:

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

答案 1 :(得分:15)

Readme2Tex

我一直在制作一个脚本,可以自动完成将LaTeX很好地排版到Github风格的降价中的大部分内容:https://github.com/leegao/readme2tex

为Github渲染LaTeX有一些挑战。首先,Github风味的markdown剥离了大多数标签和大多数属性。这意味着没有基于Javascript的库(如Mathjax)或任何CSS样式。

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

enter image description here

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

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

例如,这里是一个.md文件的摘录,关于使用readme2tex排版的正则表达式的一些枚举属性:

enter image description here

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

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

请注意,虽然内联方程($ ... $)与文本一起运行,但显示方程式(由\begin{ENV}...\end{ENV}$$...$$分隔的方程式)居中。这使得习惯于LaTeX的人们能够轻松地保持工作效率。

如果这听起来像是有帮助的,请务必查看。 https://github.com/leegao/readme2tex

答案 2 :(得分:9)

还可以使用此在线编辑器:filepath.Join()即时生成SVG个文件。您可以在文档中放置一个链接,如下所示: ![](https://latex.codecogs.com/svg.latex?y%3Dx%5E2)导致:

答案 3 :(得分:9)

我的诀窍是使用Jupyter Notebook。

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

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

答案 4 :(得分:5)

我将包含方程式的存储库上传到Gitlab,因为它对.md文件中的LaTeX具有本机支持:

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

内联乳胶的语法为$`\sqrt{2}`$

Gitlab在浏览器中使用JavaScript渲染方程式,而不显示图像,从而提高了方程式的质量。

更多信息here

我们希望Github将来也能实现这一目标。

答案 5 :(得分:4)

要在推送到GitHub时自动转换,请查看TeXify应用:

  

GitHub应用程序,用于查找扩展名为* .tex.md的文件,并将其TeX表达式呈现为SVG图像

工作原理(来自source repository):

  

无论什么时候推送,TeXify都会在上次提交时运行并搜索* .tex.md文件。对于其中的每一个,它将运行readme2tex,它将把美元符号之间的LaTeX表达式括起来,将其转换为普通的SVG图像,然后将输出保存到.md扩展文件中(这意味着名为README.tex.md的文件)将被处理,输出将保存为README.md)。之后,输出文件和新的SVG图像将被提交并推回到您的仓库。

答案 6 :(得分:4)

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

  • TeXify是Readme2Tex的包装(在Lee answer中提及)。要使用Readme2Tex,您必须在本地计算机上安装大量软件(python,latex等)-但是TeXify是github插件,因此您无需在本地计算机上安装任何软件-您只需按一个button即可在线安装该插件到您的github帐户中,然后选择TeXify将对其具有读/写访问权限的存储库来解析您的tex公式并生成图片。
  • 在存储库中创建或更新*.tex.md文件时,TeXify将检测到更改并生成*.md文件,其中乳胶配方将通过保存在您tex目录中的图片交换乳胶配方回购。因此,如果您创建README.tex.md文件,则TeXify将生成带有图片而不是tex公式的README.md。 因此,每次提交并推送时都会自动解析tex公式并生成文档:)
  • 由于您的所有公式都变成了tex目录中的图片,并且README.md文件使用了指向这些图片的链接,因此您甚至可以卸载TeXify,并且所有旧文档仍然可以使用: )。 tex目录和*.tex.md文件将保留在存储库中,因此您可以访问原始的乳胶配方和图片(也可以将“其他手工制作的图片”安全地存储在tex目录中) ”-TeXify不会触摸它们。
  • 您可以在README.tex.md文件中直接使用方程式乳胶语法(不丢失.md markdown语法)Julii in his answer建议对外部服务使用特殊链接(带有公式),例如。 http://latex.codecogs.com/gif.latex?s%3D%5Ctext%20%7B%20sensor%20reading%20%7D不错,但是有一些缺点:链接中的公式不容易(方便)阅读和更新,并且如果该第三方服务有问题,您的旧文档将停止工作...在TeXify中,即使您卸载了该插件,您的旧文档也将始终有效(因为从乳胶配方生成的所有图片都保留在tex目录中的存储库中)。
  • 他的答案中的Yuchao Jiang建议使用Jupyter Notebook,这也不错,但是有一些缺点:您不能直接在README.md文件中使用公式,需要在此链接到其他文件回购中的* .ipynb,其中包含乳胶(MathJax)公式。 * .ipynb文件格式为JSON,不便于维护(例如,当您忘记将逗号放在适当的位置时,Gist不会在* .ipynb文件中显示行号的详细错误...)。

Here is link到我的一些仓库中,在这些仓库中我使用了TeXify,其文档是从README.tex.md文件生成的。

答案 7 :(得分:2)

我的快速解决方案是:

步骤1.将乳胶添加到您的.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">

完成!。见你的等式。通过加载页面。

答案 8 :(得分:1)

您可以获得持续集成服务(例如Travis CI)以渲染LaTeX并将结果提交到github。在每次新提交后,CI都会部署一个“云”工作者。工作人员将您的文档编译为pdf,然后要么要求ImageMagick将其转换为图像,要么使用PanDoc尝试进行LaTeX-> HTML转换,但成功取决于您的文档而有所不同。然后,Worker将图像或html从您的自述文件中显示的位置提交到您的存储库。

用于构建PDF,将其转换为PNG并将其提交到仓库中的静态位置的示例TravisCi配置粘贴在下面。您将需要添加一行以获取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工作者,下载乳胶docker映像,将您的文档编译为pdf,并将其提交到名为branchanme-pdf的分支中。

有关更多示例,请参见this github repoits accompanying sx discussionPanDoc examplehttps://dfm.io/posts/travis-latex/this post on Medium

答案 9 :(得分:1)

我刚刚发布了 Purple Pi 的新版本,这是一个浏览器扩展,可在 GitHub 页面(以及许多其他地方)中呈现 LaTeX。您可以从

安装它

https://chrome.google.com/webstore/detail/purple-pi/ingbbliecffofmmokknelnijicfcgolb

然后,每个包含激活链接的网页都会呈现数学,例如,this GitHub README

enter image description here

enter image description here

事实上,它也适用于 StackOverflow: $$ e^{i\pi} + 1 = 0 $$

它基于 KaTeX,所以速度也非常快。

答案 10 :(得分:0)

您可以使用降价促销,例如

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

答案 11 :(得分:0)

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

答案 12 :(得分:0)

您还可以看看我的工具latexMarkdown2Markdown,该工具将LaTeX转换为SVG并生成带有章节编号的目录。