2010-08-12 20 views
5

Estoy usando Emacs junto con AucTeX (ejecutando Ubuntu 10.04, si eso importa).Emacs/Auctex: habilitar/deshabilitar automáticamente el modo LaTeX-Math

¿Alguien sabe si hay una manera de habilitar automáticamente LaTeX-math-mode (modo menor de auctex) si el punto está en cualquier entorno de las matemáticas (es decir, en un $...$, un $$...$$, begin{equation}...\end{equation}, y así sucesivamente) ?

Supongo que hay una respuesta relativamente fácil, ya que el resaltado de sintaxis usa el mismo criterio para colorear cosas de matemáticas, pero no pude encontrar nada.

Respuesta

4

Si la respuesta de andre-r no le satisface, aquí hay un código que configura ` para auto insertarse en modo texto y actuar como un prefijo de modo matemático en modo matemático. LaTeX-math-mode debe ser apagado.

(defun LaTeX-maybe-math() 
    "If in math mode, act as a prefix key for `LaTeX-math-keymap'. 
Otherwise act as `self-insert-command'." 
    (interactive) 
    (if (texmathp) 
     (let* ((events (let ((overriding-local-map LaTeX-math-keymap)) 
         (read-key-sequence "math: "))) 
      (binding (lookup-key LaTeX-math-keymap events))) 
     (call-interactively binding)) 
    (call-interactively 'self-insert-command))) 
(define-key LaTeX-mode-map "`" 'LaTeX-maybe-math) 

Las siguientes mejoras se dejan como ejercicios:

  • lo convierten en un modo menor.

  • Haz que sea más robusto hacia entradas inesperadas (solo he probado el funcionamiento básico).

  • Muestra un mensaje de error mejor si el usuario presiona una secuencia de tecla independiente.

  • Muestra ayuda si el usuario presiona C-h o f1.

2

LaTeX-math-mode es "un modo especial menor para ingresar texto con muchos símbolos matemáticos." (Para aquellos que no saben cómo, presionas, por ejemplo, `A y get \ forall.) Así que supongo que no hace daño dejarlo activado, también si no estás ingresando matemáticas.

La página de información, por lo tanto sugiere:

(add-hook 'LaTeX-mode-hook 'LaTeX-math-mode) 

mi humilde opinión, el único inconveniente sería que hay que pulsar el prefijo dos veces: `` para obtener `, al menos, que trabaja con el prefijo estándar` personalizada en LaTeX-math-abbrev-prefix .

Cuestiones relacionadas