Si está utilizando AUCTeX (debería ser), entonces es posible que desee comprobar LaTeX-indent-environment-list
. Agregar un entorno a esta variable lo hará de modo que (entre otras cosas) M-q no rellene el párrafo. Lamentablemente, no parece funcionar para el modo de autocompletar. El siguiente código en gran parte no probado agregado al LaTeX-mode-hook
puede hacer lo que desee.
(setq auto-fill-function
(lambda()
(unless (> (save-excursion (or (search-backward "%%% BEGIN NO FILL" (point-min) t) 0))
(save-excursion (or (search-backward "%%% END NO FILL" (point-min) t) 0)))
(do-auto-fill))))
Es muy estúpido e ineficiente, pero parece ser lo suficientemente rápido en mi máquina. No permite anidar, y requiere que marque manualmente todas las secciones que no desea rellenar. Lo que estoy pensando en agregar a mis .emacs (hasta que leí tu pregunta no me di cuenta de cuánto me molestó esto) está por debajo de las claves del entorno actual, por lo que no hay necesidad de un marcado especial (aunque solo mira el entorno más interno (no estoy seguro de cuánto problema causará en la práctica)). La combinación de los dos se deja como un ejercicio para el lector interesado.
;; You can use the following to unset the variables and play around with them
;; (makunbound 'auto-fill-ignore-environments)
;; (makunbound 'auto-fill-ignore-environments-regexp)
(defcustom auto-fill-ignore-environments
(mapcar 'car LaTeX-indent-environment-list)
"List of environments for which `auto-fill-mode' should be
disabled. Used to generate `auto-fill-ignore-environments-regexp'."
:type '(sexp)
)
(defcustom auto-fill-ignore-environments-regexp
(regexp-opt auto-fill-ignore-environments)
"Regexp matching LaTeX environments for which `auto-fill-mode'
should be disabled. If not set, automatically generated from
`auto-fill-ignore-environments'"
:type '(string)
:set-after '(auto-fill-ignore-environments)
)
(add-hook 'LaTeX-mode-hook
(lambda()
(setq auto-fill-function
(lambda()
(unless (string-match auto-fill-ignore-environments-regexp
(LaTeX-current-environment))
(do-auto-fill))))))
Nunca he usado defcustom antes, así que estoy seguro de que esa parte podría mejorarse bastante.
Muy buena pregunta! Tengo curiosidad por saber si hay una solución yo mismo. – bnbeckwith
Creo que es posible que tengamos que escribirlo nosotros mismos ... – vy32