%% Staszek Wawrykiewicz (StaW@gust.org.pl), January 2005.  Public domain.
%% Web2c 7.5.x (teTeX, fpTeX, TeX Live) and MiKTeX 2.x revision
MeX and pdfMeX

Dokumentacja po polsku i po angielsku (niżej).
The documentation in Polish and in English (below).

------------------------------------------------------------------------
POLSKI (iso8859-2):
------------------------------------------------------------------------
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 (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/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
PDF) polega w skrócie na uruchomieniu:

<tex-engine> --ini mex.ini

gdzie <tex-engine> oznacza program tex lub pdftex (od Web2c wer. 7.5.3 
używamy jednego programu: pdfetex).
Analogicznie, format do tworzenia plików PDF generujemy poleceniem: 
pdfetex --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 dystrybucjach opartych na Web2c (fpTeX, teTeX, TeX Live) formaty
     generowane są przy pomocy programu fmtutil (fmtutil --help wyświetla
     dostępne opcje) zaś deklaracje formatów znajdują się w pliku
     texmf/web2c/fmtutil.cnf (gdy posiadamy drzewo katalogów zawierające
     lokalne pliki konfiguracyjne instalacji systemu TeX, program fmtutil
     korzysta z lokalnej kopii fmtutil.cnf; dokładne położenie pliku 
     wyświetli uruchomienie polecenia: kpsewhich fmtutil.cnf).

     W systemach Unix/Linux cały proces generowania formatu dostępny jest 
     z menu Formats programu texconfig, które pozwala modyfikować plik 
     fmtutil.cnf, co polega na usunięciu znaku # przed deklacją wybranego 
     formatu bądź zablokowaniu takim znakiem formatów niepożądanych. 
     Po zapisaniu zmian w pliku i zakończeniu edycji, format zostanie 
     automatycznie wygenerowany.
     W systemach Windows należy samodzielnie zmodyfikować plik fmtutil.cnf, 
     po czym uruchomić polecenie fmtutil --byfmt=mex 
     (lub fmtutil --byfmt=pdfmex).

   * W MiKTeX (od wersji 2.0) należy uruchomić w menu MiKTeX Options podmenu
     TeX Formats, zaznaczyć format MeX (pdfMeX) i utworzyć (przyciskiem
     Build) potrzebny plik formatu.

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 plik.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) pdfetex w katalogu 
zawierającym binaria.

Przekodowanie (plik TCX) może być także 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

%&mex --translate-file=il2-pl

to plik może być przetworzony za pomocą polecenia pdfetex 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 <--> PL
   il2-pl.tcx    iso8859-2 (latin2) <--> PL
   cp1250pl.tcx  Windows cp1250 <--> PL
   cp852-pl.tcx  IBM cp852 <--> PL
   macce-pl.tcx  Apple MacCE <--> PL
   maz-pl.tcx    Mazovia <--> 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, 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 dvipdfm. 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/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,
jak i pdftex.

Bardziej szczegółowe omówienie instalacji fontów Type1 zawarte jest
w artykule http://www.gust.org.pl/fonty/fonthint.html.

-----------------------------------------------------------------------
ENGLISH:
------------------------------------------------------------------------

MeX is an adaptation of PLAIN TeX format to the Polish language and to the
Polish printing customs.
Authors: Bogus\l{}aw Jackowski & Marek Ry\'cko.
This document describes shortly creation of mex.fmt and usage in MiKTeX
environment. See mexinfo.eng for detailed informations about MeX.

I. Preparing MeX/pdfMeX  (Polish Plain format)
  * Web2c based distributions (teTeX, fpTeX, TeX Live). Invoke texconfig
    and menu Formats, which edits fmtutil.cnf; uncomment mex (or pdfmex)
    format; after saving the file, the desired format will be generated.
  * MiKTeX (from ver. 2.0). Invoke `MiKTeX Options' menu and the submenu
    `TeX Formats'. Select MeX (or pdfMeX). After pressing `Build' button
    the format will be generated.

II. Usage: the current implementations based on web2c 7.x, and MiKTeX
    allow (hopefully) proper reencoding of input national characters
    into internal TeX's, and back again, for all messages, .log, .toc,
    .idx files written by TeX, etc. External readable TCX translation
    files are used and they can be specified explicitly in the TeX file
    or in the command line.
    If the _first_ line of TeX's file contains a structured comment
    of the form
         %&mex --translate-file=cp1250pl
    it suffices to run `tex --parse file.tex' with mex.fmt and cp1250pl.tcx
    translation table (Windows cp1250 to internal PL reencoding).
    Permanent parsing of the first line needs the following modification
    in texmf.cnf:
             parse_first_line = t
    (instead of default = f)

    You can also use the command
         `tex &mex -translate-file=TCXFILE myfile.tex'
    or just `mex -translate-file=TCXFILE myfile.tex' when you have linked 
    tex[.exe] into mex[.exe] in the directory containing binaries.
    Several TCX files are provided; they can be found in the texmf/web2c/
    directory:
          amiga-pl.tcx   AmigaPL <--> PL encoding
          il2-pl.tcx     iso8859-2 (latin2) <--> PL encoding
          cp1250pl.tcx   Windows cp1250 <--> PL encoding
          cp852-pl.tcx   IBM cp852 <--> PL encoding
          macce-pl.tcx   Apple MacCE <--> PL enconding
          maz-pl.tcx     Mazovia <--> PL encoding

III. Polish PostScript fonts in Type 1 format
     The installation can already contain Type 1 PL fonts;
     they can be also downloaded from the nearest CTAN node or its mirror:
         CTAN//fonts/psfonts/polish/plpsfont/
     or copied from the CD TeX Live.
     .pfb files should reside in the directory: .../fonts/type1/public/pl/ ;
     font map files should go to .../fonts/map/dvips/pl/ directory;
     font enc files should go to .../fonts/enc/dvips/pl/ directory.

     The preparation of map files are now automatized by running updmap
     program.

------------------------------------------------------------------------
