MeX i pdfMeX

MeX jest adaptacją formatu Plain TeX do składu w języku polskim z uwzględnieniem polskich zwyczajów drukarskich.
Autorzy: Bogusław Jackowski i Marek Ryćko.
Dokumentacja poniższa omawia pokrótce tworzenie formatu mex.fmt (lub pdfmex.fmt, dla wersji TeX-a tworzącej od razu pliki PDF) i jego użycie w instalacji zgodnej z Web2c (dystrybucja TeX Live) a także MiKTeX. Szczegółowe informacje nt. pakietu MeX zawarto w pliku mexinfo.pol.

W dystrybucji dołączono ponadto prosty plik przykładowy doc/polish/mex/base/tstmex.tex, służący do przetestowania poprawnego działania formatu MeX. Początkującym użytkownikom zaleca się zapoznanie z zawartością tego pliku. Plik ten dostępny jest także na serwerze GUST.


I. Przygotowanie formatu MeX/pdfMeX (polskiej implementacji formatu Plain)

Format w systemie TeX to wstępnie prekompilowany (aby przyspieszyć jego analizę przez program tex/pdftex) zestaw makrodefinicji oraz reguł przenoszenia wyrazów dla wybranego zestawu języków. Plik formatu z reguły posiada rozszerzenie .fmt.

Przygotowanie formatu MeX (lub pdfMeX do tworzenia plików PDF) polega w skrócie na uruchomieniu:

tex-engine --ini mex.ini
gdzie tex-engine oznacza program tex lub pdftex. Obecnie, od Web2c wer. 7.5.5, używamy jednego programu: pdftex, zaś ,,sposób'' generowania formatu (dla tworzenia plików DVI lub PDF) zależny jest od zawartości pliku .ini. Zatem format do tworzenia plików PDF generujemy obecnie poleceniem: pdftex --ini pdfmex.ini. Podczas przetwarzania wczytywane są pliki makr formatu MeX, a także plain.tex oraz wzorce przenoszenia wyrazów dla języka polskiego i angloamerykańskiego.

Ponieważ wygenerowany plik powinien znaleźć się w odpowiednim miejscu struktury katalogów, a także powinien zostać ,,zarejestrowany'' w instalacji, współczesne dystrybucje ułatwiają proces generowania.

W obu omawianych przypadkach tworzony jest plik formatu mex.fmt (lub pdfmex.fmt), który jest umieszczany w katalogu właściwym dla tego rodzaju plików, oraz tworzony jest program mex lub pdfmex (uruchamia on program pdftex z formatem mex bądź z formatem pdfmex).


II. Użycie

Aktualne implementacje, oparte na Web2c, a także MiKTeX pozwalają na prawidłowe przekodowanie znaków diakrytycznych w pliku TeX-owym na wewnętrzną reprezentację, stosowaną przez programy. W Polsce, niestety, stosowane są różne ,,standardy'' kodowania diakrytyków w tworzonych przez użytkownika plikach, zależnie od systemu operacyjnego. Dla potrzeb systemu TeX używamy zewnętrznych, tekstowych plików TCX, pozwalających ,,obsłużyć'' różne spotykane ,,standardy''. Dzięki temu przekodowanie działa też w drugą stronę, kiedy TeX wyświetla komunikaty i zapisuje pliki .log, a także pliki ze spisem treści, skorowidzem itp.

Uruchomienie polecenia:
mex --translate-file=TCXFILE myfile.tex
oznacza uruchomienia TeX-a z formatem mex.fmt i z odpowiednią tablicą przekodowań (ich lista znajduje się poniżej). Polecenie mex tworzone jest zwykle jako dowiązanie do programu (obecnie) pdftex w katalogu zawierającym binaria.

Przekodowanie (plik TCX) może być deklarowane bezpośrednio w pliku TeX-owym. Przykładowo, jeśli pierwszy wiersz pliku zawiera komentarz strukturalny postaci
%&mex --translate-file=il2-pl
to plik może być przetworzony za pomocą polecenia pdftex plik.tex; zostanie wtedy wczytany format mex.fmt oraz tablica il2-pl.tcx przekodowania z układu iso8859-2 do układu fontów PL (wewnętrznego dla programu TeX).

W dystrybucjach dostarczono szereg plikow TCX. Można je znaleźć w katalogu texmf/web2c/:

amiga-pl.tcx AmigaPL do PL
il2-pl.tcx iso8859-2 (latin2) do PL
cp1250pl.tcx Windows cp1250 do PL
cp852-pl.tcx IBM cp852 do PL
macce-pl.tcx Apple MacCE do PL
maz-pl.tcx Mazovia do PL


III. Polskie fonty PostScriptowe

Aktualne dystrybucje zawierają fonty w wersji Type 1 (postscriptowe) serii PL (spolonizowane standardowe dla TeX-a fonty CM), a także znacznie rozszerzone i obecnie zalecane fonty Latin Modern. Można je także znaleźć w najbliższym węźle CTAN lub jego kopii, np.:
ftp://ftp.gust.org.pl/pub/CTAN/language/polish/plpsfont/.
ftp://ftp.gust.org.pl/pub/CTAN/fonts/lm/.

Przedstawimy tu przykład dotyczący instalacji fontów PL. Pliki .pfb powinny znaleźć się w podkatalogu texmf/fonts/type1/public/pl/ naszej instalacji, pliki map fontowych (.map) w katalogu texmf/fonts/map/dvips/pl/ zaś wektory kodowań (.enc) -- w katalogu texmf/fonts/enc/dvips/pl/

W dystrybucjach opartych na Web2c zautomatyzowano, poprzez użycie programu updmap, proces tworzenia map fontowych dla programów dvips, pdftex i dvipdfmx. Poniżej omówiono więc tylko, czego ten proces dotyczy.

Sterownik dvips (zamieniający wynik pracy TeX-a, plik DVI, do formatu PostScript) wymaga aby deklaracje map fontowych (dla fontów PL konkretnie zawartość texmf/fonts/map/dvips/pl/pl.map) były dołączone do pliku texmf/fonts/map/dvips/updmap/psfonts.map. Mapy fontowe można alternatywnie dołączyć w pliku texmf/dvips/config/config.ps (lub jego lokalnej kopii), dopisując wiersz:
p +pl.map
po deklaracji głównej mapy fontowej: p psfonts.map.

Aby fonty Type 1 były użyte przez program pdfTeX, należy sprawdzić jakie mapy fontowe są deklarowane w pliku texmf/fonts/map/pdftex/updmap/pdftex.map -- powinien on także zawierać deklaracje map fontowych dla fontów PL.

W dystrybucjach wszystkie aktualnie dostępne polskie fonty Type1 są gotowe do użycia zarówno przez program dvips, pdftex, jak i dvipdfmx .

Bardziej szczegółowe omówienie instalacji fontów Type1 zawarte jest w artykule Instalowanie fontów Type1/True Type.


Staszek Wawrykiewicz (StaW at gust dot org dot pl), 30.05.2008.