有什么方法可以在GitHub存储库中的README.md中呈现LaTex?我已经用谷歌搜索并搜索了堆栈溢出,但是所有相关的答案似乎都不可行。
有什么方法可以在GitHub存储库中的README.md中呈现LaTex?我已经用谷歌搜索并搜索了堆栈溢出,但是所有相关的答案似乎都不可行。
Answers:
对于较短的表达式而不是那么花哨的数学,您可以使用内联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)
我将带有公式的存储库上传到Gitlab,因为它对.md文件中的LaTeX具有本机支持:
```math
SE = \frac{\sigma}{\sqrt{n}}
```
内联乳胶的语法为$`\sqrt{2}`$
。
Gitlab在浏览器中使用JavaScript渲染方程式,而不是显示图像,从而提高了方程式的质量。
更多信息在这里。
希望Github将来也能实现这一点。
我一直在研究一个脚本,该脚本可以自动完成大部分任务,而无需将LaTeX排版好地放入Github风格的markdown中:https : //github.com/leegao/readme2tex
为Github渲染LaTeX面临一些挑战。首先,Github风格的markdown会删除大多数标签和大多数属性。这意味着没有基于Javascript的库(如Mathjax),也没有任何CSS样式。
那么自然的解决方案似乎是嵌入预编译方程的图像。但是,您很快就会意识到,LaTeX所做的不仅仅是将带美元符号的公式转换为图像。
简单地嵌入在线编译器中的图像会使您的文档看起来非常不自然。实际上,我认为在您日常的x ^ 2数学语中,它比jumpy更易读。
我认为确保以自然且可读的方式排版文档很重要。这就是为什么我编写了一个脚本的原因,该脚本除了将公式编译为图像外,还可以确保生成的图像正确地适合并与文本的其余部分对齐。
例如,以下是.md
文件摘录,其中涉及使用设置的正则表达式的一些枚举属性readme2tex
:
如您所料,只需启动相应的align*
环境即可指定顶部的方程组
**Theorem**: The translation $[\![e]\!]$ given by
\begin{align*}
...
\end{align*}
...
请注意,当嵌入式方程式($ ... $)与文本一起运行时,显示方程式(由\begin{ENV}...\end{ENV}
或分隔的方程式$$...$$
)居中。这使已经习惯了LaTeX的人们容易保持生产力。
如果这听起来可能有帮助,请确保将其签出。https://github.com/leegao/readme2tex
我的技巧是使用Jupyter Notebook。
GitHub内置了对渲染.ipynb文件的支持。您可以编写内联代码并在笔记本中显示LaTeX代码,GitHub会为您呈现它。
这是一个示例笔记本文件:https : //gist.github.com/cyhsutw/d5983d166fb70ff651f027b2aa56ee4e
您也可以使用此在线编辑器:https://www.codecogs.com/latex/eqneditor.php,它可以SVG
即时生成文件。您可以像这样在文档中放置一个链接:
![](https://latex.codecogs.com/svg.latex?y%3Dx%5E2)
结果为:
。
我测试了其他人提出的解决方案,我想推荐agurodriguez在评论中创建和提出的TeXify,并由Tom Hale进一步描述-我想提出他的答案,并给出为什么这是一个很好的解决方案的原因:
*.tex.md
文件时,TeXify将检测更改并生成*.md
文件,其中乳胶配方将通过保存在tex
回购目录中的图片交换乳胶配方。因此,如果您创建README.tex.md文件,则TeXify将生成带有图片而不是tex公式的README.md。因此,在每次commit&push时,都会自动完成tex公式的解析并生成文档:)tex
目录中的图片,并且README.md文件使用了指向这些图片的链接,所以您甚至可以卸载TeXify,并且所有旧文档仍然可以使用 :)。该tex
目录和*.tex.md
文件将留在库中,所以你必须访问原始乳胶配方和图片(你也可以安全地存储tex
目录下的“手工制作”的其他文档图片- TeXify不会去碰它们)。http://latex.codecogs.com/gif.latex?s%3D%5Ctext%20%7B%20sensor%20reading%20%7D
但这很好,但是有一些缺点:链接中的公式不容易(方便)阅读和更新,并且如果该第三方服务有问题,您的旧文档将停止工作...在TeXify中,您的旧文档即使您卸载了该插件,它也将始终有效(因为从乳胶配方生成的所有图片都保留在tex
目录中的存储库中)。这是指向我的一些存储库的链接,在这些存储库中,我使用了TeXify,该文件是从README.tex.md文件生成的文档。
要在推送到GitHub时进行自动转换,请查看TeXify应用程序:
GitHub App,查找您带有扩展名* .tex.md的文件并将其TeX表达式呈现为SVG图像
工作原理(来自源存储库):
每当您按下TeXify时,它将在最后一次提交中运行并搜索* .tex.md文件。对于其中的每一个,它将运行readme2tex,它将使用放在美元符号之间的LaTeX表达式,将其转换为纯SVG图像,然后将输出保存到.md扩展文件中(这意味着名为README.tex.md的文件将被处理,输出将另存为README.md。之后,输出文件和新的SVG映像将被提交并推回到您的仓库中。
$...$
在文本中出现时,渲染效果都会跳行。有什么线索吗?这是仓库
我的快速解决方案是这样的:
步骤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">
完成!见你的等式。通过加载页面。
scripts.html
文件 我找不到作为github功能对此的任何引用。
Jeykyll
主题文件)吗?此代码用于在git页面中显示乳胶。
您可以获得持续集成服务(例如Travis CI)来渲染LaTeX并将结果提交到github。在每次新提交后,CI都会部署一个“云”工作者。工作人员将您的文档编译为pdf,然后要求ImageMagick将其转换为图像,或者使用PanDoc尝试进行LaTeX-> HTML转换,但成功取决于您的文档而有所不同。然后,Worker将图像或html提交到您的自述文件中可以在其中显示的位置。
下面粘贴了示例TravisCi配置,该配置可生成PDF,将其转换为PNG并将其提交到存储库中的静态位置。您将需要添加一行以获取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的分支。
更多的例子看到这GitHub库和与之配套的SX讨论,PanDoc例如, https://dfm.io/posts/travis-latex/,和这个职位上中等。
您可以使用降价促销,例如
![equ](https://latex.codecogs.com/gif.latex?log(y)=\beta_0&space;+&space;\beta_1&space;x&space;+&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文档中即可。