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