Subject: 11.88.6; Vertical bar is paired delimiter in syntax table

From: Michael Hoffman <[email-masked]>
Date: Thu, 27 Aug 2015 17:21:44 -0400

The vertical bar (|) is paired delimiter/math mode ("$") in the TeX 
syntax table. This means that balanced vertical bars are expected just 
as balanced parentheses. This causes problems with S-expression movement 
and Flyspell when there are odd numbers of vertical bars. The easiest 
way to reproduce a problem this causes:

1. Create test1.tex with contents:

{|{}|{}|}

2. Go to beginning of buffer and type C-M-f (forward-sexp)

What I expected to happen:

Cursor moves to last closing curly brace.

What happens instead:

I receive the error:

forward-sexp: Scan error: "Unbalanced parentheses", 1, 11

This sort of unbalanced vertical bar is likely to happen in table 
definitions.

Workaround:

Add this to .emacs:

(with-eval-after-load 'tex
    (modify-syntax-entry ?| "." TeX-mode-syntax-table))

I don't understand why | is treated as a paired delimiter in the first 
place, though.

------------------------------------------------------------------------

Emacs  : GNU Emacs 24.5.2 (x86_64-unknown-linux-gnu, GTK+ Version 3.8.8)
  of 2015-07-29 on mhoffman2.uhnres.utoronto.ca
Package: 11.88.6

current state:
==============
(setq
  AUCTeX-date "2015-05-08"
  window-system 'x
  LaTeX-version "2e"
  TeX-style-path '("~/.emacs.d/auctex" 
"/users/mhoffman/.emacs.d/elpa/auctex-11.88.6/style"
                   "/users/mhoffman/.emacs.d/auctex/auto" 
"/users/mhoffman/.emacs.d/auctex/style"
                   "auto" "style")
  TeX-auto-save t
  TeX-parse-self t
  TeX-master t
  TeX-command-list '(("Make" "make LATEX=\"%`%l%(mode)\"" TeX-run-TeX t 
t :help "Run make")
                     ("Latexmk" "latexmk -pdf %s" TeX-run-TeX nil t 
:help "Run Latexmk")
                     ("TeX" "%(PDF)%(tex) %(file-line-error) 
%(extraopts) %`%S%(PDFout)%(mode)%' %t"
                      TeX-run-TeX nil (plain-tex-mode ams-tex-mode 
texinfo-mode) :help "Run plain TeX")
                     ("LaTeX" "%`%l%(mode)%' %t" TeX-run-TeX nil 
(latex-mode doctex-mode) :help
                      "Run LaTeX")
                     ("Makeinfo" "makeinfo %(extraopts) %t" 
TeX-run-compile nil (texinfo-mode) :help
                      "Run Makeinfo with Info output")
                     ("Makeinfo HTML" "makeinfo %(extraopts) --html %t" 
TeX-run-compile nil
                      (texinfo-mode) :help "Run Makeinfo with HTML output")
                     ("AmSTeX" "%(PDF)amstex %(extraopts) 
%`%S%(PDFout)%(mode)%' %t" TeX-run-TeX nil
                      (ams-tex-mode) :help "Run AMSTeX")
                     ("ConTeXt" "texexec --once --texutil %(extraopts) 
%(execopts)%t" TeX-run-TeX nil
                      (context-mode) :help "Run ConTeXt once")
                     ("ConTeXt Full" "texexec %(extraopts) 
%(execopts)%t" TeX-run-TeX nil
                      (context-mode) :help "Run ConTeXt until completion")
                     ("BibTeX" "bibtex %s" TeX-run-BibTeX nil t :help 
"Run BibTeX")
                     ("Biber" "biber %s" TeX-run-Biber nil t :help "Run 
Biber")
                     ("View" "%V" TeX-run-discard-or-function t t :help 
"Run Viewer")
                     ("Print" "%p" TeX-run-command t t :help "Print the 
file")
                     ("Queue" "%q" TeX-run-background nil t :help "View 
the printer queue" :visible
                      TeX-queue-command)
                     ("File" "%(o?)dvips %d -o %f " TeX-run-command t t 
:help
                      "Generate PostScript file")
                     ("Index" "makeindex %s" TeX-run-command nil t :help 
"Create index file")
                     ("Xindy" "texindy %s" TeX-run-command nil t :help
                      "Run xindy to create index file")
                     ("Check" "lacheck %s" TeX-run-compile nil 
(latex-mode) :help
                      "Check LaTeX file for correctness")
                     ("ChkTeX" "chktex -v6 %s" TeX-run-compile nil 
(latex-mode) :help
                      "Check LaTeX file for common mistakes")
                     ("Spell" "(TeX-ispell-document \"\")" 
TeX-run-function nil t :help
                      "Spell-check the document")
                     ("Clean" "TeX-clean" TeX-run-function nil t :help
                      "Delete generated intermediate files")
                     ("Clean All" "(TeX-clean t)" TeX-run-function nil t 
:help
                      "Delete generated intermediate and output files")
                     ("Other" "" TeX-run-command t t :help "Run an 
arbitrary command"))
  )