(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, pdftex i dvipdfmx. 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.