Se si utilizza AUCTeX (si dovrebbe essere), si consiglia di controllare LaTeX-indent-environment-list
. L'aggiunta di un ambiente a questa variabile farà sì che (tra le altre cose) M-q non riempia nuovamente il paragrafo. Sfortunatamente non sembra funzionare per la modalità auto-fill. Il seguente codice in gran parte non testato aggiunto a LaTeX-mode-hook
potrebbe fare ciò che vuoi.
(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))))
È molto stupido e inefficiente, ma sembra essere abbastanza veloce sulla mia macchina. Non consente la nidificazione e richiede di contrassegnare manualmente tutte le sezioni che non si desidera riempire. Quello che sto pensando di aggiungere al mio .emacs (fino a quando ho letto la tua domanda non mi sono reso conto di quanto questo mi abbia infastidito) è al di sotto delle chiavi fuori dall'ambiente corrente, quindi non c'è bisogno di markup speciali (anche se guarda solo l'ambiente più interno (non sono sicuro di quale problema causerà in pratica)). La combinazione dei due è lasciata come esercizio al lettore interessato.
;; 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))))))
Non ho mai usato defcustom prima quindi sono sicuro che la parte potrebbe essere migliorata un bel po '.
fonte
2010-01-07 21:22:42
grande domanda! Sono curioso di sapere se c'è una soluzione da solo. – bnbeckwith
Penso che potremmo aver bisogno di scriverlo da soli ... – vy32