GithubのREADME.mdでのラテックスレンダリング


132

GitHubリポジトリのREADME.mdでLaTexをレンダリングする方法はありますか?私はそれをググってスタックオーバーフローで検索しましたが、関連する答えはどれも実現可能ではないようです。


1
直接はできません。LaTexが必要だと思う特別なことはありますか?たとえば、数学の方程式が必要な場合、それはいくつかの特定のトリックで実行できる場合があります。何をレンダリングしたいか教えてください。誰かがあなたに回避策を教えてくれるかもしれません。
Waylan、2016

1
はい、インライン化された数学記号とともに、数学の方程式と整列された方程式が必要です。それだけです。
user90593



1
Jupyterノートブックの使用を検討しましたか?今すぐPythonコードを挿入することもできます;)
チャーリーパーカー

回答:


42

短い表現であり、それほど凝った数学ではない場合は、インライン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マークダウン:

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

4
latex.codecogs.com/gif.latexではなく、latex.codecogs.com / png.latexを使用することを勧めします。それはより良い品質の画像を返します!
Steffo

9
解像度に依存しない、latex.codecogs.com / svg.latexを使用できます。
リザードファイヤーマン

28

方程式を含むリポジトリをGitlabにアップロードします。これは、.mdファイルでLaTeXをネイティブでサポートしているためです。

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

インラインラテックスの構文は$`\sqrt{2}`$です。

Gitlabは、画像を表示する代わりにブラウザーでJavaScriptを使用して方程式をレンダリングするため、方程式の品質が向上します。

詳細はこちら

Githubが将来的にもこれを実装することを期待しましょう。


すごい!ヒントをありがとう:)
ジョナサンH

GitHubがこれを実装しているかどうか知っていますか?
Rylan Schaeffer

21

Readme2Tex

私はLaTeXタイプセットをGithub風味のマークダウンにうまくタイプセットすることからほとんどの残骸を自動化するスクリプトに取り組んできました:https : //github.com/leegao/readme2tex

Github用のLaTeXのレンダリングにはいくつかの課題があります。まず、Github風味のマークダウンはほとんどのタグとほとんどの属性を取り除きます。つまり、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


14
この作業に基づいて、レンダリングプロセスを自動化するGitHubアプリを作成し、プッシュが行われるたびにそれをトリガーしました。私はそれが便利だと思うので、試してみたい人のためにリンクを共有します:github.com/agurz/github-texify
agurodriguez

3
いいね!それは実際にあなたがやることが本当に素晴らしいです:)
リー

マークダウン列挙型アイテムにインラインmathjaxを含めると、TeXifyアプリが機能しないようです。
user32882



13

私は他の人によって提案されたいくつかの解決策をテストし、私がお勧めしたいと思いTeXifyが作成したとのコメントで提案されているagurodriguez、さらにによって記述トムヘイル:これは非常に良い解決策である理由私は彼の答えを開発したいといくつかの理由を与えます-

  • TeXifyはのラッパーですReadme2Tex(で言及リーの回答)。Readme2Texを使用するには、ローカルマシンに多くのソフトウェア(python、latexなど)をインストールする必要があります。ただし、TeXifyはgithubプラグインであるため、ローカルマシンに何もインストールする必要はありません。オンラインインストールのみが必要です。 1つのボタンを押してgithubアカウントのプラグインを作成し、TeXifyが読み取り/書き込みアクセス権を持つリポジトリを選択して、tex式を解析して画像を生成します。
  • リポジトリで*.tex.mdファイルを作成または更新すると、TeXifyは変更を検出し、レポジトリ*.md内のtexディレクトリに保存されている画像によってラテックス式が交換されるファイルを生成します。したがって、README.tex.mdファイルを作成すると、TeXifyはtex式ではなく画像を含むREADME.mdを生成します。したがって、tex式の解析とドキュメントの生成は、各commit&pushで自動的に行われます :)
  • すべての数式がtexディレクトリ内の画像に変更され、README.mdファイルがその画像へのリンクを使用するため、TeXifyをアンインストールすることもでき、古いドキュメントはすべて引き続き機能します。texディレクトリや*.tex.md、あなたのオリジナルのラテックス式や写真へのアクセス権を持っているので、ファイルは、あなたも安全で保存することができます(リポジトリに滞在しますtex - TeXifyがそれらを触れないだろうディレクトリ「の手によって作られた」あなたの他の文書の写真を)。
  • README.tex.mdファイルで(.mdマークダウン構文を失うことなく)方程式のラテックス構文を直接使用できますこれは非常に便利です。Juliiは彼の回答で、外部サービスへの(数式を含む)特別なリンクの使用を提案しました。http://latex.codecogs.com/gif.latex?s%3D%5Ctext%20%7B%20sensor%20reading%20%7Dこれは良い方法ですが、いくつかの欠点があります。リンク内の数式を読んで更新するのは簡単ではありません(便利です)。そのサードパーティのサービスに問題がある場合、古いドキュメントは機能しなくなります... TeXifyで古いドキュメントそのプラグインをアンインストールしても常に機能します(ラテックスの数式から生成されたすべての画像がリポジトリに残っているため)texディレクトリの)。
  • Yuchao江使用することが提案されている彼の答えで、Jupyterノートもいいですが、SOMの欠点を持っている:あなたは、他のファイルへのリンクが存在を確認する必要があり、README.mdファイルに直接数式を使用することはできません*ラテックスが含まれているあなたのレポで.ipynb (MathJax)数式。ファイル* .ipynb形式はJSONであり、維持するのに便利ではありません(たとえば、適切な場所にコンマを配置するのを忘れた場合、Gistは* .ipynbファイルの行番号に関する詳細なエラーを表示しません...)。

ここにREADME.tex.mdファイルからドキュメントが生成されたTeXifyを使用する私のリポジトリのいくつかへのリンクがあります。


@Royiわからない
KamilKiełczewski19年

それはいいですが、/ texフォルダー内の大量の未使用のガベージsvgイメージをどのように処理しますか?
Serge P.

@SergeP。すべて遅延させてプッシュしますか?
KamilKiełczewski19年

6

GitHubへのプッシュ時の自動変換については、TeXifyアプリをご覧ください

プッシュで拡張子* .tex.mdのファイルを探し、それをTeX式としてSVG画像としてレンダリングするGitHubアプリ

それがどのように機能するか(ソースリポジトリから):

あなたがプッシュするたびに、TeXifyが実行され、最後のコミットで* .tex.mdファイルを検索します。それらのそれぞれに対して、ドル記号で囲まれたLaTeX式を取得するreadme2texを実行し、プレーンSVG画像に変換して、出力を.md拡張ファイルに保存します(つまり、README.tex.mdという名前のファイル処理され、出力はREADME.mdとして保存されます。その後、出力ファイルと新しいSVG画像がコミットされ、リポジトリにプッシュバックされます。


1
この作品は@agurodriguezによるもので、上記のコメントで言及しています
icc97

1
@ icc97はい、しかしagurodriguezは答えを作成しません(そして私はおそらく彼のコメントに気付くことは決してないでしょう)。トムが回答を作成するため(agurodriguezの約1年後)、TeXifyが存在することに気づき、TeXifyを使用して、これに基づいて独自の回答ベースを作成することができます。それで良かった:)
Kamil Kie Kczewski

3
@KamilKiełczewskiこの答えに問題はありません。このスレッドのおかげでTeXifyがSOユーザーによって作成されたと言っています。
icc97

私はReadmeでTeXifyを使用していますが、何らかの理由$...$で、テキストにaがある場合、レンダリングはほぼ毎回行をジャンプしています。何か手がかりはありますか?これはリポジトリです:github.com/brunoconteleite/Spatial-Model-Solver
Bruno Conte Leite

3

私の簡単な解決策はこれです:

ステップ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">

やった!あなたの式を参照してください。ページをロードすることにより。


1
どのscripts.htmlファイル?github機能としてこれへの参照を見つけることができません。
Jay Lemmon

テーマファイル(Jeykyllテーマファイル)はありますか?このコードは、gitページでlatexを表示するためのものです。
CKM、

2
これはgitページでのみ機能し、通常のリポジトリのREADME.mdでは機能しないことを明確にする必要があります。
ゲルマニウム

1

継続的インテグレーションサービス(例:Travis CI)を取得できますLaTeXをレンダリングして結果をgithubにコミットする)を。CIは、新しいコミットごとに「クラウド」ワーカーをデプロイします。ワーカーはドキュメントをpdfにコンパイルし、ImageMagickを使用してそれをイメージに変換するか、PanDocを使用してLaTeX-> HTML変換を試みますが、ドキュメントによって成功は異なります。その後、ワーカーはイメージまたはhtmlをリポジトリーにコミットします。そこから、readmeに表示できます。

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ワーカーを起動し、latex dockerイメージをダウンロードして、ドキュメントをpdfにコンパイルし、branchanme-pdfというブランチにコミットします。

その他の例については、このgithubリポジトリそれに付随するsxの説明PanDocの例https://dfm.io/posts/travis-latex/、およびこのMediumの投稿を参照してください



弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.