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, pdftexdvipdfmx. 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.