Subject: bug#19039: 24.3; latex-mode paragraph-separate of \pagebreak[0]

From: Kevin Ryde <[email-masked]>
Date: Thu, 13 Nov 2014 22:40:33 +1100

In latex-mode it'd be good if \pagebreak[0] was a paragraph separator,
as for example

Blah blah         \ pagagraph
blah blah.        /
\pagebreak[0]
\begin{align}
...

An unconditional \pagebreak is already a separator, but not when an
optional arg [0] or [3] etc.

Perhaps digits and brackets like below.  Only some of the "space" "skip"
and "page" commands matched take optional args like this, but allowing
for all shouldn't hurt.

2014-11-12  Kevin Ryde  <[email-masked]>

	* textmodes/tex-mode.el (latex-mode): In paragraph-separate allow
	optional argument [0] etc for \pagebreak[0]

--- tex-mode.el.orig	2014-05-06 10:44:16.000000000 +1000
+++ tex-mode.el	2014-11-13 07:41:23.523888672 +1100
@@ -1116,6 +1116,7 @@
   ;; A line containing just $$ is treated as a paragraph separator.
   ;; A line starting with $$ starts a paragraph,
   ;; but does not separate paragraphs if it has more stuff on it.
+  ;; For \pagebreak allow latex optional arg like \pagebreak[2]
   (setq paragraph-start
 	(concat "[ \t]*\\(\\$\\$\\|"
 		"\\\\[][]\\|"
@@ -1137,7 +1138,7 @@
 					      "noindent" "newpage" "footnote"
 					      "marginpar" "parbox" "caption"))
 		"\\|\\$\\$\\|[a-z]*\\(space\\|skip\\|page[a-z]*\\)"
-		"\\>\\)[ \t]*\\($\\|%\\)\\)"))
+		"\\>\\)[][0-9 \t]*\\($\\|%\\)\\)"))
   (set (make-local-variable 'imenu-create-index-function)
        'latex-imenu-create-index)
   (set (make-local-variable 'tex-face-alist) tex-latex-face-alist)

In GNU Emacs 24.3.1 (i586-pc-linux-gnu, X toolkit, Xaw3d scroll bars)
 of 2014-10-17 on x86-csail-01, modified by Debian
Windowing system distributor `The X.Org Foundation', version 11.0.11601000
Configured using:
 `configure '--build' 'i586-linux-gnu' '--build' 'i586-linux-gnu'
 '--prefix=/usr' '--sharedstatedir=/var/lib' '--libexecdir=/usr/lib'
 '--localstatedir=/var/lib' '--infodir=/usr/share/info'
 '--mandir=/usr/share/man' '--with-pop=yes'
 '--enable-locallisppath=/etc/emacs24:/etc/emacs:/usr/local/share/emacs/24.3/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/24.3/site-lisp:/usr/share/emacs/site-lisp'
 '--with-crt-dir=/usr/lib/i386-linux-gnu' '--with-x=yes'
 '--with-x-toolkit=lucid' '--with-toolkit-scroll-bars' '--without-gconf'
 '--without-gsettings' 'build_alias=i586-linux-gnu' 'CFLAGS=-g -O2
 -fstack-protector-strong -Wformat -Werror=format-security -Wall'
 'LDFLAGS=-Wl,-z,relro' 'CPPFLAGS=-D_FORTIFY_SOURCE=2''

Important settings:
  value of $LANG: en_AU.utf8
  locale-coding-system: utf-8-unix
  default enable-multibyte-characters: t