Další Předchozí Obsah

13. Kontrola českého pravopisu (spell-checker)

Petr Kolář Petr.Kolar@vslib.cz: 14. 5. 1999; Pavel Janík ml. Pavel.Janik@math.muni.cz: starší verze

Nejrozšířenějším programem pro kontrolu pravopisu na unixových systémech je GNU ispell (v době psaní tohoto textu verze 3.1.20). Vzhledem k jeho schopnostem se spíše jedná o pouhé odhalování překlepů. Ispell totiž neodhalí syntaktické ani stylistické chyby, takže otřepané "víly VYLI věnce" je podle něj správně (jelikož "vyli" je také české slovo).

Soubory s českým slovníkem pro ispell naleznete na adrese ftp://ftp.vslib.cz/pub/unix/ispell/czech/. Tento slovník je průběžně rozšiřován a v květnu 1999 rozpoznával více než 1 300 000 slovních tvarů. Na rozšiřování slovníku se může podílet každý. Stačí zaslat dosud neznámá česká slova (obsah souboru $HOME/.ispell_czech nebo výstup z příkazu ispell -d czech -l < soubor) na adresu Petr.Kolar@vslib.cz.

13.1 Práce s ispellem

Ispell je možné používat buď samostatně --- pomocí příkazu

ispell -d czech soubor

nebo je možné jej volat z různých editorů.

A jak ispell funguje? Máme například soubor, který obsahuje následující text:

Tvůrcem opračního sytému Linux je Linus Torvalds.

Při kontrole příkazem ispell -d czech soubor (nebo při stisknutí klávesy F8 v editoru joe, apod.) ispell "skočí" na slovo "opračního", protože slovo "Tvůrcem" je ve slovníku obsaženo. Slovo "opračního" bude zvýrazněno, a bude nabídnuta (v tomto případě jediná) možnost opravy --- 0: operačního. Stačí stisknout nulu, a slovo "opračního" bude opraveno na "operačního". Chybné slovo "sytému" nechá ispell bez povšimnutí, protože se může jednat o třetí pád slova "sytý", ale zastaví se na slově "Linus". Tady nabídne několik možností, ale protože původní slovo je správně, stiskneme klávesu mezera nebo "a" (Accept), což znamená "ponechat slovo uvedené v textu". Mezera způsobí, že další výskyt téhož slova ve stejném souboru bude opět chybou, zatímco "a" bude toto slovo připouštět až do konce zpracovávaného souboru. Také je možné stisknutím "i" slovo zařadit do uživatelského slovníku $HOME/.ispell_czech, takže jeho výskyt v kterémkoli v budoucnosti kontrolovaném souboru bude tolerován. Pokud je slovo skutečně špatně, a ispell nenabízí správnou opravu, je možné stisknout klávesu "r" a zadat správné slovo.

13.2 Ispell pro Emacs

Milan Zamazal pdm@fi.muni.cz; první verze

Český ispell je podporován balíkem emacs-czech od verze 3.5 (ve verzích 3.5 a 3.6 je drobná chyba). Český slovník lze zvolit například v menu "Edit/Spell/Select Czech". Bližší informace o používání ispellu a volbě slovníků naleznete v dokumentaci Emacsu.

13.3 Ispell pro Joe

Podpora anglické kontroly pravopisu je v editoru joe vestavěna. Kombinací kláves 'CTRL+[ N' kontrolujeme jedno slovo, klávesami 'CTRL+[ L' celý soubor.

Českou podporu lze jednoduše nakonfigurovat. Stačí do souboru ~/.joerc nebo přímo do souboru /usr/lib/joe/joerc doplnit následující řádky:


 Czech spell-check macros

:def czechspellfile filt,"cat >ispell.tmp;\
ispell -d czech ispell.tmp </dev/tty >/dev/tty;cat ispell.tmp;\
/bin/rm ispell.tmp",rtn,retype
:def czechspellword psh,nextword,markk,prevword,markb,filt,\
"cat >ispell.tmp;ispell -d czech ispell.tmp </dev/tty >/dev/tty;\
tr -d <ispell.tmp '\\012';/bin/rm ispell.tmp",rtn,retype,nextword
:def czechspellline psh,eol,markk,bol,markb,filt,"cat >ispell.tmp;\
ispell -d czech ispell.tmp </dev/tty >/dev/tty;\
tr -d <ispell.tmp '\\012';/bin/rm ispell.tmp",rtn,retype,eol

czechspellfile .k8
czechspellword .k9
czechspellline ^k .k9

Tato makra definují, že funkční klávesa F8 provede kontrolu českého pravopisu v celém souboru, klávesa F9 zkontroluje slovo, na které stojí kursor. (POZOR ovšem na to, že neupravený joe neumí rozeznávat česká písmenka ...). Kombinace kláves 'CTRL+k F9' provede kontrolu pravopisu na jednom řádku.


Další Předchozí Obsah