Frage

Ich möchte eine leichte Auszeichnungssprache verwenden, um Notizen in meinen College-Klassen zu nehmen.

Mein Redakteur der Wahl ist gedit, und ich fand reStructuredText Werkzeuge für Gedit , die den reStructuredText Prozessor läuft und den HTML-Code in einer Scheibe in gedit machen. Das ist großartig, und 80% des Weges dorthin.

Aber für viele meine Klassen brauche ich mathematische Gleichungen oder griechische Zeichen in meinen Notizen aufzunehmen. Obwohl ich mit LaTeX nicht sehr vertraut bin, mein Verständnis ist, dass es diese Funktionen verfügt.

Wie kann ich mit LaTeX in einem reST Dokument? Würde der reST Dokument werden muß, in LaTeX verarbeitet, dann ist das in HTML gerendert, oder gibt es einen besseren Weg? Würde Abschlag dies einfacher machen? Ich kann das gedit ändern Plugin, falls erforderlich.

Schließlich hat jemand dies tun? Alle anderen Vorschläge für die Aufnahme Klasse Notizen in einem einfachen Texteditor?

Danke!

War es hilfreich?

Lösung

Seit Version 0.8 wird nativ unterstützt: Sie sollten jede Abhilfe nicht mehr verwenden. Die Syntax ist ebenfalls sehr einfach. Es ist die gleiche wie Latex Mathe, aber ohne die umschließenden $$

So können Sie die folgenden für einen Matheblock einfach schreiben

.. math::

   \frac{ \sum_{t=0}^{N}f(t,k) }{N}

Oder wenn Sie schreiben wollen inline Sie diese verwenden können:

:math:`\frac{ \sum_{t=0}^{N}f(t,k) }{N}`

beachten Sie die Begrenzungsbackticks gibt.


UPDATE:

in neueren Versionen scheint es notwendig zu sein, eine zwei Backslash für die Mathe-Elemente zu verwenden, so dass es \\frac und nicht \frac

Andere Tipps

Es gibt native Unterstützung für eine „math“ Rolle und Richtlinie (Mit LaTeX Eingabesyntax) seit Release 0.8 (2011-07-07).

Das ist, was ich tue:

  1. Fügen Sie eine Rolle für Mathematik am Anfang Ihres Restes Dokument:

    .. role:: raw-math(raw)
        :format: latex html
  2. Schreiben Sie Ihren Taschenrechner raus wie

    :raw-math:`$$ \frac{s}{\sqrt{N}} $$`

    (Verwendung $$ ... $$, wenn Sie es in einem Block werden sollen, oder $ ... $, wenn Sie es inline wollen.)

  3. generieren HTML-Ausgabe wie folgt aus:

    rst2html --stylesheet=/path/to/my_beautiful_stylesheet.css my_file.rst \
    | tidy -q | /path/to/itex2MML > my_file.xhtml

    Dies erzeugt den HTML mit rst2html, tidies mit tidy und wandelt dann die Latex Mathematik in MathML mit itex2MML, Ausgeben von auf einer XHTML-Datei.

Weitere Informationen:

  1. Stylesheet ist optional
  2. Für itex2MML gehen hier .
  3. Die Erweiterung der HTML-Datei sollte xhtml oder xml sein, da sonst die Mathematik in Ihrem Browser nicht angezeigt.

LaTeX und ReST sind zwei Lösungen für das gleiche Problem (Ganz Dokument Markup), und ich bin nicht sicher, dass ein glückliches Leben in dem anderes sein würde.

  • LaTeX zuerst, dann ReST: LaTeX Bedürfnisse genau um typographische Elemente zu positionieren Gleichungen zu legen (und alles andere). ReST würde die LaTeX-Ausgabe nicht nehmen (Postscript oder ähnliches) als Eingabe.
  • ReST zuerst, dann LaTeX: Sie müßten einen Ausgangsformatierer für ReST, dass die Ausgabe von LaTeX-Code schreiben, und definieren Erweiterungen in ReST es zu verhindern, dass Ihre Gleichungen oder andere explizite TeX falsch interpretiert. Die Ausgabe von LaTeX wird immer noch so etwas wie Postscript oder PDF sein.

Ich habe für die Verwendung einer Teilmenge von TeX-Code gesehen eine grafische Gleichung zu erzeugen, die dann in HTML oder ähnlich (zum Beispiel gezogen wird, Trac LaTeX Formel Makro ), die die beste verfügbare Lösung sein kann.

Breaking down Ihr Problem ein wenig, ist das erste Ziel, die Latex-Code ausgegeben wörtlich zu bekommen in den HTML-Code von Ihrem Licht Markup der Wahl erzeugt (mit Ausnahme von cgi-Fluchten für <,>, ätzt.): Wenn Sie es haben dort können sie leicht von Mathjax (sehr empfehlenswert) oder itex wie gozzilli erwähnt.

Zunächst soll ich sagen, dass anstelle von ReST mit Abschlag wahrscheinlich einfacher sein würde, weil ReST Anwendungen \ für die Flucht, so dass alle LaTeX geschützt werden muss. Ein Beispiel dafür, wie gut die Dinge funktionieren mit Abschlag und Mathjax , mit dem Setup unterwegs spielen, um unter mathoverflow.net .

Dennoch nehme ich an, dass Sie wirklich ReST wollen (und Mathjax), wobei in diesem Fall gibt es zwei Möglichkeiten vor:. Gebrauch Lager ReST (und umständlich zu entkommen), oder einige LaTeX-Handler docutils hinzufügen

Option 1 - Auf ReST:

Für Inline-Mathe, verwenden Sie einfach wörtlich und was auch immer Sie Ihre Tags Post-Prozessor für sucht: `` $ x <\ pi $ ``. Für mehrzeiligen Mathe, mögen Sie einen wörtlichen Block, aber Sie müssen zum Beispiel für ein Klasse-Attribut gesetzt Mathjax es zu analysieren, wie es sonst <pre> Tags überspringt:

.. class:: mathjax_process

::

  \begin{equation}
    x<\pi
  \end{equation}

Option 2: Erweitern Sie ReST Prozessor

Wenn Sie bereit sind, Hacking ein wenig zu tun Ihrer ReST Prozessor zu erweitern, können Sie eine viel schönere Schreibweise für die LaTeX Literale erhalten, indem Sie eine benutzerdefinierte definiert, interpretiert Text Rolle für die Inline-Latex (zB :latex:`x<\pi`) und eine benutzerdefinierte Richtlinie für mehrzeilige Mathematik, zB

.. latex::

  \begin{equation}
    x<\pi
  \end{equation}

Die Inline-mathematische Schreibweise kann sogar zu `x<\pi` verkürzt werden, wenn Sie verwenden Mathjax oder äquivalent für diese Klasse zu suchen. Alternativ können Sie den Code ändern, über die Klasse „mathjax_process“ zu setzen, ist der Standard Mathjax Überschreibung Klasse.

Das Problem ist, dass reST wirklich keine Plugins. Sie könnten ein erweiterbares Framework wie Sphinx wählen; ein Plugin für jsmath ist bereits enthalten, und ein Plugin für Mathjax ist ebenfalls möglich. Zusätzlich Sphinx Verwendung von LaTeX macht direkt Build von PDF-Dokumenten.

Eine weitere leichte Lösung besteht den Rest Vorlage in Bearbeitung Mathjax enthält, so dass Sie nur Mathjax des (LaTeX-like) Syntax in dem Dokument verwenden können.

Aber in der Regel nur es LaTeX direkt verwende für alles ernst die Anpassungsfähigkeit dieser leichten Auszeichnungssprachen sind einfach nicht umfassend genug für alles.

Dieser Artikel von der Docutils FAQ relativ eine Art und Weise beschreibt TeX Mathe leicht umfassen. Sie zuerst eine Rolle interpretiert Text definieren, der die Gleichung durch direkt an LaTeX geht:

.. role:: raw-latex(raw)
    :format: latex

Dann können Sie diese Rolle in Ihrem Text

verwenden
The area of a circle is :raw-latex:`$\pi r^2$`

Der FAQ-Eintrag erwähnt auch ein paar andere Möglichkeiten, dies zu tun, darunter einen Präprozessor Ansatz, der verwendet werden kann, die Mathematik in ein Bild zu machen, wenn HTML zu erzeugen.

Beachten Sie, dass Version 0.8 von docutils (die reStructuredText parst) Unterstützung für LaTeX Mathe hat. Siehe http://article.gmane.org/gmane.text.docutils.user/ 6255 für viele Beispiele. Die Auswahlmöglichkeiten für die "--math-Ausgang" Option sind:. MathML, HTML, Mathjax und LaTeX

Pandoc des Abschlags Erweiterung ermöglicht inline oder Anzeige LaTeX Mathematik; Sie setzen es nur zwischen (unmittelbar angrenzenden) Dollarzeichen wie folgt: $ \ sqrt {-1} $ 's und es wird so behandelt, als man erwarten würde. Ich benutze diese Funktion nutzt die ganze Zeit, und glaube nicht, es überhaupt nicht praktikabel ist. Finden Sie im Handbuch http://johnmacfarlane.net/pandoc/README.html#math

Sobald der Abschlag analysiert wird, pandoc HTML schreiben kann, LaTeX, ReST, RTF, DocBook, ODT, Man-Pages etc., etc. Wenn ein LaTeX Mathe Kontext nicht Phantasie LaTeX-Pakete beinhaltet, kann es sogar die Mathematik in MathML analysiert , so macht es sofort in HTML oder RTF. (Es liefert eine Reihe von Optionen für die in nicht-LaTeX-Dokumenten mit LaTeX Mathematik zu tun.)

Pandoc parst auch ReST (und HTML, und nicht allzu extravagant LaTeX). Ich hatte so eine Lösung zu geben, die den Rest Leser gehofft, aber es scheint für den Umgang mit Mathematik keine speziellen Maschinen zu haben; siehe die Diskussion der Ausgabe 249 http://code.google.com/ p / pandoc / Themen / detail? id = 249 ich wieder näher untersuchen, um zu sehen.

Ich glaube nicht, dass jemand ein pandoc Plugin für Gedit gekocht hat noch (es ist aufwendig Unterstützung in Emacs und in Textmate, ich weiß) - das wäre genial!

zu den vorherigen Antworten zu erweitern, das ist, wie ich Mathjax die Arbeit mit ReST und Docutils , ohne dass LaTeX:

  1. Verwenden Sie LaTeX-Stil Mathe in meinem ReST Quelle, wie zum Beispiel:

    The radar backscatter coefficient is $\sigma^0$.
    
  2. Fügen Sie diese irgendwo in der Datei (ich meine am Boden setzen):

    .. raw:: html
    
    <script type="text/x-mathjax-config">
    MathJax.Hub.Config({
    extensions: ["tex2jax.js"],
    jax: ["input/TeX", "output/HTML-CSS"],
    tex2jax: {
      inlineMath: [ ['$','$'], ["\\(","\\)"] ],
      displayMath: [ ['$$','$$'], ["\\[","\\]"] ],
      processEscapes: true
    },
    "HTML-CSS": { availableFonts: ["TeX"] }
    });
    </script>
    <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
    
  3. Convert to HTML:

    rst2html report.rst report.html
    
  4. Laden Sie den HTML-Code in einem modernen Browser. Das Mathjax Skript heruntergeladen und auf die HTML-Anwendung bei Betrachtung. Alles sieht gut aus für mich!

Vielen Dank an http: //www.thales.math.uqam .ca / ~ labbes / Sage / rst2sws / für die Hilfe!

UPDATE: Ich habe bemerkt, dass, während die Ausgabe von HTML in Firefox funktioniert, ist es eine lange Zeit in Anspruch nimmt für Mathjax in Chrome zu arbeiten, und dann gibt es einen Fehler. Ich reparierte sie durch die Skript Quelle in der letzten Zeile Wechsel von

src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"

src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML".

Ich glaube, der Grund dafür ist, während FireFox unterstützt MathML, Chrome (Webkit, wirklich) noch nicht (zumindest nicht vollständig, können Sie Ihre Browser-Unterstützung testen hier ).

Weil ich keine Notwendigkeit für MathML, nur TeX habe, verwende ich die entsprechende Mathjax Version und es lädt jetzt schnell in Chrome ohne Fehler. Außerdem wäre es viel schneller für Sie Mathe TeX-Stil als MathML-Stil zu geben.

Statt rst2html Verwendung rst2mathml.py .

Es erstreckt sich docutils mit einem Latex-Mathematik-Modus. Der Inhalt dieses Modus wird MathML konvertiert.

Ich würde vorschlagen, Notex : Es hat sich integriert rST Unterstützung LaTeX nur für Präsentations-Material und mathematische Gleichungen. Zum Beispiel in Notex wie

zunächst eine rST Substitution schreiben würde
.. |E=mc²| replace:: :math:`E = mc ^ 2`

und dann nur |E=mc²| verwenden, wo Sie es brauchen; Notex Anwendungen, um es etwas zu übersetzen, LaTeX, dass (ohne das Rohr Symbole wie E=mc² Blicke, die rST zeigen Substitutionen) und es in HTML mit Mathjax ähnlich gemacht wird.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top