
Existe um atalho no AUCTEX/emacs que gera estes parênteses de escape:
abreviação de "ambiente matemático inline"
\( <cursor here> \)
Isso coloca o cursor no meio dessa "coisa de miniambiente"
para que eu possa escrever matemática no meio de uma frase.
Eu tentei as folhas de dicas e as macros, mas não consigo deixar o cursor no meio.
Alternativas/dicas bem-vindas (sou um estudante de graduação tentando aprender AUCTEX no meu tempo livre)
Responder1
AUCTeX oferece algumas opções prontas para uso, sem definir uma função por conta própria. Ambos estão descritos no manual e não são mutuamente exclusivos, você pode ativar ambos e usá-los ao mesmo tempo
Primeiro: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 "\\(" "\\)"))))
Com este código, você pode simplesmente pressionar $e \(...\)
entrarLaTeX-mode
Segundo:LaTeX-electric-left-right-brace
(setq LaTeX-electric-left-right-brace t)
Com isso, você pode digitar \(
e o fechamento \)
será adicionado após o ponto.
Responder2
Para todas as minhas necessidades de emparelhamento, uso o ótimo pacoteparêntese inteligente. Para incluir os pares necessários, faça o seguinte:
Primeiro, instale (usando Melpa ou qualquer outro) smartparenthesis
e depois carregue-o. Eu uso usepackage
para isso, mas a forma sugerida pelo autor do pacote é simplesmente executar isto:
(require 'smartparens-config)
O código importante vem agora:
(sp-with-modes '(tex-mode plain-tex-mode latex-mode)
(sp-local-pair "\\\(" "\\\)"))
Observe que você primeiro escapa do inicial \
, assim: \\
, e depois do parêntese de abertura, assim: \(
, que resulta na sequência completa: \\\(
. O mesmo acontece com os de encerramento.
Você pode adicionar todos os seus LaTeX
pares preferidos. Esta é minha própria configuração completa (parcialmente copiada de outra pessoa):
(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))
)
Responder3
Usando os excelentes exemplos de @Phil Hirschhorn, criei uma função que insere "parênteses de escape" quando você pressiona Alt-m
adicione-o ao seu
.emacs
M-m
ativar
(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)