2010-10-04 5 views
7

Ich liebe LaTeX. Lasst uns das gleich auf Anhieb schaffen.Gibt es eine leichtere/klarere Syntax wie Markdown, die in LaTeX kompilieren kann?

Das einzige, was ich mir wünsche, ist eine klarere Syntax, die in LaTeX kompiliert wird, wie Markdown für HTML. Das ist, weil die meisten der einfachen Dokumenterstellung, die ich mache (wie Notizen in der Klasse), könnte schneller und verbessert werden, wenn ich einfach 1/2 anstelle von \frac{1}{2} eingeben könnte und es in einen ordentlichen Bruch kompiliert. Ich kenne und benutze AucTeX, und es macht schnelleres Tippen, aber es ist immer noch nicht sehr klar und anfälliger für Syntaxfehler im Allgemeinen.

Wenn solch eine einfachere Syntax existiert, die in LaTeX kompiliert, bitte sagen Sie mir in den Antworten unten. Wenn es nichts Befriedigendes gibt, würde ich gerne ein Open-Source-Projekt für dieses Ziel starten, aber ich würde gerne zuerst von bestehenden Alternativen wissen.

+0

LaTeX * ist * eine einfachere TeX bereits ... Das grundlegende Problem hier ist eines der Lage zu tun * alles *. Nehmen Sie das Beispiel, das Sie gewählt haben: es funktioniert zu machen, würde es schwieriger machen zu sagen, wenn Sie wollen, 1 'gefolgt von'/'gefolgt von' 2 'alle im Standard-Text-Modus und Schriftart (im Kontext der Eingabe eines Datums, vielleicht) ... Also stellt sich die Frage "Welche Anwendungsfälle sind so speziell, dass sie auf Kosten aller anderen ausfallen?". Beachten Sie auch, dass Markdown * einige Dinge nicht tun kann - das sind die Kosten, um anderen sehr leicht zu helfen. – dmckee

+0

@dmckee: Nun, im '1/2'-Beispiel würde ich erwarten, dass' 1/2' nur im Math-Modus in einen Bruch umgewandelt wird. Wäre das nicht sinnvoll? – Chetan

+0

@dmckee: Aber ja, was du gesagt hast macht Sinn. Ich dachte nur, dass viele Dinge, die Sie mit LaTeX machen, viel häufiger sind als andere, und es wäre sinnvoll, eine Simplex-Syntax zu haben, wenn Sie LaTeX für schnelle Notizen oder einfache Dokumente verwenden möchten. Wenn Sie komplexere Dokumente erstellen und die obskuren Funktionen nutzen möchten, verwenden Sie die vollständige Syntax. Ich würde zum Beispiel gern eine kürzere Syntax verwenden, wenn ich Notizen in der Klasse mache. – Chetan

Antwort

3

Ein Markdown to LaTeX script existiert für die Markdown-Implementierung Markdown in Python. Es gibt eine weitere extension namens mdx_math, die Inline-LaTeX-Mathematik erlaubt. Die Haskell Markdown to whatever converter, Pandoc, kann Inline-LaTeX-Mathematik haben und kann nach LaTeX exportieren. Es gibt wahrscheinlich andere in der Markdown family. Keine davon (AFAIK) gibt jedoch eine alternative Syntax für Mathe. Es gibt ein paar mathematical markup languages nach Wikipedia. Obwohl es in JavaScript geschrieben ist, interessiert Sie möglicherweise ASCIIMathML.

Sie müssen wahrscheinlich selbst etwas schreiben, aber eine Markdown-Erweiterung suchte nach Blöcken, die eine saubere Syntax (wie ASCIIMathML) hätten.

+0

Hervorragend, das ASCIIMathML-Skript sieht sehr ähnlich aus, was ich dachte. Nun, wenn dies zur Konvertierung in LaTeX implementiert würde und andere Dinge wie Sektionen und Formatierung zur einfachen Syntax hinzugefügt würden, wäre es genau das, wonach ich suche. – Chetan

+1

Ich denke, der beste Weg wäre, Markdown so zu erweitern, dass zB ~ ~ 1/(a ​​+ b) ~ 'Blöcke als Mathe behandelt und mit etwas wie ASCIIMathML konvertiert werden. –

+1

Oder Sie können Markdown so ändern, dass die Blöcke nicht als Inline-Code, sondern als Mathe behandelt werden. –

0

Ich kenne keine andere einfachere Syntax für LaTeX.

Es gibt jedoch TeXML, die ein XML-zu-TeX/LaTeX-Konverter ist. Es mag zunächst komisch klingen, aber es könnte Ihre eigenen Syntax vereinfachen, indem Sie sie einfach in XML konvertieren und dann TeXML aufrufen. TeX-Syntax ist knifflig: sinnvolle Leerzeilen, TeX-Sonderzeichen, meist auch Unicode-Mangel ... TeXML erleichtert den Umgang damit.

2

Wenn Sie nur an die einfachsten Fälle denken, werden Sie in eine Welt der Verletzung geraten. \frac{1}{2} ist waaay zu einfach.

Was für jede würden Sie der folgenden für Ihre einfache Syntax:

\frac{1}{x + 1}

\frac{1}{x} + 1

\frac{x^2}{x + 1}

x^\frac{2}{x + 1}

\frac{x}{{x + 1}^2}

\frac{x}{x + 1}^2

Ich werde sehr überrascht sein, wenn Ihr erster Versuch mehrere Duplikate (Konflikte) nicht enthält.

+1

Direkt von meinem Kopf, so würden diese Beispiele aussehen: '1/(x + 1)', '1/x + 1',' (x^2)/(x + 1) ', 'x^(2/(x + 1))', 'x/((x + 1)^2)', '(x/(x + 1))^2' – Chetan

+0

Und meine einfache Syntax würde automatisch aussortieren Klammern in Brüche und fügen Klammern hinzu ('\ left (' und '\ right)'), wo sie benötigt werden, um die Gleichung klarer zu machen. – Chetan

+1

Aber was, wenn Sie keine Klammern wollen? Oder was, wenn du es tust? Wenn es leicht war, es außerordentlich zu finden, meinst du nicht, dass Knuth es getan hätte? – hadley

0

Ich weiß, Sie suchten nach einfacheren Code nicht einen neuen Editor, und Sie sagten, Sie verwenden AucTeX (was ich nicht weiß, ich weiß nicht, ob dies hilft), aber TeXlipse für Eclipse hat einige nette Bearbeitungsfunktionen, die kann für eine schnellere Eingabe sorgen, einschließlich Hinzufügen von Endstreben} und end commands \ end {env} und ermöglicht das Tabstopping von geschweiften Klammern. Nur ein Gedanke.

+0

Ja, AucTeX macht ähnliche Dinge. Ich bin einfach nicht damit zufrieden :) – Chetan

0

reStructuredText zu LaTeX zusammenstellen können (die Sprache selbst viel simplier als TeX ist, obwohl es immer noch TeX Syntax für Formeln verwendet), siehe Generating LaTeX with Docutils Artikel. Verschiedene Erweiterungen zu reStructuredText existieren, wie Sphinx.

Sie können auch einen Blick auf MathJax werfen, die Mathe in jedem Format lesen kann (einschließlich ASCIIMath) und eine Menüoption hat, um Mathe als TeX anzuzeigen.

1

Sie sollten wirklich überprüfen pandoc, die eine ausgezeichnete Integration zwischen Markdown und Latex hat. Was ist nett ist, dass Sie Latex einfach inline fallen lassen können, um mit den iffly Bits fertig zu werden, für die Markdown zu einfach ist.

Verwandte Themen