# HG changeset patch # User Richard M. Stallman # Date 889425385 0 # Node ID dd5c2baa6674aa3470eb08d0be30c7dbe09d1a06 # Parent 116fb3c0373719ec904be3ed938051b8b3893730 (latex-mode): Set fill-nobreak-predicate. (slitex-mode): Set fill-nobreak-predicate, tex-face-alist, and imenu-create-index-function. (latex-fill-nobreak-predicate): New function. diff -r 116fb3c03737 -r dd5c2baa6674 lisp/textmodes/tex-mode.el --- a/lisp/textmodes/tex-mode.el Mon Mar 09 05:26:05 1998 +0000 +++ b/lisp/textmodes/tex-mode.el Mon Mar 09 06:36:25 1998 +0000 @@ -565,6 +565,8 @@ (setq imenu-create-index-function 'latex-imenu-create-index) (make-local-variable 'tex-face-alist) (setq tex-face-alist tex-latex-face-alist) + (make-local-variable 'fill-nobreak-predicate) + (setq fill-nobreak-predicate 'latex-fill-nobreak-predicate) (run-hooks 'text-mode-hook 'tex-mode-hook 'latex-mode-hook)) ;;;###autoload @@ -638,6 +640,12 @@ \\\\[a-z]*space[ \t]*$\\|\\\\[a-z]*skip[ \t]*$\\|\ \\\\newpage[ \t]*$\\|\\\\[a-z]*page[a-z]*[ \t]*$\\|\\\\footnote[ \t]*$\\|\ \\\\marginpar[ \t]*$\\|\\\\parbox[ \t]*$\\|\\\\caption[ \t]*$") + (make-local-variable 'imenu-create-index-function) + (setq imenu-create-index-function 'latex-imenu-create-index) + (make-local-variable 'tex-face-alist) + (setq tex-face-alist tex-latex-face-alist) + (make-local-variable 'fill-nobreak-predicate) + (setq fill-nobreak-predicate 'latex-fill-nobreak-predicate) (run-hooks 'text-mode-hook 'tex-mode-hook 'latex-mode-hook 'slitex-mode-hook)) @@ -879,6 +887,21 @@ (save-excursion (insert ?}))) +;; This function is used as the value of fill-nobreak-predicate +;; in LaTeX mode. Its job is to prevent line-breaking inside +;; of a \verb construct. +(defun latex-fill-nobreak-predicate () + (let ((opoint (point)) + inside) + (save-excursion + (save-restriction + (beginning-of-line) + (narrow-to-region (point) opoint) + (while (re-search-forward "\\\\verb\\(.\\)" nil t) + (unless (re-search-forward (regexp-quote (match-string 1)) nil t) + (setq inside t))))) + inside)) + ;;; Like tex-insert-braces, but for LaTeX. (define-skeleton tex-latex-block "Create a matching pair of lines \\begin[OPT]{NAME} and \\end{NAME} at point.