summaryrefslogtreecommitdiff
path: root/support/amspell/amspell.doc
blob: 2081aff8c081cf58744c0ce7956311bacfa3dee7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
=================
     amSpell
=================


A spell checker for ASCII and (La)TeX files
===========================================


Concepts
--------

amSpell is basically a spell checker for plain ASCII files, with some 
special features for dealing with TeX files. The program is written in 
Turbo Pascal and runs on any MS-DOS computer.

The basic idea behind this program is to make spell checking easier by

*  providing the context of the possibly misspelled word;
*  offering alternatives;
*  offering facilities for editing the word;
*  automatically replacing wrong words by the indicated words;
*  learning new words.


amSpell and (La)TeX
-------------------

amSpell does not require TeX commands to be removed. In fact, it will even 
interpret the standard accenting commands like \", \`, \' and will
automatically use them while replacing wrongly spelled words. When checking 
a TeX file amSpell will ignore all text between $'s and $$'s. Furthermore, 
amSpell will ignore the parameter of the LaTeX commands \ref, \pageref, 
\cite, \nocite, label, and all text between \begin{equation}, 
\begin{eqnarray}, \[ and their counterparts such as \]. All words starting 
with a backslash are ignored.

Naturally amSpell will conform to the capitalization in each word.

amSpell is DesqView aware. If DesqView is active, then for simple screen 
writes, it uses the BIOS and for intensive screen writes, it uses the 
Virtual Screen Buffer of DV.


Dictionaries
------------

It is convenient to make amSpell use three types of input files:

*  A file containing all jargon and correct words not included in the
   dictionary files;
*  The dictionary files: usually about 26 files, each containing all words
   with the same initial, e.g., US.00A, US.00B etc.;
*  Plus of course the file that needs to be checked.

Files of the first and third type should be kept sorted alphabetically, 
i.e., according to the ASCII table. This means that, e.g., french words 
starting with ‚ should not be appended to FR.00E, but should be separated 
in a file called FR.00‚.

These files should be plain text files containing just one word per line.
A compression program is provided (SPCOMP.EXE) as well as a decompression 
program (SPDECOMP.EXE). Compression speeds up the reading of a file and 
saves disk space.

The dictionary files are split into about 26 sections, according to the 
initial of a word. There are two reasons for this approach:

1.  Separate files are relatively easy to edit.
2.  This sectioning enables amSpell to find alternatives for words that are 
    not in the dictionaries. amSpell will look for words with the same 
    initial that somehow `look' like it, in order to correct common typing 
    errors. E.g., if you typed `egnlisch' amSpell will suggest `english' as 
    correction, but it will not find the correct spelling of `Ugoslavia'.


Parameters
----------

If you start amSpell without any parameters it will show the screen below:

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
amSpell 2.03 - Ascii/TeX SpellingChecker - Copyright (c) A. Merckens  92-08-01

All words in the input file will be checked using one or more dictionaries.
SPELL -? for more help.                                    ^Break to ABORT.

Input file                   Inputfil
Output file                  wrong.spl
Batch of Dictionaries (Y/N)  N
Dictionary                   NONE
Auxiliary dictionary         NONE

Occurrences (Y/N)            N          Capitalization (Y/N)         N
Multiple occurrences (Y/N)   N          TeX text (Y/N)               N
Linenumbers (Y/N)            N          Unsorted dictionaries (Y/N)  N
Suggestions (Y/N)            N          Edit misspelled words (Y/N)  N
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

You can interactively enter your file names and parameters.

If you want to know more about the parameters you may enter AMSPELL -? in 
which case amSpell will show the screen below:

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
amSpell 2.03 - Ascii/TeX SpellingChecker - Copyright (c) A. Merckens  92-08-01
                                                                                
Call: AMSPELL <options> <inputfile> <outputfile> <dict1> <dict2> <@optionfile>
Options are:                                                                    
  /b   - up to 100 dictionaries are named in a "Batch" file                     
  /c   - write words with Capitalization based on first occurrence              
  /d   - Directvideo off - use BIOS to write to screen                          
  /e   - Edit the misspelled words; this option puts /m on, /l and /o off       
         Words can be 'learned', i.e. appended to the file LEARNSPL.SPL         
         When editing, F1 gives help on the function of special keys            
  /h   - this Help                                                              
  /i   - Ignore missing directories                                             
  /k   - sKip spellingscheck - all words are misspelled                         
  /l   - write Linenumbers along with the words                                 
  /m   - remember Multiple occurrences with different capitalization
  /n   - Not so many screen updates (somewhat faster)                           
  /o   - write number of Occurrences of the words                               
  /q   - be Quiet: do not ask for confirmation of the command-line              
  /s[i]- search for similar words: give up to i*5 Suggestions, i=1..9           
  /t   - TeX text: do not check formulae, labels, references, cites             
  /u   - the dictionaries are Unsorted                                          
  /v   - Verify off: delete existing output file                                
  /z   - Zero screen writes                                                     
  /_   - ignore words containing an _                                           
  /0   - ignore words containing digits 0-9
  /1   - <inputfile> is not a file but a word to be checked                     
  /-   - the symbol - is NOT a word separator                                   
  /'   - the symbol ' IS a word separator

The options may be specified in the so called optionfile
                                                                                
The dictionary files are assumed to have one "word" per line,                   
or have the special SPL format.                                                 
                                                                                
The special name "NONE" means: no dictionary                                    
                                                                                
If /b is specified, then <dict1> is a "batch" file that contains                
all filenames of the dictionaries to be used.                                   
                                                                                
Copyright (C) 1992 A. Merckens - Internet: ambase@rugr86.rug.nl
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Here is a more detailed description of all parameters:
/b    up to 100 dictionaries are named in a "batch" file.
      A batch file will typically look like this:
         correct.us
         c:\tex\spell\us.00a
         c:\tex\spell\us.00b
         ...
         c:\tex\spell\us.00z
      The first line specifies the name of the file that contains correctly 
      spelled words that are not in the dictionaries (usually jargon, 
      author names etc.). The next 26 or so specify the dictionaries from a 
      through z.
      You may use environment parameters in this file. Example:
         correct.%LANG%
         %DRIVE%%SPELLDIR\us.00a
         %SPELLDIR\us.00b
         ...
         %SPELLDIR%\us.00z
      Now you can dynamically set %LANG%, %DRIVE% and %SPELLDIR% before you 
      start amSpell.
/c    write words with Capitalization based on first occurrence.
/d    Directvideo off -- use BIOS to write to screen. Use this switch if 
      your screen gets messy or shows `snow' running amSpell. This might be 
      the case on old CGA screens.
/e    Edit the misspelled words; this option puts /m on, /l and /o off. 
      Words can be `learned', i.e. appended to the file correct.us. When
      editing, F1 gives help on the function of special keys.
/h    this Help.
/i    Ignore missing directories. Normally amSpell will pause every time a 
      file or directory could not be found. It will ask whether it should 
      continue or abort. This switch will cause amSpell to ignore missing 
      files or directories.
/k    sKip spellingscheck --- all words are misspelled.
/l    write Linenumbers along with the words.
/m    remember Multiple occurrences with different capitalization.
/n    Not so many screen updates (somewhat faster).
/o    write number of Occurrences of the words.
/q    be Quiet: do not ask for confirmation of the command-line.
/s[i] search for similar words: give up to i*5 Suggestions, i = 1..9. If 
      amSpell encounters an unknown word it will search its dictionaries to 
      find alternatives. No more than i alternatives will be presented.
/t    TeX text: do not check formulae, labels, references, cites. This 
      switch makes amSpell ignore all text between $'s, $$'s, 
      \begin{equation}, \begin{eqnarray}, \[ and their counterparts, plus 
      the parameters of \ref, \pageref, \cite, \nocite and \label. All 
      words starting with a backslash are ignored.
/u    the dictionaries are Unsorted. This is not recommended because it 
      will slow down amSpell.
/v    Verify off: delete existing output file. amSpell will not ask whether 
      an existing output file should be overwritten.
/z    Zero screen writes. This switch suppresses all screen output.
/_    ignore words containing an underscore. May be useful for file names 
      in text.
/0    ignore words containing digits 0-9.
/1    <inputfile> is not a FILE but a WORD to be checked. This is 
      especially useful when using an editor macro for checking the word at 
      the cursor position.
/-    the symbol - is NOT a word separator. If your text contains e.g. 
      `outpufile' amSpell will look up `output' and `file'. However, if 
      this switch in on it will look up `output-file'.
/'    the symbol ' IS a word separator. Like the  switch.


Example of application
----------------------

Although it is possible to run amSpell interactively, it is must more
convenient to run it from an MS-DOS batch file, especially if you want to 
check your text AND correct it automatically.

A typical batch file to check the spelling of a TeX file, and correct it
will look something like this
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
   echo off
   set FNAME=%1
   set LANG=%2
   del wrong.spl
   spell.exe %FNAME%.tex wrong.spl alldicts.%LANG% @options.spl
   if not exist learnspl.spl goto nothinglearned
   copy learnspl.spl+correct.%LANG%
   spell.exe learnspl.spl correct.%LANG% @sort.opt
   del learnspl.spl
   :nothinglearned
   if not exist wrong.spl goto nowrongspl
   copy wrong.spl %FNAME%.tex
   del wrong.spl
   :nowrongspl
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

where options.spl look like this:
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
   /0 /t /b /c /m /s2 /q /n /_ /e /v /i /'
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

and sort.opt will look like this:
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
   /q /k /c /_ /v /z
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

correct.us might look like
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
   draggled
   objectfunction
   parser
   scalar
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Note that amSpell is run twice: the first time to correct the spelling, 
writing the new file wrong.spl; the second time to append the newly learned 
words (in the file learnspl.spl) to the file correct.us and sort them.


The user interface
------------------

When you start amSpell in the way described above, amSpell will first read 
your text and look up all the words it found in the dictionaries and you 
own jargon file (e.g., correct.us). Then it will search its dictionaries 
again to find alternatives for words it does not know.

For each unknown word it displays the context, and provides alternatives 
(if possible). Below you can see what the screen looks like (somewhat 
compressed) when amSpell encounters the word `LaserWriter'.

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
amSpell 2.03 - Ascii/TeX SpellingChecker - Copyright (c) A. Merckens  92-08-01

so very complex documents with a lot of fonts can easily be printed even        
on PostScript printers without much memory, such as the original Apple          
LaserWriter.  The PostScript output is also compact, requiring less disk        
space to store and making it feasible as a transfer format.                     
                                                                                
----------------------------------------------------------------------[F1 help]
                             LaserWriter                                        
Liverworts          Legislators         Legislatress        Liverwurst          
Legislatrix         Legislatures        Lubricators         Liferentrix         
Liposarcomata       Liverwort                                                   
                                                                                
                                                                                
LaserWriter
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

The word `LaserWriter' is inverted and you can choose one of the 
alternatives or edit the word yourself. Below you can see
all the keys amSpell accepts.

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
amSpell 2.03 - Ascii/TeX SpellingChecker - Copyright (c) A. Merckens  92-08-01
                                                                                
so very complex documents with a lot of fonts can easily be printed even        
on PostScript printers without much memory, such as the original Apple          
LaserWriter.  The PostScript output is also compact, requiring less disk        
space to store and making it feasible as a transfer format.                     

----------------------------------------------------------------------[F1 help]
Information on special keys when correcting spelling                            
Enter                    : Accept word for this time                            
^Enter                   : Learn word <appended to file LEARNSPL.SPL>           
F10                      : Stop correcting and write changes to file            
Left, Right, End, Home   : Keys used for editing selected word                  
Ins                      : Toggle Insert/Overwrite Mode                         
Del, BS                  : Delete character On/Before cursorposition            
Down, Up                 : Move to Next/Previous word                           
Pg-Dn, Pg-Up             : Move to word one line Down/Up                        
^T, ^Y                   : Remove rest of line                                  
^BREAK                   : Abort                                                
                                                    [Press any key to continue] 
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++


Utility programs
----------------

Along with amSpell some utility programs are provided to enable you to edit 
dictionaries or make your own.

* SpDecomp: This program decompresses dictionaries.
  The syntax is: SPDECOMP [inputfile] [outputfile]. Default inputfile and 
  outputfile are the console. Example: spdecomp us.00a us.a.

* SpComp: This program compresses dictionaries.
  The syntax is: SPCOMP [inputfile] [outputfile]. Default inputfile and 
  outputfile are the console. Example: spcomp us.00a us.a. Note that 
  compressing is not required. amSpell reads both normal text files and 
  compressed files.

* In case you merge dictionaries, you may want to exclude double entries. 
  You can use amSpell to write a sorted output file leaving out all double
  entries.
  Call amSpell like this: AMSPELL <inputfile> <outputfile> @NODOUBLE.OPT
  Because amSpell does not require words to be on separate lines, you can
  even use this trick to generate a dictionary from a standard text file.

* ABC: If you have a wordlist file that contains all words starting with a, 
  b, c etc., you can use this program to split it into separate files 
  according to the word initials. Naturally, the file must be sorted 
  alphabetically.
  The syntax is: ABC <inputfile>. The program will produce the files 
  words.00x, where x stands for the initial of a word. It starts a new file 
  (new x) for each initial.

* CrLf: Wordlists copied from a Unix system typically end each line of text 
  by a lone `CarriageReturn'. MS-DOS programs (like ABC and amSpell) will 
  only work correctly on files that end each line of text by a 
  `CarriageReturn' + `LineFeed'. CrLf can convert Unix files to MS-DOS 
  files.
  The syntax is: CRLF [inputfile1 inputfile2 ...]. Default inputfile is the 
  console. For each file it will ask confirmation for conversion.


Availability
------------

amSpell is available on many anonymous file servers such as Simtel. It is 
FREE OF CHARGE and may be used by anyone who wishes to. So, also in a 
commercial/educational environment. However, you are not allowed to remove 
the Copyright Statement, or to sell this program, or bundle it with other 
(commercial) goods. You may give it to anyone you like, but only in its 
original form with the complete documentation.

If you have any (positive or negative) comments or suggestions, we would 
like to hear from you.

Furthermore, we will not be held liable for any misfortune that may or may 
not happen to you, which may or may not be the result of using or not using 
this program. In other words, the usual disclaimer applies here.


Support
-------

In case you have questions about amSpell, or have suggestions for 
improvements, or found a bug, please contact:
Erik Frambach
Faculty of Econometrics
University of Groningen
Netherlands
Email: E.H.M.Frambach@eco.rug.nl
or     frambach@rugr86.rug.nl


Acknowledgments:

The idea of creating amSpell sprouted from the minds of the "TeX group":
Wietse Dol, Maarten van der Vlerk, Erik Frambach. This group gave me much
feedback on amSpell. Especially Erik Frambach, who has not only written this
documentation (except for these few lines), given me numerous useful
suggestions and pointed me to some bugs, but is also willing to handle all
questions about amSpell. Thanks, Erik!


Program history:
* version 2.03
  Name changed from Spell to amSpell. Donated to public domain. Fixed some 
  minor bugs and added some features: accent on first letter of word no 
  longer disappears; all words starting with a backslash ignored 
  (texcom.spl now obsolete); treat \[ like \begin{equation}, and likewise \];
  expand environment parameters in filenames.
* version 2.02
  Minor bug fixes.
* version 2.01
  amSpell released for small public.
* version 2.0
  Major user interface change + many bugs fixed
* version 1.0
  First release.


Other software donated to the public:

ACD - Another Change Directory; quickly change between directories;
      Is better than and has more options than LCD or NCD.
      Current version ACD210.ZIP - date: August 1, 1992