(Pdf)LaTeX i język polski

Dokumentacja niniejsza omawia pokrótce generowanie formatów do tworzenia plików DVI oraz PDF, ze wsparciem dla języka polskiego i ich użycie w środowisku opartym na Web2c (TeX Live) lub MiKTeX. Od wersji 7.5.5 Web2c oba typy plików generowane są jednym programem pdftex. Omówiono teorię co dzieje się za kulisami. Obecnie w dystrybucji TeX Live cały proces generowania formatów został zautomatyzowany: po instalacji pakietu do obsługi danego języka aktualizowane są odpowiednie pliki konfiguracyjne, po czym generowne są pliki formatów dla wszystkich dostępnych odmian-silników TeX-a.

Poniżej pokazano prosty przykład tworzenia pliku z użyciem pakietu Polski. 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 pakietu Polski (dawniej PLaTeX).

Ponadto w dystrybucjach dołączono przykładowy plik doc/latex/polski/sample-polski.tex. służący do przetestowania poprawnego działania formatu LaTeX. Początkującym użytkownikom zaleca się zapoznanie z zawartością tego pliku. Techniczne szczegóły dotyczące użycia pakietu polski.sty (główny element pakietu polski) dostępne są po dwukrotnym uruchomieniu:
latex polski.dtx
latex 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:

W teTeX/TeX Live należy uruchomić program texconfig, uaktywnić reguły dzielenia wyrazów dla języka polskiego -- menu Hyphenation uruchamia edycję pliku language.dat; po zapisaniu zmian w pliku i zakończeniu edycji, zostanie automatyczne wygenerowany format latex.fmt zawierający wybrane wzorce dzielenia oraz mechanizm Babel przełączania języków; texconfig tworzy ponadto dowiązanie (lub program) latex.
Dla dociekliwych: powyższe odpowiada uruchomieniu z linii poleceń:
fmtutil --byfmt latex; texlinks
zaś na niższym poziomie -- poleceniu
pdftex --ini --progname=latex latex.ini
(od Web2c wer. 7.5.5 używamy jednego programu pdftex).

W instalacji MiKTeX należy uruchomić menu MiKTeX Options, zaznaczyć w podmenu Languages: polish reguły przenoszenia wyrazów, po czym w menu TeX Formats wygenerować (przyciskiem Build) nowy format latex.fmt, zawierający polskie wzorce.
Format pdflatex.fmt dla tworzenia plików PDF tworzony jest analogicznie.

W omawianych wyżej przypadkach tworzony jest plik formatu latex.fmt (lub pdflatex.fmt), który jest umieszczany w katalogu właściwym dla tego rodzaju plików, oraz tworzony jest program latex lub pdflatex


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).

Przekodowanie (plik TCX) może być deklarowane bezpośrednio w pliku TeX-owym. Przykładowo, jeśli pierwszy wiersz pliku zawiera komentarz strukturalny postaci
%&latex --translate-file=il2-pl
to plik może być przetworzony za pomocą polecenia pdftex plik.tex; zostanie wtedy wczytany format latex.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 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.