ISPELL(1)

JMÉNO
ispell, buildhash, munchlist, findaffix, tryaffix, icombine, ijoin - Interaktivní korektor překlepů

POUŽITÍ
ispell [společné-volby] [-M|-N] [-L řádků] [-V] soubory
ispell [společné-volby] -l
ispell [společné-volby] [-f soubor] [-s] [-a|-A]
ispell [-d soubor] [-w znaky] -c
ispell [-d soubor] [-w znaky] -e[úroveň]
ispell [-d soubor] -D
ispell -v[v]

společné-volby:
    [-t] [-n] [-H] [-b] [-x] [-B] [-C] [-P] [-m] [-S] [-d soubor] [-p soubor] [-w znaky] [-W n] [-T typ] [-kjméno seznam] [-F program]

buildhash [-s] dict-soubor afix-soubor hash-soubor
buildhash -s počet afix-soubor

munchlist
    [-l aff-soubor] [-c conv-soubor] [-T sufix]
    [-s hash-soubor] [-D] [-v] [-w znaky] [soubory]

findaffix
    [-p|-s] [-f] [-c] [-m min] [-M max] [-e elim]
    [-t tabchar] [-l min-počet] [soubory]

tryaffix [-p|-s] [-c] expandovaný-soubor afix[+přídavek]

icombine [-T typ] [aff-soubor]

ijoin [-s|-u] volby-pro-join soubor1 soubor2

POPIS

Korektor překlepů ispell vychází z programu spell pro ITS, který byl na systému Twenex přejmenován na ispell. Nejčastěji se používá pro interaktivní kontrolu obsahu souboru příkazem "ispell jméno_souboru". Při ní ispell přeskakuje všechna jemu známá slova; slovo, které nemá ve slovníku, považuje za překlep, zobrazí je v horní části obrazovky, a umožní uživateli jeho opravu. Na obrazovce se zobrazuje i část kontrolovaného souboru - řádek obsahující neznámé slovo a řádek předchozí. Je-li použitý terminál schopen zvýrazňovat text inverzním zobrazením, bude neznámé slovo zvýrazněno. Jsou-li ve slovníku "podobná slova" (taková, která se od neznámého slova odlišují změnou jediného písmene, vypuštěním nebo přidáním jednoho písmene, přehozením dvojice písmen, anebo lze-li vložením mezery, pomlčky či spojovníku rozdělit neznámé slovo na dvě slova uvedená ve slovníku), budou zobrazena jako možné opravy na následujících řádcích. Kromě nich ispell zobrazuje i takzvané odhady. Odhad je způsob, jak získat neznámé slovo z některého základního tvaru uvedeného ve slovníku použitím libovolných odvozovacích pravidel ze souboru afixů (za bezchybná jsou považována slova získaná výhradně použitím pravidel povolených pro daný základní tvar). Navrhované opravy jsou očíslovány, odhady jsou označeny otazníky. Pokud je neznámé slovo chybné, může jej uživatel opravit vybráním jedné z navrhovaných oprav nebo napsáním správného slova. Správné slovo, které ispell nezná, může uživatel zařadit do svého osobního slovníku. Požadovaná akce se vybere jedním z následujících jednopísmenných příkazů (mohou být zadány velkými i malými písmeny):

    mezera
        Tento výskyt neznámého slova neopravovat.

    0-n Slovo nahradit navrhovanou opravou se zadaným číslem.

    R   Replace - ručně zadat opravu chybného slova.

    A   Accept - považovat slovo za správné do konce tohoto spuštění programu ispell.

    I   Insert - slovo považovat za správné a vložit jej (přesně v uvedeném tvaru, včetně použití velkých písmen) do osobního slovníku.

    U   Uncapitalized - slovo považovat za správné a převedené na malá písmena jej vložit do osobního slovníku.

    L   Look up - zkontrolovat, zda se slovo vyskytuje v systémovém slovníku (určeném při překladu programu ispell volbou WORDS).

    X   eXit - zapsat aktuální stav opravovaného souboru na disk a zahájit zpracování případného dalšího souboru.

    Q   Quit - ukončit program ispell a opravovaný soubor ponechat beze změn.

    !   Vyvolat interpret příkazů (návrat příkazem exit).

    ^L  Překreslit obrazovku.

    ^Z  Suspendovat ispell (pokračovat příkazem fg).

    ?   Zobrazit nápovědu.

Podle hodnoty volby MINIMENU zadané při překladu programu ispell může být ve spodní části obrazovky zobrazen řádek se seznamem výše uvedených příkazů. Jeho zobrazení lze vynutit volbou -M. Naopak volbou -N se zobrazení této nápovědy potlačí.

Volbou -L lze stanovit, kolik řádků kontrolovaného souboru se má při opravování zobrazovat. Implicitní hodnota je vypočítána jako určitá část velikosti obrazovky. Počet řádků je omezen systémově závislým limitem.

Při použití volby -V budou jiné než tisknutelné ASCII znaky zobrazovány ve stylu příkazu "cat -v", a to i v případě, že ispell na vašem systému tyto znaky považuje za zobrazitelné ISO Latin-n znaky. Tato volba může posloužit na starších terminálech. Bez ní bude ispell osmibitové znaky povolené pro příslušný formát souboru zobrazovat jak jsou.

V "normálním" režimu nebo při použití voleb -l, -a či -A a v interaktivním režimu (viz níže) lze v příkazovém řádku použít také následující společné volby:

    -t  Vstupní soubor je ve formátu TeX nebo LaTeX.

    -n  Vstupní soubor je ve formátu nroff/troff.

    -H  Vstupní soubor je ve formátu SGML/HTML. (Tato volba by se měla jmenovat -s, ale ta byla v minulosti použita pro jiný účel.)

    -b  Bude vytvořen záložní soubor se jménem vzniklým přidáním přípony ".bak" ke jménu vstupního souboru.

    -x  Záložní soubor bude smazán.

    -B  Spojená slova budou považována za povolené složeniny.

    -C  Spojená slova budou považována za překlep (chybějící mezeru).

    -P  Nebudou se generovat zvláštní kombinace kořen/afix.

    -m  Budou se generovat kombinace kořen/afix neuvedené ve slovníku.

    -S  Seznam odhadů bude tříděn podle pravděpodobné správnosti.

    -d soubor
        Jméno alternativního hašovaného souboru se slovníkem (příponu .hash není třeba uvádět). Například pomocí -d czech lze v české instalaci vybrat český slovník.

    -p soubor
        Určuje jméno souboru s alternativním osobním slovníkem.

    -w znaky
        Udává, které další znaky mohou být částí slova.

    -W n
        Udává maximální délku slov, která jsou automaticky považována za správná.

    -T typ
        Předpokládá, že všechny soubory jsou zadaného typu.

Volby -H, -n a -t určují, zda ispell očekává vstupní soubor ve formátu HTML (-H), nroff/troff (-n) nebo TeX/LaTeX (-t). (Implicitní hodnota je určena volbou DEFTEXFLAG při instalaci, ale obvykle je z historických důvodů nastavena na režim nroff/troff.) Pokud není změněna některou z voleb pro nastavení formátu, bude při zpracování souboru, jehož jméno má příponu ".tex", nastavena na TeX/LaTeX a při zpracování souboru, jehož jméno má příponu ".html" nebo ".htm" na HTML. V režimu HTML nebudou kontrolovány HTML značky mezi <>. Budou však kontrolovány hodnoty atributů "ALT=" (pokud okolo rovnítka nejsou mezery).

V režimu pro TeX/LaTeX ispell přeskakuje znaky za zpětnými lomítky ("\"), dokud nenalezne mezeru nebo oddělovač TeXu/LaTeXu. Jisté příkazy obsahují argumenty, které nemají být kontrolovány (například návěští a jména referencí v příkazu \cite), protože mohou obsahovat libovolné neslovní argumenty. Kontrola překlepů je také potlačena v matematickém režimu. Například v textu

    \chapter {Tato kpitola} \cite{SCH86}

ispell označí za chybné slovo "kpitola" ale nikoli "SCH". Volba -t nerozpoznává komentářové znaky "%" TeXu, takže jsou kontrolovány i komentáře. Není-li dodržena správná syntaxe, mohou být omylem kontrolovány i příkazy LaTeXu. Také argumenty řídce používaných příkazů a některé volitelné argumenty mohou být někdy kontrolovány omylem. Bibliografie nebude kontrolována, jestliže byl ispell byl přeložen s definovanou volbou IGNOREBIB. Nikdy nebudou kontrolovány jména referencí.

Reference pro bibliografický systém tib tvořené textem mezi ``[.'' nebo ``<.'' a ``.]'' nebo ``.>'', budou v režimu TeX/LaTeX vždy ignorovány.

Při použití voleb -b nebo -x vytvoří ispell pro každý kontrolovaný soubor záložní (.bak) kopii obsahující původní text před kontrolou překlepů. Pokud při práci se souborem dojde k chybě, bude možné obnovit původní dokument ze záložního souboru - a to i při použití volby -x, která určuje, že po bezchybném skončení se má záložní soubor smazat. Implicitní nastavení této vlastnosti je určeno hodnotou konstanty DEFNOBACKUPFLAG při překladu.

Volby -B a -C stanovují, jak bude ispell zpracovávat spojená slova, jako "aletaké" místo "ale také". S volbou -C budou taková slova považována za chybná, a ispell bude vypisovat jejich variace s vloženými mezerami nebo pomlčkami jako možné opravy. Je-li zadána volba -B, budou spojená slova považována za povolené složeniny, pokud jsou obě komponenty ve slovníku, a každá komponenta je přinejmenším tak dlouhá jako jazykově závislé minimum (implicitně 3 znaky). Volba může být užitečná pro jazyky jako je němčina a norština, kde se mnoho složených slov vytváří prostým zřetězením. (Složeniny ze tří nebo více základních slov však budou stále považovány za chybu). Implicitní hodnota pro tuto volbu je jazykově závislá; ve vícejazyčných instalacích může záviset na zvoleném slovníku.

Volby -P a -m určují, kdy bude ispell pro slova, která nejsou ve slovníku, zobrazovat odhadnuté kombinace kořen+afix (položky tvaru ??: Božetěch+ovi v seznamu nabízených oprav). Správná slova pak můžete přidat do svého osobního slovníku. S volbou -P budou tyto odhady zobrazovány pouze v případě, že neexistuje žádná jiná oprava; s volbou -m budou zobrazovány vždy. To může být užitečné, pokud slovník obsahuje omezený seznam slov, nebo pokud slovům v seznamu nejsou přiřazeny všechny správné afixy. Při používání této volby však musíte být opatrní, protože může generovat chybná slova. Implicitní hodnota je určena použitým slovníkem.

Volba -S potlačuje implicitní třídění seznamu oprav slova. Tím se v některých případech může zvýšit pravděpodobnost, že správné slovo bude na začátku seznamu.

Pomocí volby -d lze zadat jméno souboru s jiným hašovaným slovníkem - například pro jiný jazyk. Pokud zadané jméno souboru neobsahuje znak "/", bude ispell soubor hledat ve stejném knihovním adresáři, jako je soubor s implicitním slovníkem. Pokud chcete použít slovník umístěný v aktuálním adresáři, je nutné zadat "-d ./slovnik.hash". V současné verzi programu ispell již nelze jako slovník použít soubor /dev/null, protože slovník musí obsahovat tabulku afixů. Jestliže potřebujete efektivně prázdný slovník, vytvořte seznam obsahující jedinou položku s nepravděpodobným řetězcem (např. "qqqqq").

Volba -p se používá pro zadání alternativního osobního slovníku. Jestliže jméno souboru nezačíná znakem "/", předřadí se mu $HOME. Stejným způsobem definuje jméno osobního slovníku proměnná prostředí WORDLIST. Volba z příkazového řádku má přednost před nastavením pomocí WORDLIST. Jestliže není použita ani volba -p, ani není nastavena proměnná prostředí WORDLIST, bude ispell hledat osobní slovník v aktuálním adresáři a poté v $HOME; pokud ani jeden nebude nalezen, vytvoří slovník v $HOME. Jméno souboru s uživatelským slovníkem je implicitně vytvořeno předřazením řetězce ".ispell_" před jméno základního slovníku. Pokud například používáte anglický slovník, bude váš osobní slovník pojmenován ".ispell_english". Pokud ovšem existuje soubor ".ispell_words", bude používán jako osobní slovník bez ohledu na zvolený hlavní slovník. Důvodem tohoto chování je zpětná kompatibilita.

Jestliže není zadána volba -p, bude ispell hledat osobní slovník jak v aktuálním adresáři, tak v domovském adresáři. Existují-li slovníky v obou, použije se obsah obou. Při přidávání slov do osobního slovníku budou slova přednostně přidávána do slovníku v aktuálním adresáři. Pokud neexistuje, budou přidávána do slovníku v domovském adresáři.

Pomocí volby -w lze zadat, které nepísmenné znaky mají být považovány za znaky povolené ve slovech. Například -w "&" umožní, aby "AT&T" bylo považováno za jedno slovo. V mnoha technických dokumentech může být užitečné takto přidat znak podtržítko. Tato volba také umožňuje velmi primitivní podporu 8-bitových mezinárodních znaků. Netisknutelné znaky mohou být zadány způsobem obvyklým v jazyce C - pomocí zpětného lomítka následovaného osmičkovým kódem znaku; např. "\014" znamená znak form feed. Kódy znaků mohou být zadány také v desítkové soustavě; pak je nutné před kódem zapsaným jednou až třemi číslicemi použít znak "n". Pokud byste například chtěli umožnit, aby se ve slovech mohly vyskytovat ASCII znaky BEL (zvonek) a FF (nová stránka) (to je samozřejmě nesmysl sloužící pouze pro ilustraci), bylo by možné použít

    n007n012

Jiné číslice než tři následující znak "n" jsou obyčejnými číslicemi. Ani použití písmene "n" pro tento účel nezpůsobuje žádné problémy, protože písmena bez diakritiky jsou vždy považována za legální znaky, které není nutné povolovat pomocí -w. Program ispell se obvykle používá pro zpracování obsahu souboru, takže implicitní zpracovávání 8-bitových znaků nepůsobí potíže. Je-li ale vstupní text načítán z terminálu s použitím volby -l, budou problémy, pokud je stty nastaveno tak, že osmý bit je paritní.

Některé znaky nelze použít jako argument volby -w - jmenovitě znak pro označení jazyka (definovaný v souboru afixů - obvykle "/"). Volba -W stanovuje maximální délku slov, která ispell bude vždy považovat za správná. Implicitní hodnota je 1, takže ispell implicitně jednoznaková slova nekontroluje a považuje je za správná. (Ve skutečnosti je implicitní hodnota této volby určena parametrem MINWORD, který lze zadat při překladu, takže ve vaší instalaci může být jiná.) Jestliže chcete, aby byla kontrolována všechna slova bez ohledu na délku, musíte použít "-W 0". Pokud naopak váš dokument obsahuje velké množství třípísmenných zkratek, které nejsou ve slovníku, použijte "-W 3". Bez ohledu na nastavení této volby bude ispell jako možné opravy generovat pouze slova, které jsou ve slovníku. Jinak by byl seznam doporučovaných oprav příliš dlouhý. Používání této volby může být samozřejmě velmi nebezpečné, protože chyby v krátkých slovech budou ignorovány. Pokud ji používáte, je vhodné udělat poslední kontrolu dokumentu bez ní, aby byly odhaleny i chyby v krátkých slovech.

Volba -T typ se používá pro zadání implicitní volby stringchars, tj. způsobu, jak jsou v dokumentu zakódovány ne-ASCII znaky pomocí řetězců známých například z programu TeX (např. \'a pro znak "a s čárkou"). Tato volba má přednost před implicitním typem odvozeným ze jména souboru. Argument typ může být buď jedno z unikátních jmen definovaných v souboru afixů (např. nroff) nebo přípona souboru včetně tečky (např. .tex). Není-li použita volba -T a typ nelze určit ze jména souboru, bude použit implicitní nastavení stringchars podle souboru afixů.

Volba -k slouží ke zlepšení chování ispellu při zpracování některých formátů. Argument jméno udává jméno sady klíčových slov pro zpracování formátu (viz níže) a seznam je seznam jednoho nebo více klíčových slov, které mají být zpracovávány speciálním způsobem. Pokud seznam začíná znakem "+" (plus), bude seznam přidán k existujícím klíčovým slovům. Jinak bude použit jako seznam klíčových slov. Například -ktexskip1 +bibliographystyle přidá "bibliographystyle" do TeXového seznamu texskip1. Podobně -khtmlignore pre,strong nahradí HTML seznam ignore slovy "pre" a "strong". Lze používat následující seznamy:

texskip1
    - příkazy TeXu/LaTeXu, které mají jeden argument, který nemá být kontrolován - například "bibliographystyle". Implicitní hodnota je "end", "vspace", "hspace", "cite", "ref", "parbox", "label", "input", "nocite", "include", "includeonly", "documentstyle", "documentclass", "usepackage", "selectlanguage", "pagestyle", "pagenumbering", "hyphenation", "pageref" a "psfig", plus v některých instalacích "bibliography". V klíčových slovech se rozlišují malá a velká písmena.

texskip2
    - příkazy TeXu/LaTeXu, které mají dva argumenty, které nemají být kontrolovány - například "setlength". Implicitní hodnota je "rule", "setcounter", "addtocounter", "setlength", "addtolength" a "settowidth". V klíčových slovech se rozlišují malá a velká písmena.

htmlignore
    - párové HTML značky, které ohraničují text, který nemá být kontrolován. Implicitní hodnota je "code", "samp", "kbd", "pre", "listing" a "address". V klíčových slovech se nerozlišují malá a velká písmena. Pamatujte, že text uvnitř HTML značek jako je "HREF=" se normálně nekontroluje.

htmlcheck
    - parametry, jejichž hodnoty mají být kontrolovány i uvnitř HTML značek. Implicitní hodnota je "alt", takže hodnota parametru "ALT=" ve značce IMG bude kontrolována. V klíčových slovech se nerozlišují malá a velká písmena.

Všechny výše uvedené seznamy klíčových slov mohou být modifikovány také pomocí proměnných prostředí, jejichž jména jsou stejná jako jména seznamů (ale velkými písmeny - např. TEXSKIP1). Volba -k má přednost (nebo modifikuje) hodnoty zadané proměnnými prostředí a proměnné prostředí mají přednost (nebo modifikují) zabudované implicitní hodnoty.

Volba -F udává jméno externího programu, který odstraňuje značky ze souboru. Program musí číst data ze standardního vstupu a zapisovat na standardní výstup. Program musí produkovat jeden znak výstupu pro jeden znak vstupu, jinak ispell ztratí synchronizaci a poškodí obsah souboru. "Bílé znaky" (mezery, tabelátory, znaky konce řádku, atd.) a řetězce, ve kterých mají být kontrolovány překlepy, musí být zkopírovány na výstup beze změn. Části, ve kterých nemají být kontrolovány překlepy, musí být změněny na mezery nebo znaky, které nejsou považovány za součást slov. Například program pro odstraňování značek z HTML souboru může měnit všechny HTML značky a text ohraničený značkami jako "code" nebo "kbd" na mezery.

Volba -F je preferovaným způsobem pro odstraňování značek ze souborů pro ispell a pozdější verze mohou podporovat pouze ji.

Pokud je ispell vyvolán bez parametrů a přepínačů, poběží v interaktivním režimu, který slouží pro kontrolování jednotlivých slov. Program vypisuje výzvu "word:" a na zadání slov odpovídá buď "ok" (s případným komentářem) nebo "not found" (nenalezeno) nebo "how about" (a co například) následovaným seznamem návrhů opravy.

Volba -l (list) slouží pro vypsání seznamu neznámých slov z textu čteného ze standardního vstupu.

Volba -a slouží pro komunikaci jiných programů s programem ispell pomocí roury. V tomto režimu ispell vypíše jednořádkovou zprávu o své verzi, a pak zahájí čtení řádků ze vstupu. Pro každé vstupní slovo bude na standardní výstup vypsán jeden řádek. Pokud se jedná o tvar slova, který je přímo uveden v hlavním nebo v osobním slovníku, bude řádek obsahovat pouze znak '*'. Pokud lze slovo odvodit pomocí pravidel ze souboru afixů (tj. slovo by v normálním režimu bylo považováno za bezchybné), bude řádek obsahovat znak '+', mezeru a základní tvar slova. Pokud bylo slovo odvozeno zřetězením dvou slov (povoleného volbou -C), pak řádek bude obsahovat pouze znak '-'.

Jestliže slovo ve slovníku není, ale jsou tam podobná slova, pak řádek bude obsahovat znak '&', mezeru, špatně napsané slovo, mezeru, počet podobných slov, pozici slova na řádku (0 znamená, že slovo bylo na začátku řádku), dvojtečku, další mezeru a seznam podobných správných slov oddělených vždy čárkou a mezerou. Za podobnými slovy následují odhady (které lze rozpoznat od podobných slov pouze tím, že skutečný počet slov je větší, než kolik bylo udáno), tj. způsoby, jak by mohlo být slovo vytvořeno přidáním (ve slovníku pro daný základní tvar nepovolených) afixů ke známému základnímu tvaru. Jednotlivé odhady jsou také odděleny čárkou a mezerou. Jestliže jsou v seznamu pouze odhady a žádná podobná slova, bude formát řádku stejný, ale místo úvodního znaku '&' bude použit znak '?' (a počet podobných slov bude vždy nula). Doporučovaná odvození v odhadech mají následující tvar:

    [prefix+] kořen [-prefix] [-sufix] [+sufix]

(např. "re+fry-y+ies" dává "refries"); každý nepovinný prefix a sufix je řetězec. V každém podobném slově nebo odhadu jsou použita velká písmena stejným způsobem jako ve vstupním slově, pokud není takové použití velkých písmen zakázáno; jinak jsou v podobných slovech použita velká písmena podle slovníku.

Jestliže se slovo ve slovníku nevyskytuje, ani v něm nejsou podobná slova, pak řádek bude obsahovat znak '#', mezeru, špatně napsané slovo, mezeru a pozici slova na řádku (0 znamená, že slovo bylo na začátku řádku).

Za posledním vypsaným záznamem bude jeden prázdný řádek, který označuje, že ispell dokončil zpracování vstupního řádku.

Formát výstupních řádků lze shrnout takto:

    Slovo:

    Správné:
        *

    Kořen:
        + <kořen>

    Složenina:
        -

    Špatné:
        & <původní> <počet> <posunutí>: <podobné>, <podobné>, ..., <odhad>, ...

    Odhad:
        ? <původní> 0 <posunutí>: <odhad>, <odhad>, ...

    Nenalezeno:
        # <původní> <posunutí>

Pokud by anglický slovník například obsahoval pouze slova "fray", "Frey", "fry" a "refried", na příkaz "echo 'frqy refries' | ispell -a -C -d ./fray.hash" by ispell odpověděl
    @(#) International Ispell Version 3.1.20 10/10/95
    & frqy 3 0: fray, Frey, fry
    & refries 1 5: refried, re+fry-y+ies

Režim s volbou -a může být vhodný i pro interaktivní použití, například pokud chcete zjistit, jak se má psát jedno konkrétní slovo.

Volba -A funguje stejně jako volba -a, ale pokud řádek začíná řetězcem "&Include_File&", zbytek řádku je považován za jméno souboru, jehož obsah má být vložen. Po zpracování vloženého souboru bude ispell pokračovat ve zpracování původního souboru. Maximální hloubka vnoření vložených souborů je 5. Řetězec použitý pro vložení souboru může být změněn pomocí proměnné prostředí INCLUDE_STRING (znaky '&' musí být obsaženy).

V režimu -a přijímá ispell řádky obsahující jediné slovo s předřazeným některým z následujících znaků: '*', '&', '@', '+', '-', '~', '#', '!', '%', '`' nebo '^'. Řádek začínající znakem '*' přikazuje programu ispell, aby vložil slovo do uživatelského slovníku (jako interaktivní příkaz I); řádek začínající znakem '&' přikazuje vložit slovo převedené na malá písmena do uživatelského slovníku (jako interaktivní příkaz U); řádek začínající znakem '@' způsobí, že program ispell bude toto slovo příště přijímat (jako příkaz A); řádek začínající znakem '+' následovaným (bez mezery) řetězcem tex nebo nroff způsobí, že ispell bude další vstup zpracovávat podle syntaxe zadaného formátu; řádek obsahující pouze znak '+' přepne ispell do režimu TeX/LaTeX (jako volba -t) a znak '-' přepne ispell zpět do režimu nroff/troff (poslední dva příkazy jsou zastaralé). Nicméně typ řetězcových znaků není těmito příkazy změněn; pro jeho změnu je třeba použít příkaz '~'. Řádek začínající znakem '~' způsobí, že ispell nastaví interní parametr určující implicitní typ řetězcových znaků podle jména souboru zadaného ve zbytku řádku. (Postačuje přípona souboru s tečkou na začátku. Místo jména souboru nebo přípony může být použito unikátní jméno uvedené v souboru afixů.) Příkaz '~' nemění nastavení způsob zpracování (formát) zpracovávaného souboru; pro jeho změnu musí být použit příkaz '+'. Řádek začínající znakem '#' způsobí, že bude uložen osobní slovník. Řádek začínající znakem '!' zapne stručný režim (viz dále); řádek začínající znakem '%' přepne ispell do normálního (nestručného) režimu. Řádek začínající '`' přepne ispell do "upovídaného" režimu (viz níže). Tento režim může být zakázán pouze pomocí '%'.

Jakékoli znaky na řádku obsahujícím příkaz '+', '-', '#', '!', '`' nebo '%' jsou ignorovány, stejně jako libovolný vstup následující jméno_souboru na řádku '~'. Aby bylo možné kontrolovat řádky, které začínají některým z těchto znaků, je nutné na začátek takových řádků přidat znak '^'. Program ispell odstraní tento znak a zbytek řádku předá kódu na kontrolu překlepů. Doporučuje se, aby programy, které komunikují tímto způsobem s programem ispell, přidávaly znak '^' na každý řádek, který má být kontrolován, aby byly chráněny před budoucími změnami chování programu ispell.

Souhrn výše uvedených příkazů:

    *   Přidat slovo do osobního slovníku

    @   Slovo přijmout, ale nevložit jej do slovníku

    #   Uložit aktuální osobní slovník

    ~   Nastavit parametry podle jména_souboru

    +   Zapnout režim TeX

    -   Ukončit režim TeX

    !   Zapnout stručný režim

    %   Ukončit stručný režim

    `   Vstoupit do "upovídaného" režimu.

    ^   Kontrolovat zbytek řádku

Ve stručném režimu nebude ispell tisknout řádky začínající znaky '*', '+' nebo '-', které indikují správná slova. To významně zvyšuje rychlost běhu pokud řídící program tato správná slova ignoruje.

V upovídaném režimu ispell vypisuje ve výstupních řádcích začínajících '*', '+' a '-' původní slovo bezprostředně za indikačním znakem (slouží ke zjednodušení interakce s některými programy).

Volba -s je povolena pouze na systémech odvozených od BSD a pouze ve spojení s volbami -a nebo -A. S touto volbou program ispell sám sebe zastaví signálem SIGTSTP po každém vstupním řádku. Pokračovat bude až po příchodu signálu SIGCONT. Tato vlastnost slouží pro handshaking s určitými textovými editory.

Volba -f je povolena pouze ve spojení s volbami -a nebo -A. S touto volbou bude ispell zapisovat výsledky do zadaného souboru místo standardního výstupu.

Volba -v způsobí, že ispell vypíše identifikaci své aktuální verzi na standardní výstup a skončí. Pokud se tato volba zdvojí, vypíše ispell také volby, se kterými byl přeložen.

Volby -c, -e[1-4] a -D programu ispell jsou primárně určeny pro použití shellovým skriptem munchlist. Volba -c způsobí, že seznam slov bude čten ze standardního vstupu, a pro každé slovo bude vypsán na standardní výstup seznam všech možných kombinací kořene a afixu, pomocí kterých lze dané slovo vygenerovat. Některé kořeny mohou být špatné a musí být odfiltrovány z výstupu jinými prostředky; to dělá například skript munchlist. Například příkaz

    echo BOTHER | ispell -c

produkuje:

    BOTHER BOTHE/R BOTH/R

Volba -e je opakem volby -c a expanduje příznaky na seznam slov. Například příkaz:

    echo BOTH/R | ispell -e

produkuje:

    BOTH BOTHER

Volitelně může být také zadána úroveň expanze. Volba -e je totéž co -e1. Při úrovni 2 bude každému řádku předřazena původní dvojice kořen/afix:

    BOTH/R BOTH BOTHER

Při úrovni 3 bude každé vygenerované slovo na zvláštním řádku a budou mu předřazeny dvojicemi kořen/afix jako v úrovni 2:

    BOTH/R BOTH
    BOTH/R BOTHER

Při úrovni 4 budou vypisovány řádky jako v úrovni 3, ale na konci každého řádku bude navíc reálné číslo udávající poměr mezi délkou kořene a celkovou délkou všech vygenerovaných slov včetně kořenů:

    BOTH/R BOTH 2.500000
    BOTH/R BOTHER 2.500000

Volba -D způsobí, že tabulky afixů ze slovníkového souboru budou vypsány na standardní výstup.

Pokud váš správce systému nezapnul volbu pro šetření místem, ispell bude dbát na správné použití velkých písmen ve slovech ze základního i vašeho osobního slovníku. Kromě rozpoznávání slov, která musí začínat velkých písmenem (např. George), a slov, která musí mít všechno písmena velká (např. NASA), může také zpracovávat slova s "neobvyklým" použitím velkých písmen (např. "ITCorp" nebo "TeX"). Jestliže jsou ve slově použita velká písmena nesprávně, seznam možností bude zahrnovat všechny povolená použití velkých písmen. (Může být povoleno více než jedno použití velkých písmen může být acceptable; slovník například může obsahovat jak "ITCorp" tak "ITcorp".)

Normálně tato vlastnost nepůsobí žádná překvapení, ale existuje jeden případ, na který musíte dávat pozor. Jestliže používáte interaktivní příkaz "I" pro přidání slova, které je na začátku věty (např. první slovo tohoto odstavce, kdyby slovo "normálně" nebylo ve slovníku), do vašeho slovníku, bude označeno jako "použití velkých písmen podle požadavku". Další výskyt tohoto slovo bez použití velkých písmen (např. slovo uvedené v uvozovkách v předchozí větě) bude programem ispell považováno za chybu, a jako oprava bude nabídnuto slovo s velkým písmenem na začátku. Potom nezbývá než zkontrolovat, zda se jedná o správné slovo a stisknutím "I" přidat do slovníku i slovo psané malými písmeny. Tomuto problému se můžete vyhnout používáním příkazu "U" místo "I" pro přidání slova do uživatelského slovníku.

Pravidla pro porovnávání slov s velkými písmeny jsou následující:

(1) Libovolné slovo uvedené ve slovníku je správně, i když je napsáno celé velkými písmeny (například v názvech kapitol).

(2) Jakékoli slovo, které je ve slovníku uloženo se všemi písmeny malými, se může v textu objevit napsané malými písmeny nebo s velkým počátečním písmenem (např. na začátku věty).

(3) Jakékoli slovo, které je uloženo ve slovníku s "podivnou" kombinací velkých a malých písmen (tj. obsahuje jak velká tak malá písmena a velké písmeno je jinde než na začátku), musí být v textu uvedeno přesně stejně jako ve slovníku, kromě případu uvedeného v pravidle (1). Má-li být přijato slovo napsané malými písmeny, musí být tak uvedeno i ve slovníku.

  buildhash

Program buildhash vytváří hašovaný soubor se slovníkem pro pozdější použití programem ispell. Jméno souboru se seznamem slov (s afixovými příznaky) je zadáno parametrem dict-soubor, afixové příznaky jsou definovány v souboru afix-soubor. Vytvářený hašovaný soubor bude mít jméno hash-soubor. Formát vstupních souborů je popsán v manuálové stránce ispell(4). Volba -s (silent, tichý) potlačí výpis obvyklých stavových zpráv na standardní chybový výstup.

  munchlist

Shellový skript munchlist se používá pro zmenšení velikosti souboru se slovníkem, zejména pro osobní slovníky. Lze jej také použít pro sloučení dvou slovníků používajících různé soubory afixů. Příkaz přečte zadané soubory (nebo standardní vstup, jestliže nejsou zadány žádné argumenty), zredukuje je na minimální sadu kořenů a afixů, které budou vyhovovat stejnému seznamu slov, a výsledek vypíše na standardní výstup.

Vstup pro munchlist může obsahuje pouze slova (např. z osobního slovníku) nebo kombinace kořen/afix (pravděpodobně vygenerované při předchozích spuštěních programu munchlist). Každé slovo a kombinace kořen/afix musí být na zvláštním řádku.

Volba -D (debug, ladění) nesmaže dočasné soubory se standardními jmény, což lze použít pro ladicí účely. Varování: toto volba může spotřebovat enormní množství diskového prostoru.

Volba -v (verbose) způsobí, že na standardní chybový výstup budou vypisovány zprávy o průběhu zpracování, aby uživatel nebyl nervózní, že munchlist havaroval.

Jestliže je použita volba -s (strip, odtrhnout), budou slova, která jsou v zadaném souboru hash-soubor, vypuštěna ze seznamu slov. To může být užitečné pro osobní slovníky.

Volba -l slouží pro zadání alternativního jména souboru afix-soubor pro zpracování slovníků pro jiné jazyky než je angličtina.

Volba -c slouží pro konverzi slovníků, které byly vytvořeny s použitím staršího souboru afixů, bez rizika nezamýšleného vnášení nechtěných kombinací afixů do slovníku.

Volba -T umožňuje konvertovat slovníky na kanonický formát řetězcových znaků. Zadaný sufix je vyhledán v souboru afixů (zadaném volbou -l), a pak je stanoven formát řetězcových znaků používaný pro vstupní soubor; na výstupu budou vždy použit kanonický formát řetězcových znaků. Například slovník získaný ze zdrojových souborů v TeXu může být konvertován na kanonický formát pomocí parametru -T tex.

Volba -w je předána programu ispell.

  findaffix

Shellový skript findaffix je pomůcka pro vybírání afixů při vytváření nových popisů jazyka. V zadaných souborech se slovníky (nebo ve standardním vstupu, pokud nejsou zadána žádná jména souborů) jsou vyhledány možné prefixy (s volbou -p) nebo sufixy (implicitně nebo s volbou -s). Každý obvykle se objevující afix bude vypsán spolu s informací, kolikrát se objeví, s odhadem počtu bytů, které by byly ušetřeny v hašovaném slovníku, pokud by afix byl přidán do souboru afixů pro daný jazyk. Jsou vypsány pouze afixy, které generují povolený základní tvar (tj. základní tvar, který se nachází v původním vstupu).

Jestliže není použita volba "-c", budou mít výstupní řádky formát:

    odtrhnout/přidat/počet/bytů

kde odtrhnout je řetězec, které musí být odstraněn ze základního tvaru slova před přidáním afixu, přidat je afix, který má být přidán, count udává, kolikrát se tato kombinace odtrhnout/přidat objeví, a bytů je odhad počtu bytů, které by mohly být uloženy v syrovém souboru se slovníkem, pokud by tato kombinace byla přidána do souboru afixů. Jako oddělovač položek ve výstupu bude použit znak zadaný přepínačem -t; implicitně lomítko ("/").

Je-li použita volba -c ("čistý výstup"), vzhled výstupu bude vizuálně čistší (ale obtížněji zpracovatelný) ve tvaru:

    -odtrhnout+přidat<tab>počet<tab>bytů

kde odtrhnout, přidat, počet, a bytů mají stejný význam jako v předešlém případě, a <tab> je ASCII znak tabelátor.

Metoda používaná na generování možných afixů bude také generovat delší afixy které mají stejné začátky nebo konce. Například slova "moth" a "mother" budou generovat nejenom normální substituce "+er", ale také "-h+her" a "-th+ther" (případně ještě delší, v závislosti na hodnotě argumentu min). Aby se zabránilo zahlcení výstupu těmito afixy, je vypisování všech dvojic afixů, které začínají (u prefixů končí) stejným řetězcem delším než elim znaků (implicitně 1) zakázáno. Můžete nastavit "elim" na hodnotu větší než 1, jestliže váš jazyk používá řetězcové znaky; obvykle se potřeba tohoto parametru stane zjevnou, když zkontrolujete výstupy vašich spuštění programu findaffix.

Normálně jsou afixy setříděné podle odhadu ušetřených bytů. Volba -f způsobí, že afixy budou setříděny podle frekvence výskytu.

Pro zmenšení velikosti výstupního souboru budou eliminovány afixy, které se objeví méně než 10 krát; tento limit může být změněn volbou -l. Volba -M určuje maximální délku afixů (implicitně 8). Delší afixy nebudou vypsány. (Tato volba šetří prostor, který zabírají dočasné diskové soubory, a urychluje běh skriptu.)

Afixy který generují slovní kmeny kratší než 3 znaky jsou potlačeny. (Kmen je slovo po odstranění řetězce odtrhnout a před přidáním řetězce přidat.) Tím se zmenší jak čas běhu, tak velikost výstupního souboru. Tento limit může být změněn přepínačem -m. Nenastavujte minimální délku kmene na 1, pokud nemáte spoustu volného času a diskového prostoru (v měřítku mnoha dní a stovek megabytů).

Skript findaffix vyžaduje pro interní použití nemezerový znak jako separátor položek. Normálně je tímto znakem lomítko ("/"), ale pokud se lomítko vyskytuje jako znak ve zpracovávaném seznamu slov, může být pomocí volby -t zadán jiný znak.

Slovníky pro ispell musí být před zpracováním programem findaffix expandovány, a znaky s diakritikou musí být převedeny na malá písmena.

  tryaffix

Shellový skript tryaffix se používá pro odhad efektivnosti navrhovaného prefixu (s volbou -p) nebo sufixu (implicitně nebo s volbou -s) pro daný expandovaný-soubor. Při každém spuštění programu tryaffix může být zkoušen pouze jeden afix, ale lze použít více argumentů pro popis různých forem stejného afixového příznaku (např. příznak D může v angličtině přidat koncovku D nebo ED, podle toho, zda slovo končí na E nebo ne). Každé slovo v expandovaném slovníku, které končí (nebo začíná) vybraným sufixem (nebo prefixem) má tento sufix (prefix) odstraněný; ve slovníku se pak hledá základní tvar slova, který vyhovuje slovu po odtržení této části. Normálně jsou na standardní výstup vypsány všechny vyhovující kombinace. Pokud je použita volba -c (count), bude vypsán pouze statistický souhrn výsledků: počet slov, na které lze afix potenciálně aplikovat a odhad počtu bytů slovníku, které by se ušetřily, pokud by byl použit příznak definující zkoušené afixy. Pokud příznak generuje slova, která jsou generována i jinými příznaky, bude odhad příliš vysoký (např. v angličtině může být slovo bathers vygenerováno pomocí bath/X nebo bather/S).

Soubor expandovaný-soubor se slovníkem musí být předem expandován (pomocí volby -e programu ispell) a setříděn. Maximální efektivity se obvykle dosáhne, pokud budou velká písmena předem převedena na malá (například programem 'tr').

Argument afix je řetězec, který má být odtržen ze slov v souboru se slovníkem, aby byl získán zkušební kořen: příkladem prefixu v angličtině je con a příkladem sufixu ing. Části argumentu označené přídavek jsou řetězce, které mají být odtrženy od základního tvaru pro získání kořene, za který se přidává afix. V angličtině například afix ing normálně odtrhává koncové e ze slov, která tímto znakem končí (tak se např. ze slova like stane slovo liking), takže je možné spustit:

    tryaffix ing ing+e

pro pokrytí obou případů.

Všechny shellové skripty obsahují dokumentaci v komentářích na svém začátku; tyto komentáře mohou obsahovat i užitečné informace, které nejsou uvedeny na této manuálové stránce.

V případě potřeby lze program ispell nainstalovat takovým způsobem, aby zpracovával pouze ASCII texty.

  icombine
icombine je pomocný program pro munchlist. Načítá ze standardního vstupu seznam slov v tomtéž formátu, v jakém jsou ve slovníku (kořen/příznaky), a na standardní výstup vypisuje redukovaný seznam, v němž jsou zkombinovány příznaky u kořenů, které se na vstupu vyskytly vícekrát; pokud se v několika po sobě jdoucích řádcích objeví stejný kořen, bude na výstup vypsán pouze jeden řádek obsahující tento kořen se všemi použitými příznaky. Kořeny, ve kterých byla různě použita velká písmena, budou zkombinovány tak, aby informace o použití velkých písmen byly zachovány. Volitelný parametr aff-soubor určuje soubor afixů, ve kterém jsou definovány používané znakové sady a význam jednotlivých příznaků. Volba -T umožňuje výběr různých typů řetězcových znaků zadáním nastrčeného sufixu definovaného příkazem altstringtype.

  ijoin
Program ijoin je reimplementací programu join(1). Program ijoin správně zpracovává dlouhé řádky a 8-bitové znaky. Volba -s udává, že program sort(1) používaný pro přípravu vstupu pro program ijoin porovnává 8-bitové znaky jako hodnoty se znaménkem. Volba -u naopak udává, že program sort(1) používá porovnání bez znaménka. Všechny další volby a chování programu join(1) jsou převzaty z jeho manuálové stránky, s tou odchylkou, že ijoin nepovažuje znak newline za oddělovač položek. Další informace naleznete v manuálové stránce programu join(1).

PROMĚNNÉ PROSTŘEDÍ

DICTIONARY
    Jméno slovníku, který bude použit, pokud není zadána volba -d.

CHARSET
    Bere se v úvahu pouze tehdy, je-li nastaveno DICTIONARY. Stanovuje implicitní formát a kódování znaků, když nejsou použity volby -T, -t nebo -n. Je užitečný, je-li formát definován v souboru afixů.

WORDLIST
    Jméno souboru s osobní slovníkem.

INCLUDE_STRING
    Jméno direktivy pro vložení souboru při použití volby -A.

TMPDIR
    Adresář používaný programem munchlist pro dočasné soubory.

TEXSKIP1
    Seznam klíčových slov TeXu, které mají jeden argument, který nemá ispell kontrolovat.

TEXSKIP2
    Seznam klíčových slov TeXu, které mají dve argumenty, které I ispell nemá kontrolovat.

HTMLIGNORE
    Seznam HTML značek, které ohraničují text, který nemá být kontrolován.

HTMLCHECK
    Seznam parametrů HTML značek, jejichž hodnoty mají být kontrolovány i uvnitř HTML značky.

SOUBORY

/usr/lib/ispell/english.hash
    Hašovaný slovník pro angličtinu (může být hledán v jiném adresáři podle konkrétního systému).

/usr/lib/ispell/english.aff
    Soubor s definicemi afixů pro angličtinu pro program munchlist

/usr/dict/web2 nebo /usr/dict/words
    Další soubor pro vyhledávání slov (závisí na volbě WORDS při překladu).

$HOME/.ispell_hashfile
    Uživatelský osobní slovník.

.ispell_hashfile
    Slovník pro daný adresář.

VIZ TAKÉ
spell(1), egrep(1), look(1), join(1), sort(1), sq(1), ispell(5), english(5).

CHYBY
Načtení hašovaného slovníku může podle jeho velikosti trvat několik sekund nebo i déle.

Jsou-li povoleny všechny volby, může generování všech odhadů pro špatně napsané slovo trvat několik sekund; na pomalejších strojích to může být nepříjemné.

Hašovací tabulka je uložena jako čtvrtmegabytové (nebo větší) pole, takže pravděpodobně nebude nikdy existovat verze pro PDP-11 nebo Intel 80286.

Program ispell by měl lépe rozumět syntaxi souborů pro troff, a inteligentněji se vypořádat se zkratkami.

Přestože jsou malé osobní slovníky před uložením tříděny, je pořadí, v jakém se vypisují různé varianty použití velkých písmen v jednom slově, poněkud náhodné.

Při použití volby -x program ispell maže soubory s příponou .bak.

Program ispell má příliš mnoho voleb, a mnohé z nich nemají mnemonická jména.

Program munchlist nepracuje příliš elegantně se slovníky, které obsahují "neslovní" znaky. Takové znaky by měly být ze slovníku smazány a současně by mělo být vypsáno varování.

Při použití rozsáhlých slovníků vyžadují příkazy findaffix a munchlist velké množství diskového prostoru pro dočasné soubory. Tyto soubory se vytvářejí v adresáři zadaném proměnnou prostředí TMPDIR, takže lze ovlivňovat jejich umístění. Podstatná část prostoru pro dočasné diskové soubory se však využívá při třídění, takže na systémech, kde program sort(1) neakceptuje nedokumentovanou volbu -T, změna nastavení proměnné TMPDIR příliš nepomůže. Program munchlist čte původní slovník 10 až 40 krát. (Větší poměr je u slovníků, které používají množství afixů, jako je tomu u anglického slovníku distribuovaného s programem ispell.) Také program munchlist je velmi pomalý; zpracování slovníku normální velikosti (15K kořenů, 45K výsledných slov) trvá na malé pracovní stanici okolo jedné hodiny. (Většina času je spotřebována programem sort(1); program munchlist může běžet podstatně rychleji na strojích, které mají modernější sort, který lépe používá dostupnou paměť.) Program findaffix je ještě horší; ani nejmenší anglický slovník nemůže být tímto skriptem zpracován v 50 KB volné paměti, a s volbou pro omezení požadovaného dočasného prostoru běží skript na malé pracovní stanici více než 24 hodin.

AUTOŘI
Pace Willisson (pace@mit-vax) napsal program ispell v roce 1983 podle assemblerové verze pro PDP-10 od R. E. Gorina z roku 1971, revidované W. E. Matsonem (1974) a W. B. Ackermanem (1978).

Pro Usenet shromáždil, revidoval a vylepšil Walt Buehring, 1987.

Autorem tabulkou řízené vícejazyčná verze je Geoff Kuenning, 1987-88.

Velké anglické slovníky poskytl Bob Devin (vianet!devine).

Kompletní seznam přispívatelů zde není uveden, protože je příliš rozsáhlý. Je však distribuován se zdrojovými texty programu ispell jako soubor "Contributors".

VERZE
Tato manuálová stránka popisuje ispell verze "International Ispell Version 3.1.20, 10/10/95".