[TxMt] Re: sudden latex tidy and latex compiling errors
Robert Milton
robert.gomez.milton at gmail.com
Sat Feb 14 22:57:30 UTC 2015
Thanks René, particularly for making me aware of latextidy.pl. I had a quick look and I reckon I’ll try hacking it as you suggest. Keep up the good work, and please bear this issue in mind should you ever have time on your hands, or a similar request from other users.
Regards
Robert
> On 12 Feb 2015, at 15:52, René Schwaiger <sanssecours at f-m.fm> wrote:
>
> Hi Robert,
>
>> On 12 Feb 2015, at 1:28 , Robert Milton <robert.gomez.milton at gmail.com> wrote:
>>
>> I’ve used `LaTeXTidy` regularly for some months now, and for me it is all good…with just one niggle:
>>
>> A common idiom is
>> \begin{environment} \label{env:whatever}
>> ...
>> \end{environment}
>>
>> except in captioned environments (table etc) when you usually want
>> \begin{environment}
>> ...
>> \label{env:whatever} \end{environment}
>>
>> This idiom is reflected perfectly in the LaTeX bundle’s ctrl-< functionality, which I love so much I should probably get therapy.
>>
>> `LaTeXTidy` has the unfortunate feature of moving the \label to its own line, so the result in any case is
>> \begin{environment}
>> ...
>> \label{env:whatever}
>> ...
>> \end{environment}
>>
>> My issue is that this cripples code folding. Before I run `LaTeXTidy` I can fold my LaTeX so I only see the environments and their \labels, which is exactly what I want. After `LaTeXTidy`, code folding hides the \labels, so all I see is \begin{environment}\end{environment}, which is probably not what anyone wants. I have Find&Replace workarounds, to put the \labels back on the lines I want them on, but it would be really neat if `LaTeXTidy` effectively left them there.
>
> there is the option that we could change “LaTeX Tidy” so that it ignores lines containing labels. But it would take some time for me to do that. I poked around the script a little bit. Basically the script just uses a lot of regular expression substitutions to change the tex file. After I did not get something working after two hours, I just resorted to the same thing you mentioned. So I just used substitution to “fix” the changes by “LaTeX Tidy” that you do not like. For example:
>
> The second example you mentioned was
>
> \begin{environment}
> ...
> \label{env:whatever} \end{environment}
>
> After we use “LaTeX Tidy” we get
>
> \begin{environment}
> \label{env:whatever}
> \end{environment}
>
> We can fix that by using the regular expression
>
> ^\s*(\\label{[^}]*})\s*(\\end\{[^}]+})
>
> and the substitution `$1$2`. The same works in Perl too of course. So you could edit `latextidy.pl` and insert the following before the statement `print $string;` at the end of the file:
>
> $string =~ s/^\s*(\\label{[^}]*})\s*(\\end\{[^}]+})/$1$2/mg;
>
> This way you should get the output you want. You can use the same pattern to fix the other things you do not like.
>
>> The LaTeX bundle is a terrific piece of work in general, and although I use it every day this is the only minor grumble I can think of. And there is nothing else I would seriously suggest changing about `LaTeXTidy`.
>>
>> Robert
>
> Kind regards,
> René
>
> _______________________________________________
> textmate mailing list
> textmate at lists.macromates.com
> http://lists.macromates.com/listinfo/textmate
More information about the textmate
mailing list