]> git.eshelyaron.com Git - emacs.git/commitdiff
* lisp/textmodes/tex-mode.el (latex-noindent-commands): New custom var
authorStefan Monnier <monnier@iro.umontreal.ca>
Mon, 24 Jun 2019 23:21:07 +0000 (19:21 -0400)
committerStefan Monnier <monnier@iro.umontreal.ca>
Mon, 24 Jun 2019 23:21:07 +0000 (19:21 -0400)
(latex-find-indent): Obey it.
(latex-noindent-environments): Make it into a defcustom as well.

etc/NEWS
lisp/textmodes/tex-mode.el
test/manual/indent/latex-mode.tex

index 74a8bbe8fa1e9174329ee220a5daf3e7c6b1e2d0..0f764cd9986286743b4bd18bfcd4025404ef501b 100644 (file)
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -475,6 +475,9 @@ current and the previous or the next line, as before.
 \f
 * Changes in Specialized Modes and Packages in Emacs 27.1
 
+** tex-mode
+*** 'latex-noindent-commands' stops indenting arguments of \emph and friends
+
 ** byte compiler
 *** byte-compile-dynamic is now obsolete
 This is because on the one hand it suffers from various misbehaviors in corner
index 9c91d27b944ca5a99f7231ca6ba5bf36c9ff3329..4511354a3d1a071f02b096d2f8887f02cbef2175 100644 (file)
@@ -2803,9 +2803,19 @@ Runs the shell command defined by `tex-show-queue-command'."
 (defvar tex-indent-basic 2)
 (defvar tex-indent-item tex-indent-basic)
 (defvar tex-indent-item-re "\\\\\\(bib\\)?item\\>")
-(defvar latex-noindent-environments '("document"))
-(put 'latex-noindent-environments 'safe-local-variable
-     (lambda (x) (null (delq t (mapcar #'stringp x)))))
+(defcustom latex-noindent-environments '("document")
+  "Environments whose content is not indented by `tex-indent-basic'."
+  :type '(repeat string)
+  :safe (lambda (x) (lambda (x) (memq nil (mapcar #'stringp x))))
+  :group 'tex-file
+  :version "27.1")
+
+(defcustom latex-noindent-commands '("emph" "footnote")
+  "Commands for which `tex-indent-basic' should not be used."
+  :type '(repeat string)
+  :safe (lambda (x) (memq nil (mapcar #'stringp x)))
+  :group 'tex-file
+  :version "27.1")
 
 (defvar tex-latex-indent-syntax-table
   (let ((st (make-syntax-table tex-mode-syntax-table)))
@@ -2912,9 +2922,17 @@ There might be text before point."
               (current-column)
             ;; We're the first element after a hanging brace.
             (goto-char up-list-pos)
-            (+ (if (and (looking-at "\\\\begin *{\\([^\n}]+\\)")
+            (+ (if (if (eq (char-after) ?\{)
+                        (save-excursion
+                          (skip-chars-backward " \t")
+                          (let ((end (point)))
+                            (skip-chars-backward "a-zA-Z")
+                            (and (eq (char-before) ?\\)
+                                 (member (buffer-substring (point) end)
+                                         latex-noindent-commands))))
+                      (and (looking-at "\\\\begin *{\\([^\n}]+\\)")
                         (member (match-string 1)
-                                latex-noindent-environments))
+                                latex-noindent-environments)))
                    0 tex-indent-basic)
                indent (latex-find-indent 'virtual))))
          ;; We're now at the "beginning" of a line.
index 55c8e7033bdd871148c9705dffc82d3728a735cf..d314b98b4835309dd5d8ffff6ac41f736e05b163 100644 (file)
@@ -8,4 +8,8 @@ To fix this, remove the \url{sn9c102.ko} from where it appears in
 \url{/lib/modules/$(uname -r)},  %bug#11953.
 and install the appropriate \url{gspca-modules} package.
 
+Footnotes and emphasis shouldn't be indented \footnote{as can be seen here,
+for example}, \emph{or there
+as well}.
+
 \end{document}