Am 08.05.2016 um 21:32 schrieb Jean-Marc Lasgouttes <lasgout...@lyx.org>: > > Le 08/05/16 à 19:17, Stephan Witt a écrit : >> I’ve pasted your email into a new document and switched to Aspell as my >> current spell checker backend in LyX. As you’ve described it the >> "communities’" >> are marked as misspelled. Obviously the word „communities“ is a know one and >> the problem is the handling of the possessive apostrophe for plural words >> with terminal ‚s‘ - this is a problem in the Aspell dictionary or the Aspell >> code. I don’t know if Aspell is able to handle this correctly. (BTW, hunspell >> isn’t better on my system.) > It might be interesting to adapt what emacs does here.
Isn’t this a workaround for a broken spell checker backend and/or dictionary? If I try it with the hunspell command line on CentOS I get: ====================== $ hunspell -d en_US Hunspell 1.2.8 For example communities and communities' * * + community * + community ====================== I interpret it that it works ok. Hunspell got the words „communities“ and „communities'" through affix removal. I’ll have to check what LyX is doing here. Stephan > > JMarc > > > ispell-dictionary-alist is a variable defined in `ispell.el'. > Its value is shown below. > > Documentation: > An alist of dictionaries and their associated parameters. > > Each element of this list is also a list: > > (DICTIONARY-NAME CASECHARS NOT-CASECHARS OTHERCHARS MANY-OTHERCHARS-P > ISPELL-ARGS EXTENDED-CHARACTER-MODE CHARACTER-SET) > > DICTIONARY-NAME is a possible string value of variable `ispell-dictionary', > nil means the default dictionary. > > CASECHARS is a regular expression of valid characters that comprise a word. > > NOT-CASECHARS is the opposite regexp of CASECHARS. > > OTHERCHARS is a regexp of characters in the NOT-CASECHARS set but which can be > used to construct words in some special way. If OTHERCHARS characters follow > and precede characters from CASECHARS, they are parsed as part of a word, > otherwise they become word-breaks. As an example in English, assume the > regular expression "[']" for OTHERCHARS. Then "they're" and > "Steven's" are parsed as single words including the "'" character, but > "Stevens'" does not include the quote character as part of the word. > If you want OTHERCHARS to be empty, use the empty string. > Hint: regexp syntax requires the hyphen to be declared first here. > > CASECHARS, NOT-CASECHARS, and OTHERCHARS must be unibyte strings > containing bytes of CHARACTER-SET. In addition, if they contain > non-ASCII bytes, the regular expression must be a single > `character set' construct that doesn't specify a character range > for non-ASCII bytes. > > MANY-OTHERCHARS-P is non-nil when multiple OTHERCHARS are allowed in a word. > Otherwise only a single OTHERCHARS character is allowed to be part of any > single word. > > ISPELL-ARGS is a list of additional arguments passed to the ispell > subprocess. > > EXTENDED-CHARACTER-MODE should be used when dictionaries are used which > have been configured in an Ispell affix file. (For example, umlauts > can be encoded as \"a, a\", "a, ...) Defaults are ~tex and ~nroff > in English. This has the same effect as the command-line `-T' option. > The buffer Major Mode controls Ispell's parsing in tex or nroff mode, > but the dictionary can control the extended character mode. > Both defaults can be overruled in a buffer-local fashion. See > `ispell-parsing-keyword' for details on this. > > CHARACTER-SET used to encode text sent to the ispell subprocess > when the language uses non-ASCII characters. > > Note that with "ispell" as the speller, the CASECHARS and > OTHERCHARS slots of the alist should contain the same character > set as casechars and otherchars in the LANGUAGE.aff file (e.g., > english.aff). aspell and hunspell don't have this limitation. > > Value: > (("fr" "[[:alpha:]]" "[^[:alpha:]]" "[-'.@]" t nil nil iso-8859-1) > ("en" "[[:alpha:]]" "[^[:alpha:]]" "[']" nil nil nil iso-8859-1) > ("en_AU" "[[:alpha:]]" "[^[:alpha:]]" "[']" nil nil nil iso-8859-1) > ("en_GB" "[[:alpha:]]" "[^[:alpha:]]" "[']" nil nil nil iso-8859-1) > ("en_CA" "[[:alpha:]]" "[^[:alpha:]]" "[']" nil nil nil iso-8859-1) > ("de" "[[:alpha:]]" "[^[:alpha:]]" "[']" t nil nil iso-8859-1) > ("es" "[[:alpha:]]" "[^[:alpha:]]" "[-]" nil nil nil iso-8859-1) > ("it" "[[:alpha:]]" "[^[:alpha:]]" "[-.]" nil nil nil iso-8859-1) > ("nl" "[[:alpha:]]" "[^[:alpha:]]" "[']" t nil nil iso-8859-1) > ("sv" "[[:alpha:]]" "[^[:alpha:]]" "[']" nil nil nil iso-8859-1) > ("da" "[[:alpha:]]" "[^[:alpha:]]" "[']" nil nil nil iso-8859-1) > ("pt" "[[:alpha:]]" "[^[:alpha:]]" "[']" t nil nil iso-8859-1) > ("pt_BR" "[[:alpha:]]" "[^[:alpha:]]" "[']" t nil nil iso-8859-1) > ("ru" "[[:alpha:]]" "[^[:alpha:]]" "" nil nil nil iso-8859-1) > ("pl_PL" "[[:alpha:]]" "[^[:alpha:]]" "[']" t nil nil iso-8859-1)) > >