PLaTeX i pdfPLaTeX

Dokumentacja niniejsza omawia pokrótce tworzenie formatów dla programów texpdftex (wersji TeX-a tworzącej od razu pliki PDF) ze wsparciem dla języka polskiego i ich użycie w środowisku opartym na web2c (dystrybucje TeX Live/teTeX/fpTeX) lub MiKTeX.

Poniżej pokazano prosty przykład tworzenia pliku z użyciem pakietu PLaTeX. Pakiet ten dostarcza narzędzi potrzebnych do składu dokumentów w języku polskim LaTeXem 2e.
Autorzy pakietu: Mariusz Olko i Marcin Woliński.
Więcej informacji na temat samego pakietu -- patrz plik czytaj.txt dystrybucji PLaTeX.

Ponadto w dystrybucjach dołączono przykładowy plik doc/latex/platex/tstlatex.tex. służący do przetestowania poprawnego działania formatu LaTeX/PLaTeX. Początkującym użytkownikom zaleca się zapoznanie z zawartością tego pliku. Plik ten dostępny jest także na serwerze GUST. Techniczne szczegóły dotyczące użycia pakietu polski.sty (główny element pakietu platex) dostępne są po dwukrotnym uruchomieniu:
platex polski.dtx
platex polski.dtx
i wyświetleniu wynikowego polski.dvi.


I. Przygotowanie formatu LaTeX2e do obsługi języka polskiego

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. Tworzenie formatu to, w skrócie, uruchomienie programu tex/pdftex z opcją --ini i wczytanie odpowiedniego pliku inicjującego (dla LateX jest to plik latex.ltx). W LaTeX 2e zestaw reguł przenoszenia wyrazów jest zwyczajowo deklarowany w pliku o nazwie language.dat. Plik ten znajduje się zwykle w podkatalogu tex/generic/config/language.dat lokalnej konfiguracji systemu TeX bądź w identycznym podkatalogu katalogu głównego instalacji. Modyfikacja language.dat polega na usunięciu w tym pliku znaku komentarza `%' w wierszu
polish plhyph.tex
i ewentualnym zablokowaniu takim znakiem niepożądanych deklaracji wzorców dzielenia wyrazów. Przygotowanie formatu:

Dlaczego PLaTeX a nie Babel?

(Fragment ten jest cytatem z listu nadesłanego na listę dyskusyjną GUST przez Marcina Wolińskiego).
W porównaniu do pakietu Babel, PLaTeX ma kilka mniej lub bardziej istotnych zalet: Podsumowując: jeżeli nie potrzebujemy środowiska wielojęzycznego to dużo mniejsza objętość pakietu PLaTeX oznacza także mniejszą liczbę błędów i potencjalnych kolizji z innymi częściami LaTeXa.
[achiwum GUST-L, list z 06/06/1997]

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:
latex --translate-file=TCXFILE myfile.tex
oznacza uruchomienia TeX-a z formatem latex.fmt i z odpowiednią tablicą przekodowań (ich lista znajduje się poniżej). W identyczny sposób uruchamiamy polecenie platex.

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
%&platex --translate-file=il2-pl
to plik może być przetworzony za pomocą polecenia tex plik.tex; zostanie wtedy wczytany format platex.fmt oraz tablica il2-pl.tcx przekodowania z układu iso8859-2 do układu fontów PL (wewnętrznego dla programu TeX; w LaTeX-u ma on kryptonim OT4).

Tym samym zbędna jest deklaracja w preambule pliku LaTeX-owego:
\usepackage[latin2]{inputenc}

\usepackage[OT4]{fontenc}

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

A oto przykład pliku LaTeX-owego:

        %& --translate-file=cp1250pl
        \documentclass[a4paper]{article}
        \usepackage{polski}
        \begin{document}
          Polskie literki piszemy w standardzie Windows cp1250: .....
        \end{document}
Jak widać, nasz plik ma krótką preambułę -- pakiet polski korzysta domyślnie z zainstalowanych fontów PL (odpowiada mu układ OT4, więc zbędna jest deklaracja \usepackage[OT4]{fontenc}). Jeśli korzystamy z fontów EC nasza preambuła powinna zawierać dodatkowy wiersz:
\usepackage[T1]{fontenc}

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.