
¿Existe un acceso directo en AUCTEX/emacs que genere estos paréntesis de escape?
abreviatura de "entorno matemático en línea"
\( <cursor here> \)
Eso coloca el cursor en medio de este "miniambiente".
para poder escribir Matemáticas en medio de una oración.
He probado las hojas de trucos y las macros pero no consigo que deje el cursor en el medio.
Se aceptan alternativas/consejos (soy un estudiante universitario que intenta aprender AUCTEX en mi tiempo libre)
Respuesta1
AUCTeX le ofrece un par de opciones listas para usar, sin necesidad de definir una función por su cuenta. Ambos se describen en el manual y no son mutuamente excluyentes, puedes activar ambos y usarlos al mismo tiempo.
Primero:TeX-electric-math
(add-hook 'plain-TeX-mode-hook
(lambda () (set (make-local-variable 'TeX-electric-math)
(cons "$" "$"))))
(add-hook 'LaTeX-mode-hook
(lambda () (set (make-local-variable 'TeX-electric-math)
(cons "\\(" "\\)"))))
Con este código, puedes simplemente presionar $y \(...\)
entrar.LaTeX-mode
Segundo:LaTeX-electric-left-right-brace
(setq LaTeX-electric-left-right-brace t)
Con esto, puedes escribir \(
y el cierre \)
se agregará después del punto.
Respuesta2
Para todas mis necesidades de emparejamiento utilizo el gran paquete.paréntesis inteligente. Para incluir los pares que requieres, haz lo siguiente:
Primero, instálelo (usando Melpa o lo que sea) smartparenthesis
y luego cárguelo. Lo uso usepackage
para eso, pero la forma sugerida por el autor del paquete es simplemente ejecutar esto:
(require 'smartparens-config)
El código importante viene ahora:
(sp-with-modes '(tex-mode plain-tex-mode latex-mode)
(sp-local-pair "\\\(" "\\\)"))
Tenga en cuenta que primero escapa la inicial \
, por lo tanto:, \\
y luego el paréntesis de apertura, por lo tanto:, \(
lo que da como resultado la secuencia completa \\\(
:. Lo mismo ocurre con los de cierre.
Puedes agregar todos tus amados LaTeX
pares. Esta es mi propia configuración completa (copiada parcialmente de la de otra persona):
(sp-with-modes '(tex-mode
plain-tex-mode
latex-mode
)
;; math modes, yay. The :actions are provided automatically if
; these pairs do not have global definition.
(sp-local-pair "$" "$")
(sp-local-pair "\[" "\]")
(sp-local-pair "\{" "\}")
(sp-local-pair "‘" "’")
(sp-local-pair "“" "”")
(sp-local-pair "\\begin" "\\end")
;;; tex-mode latex-mode
(sp-local-tag "i" "\"<" "\">")
(sp-local-pair "\\[" nil :unless '(sp-point-before-word-p))
(sp-local-pair "$" nil :unless '(sp-point-before-word-p))
)
Respuesta3
Usando los excelentes ejemplos de @Phil Hirschhorn, hice una función que inserta "paréntesis de escape" cuando presionas Alt-m
agrégalo a tu
.emacs
M-m
Activar
(defun escape-parentheses ()
"we insert escape parenthesis for math-mode
and move the cursor to the center"
(interactive)
(progn
(insert "\\( \\)")
(backward-char 4)
)
)
(global-set-key "\em" 'escape-parentheses)