auctex-devel
[Top][All Lists]

## Re: [AUCTeX-devel] Don't fold braces and brackets in math mode

 From: Mosè Giordano Subject: Re: [AUCTeX-devel] Don't fold braces and brackets in math mode Date: Mon, 9 Mar 2015 22:37:18 +0100

Hi Tassilo,

2015-03-09 9:31 GMT+01:00 Tassilo Horn <address@hidden>:
>
>> consider the following math environment:
>>
>>
>>   \alpha[b]{c}
>>
>>
>> It's folded to
>>
>>
>>   α
>>
>>
>> because the square brackets and braces are interpreted by AUCTeX as
>> arguments to the \alpha' macro, but most of the commands to be folded
>> in math modes (e.g. greek letters) don't take arguments and square
>> brackets are often used as they are.
>
> There are also some exceptions to this rule, e.g., \sqrt[3]{x} which is
> the third root of x.

Well, this macro isn't folded by default with C-C C-o C-b because
isn't in LaTeX-fold-math-spec-list', and is correctly folded to
[sqrt] with C-c C-o C-m with point on it.  Indeed, none of the macros
by default in LaTeX-fold-math-spec-list' takes argument.

>> The attached patch fixes this issue by ignoring square brackets and
>> curly braces in math mode.  Comments welcome.
>
> I don't have a strong opinion here as I don't use folding (or only
> folding in the sense of outline-minor-mode').

Actually me neither, I just noticed this issue once.

> But it looks like hard
> to get right in every situation, i.e., with your patch your example
> above would work whereas \sqrt[3]{x} which now folds correctly to [sqrt]
> would fold to [sqrt][3]{x}, that is, its arguments wouldn't be folded
> anymore.
>
> Maybe you could treat whitespace as macro end in math mode?  E.g.,
> "\alpha [b] {c}" is treated as three separate items as you expect
> whereas "\alpha[b]{c}" is just one item.

I agree it's difficult to have a sensible behavior in every situation.  I
think I'll give up the feature I proposed here, unless someone comes
up with a very good idea.  Thanks anyway!

Bye,
Mosè