Gibt es eine Möglichkeit, LaTex in README.md in einem GitHub-Repository zu rendern? Ich habe es gegoogelt und nach Stapelüberlauf gesucht, aber keine der zugehörigen Antworten scheint machbar.
Es ist nicht direkt möglich. Gibt es eine bestimmte Sache, für die Sie LaTex benötigen? Wenn Sie beispielsweise mathematische Gleichungen möchten, kann dies mit bestimmten Tricks möglich sein. Sagen Sie uns, was Sie rendern möchten, und jemand kann Sie möglicherweise auf eine Problemumgehung hinweisen.
Waylan
1
Ja, ich möchte mathematische Gleichungen und ausgerichtete Gleichungen sowie eingebettete mathematische Symbole. Das wars so ziemlich.
Haben Sie darüber nachgedacht, Jupyter-Notebooks zu verwenden? Sie können jetzt sogar Python-Code einfügen;)
Charlie Parker
Antworten:
41
Für kurze Ausdrücke und nicht so ausgefallene Mathematik können Sie den Inline-HTML-Code verwenden, um Ihre Latex-gerenderte Mathematik in Codecogs abzurufen und dann das resultierende Bild einzubetten. Hier ein Beispiel:
- <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 " />
Was zu so etwas wie dem nächsten führen sollte
Update: Dies funktioniert gut in Eclipse, aber leider nicht in Github. Die einzige Lösung ist die nächste:
Nehmen Sie Ihre Latexgleichung und gehen Sie zu http://www.codecogs.com/latex/eqneditor.php . Am unteren Rand des Bereichs, in dem Ihre Gleichung angezeigt wird, befindet sich ein kleines Dropdown-Menü. Wählen Sie die codierte URL aus und fügen Sie diese in Ihre ein Github-Abschlag auf die nächste Weise:
Ich habe an einem Skript gearbeitet, das den größten Teil des Cruft automatisiert, indem LaTeX-Schriftsätze gut in Markith mit Github-Geschmack umgewandelt werden: https://github.com/leegao/readme2tex
Beim Rendern von LaTeX für Github gibt es einige Herausforderungen. Erstens entfernt Markdown mit Github-Geschmack die meisten Tags und Attribute. Dies bedeutet weder Javascript-basierte Bibliotheken (wie Mathjax) noch CSS-Stile.
Die natürliche Lösung scheint dann darin zu bestehen, Bilder vorkompilierter Gleichungen einzubetten. Sie werden jedoch schnell feststellen, dass LaTeX mehr kann, als nur in Dollarzeichen eingeschlossene Formeln in Bilder umzuwandeln.
Durch einfaches Einbetten von Bildern von Online-Compilern erhält Ihr Dokument ein wirklich unnatürliches Aussehen. Tatsächlich würde ich argumentieren, dass es in Ihrem alltäglichen mathematischen Slang noch besser lesbar ist als nervös .
Ich glaube, dass es wichtig ist, sicherzustellen, dass Ihre Dokumente auf natürliche und lesbare Weise gesetzt werden. Aus diesem Grund habe ich ein Skript geschrieben, das neben dem Kompilieren von Formeln zu Bildern auch sicherstellt, dass das resultierende Bild richtig angepasst und am Rest des Textes ausgerichtet ist.
Hier ist zum Beispiel ein Auszug aus einer .mdDatei, der einige Aufzählungseigenschaften des Satzes regulärer Ausdrücke enthält, der Folgendes verwendet readme2tex:
Wie zu erwarten ist, wird der Gleichungssystemsatz oben angegeben, indem nur die entsprechende align*Umgebung gestartet wird
**Theorem**: The translation $[\![e]\!]$ given by
\begin{align*}
...
\end{align*}
...
Beachten Sie, dass während Inline-Gleichungen ($ ... $) mit dem Text ausgeführt werden, Anzeigegleichungen (die durch \begin{ENV}...\end{ENV}oder begrenzt $$...$$sind) zentriert sind. Dies macht es Menschen, die bereits an LaTeX gewöhnt sind, leicht, weiterhin produktiv zu sein.
Basierend auf dieser Arbeit habe ich eine GitHub-App erstellt, die den Renderprozess automatisiert und jedes Mal auslöst, wenn ein Push ausgeführt wird. Ich denke, es ist nützlich, also teile ich den Link für diejenigen, die es versuchen wollen: github.com/agurz/github-texify
agurodriguez
3
Nett! Das ist wirklich großartig von dir :)
Lee
Die TeXify-App scheint nicht zu funktionieren, wenn Inline-Mathjax für Markdown-Aufzählungselemente enthalten ist.
user32882
21
Mein Trick ist, das Jupyter-Notizbuch zu verwenden.
GitHub bietet integrierte Unterstützung für das Rendern von .ipynb-Dateien. Sie können Inline schreiben und LaTeX-Code im Notizbuch anzeigen, und GitHub wird ihn für Sie rendern.
Man kann auch diesen Online-Editor verwenden: https://www.codecogs.com/latex/eqneditor.php, der SVGDateien im laufenden Betrieb generiert . Sie können einen Link wie ![](https://latex.codecogs.com/svg.latex?y%3Dx%5E2)folgt in Ihr Dokument einfügen: Dies
führt zu :
.
Ich teste eine von anderen vorgeschlagene Lösung und möchte TeXify empfehlen, das von agurodriguez erstellt und in einem Kommentar vorgeschlagen und von Tom Hale weiter beschrieben wurde. Ich möchte seine Antwort entwickeln und einen Grund angeben, warum dies eine sehr gute Lösung ist:
TeXify ist ein Wrapper von Readme2Tex (Erwähnung in Lee Antwort ). Um Readme2Tex verwenden zu können, müssen Sie eine Menge Software auf Ihrem lokalen Computer installieren (Python, Latex, ...). TeXify ist jedoch ein Github-Plugin, sodass Sie nichts auf Ihrem lokalen Computer installieren müssen. Sie müssen dies nur online installieren Plugin in Ihr Github-Konto, indem Sie eine Taste drücken und Repositorys auswählen, für die TeXify Lese- / Schreibzugriff hat, um Ihre Tex-Formeln zu analysieren und Bilder zu generieren.
Wenn Sie in Ihrem Repository eine *.tex.mdDatei erstellen oder aktualisieren , erkennt TeXify Änderungen und generiert eine Datei, in der Latexformeln *.mddurch die im texVerzeichnis in Ihrem Repo gespeicherten Bilder ausgetauscht werden . Wenn Sie also die Datei README.tex.md erstellen, generiert TeXify README.md mit Bildern anstelle von Tex-Formeln. Das Parsen von Tex-Formeln und das Generieren von Dokumentation erfolgt also automatisch bei jedem Commit & Push :)
Da alle Ihre Formeln in Bilder im texVerzeichnis geändert werden und die Datei README.md Links zu diesen Bildern verwendet, können Sie TeXify sogar deinstallieren und Ihre gesamte alte Dokumentation funktioniert weiterhin :). Das texVerzeichnis und die *.tex.mdDateien bleiben im Repository, sodass Sie Zugriff auf Ihre ursprünglichen Latexformeln und -bilder haben (Sie können auch texIhre anderen Dokumentationsbilder "von Hand" sicher im Verzeichnis speichern - TeXify berührt sie nicht).
Sie können die Latexsyntax für Gleichungen direkt in der Datei README.tex.md verwenden (ohne die .md-Markdown-Syntax zu verlieren), was sehr praktisch ist . Julii schlug in seiner Antwort vor, spezielle Links (mit Formeln) zu externen Diensten zu verwenden, z. http://latex.codecogs.com/gif.latex?s%3D%5Ctext%20%7B%20sensor%20reading%20%7DDas ist jedoch gut und hat einige Nachteile: Die Formeln in den Links sind nicht einfach (praktisch) zu lesen und zu aktualisieren, und wenn es Probleme mit diesem Drittanbieter-Service gibt, funktioniert Ihre alte Dokumentation nicht mehr ... In TeXify Ihre alte Dokumentation funktioniert immer auch dann, wenn Sie dieses Plugin deinstallieren (da alle Ihre aus Latexformeln generierten Bilder im Repo- texVerzeichnis verbleiben ).
Der Yuchao Jiang schlug in seiner Antwort vor, Jupyter Notebook zu verwenden, was ebenfalls nett ist, jedoch einige Nachteile hat: Sie können Formeln nicht direkt in der Datei README.md verwenden, sondern müssen dort einen Link zu einer anderen Datei * .ipynb in Ihrem Repo herstellen, die Latex enthält (MathJax) Formeln. Das * .ipynb-Format der Datei ist JSON, was nicht praktisch zu pflegen ist (z. B. zeigt Gist keinen detaillierten Fehler mit der Zeilennummer in der * .ipynb-Datei an, wenn Sie vergessen haben, das Komma an die richtige Stelle zu setzen ...).
Hier ist ein Link zu einigen meiner Repos, in denen ich TeXify verwende, für das Dokumentation aus der Datei README.tex.md generiert wurde .
Wann immer Sie drücken, wird TeXify ausgeführt und sucht in Ihrem letzten Commit nach * .tex.md-Dateien. Für jeden dieser Dateien wird readme2tex ausgeführt, wobei LaTeX-Ausdrücke zwischen Dollarzeichen verwendet, in einfache SVG-Bilder konvertiert und die Ausgabe in einer .md-Erweiterungsdatei gespeichert werden (dh eine Datei mit dem Namen README.tex.md) wird verarbeitet und die Ausgabe wird als README.md) gespeichert. Danach werden die Ausgabedatei und die neuen SVG-Bilder festgeschrieben und in Ihr Repo zurückgeschoben.
Diese Arbeit ist von @agurodriguez, der es in einem Kommentar oben erwähnt
icc97
@ icc97 ja, aber agurodriguez keine Antwort erstellen (und ich werde seinen Kommentar wahrscheinlich nie bemerken). Da Tom eine Antwort erstellt (~ 1 Jahr nach agurodriguez), stelle ich fest, dass TeXify vorhanden ist, und es ermöglicht mir, TeXify zu verwenden und meine eigene Antwortbasis darauf zu schreiben . Also war es gut :)
Kamil Kiełczewski
2
@ KamilKiełczewski An dieser Antwort ist nichts auszusetzen. Ich erwähne nur, dass TeXify aufgrund dieses Threads von einem SO-Benutzer erstellt wurde, was ziemlich cool ist.
icc97
Ich verwende TeXify in meiner Readme-Datei, aber aus irgendeinem Grund werden beim Rendern fast jedes Mal Linien gesprungen, wenn $...$der Text ein enthält. Irgendwelche Hinweise warum? Dies ist das Repo: github.com/brunoconteleite/Spatial-Model-Solver
Bruno Conte Leite
3
Meine schnelle Lösung lautet:
Schritt 1. Fügen Sie Ihrer .mdDatei Latex hinzu
$$x=\sqrt{2}$$
Hinweis: Mathematische Gleichungen müssen in $$ ... $$ oder angegeben sein \\(... \\).
Schritt 2. Fügen Sie Folgendes zu Ihrer scripts.htmloder Themendatei hinzu (fügen Sie diesen Code am Ende hinzu).
Welche scripts.htmlDatei? Ich kann keinen Hinweis darauf als Github-Funktion finden.
Jay Lemmon
Haben Sie eine Themendatei ( JeykyllThemendatei)? Dieser Code dient zur Anzeige von Latex auf Git-Seiten.
CKM
2
Sollte klarstellen, dass dies nur für Git-Seiten funktioniert, nicht für README.md im regulären Repo.
Germanium
1
Sie können einen kontinuierlichen Integrationsdienst (z. B. Travis CI ) erhalten, um LaTeX zu rendern und Ergebnisse an github zu übergeben. CI stellt nach jedem neuen Commit einen "Cloud" -Arbeiter bereit. Der Worker kompiliert Ihr Dokument als PDF und verwendet ImageMagick entweder, um es in ein Bild zu konvertieren, oder verwendet PanDoc, um eine LaTeX-> HTML-Konvertierung zu versuchen, bei der der Erfolg je nach Dokument variieren kann. Worker schreibt dann Bild oder HTML in Ihr Repository, von wo aus es in Ihrer Readme-Datei angezeigt werden kann.
Die TravisCi-Beispielkonfiguration, mit der ein PDF erstellt, in ein PNG konvertiert und an einen statischen Ort in Ihrem Repo übertragen wird, wird unten eingefügt. Sie müssten eine Zeile hinzufügen, in der PDF-Dateien in ein Bild konvertiert werden
sudo: required
dist: trusty
os: linux
language: generic
services: docker
env:
global:
- GIT_NAME: Travis CI
- GIT_EMAIL: [email protected]
- 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:$[email protected]/$TRAVIS_REPO_SLUG $TRAVIS_BRANCH-pdf
notifications:
email: false
Diese Travis Ci-Konfiguration startet einen Ubuntu-Worker, der ein Latex-Docker-Image herunterlädt, Ihr Dokument als PDF kompiliert und es an einen Zweig namens branchanme-pdf festschreibt.
Antworten:
Für kurze Ausdrücke und nicht so ausgefallene Mathematik können Sie den Inline-HTML-Code verwenden, um Ihre Latex-gerenderte Mathematik in Codecogs abzurufen und dann das resultierende Bild einzubetten. Hier ein Beispiel:
Was zu so etwas wie dem nächsten führen sollte
Update: Dies funktioniert gut in Eclipse, aber leider nicht in Github. Die einzige Lösung ist die nächste:
Nehmen Sie Ihre Latexgleichung und gehen Sie zu http://www.codecogs.com/latex/eqneditor.php . Am unteren Rand des Bereichs, in dem Ihre Gleichung angezeigt wird, befindet sich ein kleines Dropdown-Menü. Wählen Sie die codierte URL aus und fügen Sie diese in Ihre ein Github-Abschlag auf die nächste Weise:
quelle
Ich lade Repositorys mit Gleichungen in Gitlab hoch, da es native Unterstützung für LaTeX in MDD-Dateien bietet:
Die Syntax für Inline-Latex lautet
$`\sqrt{2}`$
.Gitlab rendert Gleichungen mit JavaScript im Browser, anstatt Bilder anzuzeigen, was die Qualität der Gleichungen verbessert.
Mehr Infos hier .
Hoffen wir, dass Github dies auch in Zukunft umsetzen wird.
quelle
Readme2Tex
Ich habe an einem Skript gearbeitet, das den größten Teil des Cruft automatisiert, indem LaTeX-Schriftsätze gut in Markith mit Github-Geschmack umgewandelt werden: https://github.com/leegao/readme2tex
Beim Rendern von LaTeX für Github gibt es einige Herausforderungen. Erstens entfernt Markdown mit Github-Geschmack die meisten Tags und Attribute. Dies bedeutet weder Javascript-basierte Bibliotheken (wie Mathjax) noch CSS-Stile.
Die natürliche Lösung scheint dann darin zu bestehen, Bilder vorkompilierter Gleichungen einzubetten. Sie werden jedoch schnell feststellen, dass LaTeX mehr kann, als nur in Dollarzeichen eingeschlossene Formeln in Bilder umzuwandeln.
Durch einfaches Einbetten von Bildern von Online-Compilern erhält Ihr Dokument ein wirklich unnatürliches Aussehen. Tatsächlich würde ich argumentieren, dass es in Ihrem alltäglichen mathematischen Slang noch besser lesbar ist als nervös .
Ich glaube, dass es wichtig ist, sicherzustellen, dass Ihre Dokumente auf natürliche und lesbare Weise gesetzt werden. Aus diesem Grund habe ich ein Skript geschrieben, das neben dem Kompilieren von Formeln zu Bildern auch sicherstellt, dass das resultierende Bild richtig angepasst und am Rest des Textes ausgerichtet ist.
Hier ist zum Beispiel ein Auszug aus einer
.md
Datei, der einige Aufzählungseigenschaften des Satzes regulärer Ausdrücke enthält, der Folgendes verwendetreadme2tex
:Wie zu erwarten ist, wird der Gleichungssystemsatz oben angegeben, indem nur die entsprechende
align*
Umgebung gestartet wirdBeachten Sie, dass während Inline-Gleichungen ($ ... $) mit dem Text ausgeführt werden, Anzeigegleichungen (die durch
\begin{ENV}...\end{ENV}
oder begrenzt$$...$$
sind) zentriert sind. Dies macht es Menschen, die bereits an LaTeX gewöhnt sind, leicht, weiterhin produktiv zu sein.Wenn dies nach etwas klingt, das helfen könnte, sollten Sie es überprüfen. https://github.com/leegao/readme2tex
quelle
Mein Trick ist, das Jupyter-Notizbuch zu verwenden.
GitHub bietet integrierte Unterstützung für das Rendern von .ipynb-Dateien. Sie können Inline schreiben und LaTeX-Code im Notizbuch anzeigen, und GitHub wird ihn für Sie rendern.
Hier ist eine Beispiel-Notebook-Datei: https://gist.github.com/cyhsutw/d5983d166fb70ff651f027b2aa56ee4e
quelle
Man kann auch diesen Online-Editor verwenden: https://www.codecogs.com/latex/eqneditor.php, der
SVG
Dateien im laufenden Betrieb generiert . Sie können einen Link wie![](https://latex.codecogs.com/svg.latex?y%3Dx%5E2)
folgt in Ihr Dokument einfügen: Dies führt zu : .quelle
Ich teste eine von anderen vorgeschlagene Lösung und möchte TeXify empfehlen, das von agurodriguez erstellt und in einem Kommentar vorgeschlagen und von Tom Hale weiter beschrieben wurde. Ich möchte seine Antwort entwickeln und einen Grund angeben, warum dies eine sehr gute Lösung ist:
*.tex.md
Datei erstellen oder aktualisieren , erkennt TeXify Änderungen und generiert eine Datei, in der Latexformeln*.md
durch die imtex
Verzeichnis in Ihrem Repo gespeicherten Bilder ausgetauscht werden . Wenn Sie also die Datei README.tex.md erstellen, generiert TeXify README.md mit Bildern anstelle von Tex-Formeln. Das Parsen von Tex-Formeln und das Generieren von Dokumentation erfolgt also automatisch bei jedem Commit & Push :)tex
Verzeichnis geändert werden und die Datei README.md Links zu diesen Bildern verwendet, können Sie TeXify sogar deinstallieren und Ihre gesamte alte Dokumentation funktioniert weiterhin :). Dastex
Verzeichnis und die*.tex.md
Dateien bleiben im Repository, sodass Sie Zugriff auf Ihre ursprünglichen Latexformeln und -bilder haben (Sie können auchtex
Ihre anderen Dokumentationsbilder "von Hand" sicher im Verzeichnis speichern - TeXify berührt sie nicht).http://latex.codecogs.com/gif.latex?s%3D%5Ctext%20%7B%20sensor%20reading%20%7D
Das ist jedoch gut und hat einige Nachteile: Die Formeln in den Links sind nicht einfach (praktisch) zu lesen und zu aktualisieren, und wenn es Probleme mit diesem Drittanbieter-Service gibt, funktioniert Ihre alte Dokumentation nicht mehr ... In TeXify Ihre alte Dokumentation funktioniert immer auch dann, wenn Sie dieses Plugin deinstallieren (da alle Ihre aus Latexformeln generierten Bilder im Repo-tex
Verzeichnis verbleiben ).Hier ist ein Link zu einigen meiner Repos, in denen ich TeXify verwende, für das Dokumentation aus der Datei README.tex.md generiert wurde .
quelle
Informationen zur automatischen Konvertierung beim Push auf GitHub finden Sie in der TeXify- App:
So funktioniert es (aus dem Quell-Repository ):
quelle
$...$
der Text ein enthält. Irgendwelche Hinweise warum? Dies ist das Repo: github.com/brunoconteleite/Spatial-Model-SolverMeine schnelle Lösung lautet:
Schritt 1. Fügen Sie Ihrer
.md
Datei Latex hinzuHinweis: Mathematische Gleichungen müssen in $$ ... $$ oder angegeben sein
\\(... \\)
.Schritt 2. Fügen Sie Folgendes zu Ihrer
scripts.html
oder Themendatei hinzu (fügen Sie diesen Code am Ende hinzu).Getan!. Sehen Sie Ihre Gl. durch Laden der Seite.
quelle
scripts.html
Datei? Ich kann keinen Hinweis darauf als Github-Funktion finden.Jeykyll
Themendatei)? Dieser Code dient zur Anzeige von Latex auf Git-Seiten.Sie können einen kontinuierlichen Integrationsdienst (z. B. Travis CI ) erhalten, um LaTeX zu rendern und Ergebnisse an github zu übergeben. CI stellt nach jedem neuen Commit einen "Cloud" -Arbeiter bereit. Der Worker kompiliert Ihr Dokument als PDF und verwendet ImageMagick entweder, um es in ein Bild zu konvertieren, oder verwendet PanDoc, um eine LaTeX-> HTML-Konvertierung zu versuchen, bei der der Erfolg je nach Dokument variieren kann. Worker schreibt dann Bild oder HTML in Ihr Repository, von wo aus es in Ihrer Readme-Datei angezeigt werden kann.
Die TravisCi-Beispielkonfiguration, mit der ein PDF erstellt, in ein PNG konvertiert und an einen statischen Ort in Ihrem Repo übertragen wird, wird unten eingefügt. Sie müssten eine Zeile hinzufügen, in der PDF-Dateien in ein Bild konvertiert werden
Diese Travis Ci-Konfiguration startet einen Ubuntu-Worker, der ein Latex-Docker-Image herunterlädt, Ihr Dokument als PDF kompiliert und es an einen Zweig namens branchanme-pdf festschreibt.
Weitere Beispiele finden Sie in diesem Github-Repo und der dazugehörigen sx-Diskussion , im PanDoc-Beispiel unter https://dfm.io/posts/travis-latex/ und in diesem Beitrag auf Medium .
quelle
Sie können Abschriften verwenden, z
Code kann hier eingegeben werden: https://www.codecogs.com/latex/eqneditor.php .
quelle
Wenn Sie Probleme mit https://www.codecogs.com/latex/eqneditor.php haben , habe ich festgestellt, dass https://alexanderrodin.com/github-latex-markdown/ für mich funktioniert. Es generiert den Markdown-Code, den Sie benötigen, und schneidet ihn einfach aus und fügt ihn in Ihr README.md-Dokument ein.
quelle