The Cyrillic HOWTO Autor: Aleksander L. Belikoff, v3.0, 13 sierpieñ 1995 WWeerrssjjaa ppoollsskkaa:: GGwwiiddoonn SS.. NNaasskkrreenntt nnaasskkrreenntt@@hhootthh..aammuu..eedduu..ppll v2.0, luty 1998 Dokument ten opisuje jak skonfigurowaæ swój system linuxowy aby móc pisaæ, ogl±daæ i drukowaæ dokumenty w jêzyku rosyjskim. Dokument ten zosta³ napisany w standardzie ISO-8859-2. Orygina³ tego dokumentu znajduje siê pod adresem ______________________________________________________________________ Table of Contents: 1. 1. Uwagi ogólne 1.1. 1.1 Wstêp 1.2. 1.2 Dostêpno¶æ i uwagi 2. 2. Znaki i zestawy znaków 3. 3. Ustawianie trybu tekstowego 3.1. 4.1. Konsola 3.2. Konsola FreeBSD 3.3. System X Window 3.3.1. Xowe czcionki 3.3.2. T³umaczenie danych wprowadzanych 3.3.2.1. Tablica znaków 3.3.2.2. Zasady prze³±czania trybów 4. Obs³uga cyrylicy w LaTeXie 4.1. U¿ywanie Washington Cyryliic 4.2. Pakiet KOI-8 dla LaTeXa 4.3. U¿ywanie pakietu cmcyralt dla LaTeXa 4.4. Pakiet CyrTUG 5. Cyrylica w PostScriptcie 5.1. Dodawanie czcionek cyrylicowych do Ghostscripta 6. Drukowanie 6.1. £adowanie czcionek cyrylicowych do drukarki niepostscriptowej 6.2. Drukowanie ró¿nymi czcionkami 6.3. Konwersja tekstu do TeXa 6.4. Konwersja tekstu do postscriptu 7. Konfiguracja ró¿nych narzêdzi 7.1. 6.1. bash 7.2. 6.2. csh/tcsh 7.3. 6.3. emacs 7.4. 6.4. ispell 7.5. joe 7.6. ksh 7.7. less 7.8. lynx 7.9. mc (Midnight Commander) 7.10. Netscape Navigator 7.10.1. Konfiguracja podstawowa 7.10.2. Konfiguracja zaawansowana 7.11. pine 7.12. rlogin 7.13. sendmail (aka 'zguba sysadmina') 8. zsh 9. U¿yteczne narzêdzia 9.1. Narzêdzia do konwersji 9.2. Narzêdzia programisty 10. Wykaz u¿ytecznych zasobów ______________________________________________________________________ 11.. 11.. UUwwaaggii ooggóóllnnee 11..11.. 11..11 WWssttêêpp Dokument ten obejmuje to czego potrzebujesz aby skutecznie pisaæ, ogl±daæ i drukowaæ dokumenty po rosyjsku pod Linuxem. Chocia¿ dokument ten zak³ada ¿e jako systemu operacyjnego u¿ywasz Linuxa, wiêkszo¶æ z przedstawionych informacji stosuje siê tak¿e do innych odmian Unixa. Postaram siê zachowaæ rozró¿nienie tak widocznym jak to mo¿liwe. Istnieje pewna liczba popularnych dystrybucji linuxowych. Jako system przyk³adowy opiszê Linuxa Red Hat 3.0.3 (Picasso) oraz Red Hat 4.1 (Vanderbildt) - tego którego osobi¶cie u¿ywam. Niemniej jednak postaram siê zaznaczyæ ró¿nice, je¶li takowe istniej±, w instalacji Linux Slackware. Poniewa¿ taka instalacja bezpo¶rednio modyfikuje i rozszerza system operacyjny, powiniene¶ zdawaæ sobie sprawê z tego co robisz. Chocia¿ stara³em siê sprawy maksymalnie upro¶ciæ, posiadanie pewnego do¶wiadczenia z danym programem jest korzystne. Nie zamierzam opisywaæ czym jest system X Windows i jak sk³adaæ dokumenty u¿ywaj±c TeXa lub LaTeXa, albo jak zainstalowaæ drukarkê w Linuxie. Problemy te omawiane s± w innych dokumentach. Z tych samych powodów opisujê instalacjê na skalê systemow±, domy¶lnie wymagaj±c± uprawnieñ administratora. Je¶li jednak istnieje mo¿liwo¶æ instalacji na poziomie u¿ytkownika, nie omieszkam jej wspomnieæ. Uwaga: system X Windows, TeX i inne sk³adniki Linuxa s± z³o¿onymi systemami z wyrafinowan± konfiguracj±. Je¶li co¶ sknocisz, mo¿esz nie tylko nie dokonaæ instalacji cyrilicy, ale popsuæ sk³adnik, je¶li nie ca³y system. Nie ma to na celu ciê odstraszaæ, lecz tylko sprawiæ aby¶ zrozumia³ powagê operacji i by³ ostro¿nym. Wstêpna kopia zapasowa plików konfiguracyjnych jest wielce po¿±dana. Posiadanie pod rêk± jakiego¶ guru zawsze siê przydaje. 11..22.. 11..22 DDoossttêêppnnoo¶¶ææ ii uuwwaaggii Dokument ten dostêpny jest na sunsite.unc.edu lub tsx-11.mit.edu jako czê¶æ Linux Documentation Project. Mo¿e tak¿e byæ dostêpny w ró¿nych archiwach zawieraj±cych Linuxa. Co wiêcej, mo¿e tak¿e wchodziæ w sk³ad dystrybucji Linuxa. Mo¿na go wreszcie otrzymaæ bezpo¶rednio od autora, na ftp.netvision.net.il. Je¶li masz jakie¶ pytania dotycz±ce tego dokumentu, nie wahaj siê, proszê, skontaktowaæ siê ze mn± pod adresem belikoff@netvision.net.il. Ka¿da nowa i u¿yteczna informacja na temat obs³ugi Cyrilicy w ró¿nych Unixach jest mile widziana. Pamiêtaj, pomo¿e to innym. Wielu ludzi pomog³o mi (i nie tylko mi) warto¶ciowymi informacjami oraz sugestiami. Jeszcze wiêcej ludzi do³o¿y³o oprogramowania na u¿ytek publiczny. Przepraszam je¿eli zapomnia³em kogo¶ wymieniæ. Oto wiêc oni: Bas v. de Bakker, David Daves, Siergiej Wakulenko, Siergiej O. Naoumow, Winfried Trümper, Michael van Canneyt. Ten dokument jest (c) 1995 Aleksander L. Belikoff. Mo¿na go u¿ywaæ i rozpowszechniaæ zgodnie ze zwyk³ymi warunkami Linux HOWTO opisanymi poni¿ej. Poni¿sze jest notk± o prawach autorskich Linux HOWTO: Dokumenty Linux HOWTO stanowi± prawn± w³asno¶æ ich autorów, chyba ¿e zaznaczono inaczej. Dokumenty Linux HOWTO mog± byæ reprodukowane i rozposzechniane w ca³o¶ci lub czê¶ci, w ka¿dym fizycznym lub elektronicznym ¶rodku przekazu, tak d³ugo jak w ka¿dej kopii pozostaje niniejsza notka o prawach autorskich. Redystrybucja komercyjna jest dozwolona i popierana; autorzy jednak woleliby zostaæ o takich dystrybucjach powiadomieni. Wszystkie t³umaczenia, prace pochodne i zbiorowe zawieraj±ce dokumenty Linux HOWTO musz± podlegaæ po t± notkê o prawach autorskich. To jest, nie mo¿esz stworzyæ z HOWTO pracy pochodnej i na³o¿yæ dodatkowe ograniczenia na jej dystrybucjê. Wyj±tki do tych regu³ mog± byæ udzielone pod pewnymi warunkami; proszê skontaktowaæ siê z koordynatorem Linux HOWTO pod adresem podanym poni¿ej. W skrócie, chcieliby¶my promowaæ rozprzestrzenianie siê tych informacji tak wieloma kana³ami jak to mo¿liwe. Pragnêliby¶my jednak¿e zachowaæ prawa autorskie do dokumentów HOWTO, i byæ powiadamianymi o ka¿dych planach ich redystrybucji. Je¶li masz pytania, skontaktuj siê proszê z Gregiem Hankinsem, koordynatorem Linux HOWTO, pod adresem gregh@sunsite.unc.edu. Mo¿esz u¿yæ tego adresu z programem finger by zdobyæ numer telefonu i inne dodatkowe informacje dotycz±ce kontaktu. Unix jest zastrze¿onym znakiem przemys³owym X/Open Ltd.; MS-DOS, Windows, Windows NT i Windows 95 s± zastrze¿onymi znakami Microsoft Corp.; System X Windows jest znakiem zastrze¿onym Consortium X, Inc. Wszystkie inne znaki zastrze¿one nale¿± do ich odpowiednich posiadaczy. 22.. 22.. ZZnnaakkii ii zzeessttaawwyy zznnaakkóóww A¿eby zrozumieæ i wy¶wietlaæ znaki ró¿nych jêzyków, system i programy musz± byæ zdolne odró¿niaæ je od innych znaków. To jest, ka¿dy pojedynczy znak musi mieæ odrêbn± reprezentacjê wewn±trz systemu operacyjnego, b±d¼ konkretnego pakietu programów. Taka kolekcja wszystkich odrêbnych znaków które jaki¶ system jest w stanie reprezentowaæ w danym momencie nazywa siê zestawem znaków. W czasie tworzenia najwiêkszych systemów operacyjnych nikt nie dba³ o to aby programy by³y wielojêzyczne. Dlatego te¿ najpopularniejszym zestawem znaków by³ (i ci±gle jest) ASCII (American Standard Code for Information Interchange). Standardowy ASCII (aka siedmiobitowy ASCII) zawiera 128 odrêbnych kodów. Niektóre z nich ASCII definiuje jako faktyczne drukowalne znaki, a niektóre s± tak zwanymi znakami kontrolnymi, które posiada³y specjalne znaczenia w starszych protoko³ach komunikacyjnych. Ka¿dy element zestawu identyfikuje kod bêd±cy liczb± ca³kowit± (0-127). Podzbiór znaków drukowalnych przedstawia te które znale¼æ mo¿na na klawiaturze maszyny do pisania, z niewielkimi dodatkami. Ka¿dy znak zajmuje siedem najmniej znacz±cych bitów bajtu, podczas gdy najbardziej znacz±cy u¿ywany by³ dla celów kontrolnych (np. kontroli transmisji w starszych pakietach komunikacyjnych). Koncepcjê ASCII siedmiobitowego rozszerzy³ ASCII o¶miobitowy (aka rozszerzony ASCII). W tym zestawie zakres kodów znaków to 0-255. Dolna po³owa (0-127) to czysty ASCII, podczas gdy górna zawiera 127 dodatkowych znaków. Poniewa¿ zestaw ten jest wstecznie kompatybilny z ASCII (znak ci±gle zajmuje osiem bitów, kody odpowiadaj± staremu ASCII), zyska³ on sobie szerok± popularno¶æ. ASCII o¶miobitowe nie definiuje zawarto¶ci górnej po³ówki zestawu. Dlatego ISO powziê³o zadanie ustalenia rodziny standardów znanych jako rodzina ISO-8859-X. Jest to zbiór kodowañ o¶miobitowych, w których ni¿sza po³owa ka¿dego kodowania (0-127) odpowiada ASCII, a wy¿sza definiuje znaki dla ró¿nych jêzyków. Zdefiniowano na przyk³ad nastêpuj±ce kodowania: · 8859-1 - Europa Zachodnia, Ameryka £aciñska (znany te¿ jako Latin 1) · 8859-2 - Europa ¦rodkowa i Wschodnia · 8859-5 - cyrylica · 8859-8 - hebrajski W Latin 1 górna po³owa tabeli definiuje ró¿ne znaki które nie s± czê¶ci± alfabetu angielskiego, ale znajduj± siê w ró¿nych jêzykach zachodnioeuropejskich (umlauty niemieckie, akcenty francuskie). Programy które nie zak³adaj± nic co do ósmego bitu danych ASCII zwane s± o¶miobitowo czystymi. Niektóre starsze programy, napisane z my¶l± o ASCII 7-bitowym, nie s± czyste o¶miobitowe i mog± dzia³aæ niepoprawnie z danymi o¶miobitowymi. Wiêkszo¶æ jednak pakietów domy¶lnie radzi sobie z o¶miobitowym ASCII, albo wymaga bardzo prostego ustawienia. UWAGA: zanim wy¶lesz pytanie "Wszystko ustawi³em poprawnie, a nie mogê wprowadzaæ/ogl±daæ znaków cyrylicowych!", zajrzyj do sekcji 8 co do uwag o programie którego u¿ywasz. Poniewa¿ na wiêkszo¶ci systemów ASCII zajmuje osiem bitów, nie ma ju¿ mo¿liwo¶æ aby ci±gle je rozszerzaæ. Sposobem na zaimplementowanie nowych symboli w kodowaniach opartych na ASCII jest stworzenie innej implementacji rozszerzonego ASCII. W taki w³a¶nie sposób zaimplementowane zosta³o kodowanie cyrylicy w ASCII. Wspomnieli¶my ju¿ o standardzie ISO-8859-5 jako okre¶laj±cym kodowanie cyrylicy. Lecz jak to czêsto bywa ze standardami, stworzono go nie bior±c pod uwagê istniej±cej praktyki w by³ym ZSRR. Jedyn± wiêc rzecz± jak± ten standard osi±gn±³ by³o spotêgowanie zamieszania. Nie powiedzia³bym ¿e gdzie¶ siê znacz±co u¿ywa ISO-8859-5. Innymi standardami kodowania cyrylicy s± tak zwane kodowanie Alt i strona kodowa 1251 Microsoftu. Ta pierwsza stworzona zosta³a (przez kogo?) do¶æ dawno temu na potrzeby MS-DOS. W tamtych czasach nie by³o jeszcze tego ca³ego szumu o internetowaniu, intencj± wiêc by³o uczynienie jej jak najbardziej kompatybilnej ze standardem IBM. Dlatego kodowanie Alt jest w rzeczywisto¶ci stron± kodow± IBM, gdzie wszystkie specjalne znaki europejskie w górnej po³ówce zast±piono cyrylicznymi, z wy³±czeniem pseudografiki. Nie rujnowa³o to ³atwego tworzenia okienek i dawa³o tak¿e znaki cyrylicowe. Standard Alt ci±gle ¿yje i jest nies³ychanie popularny w ¶wiecie MS-DOSa. Strona kodowa 1251 to po prostu próba Microsoftu pokazania nowego standardu dla kodowania cyrylicy w Windows. Na ile wiem, nie jest ona kompatybilna z czymkolwiek (niezbyt dziwne, co?) I w koñcu istnieje KOI-8. Jest ono równie¿ stare, ale zaprojektowano je m±drze i dzisiaj za³o¿enia tego projektu wygl±daj± naprawdê u¿ytecznie. I znów, jest ono kompatybilne z ASCII, a znaki cyrylicy umieszczone s± w górnej po³ówce. Lecz g³ównym za³o¿eniem projektowania KOI-8 jest to ¿e pozycje znaków cyrylicy musz± odpowiadaæ znakom angielskim o zbli¿onej wymowie. Konkretnie, je¶li ustawimy ósmy bit w angielskim 'a', dostaniemy mo¿emy uci±æ ósmy bit z ka¿dego znaku i dalej mieæ czytelny tekst. Bardzo to dzisiaj wa¿ne, poniewa¿ w Internecie jest wiele wêz³ów pocztowych które po prostu po cichu obcinaj± ósmy bit, pewne ¿e wszyscy na ca³ej Ziemi mówi± po angielsku. Nic dziwnego ¿e KOI-8 szybko sta³ siê de facto standardem dla cyrylicy w Internecie. Andriej A. Czernow poczyni³ ogromne nak³ady pracy aby ustaliæ w tym obszarze standard. Jest on autorem RFC 1489 ("Registration of a Cyrillic character set"). Te dwa standardy Alt i KOI-8 ró¿ni± siê tylko pozycjami znaków cyrylicowych w tabeli (to jest kodami znaków cyrylicowych)/ G³ówn± ró¿nic± jest to ¿e kodowanie Alt u¿ywane jest tylko przez u¿ytkowników MS-DOS, podczas gdy KOI-8 u¿ywane jest w Unixie, a tak¿e w MS-DOSie (chocia¿ w tym drugim jest znacznie mniej popularne). Poniewa¿ robimy to co trzeba (to znaczy pracujemy w systemie Unixowym) skupimy siê g³ównie na KOI-8. Co do standardu ISO, jest on bardziej popularny jako standard cyrylicy. w Europie i USA. W Rosji zdecydowanie przoduje KOI-8. Istniej± i inne standardy, ró¿ne od ASCII i o wiele bardziej elastyczne. Najbardziej znanym jest Unicode. Nie s± jednak one zaimplementowane tak dobrze jak te podstawowe w Unixie w ogólno¶ci i Linuxie w szczególno¶ci. Dlatego te¿ nie bêdê ich tu opisywa³. 33.. 33.. UUssttaawwiiaanniiee ttrryybbuu tteekkssttoowweeggoo Zasadniczo tryb tekstowy jest najprostsz± metod± pokazywania i wprowadzania znaków cyrylicy. Istnieje jednak jedna zasadnicza komplikacja: fonty w trybie tekstowym i operacje na uk³adzie klawiatury zale¿± od implementacji sterownika terminala. Nie ma wiêc przeno¶nej metody dla osi±gniêcia tego celu miêdzy ró¿nymi systemami. Za chwilê opiszê sposób radzenia sobie ze sterownikiem konsoli Linuxa. Tak wiêc je¶li masz inny system, nie spodziewaj siê ¿e bêdzie to dzia³aæ u ciebie. Zajrzyj raczej do dokumentacji swojego sterownika terminala. Po¶lij mi jednak¿e jakiekolwiek informacje jakie znajdziesz, tak aby móg³ w³±czyæ je do przysz³ych wersji tego dokumentu. 33..11.. 44..11.. KKoonnssoollaa Sterownik konsoli Linuxa jest do¶æ elastycznym kawa³kiem software'u. Potrafi on zmieniaæ fonty oraz uk³ady klawiatury. Aby to osi±gn±æ, bêdziesz potrzebowa³ pakietu kbd. RedHat i Slackware instaluj± kbd jako czê¶æ systemu. Pakiet kbd zawiera narzêdzia do kontrolowania klawiatury oraz znaczny zbiór fontów i uk³adów klawiatury. By ustawiæ cyrylicê, trzeba wykonaæ dwie rzeczy: 1. Ustawienie czcionki ekranowej. Wykonywane jest to za pomoc± programu setfont. Pliki z czcionkami umieszczone s± w /usr/lib/kbd/consolefonts. UWAGA: Nigdy nie uruchamiaj programu setfont pod X, poniewa¿ zawiesi on twój system. Dzieje siê tak poniewa¿ dzia³a on z odwo³aniami niskiego poziomu do karty graficznej, których nie lubi X. 2. Za³adowaæ odpowiedni uk³ad klawiatury programem loadkeys. UWAGA: W RedHat 3.0.3 /usr/bin/loadkeys ma zbyt zawê¿one prawa dostêpu, konkretnie 700 (rwx------). Nie ma powodu aby tak by³o, poniewa¿ ka¿dy mo¿e skompilowaæ swoj± w³asn± kopiê i uruchomiæ j± (odpowiednie odwo³ania do systemu nie s± zarezerwowane tylko dla administratora). Popro¶ wiêc swojego sysadmina aby ustawi³ dlañ bardziej sensowne prawa dostêpu (na przyk³ad 755). Oto wyci±g z mojego skryptu cyrload, który ustawia tryb cyrylicy dla konsoli linuxowej. if [ notset.$DISPLAY != notset. ]; then echo "`basename $0`: nie dzia³a pod X" exit fi loadkeys /usr/lib/kbd/keytables/ru.map setfont /usr/lib/kbd/consolefonts/Cyr_a8x16 mapscrn /usr/lib/kbd/consoletrans/koi2alt echo -ne "\033(K" # magiczna sekwencja echo "U¿yj prawego Ctrl aby zmieniæ tryb" Pozwól mi to nieco wyja¶niæ. £adujesz odpowiednie mapowanie klawiatury. Nastêpnie ³adujesz font odpowiadaj±cy zestawowi znaków Alt. Pó¼niej, aby móc poprawnie wy¶wietlaæ tekst w KOI-8, ³adujesz tablicê przekodowywania ekranowego. Dokonuje ona translacji niektórych znaków z górnej po³ówki kodowania na kodowanie Alt. Kluczowe znaczenie ma s³owo 'niektóre' - nie wszystkie znaki podlegaj± translacji, dlatego te¿ niektóre z nich, jak pseudograficzne znaki IBM, trafiaj± na ekran niezmodyfikowane i wy¶wietlaj± siê poprawnie, poniewa¿ s± one kompatybilne z kodowaniem Alt, w przeciwieñstwie do KOI-8. Aby siê upewniæ, uruchom mc i udawaj ¿e jeste¶ znów w MS-DOS 3.3... W koñcu, owa magiczna sekwencja jest wa¿na, ale nie mam ¿adnego pojêcia co takiego robi resetuje konsolê i mapy odwzorowañ; patrz Keyboard-HOWTO - przyp. GSN. Po¿yczy³em/podkrad³em j± z German-HOWTO jeszcze w 1994, kiedy by³o no chyba jedynym HOWTO zorientowanym na jêzyki narodowe. Je¶li masz jaki¶ pomys³ co do tej magicznej sekwencji, powiadomij mnie, proszê. Dla tych purystów którzy nie chc± próbowaæ kodowania Alt do³±czam jeszcze jedn± wersjê powy¿szego skryptu, u¿ywaj±c± rdzennych fontów KOI-8. if [ notset.$DISPLAY != notset. ]; then echo "`basename $0`: cannot run under X" exit fi loadkeys /usr/lib/kbd/keytables/ru.map setfont /usr/lib/kbd/consolefonts/koi-8x16 echo "U¿yj prawego Ctrl aby zmieniæ tryb" Nie spodziewaj siê jednak ³adnych ramek w swoich okienkowych aplikacjach tekstowych. Chcesz to pewnie teraz wypróbowaæ. Ustaw bash lub tcsh jak trzeba, uruchom je ponownie, potem naci¶nij prawy klawisz Ctrl i upewnij siê ¿e otrzymujesz prawid³owe znaki cyrylicy. Klawisz 'q' musi dawaæ rosyjskie 'krótkie i', w generowaæ 'c' itd. Je¶li co¶ pokrêci³e¶, najlepsz± rzecz± jest przywrócenie ustawieñ oryginalnych (tj. amerykañskich). Wykonaj nastêpuj±ce komendy: loadkeys /usr/lib/kbd/keytables/defkeymap.map setfont /usr/lib/kbd/consolefonts/default8x16 UWAGA: niestety sterownik konsoli nie jest w stanie zachowaæ swojego statusu (a przynajmniej nie w prosty sposób) podczas uruchamiania X Windows. Dlatego, kiedy wyjdziesz z X (albo prze³±czysz zeñ na konsolê), bêdziesz musia³ ponownie za³adowaæ rosyjski font konsolowy. 33..22.. KKoonnssoollaa FFrreeeeBBSSDD Nie u¿ywam FreeBSD, tak wiêc nie mog³em przetestowaæ poni¿szej informacji. Trzeba zacz±æ od tego ¿e wszystkie dane w tej sekcji nale¿y traktowaæ jako wska¼niki. Strona domowa projektu FreeBSD mo¿e mieæ jakie¶ informacje na ten temat. Innym dobrym ¼ród³em jest grupa newsowa relcom.fido.ru.unix. Sprawd¼ tak¿e zasoby wyliczone w sekcji 11. W ka¿dym razie, oto co Ilja K. Orechow sugeruje zrobiæ aby konsola FreeBSD mówi³a po rosyjsku: 1. dodaj w /etc/sysconfig: keymap=ru.koi8-r keyrate=fast # UWAGA: ^[ poni¿ej to pojedynczy znak kontrolny [ESC] keychange="61 ^[[K" cursor=destructive scrnmap=koi8-r2cp866 font8x16=cp866b-8x16 font8x14=cp866-8x14 font8x8=cp866-8x8 2. w /etc/csh.login: setenv ENABLE_STARTUP_LOCALE setenv LANG ru_SU.KOI8-R setenv LESSCHARSET latin1 33..33.. SSyysstteemm XX WWiinnddooww Podobnie jak tryb konsoli, ¶rodowisko X równie¿ wymaga nieco konfiguracji. Zawiera siê w niej ustawienie trybu wprowadzania i Xowych czcionek. Oba aspekty omówione s± poni¿ej. 33..33..11.. XXoowwee cczzcciioonnkkii Po pierwsze zdobyæ musisz kolekcjê czcionek posiadaj±cych znaki cyrylicy w odpowiednich miejscach. Je¶li u¿ywasz najnowszej dystrybucji X (lub XFree86), istnieje szansa ¿e masz ju¿ takie czcionki. W koñcu 1995 X Windows System w³±czy³ zestaw czcionek cyrylicowych, stworzonych przez Cronyxa. Zapytaj swojego administratora systemu, albo je¶li to ty nim jeste¶, sprawd¼ swój system, to jest: 1. Uruchom xlsfonts | grep koi8. Je¶li wyliczono jakie¶ czcionki, twój X-serwer ju¿ o nich wie. 2. W przeciwnym razie wykonaj find /usr -name crox\*.pcf\* aby znale¼æ miejsce czcionek cyrylicowych na serwerze. Bêdziesz musia³ w³±czyæ te czcionki dla X-serwera, jak wyja¶niam poni¿ej. Je¶li nie znalaz³e¶ takich fontów zainstalowanych, bêdziesz musia³ to sam zrobiæ. Istnieje pewna rozbie¿no¶æ co do czcionek. XFree86 twierdzi ¿e kolekcjê czcionek rosyjskich zamieszczonych w dystrybucji stworzy³ Cronyx. Niemniej na sieci znale¼æ mo¿na inne czcionki cyrylicowe Cronyxa (np. na ftp.klae.su), znane jako pakiet xrus (nie myl go z programem xrus, który u¿ywany jest do ustawienia uk³adu klawiatury cyrylicy). Na szczê¶cie ten drugi zosta³ ostatnio przemianowany na xruskb. xrus ma mniej czcionek ni¿ kolekcja w XFree86 (38 wobec 68), ale te drugie czcionki nie chcia³y dzia³aæ z moim ustawieniem Netscape - dawa³y mi jak±¶ strasznie du¿± czcionkê w pasku menu. Pakiet xrus nie stwarza³ tego problemu. Sugerowa³bym ¶ci±gniêcie i wypróbowanie obydwu. Wybierz ten który bardziej ci siê podoba. Mam tak¿e zamiar wkrótce stworzyæ pakiety RPM dla obu kolekcji i pod³adowaæ je do ftp.redhat.com oraz mojego FTP. Istniej± tak¿e starsze rzeczy, na przyk³ad pakiet VakuFonts, stworzony przez Sergieja Wakulenko (), który tworzy³ podstawê dla tego w dystrubucji X. Istniej± te¿ inne. Wa¿n± rzecz± jest to ¿e nazwy czcionek w starszych kolekcjach nie ca³kiem ¶ci¶le stosowa³y siê do standardów. Pó¼niejsze s± w zasadzie w porz±dku, ale czasami wywo³aæ mog± ró¿ne dziwne b³êdy. Mia³em na przyk³ad niemi³e do¶wiadczenia z Maple V dla Linuxa, który wyk³ada³ siê tajemniczo z pakietem VakuFonts, ale dzia³a³ bez zarzutu ze "standardowymi". Zacznijmy wiêc od czcionek: 1. ¦ci±gnij odpowiedni± kolekcjê czcionek. Pakiet dla XFree86 mo¿na znale¼æ w ka¿dym FTP zawieraj±cym dystrybucjê Xa, na przyk³ad mo¿esz j± ¶ci±gn±æ bezpo¶rednio z FTP XFree86. Pakiet xrus znale¼æ mo¿na na ftp.klae.su. 2. Teraz kiedy masz czcionki, stwórz dla nich jaki¶ katalog. Zwykle z³ym pomys³em jest wsadzanie nowych czcionek do ju¿ istniej±cego katalogu. Umie¶æ je wiêc w, powiedzmy, /usr/lib/X11/fonts/cyrillic dla instalacji ca³osystemowej, albo po prostu utwórz katalog prywatny dla u¿ytku osobistego. 3. Je¶li nowe czcionki s± w formacie BDF (pliki *.bdf), musisz je skompilowaæ. Wykonaj dla ka¿dej czcionki bdftopcf -o name.pcf name.bdf Je¶li twój serwer obs³uguje czcionki skompresowane, skompresuj je u¿ywaj±c programu compress compress name.pcf Je¶li chcesz wsadziæ nowe czcionki do ju¿ istniej±cego katalogu, bêdziesz musia³ po³±czyæ stary i nowy font.alias. w przypadku gdy oba istniej±, np. cat font.alias.new >> font.alias Teraz, ¿eby wszystko ustawiæ, powiniene¶ wykonaæ trzy rzeczy: 4. Ka¿da katalog z czcionkami w X musi zawieraæ listê znajduj±cych siê w nim czcionek. Lista ta przechowywana jest w fonts.dir. Nie musisz jej tworzyæ rêcznie. Zamiast tego, wykonaj cd <katalog_z_nowymi_czcionkami> mkfontdir 5. Musisz teraz powiadomiæ X-serwer o tym katalogu z czcionkami. Masz tu kilka opcji: · Instalacja dla ca³ego systemu XFree86. Je¶li uruchamiasz t± wersjê X, do³±cz nowy katalog do listy katalogów w XF86Config. Aby znale¼æ po³o¿enie tego pliku spójrz na wyj¶cie startx. Patrz te¿ XF86Config{4,5} po szczegó³y. · Instalacja dla ca³ego systemu poprzez xinit. Dodaj katalog startowy do pliku startowego xinit. Patrz xinit(1x) i nastêpny punkt po szczegó³y. · Instalacja osobista. Masz specjalny plik startowy dla X - ~/.xinitrc (albo ~/.Xclients, albo ~/.xsession dla u¿ytkowników RedHata). Dodaj do niego nastêpuj±ce komedy: xset +fp katalog_z_czcionkami xset fp rehash · Zrestartuj teraz X. Je¶li wykona³e¶ wszystko prawid³owo, testy na pocz±tku sekcji powiod± siê. Pobaw siê tak¿e xfontsel(1x), aby siê upewniæ ¿e mo¿esz wybieraæ czcionki cyrylicowe. Aby klienci X u¿ywali czcionek cyrylicowych, musisz ustawiæ odpowiednie X-zasoby. Na przyk³ad, ustawiam czcionkê rosyjsk± jako domy¶ln± w swoim /.Xdefaults: *font 6x13 Poniewa¿ moje czcionki cyrylicowe s± pierwsze na li¶cie ¶cie¿ek do czcionek (patrz rezultaty xinit, wybrana zostanie pierwsza czcionka o aliasie 6x13) To prostszy przyk³ad. Je¶li chcesz ustawiæ odpowiedni± czê¶æ X-klienta by u¿ywa³a czcionek cyrylicowych, musisz znale¼æ nazwê zasobu (np. za pomoc± editres(1x) i ustaliæ go albo w bazie danych zasobów, albo w linii komend. Oto kilka przyk³adów: $ xterm -font '-cronyx-*-bold-*-*-*-19-*-*-*-*-*-*-*' $ xfontsel -xrm '*quitButton.font: -*-times-*-*-*-*-13-*-*-*-*-*-koi8-*' 33..33..22.. TT³³uummaacczzeenniiee ddaannyycchh wwpprroowwaaddzzaannyycchh W najnowszych wersjach X (X11R61 i wy¿szych) istniej± dwie "standardowe" metody wprowadzania znaków: pierwotna, dzia³aj±ca z u¿yciem programu xmodmap, oraz nowa, zwana (Xkb) XKeyBoard. Pierwsze co powiniene¶ zrobiæ to wy³±czyæ metodê Xkb! Nie daj siê oczarowaæ jej mo¿liwo¶ciami ustawienia "cyrylicznej klawiatury". Wygl±da na to ¿e ta metoda u¿ywa klawsymów zdefiniowanych w keysymdef.h. Plik ten definiuje klawsymy dla wielu jêzyków. Jednym problemem jest to ¿e te definicje nie maj± nic wspólnego z rozszerzonym zestawem znaków ASCII - jedynym na którym potrafi wy³±cznie operowaæ wiêkszo¶æ programów! Ledwie wiem o jaki¶ programach które zdolne s± przetworzyæ klawsymy z keysymdef.h ró¿ne od o¶miobitowego ASCII. Jednakowo¿ naszym celem jest sprawienie ¿eby obs³uga KOI-8 zadzia³a³a. Aby wy³±czyæ obs³ugê Xkb, przegl±dnij sekcjê Keyboard w swoim pliku XF86Config i wykomentuj wszystkie linie zaczynaj±ce siê od Xkb (wielko¶æ liter bez znaczenia). Zamiast nich, wstaw nastêpuj±c± liniê: XkbDisable Program xmodmap pozwala na dopasowanie kodów które wysy³aj± ró¿ne znaki i ich kombinacje. Ustawia on to opieraj±c siê na pliku zawieraj±cym tabelê t³umaczeñ. Je¶li nie chcesz zajmowaæ siê wszystkimi tymi trikami i wolisz rozwi±zanie od rêki, b±d¼ to ¶ci±gnij odpowiedni± tablicê xmodmapow±, dostêpn± na wielu ftpach zajmuj±cych siê cyrylic±, na przyk³ad ftp.kiae.su albo ftp.funet.fi. Sam sporz±dzi³em równie¿ mapê opisan± poni¿ej, dostêpn± przez mój ftp. Bardziej odpowiedni± alternatyw± jest instalacja pakietu xruskb, który pozwala ci skonfigurowaæ wiêkszo¶æ parametrów translacji wej¶ciowej bez potrzeby obeznania siê z xmodmap. Poni¿ej uproszczony opis przystosowania wej¶cia. Je¶li chcesz jaki¶ bardziej wyrafinowanych trików, zajrzyj do xmodmap(1) lub, jeszcze lepiej, poczekaj na nastêpn± wersjê g³ówn± X, która miejmy nadziejê zajmie siê bie¿±cymi problemami ze wprowadzaniem danych. W naszym przypadku, tablica t³umaczeñ powinna definiowaæ dwie rzeczy: · kody znaków wysy³ane przez klawisze alfanumeryczne, oraz · zasady prze³±czania siê miêdzy trybami 33..33..22..11.. TTaabblliiccaa zznnaakkóóww Jest to w zasadzie sekwencja dyrektyw które przypisuj± pewne klawsymy okre¶lonym kodom klawiszy. Ogólna sk³adnia to: keycode kod = sym1 sym2 sym3 sym4 gdzie kod to numeryczny kod okre¶lonego klawisza na klawiaturze (zajrzyj do tablicy standardowej dla twojego systemu. W moim przypadku znajduje siê ona w pliku /usr/lib/X11/etc/xmodmap.std). "Symy" definiuj± klawsymy wysy³ane przez ten klawisz w ró¿nych stanach. Sym1 jest klawsymem wysy³anym w stanie normalnym, sym2 odpowiada klawiszowi z naci¶niêtym Shift (zwykle), Sym3 i sym4 definiuj± klawsymy wysy³ane przy aktywnym Mode_switch dla stanów normalnych i ze Shiftem odpowiednio (grupa 2, zgodnie z X Protocol Specification). W naszym przypadku aktywny Mode_switch odpowiada wprowadzaniu w trybie cyrylicy. Warto¶ciami powinny byæ albo kody szesnastkowe, albo sta³e symboliczne z /usr/include/X11/keysymdef.h (bez pocz±tkowego "XK_"). Tak wiêc je¿eli chcieliby¶my aby klawisz odpowiadaj±cy ³aciñskiemu "a" wypisywa³ "a" rosyjskie w trybie alternatywnym, napisaliby¶my jak ni¿ej: keycode 38 = a A 0xC1 0xE1 Czytelnik ciekaw byæ mo¿e dlaczego nie u¿y³em sta³ych Cyrillic_a oraz Cyrillic_A, odpowiednio. Odpowied¿ brzmi: nie dzia³aj± one dla mnie. Nie jestem zbyt obeznany z wnêtrzno¶ciami specyfikacji systemu X Windows, ale mam nastêpuj±ce wyt³umaczenie: symboliczne sta³e powy¿ej maj± warto¶ci 0x6C1 oraz 0x6E1 odpowiednio. Oznacza to ¿e w rzeczywi¶cie multijêzykowym ¶rodowisku mo¿naby u¿ywaæ ich bez ich nak³adania siê na inne zestawy znaków. Jednak standard KOI-8 nie jest szczególnie przystosowany do takiego ¶rodowiska. Poniewa¿ wiêc chcemy pozostaæ kompatybilni z przesz³o¶ci±, naruszymy regu³y obs³ugi wielu jêzyków w systemie X Windows. Oto tabela dla najbardziej popularnej rosyjskiej klawiatury w uk³adzie JCUKEN (tabele te pochodz± od tych z pakietu VakuFonts). keysym 4 = 4 dollar 4 quotedbl keysym 5 = 5 percent 5 colon keysym 6 = 6 asciicircum 6 comma keysym 7 = 7 ampersand 7 period keysym q = q Q 0xCA 0xEA keysym w = w W 0xC3 0xE3 keysym e = e E 0xD5 0xF5 keysym r = r R 0xCB 0xEB keysym t = t T 0xC5 0xE5 keysym y = y Y 0xCE 0xEE keysym u = u U 0xC7 0xE7 keysym i = i I 0xDB 0xFB keysym o = o O 0xDD 0xFD keysym p = p P 0xDA 0xFA keysym bracketleft = bracketleft braceleft 0xC8 0xE8 keysym bracketright = bracketright braceright 0xDF 0xFF keysym a = a A 0xC6 0xE6 keysym s = s S 0xD9 0xF9 keysym d = d D 0xD7 0xF7 keysym f = f F 0xC1 0xE1 keysym g = g G 0xD0 0xF0 keysym h = h H 0xD2 0xF2 keysym j = j J 0xCF 0xEF keysym k = k K 0xCC 0xEC keysym l = l L 0xC4 0xE4 keysym semicolon = semicolon colon 0xD6 0xF6 keysym apostrophe = apostrophe quotedbl 0xDC 0xFC keysym grave = grave asciitilde 0xA3 0xB3 keysym z = z Z 0xD1 0xF1 keysym x = x X 0xDE 0xFE keysym c = c C 0xD3 0xF3 keysym v = v V 0xCD 0xED keysym b = b B 0xC9 0xE9 keysym n = n N 0xD4 0xF4 keysym m = m M 0xD8 0xF8 keysym comma = comma less 0xC2 0xE2 keysym period = period greater 0xC0 0xE0 Dla u¿ywaj±cych rosyjskiego uk³adu JAWERTY do³±czy³em nastêpuj±c± tabelê: keysym q = q Q 0xD1 0xF1 keysym w = w W 0xD7 0xF7 keysym e = e E 0xC5 0xE5 keysym r = r R 0xD2 0xF2 keysym t = t T 0xD4 0xF4 keysym y = y Y 0xD9 0xF9 keysym u = u U 0xD5 0xF5 keysym i = i I 0xC9 0xE9 keysym o = o O 0xCF 0xEF keysym p = p P 0xD0 0xF0 keysym bracketleft = bracketleft braceleft 0xDB 0xFB keysym bracketright = bracketright braceright 0xDD 0xFD keysym a = a A 0xC1 0xE1 keysym s = s S 0xD3 0xF3 keysym d = d D 0xC4 0xE4 keysym f = f F 0xC6 0xE6 keysym g = g G 0xC7 0xE7 keysym h = h H 0xC8 0xE8 keysym j = j J 0xCA 0xEA keysym k = k K 0xCB 0xEB keysym l = l L 0xCC 0xEC keysym z = z Z 0xDA 0xFA keysym x = x X 0xD8 0xF8 keysym c = c C 0xC3 0xE3 keysym v = v V 0xD6 0xF6 keysym b = b B 0xC2 0xE2 keysym n = n N 0xCE 0xEE keysym m = m M 0xCD 0xED keysym backslash = backslash bar 0xDC 0xFC keysym grave = grave asciitilde 0xC0 0xE0 keysym equal = equal plus 0xDE 0xFE keysym 3 = 3 numbersign 3 0xDF keysym 4 = 4 dollar 4 0xFF 33..33..22..22.. ZZaassaaddyy pprrzzee³³±±cczzaanniiaa ttrryybbóóww Jest to zasadniczo czê¶æ konfiguracji Xowej cyrylicy wymagaj±ca najwiêcej wiedzy. Zdefiniowaæ powiniene¶ warunki w których tryb bie¿±cy prze³±czany jest miêdzy trybem zwyk³ym i cyrylicy. Dziêki m±dremu zaprojektowaniu translacji wej¶cia w X, jest ona nieprzeno¶na, nieelastyczna, niekompletna i ogólnie mówi±c do kitu. Nic dziwnego ¿e ludzie przenosz± siê na MS Windows. Obecnie du¿o siê dzieje w rozwijaniu XFree86 w ogólno¶ci i modelu wej¶cia w X w szczególno¶ci. Rezultat jest taki ¿e twoja konfiguracja mo¿e dzia³aæ z jedn± wersj± XFree86 i nie dzia³aæ z inn±. Co gorsza, czasami rzeczy ró¿ni± siê miêdzy ró¿nymi serwerami w tej samej dystrybucji. Najpierw opiszê moje ustawienia, które w obecnej chwili dzia³aj± dla mnie. Pracujê w XFree86 3.3, serwer SVGA. W moim pliku XF86Config (w dystrybucji RedHata umieszczony jest on w /etc/X11, w sekcji "Keyboard" mam nastêpuj±ce dyrektywy: Istniej± dwa sposoby osi±gniêcia tego w Linuxie. Jedna jest specyficzna dla XFree86, podczas gdy druga jest bardziej ogólna (nie za bardzo mo¿e, jak i poka¿ê ni¿ej). LeftAlt Meta RightAlt ModeShift ScrollLock ModeLock RightCtl Control UWAGA: Metoda ustawiania regu³ prze³±czania trybów poprzez plik XF86Config jest specyficzna dla XFree86. Nie bêdzie ona dzia³aæ w innych wersjach X. Teraz ³adujê tabelê opisan± w poprzedniej sekcji i zachowan± w jakim¶ pliku u¿ywaj±c narzêdzia xmodmap(1x): xmodmap <plik_z_tabel±> Teraz mam mo¿liwo¶æ zaznaczenia trybu wprowadzania cyrylicy u¿ywaj±c prawego klawisza Alt oraz prze³±czenia na cyrylicê i z powrotem u¿ywaj±c ScrollLock. Zdziwisz siê je¶li zobaczysz ¿e ani CapsLock ani klawisze Control nie dzia³aj± w trybie wprowadzania cyrylicy. Có¿, powiem to raz jeszcze: model wej¶cia X jest do kitu! Resztê tej sekcji zajmuje zwiêz³y opis zwyk³ej konfiguracji translacji wej¶cia w X. Dzia³a³a ona dla starszych wydañ XFree86, ale teraz wykazuje rozmaite problemy. Pozostawi³em j± tutaj, tak aby co bardziej ciekawi z was mogli spróbowaæ czê¶ci tego i zu¿ytkowaæ to. Powiniene¶ zrobiæ co nastêpuje: · przypisaæ klawsym Mode_switch jakiemu¶ klawiszowi, oraz · dodaæ Mode_switch do jakie¶ nieu¿ywanego uk³adu Teraz klawisz do którego przypisany jest ModeShift bêdzie dzia³a³ jako prze³±cznik trybów. Oznacza to ¿e gdy jest przyci¶niêty, klawiatura znajduje siê w trybie alternatywnym. Co wiêcej, je¶li dodasz klawsym Mode_lock do tego uk³adu, bêdzie on ustawia³ na sta³e tryb alternatywny. Uwaga: s± jednak pewne problemy. Siergiej Wakulenko (vax@cronyx.com) wskaza³ ¿e ró¿ne implementacje X-serwerów maj± ró¿ne zasady przypisywania prze³±czników trybu (np. niektóre serwery ograniczaj± zestaw klawiszy które mog± dzia³aæ w trybie prze³±cznika do, powiedzmy, CapsLock, NumLock oraz ScrollLock). Na szczê¶cie ma siê to zmieniæ w nastêpnym wydaniu systemu X Windows. Po szczegó³y patrz specyfikacja X Protocol. Niestety nie uda³o mi siê zmusiæ CapsLock aby mia³ t± sam± funkcjonalno¶æ w trybie alternatywnym, konkretnie aby na sta³e w³±cza³ du¿e litery. Wydaje mi siê ¿e nie mo¿na tego dokonaæ z powodu idiotycznego zaprojektowania translacji wej¶cia w X. Je¶li siê mylê, proszê mnie poprawiæ. Zobaczmy przyk³ad. Za³ó¿my ¿e chce siê u¿ywaæ prawego Alt jako prze³±cznika trybów i ScrollLock do ustawiania trybu na sta³e. Najpierw powinno siê sprawdziæ domy¶lny uk³ad modyfikatorów. Osi±ga siê to uruchamiaj±c xmodmap bez argumentów. $ xmodmap xmodmap: up to 2 keys per modifier, (keycodes in parentheses): shift Shift_L (0x32), Shift_R (0x3e) lock Caps_Lock (0x42) control Control_L (0x25) mod1 Alt_L (0x40), Alt_R (0x71) mod2 Num_Lock (0x4d) mod3 mod4 mod5 Zgodnie z powy¿szym, plan ataku wygl±da jak nastêpuje: 1. usun±æ klawisz Alt_R z klawsymu mod1 2. przypisaæ klawsym Mode_switch klawiszowi Alt_R 3. przypisaæ klawsym Scroll_Lock do kodu klawisza 78 (kodu rzeczywistego ScrollLock) 4. dodaæ Mode_switch do nieu¿ywanego klawsymu mod3 i 5. dodaæ klawsym Scroll_Lock do mod3 Oto wiêc rozwi±zanie: remove mod1 = Alt_R keysym Alt_R = Mode_switch keycode 78 = Scroll_Lock add mod3 = Mode_switch add mod3 = Scroll_Lock Je¶li u¿yjesz tego drugiego rozwi±zania, mo¿esz po³±czyæ tabelê i dyrektywy dotycz±ce trybów w swoim pliku ~/.Xmodmap. Pliki takie dostarczane s± przewa¿nie razem z ró¿nymi pakietami do obs³ugi cyrylicy pod X. Dobrym przyk³adem s± tabele w doskona³ym pakiecie Siergieja Wakulenki, opisanym wy¿ej. Gdy ju¿ masz taki plik zawieraj±cy tabelê, powiniene¶ wykonaæ komendê: xmodmap filename Plik dla ca³ego systemu to /usr/lib/X11/xinit/xinitrc; osobisty to albo ~/.xinitrc, albo ~/.Xclients, albo ~/.xsession, zale¿nie od tego co masz zainstalowane. UWAGA: Je¶li xmodmap narzeka na twoj± tabelê, spróbuj za³adowaæ najpierw domy¶ln±. Tabela domy¶lna znajduje siê zwykle w /usr/lib/X11/etc/xmodmap.std. 44.. OObbss³³uuggaa ccyyrryylliiccyy ww LLaaTTeeXXiiee W tej sekcji opiszê kilka sposobów nak³onienia TeXa i LaTeXa do sk³adania tekstu w cyrylicy. Istnieje kilka sposobów, które ró¿ni± siê wyrafinowaniem instalacji i wygod± w obs³udze. Dla przyk³adu, jedn± z mo¿liwo¶ci jest zacz±æ bez ¿adnej wstêpnej instalacji i u¿yæ fontów cyrylicowych Washington AMSTeX. Z drugiej strony, mo¿esz zainstalowaæ pakiet LaTeX, który zapewnia wysoki stopieñ ustawieñ dotycz±cych cyrylicy. Mam pewne do¶wiadczenia z dwoma pakietami. Pierwszy to pakiet cmcyralt autorstwa Wadima W. ¯ytnikowa () i Aleksandra Harina (), a ten drugi to pakiet LH autorstwa CyrTUG Cyrillic TeX Users Group ze stylami i dzieleniem wyrazów dla LaTeX2e autorstwa Sergieja O. Naoumowa (). Opiszê obydwa. Zauwa¿ ¿e dostêpne s± dwie wersje LaTeXa : 2.09 jest wersj± starsz±, podczas gdy 2e jest nowszym wydaniem pre-3.0. Je¶li u¿ywasz LaTeXa 2.09, przestaw siê szybko na 2e. Ten drugi pozostaje kompatybilny z tym pierwszym, ale ma o wiele wiêcej funkcji. Miejmy nadziejê ¿e wersja 3 zostanie wkrótce wypuszczona. Opiszê ustawienia dla LaTeXa 2e. Uwaga: oba te pakiety wymagaj± aby tekst w cyrylicy sk³adany by³ z u¿yciem zestawu znaków Alt, nie KOI-8! Spowodowane jest to przyczynami historycznymi, poniewa¿ twórcy tych pakietów pracowali byli z EmTeXem - MS-DOSow± wersj± TeXa (nie wiedzieli jeszcze o Linuxie :-). Przestawienie ich na KOI-8 wymaga nieco wysi³ku i spodziewane jest niebawem. Na razie, u¿ywaj jakiego¶ narzêdzia do konwersji tekstu rosyjskiego z KOI-8 do Alt. Patrz sekcja "Narzêdzia u¿ytkownika". 44..11.. UU¿¿yywwaanniiee WWaasshhiinnggttoonn CCyyrryylliiiicc Pakiet ten zosta³ stworzony przez American Mathematics Society w celu uzupe³nienia dokumentów o odno¶niki po rosyjsku. Dlatego te¿ autorzy nie byli zbyt uwa¿ni, a czcionki wygl±daj± raczej niezrêcznie. Pakiet ten okre¶la siê zwykle jako 'ca³kiem kiepski pakiet cyrylicy dla TeXa'. Niemniej jednak omówimy go, poniewa¿ jest on bardzo ³atwy w u¿yciu i nie wymaga ¿adnej konfiguracji - kolekcja ta dostarczana jest z wiêkszo¶ci± dystrybucji TeXa. Oczywi¶cie nie bêdziesz móg³ sobie pozwoliæ na taki luksus jak automatyczne przenoszenie wyrazów, ale jednak... 1. Poprzed¼ swój dokument nastêpuj±cymi dyrektywami: \input cyracc.def \font\tencyr=wncyr10 \def\cyr{\tencyr\cyracc} 2. Teraz aby napisaæ literê w cyrylicy, wprowadzasz \cyr i u¿ywasz odpowiedniej litery ³aciñskiej albo komendy TeXa. I tak ma³e litery rosyjskiego alfabetu wyra¿aj± nastêpuj±ce kody: a b v g d e { Jest bardzo niewygodnym przekonwertowaæ twoje teksty rosyjskie na takie kodowanie, lecz proces mo¿na zautomatyzowaæ. Program translit (sekcja 11) obs³uguje wynik w postaci TeXowej. 44..22.. PPaakkiieett KKOOII--88 ddllaa LLaaTTeeXXaa Pojawi³ siê jaki¶ nowy pakiet teTeX-rus. Podobno obs³uguje on zestaw znaków KOI-8 i ma wszystkie podstawowe rzeczy wymagane dla TeXa i LaTeXa. Osobi¶cie jeszcze go nie próbowa³em, chocia¿ s³ysza³em o pomy¶lnym go u¿ywaniu. 44..33.. UU¿¿yywwaanniiee ppaakkiieettuu ccmmccyyrraalltt ddllaa LLaaTTeeXXaa Pakiet cmcyralt znale¼æ mo¿na na ka¿dym z wêz³ów CTAN (Comprehensive TeX Archive Network), jak ftp.dante.de. Powiniene¶ zdobyæ dwie kolekcje: kolekcjê fontów z katalogu /fonts/cmcyralt oraz style i regu³y dzielenia wyrazów z katalogu /macros/latex/contrib/others/cmcyralt. Uwaga: upewnij siê ¿e masz zainstalowany pakiet Sauter, bowiem cmcyralt potrzebuje z niego niektórych fontów. Pakiet ten mo¿esz równie¿ zdobyæ z wêz³a CTAN. Powiniene¶ teraz zrobiæ co nastêpuje: 1. Umie¶ciæ nowe czcionki w drzewie czcionek TeXa. W moim systemie (Slackware 2.2) stworzy³em podkatalog cmcyralt w /usr/lib/texmf/fonts/cm/. Utwórz w nim podkatalogi src, tfm i vf. Umie¶æ tam pliki .mf, .tfm oraz 2. Umie¶æ pliki sterowników czcionek (*.fd) z archiwum stylów w odpowiednim miejscu (w moim przypadku by³ to /usr/lib/texmf/tex/latex/fd). 3. Umie¶æ pliki stylów (*.sty) w odpowiednim katalogu stylów LaTeXa (w moim przypadku /usr/lib/texmf/tex/latex/sty). Teraz konfiguracja dzielenia wyrazów. Wymaga to przerobienia pliku bazowego LaTeXa. 1. Plik hyphen.cfg zawiera dyrektywy dla dzielenia wyrazów w angielskim i rosyjskim. Wytnij to co tyczy siê rosyjskiego i umie¶æ to w pliku konfiguracji dzielenia wyrazów LaTeXa, lthyphen.ltx. W moim przypadku plik ten znajdowa³ siê w /usr/lib/texmf/tex/latex/latex-base. 2. W tym samym katalogu umie¶æ plik rhyphen.tex. Potrzebny jest on do stworzenia nowego pliku bazowego. Pó¼niej mo¿esz go usun±æ. 3. Wykonaj w tym katalogu make. Nie zapomnij stworzyæ odno¶nika z Makefile do Makefile.unx. Podczas wykonywania make sprawd¼ komunikaty. Powinno siê pojawiæ: Loading hyphenation patterns for Russian Je¶li wszystko pójdzie poprawnie, otrzymasz w tym katalogu nowy latex.fmt. Wstaw go w odpowiednie miejsce, tam gdzie znajdowa³ siê poprzedni (np. /usr/lib/texmf/ini/). Nie zapomnij zachowaæ starego pliku! Oto¿ i to. Instalacja gotowa. Spróbuj przetworzyæ przyk³ady z archiwum stylów. Je¶li mo¿esz stworzyæ pliki postscriptowe bez ¿adnych problemów, wszystko jest w porz±dku. Teraz aby u¿ywaæ cyrylicy w LaTeXie, wstaw na pocz±tek swojego dokumentu poni¿sz± dyrektywê: \usepackage{cmcyralt} Po szczegó³y patrz plik README w archiwum stylów cmcyralt. Uwaga: je¶li masz problemy z przyk³adami, za³o¿ywszy ¿e instalowa³e¶ prawid³owo, to prawdopodobnie twój system TeX nie zosta³ zainstalowany poprawnie. Na przyk³ad, przy mojej pierwszym te¶cie ka¿da próba stworzenia plików .pk dla czcionek rosyjskich nie udawa³a siê (etap MakeTeXPK). Dok³adne przyjrzenie siê plikom wykry³o pewien niejawny konflikt miêdzy konfiguracjami METAFONT localfont i ljfour. Kiedy¶ by³o to dzia³a³o, ale rozpad³o siê po instalacji cmcyralt. Skontaktuj siê ze swoim lokalnym guru od TeXa - TeX jest bardzo (czasami za bardzo) z³o¿ony aby rekonfigurowaæ go bez wcze¶niejszej znajomo¶ci. 44..44.. PPaakkiieett CCyyrrTTUUGG Pakiet CyrTUG uzyskaæ mo¿esz z archiwum SunSite (ftp://sunsite.unc.edu/pub/academic/russian-studies/Software <ftp://sunsite.unc.edu/pub/academic/russian-studies/Software>). Zrzuæ stamt±d pliki CyrTUGfonts.tar.gz, CyrTUGmacro.tar.gz i hyphen.tar.Z. Proces instalacji nie ró¿ni siê od opisanego powy¿ej. 55.. CCyyrryylliiccaa ww PPoossttSSccrriippttcciiee Eksperci powiadaj± ¿e PostScript jest ³atwy. Nie potrafiê os±dziæ - mam zbyt wiele rzeczy do nauczenia siê aby po¶wiêciæ trochê czasu na naukê PostScriptu. Spróbujê wiêc opisaæ moje smutne z nim do¶wiadczenia. Mile widzia³bym wsparcie od ka¿dego kto wie wiêcej na ten temat ode mnie (ok. 99% ludzko¶ci). Zasadniczo aby wydrukowaæ tekst z u¿yciem PostScriptu, musisz siê upewniæ co do nastêpuj±cych rzeczy: · Czcionka cyrylicowa jest za³adowana lub zawarta w dokumencie · W dokumencie zawarty jest tekst w cyrylicy · Tekst w cyrylicy u¿ywa odpowiednich kodów które odpowiadaj± wymaganiom czcionki · Wybrano odpowiedni± czcionkê do drukowania tekstu w cyrylicy Nie ma rozwi±zania na tyle ogólnego aby je poleciæ jako ¶rodek ostateczny, Spróbujê nakre¶liæ ró¿ne sposoby radzenia sobie z ró¿nymi problemami odno¶nie tematu. Jednym ze sposobów podej¶cia do konfiguracji cyrylicy jest u¿ycie Ghostscripta. Ghostscript (lub po prostu gs w nowomowie) to darmowy (no, quasi-darmowy) interpreter PostScriptu. Ma on wiele zalet, pomiêdzy nimi: · Mo¿liwo¶æ dzia³ania na ró¿nych platformach (Windows, ró¿ne Unixy) · Obs³uga szerokiego zakresu drukarek niepostscriptowych · Du¿y stopieñ konfigurowalno¶ci To co wa¿ne w naszym konkretnym przypadku to to ¿e gdy ju¿ raz skonfigurujemy Ghostscripta, mo¿emy za jego pomoc± dokonywaæ ca³o¶ci drukowania, eliminuj±c tym samym ekstra konfiguracjê dla innych urz±dzeñ postscriptowych (np. HP Laserjet IV). 55..11.. DDooddaawwaanniiee cczzcciioonneekk ccyyrryylliiccoowwyycchh ddoo GGhhoossttssccrriippttaa Jest to wa¿ne, poniewa¿ zapewne nie bêdziesz chcia³ polegaæ na innych programach przy umieszczaniu w wynikowym postscripcie czcionek cyrylicowych. Zamiast tego dodajesz je do gs. i po prostu zmuszasz programy aby generowa³y wyj¶cie w cyrylicy kompatybilne z czcionkami. Aby dodaæ do gs now± czcionkê (w formacie .pfa lub .pfb), musisz: 1. Dodaæ j± do katalogu czcionek gs (np. /usr/lib/ghostscript/fonts). 2. Dodaæ odpowiednie nazwy i aliasy dla czcionki w pliku Fontmap w katalogu gs Ostatnio pojawi³ siê porz±dny zestaw czcionek cyrylicowych dla GhostScripta. Znajduje siê on na ftp.kapella.gpi.ru. Ma on nawet konieczny wpis który trzeba dodaæ do pliku Fontmap. ¦ci±gn±æ musisz zawarto¶æ katalogu /pub/cyrillic/psfonts/. Plik README opisuje niezbêdne szczegó³y. 66.. DDrruukkoowwaanniiee Drukowanie zawsze jest rzecz± zawi³±. Istniej± ró¿ne drukarki ró¿nych producentów z ró¿nymi mo¿liwo¶ciami. Nawet co do drukowania w "go³ym" formacie nie ma jednorodnego rozwi±zania (odnosi siê to nie tylko do Unixa, ale równie¿ do innych systemów operacyjnych). Drukarki maj± ró¿ne jêzyki kontrolne, a czêsto maj± bardzo ró¿ne pogl±dy na obs³ugê innych takich jêzyków. Dobr± wiadomo¶ci± jest to ¿e jeden taki jêzyk kontrolny wydaje siê byæ uznawany za de facto standard dla opisywania zadañ zwi±zanych z drukiem - to jêzyk PostScript, stworzony przez Adobe Corporation. Innym problemem jest ró¿norodno¶æ wymagañ zwi±zanych z us³ug± drukowania. Na przyk³ad, czasem chcesz po prostu wydrukowaæ kawa³ek programu w C z rosyjskimi komentarzami, wiêc nie potrzebujesz ¿adnego ³adnego drukowania - po prostu czysty wydruk ASCII w pojedynczej czcionce. Innym razem, kiedy projektujesz pocztówkê dla swojej dziewczyny, bêdziesz zapewne musia³ j± z³o¿yæ u¿ywaj±c ró¿nych czcionek, i tak dalej. Bêdzie to wymaga³o z pewno¶ci± wiêcej wysi³ku w kwestii ustawienia obs³ugi cyrylicy. Aby podo³aæ pierwszemu zadaniu bêdziesz musia³ po prostu zmusiæ swoj± drukarkê aby rozumia³a jeden font cyrylicowy i (byæ mo¿e) zainstalowaæ jaki¶ program filtruj±cy, który bêdzie wypisywa³ dane w odpowiednim formacie. Aby dokonaæ tego drugiego zadania, bêdziesz musia³ nauczyæ swoj± drukarkê ró¿nych czcionek i mieæ specjalny software. Istnieje tak¿e sytuacja po¶rodku, gdy masz program który wie jak wygenerowaæ i fonty i odpowiednie dane dla drukarki, mo¿esz wiêc, powiedzmy, wykonaæ parê ³adnych wydruków kodu ¼ród³owego bez wyrafinowanych systemów obróbki tekstu. Wszystkie te opcje zostan± mniej lub bardziej omówione poni¿ej. 66..11.. ££aaddoowwaanniiee cczzcciioonneekk ccyyrryylliiccoowwyycchh ddoo ddrruukkaarrkkii nniieeppoossttssccrriippttoowweejj Je¶li masz star± dobr± drukarkê ig³ow± i potrzebujesz tylko wydrukowaæ czysty tekst w KOI-8, spróbuj poni¿szego: 1. Znajd¼ odpowiedni± czcionkê KOI-8 dla swojej drukarki. Sprawd¼ kolekcje MS-DOSowe w Internecie (na przyk³ad archiwum SimTel, ftp. simtel.net) 2. Dowiedz siê z instrukcji jak za³adowaæ czcionkê do drukarki i, mo¿liwie, napisz prosty program który to robi 3. Uruchom ten program z odpowiedniego pliku .rc w czasie startu systemu. Tak wiêc maj±c znaki cyrylicowe w górnej po³ówce zestawu znaków drukarki bêdziesz móg³ drukowaæ teksty po rosyjsku bez ¿adnych ceregieli. Alternatywnie z czcionkami KOI-8 mo¿esz u¿yæ czcionek Alt. S± ku temu dwa powody: · Mo¿e byæ ³atwiej znale¼æ czcionkê Alt, bowiem takowe by³y bardzo rozpowszechnione w kulturze MS-DOSowej · Posiadanie odpowiedniej czcionki Alt pozwoli ci drukowaæ równie¿ pseudografikê Niemniej w tym przypadku bêdziesz musia³ przekodowaæ swoje teksty z KOI-8 na Alt przed pos³aniem ich do drukarki. Jest to ca³kiem ³atwe, poniewa¿ pe³no jest programów które to robi± (patrz "translit", na przyk³ad), tak wiêc wystarczy ¿e w³a¶ciwie wywo³asz ten program w polu if /etc/ printcap. Na przyk³ad dla programu translit napisaæ mo¿esz: if=/usr/bin/translit -t koi8-alt.rus Patrz printcap(5) po szczegó³y. 66..22.. DDrruukkoowwaanniiee rróó¿¿nnyymmii cczzcciioonnkkaammii Jednym ¶wietnym sposobem poradzenia sobie z ró¿nymi czcionkami i drukarkami jest u¿ycie TeXa. Sterowniki TeXa zajmuj± siê wszelkimi detalami, wiêc skoro ju¿ raz nauczy³e¶ TeXa rozumieæ czcionki cyrylicowe, sprawa za³atwiona. Inn± mo¿liwo¶ci± jest u¿ycie PostScriptu. Zdecydowa³em siê po¶wiêciæ temu ca³y rozdzia³, poniewa¿ nie jest to ³atwe. W koñcu, s± i inne edytory tekstów które maj± sterowniki drukarek. Nigdy nie próbowa³em niczego poza TeXem, wiêc nie mogê niczego zasugerowaæ 66..33.. KKoonnwweerrssjjaa tteekkssttuu ddoo TTeeXXaa Je¶li tym czego potrzebujesz jest wydrukowanie tekstu w ASCII bez ¿adnego dodatkowego przetworzenia, mo¿esz spróbowaæ u¿yæ kilku programów które przerobi± twój tekst w cyrylicy na gotowe do przetworzenia plik TeXa. Jednym z najlepszych programów do tego celu jest translit. W tym przypadku nie musisz siê nawet k³opotaæ instalowaniem czcionek cyrylicowych dla TeXa, poniewa¿ translit u¿ywa pakietu Washington Cyriliic, który w³±czony jest do wiêkszo¶ci dystrybucji TeXa (a mo¿e siê mylê?) 66..44.. KKoonnwweerrssjjaa tteekkssttuu ddoo ppoossttssccrriippttuu Czasami masz tekst w czystym KOI-8 i chcesz go wydrukowaæ tylko po to ¿eby mieæ go na papierze. Jedn± z najprostszych metod osi±gniêcia tego jest u¿ycie specjalnych programów konwertuj±cych tekst do postscriptu. Istnieje pewna liczba programów dokonuj±cych takiej konwersji. Osobi¶cie preferujê a2ps. Stworzony pocz±tkowo jako prosty konwerter tekstu do postscriptu, sta³ siê on du¿ym i wysoce konfigurowalnym programem z wieloma opcjami, pozwalaj±c ci obs³u¿yæ ró¿ne wielko¶ci strony, pod¶wietlanie sk³adni itp. Inne narzêdzie (obecnie dostêpne jako czê¶æ projektu GNU) to enscript G³ównym problemem z takimi programami jest to ¿e nie wiedz± one nic o czcionkach cyrylicowych. W³a¶nie rozwa¿am mo¿liwo¶æ zawierania w nich czcionek cyrylicowych, tak aby rozumia³y cyrylicê. Niemniej ca³a ta powy¿sza gadanina by³aby bezcelowa bez ¿adnej rzeczywistej rady. Oto wiêc ona: Jak zwykle, GNU wygrywa. GNUsowy program enscript zaprojektowany zosta³ do konwersji tekstu na postscript i ma doskona³± obs³ugê nie- ASCIIowych zestawów znaków. Nie zawiera on cyrylicowych czcionek postscriptowych, ale bardzo ³atwo je zdobyæ, jak wyja¶niono poni¿ej (podziêkowania dla Michaela Van Canneyta). 1. Zainstaluj najnowszy enscript. Jak na razie naj¶wie¿sz± wersj± jest 1.5. Mo¿esz ¶ci±gn±æ go albo z ftp GNU, albo jako pakiet RPM z ftp RedHata. 2. Teraz, je¶li masz szczê¶cie byæ u¿ytkownikiem RedHat Linuxa, ¶ci±gnij i zainstaluj czcionkê Cyriliic Textbook (ftp://ftp.redhat.com/pub/ contrib/i386/enscript-fonts- koi8-1.0.1-i386.rpm) 3. Je¶li nie u¿ywasz RPM, ¶ci±gnij plik textbook.tar.gz z Cyrillic Software Collection na ftp://sunsite.unc.edu/pub/academic/russian- studies/Software/). Rozpakuj go do katalogu w którym zainstalowane s± czcionki enscripta. Przejd¼ teraz do tego katalogu i wykonaj: mkamfmap *.afm 4. Koniec konfiguracji. Spróbuj wydrukowaæ jaki¶ tekst w KOI-8 poni¿sz± komend±: enscript --font=Textbook8 --encoding=koi8 jakis_plik Je¶li chcesz jakiego¶ szybkiego rozwi±zania i nie dbasz o jako¶æ wydruku, a wszystkim czego potrzebujesz jest cyrylica na papierze, spróbuj pakietu rtxt2ps. Jest to bardzo prosty i niewyszukany konwerter tekstu do postscriptu. Jako¶æ wydruku jest nienajlepsza (albo, mówi±c szczerze, ca³kiem z³a), ale robi on to co powinien. Jeszcze inn± desk± ratunku jest przerobiona wersja a2ps. Jest ona do¶æ stara, wiêc nie spodziewaj siê tych wszystkich fajerwerków z nowszych wersji. Ale drukuje ona tekst w cyrylicy, a jako¶æ wydruku jest znacz±co lepsza ni¿ ta rtxt2ps. Do¶wiadczy³em przy niej jednak ró¿nych rodzajów problemów, np. nie mog³em wydrukowaæ wiêcej ni¿ dwóch stron (???) 77.. KKoonnffiigguurraaccjjaa rróó¿¿nnyycchh nnaarrzzêêddzzii Ogólnie, aby przestawiæ pewne narzêdzia w trybie operowania cyrylic± wymagane jest po prostu umo¿liwienie danych o¶miobitowych. W kilku przypadkach wymagane jest powiedzenie aplikacji aby pokaza³a rozszerzone znaki ASCII w ich bazowej formie. 77..11.. 66..11.. bbaasshh Aby bash rozumia³ o¶miobitowe znaki, powiniene¶ ustawiæ trzy zmienne, Najlepszym miejscem jest plik ~/.inputrc. Ustaw co nastêpuje: set meta-flag on set convert-meta off set output-meta on 77..22.. 66..22.. ccsshh//ttccsshh Powinienie¶ ustawiæ poni¿sze w .cshrc: setenv LC_CTYPE iso_8859_5 stty pass8 Je¶li nie masz stty zgodnego z POSIX (niemo¿liwe w Linuxie), zast±p ostatnie wywo³anie przez: stty -istrip cs8 77..33.. 66..33.. eemmaaccss Minimaln± obs³ugê cyrylicy w emacsie zapewnia dodanie poni¿szych wywo³añ do pliku .emacs (zak³adaj±c ¿e zainstalowana jest obs³uga zestawu znaków cyrylicy dla konsoli lub X, odpowiednio). (standard-display-european t) (set-input-mode (car (current-input-mode)) (nth 1 (current-input-mode)) 0) Umo¿liwia to u¿ytkownikowi ogl±danie i wprowadzanie rosyjskich dokumentów. Taki tryb nie jest jednak wielk± wygod±, poniewa¿ emacs nie rozpoznaje zwyk³ych komend klawiatury gdy znajduje siê w trybie wprowadzania cyrylicy. Istnieje pewna liczba pakietów które u¿ywaj± innego podej¶cia. Nie polegaj± one na "input mode" ustalonym przez ¶rodowisko (X lub konsolê). Zamiast tego, pozwalaj± u¿ytkownikowi prze³±czaæ tryb wprowadzania specjalnymi komendami emacsa, a emacs sam jest odpowiedzialny za przedefiniowanie zestawu znaków. Autor mia³ szansê zaznajomiæ siê z trzema takimi pakietami. Pakiet russian.el Walerego Aleksiejewa () pozwala u¿ytkownikowi prze³±czaæ siê miêdzy trybami cyrylicy i zwyk³ym oraz t³umaczyæ zawarto¶æ bufora z jednego kodowania cyrylicy na drugie (co jest szczególnie u¿yteczne przy czytaniu tekstów przeniesionych z MS-DOS). rustable.el (nie znam niestety autora) dodaje do emacsa regu³y sk³adniowe zestawu znaków (granice s³ów, regu³y zmiany wielko¶ci liter itd.) Pakiety te znale¼æ mo¿na w wiêkszo¶ci archiwów emacsowego Lispa. Jedyn± niewygod± jest to ¿e emacs ci±gle traktuje znaki rosyjskie jako specjalne, nie rozpoznaje wiêc granic s³ów rosyjskich i zmian wielko¶ci liter. Aby to poprawiæ, musisz zmodyfikowaæ sk³adniê i tablice wielko¶ci liter emacsa: ;; w zmiennych poni¿ej znajduj± siê ¶miecie, poniewa¿ SGML nie lubi ;; znaków cyrylicy. Bêdziesz musia³ wstawiæ du¿e i ma³e litery ;; rosyjskiego alfabetu, odpowiednio (patrz faktyczne pliki) (setq *russian-abc-ucase* "tu wstaw du¿e litery") (setq *russian-abc-lcase* "tu wstaw ma³e litery") (let ((i 0) (len (length *russian-abc-ucase*))) (while (< i len) (modify-syntax-entry (elt *russian-abc-ucase* i) "w ") (modify-syntax-entry (elt *russian-abc-lcase* i) "w ") (set-case-syntax-pair (elt *russian-abc-ucase* i) (elt *russian-abc-lcase* i) (standard-case-table)) (setq i (+ i 1)))) Dla tego celu stworzy³em plik rusup.el który tego dokonuje, podobnie jak kilka porêcznych funkcji. Musisz za³adowaæ go w swoim ~/.emacs. Jeszcze jeden pakiet to remap, który próbuje bardziej utypowiæ obs³ugê cyrylicy. Pakiet ten napisa³ Per Abrahamsen (), i dostêpny jest on na ftp.iesd.auc.dk. We w³asnej opinii, sugerowa³bym zacz±æ od russian.el, bowiem jest on bardzo ³atwy w konfiguracji i u¿yciu. 77..44.. 66..44.. iissppeellll Istnieje dodatek rspell do pakietu GNU ispell, stworzony przez Neala Daltona (nrd@cray.com), ale do¶wiadczy³em z nim kilku problemów próbuj±c go zmusiæ do natychmiastowego dzia³ania. Spróbuj go - mo¿e tobie siê poszczê¶ci. 77..55.. jjooee Spróbuj opcji -asis 77..66.. kksshh Co do implementacji public domain ksh, pdksh 5.1.3, mo¿esz wprowadzaæ znaki o¶miobitowe tylko w trybie vi. U¿yj set -o vi 77..77.. lleessss Jak na razie, less nie obs³uguje zestawu znaków KOI-8, ale poni¿sza zmienna ¶rodowiskowa za³atwia sprawê: LESSCHARSET=latin1 77..88.. llyynnxx Od wersji 2.6 mo¿esz wybraæ odpowiedni± warto¶æ dla opcji Display Character Set. 77..99.. mmcc ((MMiiddnniigghhtt CCoommmmaannddeerr)) Aby poprawnie wy¶wietlaæ znaki cyrylicy, zaznacz opcjê 'full 8 bits' w menu Options/Display. Je¶li masz problem z brzydkimi ramkami okien, zobacz sekcjê '' Off topic: je¶li chcesz zmusiæ mc do u¿ywania kolorów w oknie xterma, ustaw zmienn± COLORTERM COLORTERM= ; export COLORTERM 77..1100.. NNeettssccaappee NNaavviiggaattoorr Upewnij siê ¿e u¿ywasz wersji Netscape'a wiêkszej ni¿ 3. Je¶li twój Netscape jest starszy, ¶ci±gnij nowszego z www.netscape.com. 77..1100..11.. KKoonnffiigguurraaccjjaa ppooddssttaawwoowwaa Aby móc ogl±daæ tekst cyrylic± w wiêkszej czê¶ci dokumentów HTMLowych, zrób co nastêpuje: · W menu Options/Encoding Document wybierz Cyrillic (KOI-8) · W menu Options/General Preferences/Fonts wybierz Cyrillic (KOI-8), Times(Cronyx) jako czcionkê proporcjonaln± i Courier(Cronyx) jako czcionkê o sta³ej szeroko¶ci. · Zachowaj ustawienia UWAGA: konfiguracja ta bêdzie dzia³a³a z wiêksz± czê¶ci± dokumentu. Jednak¿e nie bêdziesz móg³ wy¶wietlaæ tekstu cyrylic± w nag³ówku okna, menu i niektórych dialogach. Aby naprawiæ te problemy: 77..1100..22.. KKoonnffiigguurraaccjjaa zzaaaawwaannssoowwaannaa Andriej A. Czernow wie wiêcej ni¿ inni o KOI-8 w ogóle i o Netscape w szczególno¶ci. Odwied¼ jego doskona³± stronê o KOI-8 i ¶ci±gnij ³atê do pliku zasobów Netscape, co sprawi ¿e Netscape bêdzie mówi³o po rosyjsku na tyle na ile mo¿e. 77..1111.. ppiinnee Wstaw nastêpuj±c± dyrektywê do ~/.pinerc dla konfiguracji osobistej, albo do /usr/lib/pine.conf dla globalnej: character-set=ISO-8859-5 77..1122.. rrllooggiinn Upewnij siê ¿e pow³oka na serwerze docelowym jest ustawiona poprawnie. Potem, je¶li twój rlogin nie dzia³a domy¶lnie prawid³owo, u¿yj rlogin -8. 77..1133.. sseennddmmaaiill ((aakkaa ''zzgguubbaa ssyyssaaddmmiinnaa'')) Od wersji 8 sendmail domy¶lnie prawid³owo radzi sobie z 8-bitowymi danymi. Je¶li nie jest tak u ciebie, sprawd¼ opcjê EightBitMode i opcjê -7 przekazywan± mailerom w twoim /etc/sendmail.cf. Patrz "Sendmail; Installation and Operation Guide" po szczegó³y. 88.. zzsshh U¿ywaj w ten sam sposób jak csh (patrz sekcja o csh). Plikami startowymi w tym przypadku s± .zshrc oraz /etc/zshrc. 99.. UU¿¿yytteecczznnee nnaarrzzêêddzziiaa 99..11.. NNaarrzzêêddzziiaa ddoo kkoonnwweerrssjjii Istnieje pewna liczba programów zdolna konwertowaæ z KOI-8 na Alt i z powrotem. Poszukaj w SovInformBureau albo na ftp.funet.fi listy porêcznych ma³ych programików. Mo¿esz te¿ u¿yæ specjalnego trybu emacsa (patrz sekcja o emacsie). Szczególnie poleca³bym jednak¿e pakiet translit. Obs³uguje on wiele popularnych zestawów znaków i potrafi nawet stworzyæ pliki TeXa (patrz sekcja 5.1). z tekstu rosyjskiego. U¿ytkownicy RedHata maj± do dyspozycji translit w postaci pliku RPM. 99..22.. NNaarrzzêêddzziiaa pprrooggrraammiissttyy Jak dot±d obja¶nia³em sposoby zmuszenia programów do akceptowania i wy¶wietlania zestawu znaków cyrylicy. Niemniej pe³ne przystosowanie systemu do warunków lokalnych obejmuje o wiele wiêcej. To co omówiono powy¿ej nie wystarcza. System powinien byæ przyjazny dla u¿ytkownika, który niekoniecznie musi znaæ angielski. W mojej opinii, nie jest wielk± spraw± obeznanie siê z angielskim na poziomie komunikatów programów. Jednak¿e nie jest ca³kiem fair tego wymagaæ. Tak wiêc nastêpny poziom przystosowania wymaga aby programy by³y dostosowywalne do wymagañ ró¿nych jêzyków i zwyczajów w przedstawianiu danych. Wcze¶niej dokonywano tego poprzez rozwijanie pewnej abstrakcji komunikatów bêd±cych rezultatem kodu programu. Teraz ten mechanizm jest (mniej czy wiêcej) ustandaryzowany. I, oczywi¶cie, istniej± jego darmowe implementacje! Dobra wiadomo¶æ to to ¿e GNU w koñcu przyjê³o sposób tworzenia zinternacjonalizowanych aplikacji. Ulrich Drepper () stworzy³ pakiet gettext, dostêpny we wszystkich repozytoriach GNU, takich jak ftp://prep.ai.mit.edu/pub/gnu/ <ftp://prep.ai.mit.edu/pub/gnu/>. Pozwala on tworzyæ programy w sposób który ³atwo mo¿na roszerzyæ na obs³ugê wielu jêzyków. Nie zamierzam opisywaæ technik programistycznych, zw³aszcza ¿e pakiet gettext zawiera doskona³y podrêcznik. Tak wiêc je¿eli tworzysz programy które wypisuj± jakie¶ komunikaty (a stworzy³e¶ kiedy¶ taki który by ich wypisywa³?), nie leñ siê i w³ó¿ ociupinê (naprawdê ociupinê) wysi³ku w uczynienie swojego programu ¶wiadomym locale. Pro¶ba o wspó³pracê: je¶li chcesz nauczyæ siê pakietu gettext i równocze¶nie do³o¿yæ co¶ do projektu GNU; lub nawet je¶li tylko chcesz do³o¿yæ, mo¿esz to zrobiæ! GNU siê internacjonalizuje, wiêc wszystkie narzêdzia przerabiane s± na ¶wiadome locale. Problemem jest przet³umaczenie komunikatów z angielskiego na rosyjski (i inne jêzyki, jak wam siê podoba). Zasadniczo, to co trzeba zrobiæ to zdobyæ specjalny plik .po, sk³adaj±cy siê z angielskich komunikatów konkretnego narzêdzia i do³±czyæ do ka¿dego komunikatu jego odpowiednik po rosyjsku. W ostatecznym rozrachunku sprawi to ¿e system bêdzie odzywa³ siê po rosyjsku, je¶li zechce tego u¿ytkownik! Po wiêcej szczegó³ów i dalsze wskazówki skontaktuj siê z Ulrichem Drepperem () 1100.. WWyykkaazz uu¿¿yytteecczznnyycchh zzaassoobbóóww Strona domowa a2ps: http://www-inf.enst.fr/~demaille/a2ps.html <http://www-inf.enst.fr/~demaille/a2ps.html> Strona A. Czernowa o KOI-8: http://www.nagual.ru/~ache/koi8.html <http://www.nagual.ru/~ache/koi8.html> Ogólna informacja o Linuxie: http://sunsite.unc.edu/mdw/linux.html <http://sunsite.unc.edu/mdw/linux.html> Moja kolekcja rzeczy zwi±zanych z konfiguracj± cyrylicy: ftp://netvision.net.il/pub/home/b/belikoff/cyrillic/ <ftp://netvision.net.il/pub/home/b/belikoff/cyrillic/> Kolekcja cyrylicowa na ftp.kiae.su: ftp://ftp.kiae.su/cyrillic <ftp://ftp.kiae.su/cyrillic/> Kolekcja cyrylicowa na ftp.relcom.ru: ftp://ftp.relcom.ru/cyrillic/ <ftp://ftp.relcom.ru/cyrillic/> Kolekcja programów cyrylizuj±cych ftp://ftp.funet.fi/pub/culture/russian/comp/ <ftp://ftp.funet.fi/pub/culture/russian/comp/> Cronyx http://www.cronyx.ru/ <http://www.cronyx.ru/> - twórcy czcionek cyrylicowych dla systemu X Windows. Pakiet remap dla emacsa ftp://frp.iesd.auc.dk/ <ftp://ftp.iesd.auc.dk/> Czcionki cyrylicowe dla Ghostscripta: ftp://ftp.kapella.gpi.ru/pub/cyrillic/psfonts <ftp://ftp.kapella.gpi.ru/pub/cyrillic/psfonts> Czcionki cyrylicowe dla X: ftp://ftp.kiae.su/cyrillic/x11/fonts/xrus-2.1.1-src.tgz <ftp://ftp.kiae.su/cyrillic/x11/fonts/xrus-2.1.1-src.tgz> Ghostscript: http://www.cs.wisc.edu/~ghost/index.html <http://www.cs.wisc.edu/~ghost/index.html> GNU nenscript: ftp://ftp.prep.ai.mit.edu/pub/gnu <ftp://prep.ai.mit.edu/pub/gnu/> Informacja o Cyrlillic Software: http://sunsite.oit.unc.edu/sergei/Software/Software.html <http://sunsite.oit.unc.edu/sergei/Software/Software.html> Grupa newsowa relcom.fido.ru.unix. RFC 1489: http://ds.internic.net/rfc/rfc1489.txt <http://ds.internic.net/rfc/rfc1489.txt> U¿yteczne pakiety obs³uguj±ce cyrylicê: ftp://sunsite.unc.edu/pub/academic/russian-studies/Software <ftp://sunsite.unc.edu/pub/academic/russian-studies/Software> Pakiet kbd dla Linuxa: ftp://sunsite.unc.edu/pub/Linux/system/Keyboards/ <ftp://sunsite.unc.edu/pub/Linux/system/Keyboards/> Kolekcje czcionek X: ftp://ftp.switch.ch/mirror/linux/X11/fonts/ <ftp://ftp.switch.ch/mirror/linux/X11/fonts/> SovInformBureau: http://www.siber.com/sib/russify/ <http://www.siber.com/sib/russify/> Pakiet rusyfikuj±cy teTeX: ftp://xray.sai.msu.su/pub/outgoing/teTeX- rus/ <ftp://xray.sai.msu.su/pub/outgoing/teTeX-rus/> rtxt2ps i przerobiony a2ps: http://www.siber.com/sib/russify/converters/ <http://www.siber.com/sib/russify/converters/> Pakiet translit: ftp://ftp.osc.edu/pub/russian/translit/translit.tar.Z <ftp://ftp.osc.edu/pub/russian/translit/translit.tar.Z> Pakiet xruskb: ftp://ftp.relcom.ru/x11/cyrillic/ <ftp://ftp.relcom.ru/x11/cyrillic/> rspell: ftp://sunsite.unc.edu/pub/academic/russian- studies/Software/rspell.tar.gz <ftp://sunsite.unc.edu/pub/academic/russian- studies/Software/rspell.tar.gz> FTP XFree86: http://www.xfree86.org <http://www.xfree86.org>