Afficher la formule mathématique dans emacs lors du codage

8

Est-il possible qu'emacs affiche de vraies formules dans l'éditeur si elles sont écrites en Latex ou similaire? Je demande parce que ce serait beaucoup plus lisible si vous codez (en disons python ou C ++) et que les commentaires contiennent de vraies formules au lieu de quelque chose comme ça

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

Existe-t-il un plugin qui compile le code Latex dans un commentaire à une image et l'affiche dans l'éditeur?

Miguellissimo
la source

Réponses:

3

Oui. Voir pretty-symbolspackage. Cela peut ressembler à ceci, par exemple, lors du codage de Python ou de tout autre langage:

entrez la description de l'image ici

mankoff
la source
2

TeXfrag texfrag montre des formules de doxygène embrassées par\f[display formula\f]ou en\f$embedded formula\f$tant qu'images.

Les expressions régulières ainsi que les fonctions d'analyse des formules peuvent être personnalisées.

TeXfrag fonctionne par:

  1. copier les formules du tampon de code source vers un tampon LaTeX (caché)
  2. en cours d'exécution aperçu-document- bas et
  3. déplacer les superpositions vers le tampon de code source.

Les menus contextuels de previewtravail pour les images dans le tampon de code source. Il existe également un menu en mode mineur qui vous permet de générer les images pour le tampon complet ou simplement les images autour du point.

Exemple: le tampon supérieur montre une section d'un commentaire doxygen dans un fichier c avec des images superposées pour les fragments d'équation, le tampon inférieur montre la même section avec les superpositions supprimées.

capture d'écran emacs avec des formules rendues dans les commentaires doxygen

EDIT: Notez qu'il TeXfraga été renommé texfragpour répondre aux exigences de melpa. texfraga été révisé et accepté par melpa. Si vous melpaen package-archivesavez, vous pouvez installer texfragvia package-install.

Tobias
la source
1

Il me semble qu'une image réelle serait plus problématique qu'elle ne vaut en c++-modeou python-mode. Il pourrait org-modecependant fonctionner, qui a un mécanisme pour stocker les images et les rafraîchir. Même alors, il est gênant de faire défiler si l'image a une grande hauteur.

Mais vous pouvez toujours faire des polices de caractères si vous le souhaitez. Par exemple, voici ma configuration pour les balises doxygen à verrouillage de police en 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))))

Il remplacera <tt>foo</tt>et <code>bar</code>avec des symboles colorés.

abo-abo
la source
0

Une autre option à considérer est le latex-math-previewpackage. Il permet de visualiser les "vraies formules dans l'éditeur" dans un tampon séparé (ou d'enregistrer l'image de la formule dans un fichier). Appelez simplement latex-math-preview-expressionlorsque le point est sur une expression.

dat
la source