GNU bug report logs - #42209
12.2.4; Text propogated wrong in TeX-fold-mode

Previous Next

Package: auctex;

Reported by: <gennady.uraltsev <at> gmail.com>

Date: Sun, 5 Jul 2020 00:40:02 UTC

Severity: normal

Tags: wontfix

Found in version 12.2.4

Done: Ikumi Keita <ikumi <at> ikumi.que.jp>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 42209 in the body.
You can then email your comments to 42209 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-auctex <at> gnu.org:
bug#42209; Package auctex. (Sun, 05 Jul 2020 00:40:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to <gennady.uraltsev <at> gmail.com>:
New bug report received and forwarded. Copy sent to bug-auctex <at> gnu.org. (Sun, 05 Jul 2020 00:40:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: <gennady.uraltsev <at> gmail.com>
To: <bug-auctex <at> gnu.org>
Subject: 12.2.4; Text propogated wrong in TeX-fold-mode
Date: Sat, 4 Jul 2020 20:39:26 -0400
[Message part 1 (text/plain, inline)]
Dear Everyone,

 

I have recently discovered TeX-fold-mode and tried to set it. Before I used
prettify-symbols-mode.

 

There seem to be a problem with propagating text properties when folding.
There seem to be two wrong behaviors (related or unrelated?). 

 

1.	When folding a macro that includes its text arguments when the
arguments are fontified the fontification gets propagated incorrectly. I
think it gets applied twice, that is wrong when the fontification is not
idempotent e.g. relative size specification
2.	In math mode (maybe not only) all macros (math and non-math) when
folded completely disregard fontification. This looks really bad if you have
a subscript of, say, a sum or an integral and there you have a macro. The
folded version is of the wrong size.

 

I illustrate with examples

 

Consider the following LaTeX file (attached as main.tex):

 

\documentclass{amsart}

\begin{document}

\title{Simple AMSart}

\author{Author McAuthorface}

 

\maketitle

 

\section{Section \textit{a} : a \LaTeX macro}

\begin{equation*}

  \int_{\alpha + \beta = \LaTeX + \dots }

\end{equation*}

\end{document}

 

With the  following configuration of auctex (a complete init.el is attached)

(setq TeX-parse-self t)

(require 'tex)

(add-hook 'LaTeX-mode-hook (lambda ()

                             (TeX-fold-mode 1)))

 

1.	The default fontification makes "Section :" slightly larger than
normal. This is correct. 

*	The macro \LaTeX gets folded to look like the surrounding text in
the title: CORRECT
*	The macro \textit{a} folds into an "a" as specified by
TeX-fold-macro-spec-list (value included below) but it gets rendered much
larger than the surrounding text
*	I believe because the "enlargement" gets applied twice, but I am not
sure. 

 

2.	Auctex makes the subscript of the integral in the equation small and
lowered.

*	After folding the Greek symbols and the other macros they appear to
be the same size as "normal" text so they do not inherit the surrounding
fontification. 

 

 

Thanks!

 

Gennady

 

 

Emacs  : GNU Emacs 26.3 (build 1, x86_64-w64-mingw32)

of 2019-12-25

Package: 12.2.4

 

current state:

==============

(setq

AUCTeX-date "2020-06-29"

window-system 'w32

LaTeX-version "2e"

TeX-style-path '("~/.emacs.d/auctex"

 
"c:/Users/guraltsev/.config/emacsen/clean/straight/build/auctex/style"
"c:/Users/guraltsev/.config/emacsen/clean/auctex/auto"
"c:/Users/guraltsev/.config/emacsen/clean/auctex/style" "auto" "style")

TeX-auto-save nil

TeX-parse-self t

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

                                  (plain-tex-mode latex-mode doctex-mode
ams-tex-mode

                                   texinfo-mode context-mode)

                                  :help "Run BibTeX")

                                 ("Biber" "biber %s" TeX-run-Biber nil

                                  (plain-tex-mode latex-mode doctex-mode
ams-tex-mode

                                   texinfo-mode)

                                  :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

                                  (plain-tex-mode latex-mode doctex-mode
ams-tex-mode

                                   texinfo-mode)

                                  :help "Generate PostScript file")

                                 ("Dvips" "%(o?)dvips %d -o %f "
TeX-run-dvips nil

                                  (plain-tex-mode latex-mode doctex-mode
ams-tex-mode

                                   texinfo-mode)

                                  :help "Convert DVI file to PostScript")

                                 ("Dvipdfmx" "dvipdfmx %d" TeX-run-dvipdfmx
nil

                                  (plain-tex-mode latex-mode doctex-mode
ams-tex-mode

                                   texinfo-mode)

                                  :help "Convert DVI file to PDF with
dvipdfmx")

                                 ("Ps2pdf" "ps2pdf %f" TeX-run-ps2pdf nil

                                  (plain-tex-mode latex-mode doctex-mode
ams-tex-mode

                                   texinfo-mode)

                                  :help "Convert PostScript file to PDF")

                                 ("Glossaries" "makeglossaries %s"
TeX-run-command nil

                                  (plain-tex-mode latex-mode doctex-mode
ams-tex-mode

                                   texinfo-mode)

                                  :help "Run makeglossaries to create
glossary\n     file")

                                 ("Index" "%(makeindex) %s" TeX-run-index
nil

                                  (plain-tex-mode latex-mode doctex-mode
ams-tex-mode

                                   texinfo-mode)

                                  :help "Run makeindex to create index
file")

                                 ("upMendex" "upmendex %s" TeX-run-index t

                                  (plain-tex-mode latex-mode doctex-mode
ams-tex-mode

                                   texinfo-mode)

                                  :help "Run upmendex to create index file")

                                 ("Xindy" "texindy %s" TeX-run-command nil

                                  (plain-tex-mode latex-mode doctex-mode
ams-tex-mode

                                   texinfo-mode)

                                  :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")

                                 )

TeX-fold-macro-spec-list  ' (("[f]"

  ("footnote" "marginpar"))

("[c]"

  ("cite"))

("[l]"

  ("label"))

("[r]"

  ("ref" "pageref" "eqref"))

("[i]"

  ("index" "glossary"))

("[1]:||*"

  ("item"))

("..."

  ("dots"))

("(C)"

  ("copyright"))

("(R)"

  ("textregistered"))

("TM"

  ("texttrademark"))

(1

  ("part" "chapter" "section" "subsection" "subsubsection" "paragraph"
"subparagraph" "part*" "chapter*" "section*" "subsection*" "subsubsection*"
"paragraph*" "subparagraph*" "emph" "textit" "textsl" "textmd" "textrm"
"textsf" "texttt" "textbf" "textsc" "textup"))) 

)

[Message part 2 (text/html, inline)]
[init.el (application/octet-stream, attachment)]
[screenshot.PNG (image/png, attachment)]
[main.tex (application/octet-stream, attachment)]

Information forwarded to bug-auctex <at> gnu.org:
bug#42209; Package auctex. (Sun, 23 Aug 2020 10:09:01 GMT) Full text and rfc822 format available.

Message #8 received at 42209 <at> debbugs.gnu.org (full text, mbox):

From: Ikumi Keita <ikumi <at> ikumi.que.jp>
To: gennady.uraltsev <at> gmail.com
Cc: 42209 <at> debbugs.gnu.org
Subject: Re: bug#42209: 12.2.4; Text propogated wrong in TeX-fold-mode
Date: Sun, 23 Aug 2020 19:08:19 +0900
[Message part 1 (text/plain, inline)]
Hi Gennady, sorry for very late response.

>>>>> <gennady.uraltsev <at> gmail.com> writes:

> I illustrate with examples

> Consider the following LaTeX file (attached as main.tex):

> \documentclass{amsart}
> \begin{document}
> \title{Simple AMSart}
> \author{Author McAuthorface}

> \maketitle

> \section{Section \textit{a} : a \LaTeX macro}
> \begin{equation*}
>   \int_{\alpha + \beta = \LaTeX + \dots }
> \end{equation*}
> \end{document}

> 1.	
> *	The macro \textit{a} folds into an "a" as specified by
> TeX-fold-macro-spec-list (value included below) but it gets rendered much
> larger than the surrounding text
> *	I believe because the "enlargement" gets applied twice, but I am not
> sure. 

I tried just enabling TeX-fold-mode without your whole init setting, and
the problem doesn't reproduce with the provided sample latex file.

> 2.	Auctex makes the subscript of the integral in the equation small and
> lowered.

> *	After folding the Greek symbols and the other macros they appear to
> be the same size as "normal" text so they do not inherit the surrounding
> fontification. 

I can observe this behavior. It seems that the attached patch fixes the
problem. Could you test whether it works for you or not?

Regards,
Ikumi Keita

[patch (text/x-diff, inline)]
diff --git a/tex-fold.el b/tex-fold.el
index b14ec734..802d1be0 100644
--- a/tex-fold.el
+++ b/tex-fold.el
@@ -824,6 +824,11 @@ That means, put respective properties onto overlay OV."
 				    (skip-chars-forward " \t")
 				    (point))))
       (overlay-put ov 'mouse-face 'highlight)
+      (when font-lock-mode
+	;; Add raise adjustment for superscript and subscript.
+	(put-text-property 0 (length display-string)
+			   'display (get-text-property ov-start 'display)
+			   display-string))
       (overlay-put ov 'display display-string)
       (when font-lock-mode
 	(overlay-put ov 'face TeX-fold-folded-face))

Information forwarded to bug-auctex <at> gnu.org:
bug#42209; Package auctex. (Mon, 07 Jun 2021 07:36:02 GMT) Full text and rfc822 format available.

Message #11 received at 42209 <at> debbugs.gnu.org (full text, mbox):

From: Ikumi Keita <ikumi <at> ikumi.que.jp>
Cc: 42209 <at> debbugs.gnu.org, gennady.uraltsev <at> gmail.com
Subject: Re: bug#42209: 12.2.4; Text propogated wrong in TeX-fold-mode
Date: Mon, 07 Jun 2021 16:35:22 +0900
Hi Gennady,

>>>>> Ikumi Keita <ikumi <at> ikumi.que.jp> writes:
>>>>> <gennady.uraltsev <at> gmail.com> writes:
>> 2.	Auctex makes the subscript of the integral in the equation small and
>> lowered.

>> *	After folding the Greek symbols and the other macros they appear to
>> be the same size as "normal" text so they do not inherit the surrounding
>> fontification. 

> I can observe this behavior. It seems that the attached patch fixes the
> problem. Could you test whether it works for you or not?

I pushed this change into the git repo, so I expect this issue is fixed.

>> I illustrate with examples

>> Consider the following LaTeX file (attached as main.tex):

>> \documentclass{amsart}
>> \begin{document}
>> \title{Simple AMSart}
>> \author{Author McAuthorface}

>> \maketitle

>> \section{Section \textit{a} : a \LaTeX macro}
>> \begin{equation*}
>> \int_{\alpha + \beta = \LaTeX + \dots }
>> \end{equation*}
>> \end{document}

>> 1.	
>> *	The macro \textit{a} folds into an "a" as specified by
>> TeX-fold-macro-spec-list (value included below) but it gets rendered much
>> larger than the surrounding text
>> *	I believe because the "enlargement" gets applied twice, but I am not
>> sure. 

> I tried just enabling TeX-fold-mode without your whole init setting, and
> the problem doesn't reproduce with the provided sample latex file.

I at last succeeded to reproduce this issue. It turned out that C-c C-o
C-b doesn't reproduce it, but C-c C-o C-m on the \textit does. It seems
that it results from complex interactions within emacs display engine,
and not easy to fix. Maybe I look into this again some day.

Regards,
Ikumi Keita




Information forwarded to bug-auctex <at> gnu.org:
bug#42209; Package auctex. (Fri, 14 Feb 2025 10:56:02 GMT) Full text and rfc822 format available.

Message #14 received at 42209 <at> debbugs.gnu.org (full text, mbox):

From: Arash Esbati <arash <at> gnu.org>
To: Ikumi Keita <ikumi <at> ikumi.que.jp>
Cc: 42209 <at> debbugs.gnu.org, gennady.uraltsev <at> gmail.com
Subject: Re: bug#42209: 12.2.4; Text propogated wrong in TeX-fold-mode
Date: Fri, 14 Feb 2025 11:55:40 +0100
Hi Keita,

Ikumi Keita <ikumi <at> ikumi.que.jp> writes:

> I at last succeeded to reproduce this issue. It turned out that C-c C-o
> C-b doesn't reproduce it, but C-c C-o C-m on the \textit does. It seems
> that it results from complex interactions within emacs display engine,
> and not easy to fix. Maybe I look into this again some day.

Do you think you will look at this issue again?  Do you still want to
keep the report open or should we close it as 'wontfix'?

Best, Arash




Information forwarded to bug-auctex <at> gnu.org:
bug#42209; Package auctex. (Fri, 14 Feb 2025 14:18:02 GMT) Full text and rfc822 format available.

Message #17 received at 42209 <at> debbugs.gnu.org (full text, mbox):

From: Ikumi Keita <ikumi <at> ikumi.que.jp>
To: Arash Esbati <arash <at> gnu.org>
Cc: 42209 <at> debbugs.gnu.org, gennady.uraltsev <at> gmail.com
Subject: Re: bug#42209: 12.2.4; Text propogated wrong in TeX-fold-mode
Date: Fri, 14 Feb 2025 23:17:09 +0900
Hi Arash, thanks for taking care of old bugs.

>>>>> Arash Esbati <arash <at> gnu.org> writes:
>> I at last succeeded to reproduce this issue. It turned out that C-c C-o
>> C-b doesn't reproduce it, but C-c C-o C-m on the \textit does. It seems
>> that it results from complex interactions within emacs display engine,
>> and not easy to fix. Maybe I look into this again some day.

> Do you think you will look at this issue again?  Do you still want to
> keep the report open or should we close it as 'wontfix'?

I'd like to close it as "wontfix". Sorry, Gennady.

Here is a summary of my study. The following code demonstrates what is
going on:
----------------------------------------------------------------------
(defface my-large '((t (:height 2.0))) "twice large")
(switch-to-buffer (generate-new-buffer "abc"))
(insert "ABCD XYZ
foo bar") ; for comparison
(put-text-property 1 9 'face 'my-large) ; enlarge 1st line
(setq my-str (buffer-substring 2 3)) ; "B" with `my-large' face
(setq my-ov (make-overlay 1 4)) ; covers "ABC"
(overlay-put my-ov 'display my-str) ; largeness applied twice.
----------------------------------------------------------------------
Apparently, `display' property string of overlay inherits the
"largeness" of the underlying texts, thus the largeness is applied twice
here.
I'm not sure whether this is an emacs bug or not, since it's certain
that there are situations where such behavior is useful. In addition,
even if it is actually a bug, it would be difficult for emacs developer
to "fix" it because I suppose there are already elisp codes which depend
on that behavior.

Regards,
Ikumi Keita
#StandWithUkraine #StopWarInUkraine
#Gaza #StopMassiveKilling #CeasefireNOW




Added tag(s) wontfix. Request was from Ikumi Keita <ikumi <at> ikumi.que.jp> to control <at> debbugs.gnu.org. (Mon, 17 Feb 2025 07:40:02 GMT) Full text and rfc822 format available.

bug closed, send any further explanations to 42209 <at> debbugs.gnu.org and <gennady.uraltsev <at> gmail.com> Request was from Ikumi Keita <ikumi <at> ikumi.que.jp> to control <at> debbugs.gnu.org. (Mon, 17 Feb 2025 07:40:02 GMT) Full text and rfc822 format available.

Information forwarded to bug-auctex <at> gnu.org:
bug#42209; Package auctex. (Mon, 17 Feb 2025 21:48:02 GMT) Full text and rfc822 format available.

Message #24 received at 42209 <at> debbugs.gnu.org (full text, mbox):

From: Arash Esbati <arash <at> gnu.org>
To: Ikumi Keita <ikumi <at> ikumi.que.jp>
Cc: 42209 <at> debbugs.gnu.org, gennady.uraltsev <at> gmail.com
Subject: Re: bug#42209: 12.2.4; Text propogated wrong in TeX-fold-mode
Date: Mon, 17 Feb 2025 22:47:18 +0100
tags 42209 wontfix
close 42209
thanks

Hi Keita,

Ikumi Keita <ikumi <at> ikumi.que.jp> writes:

> Hi Arash, thanks for taking care of old bugs.

👍

> I'd like to close it as "wontfix". Sorry, Gennady.
>
> Here is a summary of my study. The following code demonstrates what is
> going on:
> ----------------------------------------------------------------------
> (defface my-large '((t (:height 2.0))) "twice large")
> (switch-to-buffer (generate-new-buffer "abc"))
> (insert "ABCD XYZ
> foo bar") ; for comparison
> (put-text-property 1 9 'face 'my-large) ; enlarge 1st line
> (setq my-str (buffer-substring 2 3)) ; "B" with `my-large' face
> (setq my-ov (make-overlay 1 4)) ; covers "ABC"
> (overlay-put my-ov 'display my-str) ; largeness applied twice.
> ----------------------------------------------------------------------
> Apparently, `display' property string of overlay inherits the
> "largeness" of the underlying texts, thus the largeness is applied twice
> here.
> I'm not sure whether this is an emacs bug or not, since it's certain
> that there are situations where such behavior is useful. In addition,
> even if it is actually a bug, it would be difficult for emacs developer
> to "fix" it because I suppose there are already elisp codes which depend
> on that behavior.

Thanks for the analysis.  Per your request, I'm closing this report as
wontfix.

Best, Arash




Information forwarded to bug-auctex <at> gnu.org:
bug#42209; Package auctex. (Tue, 18 Feb 2025 05:55:02 GMT) Full text and rfc822 format available.

Message #27 received at 42209 <at> debbugs.gnu.org (full text, mbox):

From: Ikumi Keita <ikumi <at> ikumi.que.jp>
To: Arash Esbati <arash <at> gnu.org>
Cc: 42209 <at> debbugs.gnu.org, gennady.uraltsev <at> gmail.com
Subject: Re: bug#42209: 12.2.4; Text propogated wrong in TeX-fold-mode
Date: Tue, 18 Feb 2025 14:53:57 +0900
>>>>> Arash Esbati <arash <at> gnu.org> writes:
> Thanks for the analysis.  Per your request, I'm closing this report as
> wontfix.

Ah, sorry. I've already closed it by myself yesterday. 🙏

Bye,
Ikumi Keita
#StandWithUkraine #StopWarInUkraine
#Gaza #StopMassiveKilling #CeasefireNOW




Information forwarded to bug-auctex <at> gnu.org:
bug#42209; Package auctex. (Tue, 18 Feb 2025 06:44:01 GMT) Full text and rfc822 format available.

Message #30 received at 42209 <at> debbugs.gnu.org (full text, mbox):

From: Arash Esbati <arash <at> gnu.org>
To: Ikumi Keita <ikumi <at> ikumi.que.jp>
Cc: 42209 <at> debbugs.gnu.org, gennady.uraltsev <at> gmail.com
Subject: Re: bug#42209: 12.2.4; Text propogated wrong in TeX-fold-mode
Date: Tue, 18 Feb 2025 07:43:18 +0100
Ikumi Keita <ikumi <at> ikumi.que.jp> writes:

> Ah, sorry. I've already closed it by myself yesterday. 🙏

No problem, I saw that after I sent my message.  I should have checked
myself in the first place 😩

Best, Arash




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Tue, 18 Mar 2025 11:24:16 GMT) Full text and rfc822 format available.

This bug report was last modified 53 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.