Osmiobitowe wprowadzanie
                           polskich znaków w TeXu
                   (w implementacjach opartych na web2c)
                                      
   Istnieje kilka sposobów kodowania polskich znaków w dokumencie
   TeXowym. Najbardziej komfortowa jest notacja ,,naturalna''
   osmiobitowa, tzn. zastosowanie jakiejs strony kodowej (np. cp852,
   cp1250, ISO 8859-2 (Latin 2), itp.). Sa dwa zasadnicze sposoby
   nauczenia TeXa przetwarzania tak zapisanego tekstu. Jeden polega na
   zastosowaniu znaków aktywnych. Drugi wymaga wsparcia ze strony samej
   implementacji TeXa polegajacego na przekodowywaniu znaków z wejscia na
   odpowiednie pozycje znaków w stosowanych fontach. Kazdy z wymienionych
   sposobów ma swoje wady i zalety.
   
   Przekodowywanie znaków narodowych przez TeXa jest dostepne w emTeXu i
   sbTeXu (MS DOG), brak go natomiast w popularnych dystrybucjach
   UNIXowych. Implementacja przekodowywania, pod tajemnicza nazwa TCX
   zostal/a wprowadzona na pewien czas do dystrybucji web2c --- matki
   wszystkich UNIXowych dystrybucji TeXa. Wkrótce jednak przeciwnicy tego
   rozwiazania (zwiazani z ekipa LaTeXa 2e) wymogli na autorze web2c jego
   unieczynnienie.
   
   Przekodowywanie wydaje sie byc bardzo uzyteczne w kontekscie potrzeb
   polskich uzytkowników --- zwl/aszcza formatu MeX. Dlatego tez
   podjal/em próbe wprowadzenia na nowo do web2c procedur
   przekodowujacych.
   
   Obserwujac sposób rozwoju Linuksa oraz programów takich jak GIMP, KDE
   czy GNOME dochodze do wniosku, ze wczesne udostepnianie programów jest
   dobrym pomysl/em. Dlatego ponizej znajduje sie wstepna wersja
   implementacji przekodowywania w web2c. Jest ona przeznaczona dla
   ofiarnych testerów a nie dla zwykl/ych uzytkowników. Wszelkie
   informacje o (nie)dzial/aniu nalezy wysyl/ac do mnie. W szczególnosci
   jestem bardzo zainteresowany informacja jak ,,to'' sie sprawuje w
   Luftach. Wydaje mi sie, ze w chwili obecnej zostal/ osiagniety
   wl/asciwy zakres funkcjonalnosci TCX, wiec szczególnie zachecam do
   oceny ,,czy to jest to'', czy moze potrzeba czegos wiecej/mniej.
   
   Pliki
   web2c-tcx.tgz - kod zródl/owy dla web2c 7.2
   web2c-tcx.diff.gz - kod zródl/owy w postaci l/aty, mozna spróbowac
   nal/ozyc na inna wersje web2c; nie zawiera testów i plików .tcx. L/ate
   nalezy nal/ozyc przez (cd texk; patch -p1 <web2c-tcx.diff)
   web2c-tcx_linux_i386_libc6.tgz - wersja binarna dla systemu GNU/Linux
   dla procesorów Intela (uwaga: skompilowane przy uzyciu wersji 2
   bibliotek GNU C, wymaga stosunkowo swiezego systemu linuksowego)
   
   Jak tego uzyc
   Plik z binariami zawiera skompilowane programy tex, etex i pdftex oraz
   przykl/adowe tabele konwersji: iso2-pl.tcx opisujacy przekodowanie
   polskich znaków z pozycji kodu ISO Latin-2 na pozycje fontów PL (lub
   EC) i cp1250-pl.tcx opisujacy to samo dla strony kodowej cp1250
   (Lufty).
   Jezeli w systemie zainstalowane sa programy z pl/yty TeXlive 3 lub
   teTeX 0.9 to binaria te powinny po prostu dzial/ac, nawet bez
   koniecznosci generowania na nowo formatów (ale oczywiscie nie moze to
   byc MeX z pakietu pltexmf z polskimi znakami uzyskiwanymi przy pomocy
   znaków aktywnych). Jezeli ujawnia sie problemy ze sciezkami moze pomóc
   ustawienie zmiennej srodowiskowej TEXMFCNF tak, aby wskazywal/a
   katalog z systemowym plikiem texmf.cnf.
   Programy reaguja na dodatkowa opcje -translate-file wskazujaca tablice
   przekodowan. Opcji tej uzywa sie przy normalnym wywol/aniu TeXa (a nie
   jak w emTeXu przy generowaniu formatu). Ponizsze wywol/anie powinno
   dawac MeXa czytajacego osmiobitowe polskie znaki:
./tex -fmt=mex -translate-file=iso2-pl mojdokument.tex

   TeX poszukuje pliku opisujacego przekodowanie w biezacym katalogu oraz
   w miejscu wl/asciwym dla plików .pool.
   
   Opcji -translate-file mozna uzywac równiez w wywol/aniu initexa
   (nowosc!), ale bedzie ona w mocy tylko w czasie jego pracy. Po co?
   Mozna wyobrazic sobie format oparty na MeXu definiujacy makra o
   nazwach zawierajacych polskie znaki. W pliku takiego formatu nazwy
   makr byl/yby zakodowane w notacji wewnetrznej. A zatem format taki
   byl/by nadal niezalezny od notacji wejsciowej! Przy przetwarzaniu
   dokumentu moznaby nadal wskazac dowolna strone kodowa dla wejscia i
   dawal/aby ona dostep do makr o polskich nazwach. Jak sie zdaje
   prezentujemy tu pierwsza na swiecie implementacje TeXa z taka
   funkcjonalnoscia. Paczka z kodem zródl/owym zawiera kilka plików
   testujacych te mozliwosci. Plik testtcx.ini zapisany w cp1250 sl/uzy
   do wygenerowania formatu MeX rozszerzonego o makro \azs. Pliki
   test-win.tex i test-il2.tex zapisane w kodach cp1250 i ISO 8859-2
   odpowiednio powinny dac sie przetworzyc przy pomocy tego formatu.
   
   Tablice konwersji mozna równiez zadac przypisujac zmiennej
   srodowiskowej TEXCHARTRANSLATE nazwe pliku z tabela. (Jak sie okazuje
   ta funkcjonalnosc istnial/a w dotychczasowym kodzie.) Mozna wreszcie
   wartosc te ustanowic w pliku konfiguracyjnym texmf.cnf, równiez
   selektywnie dla formatu. Oto fragment texmf.cnf sensowny dla MeXa pod
   Linuksem:
% translation files
TEXCHARTRANSLATE.mex = iso2-pl

   Jak to skompilowac
   Osobiscie uzywam zródel/ web2c 7.2 z pl/yty TeXlive 3. Po skopiowaniu
   zródel/ TeXa nalezy plikami z mojej paczki z katalogu changed/
   zastapic odpowiednie oryginalne. Katalog changed/ odpowiada gl/ównemu
   katalogowi texk/. Nastepnie wykonujemy:
./configure --enable-tcx
make
        

   Bez opcji --enable-tcx wynikiem kompilacji beda binaria bajt w bajt
   zgodne z tymi z web2c. Z ta opcja dostaje sie przekodowujacego TeXa,
   który stanowi Nowa Jakosc (tm). Aby skompilowac tylko niektóre
   programy wystarczy wejsc do katalogu web2c i wykonac np. make tex etex
   pdftex.
   Send mail to Marcin Wolinski [INLINE] Strona wiodaca Kacik TeXnika
   Color Free Zone certified page