Subject: Re: bug#26125: ispell fails to detect certain typos

From: Arash Esbati <[email-masked]>
Date: Thu, 16 Mar 2017 15:22:18 +0100

Leon Meier <[email-masked]> writes:

> Used packages:
> - auctex 11.90.0,
> - emacs 24.3.1 (24.3-22.1 on OpenSuse),
> - ispell 3.3.02 (3.3.02-113.1 on OpenSuse),
> - ispell-american (american.aff v 1.23, 3.3.02-113.1 on OpenSuse)
>
> Bug description:
>
> Create the file q.tex with the following contents (without the square
> brackets):
> [
> \(\sigma\) contradition
>
> %%% Local Variables:
> %%% ispell-local-dictionary: "american"
> %%% End:
> ]
>
> Then, open q.tex with emacs when auctex is loaded. Issue
> M-x ispell-buffer <RET>
>
> Observe that the typo in the word "contradition" remains unnoticed.
>
> With auctex 11.87-11.42, taken from opensuse leap 42.2 by default, the
> bug is not present: the typo "contradition" is correctly reported.

AUCTeX 11.90 does some additions to `ispell-tex-skip-alists' in order to
skip more macro arguments and environments; they are all in
tex-ispell.el.  The scenario you describe is strange, and I can't tell
why it happens.

> Any bugfix?

I'm not on OpenSuse and don't use ispell (I use Hunspell), but I can
offer some possibilities you can try:

1) Try $\sigma$ contradition -- it has the same effect within LaTeX

2) Try \( \sigma \) contradition -- note the spaces around \sigma; same
effect, but ugly

3) Eval the form in verbatim environment below and run ispell again:

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

\begin{document}

\begin{verbatim}
(TeX-ispell-skip-setcar
  '(("\\\\(" . "\\\\)")))
\end{verbatim}

\(\sigma\) contradition

$\sigma$ contradition

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

If it works, I can add it to tex-ispell.el.

4) Disable the new feature by setting `TeX-ispell-extend-skip-list' to
nil.

HTH.

Best, Arash