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 programu pdfTeX -- wersji TeX-a tworzącej od razu pliki PDF) i jego użycie w instalacji zgodnej z Web2c (dystrybucje teTeX, fpTeX, 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/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 dla programu pdfTeX, tworzącego pliki PDF) polega w skrócie na uruchomieniu:

tex --ini mex.ini
(dla pdfTeX: 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 tex z formatem mex bądź program pdftex 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 tex w katalogu zawierającym binaria.

Przekodowanie (plik TCX) może być deklarowane bezpośrednio w pliku TeX-owym. Począwszy od wersji Web2c 7.4, wymaga to podania w wierszu poleceń opcji --parse lub włączenia jej na stałe, co wymaga zmiany w głównym pliku konfiguracyjnym texmf.cnf:
parse_first_line = t
(t -- od `true', zamiast domyślnego przypisania f -- od `false').

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 tex 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 serii PL (spolonizowane standardowe dla TeX-a fonty CM) w wersji Type 1 (postscriptowe). Można je także znaleźć w najbliższym węźle CTAN lub jego kopii, np.:
ftp://sunsite.icm.edu.pl/CTAN/fonts/psfonts/polish/plpsfont/.
Pliki .pfb powinny znaleźć się w podkatalogu texmf/fonts/type1/public/pl/ naszej instalacji, zaś pliki map fontowych (.map) oraz wektory kodowań (.enc) -- w katalogu texmf/dvips/pl/

W dystrybucjach opartych na Web2c zautomatyzowano, poprzez użycie programu updmap, proces tworzenia map fontowych dla programów dvips, pdftexdvipdfm. Poniżej omówiono więc jedynie 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/dvips/pl/pl.map) były dołączone do pliku texmf/dvips/config/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/dvips/config/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, jak i pdftex.

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


Staszek Wawrykiewicz (StaW@gust.org.pl), 13.01.2003.