GNU bug report logs -
#78693
14.0.9; Folding of math macros with a function spec is broken
Previous Next
Full log
View this message in rfc822 format
Hi Paul,
"Paul D. Nelson" <ultrono <at> gmail.com> writes:
> Hi Raghuzar,
>
> Rahguzar <rahguzar <at> mailbox.org> writes:
>
>>>> One question about it: One problem I have had is that, if I have
>>>> something like
>>>>
>>>> \begin{align}
>>>> [\hat{X},\hat{P}] = i\hbar
>>>> \end{align}
>>>>
>>>> the commutator gets folded as an optional argument to the \begin.
>>>> It is possible to not have this effect with new machinery without
>>>> specifying \begin as not taking any optional arguments?
>>>
>>> Could you please share your tex folding config, or better, the part
>>> relevant for folding \begin{align}?
>>
>> It is this:
>>
>> (setq TeX-fold-macro-spec-list
>> `(("⬖ {1}" ("begin"))
>> ("⬗ {1}" ("end"))))
>
> With the new folding signature support, you can achieve the desired
> effect using either
>
> ;; At most 1 args.
> (setq TeX-fold-macro-spec-list
> `((("⬖ {1}" . 1) ("begin"))
> (("⬗ {1}" . 1) ("end"))))
>
> or
>
> ;; At most 0 optional, 1 required args.
> (setq TeX-fold-macro-spec-list
> `((("⬖ {1}" . (0 . 1)) ("begin"))
> (("⬗ {1}" . (0 . 1)) ("end"))))
>
> ---
Thanks, this works for my needs. I was worried about optional arguments
before the mandatory ones messing up the folding but those arguments
actually get swallowed by the folding. With your suggestion of using
TeX-fold-macro-nth-arg it is possible to handle optional args that come
before mandatory ones which passing a 1 or (0 . 1) as spec. A bit
confusing but it improves on the current situation and I don't think it
is possible handle folding perfectly given how "flexible" syntax in
(La)TeX is.
> Another approach here would be prettification, assuming you're OK with
> specifying each environment. I use something like:
>
> (with-eval-after-load 'tex-mode
> (mapc
> (lambda (sym) (add-to-list 'tex--prettify-symbols-alist sym))
> '(("\\begin{equation}" . ?↴)
> ("\\end{equation}" . ?↲)
> ("\\begin{align}" . ?⌈)
> ("\\end{align}" . ?⌋)
> ("\\begin{multline}" . ?⎧)
> ("\\end{multline}" . ?⎭))))
>
> Paul
Rahguzar
This bug report was last modified 1 day ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.