Wie man mathematische Gleichungen im allgemeinen Github-Markdown zeigt (nicht im Github-Blog)

150

Nach der Untersuchung habe ich festgestellt, dass Mathjax dies kann. Wenn ich jedoch ein Beispiel in meine Markdown-Datei schreibe, werden die richtigen Gleichungen nicht angezeigt:

Ich habe dies im Kopf der Markdown-Datei hinzugefügt:

<script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=default"></script>

Und geben Sie die mathjax-Anweisung ein:

(E = mc ^ 2) , $$ x_ {1,2} = \ frac {-b \ pm \ sqrt {b ^ 2-4ac}} {2b}. $$

Aber Github zeigt nichts für die mathematischen Symbole! Bitte helfen Sie mir, danke! Sagen Sie mir, wie man mathematische Symbole auf Github-Markdown-Seiten anzeigt.

Alexunder
quelle
2
Es löst das Problem nicht für allgemeine Benutzer, aber diese Antwort schlägt ein Browserskript vor, mit dem Sie zumindest Gleichungen sehen können: stackoverflow.com/q/11255900/180892
Jeromy Anglim
Gitlab verwendet KaTeX
Foad

Antworten:

143

Aber Github zeigt nichts für die mathematischen Symbole! bitte hilf mir, danke!

Das Analysieren von GitHub-Markdowns wird von der SunDown- Bibliothek (ex libUpSkirt) durchgeführt.

Das Motto der Bibliothek lautet "Standardkonforme, schnelle und sichere Markdown-Verarbeitungsbibliothek in C" . Das wichtige Wort ist dort "sicher", wenn man Ihre Frage berücksichtigt :).

In der Tat würde die Ausführung von Javascript etwas vom MarkDown-Standardvertrag für Text-zu-HTML abweichen.

Darüber hinaus wird alles, was wie ein HTML-Tag aussieht, entweder maskiert oder entfernt.

Sagen Sie mir, wie man mathematische Symbole im allgemeinen Github-Markdown anzeigt.

Am besten finden Sie eine Website ähnlich wie yuml.me , auf der Sie Bilder analysieren können, indem Sie den bereitgestellten URL-Querystring analysieren.

Aktualisieren

Ich habe einige Websites gefunden, die Benutzern einen solchen Service anbieten : codedogs.com ( scheint das Einbetten nicht mehr zu unterstützen ) oder iTex2Img . Vielleicht möchten Sie sie ausprobieren. Natürlich können andere existieren und einige Google-Fu helfen Ihnen, sie zu finden.

gegeben die folgende Markdown-Syntax

![equation](http://www.sciweavers.org/tex2img.php?eq=1%2Bsin%28mc%5E2%29&bc=White&fc=Black&im=jpg&fs=12&ff=arev&edit=)

Das folgende Bild wird angezeigt

Gleichung http://www.sciweavers.org/tex2img.php?eq=1%2Bsin%28mc%5E2%29&bc=White&fc=Black&im=jpg&fs=12&ff=arev&edit=

Hinweis : Damit das Bild richtig angezeigt wird, müssen Sie sicherstellen, dass der Querystring-Teil der URL prozentual codiert ist . Sie können leicht Online-Tools finden, die Ihnen bei dieser Aufgabe helfen, z. B. www.url-encode-decode.com

nulltoken
quelle
6
@nultoken, danke für deine hilfreiche Antwort. Ich habe die oben genannte iTex2Img-Website verwendet und meiner Dokumentation zwei Formeln hinzugefügt. Ich habe ein Problem, dass beim Öffnen der Dokumentationsseite auf GitHub beide Formeln gleich angezeigt werden, obwohl sie tatsächlich unterschiedlich sind. Würdest du zufällig wissen, warum es passiert?
Sam
3
mathurl.com ist auch eine bemerkenswerte Website, wenn Sie das Bild generieren müssen.
Martin Thoma
2
Dies scheint jedoch bei Github nicht zu funktionieren. Das Bild wird nicht gerendert. Weiß jemand warum?
OganM
1
@OganM Die Syntax hat sich geändert. Der Link wurde auch in GitHub
repariert
1
Die iTex2Img-Site scheint für mich nicht konsequent zu funktionieren. Das Bild scheint auf Github nicht gerendert zu werden.
Timbram
91

Markdown unterstützt Inline-HTML. Inline-HTML kann sowohl für schnelle als auch für einfache Inline-Gleichungen und mit einem externen Tool für komplexeres Rendern verwendet werden.

Schnelle und einfache Inline

Verwenden Sie für schnelle und einfache Inline-Elemente HTML-kaufmännische Und- Entitätscodes . Ein Beispiel, das diese Idee mit tiefgestelltem Text in Abschriften kombiniert, ist: h & thgr ; (x) = & thgr ; o x + & thgr; 1 x, dessen Code folgt.

    h<sub>&theta;</sub>(x) = &theta;<sub>o</sub> x + &theta;<sub>1</sub>x

HTML-kaufmännische Und-Entitätscodes für gängige mathematische Symbole finden Sie hier . Codes für griechische Buchstaben hier .

Obwohl dieser Ansatz Einschränkungen aufweist, funktioniert er in praktisch allen Abschriften und erfordert keine externen Bibliotheken.

Komplexes skalierbares Inline-Rendering mit LaTeX und Codecogs

Wenn Ihre Anforderungen höher sind, verwenden Sie einen externen LaTeX-Renderer wie CodeCogs. Erstellen Sie eine Gleichung mit dem CodeCogs-Editor . Wählen Sie zum Rendern svg und für den Einbettungscode HTML. Svg lässt sich beim Ändern der Größe gut rendern. Mit HTML kann LaTeX leicht gelesen werden, wenn Sie sich die Quelle ansehen. Kopieren Sie den Einbettungscode vom unteren Rand der Seite und fügen Sie ihn in Ihren Markdown ein.

<img src="https://latex.codecogs.com/svg.latex?\Large&space;x=\frac{-b\pm\sqrt{b^2-4ac}}{2a}" title="\Large x=\frac{-b\pm\sqrt{b^2-4ac}}{2a}" />

Dies kombiniert diese Antwort und diese Antwort .

Die GitHub- Unterstützung funktionierte nur gelegentlich mit der oben genannten rohen HTML-Syntax für lesbares LaTeX für mich. Wenn dies für Sie nicht funktioniert, können Sie stattdessen auch URL-codiertes Rendering auswählen und diese Ausgabe verwenden, um manuell einen Link wie folgt zu erstellen:

\ Large x = \ frac {-b \ pm \ sqrt {b ^ 2-4ac}} {2a}

![\Large x=\frac{-b\pm\sqrt{b^2-4ac}}{2a}](https://latex.codecogs.com/svg.latex?x%3D%5Cfrac%7B-b%5Cpm%5Csqrt%7Bb%5E2-4ac%7D%7D%7B2a%7D)

Dadurch wird LaTex manuell in den Alternativbildtext integriert und eine codierte URL zum Rendern auf GitHub verwendet.

Mehrzeiliges Rendern

Wenn Sie mehrzeiliges Rendern benötigen, lesen Sie diese Antwort .

SpeedCoder5
quelle
1
das hat super geklappt. Ich musste ein Jupyter-Notizbuch (.ipynb) in konvertieren .mdund die Gleichungen waren im Wesentlichen mehrzeiliger Latexcode .
Marc Maxmeister
12

Wenn Sie nur selbst Mathematik im Browser anzeigen möchten, können Sie die Chrome-Erweiterung GitHub mit MathJax ausprobieren . Es ist sehr praktisch.

nn0p
quelle
1
Es gibt einen Fehler mit icon16.png, wenn ich versuche zu installieren
Homero Esmeraldo
10

Eine andere Lösung besteht darin, Jupyter-Notizbücher zu verwenden und den Markdown-Modus in Zellen zum Rendern von Gleichungen zu verwenden.

Grundlegende Dinge scheinen perfekt zu funktionieren, wie zentrierte Gleichungen

\begin{equation}
...
\end{equation}

oder Inline-Gleichungen

$ \sum_{\forall i}{x_i^{2}} $

Obwohl eine der Funktionen, die ich wirklich wollte, in Github überhaupt nicht gerendert wurde \mbox{}, war das ein Mist. Alles in allem war dies jedoch die erfolgreichste Methode, um Gleichungen auf Github zu rendern.

Chahuja
quelle
3
Vielen Dank für diese Antwort, aber es gibt dieses Problem: Ich habe es geschafft, das Jupyter-Notebook im Markdown-Modus zu verwenden, und die Gleichung wird in Ordnung angezeigt. Wie können Sie nun diesen Jupyter-Markdown auf den readme.mdGitHub übertragen?
DavidC.
1
Gleichungen werden nicht direkt in Markdown-Dateien gerendert. Die Gleichungen müssten so ziemlich Bilder sein, um auf dem zu sein readme.md. Sie können jedoch immer nur file.ipynbGithub anziehen und Github macht es gut.
Hexikel
8

Lassen Sie mich jetzt den Fortschritt der Unterstützung für das Rendern mathematischer Formeln von Quellcode-Repository-Hosts zusammenfassen.

GitHub & Bitbucket

GitHub und Bitbucket unterstützen das Rendern mathematischer Formeln immer noch nicht , unabhängig davon, ob es sich um Standardbegrenzer oder andere handelt.

Bitbucket Cloud / BCLOUD-11192 - Hinzufügen von LaTeX-Unterstützung in MarkDown-Dokumenten (BB-12552)

GitHub / Markup - Rendern von mathematischen Gleichungen

GitHub / Markup - Unterstützt Latex

GitHub Community Forum - [FEATURE REQUEST] LaTeX Math in Markdown

talk.commonmark.org - Kann dem Markdown eine mathematische Formel hinzugefügt werden?

GitHub hat in den letzten Jahren kaum wesentliche Fortschritte gemacht.

GitLab

GitLab wird bereits unterstützt, ist jedoch nicht die häufigste Methode. Es verwendet ein eigenes Trennzeichen.

This math is inline $`a^2+b^2=c^2`$.

This is on a separate line

```math
a^2+b^2=c^2
```

GitLab Flavored Markdown - Math

Wer unterstützt die universellen Begrenzer?

Ein von Hugo verwendeter Markdown-Parser

Andere Möglichkeiten zum Rendern

Xuesongye
quelle
6

Während GitHub die MathJax-Formeln nicht interpretiert, können Sie automatisch ein neues Markdown-Dokument generieren, wobei die Formeln durch Bilder ersetzt werden.

Ich schlage vor, Sie schauen sich die GitHub-App TeXify an :

GitHub App, die in Ihren Pushs nach Dateien mit der Erweiterung * .tex.md sucht und ihre TeX-Ausdrücke als SVG-Bilder rendert

So funktioniert es (aus dem Quell-Repository ):

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.

Tom Hale
quelle
2

Es gibt eine gute Lösung für Ihr Problem - verwenden Sie das TeXify- Github-Plugin (von Tom Hale erwähnt - aber ich habe seine Antwort unter dem unten angegebenen Link entwickelt) - weitere Details zu diesem Github-Plugin und eine Erklärung, warum dies ein guter Ansatz ist, finden Sie in dieser Antwort .

Kamil Kiełczewski
quelle
2

Ich verwende den unten genannten Prozess, um Gleichungen in Markdown umzuwandeln. Das funktioniert sehr gut für mich. Es ist sehr einfach!!

Angenommen, ich möchte die Matrixmultiplikationsgleichung darstellen

Schritt 1:

Das Skript für Ihre Formeln erhalten Sie hier - https://csrgxtu.github.io/2015/03/20/Writing-Mathematic-Fomulars-in-Markdown/

Mein Beispiel: Ich wollte Z(i,j)=X(i,k) * Y(k, j); k=1 to nin Summationsformeln darstellen. Unter Bezugnahme auf die Website war das erforderliche Skript =>

Geben Sie hier die Bildbeschreibung ein

Z_i_j=\sum_{k=1}^{10} X_i_k * Y_k_j

Schritt 2:

Verwenden Sie den URL-Encoder - https://www.urlencoder.org/ , um das Skript in eine gültige URL zu konvertieren.

Mein Beispiel:

Geben Sie hier die Bildbeschreibung ein

Schritt 3:

Verwenden Sie diese Website, um das Bild zu generieren, indem Sie die Ausgabe aus Schritt 2 in den Anforderungsparameter "eq" kopieren - http://www.sciweavers.org/tex2img.php?eq=<b><i>paste-output-here</i></b>&bc=White&fc=Black&im=jpg&fs=12&ff=arev&edit=

- Mein Beispiel:
http://www.sciweavers.org/tex2img.php?eq=Z_i_j=\sum_{k = 1} ^ {10}% 20X_i_k% 20 *% 20Y_k_j & bc = Weiß & fc = Schwarz & im = jpg & fs = 12 & ff = arev & edit =

Geben Sie hier die Bildbeschreibung ein

Schritt 4:

Referenzbild mit Markdown-Syntax - ![alt text](enter url here)

- Kopieren Sie dieses Bild in Ihren Markdown und los geht's:

![Z(i,j)=X(i,k) * Y(k, j); k=1 to n](http://www.sciweavers.org/tex2img.php?eq=Z_i_j%3D%5Csum_%7Bi%3D1%7D%5E%7B10%7D%20X_i_k%20%2A%20Y_k_j&bc=White&fc=Black&im=jpg&fs=12&ff=arev&edit=)

Bild unten ist die Ausgabe von Markdown. Hurra!!


Geben Sie hier die Bildbeschreibung ein

Dexter
quelle
Jeder, der dies liest, "Typora" ist meine neue Lieblings-Markdown-App. Ich sage nur
Dexter
0

In Bezug auf die Tex → Bildkonvertierung erzeugt das Tool LaTeXiT eine Ausgabe mit viel höherer Qualität. Ich glaube, es ist Standard in den meisten TeX-Distributionen, aber Sie können es sicherlich online finden, wenn Sie es noch nicht haben. Alles, was Sie tun müssen, ist, es in die TeX zu legen, das Bild auf Ihren Desktop zu ziehen und dann von Ihrem Desktop auf eine Bildhosting-Site zu ziehen (ich verwende imgur).

Fredcallaway
quelle
Es ist zu beachten, dass LaTeXiT anscheinend nur unter MacOS funktioniert (obwohl dies auf der Website nicht ausdrücklich angegeben ist).
ƒacu.-
0

Ich habe Folgendes im Kopf der Mark-Down-Datei verwendet

<script type="text/javascript" async
src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js? 
config=TeX-MML-AM_CHTML"
</script>

Geben Sie dann die folgende mathjax-Anweisung ein:
$$ x_ {1,2} = \ frac {-b \ pm \ sqrt {b ^ 2-4ac}} {2b}. $$
Es hat bei mir funktioniert

Swetha Tanamala
quelle