Mostra la formula matematica in emacs durante la codifica


8

È possibile che emacs mostri delle vere formule nell'editor se sono scritte in Latex o simili? Sto chiedendo perché sarebbe molto più leggibile se stai programmando (in diciamo python o C ++) e i commenti contengono formule reali invece di qualcosa di simile

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

Esiste un plugin che compila il codice Latex in un commento a un'immagine e lo visualizza nell'editor?

Risposte:


3

Sì. Vedi il pretty-symbolspacchetto. Può apparire così, ad esempio, quando si codifica Python o qualsiasi altra lingua:

inserisci qui la descrizione dell'immagine


2

TeXfrag texfrag mostra formule di doxygen abbracciate da\f[display formula\f]o\f$embedded formula\f$come immagini.

Le espressioni regolari e anche le funzioni per l'analisi delle formule possono essere personalizzate.

TeXfrag funziona da:

  1. copia delle formule dal buffer del codice sorgente in un buffer LaTeX (nascosto)
  2. eseguendo il documento di anteprima lì e
  3. spostare gli overlay nel buffer del codice sorgente.

I menu di scelta rapida previewfunzionano per le immagini nel buffer del codice sorgente. C'è anche un menu in modalità minore che consente di generare le immagini per l'intero buffer o solo le immagini intorno al punto.

Esempio: il buffer superiore mostra una sezione di un commento doxygen in un file c con immagini sovrapposte per i frammenti di equazione, il buffer inferiore mostra la stessa sezione con gli overlay rimossi.

screenshot di emacs con formule renderizzate nei commenti doxygen

EDIT: Nota che TeXfragè stato rinominato texfragper soddisfare i requisiti di melpa. texfragè stato rivisto e accettato da melpa. Se hai melpain package-archivesè possibile installare texfragtramite package-install.


1

Mi sembra che un'immagine reale sarebbe più un problema di quanto valga in c++-modeo python-mode. Potrebbe funzionare org-modeperò, che ha un meccanismo per archiviare le immagini e aggiornarle. Anche allora, è imbarazzante per lo scorrimento se l'immagine ha una grande altezza.

Ma puoi ancora fontificare i bit se vuoi. Ad esempio, ecco la mia configurazione per i tag doxygen con blocco dei caratteri 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))))

Sostituirà <tt>foo</tt>e <code>bar</code>con simboli colorati.


0

Un'altra opzione da considerare è il latex-math-previewpacchetto. Permette di visualizzare "formule reali nell'editor" in un buffer separato (o di salvare l'immagine della formula in un file). Invoca semplicemente latex-math-preview-expressionmentre il punto è su un'espressione.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.