[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Bug-AUCTeX] 11.84; Font replacing doesn't work for unbalanced paren

From: Ralf Angeli
Subject: Re: [Bug-AUCTeX] 11.84; Font replacing doesn't work for unbalanced parentheses.
Date: Mon, 05 Mar 2007 21:41:28 +0100
User-agent: Gnus/5.110006 (No Gnus v0.6) Emacs/22.0.95 (gnu/linux)

* Ikumi Keita (2007-03-05) writes:

> In a LaTeX document buffer, placing the cursor on font specifying macros
> like \emph and typing font replacing key stroke (e.g. C-u C-c C-f C-r)
> causes an error if the text to be decolated contains unbalaned
> parentheses.
>       ;; Use stripped syntax table in order to get stuff like "\emph{(}" 
> right.
>       (with-syntax-table (TeX-search-syntax-table ?\{ ?\})
>       (forward-sexp 2))
> ----------------------------------------------------------------------
> However, (TeX-search-syntax-table ?\{ ?\}) does not return sufficiently
> stripped syntax table, at least for Emacs 21.  So the comment on the
> first line in the above piece is not right for now. 

That's a bug in Emacs 21 which is fixed in CVS Emacs.  (See the
comment in the defvar of `TeX-syntax-table'.)  As a workaround we
could set the syntax entries for parens to nil.

> (Note that the chars with paren syntaxes is not only `()', '{}'
> and `[]', but also many multibyte chars count as matching parentheses.
> They must be masked altogether)

Could we iterate (in a reasonable amount of time) through all entries
in the syntax table and set them to nil?  If not, we likely will have
to live with the workaround and hope for Emacs 22 to be released in
this millenium.

> In addition, the way the function TeX-search-syntax-table treats the
> variable TeX-search-syntax-table does not seem good to me.  The function
> directly modifies the syntax table stored in the variable, so the
> modified table is shared between all the buffers.  For examle, the char
> `@' is given escape syntax in texinfo-mode buffer, which should be
> avoided in latex-mode buffer.

The variable is not supposed to be used directly.  If a syntax table
for searching is required, the function `TeX-search-syntax-table'
should be used.  Working with only a single syntax was a deliberate
decision because syntax tables are quite large data structures and I
didn't want to waste memory by making that variable buffer-local or do
something similar.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]