Subject: 11.90.2.2017-07-25; Wrapping content in an equation with LaTeX-environment results in invalid LaTeX

From: Thibaut Verron <[email-masked]>
Date: Thu, 7 Sep 2017 15:20:04 +0200

Hello,

If you use `C-c C-e` (`LaTeX-environment`) to insert an "equation"
environment, the result is

\begin{equation}
\label{eq:1}
[point here]
\end{equation}

This is valid LaTeX assuming that the user actually types a formula in.

If now you insert the equation first, select it, and use `C-c C-e` to
wrap it in an "equation" environment, the result is

\begin{equation}
2+2=4\label{eq:2}
[point here]
\end{equation}

This raises a compilation error: an equation cannot contain an empty line.
And with the label at the end of the formula, it isn't convenient in
case the formula wasn't complete either.

In my opinion, the expected output would be either

\begin{equation}
\label{eq:2}
2+2=4
\end{equation}
[point here]

or

\begin{equation}
\label{eq:2}
2+2=4[point here]
\end{equation}

depending on whether you expect the user to wrap complete formulae or
not. I personally almost always wrap complete formulae, so I'd choose
option 1.

In the expected output, I also moved the `\label{...}` to the beginning
of the environment instead of the end. It is the recommended way of
proceeding, but I don't know if it makes any real difference for the
compiler. If anything, it would make equation labelling consistent with 
what
is produced with `C-c C-e` with the mark inactive.

The same thing happens with similar environments. For unlabeled
environments, the output is similar to option 2 above, which seems to
hint that the newline appears when inserting the `\label`.

Is there a good reason that I missed for the current behavior?

Thanks,

Thibaut

Emacs : GNU Emacs 25.1.4 (x86_64-pc-linux-gnu, GTK+ Version 2.24.30)
of 2016-11-08
Package: 11.90.2.2017-07-25

current state:
==============
(setq
AUCTeX-date "2017-07-25"
window-system 'x
LaTeX-version "2e"
TeX-style-path '("~/.emacs.d/auctex" 
"/home/controleapo/.emacs.d/elpa/auctex-11.91.0/style"
"/home/controleapo/.emacs.d/auctex/auto" 
"/home/controleapo/.emacs.d/auctex/style"
"auto" "style")
TeX-auto-save t
TeX-parse-self t
TeX-master nil
TeX-command-list '(("LatexMk" "latexmk %(-PDF)%S%(mode) 
%(file-line-error) %(extraopts) %t"
TeX-run-latexmk nil (plain-tex-mode latex-mode doctex-mode) :help "Run 
LatexMk")
("TeX" "%(PDF)%(tex) %(file-line-error) %(extraopts) 
%`%S%(PDFout)%(mode)%' %t"
TeX-run-TeX nil (plain-tex-mode ams-tex-mode texinfo-mode) :help
"Run plain TeX")
("LaTeX" "%`%l%(mode)%' %t" TeX-run-TeX nil (latex-mode doctex-mode) :help
"Run LaTeX")
("Makeinfo" "makeinfo %(extraopts) %t" TeX-run-compile nil 
(texinfo-mode) :help
"Run Makeinfo with Info output")
("Makeinfo HTML" "makeinfo %(extraopts) --html %t" TeX-run-compile nil
(texinfo-mode) :help "Run Makeinfo with HTML output")
("AmSTeX" "amstex %(PDFout) %(extraopts) %`%S%(mode)%' %t" TeX-run-TeX nil
(ams-tex-mode) :help "Run AMSTeX")
("ConTeXt" "%(cntxcom) --once --texutil %(extraopts) %(execopts)%t" 
TeX-run-TeX
nil (context-mode) :help "Run ConTeXt once")
("ConTeXt Full" "%(cntxcom) %(extraopts) %(execopts)%t" TeX-run-TeX nil
(context-mode) :help "Run ConTeXt until completion")
("BibTeX" "bibtex %s" TeX-run-BibTeX nil t :help "Run BibTeX")
("Biber" "biber %s" TeX-run-Biber nil t :help "Run Biber")
("View" "%V" TeX-run-discard-or-function t t :help "Run Viewer")
("Print" "%p" TeX-run-command t t :help "Print the file")
("Queue" "%q" TeX-run-background nil t :help "View the printer queue" 
:visible
TeX-queue-command)
("File" "%(o?)dvips %d -o %f " TeX-run-dvips t t :help
"Generate PostScript file")
("Dvips" "%(o?)dvips %d -o %f " TeX-run-dvips nil t :help
"Convert DVI file to PostScript")
("Dvipdfmx" "dvipdfmx %d" TeX-run-dvipdfmx nil t :help
"Convert DVI file to PDF with dvipdfmx")
("Ps2pdf" "ps2pdf %f" TeX-run-ps2pdf nil t :help
"Convert PostScript file to PDF")
("Glossaries" "makeglossaries %s" TeX-run-command nil t :help
"Run makeglossaries to create glossary file")
("Index" "makeindex %s" TeX-run-index nil t :help
"Run makeindex to create index file")
("upMendex" "upmendex %s" TeX-run-index t t :help
"Run upmendex to create index file")
("Xindy" "texindy %s" TeX-run-command nil t :help
"Run xindy to create index file")
("Check" "lacheck %s" TeX-run-compile nil (latex-mode) :help
"Check LaTeX file for correctness")
("ChkTeX" "chktex -v6 %s" TeX-run-compile nil (latex-mode) :help
"Check LaTeX file for common mistakes")
("Spell" "(TeX-ispell-document \"\")" TeX-run-function nil t :help
"Spell-check the document")
("Clean" "TeX-clean" TeX-run-function nil t :help
"Delete generated intermediate files")
("Clean All" "(TeX-clean t)" TeX-run-function nil t :help
"Delete generated intermediate and output files")
("Other" "" TeX-run-command t t :help "Run an arbitrary command"))
)