%% Staszek Wawrykiewicz (StaW@gust.org.pl), January 2001. Public domain. %% Web2c (teTeX, fpTeX, TeX Live) and MiKTeX 2.0 revision PLaTeX and pdfPLaTeX Dokumentacja po polsku i po angielsku (nizej). The documentation in Polish and in English (below). ------------------------------------------------------------------------ POLSKI (iso8859-2): ------------------------------------------------------------------------ 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 tex i pdftex (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 angloamerykańskimi wzorcami przenoszenia wyrazów. Procedura opisana w poprzednim punkcie pozwala na wygenerowanie takich formatu za pomocą programu texconfig: menu Formats uruchamia edycję pliku texmf/web2c/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.tcxWindows 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. 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. Bardziej szczegółowe omówienie instalacji fontów Type1 zawarte jest w artykule Instalowanie fontów Type1/True Type: http://www.gust.org.pl/FONTY/fonthint.html. ------------------------------------------------------------------------ ENGLISH: ------------------------------------------------------------------------ PLaTeX provides tools to typeset documents in Polish using LaTeX2e. Authors: Mariusz Olko & Marcin Woli\'nski. This document describes shortly creation of latex.fmt (or platex.fmt) for Polish and usage in MiKTeX environement. See readme.txt for more informations about the PLaTeX package. I. Preparing LaTeX2e format for Polish There are two methods: 1. `standard': just activate polish hyphenation patterns in the file language.dat (menu `Hyphenation' in teTeX's texconfig or `Languages' in `MiKTeX Options') and recompile latex.ltx (for MiKTeX 2.x from the menu `TeX Formats'); as a result, latex.fmt including Babel machinery will be generated. 2. `non standard': it produces a clean and generic LaTeX2e without Babel deadwood, containing only patterns for Polish and US English; this method is prefered by many users in Poland. ;-) The distribution allows to generate such a format: platex.fmt (or pdfplatex.fmt) from teTeX's texconfig `Formats' menu (for MiKTeX `TeX Formats' menu). II. Usage: the current implementations based on web2c 7.3, 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 %&platex --translate-file=cp1250pl it suffices to run `tex file.tex' with platex.fmt and cp1250pl.tcx translation table (Windows cp1250 to internal PL reencoding). You can use TCX tables instead of LaTeX's \usepackage[cp1250]{inputenc} If we use latex.fmt with Polish patterns we can compile our file with the command `latex -tcx=TCXFILE myfile.tex'. We can make a `platex' command available copying latex.exe into platex.exe in the directory containing binaries. Thus `platex -translate-file=TCXFILE myfile.tex' can be used as well. Several TCX files are provided; they can be found in the ...\web2c\ directory: amiga-pl.tcx AmigaPL <--> PL encoding il2-pl.tcx iso8859-2 (latin2) <--> PL encoding cp1250-pl.tcx Windows cp1250 <--> PL encoding cp852-pl.tcx IBM cp852 <--> PL encoding 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 and encoding files should go to .../dvips/pl/ directory. Dvips can be prepared for using PL fonts in Type 1 format in two ways: * the contents of .../dvips/pl/pl.map should be included into the standard .../dvips/config/psfonts.map. * in .../dvips/config/config.ps the additional map file can be declared after standard `p psfonts.map' line: p +pl.map In order to use Type 1 fonts with pdfTeX, the line map +pl.map can be added to the contents of .../pdftex/config/pdftex.cfg, or the contents of pdftex/config/psfonts.map file can be updated with the contents of pl.map. ------------------------------------------------------------------------