\"/
\"/ \"/    

Ufff, zase ta čeština!

Pavel Ševeček, ÚVT MU
Ročník IV - číslo 4, březen 1994
Citace: P. Ševeček. Ufff, zase ta čeština!. Zpravodaj ÚVT MU. ISSN 1212-0901, 1994, roč. IV, č. 4, s. 1-4.
Tematické zařazení: Různé, Typografie, počítačová sazba
 předchozí číslo | následující článek 

Není to tak dávno, co jsme se potýkali s češtinou pod operačním systémem MS-DOS. Nejrůznější drivery a jiné podpory nejrůznějších firem, které na jedné grafické kartě či tiskárně fungovaly s problémy, na druhé vůbec ne. Tyto problémy se časem podařilo do jisté míry odstranit jednak kvalitnější a hlavně univerzálnější podporou (např. na MU používané CSDrive a CSPRes), jednak tím, že řada programů je již dodávána s podporou češtiny, která vcelku s temito programy alespoň koresponduje.

Ovšem teď řada z nás pracuje pod operačním systémem UNIX a všechny problémy jsou tu znovu. Navíc komplikovanější o různé varianty UNIXu a různé terminály a emulátory. Následující článek nepodává vyčerpávající řešení celého problému, spíše si klade za cíl uvést uživatele do problematiky češtiny pod UNIXem a nastínit základní možnosti.

Kódování češtiny

Dříve než přistoupíme k vlastnímu popisu jednotlivých částí české podpory, je potřeba se několika slovy zmínit o kódování českých znaků. O tom, že v tomto důležitém bodě nepanuje shoda, již bylo napsáno víc než dost a řada z vás se o tom již mnohdy nemile přesvědčila. Pro ty, kteří dosud slyšeli pouze o kódování PC Latin-2 a Kamenickém, mám uklidňující informaci. Pod UNIXem se zcela jistě setkáte s dalším kódováním ISO Latin-2, a jak číslo na konci naznačuje, je kódování typu ISO Latin více. Vezměme tedy postupně kódování, se kterými se můžete v současnosti setkat:

Kamenické:
Na PC historicky nejstarší a na mnoha místech dosud převažující kódování. Předefinovává ASCII znaky 128 až 173, které jsou ve standardní kódové stránce počítačů IBM PC vyhrazeny pro znaky národních abeced států západní Evropy. Na straně jedné je to výhoda, protože je text napsaný v tomto kódování vcelku čitelný i v případě, že na počítači není instalována čeština. Na straně druhé je to jeho nevýhoda, protože není možné v jednom dokumentu mít současně česká a třeba francouzská písmena. Toto kódování také není podchyceno žádnou mezinárodní normou.
PC Latin-2:
Kódování, které bylo na PC vynuceno někdejšími partnery IBM a Microsoftem. Je součástí systému kódových stránek, které postupně pokrývají různé evropské kulturní oblasti: PC Latin-1 západní Evropu, PC Latin-2 střední Evropu, další pak Balkán, řečtinu či azbuku. Pokud chcete psát text současně česky a francouzsky nebo španělsky, je situace lepší než u kódu Kamenických, ale ne ideální. Ostatně, pokud na horních 128 znaků chcete "nacpat" současně národní abecedy a ještě semigrafické znaky a matematické symboly, nedají se dělat zázraky.
ISO Latin-2:
Přestože i tento kód ve svém názvu nese slůvko Latin, liší se od PC Latin-2 asi stejně jako od kteréhokoli jiného. Společné má pouze to, že obsahuje přibližně stejné znaky národních abeced, i když na jiných místech tabulky. Na rozdíl od předchozích kódování se jedná o normu, konkrétně ISO-8859-2. Toto kódování je často používáno právě pod operačním systémem UNIX. Definuje pouze znaky 160-255, protože znaky 128-159 mohou mít speciální význam. Pokud nejsou použity jako řídicí symboly pro přenos nebo pro komunikaci s některým zařízením, je možno je dodefinovat o další potřebné znaky.
KOI-8:
Archaické kódování existující již na počítačích řady EC. Dnes se vyskytuje zcela ojediněle.
TeX-EC:
Kódování někdy používané pro výstupy sázecího systému TeX. Asi nikoho příliš nepřekvapí, že ani v případě TeXu nepanuje ohledně kódování shoda. Takže zatímco se rozhoduje mezi ISO Latin-2 a TeX-EC, řada uživatelů nadále pořizuje své texty v kódu Kamenických či dokonce KOI-8.

Tím jsme ještě zdaleka nevyčerpali všechny možnosti v oblasti kódů. Aplikace pod MS-Windows úspěšně používají zcela odlišné kódování označované jako Windows EE neboli CP 1250. A vzhledem k tomu, že se občas vyskytnou i texty původně pořízené na počítačích Apple Macintosh, dá se narazit i na české kódování používané v operačním systému System-7, označované jako Macintosh CE.

Přehled částí české podpory

Co tedy taková podpora češtiny v operačním systému UNIX obnáší? Především je potřeba mít možnost vyloudit na klávesnici český znak a tento znak správně uvidět na obrazovce. Pokud je potřeba tisknout textové soubory bez toho, že by bylo nutno je nejprve přenést pod operační systém MS-DOS a pak teprve některým osvědčeným způsobem vytisknout, musíme počítat s podporou českých tisků.

Konečně je také možno přímo na úrovni operačního systému nastavit tabulky pro převod malých písmem na velká a naopak, nebo tabulky pro třídění. Pak např. systémový program sort je schopen třídit soubor podle českého řazení, bohužel až na to nešťastné ch.

Než se pustíme do přehledu jednotlivých částí, je potřeba si uvědomit následující skutečnosti:

Vstup znaků (klávesa → znak)

V tomto případě se to různými nesourodými možnostmi jen hemží. Vezmeme je tedy postupně podle typu vstupního zařízení:

Výše uvedené možnosti nejsou ovšem jediné. SCO UNIX nabízí univerzální prostředek pro přemapování klávesnice ať už konzoly, terminálu nebo emulace terminálu. Tento program se nazývá mapchan a umožňuje definovat mapování znak na znak. Např. řeknete, že místo znaku 4 se má dát znak č, místo znaku 5 znak ř atd. Také je možno definovat tzv. mrtvé klávesy a určit, že např. kombinace znaků =E má dát znak É.

Mohlo by se zdát, že toto řešení je nejlepší, ale má také své "ale". Předefinováním číslic se předefinují čísla jak na hlavní, tak na vedlejší (numerické) klávesnici. A to může být nepříjemné. Proto je vhodné výše uvedené prostředky vhodně kombinovat.

Nesmí se to ovšem přehnat. V případě, že máte pod UNIXem nastaveno přemapování vstupu pomocí programu mapchan a před tím, než se přihlásíte z PC, si "pro jistotu" nastavíte češtinu pod operačním systémem MS-DOS, asi s výsledkem moc spokojeni nebudete. Také je potřeba dát pozor na to, jaké kódování používáte v MS-DOSu a jaké pod UNIXem. Program mapchan pak může sloužit pro překódování mezi dvěma různými kódy.

Ale vraťme se raději k něčemu srozumitelnějšímu. Některé aplikace (patří k nim editory Wonder Word a Wonder Edit) totiž umožňují buď využít klávesnici nastavenou na úrovni operačního systému anebo použít vlastní prostředky pro mapování klávesnice. Pak lze snadno překlenout ten nedostatek, že pod některými implementacemi UNIXu není mapování klávesnice řešeno. Současně lze klávesnice snadno přepínat i během editace.

Zobrazení (znak → obrazovka)

I v tomto případě hodně závisí na typu vstupně/výstupního zařízení:

Program mapchan pod systémem SCO UNIX lze použít i pro přemapování výstupu na obrazovku. Tak lze poměrně elegantně vyřešit ten problém, že na PC máte font např. v kódování PC Latin-2 a v UNIXu potřebujete psát v kódu ISO Latin-2. Jisté prostředky pro změnu kódu na obrazovku však může mít i používaná aplikace.

Na tomto místě je ještě potřeba zmínit grafická uživatelská rozhraní. Kompletní vybavení takového systému češtinou znamená vytvořit ke všem fontům odpovídající ekvivalenty s českými znaky. Pokud se však omezíme pouze na emulaci terminálu, rozsah potřebných úprav se zredukuje na úpravu několika fontů, které se obvykle při emulaci používají. Aby to ovšem nebylo tak jednoduché, různá rozhraní používají různé formáty fontů. Tím se však nyní nebudeme zabývat.

Tisk (znak → tiskárna)

V Unixu rozlišujeme až tři různé varianty tisku:

Pokud používaná aplikace sama řeší problém tisku na různých tiskárnách (TeX, Wonder Word), není potřeba nic dalšího doplňovat. V opačném případě je nutno použít filtr, který zajistí potřebnou transformaci souboru (tiskového výstupu) do podoby použitelné k tisku na konkrétním typu tiskárny. Dále je potřeba rozhodnout, na kterou úroveň systému tento filtr zařadit.

V případě transparentního tisku přichází v úvahu pouze jediná varianta. Zavolat postupně (nejlépe přes "rouru") filtr pro ošetření českého tisku a filtr, který realizuje lokální tisk. V dalších dvou případech buď použijeme analogický postup (nejprve filtr, pak program pro tisk), nebo filtr zařadíme přímo do tiskového rozhraní. V případě vzdáleného tisku je vhodné zařadit filtr do rozhraní pouze na tiskovém serveru, protože případná změna typu tiskárny se pak projeví jen na tomto počítači.

Lokální tisk popsaný pro alfanumerický terminál je možné použít i v případě emulace terminálu na PC. V tomto případě ovšem velmi záleží na schopnostech používaného emulátoru.

Nastavení prostředí

Na závěr jsme si nechali možnosti nastavení prostředí. Jedná se o následující informace:

Jednotlivé aplikace by pak tyto informace měly využívat. Např. správné nastavení kategorizace znaků je potřebné již pro funkci "skok po slovech" v editoru vi.

Všechny uvedené informace jsou uloženy v určitých souborech, jejichž jméno, umístění ve struktuře adresářů a formát jsou ovšem pro různé systémy různé. Takto můžete mít připraveno prostředí pro více jazyků nebo i více kódování jednoho jazyka. Mezi nimi pak lze volit nastavením proměnné shellu LANG.

Závěr

Předchozí popis možností realizace českého prostředí v žádném případě neznamená, že by každý uživatel musel tuto problematiku nastudovat a ve vlastní režii plně řešit. Existují již hotové produkty, které zahrnují programy, definiční soubory a fonty pro vkládání českých znaků, jejich zobrazení a tisk pod operačním systémem UNIX. Součástí takové podpory jsou obvykle i další doplňkové programy pro překódování souborů, lokální tisk apod. Každý správce systému však musí rozhodnout, která kódování je nutno uvažovat, jakým způsobem sladit češtinu v operačním systému MS-DOS s češtinou pod UNIXem, jaký emulátor terminálu použít a na které úrovni řešit tisky.

setting
1 viz také následující článek Luďka Matysky
... zpět do textu
Zpět na začátek
ÚVT MU, poslední změna 14.11.2011