Whole document tree
    

Whole document tree

PLaTeX, pdfPLaTeX

PLaTeX i pdfPLaTeX

Pakiet PLaTeX 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.

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ęz. polskiego i ich użycie w środowisku opartym na web2c (dystrybucje TeX Live/teTeX/fpTeX) lub MiKTeX.

Poniżej (w tym pliku) pokazano prosty przykład tworzenia pliku z użyciem pakietu platex. Ponadto w najnowszych 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 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 głównym katalogu instalacji. Modyfikacja language.dat polega na usunięciu w tym pliku znaku `%' przed plhyph.tex i ewentualnym zablokowaniu takim znakiem niepożądanych deklaracji wzorców dzielenia wyrazów. Przygotowanie formatu:
  • standardowe: w teTeX należy uruchomić program texconfig, uaktywnić reguły dzielenia wyrazów dla jęz. polskiego (menu Hyphenation uruchamia edycję pliku language.dat); wygenerowany zostanie 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
    zaś na niższym poziomie -- poleceniu
    tex --ini --progname=latex latex.ini
    W instalacji MiKTeX (od wersji 2.0) należy uruchomić menu MiKTeX Options, zaznaczyć w podmenu Languages: polish reguły przenoszenia wyrazów, po czym w menu TeX Formats wygenerować nowy format latex.fmt, zawierający polskie wzorce.
  • niestandardowe, które tworzy ,,czysty'' format LaTeX2e zawierający jedynie wybrane wzorce dzielenia wyrazów, bez zbędnych mechanizmów Babel. Jest to metoda preferowana przez wielu polskich użytkownikow. ;-) Dlaczego PLaTeX a nie Babel? O tym poniżej. Dla odróżnienia przyjęto nazywać taki format platex (lub pdfplatex dla pdfTeX). Formaty te korzystają z ,,prywatnej'' kopii pliku language.dat z zadeklarowanymi od razu polskimi i angloamerykanskimi wzorcami przenoszenia wyrazów. Procedura opisana w poprzednim punkcie pozwala na wygenerowanie takich formatu za pomocą programu texconfig: menu Formats uruchamia edycję pliku fmtutil.cnf, należy tu odblokować wiersz dotyczący formatu platex lub pdfplatex (usunąć znak # przed deklaracją interesującego nas formatu) i , po zapisaniu pliku, powrócić do menu nadrzędnego; ,,w tle'' zostanie wykonany program fmtutil; utworzone zostanie ponadto dowiązanie platex (pdfplatex).
    W wypadku gdy nie mamy (jeszcze) programu texconfig (fpTeX dla Windows) procedura generowania formatu platex (lub pdfplatex) da się przedstawić w kilku krokach:
    1. należy odszukać plik texmf/web2c/fmtutil.cnf (edytujemy kopię tego pliku znajdującą sią w lokalnym drzewie katalogów TeX-owych użytkownika lub w drzewie przeznaczonym na lokalne konfiguracje; położenie właściwego pliku pokaże uruchomienie polecenia kpsewhich fmtutil.cnf);
    2. w pliku fmtutil.cnf należy odblokować wiersz dotyczący formatu platex lub pdfplatex (usunąć znak #);
    3. uruchomić polecenie: fmtutil --byfmt platex --dolinks (lub fmtutil --byfmt pdfplatex --dolinks).
    Dla MiKTeX (od wersji 2.0) należy uruchomić menu MiKTeX Options, w podmenu TeX Formats zaznaczyć format PLaTeX (lub pdfPLaTeX) i utworzyć (przyciskiem Build) potrzebne formaty.

    W omawianych wyżej przypadkach tworzony jest plik formatu platex.fmt (lub pdplatex.fmt), który jest kopiowany do właściwego katalogu, zawierającego pliki formatów oraz tworzone jest polecenie platex lub pdfplatex (uruchamia on program tex lub pdftex z odpowiednim formatem).

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:
  • PLaTeX udostępnia tradycyjne definicje nazw polskich funkcji trygonometrycznych \tg, \ctg, \arc i polskich znaków mniejsze-równe oraz większe-równe.
  • PLaTeX umie poprawne przenosić wyrazy złożone (tj. takie jak np. biało-czerwony) udostępniając do tego celu polecenie \dywiz.
  • PLaTeX wstawia prawidłowe odstępy na końcu zdania.
  • Babel nie wspiera do końca fontów w układzie OT4 (fontów PL), co powoduje, że polskie znaki diakrytyczne w wyrazach wstawianych automatycznie przez LaTeX (dokładnie ,,ę'' w słowie część oraz ,,ą'' w słowie ,,załącznik'') sklejane z dwóch znaków. Jest to drobny, ale ciągle nie usunięty błąd. (Można go poprawić samodzielnie dokonując niewielkiej modyfikacji pliku polish.sty z dystrybucji pakietu Babel.) Obwiedniowe fonty OT4 są niezastąpione przy tworzeniu plików w formacie PDF.
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 webc 7.3, pozwalają wreszcie na prawidłowe przekodowanie znaków diakrytycznych w pliku TeX-owym na wewnętrzną reprezentację. Przekodowanie działa też w drugą stronę, kiedy TeX wyświetla komunikaty i zapisuje pliki .log, .toc, .idx itp. Do tego celu używa się zewnętrznych, tekstowych plików TCX. Co więcej, przekodowanie (plik TCX) może być deklarowane bezpośrednio w pliku TeX-owym. 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 iso8859-2 (latin2) do układu fontów PL (wewnętrznego dla programu TeX). Tym samym zbędna jest deklaracja w preambule pliku LaTeX-owego:
\usepackage[latin2]{inputenc}
Możemy użyć także polecenia:
platex --translate-file=TCXFILE myfile.tex
lub wręcz
platex myfile.tex
gdy plik myfile.tex zawiera w pierwszym wierszu:
%& --translate-file=TCXFILE
W tej dystrybucji 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
cp1250-pl.tcx Windows cp1250 do PL
cp852-pl.tcx IBM cp852 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 i układu OT4. 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 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 znajdują się w podkatalogu texmf/fonts/type1/public/pl/ naszej instalacji.

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/pdftex/config/psfonts.map -- powinien on także zawierać deklaracje map fontowych dla fontów PL.

W dystrybucji TeX Live 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), 23.01.2001.