2014-11-15 LaTeX-narrow-to-environment

Hitting C-x n C-h gives a short overview of what narrowing commands are there available in Emacs. Unfortunately, narrow-to-defun does not (as I hoped) narrow to the current environment in LaTeX. This is Emacs, however, so why not fix this problem? Here’s a LaTeX-narrow-to-environment function I wrote some time ago.

(defun LaTeX-narrow-to-environment (&optional count)
  "Narrow buffer to current LaTeX environment (or COUNT
environments around point)"
  (interactive "p")
  (LaTeX-mark-environment count)
  (narrow-to-region (save-excursion
		      (goto-char (region-beginning))
		      (beginning-of-line)
		      (point))
		    (region-end))
  (deactivate-mark))

I decided that C-x n e is a natural binding:

(eval-after-load 'latex
  '(define-key LaTeX-mode-map (kbd "C-x n e")
     'LaTeX-narrow-to-environment))

(The eval-after-load form is needed in my init.el, because LaTeX-mode-map is not actually defined until loading latex.el.)

As can be seen, it is basically a wrapper around LaTeX-mark-environment – it even accepts the prefix argument of how many environments up the syntax tree it should go.

Happy TeXing!

CategoryEnglish, CategoryBlog, CategoryEmacs, CategoryTeX