This is aspell.info, produced by makeinfo version 5.2 from aspell.texi. This is the user’s manual for Aspell GNU Aspell is a spell checker designed to eventually replace Ispell. It can either be used as a library or as an independent spell checker. Copyright © 2000–2019 Kevin Atkinson. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts and no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License". INFO-DIR-SECTION GNU Packages START-INFO-DIR-ENTRY * Aspell: (aspell). GNU Aspell spelling checker END-INFO-DIR-ENTRY  File: aspell.info, Node: Top, Next: Introduction, Up: (dir) GNU Aspell 0.60.8.1 ******************* This is the user’s manual for Aspell GNU Aspell is a spell checker designed to eventually replace Ispell. It can either be used as a library or as an independent spell checker. * Menu: * Introduction:: * Support:: * Basic Usage:: * Customizing Aspell:: * Working With Dictionaries:: * Writing programs to use Aspell:: * Adding Support For Other Languages:: * Implementation Notes:: * Installing:: * ChangeLog:: * Authors:: * Copying:: — The Detailed Node Listing — Basic Usage * Spellchecking Individual Files:: * Using Aspell as a Replacement for Ispell:: * Using Aspell with other Applications:: Customizing Aspell * Specifying Options:: * The Options:: * Dumping Configuration Values:: * Notes on Various Options:: Notes on Various Options * Notes on Various Filters and Filter Modes:: * Notes on the Prefix Option:: * Notes on Typo-Analysis:: * Notes on the Different Suggestion Modes:: Working With Dictionaries * Using aspell-import:: * How Aspell Selects an Appropriate Dictionary:: * Listing Available Dictionaries:: * Dumping the Contents of the Word List:: * Creating an Individual Word List:: * Working With Affix Info in Word Lists:: * Format of the Personal and Replacement Dictionaries:: * Using Multi Dictionaries:: * Dictionary Naming:: * AWLI files:: Writing programs to use Aspell * Through the C API:: * Through A Pipe:: * Notes on Storing Replacement Pairs:: Adding Support For Other Languages * The Language Data File:: * Compiling the Word List:: * Phonetic Code:: * The Simple Soundslike:: * Replacement Tables:: * Affix Compression:: * Controlling the Behavior of Compound Words:: * Creating A New Character Set:: * Creating An Official Dictionary Package:: Implementation Notes * Aspell Suggestion Strategy:: * Notes on 8-bit Characters:: Installing * Generic Install Instructions:: * HTML Manuals and "make clean":: * Curses Notes:: * Loadable Filter Notes:: * Using 32-Bit Dictionaries on a 64-Bit System:: * Upgrading from Aspell 0.60.7:: * Upgrading from Aspell 0.50:: * Upgrading from Aspell .33/Pspell .12:: * Upgrading from a Pre-0.50 snapshot:: * WIN32 Notes:: Copying * GNU Free Documentation License:: * GNU Lesser General Public License::  File: aspell.info, Node: Introduction, Next: Support, Prev: Top, Up: Top 1 Introduction ************** GNU Aspell is a spell checker designed to eventually replace Ispell. It can either be used as a library or as an independent spell checker. Its main feature is that it does a much better job of suggesting possible replacements for a misspelled word than just about any other spell checker out there for the English language. Unlike Ispell, Aspell can also easily check documents in UTF-8 without having to use a special dictionary. Aspell will also do its best to respect the current locale setting. Other advantages over Ispell include support for using multiple dictionaries at once and intelligently handling personal dictionaries when more than one Aspell process is open at once. The latest version of Aspell can always be found at 1.1 Comparison to other spell checker engines ============================================= Aspell Ispell Hunspell Microsoft 0.60.8 2.1.20 1.1.12 Word 97 Open Source x x x Suggestion Intelligence 70-85 52 76 70 Personal part of Suggestions x x x x Alternate Dictionaries x x x ? International Support x x x ? The Suggestion Intelligence is based on a small test kernel of misspelled/correct word pairs. Go to for more info and how you can help contribute to the test kernel. If you have any other information you would like to add to this chart please contact me at . 1.1.1 Comparison to Ispell -------------------------- 1.1.1.1 Features that only Aspell has ..................................... • Is an actual library that other programs can link to instead of having to use it through a pipe. • Does a much better job of suggesting possible replacements for a misspelled word than Ispell does or for that matter many other spell checkers I have seen. If you know a spell checker that does a better job please let me know. • Can learn from user’s misspellings. • Can easily check documents in UTF-8 without having to use a special dictionary. • Has support for using multiple dictionaries at once. • Is multiprocess intelligent. When a personal dictionary (or replacement list) is saved, it will now first update the list against the dictionary on disk in case another process modified it. • Can share the memory used in the main word list between processes. • A better, more complete word list for the English language. Word lists are provided for American, British, and Canadian spelling. Special care has been taken to only include one spelling for each word in any particular word list. The word list included in Ispell by contrast only included support for American and British and also tends to included multiple spellings for a word which can mask some spelling errors. 1.1.1.2 Things that, currently, only Ispell has ............................................... • Lower memory footprint • Ability to deal with arbitrary multi-character letters such as old ASCII encodings of accented letters. • Perhaps better support for spell checking (La)TeX files. For a detailed description of how Aspell differs from Ispell, *Note Differences From Ispell::. 1.1.2 Comparison to Hunspell ---------------------------- Hunspell is based on Myspell. Myspell was created as a simple spell checker for use in OpenOffice. Myspell’s affix support was merged into Aspell 0.60 so Hunspell and Aspell can use the same affix file to some extent. Hunspell has better support for language peculiarities including compounding and complex morphology. However the Hunspell (v1.7.0) utility currently has problems with apostrophe (‘'’) in words. Aspell generally has better suggestions for non-phonetic languages such as English and French. Aspell suggestion speed also tends to be significantly faster than Hunspell. For a compression of suggestion quality and speed see .  File: aspell.info, Node: Support, Next: Basic Usage, Prev: Introduction, Up: Top 2 Support ********* Support for Aspell can be found on the Aspell mailing lists. Instructions for joining the various mailing lists (and an archive of them) can be found off the Aspell home page at . Bug reports can also be submitted via GitHub at .  File: aspell.info, Node: Basic Usage, Next: Customizing Aspell, Prev: Support, Up: Top 3 Basic Usage ************* For a quick reference on the Aspell utility use the command ‘aspell --help’. * Menu: * Spellchecking Individual Files:: * Using Aspell as a Replacement for Ispell:: * Using Aspell with other Applications::  File: aspell.info, Node: Spellchecking Individual Files, Next: Using Aspell as a Replacement for Ispell, Up: Basic Usage 3.1 Spellchecking Individual Files ================================== To use Aspell to spellcheck a file use: aspell check [OPTIONS] FILENAME at the command line where ‘FILENAME’ is the file you want to check and ‘OPTIONS’ is any number of optional options. Some of the more useful ones include: –mode=MODE the mode to use when checking files. The available modes are ‘none’, ‘url’, ‘email’, ‘markdown’, ‘html’, ‘tex’, ‘texinfo’, and ‘nroff’, among others. *Note Filter Options::. –dont-backup don’t create a backup file. Normally, if there are any corrections the Aspell utility will append ‘.bak’ to the existing file name and then create a new file with corrections made during spell checking. –sug-mode=MODE the suggestion mode to use where mode is one of ‘ultra’, ‘fast’, ‘normal’, ‘slow’, or ‘bad-spellers’. *Note Notes on the Different Suggestion Modes::. –lang=NAME/-l NAME the language the document is written in. The default depends on the current locale. –encoding=NAME encoding the document is expected to be in. The default depends on the current locale. –master=NAME/-d NAME the main dictionary to use. –keymapping=NAME the keymapping to use. Either ‘aspell’ for the default mapping or ‘ispell’ to use the same mapping that the Ispell utility uses. (For more information on the available options, please see *note Customizing Aspell::.) For example to check the file ‘foo.txt’: aspell check foo.txt and to check the file ‘foo.txt’ using the ‘bad-spellers’ suggestion mode and the American English dictionary: aspell check --sug-mode=bad-spellers -d en_US foo.txt If the ‘mode’ option is not given, then Aspell will use the extension of the file to determine the current mode. If Aspell was compiled with curses support and the ‘TERM’ environment variable is set to a capable terminal type then Aspell will use a nice full screen interface, otherwise it will use a simpler “dumb” terminal interface where the misspelled word is surrounded by two ’*’. In either case the interface should be self explanatory. If Aspell is compiled with a version of the curses library that support wide characters then Aspell can also check UTF-8 text. Furthermore, the document will be displayed in the encoding defined by the current locale. This encoding does not necessarily have to be the same encoding that the document is in. This means that is is possible to check an 8-bit encoding such as ISO-8859-1 on an UTF-8 terminal. To do so simply set the ‘encoding’ option to ‘iso-8859-1’. Furthermore it is also possible to check an UTF-8 document on an 8-bit terminal provided that the document can be successfully converted into that encoding.  File: aspell.info, Node: Using Aspell as a Replacement for Ispell, Next: Using Aspell with other Applications, Prev: Spellchecking Individual Files, Up: Basic Usage 3.2 Using Aspell as a Replacement for Ispell ============================================ As of GNU Aspell 0.60.1 Aspell should be able to completely replace Ispell for most applications. The Ispell compatibility script should work for most applications which expect Ispell. However there are some differences which you should be aware of. 3.2.1 As a Drop In Replacement ------------------------------ Aspell can be used as a drop in replacement for Ispell for programs that use Ispell through a pipe such as Emacs and LyX. It can also be used with programs that simply call the ‘ispell’ command and expect the original file to be overwritten with the corrected version. If you do not have Ispell installed on your system and have installed the Ispell compatibility script then you should not need to do anything as most applications that expect Ispell will work as expected with Aspell via the Ispell compatibility script. Otherwise, the recommended way to use Aspell as a replacement for Ispell is to change the ‘ispell’ command from within the program being used. If the program uses ‘ispell’ in pipe mode simply change ‘ispell’ to ‘aspell’. If the program calls the ‘ispell’ command to check the file, then change ‘ispell’ to ‘aspell check’. If that is impossible then the ‘run-with-aspell’ script can be used. This script modifies the path so that programs see the Ispell compatibility script instead of the actual true ‘ispell’ command. The format of the script is: run-with-aspell COMMAND where COMMAND is the name of the program with any optional arguments. The old method of mapping Ispell to Aspell is discouraged because it can create compatibility problems with programs that actually require Ispell such as Ispell’s own scripts. 3.2.2 Differences From Ispell ----------------------------- Nevertheless, Aspell is not Ispell, nor is it meant to completely emulate the behavior of Ispell. The ‘aspell’ command is not identical to the ‘ispell’ command when not used in “pipe” mode. If an application expects the ‘ispell’ command, then the Ispell compatibility script should be used instead. 3.2.2.1 Functionality of the Ispell Compatibility Script ........................................................ The Ispell compatibility script provides the following Ispell functionally. • The ability to check a file when called without any mode parameters. • The pipe or -a mode. • The list or -l mode. • The version or -v mode. A single line is returned which, while not being identical to the line Ispell returns, is sufficient to fool most programs. • The munch or -c mode. • The expand or -e mode. • The ability to dump the affix file when called with ’-D’. However the format of the affix file is different. Furthermore, not all languages have an affix file. However the Ispell script is currently unable to emulate the ’-A’ pipe mode. This is different from the normal pipe mode in that the special ‘&Include_File&’ command is recognized. 3.2.2.2 Recognized Options .......................... Aspell, and thus the Ispell compatibility script, recognizes most of the options that Ispell uses except for the ’-S’, ’-w’ and ’-T’ options. The Aspell command will simply ignore these options if it sees them. 3.2.2.3 Check Mode Compatibility ................................ The interface used by Aspell when checking individual files is slightly different than Ispell’s. In particular the default keymappings are not the same as the ones Ispell uses. However Aspell supports using the Ispell keymappings via the ‘keymapping’ option. To use the Ispell keymappings set the ‘kepmapping’ option to ‘ispell’. This can be done on the command line by using the command: aspell check --keymapping=ispell … or, when the Ispell compatible script is used: ispell --keymapping=ispell … The Ispell keymapping can always be used when the Ispell compatibly script is called by uncommenting the indicated line in the ‘ispell’ script. 3.2.2.4 Pipe Mode Compatibility ............................... The Aspell pipe mode should be identical to the Ispell pipe mode except if the line starts with a ’$$’ as that will trigger special Aspell only commands or if the line starts with a ’~’ which is ignored by Aspell. 3.2.2.5 Other Differences ......................... The compiled dictionary format is completely different than Ispell’s. Furthermore the format of the language data files’ are different than Ispell’s affix file. However, all known Ispell dictionaries were converted to Aspell format, except for Albanian (sq) as I was unable to find the source word list. The naming and format of the personal dictionary is also different. However, Ispell personal dictionaries can be imported using the ‘aspell-import’ script. *Note Using aspell-import::. The Ispell personal dictionary is simply a list of words while the Aspell one is a list of words with a header line. Thus it is also fairly easy to convert between the two. *Note Format of the Personal Dictionary::. 3.2.2.6 Missing Functionally ............................ The only major area where Ispell is superior to Aspell is in the handling of multi character letters such as old ASCII encoding of accented characters. However, Aspell can handle UTF-8 documents far better than Ispell can.  File: aspell.info, Node: Using Aspell with other Applications, Prev: Using Aspell as a Replacement for Ispell, Up: Basic Usage 3.3 Using Aspell with other Applications ======================================== 3.3.1 With Enchant Based Applications ------------------------------------- Enchant is a generic spell checking library with multiple backends used by many applications that provide spell checker functionality. Enchant is used by AbiWord; LyX; and via gspell and GtkSpell, a number of Gtk and GNOME applications. By default enchant is configured to prefer Hunspell over Aspell but this can easily be changed on a per-language basis. If you wish to use Aspell for a specific dictionary say, American English, make sure that the Aspell backend is installed (on Debian and Ubuntu based system it is included as part of the base package) then create the file ‘~/.config/enchant/enchant.ordering’ that contains the single line: en_US:aspell To test it. Restart the enchant based application and then compare the suggestion list with an application that used Aspell or by using the ‘aspell check’ or ‘aspell pipe’ commands. You can also prefer Aspell in general over Hunspell by instead using: *:aspell,hunspell Then if an Aspell dictionary is available Enchant should use it. 3.3.2 With Emacs and XEmacs --------------------------- Newer versions of Emacs should prefer ‘aspell’ over both ‘ispell’ and ‘hunspell’, if you find this is not the case, then adding the line: (setq-default ispell-program-name "aspell") to the end of your ‘.emacs’ file should convince Emacs to use Aspell. 3.3.3 With VIM -------------- To use Aspell in VIM you simply need to add the following line to your ‘.vimrc’ file: map ^T :w!:!aspell check %:e! % I use ‘Ctrl-T’ since that’s the way you spell check in ‘pico’. In order to add a control character to your ‘.vimrc’ you must type ‘Ctrl-v’ first. In this case ‘Ctrl-v Ctrl-t’. A more useful way to use Aspell, IMHO, is in combination with Newsbody () which is how I use it since VIM is my editor for my mailer and my news reader. map ^T\\1\\2:e! % map \\1 :w! map \\2 :!newsbody -qs -n % -p aspell check \\%f 3.3.4 With Pine --------------- To use Aspell in Pine simply change the option ‘speller’ to aspell --mode=email check To change the ‘speller’ option go to the main menu. Type ‘S’ for _setup_, ‘C’ for _config_, then ‘W’ for _where is_. Type in ‘speller’ as the word to find. The speller option should be highlighted now. Hit enter, type in the above line, and hit enter again. Then type ‘E’ for _exit setup_ and ‘Y’ to save the change. If you have a strong desire to check other people’s comments change ‘speller’ to aspell check instead which will avoid switching Aspell into email mode.  File: aspell.info, Node: Customizing Aspell, Next: Working With Dictionaries, Prev: Basic Usage, Up: Top 4 Customizing Aspell ******************** The behavior of Aspell can be changed by any number of options which can be specified at either the command line, the environment variable ‘ASPELL_CONF’, a personal configuration file, or a global configuration file. Options specified on the command line override options specified by the environment variable. Options specified by the environment variable override options specified by either of the configuration files. Finally options specified by the personal configuration file override options specified in the global configuration file. Options specified in the environment variable ‘ASPELL_CONF’, a personal configuration file, or a global configuration file will take effect no matter how Aspell is used which includes being used by other applications. Aspell has three basic types of options: "boolean", "value", and "list". "Boolean" options are either enabled or disabled, "value" options take a specific value, and "list" options can either have entries added or removed from the list. * Menu: * Specifying Options:: * The Options:: * Dumping Configuration Values:: * Notes on Various Options::  File: aspell.info, Node: Specifying Options, Next: The Options, Up: Customizing Aspell 4.1 Specifying Options ====================== 4.1.1 At the Command Line ------------------------- All options specified at the command line have the following basic format: --OPTION[=VALUE] where the ‘=’ can be replaced by whitespace. Some options also have single letter abbreviations of the form: LETTER [OPTIONAL_WHITESPACE VALUE] Any non-ASCII characters are expected to be in the encoding specified by the current locale. To reset an option to the default value, prefix the option with a ‘reset-’ and don’t specify a value. 4.1.1.1 Value options ..................... To specify a value option simply specify the option with its corresponding value. For example to set the filter mode to TeX use ‘--mode=tex’. If a value option has a single letter shortcut simply specify the single letter shortcut with its corresponding value. For example to use a the accented version of the American English dictionary use ‘-d en_US-w_accents’. 4.1.1.2 Boolean options ....................... To enable a boolean option simply specify the option without any corresponding value, or prefix it with an ‘enable-’. For example to create a backup file use ‘--backup’. To disable a boolean option prefix the option name with a ‘dont-’ or ‘disable-’. To avoid creating a backup file use ‘--dont-backup’. Boolean options can also be set directly like a value option where the value is either "true" or "false", for example ‘--backup=true’. If a boolean option has a single letter abbreviation simply give the letter corresponding to either enabling or disabling the option without any corresponding value. For example, to consider run-together words valid use ‘-C’ or to consider them invalid use ‘-B’ 4.1.1.3 List options .................... To add a value to the list, prefix the option name with an ‘add-’ and then specify the value to add. For example, to add the URL filter use ‘--add-filter url’. To remove a value from a list option, prefix the option name with a ‘rem-’ and then specify the value to remove. For example, to remove the URL filter use ‘--rem-filter url’. To remove all items from a list prefix the option name with a ‘clear-’ without specify any value. For example, to remove all filters use ‘--clear-filter’. A list option can also be set directly, in which case it will be set to a single value. To directly set a list option to multiple values prefix the option name with a ‘lset-’ and separate each value with a ‘:’. For example, to use the URL and TeX filter use ‘--lset-filter url:tex’. 4.1.2 Via a Configuration File ------------------------------ Aspell can also accept options via a personal or global configuration file. The exact files to used are specified by the options ‘per-conf’ and ‘conf’ respectively but the personal configuration file is normally ‘.aspell.conf’ located in the ‘HOME’ directory and the global one is normally ‘aspell.conf’ which is located in the ‘etc’ directory which is normally ‘/usr/etc’ or ‘/usr/local/etc’. To find out the particular values for your particular system use ‘aspell dump config’. Each line of the configuration file has the format: OPTION [VALUE] There may be any number of spaces between the option and the value however it can only be spaces, i.e. there is no ‘=’ between the option name and the value and there are no preceding ‘--’ as used on the command line. Comments may also be included by preceding them with a ‘#’ as anything from a ‘#’ to a newline is ignored. Blank lines are also allowed. To include a literal ‘#’ use ‘\#’. To include a literal ‘\’ use ‘\\’. Any other non-alpha character can also be protected by a ‘\’ if necessary. Any non-ASCII characters are expected to be in UTF-8. To reset an option to the default value prefix the option with a ‘reset-’ and don’t specify a value. Values set in the personal configuration file override those in the global file. Options specified at either the command line or via an environment variable override those specified by either configuration file. Note: Filters and corresponding options also may be assembled inside a special meta filter file named ‘METAFILTER.flt’. A filter has to be loaded via adding a ‘add-filter FILTERNAME’ line to the meta filter file before its options may be specified. 4.1.2.1 Value options ..................... To specify a value option simply include the option followed by the corresponding value. For example to set the default language to German use ‘lang german’. 4.1.2.2 Boolean options ....................... To specify a boolean option simply include the option followed by a ‘true’ to enable it or a ‘false’ to disable it. For example to allow run-together words use ‘run-together true’. 4.1.2.3 List options .................... To add a value to the list, prefix the option name with an ‘add-’ and then specify the value to add. For example to add the URL filter use ‘add-filter url’. To remove a value from a list option prefix the option name with a ‘rem-’ and then specify the value to remove. For example, to remove the URL filter use ‘rem-filter url’. To remove all items from a list prefix the option name with a ‘clear-’ without specifying any value. For example, to remove all filters use ‘clear-filter’. A list option can also be set directly, in which case it will be set to a single value. To directly set a list option to multiple values prefix the option name with a ‘lset-’ and separate each value with a ‘:’. For example, to use the URL and TeX filter use ‘lset-filter url:tex’. To include a literal ‘:’ use ‘\:’. 4.1.3 Via an Environment Variable --------------------------------- The environment variable ‘ASPELL_CONF’ may also be used and it overrides any options set in the configuration file. The format of the string is exactly the same as the configuration file except that semicolons (‘;’) are used instead of newlines.  File: aspell.info, Node: The Options, Next: Dumping Configuration Values, Prev: Specifying Options, Up: Customizing Aspell 4.2 The Options =============== The following is a list of available options broken down by category. Each entry has the following format: OPTION[,SINGLE-LETTER-ABBREVIATION] (TYPE) DESCRIPTION Where single letter options are specified as they would appear at the command line, ie with the preceding dash. Boolean single letter options are specified in the following format: -|- OPTION is one of the following: _boolean_, _string_, _file_, _dir_, _integer_, or _list_. _String_, _file_, _dir_, and _integer_ types are all value options which can only take a specific type of value. 4.2.1 Dictionary Options ------------------------ The following options may be used to control which dictionaries to use and how they behave (for more information see *note How Aspell Selects an Appropriate Dictionary::): master,-d (string) Base name of the dictionary to use. If this option is specified then Aspell will either use this dictionary or die. dict-dir (dir) Location of the main word list. lang (string) Language to use. It follows the same format of the ‘LANG’ environment variable on most systems. It consists of the two letter ISO 639 language code and an optional two letter ISO 3166 country code after a dash or underscore. The default value is based on the value of the ‘LC_MESSAGES’ locale. size (string) The preferred size of the word list. This consists of a two char digit code describing the size of the list, with typical values of: 10=tiny, 20=really small, 30=small, 40=med-small, 50=med, 60=med-large, 70=large, 80=huge, 90=insane. variety (list) Any extra information to distinguish two different words lists that have the same lang and size. word-list-path (list) Search path for word list information files. personal,-p (file) Personal word list file name. wordlists (list) UTF-8 files of additional words to accept. Non-word characters will be removed from the start and end of each word and if the word is then considered valid for the current language it will be added. Otherwise it will be silently ignored. The ‘--dont-clean-words’ option can be used to prevent the removal of non-word characters. The ‘--dont-skip-invalid-words’ can be used to try harder to accept the word; if a word contains a character that the language can’t handle it will still be ignored (for example a Cyrillic letter in a Latin based language). If words are not being added that you expect to, use the ‘aspell clean’ to find out why. repl (file) Replacements list file name. extra-dicts (list) Extra dictionaries to use. dict-alias (list) create dictionary aliases. Each entry has the form ‘FROM TO’. Will override any system dictionaries that are present. dont-use-other-dicts (boolean) Disable use of personal, replacement & session dictionaries. Any dictionaries specified using ‘extra-dicts’ will still be used. 4.2.2 Encoding Options ---------------------- These options control the encoding the document is expected to be in and how it is displayed. encoding (string) The encoding the input text is in. Valid values include, but not limited to, ‘iso-8859-*’, ‘utf-8’, ‘ucs-2’, ‘ucs-4’. When using the Aspell utility the default encoding is based on the current locale. Thus if your locale currently uses the ‘utf-8’ encoding than everything will be in UTF-8. The ‘ucs-2’ and ‘ucs-4’ encodings are intended to be used by other programs using the Aspell library and is not supported by the Aspell utility. normalize (boolean) Perform Unicode normalization. Enabled by default. norm-strict (boolean) Avoid lossy conversions when normalizing. Lossy conversions includes compatibility mappings such as splitting the letter ‘OE’ (U+152) into ‘O’ and ‘E’ (when the combined letter is not available), and mappings which will remove accents. Disabled by default except when creating dictionaries. norm-form (string) The normalization form the output should be in. This option primarily effects the normalization form of the suggestions as when spell checkering as the actual text is unchanged unless there is an error. Valid values are ‘none’, ‘nfd’ for fully decomposition (Normalization Form D), ‘nfc’ for Normalization Form C, or ‘comp’ for fully composed. ‘comp’ is like ‘nfc’ except that _full_ composition is used rather than _canonical_ composition. The ‘normalize’ option must be enabled for this option to be used. norm-required (boolean) Set to true when the current language requires Unicode normalization. This is generally the case when private use characters are used internally by Aspell or when Normalization Form C is not the same as full composition. 4.2.3 Checker Options --------------------- These options control the behavior of Aspell when checking documents. ignore,-W (integer) Ignore words with N characters or less ignore-repl (boolean) Ignore commands to store replacement pairs. save-repl (boolean) Save the replacement word list on save all. keyboard (file) The base name of the keyboard definition file to use (*note Notes on Typo-Analysis::) sug-mode (mode) Suggestion mode = ‘ultra’ | ‘fast’ | ‘normal’ | ‘slow’ | ‘bad-spellers’ (*note Notes on the Different Suggestion Modes::) sug-split-char (list) Characters to use when a word into two in the suggestion list. Setting this option to the empty list disables word splitting. ignore-case (boolean) Ignore case when checking words. ignore-accents (boolean) Ignore accents when checking words – _currently ignored_. 4.2.4 Filter Options -------------------- These options control Aspell’s filters that filter out text that should not be spell checked. mode (string) Sets the filter mode. A mode is a collection of individual filters that work well together. Possible values include, but not limited to, ‘none’, ‘url’ (the normal default), ‘email’, ‘markdown’, ‘html’, ‘tex’, ‘texinfo’, or ‘nroff’ (default for ‘aspell pipe’). For a complete list use ‘aspell dump modes’. The shortcut options ‘-e’ may be used for email, ‘-H’ for HTML, ‘-M’ for Markdown, ‘-t’ for TeX, or ‘-n’ for Nroff. filter (list) Individual filters to use, use ‘aspell dump filters’ for a complete list. filter-path (list) Where to look when loading filter and filter modes. 4.2.4.1 None filter mode ........................ The ‘none’ mode is exactly what it says. It turns off all filters. 4.2.4.2 URL filter .................. The ‘url’ filter/mode skips over URLs, host names, and email addresses. Because this filter is almost always useful and rarely does any harm it is enabled in all modes except ‘none’. To turn it off either select the ‘none’ mode or use ‘rem-filter’ option _after_ the desired mode is selected. 4.2.4.3 Email filter .................... The ‘email’ mode skips over quoted text. email-quote (list) Email quote characters. Defaults to ‘>’ and ‘|’. email-margin (integer) The number of characters that can appear before the quote character. Defaults to 10. 4.2.4.4 Markdown Filter ....................... The ‘markdown’ filter/mode skips over code and links in Markdown documents. The mode also handles HTML via the ‘html’ filter which runs after the Markdown filter. Properly parsing Markdown requires reading the entire document in at once, which doesn’t fit well into the existing filter framework so the filter parses the document a line at a time and makes a best guess when a line ends without enough information to correctly parse a tag. For example in the following: `This looks like inline code But it's not, because of the blank line. the first line will be incorrectly skipped. markdown-multiline-tags (boolean) Enables or disables support for HTML tags that might span multiple lines (outside of HTML blocks). Enabled by default (to disable from the command line use ‘--dont-markdown-multiline-tags’). markdown-skip-ref-labels (boolean) Controls if ref labels are skipped. For example, when this option is enabled ‘[ref]’ will be skipped over in: [link][ref] [ref]: #c2 "Chapter 2" Enabled by default (to disable from the command line use ‘--dont-markdown-skip-ref-labels’). The Markdown filter also supports the ‘markdown-raw-start-tags’ and ‘markdown-block-start-tags’ list options. These options are a list of HTML tags that start an HTML block. If the block starts with a tag listed in ‘markdown-raw-start-tags’ then the block ends with the corresponding closing tag. If the block starts with a tag listed in ‘markdown-block-start-tags’ then the block ends with a blank line. The defaults for these two options are taken from the CommonMark spec (version 0.29, 2019-04-06). 4.2.4.5 SGML filter ................... The SGML filter allows you to spell check SGML, HTML, XHTML, and XML files. In most cases everything within a tag ‘’ will be skipped by the spell checker. The SGML/HTML/XML that Aspell supports is a slight superset of most DTDs (Document Type Definitions) and can spell check the often non-conforming HTML found on the web. This filter will also translate SGML characters of the form ‘&#num;’. Other SGML characters such as ‘&’ will simply be skipped over so that the word ‘amp’, for example, will not be spell checked. Eventually full support for properly translating SGML characters will be added. sgml-skip (list) tags whose contents will also be skipped by the spell checker. For example, if you wish to leave a misspelling in a document and not have them flagged as misspellings, you could surround them with a tag: leviosa is what Mr. Potter said And put that word in the skip config directive: add-sgml-skip nospellcheck sgml-check (list) attributes whose values you do want spell checked. By default, ’alt’ ( alternate text) is a member of the check list since it is text that is seen by a web page viewer. You may also want ’value’ to be on the check list since that is the text put on buttons: add-sgml-check value In this case ‘’ will be flagged as a misspelling. 4.2.4.6 HTML filter ................... The ‘html’ filter is like the SGML filter but specialized for HTML. html-check (list) HTML attributes to always check, such as alt= (alternate text). html-skip (list) HTML tags to always skip the contents of, such as