Subject: bug#25309: 11.89.8; multi-level script fontification stacks incorrectly

From: Gennady Uraltsev <[email-masked]>
Date: Sat, 31 Dec 2016 17:12:51 +0300

Hello,

I have discovered multi-level fontification of sub and superscripts. It
is a great idea. I used to use magic-latex-buffer previously to
accomplish the same.

However it seems slightly broken. While the scaling of the text defined
in the face stacks correctly the displacement doesn't!

It gets calculated from the base line. This means that if I write
$x_{y_{z}}$ with multi-line mode then $z$ is not any lower than y.

Similarly in the case $x^{y^{z}}$ z is not higher than y.

In both cases they are only scaled smaller, but this is only because the
height is controlled by a different parameter in a different way.

Another moment when this incorrect behavior is evident is if one writes
$x^y_z$. In this case z is MUCH higher than y because it is actually
displaced w.r.t the level of x and not y. Similarly for $x_y^z$.

Thanks for your time and patience! I really appreciate the fantastic
piece of software you wrote. I have tried many LaTeX editors and AucTeX
is by far the best way to write.

I am attaching a minimal .tex example file and a screenshot.
------------------------------------------------------------------------

Emacs  : GNU Emacs 25.1.1 (x86_64-suse-linux-gnu, GTK+ Version 3.20.9)
 of 2016-12-22
Package: 11.89.8

current state:
==============
(setq
 AUCTeX-date "2016-12-22"
 window-system 'x
 LaTeX-version "2e"
 TeX-style-path '("~/.emacs.d/auctex"
"/home/guraltsev/.emacs.d/elpa/auctex-11.89.8/style"
		  "/home/guraltsev/.emacs.d/auctex/auto"
"/home/guraltsev/.emacs.d/auctex/style" "auto" "style")
 TeX-auto-save nil
 TeX-parse-self nil
 TeX-master t
 TeX-command-list '(("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")
		    ("Index" "makeindex %s" TeX-run-index nil t :help "Run makeindex
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"))
 )