\input texinfo @c -*-texinfo-*- @setfilename aspell.info @settitle GNU Aspell 0.60.3 @syncodeindex pg cp @documentencoding ISO-8859-1 @copying This is the user's manual for Aspell Copyright @copyright{} 2000--2005 Kevin Atkinson. @quotation 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". @end quotation @end copying @dircategory GNU Packages @direntry * Aspell: (aspell). GNU Aspell spelling checker @end direntry @titlepage @title GNU Aspell 0.60.3 @author Kevin Atkinson (@email{kevina@@gnu.org}) @page @vskip 0pt plus 1filll @insertcopying @end titlepage @contents @ifnottex @node Top @top GNU 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:: * Languages Which Aspell can Support:: * Language Related Issues:: * To Do:: * Installing:: * ChangeLog:: * Authors:: * Copying:: @detailmenu --- 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:: * 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 Run-together Words:: * Creating A New Character Set:: * Format of the Character Set Data File:: * Creating An Official Dictionary Package:: Implementation Notes * Aspell Suggestion Strategy:: * Notes on 8-bit Characters:: Languages Which Aspell can Support * Supported:: * Unsupported:: * Multiple Scripts:: * Planned Dictionaries:: * References:: Language Related Issues * Compound Words:: * Words With Symbols in Them:: * Unicode Normalization:: * German Sharp S:: * Context Sensitive Spelling:: To Do * Important Items:: * Other Items:: * Notes on Various Items:: Notes on Various Items * Word skipping by context:: * Hidden Markov Model:: * Email the Personal Dictionary:: Copying * GNU Free Documentation License:: * GNU Lesser General Public License:: @end detailmenu @end menu @end ifnottex @node Introduction @chapter 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 @uref{http://aspell.net} @section Comparison to other spell checker engines @multitable {Alternate Dictionaries} {Aspell} {Ispell} {Netscape} {Microsoft} @item @tab Aspell @tab Ispell @tab Netscape @tab Microsoft @item @tab @tab @tab 4.0 @tab Word 97 @item Open Source @tab x @tab x @item Suggestion @tab 88-98 @tab 54 @tab 55-70? @tab 71 @item Intelligence @item Personal part @tab x @tab x @tab x @item of Suggestions @item Alternate Dictionaries @tab x @tab x @tab ? @tab ? @item International Support @tab x @tab x @tab ? @tab ? @end multitable The Suggestion Intelligence is based on a small test kernel of misspelled/correct word pairs. Go to @uref{http://aspell.net/test} for more info and how you can help contribute to the test kernel. The current scores for Aspell are 88 in @emph{fast} mode, 93 in @emph{normal} mode, and 98 in @emph{bad spellers} mode: for more information about the various suggestion modes @ref{Notes on the Different Suggestion Modes}. If you have any other information you would like to add to this chart please contact me at @email{kevina@@gnu.org}. @subsection Comparison to Ispell @subsubsection Features that only Aspell has @itemize @bullet @item Is an actual library that other programs can link to instead of having to use it through a pipe. @item Does a much better job of suggesting possible replacements for a misspelled word than Ispell does or for that matter any other spell checker I have seen. If you know a spell checker that does a better job please let me know. @item Can learn from user's misspellings. @item Can easily check documents in UTF-8 without having to use a special dictionary. @item Has support for using multiple dictionaries at once. @item 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. @item Can share the memory used in the main word list between processes. @item 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. @end itemize @subsubsection Things that, currently, only Ispell has @itemize @bullet @item Lower memory footprint @item Ability to deal with arbitrary multi-character letters such as old ASCII encodings of accented letters. @item Perhaps better support for spell checking (La)TeX files. @end itemize For a detailed description of how Aspell differs from Ispell, @xref{Differences From Ispell}. @node Support @chapter 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 @uref{http://aspell.net}. Bug reports should be submitted via the Sourceforge Tracker at @uref{http://sourceforge.net/@/tracker/?group_id=245} rather than being posted to the mailing lists. @node Basic Usage @chapter Basic Usage For a quick reference on the Aspell utility use the command @command{aspell --help}. @menu * Spellchecking Individual Files:: * Using Aspell as a Replacement for Ispell:: * Using Aspell with other Applications:: @end menu @node Spellchecking Individual Files @section Spellchecking Individual Files To use Aspell to spellcheck a file use: @example aspell check [@var{options}] @var{filename} @end example @noindent at the command line where @code{@var{filename}} is the file you want to check and @code{@var{options}} is any number of optional options. Some of the more useful ones include: @table @b @item --mode=@var{mode} the mode to use when checking files. The available modes are @code{none}, @code{url}, @code{email}, @code{sgml}, @code{tex}, @code{texinfo}, @code{nroff}, among others. For more information on the various modes see @ref{Notes on Various Filters and Filter Modes}. @item --dont-backup don't create a backup file. @item --sug-mode=@var{mode} the suggestion mode to use where mode is one of @code{ultra}, @code{fast}, @code{normal}, or @code{bad-spellers}. For more information on these modes see @ref{Notes on the Different Suggestion Modes}. @item --lang=@var{name}/-l @var{name} the language the document is written in. The default depends on the current locale. @item --encoding=@var{name} encoding the document is expected to be in. The default depends on the current locale. @item --master=@var{name}/-d @var{name} the main dictionary to use. @item --keymapping=@var{name} the keymapping to use. Either @option{aspell} for the default mapping or @option{ispell} to use the same mapping that the Ispell utility uses. @end table For more information on the available options, please see @ref{Customizing Aspell}. For example to check the file @file{foo.txt}: @example aspell check foo.txt @end example @noindent and to check the file @file{foo.txt} using the @option{bad-spellers} suggestion mode and the American English dictionary: @example aspell check --sug-mode=bad-spellers -d en_US foo.txt @end example If the @option{mode} option is not given then Aspell will use the extension of the file to determine the current mode. If the extension is @file{.tex}, then @option{tex} mode will be used, if the extension is @file{.html}, @file{.htm}, @file{.php}, or @file{.sgml} it will check the file in @option{sgml} mode, otherwise it will use @option{url} mode. For more information on the various modes that can be used, see @ref{Notes on Various Filters and Filter Modes}. If Aspell was compiled with curses support and the @env{TERM} environment variable is set to a capable terminal type than 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 than 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 necessary 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 @option{encoding} option to @samp{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. @node Using Aspell as a Replacement for Ispell @section 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 their are some differences which you should be aware of. @subsection 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 @command{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 compatibly script than you should not need to do anything as most applications will 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 @command{ispell} command from within the program being used. If the program uses @command{ispell} in pipe mode simple change @command{ispell} to @command{aspell}. If the program calls the @command{ispell} command to check the file change @command{ispell} with @command{aspell check}. If that is impossible than the @command{run-with-aspell} script can be used. This script modifies the patch so that programs see the Ispell compatibility script instead of the actual true @command{ispell} command. The format of the script is: @example run-with-aspell @var{command} @end example @noindent where @var{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. @anchor{Differences From Ispell} @subsection Differences From Ispell Nevertheless, Aspell is not Ispell, nor is it meant to completely emulate the behavior of Ispell. The @command{aspell} command is not identical to the @command{ispell} command when not used in ``pipe'' mode. If an application expects the @command{ispell} command than the Ispell compatibility script should be used. @subsubsection Functionally of the Ispell Compatibility Script The Ispell compatibility script provides the following Ispell functionally. @itemize @bullet @item The ability to check a file when called with out any mode parameters. @item The pipe or -a mode. @item The list of -l mode. @item 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. @item The munch or -c mode. @item The expand or -e mode. @item 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. @end itemize However the Ispell script currently unable to emulate the the '-A' pipe mode. This is different from the normal pipe mode in that the special @code{&Include_File&} command is recognized. @subsubsection 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. @subsubsection 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 @option{keymapping} option. To use the Ispell keymappings set the @option{kepmapping} option to @code{ispell}. This can be done on the command line by adding using the command: @example aspell check --keymapping=ispell @dots{} @exdent or with the Ispell compatibility script ispell --keymapping=ispell @dots{} @end example The Ispell keymapping can always be used when the Ispell compatibly script is called by uncommenting the indicated line in the @command{ispell} script. @subsubsection 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. @subsubsection 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 been 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 @command{aspell-import} script. @xref{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. @xref{Format of the Personal Dictionary}. @subsubsection 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. @node Using Aspell with other Applications @section Using Aspell with other Applications @subsection With Emacs and XEmacs The easiest way to use Aspell with Emacs or XEmacs is to add this line: @verbatim (setq-default ispell-program-name "aspell") @end verbatim to the end of your .emacs file. For some reason version 3.0 of ispell.el (the lisp program that (x)emacs uses) want to reverse the suggestion list. To fix this add this line: @verbatim (setq-default ispell-extra-args '("--reverse")) @end verbatim after the previous line in your .emacs file and it should solve the problem. Ispell.el, version 3.1 (December 1, 1998) and better, has the list reversing problem fixed. You can find it at @uref{http://www.kdstevens.com/~stevens/ispell-page.html}. @subsection With LyX Version 1.0 of LyX provides support for Aspell's learning from user's mistakes feature. To use Aspell with LyX 1.0 either change the @option{spell_command} option in the @file{.lyxrc} file or use the @command{run-with-aspell} utility. @subsection With VIM @c @emph{(The following section was written by ``R. Marc'', rmarc at @c copacetic net.)} To use Aspell in VIM you simply need to add the following line to your @file{.vimrc} file: @verbatim map ^T :w!:!aspell check %:e! % @end verbatim I use @kbd{Ctrl-T} since that's the way you spell check in @command{pico}. In order to add a control character to your @code{.vimrc} you must type @kbd{Ctrl-v} first. In this case @kbd{Ctrl-v Ctrl-t}. A more useful way to use Aspell, IMHO, is in combination with Newsbody (@uref{http://www.image.dk/~byrial/newsbody/}) which is how I use it since VIM is my editor for my mailer and my news reader. @verbatim map ^T\\1\\2:e! % map \\1 :w! map \\2 :!newsbody -qs -n % -p aspell check \\%f @end verbatim @subsection With Pine To use Aspell in Pine simply change the option @option{speller} to @example aspell --mode=email check @end example To change the @option{speller} option go to the main menu. Type @kbd{S} for @emph{setup}, @kbd{C} for @emph{config}, then @kbd{W} for @emph{where is}. Type in @kbd{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 @kbd{E} for @emph{exit setup} and @kbd{Y} to save the change. If you have a strong desire to check other people's comments change @option{speller} to @example aspell check @end example @noindent instead which will avoid switching Aspell into email mode. @node Customizing Aspell @chapter 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 @env{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 @env{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 type of options: @dfn{boolean}, @dfn{value}, and @dfn{list}. @dfn{Boolean} options are either enabled or disabled, @dfn{value} options take a specific value, and @dfn{list} options can either have entries added or removed from the list. @menu * Specifying Options:: * The Options:: * Dumping Configuration Values:: * Notes on Various Options:: @end menu @node Specifying Options @section Specifying Options @subsection At the Command Line All options specified at the command line have the following basic format: @example --@var{option}[=@var{value}] @end example @noindent where the @samp{=} can be replaced by whitespace. However some options also have single letter abbreviations of the form: @example @var{letter} [@var{optional_whitespace} @var{value}] @end example 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 @samp{reset-} and don't specify a value. @subsubsection 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 @samp{--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 @samp{-d en_US-w_accents}. @subsubsection Boolean options To enable a boolean option simply specify the option without any corresponding value, or prefix it with an @samp{enable-}. For example to create a backup file use @samp{--backup}. To disable a boolean option prefix the option name with a @samp{dont-} or @samp{disable-}. For avoid creating a backup file use @samp{--dont-backup}. Boolean options can also be set directly like a value option where the value is either "true" or "false", for example @samp{--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 legal use @samp{-C} or to consider them illegal use @samp{-B} @subsubsection List options To add a value to the list, prefix the option name with a @samp{add-} and then specify the value to add. For example to add the URL filter use @samp{--add-filter url}. To remove a value from a list option prefix the option name with a @samp{rem-} and then specify the value to remove. For example to remove the URL filter use @samp{--rem-filter url}. To remove all items from a list prefix the option name with a @samp{clear-} without specify any value. For example to remove all filters use @samp{--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 @samp{lset-} and separate each value with a @samp{:}. For example to use the URL and TeX filter use @samp{--lset-filter url:tex}. @subsection 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 @option{per-conf} and @option{conf} respectively but the personal configuration file is normally @file{.aspell.conf} located in the @env{HOME} directory and the global one is normally @file{aspell.conf} which is located in the @file{etc} directory which is normally @file{/usr/etc} or @file{/usr/local/etc}. To find out the particular values for your particular system use @command{aspell dump config}. Each line of the configuration file has the format: @example @var{option} [@var{value}] @end example There may be any number of spaces between the option and the value however it can only be spaces, i.e. there is no @samp{=} between the option name and the value. Comments may also be included by preceding them with a @samp{#} as anything from a @samp{#} to a newline is ignored. Blank lines are also allowed. To include a literal @samp{#} use @samp{\#}. To include a literal @samp{\} use @samp{\\}. Any other non-alpha character can also be protected by a @samp{\} 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 @samp{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. @quotation Note Filters and corresponding options also may be assembled inside a special meta filter file named @file{@var{metafilter}.flt}. A filter has to be loaded via adding a @code{add-filter @var{filtername}} line to the meta filter file before its options may be specified. @end quotation @subsubsection Value options To specify a value option simply include the option followed by the corresponding option. For example to set the default language to German use @option{lang german}. @subsubsection Boolean options To specify a boolean option simply include the option followed by a @samp{true} to enable it or a @samp{false} to disable it. For example to allow run-together words use @samp{run-together true}. @subsubsection List options To add a value to the list, prefix the option name with a @samp{add-} and then specify the value to add. For example to add the URL filter use @samp{add-filter url}. To remove a value from a list option prefix the option name with a @samp{rem-} and then specify the value to remove. For example to remove the URL filter use @samp{rem-filter url}. To remove all items from a list prefix the option name with a @samp{clear-} without specifying any value. For example to remove all filters use @samp{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 @samp{lset-} and separate each value with a @samp{:}. For example to use the URL and TeX filter use @samp{lset-filter url:tex}. To include a literal @samp{:} use @samp{\:}. @subsection Setting Options via an Environment Variable The environment variable @env{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 (@samp{;}) are used instead of newlines. @node The Options @section The Options The following is a list of available options broken down by category. Each entry has the following format: @quotation @table @b @item @var{option}[,@var{single-letter-abbreviation}] @i{(@var{type})} @var{description} @end table @end quotation 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: @quotation -|- @end quotation @var{option} is one of the following: @emph{boolean}, @emph{string}, @emph{file}, @emph{dir}, @emph{integer}, or @emph{list}. @emph{String}, @emph{file}, @emph{dir}, and @emph{integer} types are all value options which can only take a specific type of value. @subsection Dictionary Options The following options may be used to control which dictionaries to use and how they behave (for more information see @ref{How Aspell Selects an Appropriate Dictionary}): @table @b @item master,-d @i{(string)} Base name of the dictionary to use. If this option is specified than Aspell will either use this dictionary or die. @item dict-dir @i{(dir)} Location of the main word list. @item lang @i{(string)} Language to use, it follows the same format of the @env{LANG} environment variable on most systems. It consists of the two letter @acronym{ISO 639} language code and an optional two letter @acronym{ISO 3166} country code after a dash or underscore. The default value is based on the value of the @env{LC_MESSAGES} locale. @item size @i{(string)} The preferred size of the word list. @item variety @i{(list)} Any extra information to distinguish two different words lists that have the same lang and size. @item word-list-path @i{(list)} Search path for word list information files. @c @item module-search-order (@i{list}) @c list of available modules, modules that come first on this list have a @c higher priority. Currently there is only one speller module. @item personal,-p @i{(file)} Personal word list file name. @item repl @i{(file)} Replacements list file name. @item extra-dicts @i{(list)} Extra dictionaries to use. @item dict-alias @i{(list)} create dictionary aliases. Each entry has the form @samp{@var{from} @var{to}}. Will override any system dictionaries that are present. @end table @subsection Encoding Options These options control the encoding the document is expected to be in and how it is displayed. @table @b @item encoding @i{(string)} The encoding the input text is in. Valid values include, but not limited to, @samp{iso-8859-*}, @samp{utf-8}, @samp{ucs-2}, @samp{ucs-4}. When using the Aspell utility the default encoding is based on the current locale. Thus if your locale currently uses the @samp{utf-8} encoding than everything will be in @acronym{UTF-8}. The @samp{ucs-2} and @samp{ucs-4} encodings are intended to be used by other programs using the Aspell library and is not supported by the Aspell utility. @item normalize @i{(boolean)} Perform Unicode normalization. Enabled by default. @item norm-strict @i{(boolean)} Avoid lossy conversions when normalizing. Lossy conversions includes compatibility mappings such as splitting the letter @samp{OE} (U+152) into @samp{O} and @samp{E} (when the combined letter is not available), and mappings which will remove accents. Disabled by default except when creating dictionaries. @item norm-form @i{(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 @samp{none}, @samp{nfd} for fully decomposition (Normalization Form D), @samp{nfc} for Normalization Form C, or @samp{comp} for fully composed. @samp{comp} is like @samp{nfc} except that @emph{full} composition is used rather than @emph{canonical} composition. The @option{normalize} option must be enabled for this option to be used. @item norm-required @i{(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. @end table @subsection Checker Options These options control the behavior of Aspell when checking documents. @table @b @item ignore,-W @i{(integer)} Ignore words with N characters or less @item ignore-repl @i{(boolean)} Ignore commands to store replacement pairs. @item save-repl @i{(boolean)} Save the replacement word list on save all. @item keyboard @i{(file)} The base name of the keyboard definition file to use (@pxref{Notes on Typo-Analysis}) @item sug-mode @i{(mode)} Suggestion mode = @samp{ultra} | @samp{fast} | @samp{normal} | @samp{slow} | @samp{bad-spellers} (@pxref{Notes on the Different Suggestion Modes}) @item ignore-case @i{(boolean)} Ignore case when checking words. @item ignore-accents @i{(boolean)} Ignore accents when checking words -- @emph{currently ignored}. @end table @subsection Filter Options These options modify the behavior of the Aspell filter interface in general (for more information see @pxref{Notes on Various Filters and Filter Modes}). @table @b @item filter @i{(list)} filters to use @item filter-path @i{(list)} Where to look when loading filter and filter modes. @item mode @i{(string)} Sets the filter mode. Possible values include, but not limited to, @samp{none}, @samp{url}, @samp{email}, @samp{sgml}, or @samp{tex}. (The shortcut options @option{-e} may be used for email, @option{-H} for HTML, or @option{-t} for @TeX{}). @end table These options belong to filters packaged along with Aspell standard distribution. These options may be prefixed by the keyword @code{f-} in order to explicitly indicate that they are options recognized by a filter and not by Aspell itself. @subsubsection email This filter hides quoting characters and email preamble and other parts of an email which need not to be spell checked. @table @b @item email-quote @i{(list)} Email quote characters. @item email-margin @i{(integer)} The number of characters that can appear before the quote character @end table @subsubsection html This filter converts an HTML source file into a format which eases spell checking of HTML texts by Aspell. @table @b @item html-check @i{(list)} HTML attributes to always check, such as alt= (alternate text). @item html-skip @i{(list)} HTML tags to always skip the contents of, such as