Mostrar fórmula matemática en emacs al codificar

8

¿Es posible que emacs muestre fórmulas reales en el editor si están escritas en Latex o de forma similar? Pregunto porque sería mucho más legible si está codificando (en digamos python o C ++) y los comentarios contienen fórmulas reales en lugar de algo como esto

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

¿Hay un complemento que compila el código Latex en un comentario a una imagen y lo muestra en el editor?

Miguellissimo
fuente

Respuestas:

3

Si. Ver pretty-symbolspaquete Puede verse así, por ejemplo, al codificar Python o cualquier otro lenguaje:

ingrese la descripción de la imagen aquí

mankoff
fuente
2

TeXfrag texfrag muestra fórmulas de doxygen incorporadas por\f[display formula\f]o\f$embedded formula\f$como imágenes.

Las expresiones regulares y también las funciones para analizar las fórmulas se pueden personalizar.

TeXfrag funciona por:

  1. copiando las fórmulas del búfer de código fuente a un búfer LaTeX (oculto)
  2. ejecutando vista previa de documento allí y
  3. mover las superposiciones de nuevo al búfer del código fuente.

Los menús contextuales de previewtrabajo para las imágenes en el búfer de código fuente. También hay un menú de modo menor que le permite generar las imágenes para el búfer completo o solo las imágenes alrededor del punto.

Ejemplo: el búfer superior muestra una sección de un comentario doxygen en un archivo c con imágenes superpuestas para los fragmentos de ecuación, el búfer inferior muestra la misma sección con las superposiciones eliminadas.

Captura de pantalla de emacs con fórmulas renderizadas en comentarios de doxygen

EDITAR: TeXfragtenga en cuenta que se ha cambiado el nombre a texfragpara cumplir con los requisitos de melpa. texfragha sido revisado y aceptado por melpa. Si tiene melpaen package-archivespuede instalar a texfragtravés de package-install.

Tobias
fuente
1

Me parece que una imagen real sería más problemática de lo que vale c++-modeo python-mode. Sin org-modeembargo, podría funcionar , que tiene un mecanismo para almacenar las imágenes y actualizarlas. Incluso entonces, es incómodo desplazarse si la imagen tiene una gran altura.

Pero aún puede fontificar bits si lo desea. Por ejemplo, aquí está mi configuración para las etiquetas doxygen de bloqueo de fuente 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))))

Se reemplazará <tt>foo</tt>y <code>bar</code>con símbolos de colores.

abo-abo
fuente
0

Otra opción a considerar es el latex-math-previewpaquete. Le permite a uno ver "fórmulas reales en el editor" en un búfer separado (o guardar la imagen de la fórmula en un archivo). Simplemente invoque latex-math-preview-expressionmientras el punto está en una expresión.

dat
fuente