GNU bug report logs - #26010
Indenting in tabulars and \&

Previous Next

Package: auctex;

Reported by: Arash Esbati <arash <at> gnu.org>

Date: Tue, 7 Mar 2017 13:26:01 UTC

Severity: normal

Done: Arash Esbati <arash <at> gnu.org>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: help-debbugs <at> gnu.org (GNU bug Tracking System)
To: Arash Esbati <arash <at> gnu.org>
Subject: bug#26010: closed (Re: bug#26010: Indenting in tabulars and \&)
Date: Wed, 08 Mar 2017 10:47:02 +0000
[Message part 1 (text/plain, inline)]
Your bug report

#26010: Indenting in tabulars and \&

which was filed against the auctex package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to 26010 <at> debbugs.gnu.org.

-- 
26010: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=26010
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
From: Arash Esbati <arash <at> gnu.org>
To: Mosè Giordano <mose <at> gnu.org>
Cc: 26010-close <at> debbugs.gnu.org
Subject: Re: bug#26010: Indenting in tabulars and \&
Date: Wed, 08 Mar 2017 11:45:24 +0100
Mosè Giordano <mose <at> gnu.org> writes:

> 2017-03-07 14:24 GMT+01:00 Arash Esbati <arash <at> gnu.org>:
>> AUCTeX doesn't see the control symbol \&, it just takes the ampersand as
>> a column separator.  This issue is caused in the last part of the
>> function `LaTeX-indent-tabular':
>
> Good catch.  I like the solution proposed by Keita, with or without
> `TeX-escaped-p' (but I slightly prefer using these generic functions).
> If you're going to install the fix, please add a test as well.

Hi Mosè,

thanks for your response.  I've installed a patch incl. a test; I went
for Keita's suggestion without `TeX-escaped-p', commit 991b582.  I close
this one then.

Best, Arash

[Message part 3 (message/rfc822, inline)]
From: Arash Esbati <arash <at> gnu.org>
To: auctex-bugs <bug-auctex <at> gnu.org>
Subject: Indenting in tabulars and \&
Date: Tue, 07 Mar 2017 14:24:15 +0100
Hi all,

please consider the following 2 examples and how they are filled: First
example works as expected, second one not because of \&:

--8<---------------cut here---------------start------------->8---
\documentclass{article}

\usepackage{longtable}

\begin{document}

Hit `C-c C-q C-e' inside env:
\begin{tabular}{ll}
  These lines will & appear \\
  at the end
  & of the table     
\end{tabular}
results in:
\begin{tabular}{ll}
  These lines will & appear \\
  at the end
                   & of the table
\end{tabular}

Hit `C-c C-q C-e' inside env:
\begin{tabular}{ll}
  These lines will appear \& 
  at the end \\
  of the &
  table
\end{tabular}
results in:
\begin{tabular}{ll}
  These lines will appear \& 
                             at the end \\
  of the &
           table
\end{tabular}

\end{document}
--8<---------------cut here---------------end--------------->8---

AUCTeX doesn't see the control symbol \&, it just takes the ampersand as
a column separator.  This issue is caused in the last part of the
function `LaTeX-indent-tabular':

--8<---------------cut here---------------start------------->8---
    (cond (...
	  (t
	   (+ 2
              (let ((any-col (save-excursion
                               (when (re-search-backward "\\\\\\\\\\|&" beg-pos t)
                                 (current-column)))))
                (if (and any-col (string= "&" (match-string 0)))
                    any-col
		  beg-col)))))))
--8<---------------cut here---------------end--------------->8---

I'm not aware of any way to fix this *only* by tweaking the regexp here:

    (re-search-backward "\\\\\\\\\\|&" beg-pos t)

Any idea?

Otherwise, I suggest the following change in `LaTeX-indent-tabular':

--8<---------------cut here---------------start------------->8---
    (cond (...
	  (t
	   (+ 2
              (let ((any-col (save-excursion
                               (when (re-search-backward "\\\\\\\\\\|[^\\]&" beg-pos t)
                                 (current-column)))))
                (if (and any-col (string= "&" (substring (match-string-no-properties 0) -1)))
                    (1+ any-col)
		  beg-col)))))))
--8<---------------cut here---------------end--------------->8---

Comments welcome.

Best, Arash



This bug report was last modified 8 years and 170 days ago.

Previous Next


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