Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Github上README.md中的Latex渲染_Github_Latex_Markdown - Fatal编程技术网

Github上README.md中的Latex渲染

Github上README.md中的Latex渲染,github,latex,markdown,Github,Latex,Markdown,有没有办法在GitHub存储库的README.md中呈现LaTex?我在谷歌上搜索了它,搜索了stack overflow,但没有一个相关的答案是可行的。Readme2Tex 我一直在编写一个脚本,该脚本将LaTeX排版很好地融入Github风格的降价过程中的大部分工作自动化: 为Github呈现LaTeX存在一些挑战。首先,Github风格的markdown去掉了大多数标记和属性。这意味着没有基于Javascript的库(如Mathjax)或任何CSS样式 自然的解决方案似乎是嵌入预编译方程的

有没有办法在GitHub存储库的README.md中呈现LaTex?我在谷歌上搜索了它,搜索了stack overflow,但没有一个相关的答案是可行的。

Readme2Tex 我一直在编写一个脚本,该脚本将LaTeX排版很好地融入Github风格的降价过程中的大部分工作自动化:

为Github呈现LaTeX存在一些挑战。首先,Github风格的markdown去掉了大多数标记和属性。这意味着没有基于Javascript的库(如Mathjax)或任何CSS样式

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

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

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

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

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

**定理**:由
\开始{align*}
...
\结束{align*}
...
请注意,当内联方程式($…$)与文本一起运行时,显示方程式(由
\begin{ENV}…\end{ENV}
$$…$
分隔的方程式)居中。这使得已经习惯使用乳胶的人很容易保持生产力


如果这听起来像是有帮助的,一定要检查一下

还可以使用这个在线编辑器:它可以动态生成
SVG
文件。您可以在文档中设置如下链接:
![](https://latex.codecogs.com/svg.latex?y%3Dx%5E2)
这将导致:
.

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

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

要在推送至GitHub时自动转换,请查看应用程序:

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

工作原理(从以下方面):

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


我的诀窍是使用Jupyter笔记本

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


以下是一个示例笔记本文件:

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

  • TeXify是(在中提到)的包装器。要使用Readme2Tex,您必须在本地计算机上安装大量软件(python、latex等)-但TeXify是github插件,因此您不需要在本地计算机上安装任何东西-您只需在github帐户中在线安装该插件,方法是按一,然后选择TeXify将具有读/写权限的存储库来解析您的tex公式并生成图片
  • 当您在存储库中创建或更新
    *.tex.md
    文件时,TeXify将检测更改并生成
    *.md
    文件,在该文件中,latex公式将通过存储在您的repo中
    tex
    目录中的图片进行交换。因此,如果您创建README.tex.md文件,那么TeXify将使用图片而不是tex公式生成README.md因此,在每次提交和推送时,解析tex公式和生成文档都是自动完成的:)
  • 由于您的所有公式都在
    tex
    目录中更改为图片,并且README.md文件使用指向这些图片的链接,您甚至可以卸载TeXify,并且您的所有旧文档仍然有效(:)。
    tex
    目录和
    *.tex.md
    文件将保留在存储库中,以便您可以访问原始乳胶配方和图片(您还可以安全地将其他“手工制作”的文档图片存储在
    tex
    目录中,TeXify不会触及它们)
  • 您可以直接在README.tex.md文件中使用语法(而不丢失.md标记语法),这非常方便。建议使用外部服务的特殊链接(带公式),例如<代码>http://latex.codecogs.com/gif.latex?s%3D%5Ctext%20%7B%20sensor%20reading%20%7D这是好的,但也有一些缺点:链接中的公式不容易阅读和更新,如果第三方服务出现问题,您的旧文档将停止工作。。。在TeXify中,即使您卸载了该插件,您的旧文档也将始终有效(因为所有由latex公式生成的图片都保存在
    tex
    目录下的repo中)
  • 在他的回答中,建议使用的公式也很好,但是有一些缺点:您不能在README.md文件中直接使用公式,您需要在那里建立链接
    ![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)
    
    ```math
    SE = \frac{\sigma}{\sqrt{n}}
    ```
    
    $$x=\sqrt{2}$$
    
    <script type="text/javascript" async
    
    src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-MML-AM_CHTML">
    
    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
    
    ![equ](https://latex.codecogs.com/gif.latex?log(y)=\beta_0&space;&plus;&space;\beta_1&space;x&space;&plus;&space;u)