Wie kann ich LaTeX mit Markdown mischen? [closed]

Lesezeit: 7 Minuten

Benutzer-Avatar
Norman Ramsey

Ich habe Markdown für Unterrichtsnotizen verwendet, und es ist großartig. Ich mache sogar eine Vorverarbeitung des Markdowns, damit ich Dinge wie Tabellen machen kann. Aber dieses Semester unterrichte ich eine Klasse mit viel Mathematik, und ich würde gerne in der Lage sein, LaTeX-Formeln mit Markdown zu setzen, etwa so:

The refinement relation is written $a \sqsubseteq b$, which can be 
pronounced "$a$ approximates $b$" or "$b$ is at least as defined as $a$".

Ich würde gerne in der Lage sein, jedes Fragment von LaTeX zu nehmen und es in eine schöne PNG-Datei mit Antialiasing vorzuverarbeiten, die ich dann über HTML in meinen Markdown aufnehmen könnte <img> Schild. Aber ich habe absolut keine Ahnung, wie man ein LaTeX-Fragment nimmt und daraus ein schönes Bild bekommt

  • Hat den richtigen Begrenzungsrahmen
  • Ist geglättet

Ich weiß nur, wie man ganze Seiten im DVI-, PostScript- oder PDF-Format erhält.

Ich bin mir sicher, dass dieses Problem behoben wurde, aber ich konnte die richtigen Suchbegriffe nicht erraten. Irgendwelche Vorschläge, wie man es löst oder wo man nach einer bestehenden Lösung sucht?


BEARBEITEN: Nachdem ich mathTeX installiert habe, kann ich sagen, dass der Code unflexibel ist, dass er gegen den Linux Filesystem Hierarchy-Standard verstößt und dass es Amateurarbeit ist – im guten wie im schlechten Sinne dieses Wortes. Der Code ist so komplex, dass es keine offensichtlichen Fehler gibt. Ich werde nach Alternativen suchen.

Es ist auch klar, dass Lösungen im Grunde auf basieren dvipng.


EIN JAHR SPÄTER: Ich habe nie die nahtlose Integration bekommen, auf die ich gehofft hatte, aber ich hinke an einem Skript, das ich mir selbst ausgedacht habe. Es stellt sich heraus, dass statt dvipng es ist ein wenig einfacher zu bedienen dvips -E und die convert Programm von ImageMagick. Die Vorteile sind eine etwas bessere Kontrolle über Dinge wie die Skalierung und die einfache Erstellung eines transparenten Hintergrunds. Neugierige können es begutachten dieses Beispiel.

Ich kann diese Lösung niemandem empfehlen. Aber ich kann MathTeX auch nicht empfehlen.

  • Gute Fragen. Ich habe meine Vorbereitung direkt in LaTeX gemacht, aber es ist ein wenig wortreich für diesen Zweck, sogar mit auctex …

    – dmckee — Ex-Moderator-Kätzchen

    3. Februar 2010 um 0:41 Uhr

  • Hast du Pandoc probiert? Es konvertiert nicht nur selbst Markdown+LaTeX in (was auch immer), sondern lässt Sie mit seiner neuesten Version auch Skripte schreiben, die im Parse-Baum funktionieren, sodass Sie problemlos tun können, was Sie wollen.

    – ShreevatsaR

    23. April 2010 um 21:51 Uhr


  • @ShreevatsaR Ich werde wahrscheinlich diesen Sommer sowohl Pandoc als auch Multimarkdown ausprobieren.

    – Norman Ramsey

    23. April 2010 um 22:16 Uhr

  • so komplex, dass es keine offensichtlichen Fehler gibt – Ich habe diese erfreuliche Referenz beim ersten Lesen übersehen.

    – Karl Stewart

    18. Januar 2011 um 7:13 Uhr

  • Kann jemand erklären, warum diese Frage nicht zum Thema gehört?

    – AnnanFay

    3. Dezember 2013 um 16:01 Uhr

Benutzer-Avatar
tnotstar

Hast du es mit probiert Pandoc?

BEARBEITEN:

Obwohl die Dokumentation etwas komplex geworden ist, Pandoc unterstützt hat Inline-LaTeX und LaTeX-Vorlagen für 10 Jahre.

Dokumente wie das folgende können eingeschrieben werden Abschlag:

---
title: Just say hello!
author: My Friend
header-includes: |
    \usepackage{tikz,pgfplots}
    \usepackage{fancyhdr}
    \pagestyle{fancy}
    \fancyhead[CO,CE]{This is fancy}
    \fancyfoot[CO,CE]{So is this}
    \fancyfoot[LE,RO]{\thepage}
abstract: This is a pandoc test with Markdown + inline LaTeX
---

Just say hello!
===============

This could be a good example or inlined \LaTeX:

\begin{tikzpicture}
\begin{axis}
\addplot[color=red]{exp(x)};
\end{axis}
\end{tikzpicture}
%Here ends the furst plot
\hskip 5pt
%Here begins the 3d plot
\begin{tikzpicture}
\begin{axis}
\addplot3[
    surf,
]
{exp(-x^2-y^2)*x};
\end{axis}
\end{tikzpicture}

And now, just a few words to terminate:

> Goodbye folks!

Welches kann mit Befehlen wie diesen in LaTeX konvertiert werden: pandoc -s -i Hello.md -o Hello.tex

Es folgt ein Bild des konvertierten Hello.md zu Hello.pdf Datei verwenden MiKTeX als LaTeX-Prozessor mit dem Befehl: pandoc -s -i Hello.md -o Hello.pdf

Geben Sie hier die Bildbeschreibung ein

Schließlich gibt es einige Open Source LaTeX-Vorlagen wie dieser: https://github.com/Wandmalfarbe/pandoc-latex-templatedie für eine bessere Formatierung verwendet werden können.

Wie immer sollte der Leser tiefer graben, wenn er weniger triviale Anwendungsfälle als die hier vorgestellten hat.

  • Siehe auch stackoverflow.com/questions/663532/…

    – tnotstar

    31. März 2010 um 12:11 Uhr

  • Sie können RMarkdown auch direkt verwenden. Pandoc verwendet es.

    – felipecrp

    26. Oktober 2016 um 1:36 Uhr

  • Das ist keine gute Antwort. Aktiviert pandoc Teile von Latex im Markdown? Dies verlinkt eine Website, die möglicherweise nicht immer verfügbar ist. Keine Erläuterung, was Pandoc überhaupt ist. Es sollte eine Entwicklung zu dieser Antwort geben.

    – Daniel Sutar

    26. Juli 2020 um 2:56 Uhr

  • BEARBEITEN: Ich habe ein grundlegendes Beispiel für zukünftige Referenzen hinzugefügt.

    – tnotstar

    30. Juli 2020 um 11:51 Uhr

  • EDIT2: Ich habe eine Bildschirmaufnahme mit Ergebnissen hinzugefügt.

    – tnotstar

    30. Juli 2020 um 12:00 Uhr

Benutzer-Avatar
duffymo

Vielleicht mathJAX ist die Fahrkarte. Es ist darauf aufgebaut jsMatheine JavaScript-Bibliothek aus dem Jahr 2004.

Ab dem 5. Februar 2015 würde ich auf empfehlen wechseln KaTeX – leistungsstärkste Javascript-LaTeX-Bibliothek der Khan Academy.

  • Verwandte: stackoverflow.com/questions/11256433/… Ich erwäge auch Katex-Serverseite, zB mit github.com/asciidoctor/asciidoctor/pull/3338

    – Ciro Santilli Путлер Капут 六四事

    29. Juni 2019 um 19:28 Uhr

Benutzer-Avatar
form

Fügen Sie den folgenden Code am Anfang Ihrer Markdown-Dateien hinzu, um MathJax-Rendering-Unterstützung zu erhalten

<style TYPE="text/css">
code.has-jax {font: inherit; font-size: 100%; background: inherit; border: inherit;}
</style>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
    tex2jax: {
        inlineMath: [['$','$'], ['\\(','\\)']],
        skipTags: ['script', 'noscript', 'style', 'textarea', 'pre'] // removed 'code' entry
    }
});
MathJax.Hub.Queue(function() {
    var all = MathJax.Hub.getAllJax(), i;
    for(i = 0; i < all.length; i += 1) {
        all[i].SourceElement().parentNode.className += ' has-jax';
    }
});
</script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.4/MathJax.js?config=TeX-AMS_HTML-full"></script>

und dann wird `$x^2$` oder `$$x^2$$` wie erwartet gerendert 🙂

Sie können immer eine lokale Version von MathJax installieren, wenn Sie die Online-Distribution nicht verwenden möchten, aber Sie müssen sie möglicherweise über einen lokalen Webserver hosten.

AKTUALISIEREN: in diesen Tagen verwende ich nur Pandoc anstelle von kanonischem Markdown, aber das obige ist immer noch nützlich.

  • Hinweis aus der Zukunft: cdn.mathjax.org nähert sich dem Lebensende, check mathjax.org/cdn-shutting-down für Migrationstipps (und vielleicht aktualisieren Sie Ihren Beitrag für zukünftige Leser).

    – Peter Krautzberger

    21. April 2017 um 7:44 Uhr

  • re: Notiz aus der Zukunft. Die aktuelle Antwort enthält bereits eine Lösung

    – josinalvo

    18. Juli 2021 um 19:19 Uhr

Benutzer-Avatar
Karl Stewart

Ich beantworte deine Frage mit einer Gegenfrage…

Was halten Sie vom Org-Modus? Es ist nicht so rein wie Markdown, aber es ist Markdown-ähnlich, und ich finde es so einfach, damit zu arbeiten, und es ermöglicht die Einbettung von Latex. Vgl. http://www.gnu.org/software/emacs/manual/html_node/org/Embedded-LaTeX.html

Nachschrift

Falls Sie sich den Org-Modus noch nicht angesehen haben, hat er eine große Stärke als allgemeine “natürliche Auszeichnungssprache” gegenüber Markdown, nämlich die Behandlung von Tabellen. Die Quelle:

| 1 | 0 | 0 |
| -1 | 1 | 0 |
| -1 | -1 | 1 |

stellt genau das dar, was Sie denken, dass es wird …

Und der Latex wird in Stücken mit dem Vorschau-Latex von tex-mode gerendert.

Benutzer-Avatar
Glimmer

Sie sollten sich Multimarkdown ansehen http://fletcherpenney.net/multimarkdown/

Es unterstützt Metadaten (Überschriften, Schlüsselwörter, Datum, Autor usw.), Tabellen, Asciimath, Mathml, verdammt, ich bin sicher, Sie könnten Latex-Mathematikcode direkt dort einfügen. Es ist im Grunde eine Erweiterung von Markdown, um all diese anderen sehr nützlichen Funktionen hinzuzufügen. Es verwendet XSLT, sodass Sie ganz einfach Ihre eigenen LaTeX-Stile erstellen und direkt konvertieren lassen können. Ich benutze es die ganze Zeit, und ich mag es sehr.

Ich wünschte, der Markdown würde nur Multimarkdown enthalten. es wäre ziemlich nett.

Bearbeiten: Multimarkdown erzeugt HTML, Latex und einige andere Formate. html kann mit einem Stylesheet Ihrer Wahl geliefert werden. es wird auch in MathML konvertiert, das in Firefox und Safari/Chrome angezeigt wird, wenn ich mich richtig erinnere.

  • Sieht komplizierter aus als ich möchte, und es ist weniger als klar, was die Ausdruckskraft ist (außer MathML wird durch reference0 aufgenommen).

    – Norman Ramsey

    3. Februar 2010 um 23:28 Uhr

Benutzer-Avatar
rsac

RStudio hat eine gute kostenlose IDE, die Markdown und LaTeX ermöglicht.

  • Sieht komplizierter aus als ich möchte, und es ist weniger als klar, was die Ausdruckskraft ist (außer MathML wird durch reference0 aufgenommen).

    – Norman Ramsey

    3. Februar 2010 um 23:28 Uhr

Kramdown macht genau das, was du beschreibst:

https://kramdown.gettalong.org/syntax.html#math-blocks

Und es ist viel zuverlässiger und klarer definiert als Markdown.

  • Es sieht so aus, als ob diese Seite im Moment nicht erreichbar ist, aber hier ist die Seite, auf die sie laut Wayback-Maschine 301 umgeleitet hat: kramdown.gettalong.org:80/

    – Derwent

    30. Juli 2017 um 1:25 Uhr

1335560cookie-checkWie kann ich LaTeX mit Markdown mischen? [closed]

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy