Zeigen Sie beim Codieren die mathematische Formel in Emacs an

8

Ist es möglich, dass Emacs im Editor echte Formeln anzeigt, wenn sie in Latex oder ähnlich geschrieben sind? Ich frage, weil es viel besser lesbar wäre, wenn Sie codieren (sagen wir Python oder C ++) und die Kommentare echte Formeln anstelle von so etwas enthalten

// Calculate average for $\mu_1 = \frac{1}{n} ~ \sum_{1=i}^n ~ x_i$

Gibt es ein Plugin, das Latexcode in einem Kommentar zu einem Bild kompiliert und im Editor anzeigt?

Miguellissimo
quelle

Antworten:

3

Ja. Siehe pretty-symbolsPaket. Dies kann beispielsweise beim Codieren von Python oder einer anderen Sprache so aussehen:

Geben Sie hier die Bildbeschreibung ein

Mankoff
quelle
2

TeXfrag texfrag zeigt Sauerstoffformeln, die von\f[display formula\f]oder\f$embedded formula\f$als Bildererfasstwerden.

Die regulären Ausdrücke und auch die Funktionen zum Parsen der Formeln können angepasst werden.

TeXfrag arbeitet von:

  1. Kopieren der Formeln aus dem Quellcode-Puffer in einen (versteckten) LaTeX-Puffer
  2. dort Vorschau-Dokument ausführen und
  3. Verschieben der Überlagerungen zurück in den Quellcode-Puffer.

Die Kontextmenüs der previewArbeit für die Bilder im Quellcode-Puffer. Es gibt auch ein Menü im Nebenmodus, mit dem Sie die Bilder für den vollen Puffer oder nur die Bilder um den Punkt herum generieren können.

Beispiel: Der obere Puffer zeigt einen Abschnitt eines Sauerstoffkommentars in einer C-Datei mit überlagerten Bildern für die Gleichungsfragmente. Der untere Puffer zeigt denselben Abschnitt mit entfernten Überlagerungen.

Emacs-Screenshot mit gerenderten Formeln in Sauerstoffkommentaren

BEARBEITEN: Beachten Sie, dass TeXfragumbenannt wurde texfrag, um die Anforderungen von zu erfüllen melpa. texfragwurde überprüft und akzeptiert von melpa. Wenn Sie melpain der package-archivesInstallation können texfragüber package-install.

Tobias
quelle
1

Es scheint mir, dass ein tatsächliches Bild mehr Probleme bereiten würde, als es in c++-modeoder wert ist python-mode. Es könnte jedoch funktionieren org-mode, da es einen Mechanismus zum Speichern und Aktualisieren der Bilder gibt. Selbst dann ist das Scrollen umständlich, wenn das Bild eine große Höhe hat.

Sie können aber trotzdem Bits fontifizieren, wenn Sie möchten. Hier ist zum Beispiel mein Setup für Doxygen-Tags zum Sperren von Schriftarten in C ++:

(defface font-lock-doxygen-face
    '((nil (:foreground "SaddleBrown" :background "#f7f7f7")))
  "Special face to highlight doxygen tags such as <tt>...</tt>
and <code>...</code>."
  :group 'font-lock-highlighting-faces)

(font-lock-add-keywords
 'c++-mode
 '(("\\(<\\(?:code\\|tt\\)>\"?\\)\\([^<]*?\\)\\(\"?</\\(?:code\\|tt\\)>\\)"
    (0 (prog1 ()
         (let* ((expr (match-string-no-properties 2))
                (expr-len (length expr)))
           (if (eq 1 expr-len)
               (compose-region (match-beginning 0)
                               (match-end 0)
                               (aref expr 0))
             (compose-region (match-beginning 1)
                             (1+ (match-end 1))
                             (aref expr 0))
             (compose-region (1- (match-beginning 3))
                             (match-end 3)
                             (aref expr (1- expr-len)))))))
    (0 'font-lock-doxygen-face t))))

Es wird ersetzt <tt>foo</tt>und <code>bar</code>durch farbige Symbole.

abo-abo
quelle
0

Eine weitere zu berücksichtigende Option ist das latex-math-previewPaket. Es ermöglicht das Anzeigen von "echten Formeln im Editor" in einem separaten Puffer (oder das Speichern des Formelbilds in einer Datei). Rufen Sie einfach auf, latex-math-preview-expressionwährend sich der Punkt auf einem Ausdruck befindet.

dat
quelle