---------------------------------------------------------------------------- MEXINFO.POL: plik informacyjny opisujący pakiet MeX 1.05, 18 grudnia 1993 r. Niewielkie zmiany w dokumentacjach: 8 listopada 1997 r. Zmiany w sekcjach Zasady rozpowszechniania i Jak kontaktować się z autorami oraz przekodowanie pliku do UTF-8: 30 marca 2020 r. ---------------------------------------------------------------------------- Co to jest MeX? =============== MeX jest pakietem plików do TeX-a i METAFONT-a. TeX jest systemem składu drukarskiego, a METAFONT jest systemem do generowania fontów; oba zostały stworzone przez prof. Donalda E. Knutha. Większość użytkowników TeX-a wykorzystuje go wraz ze standardowym oprogramowaniem: z pakietami makr o nazwach PLAIN oraz LaTeX. (Pakiety makr są też nazywane „formatami”.) MeX jest adaptacją formatów PLAIN i LaTeX (v.209) do składu w języku polskim z uwzględnieniem polskich zwyczajów drukarskich. Pakiet MeX składa się z: – fontów (w postaci źródłowych plików METAFONT-owych) zawierających polskie znaki diakrytyczne i dodatkowe używane w języku polskim znaki cudzysłowów – reguł dzielenia wyrazów w języku polskim – plików makr TeX-owych (w wersji źródłowej), zwanych MeX i LaMeX, umożliwiających skład tekstów w języku polskim. Autorzy ======= Fonty: Bogusław Jackowski (BJ) i Marek Ryćko (MR), konsultacja: Roman Tomaszewski Formaty MeX i LaMeX (polska wersja pakietów makr PLAIN i LaTeX209): MR & BJ. Polskie wzorce dzielenia wyrazów: Hanna Kołodziejska (HK), BJ & MR. (Patrz „Historia powstania pakietu MeX”) Zasady rozpowszechniania ======================== MeX jest dobrem wspólnym (ang. „public domain”). Pakiet MeX nie podlega gwarancji żadnego rodzaju. Autorzy nie ponoszą odpowiedzialności za konsekwencje jego używania. Ponadto użytkownik musi stosować się do określonych przez D. E. Knutha reguł dotyczących wykorzystania TeX-a, METAFONT-a i związanego z nimi oprogramowania. Jak kontaktować się z autorami ============================== Korespondencję do autorów można kierować poprzez Polską Grupę Użytkowników Systemu TeX – GUST. Bieżący adres GUST-u: Polska Grupa Użytkowników Systemu TeX – GUST Pl. Rapackiego 1 80-952 Gdańsk POLAND http://www.gust.org.pl Wszelkie uwagi dotyczące pakietu MeX są mile widziane. Historia powstania pakietu MeX ============================== Pakiet MeX powstał w firmie „MacroSoft” Sp. z o. o. w Warszawie. Powstał na bazie poprzedniej polskiej adaptacji TeX-a, noszącej nazwę LeX. Składały się na nią pliki makr oraz rodzina fontów P1. BJ & MR, autorzy LeX-a, pracowali nad tą wersją od listopada 1987 do grudnia 1989. MeX jest udoskonaloną wersją LeX-a, wykorzystującą nowe możliwości TeX-a 3.x. Zestaw wzorców, zawierający reguły dzielenia polskich wyrazów wykorzystany w formacie LeX został zaprojektowany i utworzony przez HK w 1987, a przystosowany do formatu LeX, przetestowany i uzupełniony – przez BJ & MR w latach 1987–1989. W firmie „MacroSoft” Sp. z o. o. zostały wykonane następujące prace: – udoskonalenie reguł dzielenia wyrazów i dostosowanie ich do nowych możliwości TeX-a 3.x – HK, lipiec–sierpień 1991 – przejście od formatu LeX, wersja 1.75, do formatu MeX, wersja 1.01, oraz od fontów P1 do fontów PL, wersja 1.01 – BJ & MR, październik 1991–luty 1992. Autorzy dziękują firmie „MacroSoft” za zapewnienie warunków umożliwiających wykonanie tych prac. Ważniejsze zmiany od czasu powstania pakietu MeX 1.01 ===================================================== Wersja 1.03, 18 grudnia 1992 r.: – wyeliminowano przykry błąd z nieprawidłowym zachowaniem makra \notin i makr pokrewnych (przepraszamy – BJ & MR); – dodano makra \emulateplain i \emulateLaTeX służące do emulacji formatów plain i LaTeX209 odpowiednio wewnątrz formatów MeX i LaMeX; – poprawiono dyskretyzację niektórych polskich znaków; – zmieniono kolejność czytania plików w programach METAFONT-owych, tak aby nie było konieczne tworzenie formatu CM.BAS; – dokonano kilku innych, kosmetycznych zmian, głównie w komentarzach. Wersja 1.05, 18 grudnia 1993 r.: – wyeliminowano błąd (przepraszamy – BJ & MR), wskutek którego niektóre znaki miały przypisaną nieprawidłową kategorię, mianowicie zbyt wiele znaków miało kategorię „litera” (\catcode=11); powodowało to m. in., że w akcentowanym słowie „r\^^Dole” sygnalizowany był błąd „nieznany symbol kontrolny \^^Dole”, podczas gdy wszystko byłoby dobrze, gdyby znak ^^D nie miał kategorii „litera”; obecnie (na początku pracy MeX-a lub LaMeX-a) znaki o kodach 0–127 mają kategorie dokładnie takie same, jak w odpowiednich formatach angielskich, natomiast wśród znaków o kodach powyżej 127 obowiązuje następująca zasada: znaki o kodach odpowiadających pozycjom polskich znaków diakrytycznych w układzie PL mają kategorię „litera”, pozostałe znaki mają kategorię „inny” (\catcode=12); – pliki MFJ, jako związane z instalacją em-TeX-ową, zostały umieszczone razem z plikami instalacyjnymi dla em-TeX-a (plik GPLMODES.MFJ został dostosowany do nowych wersji sterowników Eberharda Matesa); pozostałe pliki METAFONT-owe nie uległy żadnym zmianom i zachowały dotychczasowy numer wersji (1.03); – zrezygnowano z pakowania plików do celów dystrybucyjnych; w związku z tym nie ma potrzeby dołączania programu LHa do zestawu dystrybucyjnego MeX-a. Wersja 1.05a, 30 marca 2020 r.: – Wyczyszczono informacje licencyjne w pakiecie: nie powinno być wątpliwości że pakiet jest udostępniany pod licencją Knutha. – W wielu plikach kodowanie tekstów/komentarzy zamieniono na UTF-8 Instalacja formatów MeX i LaMeX ================================ Do rozpoczęcia pracy z polską wersją formatów PLAIN oraz LaTeX (v.209) niezbędne jest utworzenie za pomocą wersji inicjalizacyjnej programu TeX (INITEX) plików MEX.FMT i LAMEX.FMT i umieszczenie ich w odpowiednim miejscu zależnym od użytego systemu operacyjnego i od implementacji TeX-a. W plikach FMT zapamiętane są w skondensowanej postaci makra oraz reguły przenoszenia wyrazów. Przed utworzeniem plików MEX.FMT i LAMEX.FMT użytkownik powinien przygotować w miejscu dostępnym dla TeX-a, np. w bieżącym katalogu, zestaw plików źródłowych: MEX.TEX, LAMEX.TEX, MEX1.TEX, MEX2.TEX, MEXCONF.TEX, PLHYPH.TEX oraz źródłowe wersje oryginalnych formatów angielskojęzycznych przystosowanych do TeX-a 3.x, tj.: PLAIN.TEX, LATEX.TEX, LPLAIN.TEX, LFONTS.TEX, HYPHEN.TEX. (Pliki PLAIN.TEX i LFONTS.TEX zawierają między innymi listę fontów wykorzystywanych przez angielskojęzyczne wersje formatów PLAIN i LaTeX (v.209). W typowych wersjach plików PLAIN.TEX i LFONTS.TEX większość fontów ma nazwy rozpoczynających się od „cm”. W czasie generacji plików MEX.FMT i LAMEX.FMT przedrostek „cm” zamieniany jest automatyczne na „pl” – nie mylić z „p1” – i do plików FMT są wbudowywane informacje o fontach PL. Plików z fontami CM może w tym czasie w ogóle nie być w pamięci.) Sposób generowania plików FMT zależy od systemu operacyjnego i od implementacji TeX-a. Większość najnowszych implementacji TeX-a, w tym emTeX (autorstwa Eberharda Mattesa), ma możliwość automatycznej zamiany kodów znaków czytanych z pliku na kody wewnętrzne TeX-a. Pozwala to na wykorzystanie pełni możliwości TeX-a przy jednoczesnym uniezależnieniu się od sposobu kodowania polskich liter w danej instalacji komputera. W pakiecie MeX znajdują się pliki wsadowe (ang. batch files) służące do generowania plików FMT pod kontrolą systemu operacyjnego MS-DOS przy użyciu emTeX-a (np. TEX386.EXE). Pliki te wykorzystują tabele konwersji zapisane w postaci źródłowej w plikach MAZ2PL.PCT, ISO2PL.PCT, LAT2PL.PCT i WIN2PL.PCT a w postaci przygotowanej do pracy z INITEX-em w plikach MAZ2PL.TCP, ISO2PL.TCP, LAT2PL.TCP i WIN2PL.TCP. (Pliki TCP powstają z plików PCT po wykonaniu komendy MK-TCP.BAT.) Jeśli użytkownik wykorzystuje kodowanie polskich liter w systemie Mazovia, powinien utworzyć pliki FMT za pomocą GM-MEX.BAT (generowanie MEX.FMT) oraz GM-LAMEX.BAT (generowanie LAMEX.FMT) i odpowiednio: kodowanie w ISO8859-2 (ISO LAtin2) – GI-MEX.BAT oraz GI-LAMEX.BAT. kodowanie w Latin 2 (CP852) – GL-MEX.BAT oraz GL-LAMEX.BAT. kodowanie w Windows (CP1250) – GW-MEX.BAT oraz GW-LAMEX.BAT. Utworzone w ten sposób pliki FMT należy przenieść do odpowiednich kartotek. Konfigurowanie formatów ----------------------- W momencie rozpoczęcia pracy ze standardową konfiguracją formatów MeX i LaMeX obowiązują następujące zasady opisane w pliku MEXCONF.TEX: 1. bieżącym językiem jest język polski, 2. stosowanym układem polskich znaków diakrytycznych w fontach jest układ PL (nie mylić ze sposobem kodowania znaków w plikach wejściowych), 3. obowiązującym sposobem notacji polskich znaków w plikach wejściowych jest notacja jednoznakowa (bezprefiksowa) – zwykle jest to Mazovia lub Latin 2, zależnie od stosowanej tabeli konwersji znaków wejściowych, 4. obowiązującym sposobem spacjowania po znakach przestankowych jest \frenchspacing, tzn. wielkość odstępów międzywyrazowych nie zależy od tego jaki znak poprzedza odstęp. Użytkownik może zmienić te zasady modyfikując plik MEXCONF.TEX (p. informacje zawarte w tym pliku). Podręcznik Użytkownika pakietu MeX ================================== Polskie znaki diakrytyczne -------------------------- W standardowej konfiguracji formatów MeX i LaMeX polskie znaki diakrytyczne zapisywane są jako zwykłe znaki o kodach zależnych od standardu stosowanego na danym komputerze (zwykle Mazovia lub Latin 2). Pozwala to na bardzo wygodne składanie tekstów z użyciem TeX-a: polskie litery widoczne są na ekranie w trakcie przygotowywania tekstu, ponadto możliwe jest definiowanie polskich komend TeX-owych, jak np. \światło, \ślad, \żółć, itp. Niezależnie od standardu kodowania polskich znaków możliwe jest w formatach MeX i LaMeX włączenie za pomocą komendy \prefixing tzw. notacji prefiksowej. (Notację bezprefiksową, obowiązująca na początku przetwarzania każdego dokumentu, przywraca komenda \nonprefixing.) W notacji prefiksowej specyficznie polska litera, taka jak „ą”, „ś” czy „ł” zapisywana jest w pliku danych dla MeX-a za pomocą dwóch znaków, z których pierwszy to znak „/” („ciach”, ang. slash). Litery ą ć ę ł ń ó ś ź ż Ą Ć Ę Ł Ń Ó Ś Ź Ż zapisywane są odpowiednio jako: /a /c /e /l /n /o /s /x /z /A /C /E /L /N /O /S /X /Z Ponieważ znak / został w notacji prefiksowej wykorzystany do oznaczania polskich liter, konieczna jest dodatkowa konwencja notacyjna pozwalająca uzyskać w druku symbol „ciach”. W MeX-u przyjęto naturalną zasadę reprezentowania znaku „ciach” poprzez // (2 znaki „ciach”). Można również używać komendy \normalslash. Należy zwrócić uwagę, że oznaczenie /z, które mogłoby reprezentować albo „ż” albo „ź”, zdecydowano przypisać literze „ż” jako znacznie częściej używanej (w bieżącym zdaniu użyta została pięć razy, nie licząc cytatów). Litera „ź” jest zapisywana w postaci /x, ponieważ klawisz „X” zwykle sąsiaduje z klawiszem „Z” i jest rzadko używany w języku polskim. UWAGI: 1. Podczas obowiązywania notacji prefiksowej znak „/” jest znakiem aktywnym (kategoria 13). Świadomie zrezygnowano ze stosowanego niekiedy sposobu uzyskiwania znaków diakrytycznych poprzez ligatury. 2. Należy pamiętać, że w czasie pisania do pliku za pomocą komendy \write makra są rozwijane. Dotyczy to w szczególności makra „/” i trzeba na to zwracać uwagę przy pisaniu do plików, które mają być potem czytane przez TeX-a. Format LaMeX automatycznie przejmuje kontrolę nad odpowiednim pisaniem i czytaniem standardowych plików pomocniczych (np. pliku ze spisem treści). Cudzysłowy ---------- “Anglosaski” sposób pisania cudzysłowów jest niezgodny z polskimi zwyczajami. Polski cudzysłów otwierający znajduje się na wysokości linii bazowej pisma i ma kształt zbliżony do dwóch przecinków. Formaty MeX i LaMeX oraz fonty PL zostały tak skonstruowane, że polski cudzysłów otwierający zapisuje się w pliku danych wejściowych jako dwa przecinki, a cudzysłów zamykający (podobnie jak w języku angielskim) jako dwa apostrofy. To są właśnie „polskie” cudzysłowy. Niekiedy w języku polskim używany jest też drugi rodzaj cudzysłowów, tzw. cudzysłowy «francuskie». Lewy francuski cudzysłów oznaczany jest dwoma znakami mniejszości, a prawy dwoma znakami większości. Przy zamianie znaków ,, '' << i >> na odpowiednie cudzysłowy wykorzystywany jest TeX-owy mechanizm ligatur. Informacje o ligaturach wbudowane są do fontów PL. W zestawie fontów PL fonty stosowane do składu formuł matematycznych oraz fonty nieproporcjonalne (np. włączane komendą \tt) nie zawierają jednak mechanizmu tworzenia ligatur związanych z cudzysłowami. Cudzysłowy można wtedy pisać poprzez użycie komend \plqq, \prqq, \flqq oraz \frqq (\plqq i \prqq oznaczają odpowiednio lewe i prawe polskie cudzysłowy, \flqq i \frqq oznaczają odpowiednio lewe i prawe francuskie cudzysłowy). Dzielenie wyrazów ----------------- Z punktu widzenia TeX-a zasady dzielenia wyrazów zależą zarówno od języka, jak też od układu liter w bieżącym foncie. W związku z tym dla TeX-a istnieje kilka „języków polskich”. W konsekwencji jeśli użytkownik przełącza się na font o innym układzie (innych kodach) polskich znaków diakrytycznych, to towarzyszyć temu powinno przełączenie TeX-a na inne reguły przenoszenia wyrazów. Pakiet MeX przygotowany jest do pracy z fontami w układzie PL jako podstawowymi oraz dodatkowo z fontami zawierającymi polskie litery w położeniach zgodnych z kodem Mazovia, Latin 2 oraz P1. Podczas tworzenia plików MEX.FMT i LAMEX.FMT standardowo wbudowywane są reguły przenoszenia wyrazów: a) w języku angielskim, b) w języku polskim dla użytkowników stosujących fonty w układzie PL. Użytkownik, zależnie od wielkości dostępnej pamięci, może wbudować do formatu reguły przenoszenia dla innych układów polskich fontów. Wystarczy w tym celu dokonać prostej modyfikacji pliku konfiguracyjnego MEXCONF.TEX. Odpowiednie makra formatu MeX lub LaMeX automatycznie przeczytają odpowiednią liczbę razy ten sam plik zawierający polskie reguły przenoszenia (PLHYPH.TEX), za każdym razem interpretując go w inny sposób. Zależnie od informacji wpisanych w pliku MEXCONF.TEX podczas generowania plików FMT, w czasie późniejszego składania tekstów, przy zmianie układu fontu z polskimi znakami diakrytycznymi MeX (lub LaMeX) będzie włączał bądź ZAKAZ przenoszenia wyrazów (jeśli odpowiednie wzorce nie zostały wbudowane) bądź reguły przenoszenia odpowiednie dla tego układu. Polskie reguły ortograficzne zalecają by wyrazy łączone, takie jak np. „dżentelmen-włamywacz”, przenosić w następujący sposób: dżentelmen- -włamywacz. Dozwolony jest oczywiście podział wewnątrz pierwszego bądź drugiego członu wyrazu, np. dżen- telmen-włamywacz. W języku angielskim nie powtarza się łącznika na początku drugiego wiersza. Z tego powodu w polskiej wersji została wprowadzona komenda \=, która użyta w miejsce łącznika (dżentelmen\=włamywacz) zapewnia dzielenie słów złożonych zgodne z wyżej opisaną zasadą. UWAGA: Ponieważ w formatach PLAIN i LaTeX komenda \= oznacza akcent „macron”, w formatach MeX i LaMeX wprowadzona została w to miejsce komenda \macron. Układy polskich fontów ---------------------- Standardowym układem polskiego fontu jest układ PL (p. rozdział „Fonty PL”). Dopuszczalne jest jednak stosowanie fontów o innych niż PL układach polskich znaków, a nawet mieszanie różnych układów w obrębie jednego dokumentu. Możliwe jest to dzięki komendzie \layout. Następujące wywołania komendy \layout: \layout{pl} \layout{mazovia} \layout{latintwo} \layout{pone} służą do przestawienia systemu MeX lub LaMeX do pracy z fontami w układach odpowiednio: PL – standardowy układ PL Mazovia – polskie znaki (w foncie!) w pozycjach takich jak w kodzie Mazovia, cudzysłów otwierający – kod 255 Latin 2 – polskie znaki (w foncie!) w pozycjach takich jak w kodzie Latin 2, cudzysłów otwierający – kod 255 P1 – układ fontów P1 (używany dawniej z formatem LeX) Wykonanie komendy \layout polega na: – w przypadku włączania układu PL, który jest standardowym, wyróżnionym układem: * przypisanie polskim znakom diakrytycznym kategorii „litera”, w przypadku włączania układu innego niż PL: * przypisanie polskim znakom diakrytycznym kategorii „aktywny” i zdefiniowanie ich jako makr rozwijających się do odpowiednich liter, – odpowiednia zmiana tablicy \sfcode, – utworzenie tablic \uccode i \lccode zgodnych z układem fontu, – przypisanie pozycjom polskich znaków w foncie odpowiednich kodów matematycznych, – włączenie reguł przenoszenia wyrazów w języku polskim zgodnych z układem fontu, jeśli takie reguły zostały przeczytane podczas tworzenia pliku FMT – patrz rozdziały „Instalacja formatów MeX i LaMeX” oraz „Dzielenie wyrazów”; jeśli nie ma odpowiednich reguł, włączany jest zakaz dzielenia wyrazów, – nadanie odpowiedniego znaczenia symbolowi \polish; od tego momentu komenda \language\english może służyć do włączania angielskich reguł dzielenia wyrazów, a komenda \language\polish do włączania dzielenia wyrazów w języku polskim względem bieżącego układu fontu, – przypisanie nowego znaczenia notacji prefiksowej, gdyby była używana (dzięki temu zawsze /a /c /e itp. odwołują się do pozycji znaków w bieżącym układzie fontu), odpowiednio zmieniają się też znaczenia komend \plqq\prqq \flqq\frqq. Należy zwrócić uwagę, że komenda \layout przygotowuje tylko system MeX lub LaMeX do pracy z fontami w odpowiednim układzie, nie włącza jednak samego fontu. Zaleca się stosowanie makra \layout lokalnie (wewnątrz nawiasów grupowych), ze względy na brak komendy odwołującej zmiany spowodowane jego użyciem. (Niezależnie od obowiązującego układu fontu i zmieniającego się wraz z tym układem znaczenia symbolu \polish, symbole \pllanguage, \mazovialanguage, \latintwolanguage, \ponelanguage oznaczają numery języków w sensie TeX-a, czyli numery odpowiednich reguł dzielenia wyrazów. Można więc w razie potrzeby pisać \language\mazovialanguage itp. Dla jednolitości przyjęto, że symbol \englishlanguage oznacza to samo co \english.) Składanie formuł matematycznych ------------------------------- W formułach matematycznych jest bardzo niewiele elementów zależnych od języka. Równanie $2x^2+3x-1=0$ wygląda tak samo w tekście napisanym w języku polskim, jak i w tekście angielskim. Zwykle stosuje się w matematyce jednoliterowe oznaczenia obiektów matematycznych i polskie znaki diakrytyczne nie są używane do tego celu. Pewne sytuacje wymagają stosowania w matematyce nazw wieloliterowych. Zarówno w TeX-u, jak i w jego polskiej wersji należy w takim przypadku określać jawnie nazwę kroju pisma, które ma być użyte, na przykład: $$\it objętość=wysokość \times szerokość \times głębokość$$ Komenda \it jest poleceniem wykonywania składu kursywą tekstową (a nie matematyczną). Polskie litery mogą być używane w formułach matematycznych w indeksach górnych i dolnych, np.: $$x_{\rm średnie} = {{x_{\rm małe} + x_{\rm duże}} \over 2}$$ Jeśli w danym momencie obowiązuje notacja prefiksowa, dotyczy ona również formuł matematycznych. Stosowane w Polsce znaki mniejsze-równe i większe-równe różnią się od znaków w fontach CM zaprojektowanych przez D. E. Knutha (p. rozdział „Fonty PL”). Fonty PL (ściślej PLSY) zawierają odpowiednie znaki, a uzyskać je można za pomocą komend odpowiednio \xleq lub \xle oraz \xgeq lub \xge. W Polsce używa się nazw „tg”, „ctg”, „tgh” i „ctgh” zamiast „tan”, „cot”, „tanh” i „coth”. Formaty MeX i LaMeX zawierają komendy \tg, \ctg, \tgh, oraz \ctgh do składania nazw tych funkcji w formułach matematycznych. Dodatkowo wprowadzona została komenda \arc, która w połączeniu z takimi komendami jak \sin, \cos, itp. (\arc\sin, \arc\cos) umieszcza w składzie napis „arc sin”, „arc cos” z odpowiednio małym odstępem między słowem „arc” i nazwą funkcji. Polskie „style” do formatu LaMeX -------------------------------- W LaTeX209 styl dokumentu określany jest komendą \documentstyle. Parametrem tej komendy jest nazwa pliku zawierającego opis tego stylu: article, report, book, letter itd. Oryginalnych wersji tych plików nie można zastosować do składu w języku polskim ze względu na wstawiane automatycznie angielskie słowa takie jak „Chapter”, „Figure”, „Table of Contents” itp. Częścią pakietu MeX są specjalne wersje tych plików, przystosowane do składu tekstów w języku polskim lub angielskim. Są to: iarticle, ibook, iletter, imakeidx, iopenbib, iproc, ireport, ititlepa. Użycie jednego z tych stylów powoduje umieszczanie w składzie odpowiednich polskich słów takich jak „Rozdział”, „Rysunek”, „Spis treści” itp. oraz składanie daty (automatycznie lub za pomocą komendy \today) po polsku. Style iarticle, ireport itp. mogą być używane również do składania tekstów w języku angielskim. Wymaga to użycia na początku dokumentu komend: \captionsenglish \dateenglish Polskie nazewnictwo przywracają komendy \captionspolish \datepolish. (Implementacja stylów iarticle, ireport itp. została oparta na pomysłach H. Partla i J. Schroda, wykorzystanych w niemieckiej wersji LaTeX-a.) Komendy służące do składania nazw formatów MeX i LaMeX ------------------------------------------------------ W formatach MeX i LaMeX komenda \MeX służy do złożenia nazwy „MeX” z użyciem liter z bieżącego fontu. W formacie LaMeX komenda \LaMeX służy do złożenia nazwy „LaMeX” krojem pisma \rm odpowiedniej wielkości. Fonty PL (polskie rozszerzenie fontów CM) ========================================= 0. Fonty PL przeznaczone są do składania polskich lub polsko-angielskich tekstów przy użyciu formatów MeX i LaMeX. Obecnie mogą też być do składu przy użyciu pakietu PLaTeX polonizującego LaTeX2e (autorstwa Mariusza Olko i Marcina Wolińskiego): ftp://ftp.gust.org.pl/pub/TeX/łanguage/polish/platex-1.0.zip lub ftp://ftp.dante.de/tex-archive/łanguage/polish/platex-1.0.zip Autorzy starali się zachować „ducha CM-ów” przy projektowaniu polskich znaków diakrytycznych. Np. przekreślenie małej litery „ł” zostało nieco tylko powiększone w stosunku do przekreślenia fontów rodziny CM (METAFONT-owy program „Cross for Polish l and L” w pliku ACCENT.MF) umieszczanego w składzie komendami TeX-owymi \l oraz \L, chociaż w niektórych fontach autorzy chętnie widzieliby przekreślenie znacznie wyraźniejsze. Podobnie podcięcia wstawiane automatycznie pomiędzy znakami (implicit kerns) były dodawane raczej ostrożnie. Np. zdaniem autorów podcięcie między polskim otwierającym cudzysłowem („) a literą „W” bądź „T” mogłoby być znacznie większe, gdyby nie to, że w fontach CM nie ma żadnego podcięcia między literą „A” a cudzysłowem zamykającym (”). Fonty PL, podobnie jak macierzyste fonty CM, projektowane były pod kątem zastosowań profesjonalnych, tzn. urządzeń o większych rozdzielczościach. Tym niemniej sporo wysiłku włożono w prawidłową dyskretyzację przy małych rozdzielczościach (dla potrzeb wydruków testowych na drukarkach mozaikowych 9- i 24-igłowych). Gdyby mimo to użytkownik miał inne zdanie niż METAFONT na temat dyskretyzacji, w pakiecie emTeX autorstwa Eberharda Mattesa znajduje się program o nazwie PKEDIT pozwalający ręcznie korygować wygenerowane za pomocą METAFONT-a mapy bitowe. 1. Fonty PL stanowią rozszerzenie standardowego zestawu rodziny Computer Modern (CM) o polskie znaki diakrytyczne i bazują na tych samych plikach parametrycznych co fonty rodziny CM. Zmiany parametrów odbiegające zbyt daleko od standardu zaproponowanego przez D. E. Knutha mogą spowodować nieoczekiwane efekty (do błędu w trakcie obliczeń włącznie). Przykładowo, założone zostało, że kursywa i grotesk wykluczają się. Układ fontów PL charakteryzuje się tym, że znaki o kodach < 128 są identyczne ze znakami rodziny CM, natomiast polskim znakom diakrytycznym przypisane zostały kody > 127 (innych cech TeX-a 3.x nie wykorzystuje się). Polskie znaki diakrytyczne mają kody zgodne z układem ECM (Extended Computer Modern, Cork encoding), natomiast cudzysłowy mają kody niestandardowe (w ECM cudzysłowy mają kody < 127): Ą – 129 ą – 161 Ć – 130 ć – 162 Ę – 134 ę – 166 Ł – 138 ł – 170 Ń – 139 ń – 171 Ó – 211 ó – 243 Ś – 145 ś – 177 Ź – 153 ź – 185 Ż – 155 ż – 187 « (francuski cudzysłów otwierający) – 174 » (francuski cudzysłów zamykający) – 175 „ (polski cudzysłów otwierający) – 255 Uwagi: * Fonty matematyczne PLMI, PLMIB oraz PLEX nie zawierają polskich znaków diakrytycznych i nie różnią się od odpowiednich fontów CM; przedrostki CM zostały zmienione na PL jedynie dla zachowania jednorodności. * Podobnie font PLTEX10 to po prostu font CMTEX10 ze zmienioną dla jednolitości nazwą; font CMTEX10 odzwierciedla układ klawiatury na komputerze używanym przez profesora Knutha (D. E. Knuth, „Computer Modern Typefaces”, str. 568), tym samym nie powinien raczej zawierać polskich znaków diakrytycznych. * Fonty PLSY zostały poszerzone (w stosunku do CMSY) o znaki „większe-równe” i „mniejsze-równe” odpowiadające polskim zwyczajom drukarskim (dolna kreska skośna zamiast poziomej); na konieczność takiego rozszerzenia zwrócił uwagę p. Włodzimierz J. Martin; majuskuły kaligraficzne tych fontów (opisane w pliku CALU.MF) nie zostały uzupełnione o polskie znaki diakrytyczne. 2. Jedynymi znakami „polskimi” dostępnymi poprzez ligatury są cudzysłowy (,, << >>). Polskie znaki diakrytyczne są dostępne albo bezpośrednio, albo za pomocą komendy realizowanej przez „aktywny ciach” (/a /c /e /l /n /o /s /x /z /A /C /E /L /N /O /S /X /Z) zaprogramowanej w formatach MeX i LaMeX (p. opis używania formatów MeX i LaMeX). Istnieją zasadnicze powody, dla których autorzy nie wykorzystali do tego celu ligatur. 3. Ze względu na ograniczenie liczby różnych wysokości znaków w foncie do 15 niezerowych, zrezygnowano z kuszącego wypełniania „górnej połówki” fontu. Ponadto w programach METAFONT-owych podjęte zostały zabiegi mające na celu minimalizację liczby różnych wysokości. Niestety, mimo to w niektórych przypadkach liczba różnych niezerowych wysokości przekracza 15. W takiej sytuacji METAFONT automatycznie zmienia niektóre spośród wysokości. Oznacza to, że w pewnych (bardzo złośliwych i – miejmy nadzieję – niezwykle rzadkich) przypadkach może się zdarzyć, że tekst czysto angielski złożony fontami PL zostanie inaczej przełamany na strony niż tekst złożony fontami CM. 4. Starano się unikać wprowadzania dodatkowych parametrów, co jednak nie zawsze było możliwe. Szczegóły dotyczące możliwości zmiany zachowania domyślnego opisane są w pliku PL_DOD.MF. Przykłady użycia opcjonalnych parametrów zmieniających zachowanie domyślne znaleźć można w plikach źródłowych fontów PLB10, PLBX5, PLBX6, PLBX7, PLBX8, PLCSC10, PLDUNH10, PLFI10, PLFF10, PLITT10, PLR5, PLR6, PLR7, PLR8, PLR9, PLR12, PLR17, PLSL8, PLSL9, PLSL12, PLSSQ8, PLSSQI8, PLTCSC10, PLTI7, PLTI8, PLTI12 oraz PLVTT10. 5. Programy opisujące polskie znaki diakrytyczne zostały oparte na odpowiednich programach rodziny CM. Opisy polskich znaków diakrytycznych stanowią niezależne programy, co jest zgodne z ogólną filozofią programów rodziny CM (można by np. zapamiętywać mapy bitowe liter „A”, „C”, „a”, „c”, …, itd., i te mapy bitowe modyfikować; z takiego podejścia i mu podobnych zrezygnowano). Nieco trickowe rozwiązanie zastosowano w celu uniknięcia duplikowania plików parametrycznych (PLB10, PLBX10, …, itd.). Wykorzystano tu METAFONT-ową zmienną „jobname” do czytania odpowiednich plików parametrycznych rodziny CM. Pliki te powinny znajdować się w kartotece przeszukiwanej przez METAFONT-a w trakcie realizacji komendy „input”. 6. Program dla polskiego cudzysłowu otwierającego zaczerpnięty został z programów rodziny CM. Natomiast kształt cudzysłowów francuskich został zaprojektowany i zaprogramowany „od zera”. 7. Pierwszą i najważniejszą fazą pracy nad fontami PL było zaprojektowanie i zaprogramowanie kształtów polskich znaków diakrytycznych w sześciu podstawowych krojach: PLR, PLSS, PLBX, PLSSBX, PLTT oraz PLTI (stopnie pisma od 5 do 17 punktów). Tym etapem pracy opiekował się troskliwie p. Roman Tomaszewski, wybitny polski typograf, członek zarządu Międzynarodowego Stowarzyszenia Typograficznego ATypI i zarazem przewodniczący Polskiego Oddziału ATypI. Autorzy są mu głęboko wdzięczni za życzliwe wspieranie swą wiedzą i doświadczeniem prac projektowych nad fontami PL. Pan Roman Tomaszewski zmarł w grudniu 1992 roku. 8. Akcenty nad minuskułami „ć” „ń” „ó” „ś” „ź” są takie same jak wstawiany TeX-ową komendą \' akcent „acute”, tyle że w niektórych przypadkach są nieco przesunięte w poziomie. Natomiast akcenty nad majuskułami „Ć” „Ń” „Ó” „Ś” „Ź” są wprawdzie konstruowane w oparciu o akcent „acute”, ale są nieco „spłaszczone” (w przypadku odmian szeryfowych jest to zwykły obrót, natomiast w przypadku odmian bezszeryfowych – obrót połączony z pewną modyfikacją, ze względu na konieczność zachowania poziomego położenia górnej i dolnej krawędzi akcentu oraz optycznej grubości kreski akcentowej). Wyjątkowo w karykaturalnie smukłym foncie PLDUNH10 akcent nad minuskułami i majuskułami jest pochylony tak samo. Powyższe zabiegi są zgodne z regułami sztuki typograficznej, powodują natomiast, że akcenty kładzione za pomocą TeX-owej komendy \accent mogą się istotnie różnić od akcentowanych majuskuł w fontach PL. 9. Akcent nad literami „ż” oraz „Ż” jest taki sam jak kropka nad literą „i”, czyli inny niż akcent wstawiany przez TeX-a (za pomocą komendy \.). W literze „ż” jest także umieszczony na tej samej wysokości co kropka nad „i” (oczywiście nie w foncie kapitalikowym). Dzięki temu w słowach takich jak „gwiżdże” czy „niżej” kropka zachowuje tę samą wysokość. Niestety, w niektórych fontach rodziny CM kropka nad „i” jest stanowczo za mała (np. CMTT), co powoduje, że wartość optyczna kropki nad „ż” oraz „Ż” jest też czasami zbyt mała. Z powiększenia kropki zrezygnowano, uznając jej wielkość za cechę fontów CM. 10. Przekreślenie litery „Ł” jest znacznie większe od przekreślenia litery „ł”, a przekreślenie litery „ł” jest z kolei większe od przekreślenia w fontach rodziny CM (p. punkt 0 powyżej). 11. „Ogonki” pod literami „Ą” „Ę” „ą” „ę” budowane są za pomocą stosunkowo skomplikowanego algorytmu, ale geometria ogonka jest bardzo prosta: zewnętrzna i wewnętrzna krawędź to pojedyncze segmenty krzywych Béziera. Ogonki takie – jak pokazuje doświadczenie – są najzgrabniejsze. Opcjonalne parametry dodatkowe wpływające na kształt ogonków opisane są w pliku PL_DOD.MF. 12. Polskie znaki diakrytyczne nie są przeznaczone do używania jako znaki matematyczne, dlatego w programach opisujących te znaki pominięta została komenda „math_adjust”. 13. Podcięcia wstawiane automatycznie między znakami (implicit kerns) są w zasadzie takie same dla polskich znaków diakrytycznych jak dla odpowiednich liter alfabetu łacińskiego, z pewnymi wszakże wyjątkami (p. pliki POLAN.MF, POLKUR.MF oraz POLKAP.MF); podobnie rzecz się ma z korektą italikową wstawianą za polskimi znakami diakrytycznymi. 14. Dla tych, którzy chcieliby wydrukować źródła METAFONT-owe w postaci sformatowanej za pomocą programu MFT, dołączony jest odpowiedni format o nazwie PL.MFT. Format ten jest przygotowany do składania z użyciem fontów rodziny CM; jeśli użytkownik zamienił już wszystkie CM-y na fonty PL, musi odpowiednio zmienić nazwy fontów w plikach PL.MFT oraz MFTMAC.TEX (plik MFTMAC.TEX znaleźć można np. w pakiecie emTeX E. Mattesa lub ftp://ftp.gust.org.pl/pub/TeX/macros/generic/plain/base/mftmac.tex). 15. Źródła METAFONT-owe obejmują następujące pliki (zakłada się, że użytkownik posiada komplet plików źródłowych rodziny CM): a) pliki zawierające opisy polskich znaków diakrytycznych: PL_CUD.MF PL_DOD.MF PL_MLK.MF PL_DL.MF PL_ML.MF PL_SYM.MF b) pliki sterujące: POLAN.MF – odpowiednik pliku ROMAN.MF POLKAP.MF – odpowiednik pliku CSC.MF POLKUR.MF – odpowiednik pliku TEXTIT.MF POLMAT.MF – odpowiednik pliku MATHSY.MF POLTYT.MF – odpowiednik pliku TITLE.MF c) pliki parametryczne rodziny PL: PLBSY10.MF PLMI10.MF PLSSBI36.MF PLSY5.MF PLBXSL10.MF PLMI12.MF PLSSBI48.MF PLSY6.MF PLBXTI10.MF PLMI5.MF PLSSBX10.MF PLSY7.MF PLBX10.MF PLMI6.MF PLSSBX36.MF PLSY8.MF PLBX12.MF PLMI7.MF PLSSBX48.MF PLSY9.MF PLBX5.MF PLMI8.MF PLSSDC10.MF PLTCSC10.MF PLBX6.MF PLMI9.MF PLSSDC40.MF PLTEX10.MF PLBX7.MF PLR10.MF PLSSI10.MF PLTEX8.MF PLBX8.MF PLR12.MF PLSSI12.MF PLTEX9.MF PLBX9.MF PLR17.MF PLSSI17.MF PLTI10.MF PLB10.MF PLR5.MF PLSSI8.MF PLTI12.MF PLCSC10.MF PLR6.MF PLSSI9.MF PLTI7.MF PLDUNH10.MF PLR7.MF PLSSQI8.MF PLTI8.MF PLEX10.MF PLR8.MF PLSSQ8.MF PLTI9.MF PLEX9.MF PLR9.MF PLSS10.MF PLTT10.MF PLFF10.MF PLSLTT10.MF PLSS12.MF PLTT12.MF PLFIB8.MF PLSL10.MF PLSS17.MF PLTT8.MF PLFI10.MF PLSL12.MF PLSS8.MF PLTT9.MF PLINCH.MF PLSL8.MF PLSS9.MF PLU10.MF PLITT10.MF PLSL9.MF PLSY10.MF PLVTT10.MF PLMIB10.MF PLSSBI10.MF d) dodatkowe pliki parametryczne: * CMSSBI10.MF (odwołują się doń pliki PLSSBI10, PLSSBI36 i PLSSBI48) * CMBX11.MF, CMR11.MF, CMSL11.MF, CMTI11.MF (te pliki służyły do generowania używanych poprzednio 11-punktowych fontów P1) * DLR10 – przykładowy plik służący do generowania fontu PLR10 at 10dd (w jednostkach przyjętych w polskim drukarstwie) e) plik pomocniczy wczytywany podczas przetwarzania przez METAFONT-a plików parametrycznych PL: FIK_MIK.MF f) plik zawierający opis trybu generowania fontów dla fotonaświetlarek Linotronic 100 i Linotronic 300; treść tego pliku należy wkopiować do pliku LOCAL.MF przed generowaniem formatów bazowych (PLAIN.BAS i CM.BAS) za pomocą inicjalizacyjnej wersji METAFONT-a (INIMF): LINOMODE.MF 16. Generowanie fontów PL Konkretnym implementacjom METAFONT-a towarzyszy na ogół oprogramowanie ułatwiające generowanie fontów. Do pakietu MeX dołączone zostały pliki z danymi dla programu MFJOB, obsługującego generowanie fontów z użyciem emMETAFONT-a (szczegóły można znaleźć w dokumentacji pakietu E. Mattesa emTeX). Są to: G180PL.MFJ dane do generowania fontów PL dla drukarek 24-igłowych G240PL.MFJ dane do generowania fontów PL dla drukarek 9-igłowych G300PL.MFJ dane do generowania fontów PL dla drukarek laserowych GPLMODES.MFJ plik wczytywany przy przetwarzaniu plików G180PL.MFJ, G240PL.MFJ i G300PL.MFJ przez program MFJOB.EXE Pliki ===== Pakiet MeX składa się z następujących grup plików: 1. Pliki dokumentacyjne/informacyjne 2. Pliki TeX-owe 3. Pliki METAFONT-a Poniżej przedstawiamy listę wszystkich plików składających się na pakiet MeX-a. Podkreślamy raz jeszcze, że pakiet MeX może być rozpowszechniany tylko tak, jak został przygotowany – musi być kompletny i niezmieniony. Dotyczy to również plików dokumentacyjnych/informacyjnych. (patrz „Zasady rozpowszechniania”). 1. Pliki dokumentacyjne/informacyjne MEXINFO.POL – plik, który jest właśnie czytamy MEXINFO.ENG – analogiczny tekst w języku angielskim 2. Pliki TeX-owe Pliki makr: ----------- MEX.TEX – polska wersja pakietu makr PLAIN.TEX LAMEX.TEX – polska wersja pakietu makr LPLAIN.TEX MEX1.TEX – pomocniczy plik wejściowy MeX-a i LaMeX-a MEX2.TEX – pomocniczy plik wejściowy MeX-a i LaMeX-a MEXCONF.TEX – plik konfiguracyjny MeX-a i LaMeX-a PLHYPH.TEX – polskie reguły dzielenia wyrazów Wejściowe pliki filtrujące do emTeX-a (do implementacji TeX-a ------------------------------------------------------------- wykonanej przez E. Mattesa): ------------------------------ MAZ2PL.PCT – tabela konwersji kodów Mazovii na kody PL LAT2PL.PCT – tabela konwersji kodów Latin 2 na kody PL ISO2PL.PCT – tabela konwersji kodów ISO8859-2 na kody PL WIN2PL.PCT – tabela konwersji kodów CP1250 na kody PL MAZ2PL.TCP, ISO2PL.TCP, LAT2PL.TCP, WIN2PL.TCP – j.w., postać przygotowana do pracy z INITEX-em MK-TCP.BAT – plik wsadowy do tworzenia tablic konwersji w postaci plików TCP Pliki wsadowe systemu DOS (ang. batch file) do generowania plików ----------------------------------------------------------------- MEX.FMT i LAMEX.FMT: ---------------------- GM-MEX.BAT – generuje MEX.FMT (+ Mazovia) GI-MEX.BAT – generuje MEX.FMT (+ ISO8859-2) GL-MEX.BAT – generuje MEX.FMT (+ CP852) GW-MEX.BAT – generuje MEX.FMT (+ CP1250) GM-LAMEX.BAT – generuje LAMEX.FMT (+ Mazovia) GI-LAMEX.BAT – generuje LAMEX.FMT (+ ISO8859-2) GL-LAMEX.BAT – generuje LAMEX.FMT (+ CP852) GW-LAMEX.BAT – generuje LAMEX.FMT (+ CP1250) Dodatkowe pliki do LaMeX-a (style): ––––––––––––––––– IARTICLE.STY IMAKEIDX.STY IREPORT.STY IBOOK.STY IOPENBIB.STY ITITLEPA.STY ILETTER.STY 3. Pliki METAFONT-owe opisane zostały w części poświęconej fontom PL. Podziękowania ============= Bardzo wiele osób przyczyniło się do szczęśliwego zakończenia prac nad długo trwającym projektem adaptacji TeX-a do języka polskiego. Wymienienie tu wszystkich, którzy nam pomogli, jest po prostu niemożliwe. Tym niemniej czujemy się zobowiązani szczególnie serdecznie podziękować następującym osobom: Andrzej Blikle Włodzimierz Bzyl Jacek Leszczyłowski Marian Łakomy Włodzimierz J. Martin Frank Mittelbach Grażyna Nowak Andrzej Odyniec Piotr Pianowski Tomasz Przechlewski Stanisław Szczyciński Roman Tomaszewski Stanisław Wawrykiewicz.