Jak zwyciëûyîem TeXa.

Od poczâtku zadziwiaîem kolegów PCtowców tym, ûe wszystkie projekty zwiâzane ze studiami przygotowywaîem na swojej nierozszerzonej A1200. Gdy mój komputerek dostaî znacznego przyspieszenia dziëki nowo zakupionej karcie, postanowiîem zadziwiê ich jeszcze bardziej i pokazaê, ûe Amiga takûe rozumie i sprawnie posîuguje sië programem TeX. Oto jak przebiegaîa walka z tym doôê nietypowym jak na Amigowe ôrodowisko systemem.

Po kilku wczeôniejszych próbach (jeszcze z 2MB pamiëci) wiedziaîem, ûe istnieje kilka instalacji TeXa: PasTeX 1.4, AmigaTeX (komercyjny), MaxonTeX (podobnie) oraz najnowsze dziecko Andreasa Scherera - AmiWeb2c. Wybraîem të ostatniâ gdyû wydawaîa sië najôwieûszâ (luty 1997). Caîe archiwum ma okoîo 4 MB, po rozpakowaniu okoîo 11 MB. Przed przystâpieniem do rozruchu przeczytaîem doîâczony plik README.ami i ... okazaîo sië, ûe potrzeba jeszcze sporej iloôci materiaîów z archiwum texmflib-7.0.tar.gz. Ruszyîem wiëc na poszukiwania. Niestety, moje wysiîki pozostaîy bezowocne. Po kilku próbach i niepotrzebnie ôciâgniëtych sporych archiwach, wreszcie trafiîem na to jedno - teTeX-lib-0.4pl3.tar.gz. Okazaîo sië byê sîusznego rozmiaru 8 MB, po rozpakowaniu ... 30 MB! Postëpujâc zgodnie z radami autora AmiWeb2c rozmieôciîem oba drzewa plików tak, aby zgadzaîy sië poddrzewa texmf/. Przy okazji przeniosîem równieû pliki #?.rexx z katalogu /bin/amiweb2c/local na wolumen REXX: oraz pliki InitTeX, MakeTeXls-lR, MakeTeXPK i MakeTeXTFM na wolumen S:. Nastëpnie w katalogach /texmf/ i /share/texmf wywoîaîem skrypt MakeTeXls-lR (uaktualniajâc pliki ls-lR sîuûâce TeXowi do szybkiego wyszukiwania potrzebnych danych). I jeszcze tylko skopiowaîem plik /texmf/source/amiweb2c/s/User-StartUp.entry na S:, dodaîem polecenie Execute User-StartUp.entry do S:User-Startup i po zresetowaniu komputera przystâpiîem do kolejnego kroku instalacji. A byîo nim:

Utworzenie formatów TeXa i LaTeXa.

Postëpujâc zgodnie z instrukcjâ przeszedîem do katalogu /share/texmf/web2c/ i wywoîaîem polecenia:

1.> tex -ini plain
*\input hyphen.cfg

I tutaj dowiedziaîem sië, ûe nie mogë uûywaê pewnych parametrów w pewnym trybie, jednym sîowem nastâpiî bîâd w pliku /texmf/tex/generic/babel/hyphen.cfg. Poszukaîem wiëc jakiegoô innego pliku hyphen.cfg, znalazîem taki w katalogu /texmf/tex/generic/local/ i podaîem jego nazwë wraz z peînâ ôcieûkâ (WAÛNE!). Peîny sukces! Nastëpnie polecenia:

*\dump
1.> makelink from tex.fmt to plain.fmt
1.> tex -ini latex.ltx

1.> mf -ini plain
*input modes;
*dump.
1.> makelink from mf.base to plain.base

1.> mp -ini plain
*dump.
1.> makelink from mp.mem to plain.mem

Potem jeszcze powtórne wywoîanie polecenia MakeTeXls-lR w tych samych co poprzednio katalogach i gotowe!

Pierwsza próba

Nadszedî wiëc czas aby wypróbowaê caîâ instalacjë. Wziâîem pierwszy z brzegu plik (foo) w LaTeXu (w jëzyku angielskim na razie), wywoîaîem polecenie

1. latex foo

i zostaî utworzony plik foo.dvi. Uruchomiîem wiëc program (aplikacjë ? :) ShowDVI i wczytaîem foo.dvi. Chwila niepewnoôci i ... nic. Szybkie spojrzenie na okno shella i okazaîo sië, ûe ShowDVI wywoîaî skrypt MakeTeXPK by utworzyê potrzebne czcionki. Po kilku (-nastu) minutach wszystkie czcionki zostaîy utworzone ale ShowDVI uparcie twierdziî, ûe nie moûe ich znaleúê. Uruchomiîem go wiëc ponownie i sytuacja sië powtorzyîa - tworzenie czcionek i niemoûnoôê ich odczytania. Lecz tym razem skrypt MakeTeXTFM zgîaszaî bîâd, taki mianowicie, ûe próbujë utworzyê czcionki juû istniejâce. Po krótkich poszukiwaniach okazaîo sië ûe winowajcâ jest skrypt MakeTeXFont.rexx. Korzysta on bowiem ze úródeî czcionek w podanym katalogu, np. /texmf/fonts/source/public/cm/ i nastëpnie na podstawie tego katalogu tworzy katalog docelowy, jednak w z góry zadanym drzewie /share/texmf/fonts! Poniewaû drzewa úródîowe i docelowe byîy róûne, czcionki zapisywane byîy w zupeînie nieprzewidywanym miejscu i ShowDVI nie potrafiî ich znaleúê. Ja natomiast znalazîem na to radë takâ: poddrzewa z /texmf/fonts/ przeniosîem do katalogu /share/texmf/fonts/ i problem zostaî rozwiâzany. Teraz ShowDVI mógî odnaleúê potrzebne czcionki a oczy moje nacieszyê sië widokiem piëknych ksztaîtów liter w dokumencie. Zachwyt mój trwaî na tyle dîugo, ûe kiedy po przeîâczeniu programu ShowDVI w tryb 120dpi ten znów nie potrafiî znaleúê dopiero co utworzonych czcionek, z nowym zapasem energii przystâpiîem do poszukiwaï rozwiâzania. Nowo utworzone czcionki (dla rozdzielczoôci 120dpi) zostaîy umieszczone w katalogu /share/texmf/fonts/pk/OneTwoZero/. W pliku konfiguracyjnym ShowDVI.fnt natomiast, dla tej rozdzielczoôci byîo ustawione poszukiwanie w podkatalogach /share/texmf/pk/amiga/ (podobnie jak dla rozdzielczoôci 100dpi). Szybka korekta i juû! Rozdzielczoôci 300 i 600dpi dziaîaîy od razu. Warto jeszcze nadmieniê, ûe po kaûdym utworzeniu kilku nowych czcionek poûâdanym jest uruchomienie skryptu MakeTeXls-lR w katalogach /texmf/ i /share/texmf/ uaktualniajâc spis plików w tych drzewach.

Piszemy po polsku!

No dobrze, lecz Polacy nie gësi, wiëc trzeba zmusiê LaTeXa do pisania po polsku. Sîuûy do tego pakiet Babel konfigurowany za pomocâ pliku /texmf/tex/generic/local/hyphen.cfg. Aby ustawiê poûâdane jëzyki wystarczy odkomentowaê dobrze opisane linie (nie bëdë tu ich przytaczaî) tamûe. Standardowo ustawione sâ jëzyki angielski i niemiecki (austriacki). W mojej wersji tego pliku byî jednak bîâd, plik z polskimi zasadami dzielenia byî mylnie zapisany jako pohyph.tex, zmieniîem go wiëc na plhyph.tex.

Moûliwoôê konfiguracji znalazîem teû w pliku /texmf/tex/generic/config/languages.dat. Tam równieû odkomentowaîem linië z wpisem jëzyka polskiego. Nastëpnie powtórnie utworzyîem formaty TeXa i LaTeXa, oraz dodaîem w pliku S:UserStartUp.entry nastëpujâce linie:

alias PTeX "tex \language=\polish \input"
alias PLaTeX "tex &latex \language=\polish \input ",

wzorujâc sië na poprzednio istniejâcych aliasach dla jëzyka niemieckiego. Pozmieniaîem równieû plik foo.tex tak aby zawieraî polskie znaki (choê muszë przyznaê, ûe doôê dziwnie zapisane, patrz plik \texmf\tex\generic\babel\polish.ldf) i wywoîaîem polecenie

1. PLaTeX foo

po to by dowiedzieê sië, ûe \language=\polish jest niezdefiniowany. Byê moûe winowajcâ jest plik hyphen.cfg uûyty w niewîaôciwej odmianie, ja jednak miaîem juû tego tak doôê, ûe postanowiîem siëgnâê po stary dobry

LaMeX

Archiwum mex105.arj zawiera formaty oraz czcionki pl#? potrzebne przy pracy z polskimi znakami, zarówno w notacji "ciachowej" (o której póúniej) jak i np. Mazovia czy Latin 2 (oraz innych). Doôê powiedzieê, ûe pliki z katalogu mexlamex przeniosîem do /texmf/tex/mex/, pliki z istyles do /texmf/tex/lamex/, z original do /texmf/tex/original/ oraz czcionki z plfonts do /share/texmf/fonts/source/public/plfonts/. Uwaga! Pliki powinny mieê nazwy pisane maîymi literami. Dokonaîem teû filtrowania znaków CR+LF na tych plikach, tak na wszelki wypadek :) Po uaktualnieniu odpowiednich plików ls-lR (patrz wyûej) i przejôciu do katalogu /share/texmf/web2c/ wywoîaîem polecenie:

1.> tex -ini mex

No i okazaîo sië, ûe tex, mimo iû odpowiednie pliki byîy w katalogu original, jako pierwsze znajdowaî pliki z poprzednich katalogów. Zmieniîem wiëc chwilowo nazwy plików:

/texmf/tex/generic/config/hyphen.tex
/texmf/tex/generic/babel/hyphen.cfg
/texmf/tex/generic/local/hyphen.cfg
/texmf/tex/plain/base/plain.tex

na inne. Po ponownym uaktualnieniu plików ls-lR i wywoîaniu:

1.> tex -ini mex
*\dump

uzyskaîem format mex.fmt, a po

1.> tex -ini lamex.tex
*\dump

format lamex.fmt.

Niestety, posiadane przeze mnie 10 MB pamiëci nie wystarczyîo do utworzenia tego ostatniego. Podczas tworzenia formatu byî wywoîywany równieû program MetaFont dla utworzenia czcionek i brakowaîo mu pamiëci. Pomógî program VMM i odrobinka pamiëci wirtualnej. Przy okazji warto zaznaczyê, ûe programy z instalacji TeXa przy wîâczonym VMM wymagaîy u mnie wîâczonej moûliwoôci przechowania danych w pamiëci wirtualnej, natomiast wyîâczonej - kodu programu.

Za chwilë pojawiî sië kolejny problem. Skrypt MakeTeXFont.rexx nie mógî odnaleúê przed chwilâ utworzonej czcionki! Wprowadziîem wiëc maîâ poprawkë do skryptu polegajâcâ na tym, ûe w przypadku tworzenia czcionki w trybie nullmode, zmiennej LAST_CREATED_FONT przypisywana jest nazwa ostatnio utworzonej czcionki z rozszerzeniem .tfm (zmienna TFMFILENAME) zamiast .pk (zmienna PKFILENAME, niezdefiniowana w tym trybie!). W razie potrzeby sîuûë dokîadniejszymi wyjaônieniami i/lub poprawionym skryptem. W trakcie tworzenia jednej bâdú dwóch czcionek wystëpowaî jakiô maîo znaczâcy bîâd, jednak program MetaFont zwracaî bîâd nr. 20 przerywajâc kompilacjë. Chwilowo poprawiîem wiëc skrypt tak aby nie reagowaî na bîëdy. Po tym wszystkim pozostaîo juû tylko przywrócenie poprzednich nazw czterem opisanym wyûej plikom, utworzenia dowiâzania:

1. makelink from mex to tex

w katalogu /bin/, oraz dodania do pliku S:UserStartUp.entry linii

alias LaMeX "mex &lamex ".

Druga próba

Peîen dobrych myôli przystâpiîem wiëc do sprawdzania instalacji. Znów pozmieniaîem plik foo.tex tak aby wystëpowaîy w nim polskie litery w notacji "ciachowej" (czyli znak poprzedzony /, â to /a, Â to /A, itd.) i wywoîaîem polecenie

1. LaMeX foo

Kompilacja poszîa gîadko i otrzymaîem plik foo.dvi. Teraz jeszcze ShowDVI i wczytanie nowo utworzonego pliku, kilka minut na utworzenie polskich czcionek i ... znów to samo, ShowDVi nie moûe ich znaleúê! Tym razem wystarczyîo dopisanie odpowiedniej linii do pliku ShowDVI.fnt, na przykîad dla rozdzielczoôci 100dpi takiej:

basepkdir 100 100 TeX:../share/texmf/fonts/pk/amiga/public/plfonts

I zadziaîaîo! Nie spoczâîem jednak na laurach i...

Spróbowaîem zmusiê LaMeXa do rozpoznania polskich czcionek

W standardzie 'AmigaPL' oczywiôcie! Skoro na PCcie moûna uûywaê Mazovii, to dlaczego nie AmigaPL? Po chwili szperania okazaîo sië, ûe zmian wymagajâ dwa pliki z katalogu /texmf/tex/mex/:

- w pliku mex1.tex, pod koniec, znajdujâ sië definicje kodów dla róûnych sposobów kodowania. Dopisaîem wiëc nowy dla AmigaPL:

\d@finelayout{amigapl}{}
{%
\@Pl A  00  % Â
\@Pl C  01  % Ê
\@Pl E  02  % Ë
\@Pl L  03  % Î
\@Pl N  04  % Ï
\@Pl O  05  % Ó
\@Pl S  06  % Ô
\@Pl X  07  % Ú
\@Pl Z  08  % Û
%
\@Pl a  0a  % â
\@Pl c  10  % ê
\@Pl e  11  % ë
\@Pl l  19  % î
\@Pl n  1b  % ï
\@Pl o  1c  % ó
\@Pl s  1d  % ô
\@Pl x  1e  % ú
\@Pl z  1f  % û
%
\@qq ,, 18
\@qq '' 22
\@qq << 1a
\@qq >> 20
}

- w pliku mexconf.tex na poczâtku sâ polecenia wîâczajâce wymagane sposoby kodowania. Dopisaîem wiëc nowâ linië:

\hyph@nate{amigapl}

Ponownie utworzyîem formaty mex.fmt i lamex.fmt (patrz wyûej). Okazaîo sië jednak, ûe EmTeX dla PCta ma jednâ przyjemnâ cechë, przy tworzeniu formatów moûna mu podaê tabelë przekodowujâcâ z poûâdanego standardu na format rozpoznawany prze LaMeXa. Niestety w AmiWeb2c takiej moûliwoôci nie znalazîem, pozostaîo wiëc obejôê sië smakiem ...

Podsumowujâc:

Walka trwaîa parë dni i zakoïczyîa sië sukcesem (wyjâwszy kodowanie w AmigaPL, ale podobnie pod Linuxem nie udaîo mi sië uzyskaê rozpoznawania kodowania w Mazovii ...). Nie posiadam drukarki, wiëc nie mogîem sprawdziê jak sprawujâ sië programy do drukowania, wydaje mi sië, ûe w pliku DVIPrint.fnt trzeba dokonaê zmian podobnych jak w ShowDVI.fnt.

Z pewnoôciâ istniejâ równieû inne drogi owocnego zainstalowania systemu TeX, ta byîa mojâ. Natomiast jeôli uda sië komuô rozwiâzaê problemy z kodowaniem AmigaPL w LaMeXu z AmiWeb2c lub cokolwiek usprawniê to proszë o kontakt! Nie udaîo mi sië takûe uzyskaê ûadnych rezultatów postëpujâc wedîug wskazaï instrukcji instalacji Autora AmiWeb2c dotyczâcych wykorzystania formatu etex.src. Przy wywoîaniu

1. tex -ini *etex.src

pojawiaî sië komunikat o niemoûliwoôci znalezienia pliku *etex.src, po wywoîaniu

1. tex -ini etex.src

natomiast - o niemoûliwoôci interpretacji tego pliku w trybie nie-rozszerzonym i koniecznoôci wîâczenia tego trybu przez podanie znaku '*' przed nazwâ pliku.

Radosîaw Chyra (Chyras/Negative IQ)
chyras@tempus.ii.uni.wroc.pl

Pliki

ftp://ftp.dante.de/tex-archive/systems/amiga/amiweb2c/amiweb2c-2.lha
http://sunsite.icm.edu.pl/pub/CTAN/systems/unix/teTeX/distrib/sources/teTeX-lib-0.4pl3.tar.gz
http://sunsite.icm.edu.pl/pub/CTAN/languages/polish/mex/mex105.arj