Przewodnik po TEX Live
TEX Collection 2005

Redakcja: Sebastian Rahtz & Karl Berry
http://tug.org/texlive/

Listopad 2005

Spis treści

1 Wstęp
 1.1 Podstawy użycia TEX Live
 1.2 Dostępna pomoc
2 Struktura TEX Live
 2.1 Rozmaitość dystrybucji: live, inst, protext
 2.2 Główne katalogi
 2.3 Predefiniowane drzewa katalogów texmf
 2.4 Rozszerzenia TEX-a
 2.5 Inne ważniejsze programy TEX Live
 2.6 Pakiety i ich zestawy
3 Instalacja i użytkowanie w systemach Unix
 3.1 Uruchamianie TEX Live z płytki (Unix)
 3.2 Instalacja TEXLive na twardym dysku
 3.3 Instalacja pojedynczych pakietów z TEX Live na twardym dysku
 3.4 Program texconfig
 3.5 Testowanie instalacji
4 Instalacja dla systemu Mac OS X
 4.1 Strona kodowa Macintosh CE
5 Instalacja i użytkowanie pod Windows
 5.1 Instalacja TEX Live na twardym dysku
 5.2 Uruchomienie z DVD
 5.3 Programy pomocnicze dla Windows
6 Zarządzanie systemem TEX Live w Windows
 6.1 Dodawanie/usuwanie pakietów
 6.2 Konfigurowanie i inne zadania administracyjne
 6.3 Odinstalowanie TEX Live
 6.4 Dodawanie własnych pakietów do instalacji
 6.5 Uruchamianie tlmp.exe z linii poleceń
 6.6 Instalacja sieciowa
 6.7 Różnice w stosunku do standardowego Web2C w systemach Win32
 6.8 Konfiguracja indywidualna
 6.9 Testowanie
 6.10 Drukowanie
 6.11 WinShell
 6.12 Wskazówki dla użytkowników Win32
 6.13 W razie problemów
7 Instrukcja obsługi systemu Web2C
 7.1 Przeszukiwanie ścieżek przez Kpathsea
 7.2 Bazy nazw plików
 7.3 Parametry kontrolujące działanie programów
8 Budowa systemu na nowej platformie Uniksowej
 8.1 Warunki wstępne
 8.2 Konfiguracja
 8.3 Uruchamianie make
 8.4 Końcowe kroki konfiguracyjne
9 Podziękowania
10 Historia
 10.1 Poprzednie wersje
 10.2 Edycja 2004
 10.3 Edycja 2005
 10.4 Przyszłe wersje

Spis tabel

Obsługiwane systemy operacyjne

1. Wstęp

Niniejsza dokumentacja opisuje oprogramowanie TEX Live – dystrybucję TEX-a/LATEX-a dla systemów GNU/Linux, różnych wersji Unix (w tym Mac OS X) oraz Windows. (Uwaga: dystrybucja jest mało przydatna dla starszych systemów Mac i MS-DOS.) TEX Live zawiera skompilowane programy TEX, LaTeX2e, Metafont, MetaPost, BibTeX i wiele innych oraz bogaty zestaw pakietów makr o wielorakim zastosowaniu, a także fonty i dokumentacje, umożliwiające skład publikacji w wielu językach. TEX Live wchodzi w skład TEX Collection (kolekcji opisanej w skrócie poniżej), utworzonej wspólnym wysiłkiem grup użytkowników systemu TEX.

Nowsze wersje pakietów można znaleźć na serwerach CTAN, np. http://www.ctan.org.

Lista najważniejszych zmian, jakie dokonano w tej edycji TEX Live znajduje się w części 10.3, na str. 72.

Nie opisujemy tu, czym jest system TEX, a jedynie kwestie instalacji i konfiguracji oprogramowania TEX Live. Początkujący użytkownicy mogą zapoznać się z podstawowymi pojęciami np. w artykule Przewodnik po systemie TEX: texmf-doc/doc/polish/tex-virtual-academy-pl/cototex.html.

1.1. Podstawy użycia TEX Live

TEX Live można korzystać na co najmniej trzy sposoby:

  1. uruchamiać wszystkie programy bezpośrednio z płytki DVD (patrz rozdział 2.1 na str. 6); na dysku twardym znajdą się jedynie niezbędne pliki konfiguracyjne i chociaż wydajność będzie mniejsza niż w wypadku instalacji na twardym dysku, instalacja taka będzie w pełni funkcjonalna.
  2. zainstalować część lub cały system na lokalnym twardym dysku; jest to najczęstsze wykorzystanie TEX Live; wymagane jest co najmniej 100 megabajtów, ok. 310 megabajtów dla instalacji zalecanej i ok. 730 megabajtów dla instalacji kompletnej.
  3. doinstalować wybrane pakiety do istniejącego systemu TEX lub systemu TEX Live zainstalowanego wcześniej.

Szczegóły procedur instalacyjnych podane zostaną dalej w rozdziałach poświęconych konkretnym systemom operacyjnym, niemniej jednak podamy tu skrócony przepis:

1.2. Dostępna pomoc

Społeczność TEX-owa jest bardzo aktywna i pomocna, stąd też większość poważnych zapytań nie zostanie pozostawiona bez odpowiedzi. Przed zadaniem pytania warto je uprzednio dobrze przemyśleć i sformułować, ponieważ respondenci to wolontariusze, wśród których znaleźć się mogą mniej lub bardziej doświadczeni użytkownicy. (Jeśli preferujemy komercyjne wsparcie techniczne, możemy zamiast TEX Live zakupić system u jednego z dostawców, których listę znaleźć można na http://tug.org/interest.html#vendors.)

Oto lista źródeł pomocy, w kolejności przez nas rekomendowanej:

TEX FAQ
TEX-owy FAQ jest obszernym zbiorem odpowiedzi na wszelkie rodzaje pytań, od najprostszych do najbardziej zaawansowanych. Jest on załączony na TEX Live w katalogu texmf-doc/doc/english/FAQ-en, a także dostępny w sieci: http://faq.tug.org. Proponujemy tam najpierw zajrzeć. Uruchomiono też serwis FAQ w języku polskim: http://faq.gust.org.pl.
TEX Catalogue
Jeśli poszukujemy konkretnego pakietu, fontu, programu itp., polecamy TEX Catalogue. Jest to obszerne zestawienie wszelkich tematów dotyczących TEX-a. Patrz: texmf-doc/doc/english/catalogue lub http://www.ctan.org/tex-archive/help/Catalogue.
TEX Web Resources
Strona http://tug.org/interest.html zawiera wiele odsyłaczy, w szczególności do książek, podręczników i artykułów poświęconych wszelkim aspektom pracy z systemem TEX.
archiwa pomocy
Dwa główne forum pomocy to grupa Usenet news:comp.text.tex oraz lista dyskusyjna texhax@tug.org. Warto przeszukać archiwa list dyskusyjnych zawierające mnóstwo pytań i odpowiedzi zbieranych przez wiele lat; odpowiednio http://groups.google.com/groups?group=comp.text.tex oraz http://tug.org/mail-archives/texhax. Nie zaszkodzi skorzystanie z wyszukiwarki, np. http://www.google.com.
wysyłanie pytań
Jeśli nadal nie znajdujemy rozwiązania problemu, możemy wysłać pytanie do comp.text.tex korzystając z Google, czytnika wiadomości bądź pisząc list na adres texhax@tug.org. Przedtem jednak należy zapoznać się z poradami dotyczącymi sposobu zadawania pytań, zawartymi w FAQ: http://www.tex.ac.uk/cgi-bin/texfaq2html?label=askquestion. Polscy użytkownicy mają do dyspozycji listę dyskusyjną GUST (Grupy Użytkowników Systemu TEX); informacje o niej znajdziemy na stronie http://www.gust.org.pl.
wsparcie TEX Live
Gdy chcemy zgłosić błąd bądź sugestie i komentarze dotyczące dystrybucji TEX Live, instalacji lub dokumentacji, mamy do dyspozycji listę dyskusyjną tex-live@tug.org. Gdy kwestia dotyczy konkretnego programu (pakietu makr itp.) zawartego na TEX Live, lepiej jednak skierować pytanie do osoby opiekującej się danym programem lub na specjalistyczną listę dyskusyjną.

Druga strona medalu to pomaganie tym, którzy mają problemy. Zarówno comp.text.tex, jak i texhax (oraz lista dyskusyjna GUST) są otwarte dla każdego, a więc zapraszamy do włączenia się, czytania wiadomości i pomagania innym w miarę własnych możliwości. Witamy wśród użytkowników systemu TEX!

2. Struktura TEX Live

Omówimy tutaj strukturę i zawartość dystrybucji TEX Live, a także TEX Collection – płytki DVD, w skład której wchodzi TEX Live.

2.1. Rozmaitość dystrybucji: live, inst, protext

Ograniczona pojemność formatu CD-ROM zmusiła nas do podzielenia TEX Collection na następujące dystrybucje:

live
kompletny system na DVD, z możliwością uruchamiania bezpośrednio z płyty (zbyt obszerny aby się zmieścił na CD-ROM); płytka zawiera ponadto zrzut zawartości archiwów CTAN, niezależne od TEX Live dystrybucje protext (dla Windows), MacTEX (dla Mac OS X) oraz wybór dodatkowych pakietów w katalogu texmf-extra. Płytka DVD otrzymała nazwę TEX Collection.

CTAN, protext, MacTEXtexmf-extra nie spełniają przyjętych dla TEX Live wymogów dotyczących swobody kopiowania, wobec tego należy ten fakt uwzględnić przy redystrybucji bądź modyfikacji zawartości wymienionych katalogów.

inst(alowany)
kompletny system na CD, gdzie wszystkie pakiety zostały skompresowane; płytka ta nie nadaje się do bezpośredniego uruchamiania programów, a jedynie instalacji na twardym dysku.
protext
dystrybucja dla Windows, oparta na dystrybucji MiKTEXrozszerzonej o dodatkowe narzędzia; całkowicie niezależna od TEX Live; ProTEXt posiada własny, łatwy w obsłudze program instalacyjny i również może być uruchamiany bezpośrednio z płytki. Strona domowa projektu to http://tug.org/protext. ProTEXt dostarczono na live DVD oraz na odrębnym nośniku CD.

Poszczególne dystrybucje są rozpoznawalne po nazwie pliku 00typ.TL, znajdującego się w głównym katalogu każdej z płytek.

Każda z grup użytkowników systemu TEX może rozpowszechniać dowolną płytkę wedle własnych potrzeb i uznania (TUG dostarcza swoim członkom wszystkie trzy płytki).

2.2. Główne katalogi

Poniżej wymieniono ważniejsze podkatalogi głównego katalogu dystrybucji TEX Live. Na płytce live DVD cała dystrybucja TEX Live została umieszczona w katalogu texlive, nie zaś w katalogu głównym (poniżej traktujemy go jako katalog główny we wszystkich odniesieniach dotyczących TEX Live).

bin

wykonywalne programy TEX-owe, zorganizowane w podkatalogach według platform systemowych;

source

źródła wszystkich programów, włącznie z głównymi dystrybucjami Web2C TEX-a i Metafont-a; są one umieszczone w skompresowanym programem bzip2 archiwum tar;

support

różne programy związane z TEX-em, które nie są domyślnie instalowane, takie jak MusixTEX i inne programy pomocnicze; dla użytkowników systemów Windows dołączono ponadto szereg programów (edytory, „shelle TeX-owe”), których zwykle brak w typowej instalacji Windows (programy te mogą być szczególnie przydatne dla początkujących);

texmf

drzewo katalogów plików pomocniczych i dokumentacji dla programów (patrz: TEXMFMAIN w następnej części);

texmf-dist

główne drzewo katalogów formatów i pakietów (zawiera makra, fonty i dokumentacje; patrz: TEXMDIST w następnej części);

texmf-doc

drzewo samodzielnych dokumentacji (m.in. podręczniki itp.), niezwiązane z konkretnymi pakietami, zorganizowane wg. języków.

texmf-var

drzewo dla plików generowanych automatycznie (patrz: TEXMFSYSVAR w następnej części);

xemtex

programy pomocnicze dla Windows; w systemach Unix programy te są zazwyczaj dostępne bądź łatwe do samodzielnego skompilowania.

Prócz podkatalogów wymienionych powyżej, katalog główny zawiera skrypty instalacyjne oraz pliki README, w formacie tekstowym lub HTML, w kilku językach (również polskim).

Katalog texmf-doc zawiera, jak wspomniano wyżej, dokumentacje ogólne, np. podręczniki (także w wersjach językowych, jak np. niniejsza dokumentacja). Dokumentacje programów (man, info) znajdują się w katalogu texmf/doc, zaś dokumentacje pakietów makr, fontów i formatów w katalogu texmf-dist/doc. Znalezienie konkretnej dokumentacji w dowolnym z wymienionych katalogów ułatwi skorzystanie z programów texdoc lub texdoctk. Pomocnym może być także plik doc.html, który znajdziemy w głównym katalogu.

2.3. Predefiniowane drzewa katalogów texmf

W tej części wymieniono wszystkie predefiniowane zmienne specyfikujące drzewa katalogów texmf, wykorzystywane przez system, a także ich przeznaczenie. Uruchomienie polecenia texconfig conf pokaże wartości tych zmiennych, dzięki czemu łatwo odnaleźć które katalogi w naszej instalacji są przypisane do konkretnych zmiennych.

TEXMFMAIN
Drzewo katalogów zawierające podstawowe dla dystrybucji elementy systemu, jak skrypty (np. web2c/mktexdir), pliki pool i inne pliki pomocnicze.
TEXMFDIST
Drzewo katalogów gromadzące pakiety makr, fontów itp., tak jak są one oryginalnie dystrybuowane; drzewo to może być współdzielone z dowolną dystybucją.
TEXMFLOCAL
Drzewo katalogów, które administratorzy mogą wykorzystać do przechowywania lokalnych makr, fontów itp., dostępnych dla wszystkich użytkowników serwera.
TEXMFHOME
Drzewo katalogów dla prywatnych makr, fontów itp. użytkownika. Rozwinięcie tej zmiennej zależy domyślnie od wartości przypisanej zmiennej systemowej $HOME.
TEXMFCONFIG
Drzewo katalogów wykorzystywane przez narzędzia teTEX-a texconfig, updmap oraz fmtutil do przechowywania danych konfiguracyjnych (domyślnie w ramach $HOME).
TEXMFSYSCONFIG
Drzewo katalogów wykorzystywane przez narzędzia teTEX-a texconfig-sys, updmap-sys oraz fmtutil-sys do przechowywania danych konfiguracyjnych dla całej instalacji.
TEXMFVAR
Drzewo katalogów wykorzystywane przez texconfig, updmap i fmtutil do przechowywania wygenerowanych plików formatów i map fontowych (domyślnie w ramach $HOME).
TEXMFSYSVAR
Drzewo katalogów wykorzystywane przez texconfig-sys, updmap-sys and fmtutil-sys do przechowywania wygenerowanych plików formatów i map fontowych dla całej instalacji.

Więcej informacji na temat texconfig znajdziemy w części 3.4, na str. 24.

2.4. Rozszerzenia TEX-a

TEX Live zawiera trzy rozszerzenia standardowego TEX-a:

e-TEX
wersja programu TEX, która zawiera dodatkowo niewielki, lecz silny zestaw nowych poleceń wbudowanych (dotyczących głównie rozwijania makr, leksemów znakowych, interpretacji znaczników itp.) oraz rozszerzenie TEX--XE T dla składu od prawej do lewej. W trybie domyślnym e-TEX jest w 100% zgodny ze standardowym programem TEX. Więcej szczegółów znaleźć można na CD, w texmf-dist/doc/etex/base/etex_man.pdf.
pdfTEX
program, który wynik składu może zapisywać zarówno w formacie Acrobat PDF, jak i DVI. Podręczniki znajdziemy w katalogu texmf/doc/pdftex/manual/, zaś przykład wykorzystania w pliku texmf/doc/pdftex/manual/samplepdf/samplepdf.tex.
pdfeTEX
łączy rozszerzenia pdfTEX i e-TEX i obecnie jest używany jako domyślny program dla większości formatów (prócz plain TEX).
Ω (Omega)
program, który pracuje wewnętrznie ze znakami kodowanymi 16-bitowo (Unicode), pozwalając pracować jednocześnie z większością tekstów spotykanych na świecie. Wspomaga także dynamicznie ładowane tzw. „procesy tłumaczenia Ω” (OTP), co pozwala użytkownikowi definiować złożone transformacje wykonywane na dowolnych strumieniach wejściowych. Więcej szczegółów znaleźć można na CD: texmf-dist/doc/omega/base/doc-1.8.tex (dokumentacja niezbyt aktualna).
Aleph
łączy rozszerzenia Ω i e-TEX; powstał jako niezależny projekt z potrzeby stabilnej „używalności” programu Omega, w sytuacji gdy ten jest ciągle w fazie eksperymentalnej.

2.5. Inne ważniejsze programy TEX Live

Poniżej zestawiono inne najczęściej używane programy dostępne w dystrybucji TEX Live:

bibtex
tworzenie spisów bibliograficznych;
makeindex
tworzenie posortowanych skorowidzów;
dvips
konwersja DVI do PostScript;
xdvi
przeglądarka plików DVI dla X Window;
dvilj
sterownik dla drukarek HP LaserJet;
dv2dt, dt2dv
konwerter DVI do/z tekstu ASCII;
dviconcat, dviselect
programy do manipulacji stronami w plikach DVI;
dvipdfmx
konwersja DVI do PDF, metoda alternatywna w stosunku do wspomnianego wyżej programu pdfTEX (pakiety ps4pdf pdftricks dostarczają kolejnych możliwości);
psselect, psnup, ...
narzędzia manipulacji na plikach PostScript-owych;
lacheck
kontrola syntaktyki plików LATEX-owych;
texexec
program uruchomieniowy dla ConTEXt;
tex4ht
konwerter TEX do HTML.

2.6. Pakiety i ich zestawy

Zawartość drzew texmf na TEX Live została do celów instalacji zorganizowana w szereg „zestawów” (collections), z których każdy posiada zbiór „pakietów” (packages; jest ich ponad 1000). Normalna instalacja pozwala użytkownikowi skopiować z CD (DVD) na twardy dysk jeden lub więcej zestawów, jest też jednak możliwe zainstalowanie jedynie pojedynczego pakietu.

Zestawy pozwalają lepiej dobrać instalowane składniki, a także określić jakie języki będą obsługiwane po instalacji. Najważniejszy zestaw, wymagany dla większości zastosowań, to „basic”. Zestawy „latex” i „pdftex” są rekomendowane dla większości użytkowników. Pozostałe zestawy są opcjonalne.

Oto dostępne zestawy (zdefiniowane w plikach XML o nazwach poprzedzonych członem collection-, umieszczonych w podkatalogu texmf/tpm/) i krótki opis ich zawartości:

basic
podstawowe programy, pakiety makr i fontów systemu TEX, pliki konfiguracyjne dla podstawowych sterowników;
bibtexextra
dodatkowa, obszerna biblioteka stylów BibTEXowych i bazy danych bibliograficznych (podstawowe style znajdują się w zestawie „basic”);
chemistry
pakiety makr do składu wzorów chemicznych;
context
pakiet makr do ConTEXt – „dialektu” TEX-a autorstwa Hansa Hagena;
documentation
dodatkowe, użyteczne dokumentacje;
etex
pliki pomocnicze dla programu e-TEX;
extrabin
różne programy pomocnicze; zestaw zawiera m.in. programy i makra dla systemu texinfo, programy do manipulacji na plikach DVI itp.;
fontbin
programy do konwersji plików fontowych oraz testowania i instalacji fontów (zestaw do tworzenia fontów wirtualnych, manipulacji plikami .gf i .pk, programy mft, fontinst itp.);
fontsrecommended
obszerna biblioteka częściej używanych fontów w postaci źródłowej (.mf) bądź obwiedniowych oraz pliki definicyjne i stylów LATEX-a dla tych fontów;
fontsextra
biblioteka różnych rzadziej używanych fontów;
formatsextra
pliki pomocnicze do generowania dodatkowych „formatów” (tj. obszerne zestawy makr służące do wstępnego przetworzenia i utworzenia pliku .fmt);
games
pakiety do prezentacji zapisu różnych gier (szachy, brydż itp.);
genericextra
obszerna biblioteka makr, trudnych do sklasyfikowania, działających z różnymi formatami (Plain, LaTeX itp.);
htmlxml
pakiety konwersji LATEXa do XML/HTML oraz do składu dokumentów XML/SGML;
lang. . .
wsparcie poszczególnych języków; zestawy zawierają wzorce przenoszenia wyrazów i makra obsługi danych języków, czasem też specyficzne fonty itp., przykładowo:
langpolish
zawiera polskie pakiety: makra do tworzenia formatu MeX, pakiety platex, mwcls, fonty, makra dodatkowe, przydatne dla polskich użytkowników, dokumentacje w języku polskim;
latex
podstawowe pakiety LATEX-a;
latexrecommended
rekomendowany zestaw często używanych pakietów dodatkowych;
latex3
pakiety-„zwiastuny” LATEX3, działające z LaTeX2e;
latexextra
bogaty wybór dodatkowych pakietów dla LATEX-a;
mathextra
dodatkowe pakiety do składu zaawansowanej matematyki;
metapost
MetaPost i pakiety do tworzenia rysunków z użyciem MetaFonta;
music
makra do sładu nutowego;
omega
rozszerzenie TEXa autorstwa Johna Plaice’a i Yannisa Haralambousa, działające ze znakami kodowanymi 16-bitowo;
pdftex
pliki pomocnicze dla pdfTEX-a, wersji programu TEX tworzącej pliki w formacie PDF;
pictures
pakiety do tworzenia diagramów i innych obiektów graficznych;
plainextra
dodatkowe biblioteki makr dla plain TEX;
psutils
narzędzia do manipulacji plikami PostScript-owymi;
publishers
pakiety makr pochodzące od różnych wydawnictw;
t1utils
narzędzia do fontów w formacie Type 1;
texbooks
przykłady i inne materiały autorstwa D.E. Knutha;
ttfutils
narzędzia do konwersji fontów True Type;

Katalog texmf/lists/ (wykorzystywany podczas instalacji) zawiera spis wszystkich plików w każdym pakiecie.

3. Instalacja i użytkowanie w systemach Unix

Jak już wspomniano w części  1.1 na str. 5, TEX Live można używać na trzy sposoby:

  1. zamontować płytę (mount) CD w systemie plików, uruchomić skrypt install-tl.sh i wybrać opcję <R> (do not install files, set up to run off CD-ROM/DVD – bez instalacji plików, dostosuj do uruchamiania z CD/DVD). Pozwala to na uruchamianie wszystkich programów bezpośrednio z płytki; na dysku twardym znajdą się jedynie niezbędne pliki konfiguracyjne.
  2. zainstalować część lub cały system na lokalnym twardym dysku.
  3. doinstalować wybrane pakiety do istniejącego systemu TEX lub systemu TEX Live zainstalowanego wcześniej.

Każda z tych metod jest dokładniej opisana w dalszych rozdziałach.


Uwaga: CD i DVD są w formacie ISO 9660 (High Sierra), z rozszerzeniami Rock Ridge (i Joliet dla Windows). Aby skorzystać z wszystkich zalet płytki pod Unixem, twój system operacyjny powinien obsługiwać rozszerzenie Rock Ridge. Prosimy zapoznać się z dokumentacją komendy mount w twoim systemie aby sprawdzić, czy to jest możliwe. Jeżeli używasz wielu różnych maszyn w sieci lokalnej, zobacz czy możesz zamontować CD/DVD na tej, która pozwala na użycie Rock Ridge.

Współczesne systemy operacyjne powinny umieć bez problemów korzystać z CD/DVD. Dalsze kroki opisane są przy założeniu, że udało się zamontować CD/DVD w pełnej zgodności z Rock Ridge.


3.1. Uruchamianie TEX Live z płytki (Unix)

Aby korzystać bezpośrednio z nośnika w systemach Unix należy użyć płyty live DVD. Najpierw należy zamontować CD lub DVD – postać polecenia jest zależna od konkretnej platformy, poniższe działa w Linux, choć nazwa urządzenia (tu: /dev/cdrom) może się różnić. W przykładach podajemy > jako znak zgłoszenia powłoki, zaś to, co wpisuje użytkownik, jest podkreślone.

> mount -t iso9660 /dev/cdrom /mnt/cdrom

następnie zmieniamy katalog bieżący na katalog montowania:

> cd /mnt/cdrom

W systemie Mac OS X katalog ten znajduje się zwykle w ramach /Volumes zaś nośnik montowany jest automatycznie.

Uruchamiamy skrypt instalacyjny install-tl.sh:

> sh install-tl.sh
Welcome to TeX Live...

Po ukazaniu się głównego menu mamy do wyboru listę opcji, wprowadzanych poprzez naciśnięcie wybranego znaku oraz klawisza Enter (nie należy wpisywać znaków <>; wielkie i małe litery są tożsame, w przykładach podajemy małe litery).

Dla uruchamiania bezpośrednio z płytki wybieramy najpierw opcję d, następnie podopcję 1, która pozwoli nam określić katalog na generowane przez TEX-a pliki (fonty, formaty, pliki konfiguracyjne do modyfikacji ustawień). Jeśli odpowiadają nam ustawienia domyślne (/usr/local/texlive/2005), możemy pominąć poniższy fragment. W naszym przykładzie użyjemy /opt/texlive2005:

Enter command: d
Current directories setup:
<1>  TEXDIR:     /usr/local/texlive/2005
...
Enter command: 1
New value for TEXDIR [/usr/local/texlive/TeX]: /opt/texlive2005
...
Enter command: r

wciśnięcie klawisza r powoduje powrót do głównego menu, gdzie wybieramy opcję uruchamiania bezpośrednio z nośnika, bez instalacji właściwej na dysku:

Enter command: r
Preparing destination directories...
...
Welcome to the TeX Live system!
>

Następnie należy uaktualnić zmienną PATH, dołączając do niej katalog zawierający binaria dla danej architektury, a także ustawić zmienną TEXMFSYSVAR na podany powyżej katalog. Dla powłoki zgodnej z Bourne shell (sh, bash, ksh) możemy dopisać do pliku $HOME/.profile:

PATH=/mnt/cdrom/bin/archname:$PATH; export PATH
TEXMFSYSVAR=/opt/texlive2005/texmf-var; export TEXMFSYSVAR

gdzie archname oznacza konkretną platformę. W tabeli 1 zamieszczono spis obsługiwanych systemów operacyjnych i odpowiednich dla nich nazw podkatalogów.

Dla powłok zgodnych z C shell (csh, tcsh), należy dopisać do pliku $HOME/.cshrc:

setenv PATH /mnt/cdrom/bin/archname:$PATH
setenv TEXMFSYSVAR /opt/texlive2005/texmf-var

gdzie archname – jak wyżej.

Po zakończeniu instalacji i ustawieniu zmiennych systemowych warto uruchomić texconfig lub texconfig-sys aby dostroić instalację do własnych potrzeb (patrz część 3.4, str. 24).


Tabela 1: Obsługiwane systemy operacyjne
alpha-linux HP Alpha GNU/Linux
i386-darwin Intel x86 Mac OS X
i386-freebsd Intel x86 FreeBSD
i386-linux Intel x86 GNU/Linux
mips-irix SGI IRIX
powerpc-aix IBM RS/6000 AIX
powerpc-darwin Mac OS X
sparc-linux Sun Sparc GNU/Linux
sparc-solaris Sun Sparc Solaris
win32 Windows (32-bit)
x86_64-linux Intel x86 64-bit GNU/Linux



Po ponownym uruchomieniu sesji polski użytkownik może użyć bezpośrednio m.in. polecenia mex (spolonizowany format plain), platex (LATEX z polskimi i anglo-amerykańskimi wzorcami przenoszenia wyrazów) oraz ich wersji dla programu pdfTeX (tworzącego pliki PDF), odpowiednio: pdfmex pdfplatex. Potrzebne pliki formatów zostaną wygenerowane automatycznie podczas pierwszego uruchomienia danego polecenia i zapisane w lokalnym katalogu. Katalog ten, domyślnie /usr/local/texlive/2005/texmf-var/, a w naszym przykładzie /usr/local/texlive/texmf-var/, zawiera pliki konfiguracyjne, które mogą być modyfikowane przez użytkownika. W konfigurowaniu pomocne jest uruchomienie skryptu texconfig, opisanego w części 3.4.

3.2. Instalacja TEX Live na twardym dysku

Instalacja części lub całości dystrybucji na twardym dysku wymaga zamontowania płyty CD (lub DVD) w systemie, przejścia do jego katalogu głównego i uruchomienia skryptu instalacyjnego:

> sh install-tl.sh
(W niektórych systemach Unix może zajść potrzeba użycia sh5 lub bash.)

Skrypt ten przeszukuje listy zestawów i pakietów z CD oraz próbuje odgadnąć, z jakim systemem komputerowym ma do czynienia.

Następnie pokaże on główną stronę konfiguracyjną umożliwiającą wybór:

<P> Current platform (systemu operacyjnego, dla którego chcemy dokonać instalacji, na wypadek gdyby zawiodła automatyczna detekcja);
<B> Binary architectures (dodatkowo instalowanych binariów dla innych platform, np. na serwerze, z którego będą korzystać użytkownicy innych systemów);
<S> Installation scheme (predefiniowanego zestawu instalacyjnego, np. full – pełnego, medium – wystarczającego do większości zastosowań, basic – podstawowego; mamy tu też do wyboru zestaw proponowany polskim użytkownikom: GUST scheme);
<C> Standard collections (zestawów, których wybór pomaga zmodyfikować dany schemat instalacji);
<L> Language collections (zestawów dla obsługiwanych języków);
<D> Installation directories (katalogu bazowego na dysku, przeznaczonego na instalację);
<O> ustawienia trybu pracy niektórych programów.

Po wybraniu opcji <C>Standard collections, wyświetlone zostaną dostępne zestawy. Każdy zestaw zawiera szereg pakietów: makr, fontów itp. Zaznaczenie zestawu do zaistalowania polega na wciśnięciu odpowiedniego klawisza, ponowne naciśnięcie tego samego klawisza wyłącza zaznaczenie (uwaga: wielkie i małe litery są rozróżniane!).

Po wybraniu opcji <L>Language collections, wyświetlone zostaną dostępne zestawy dla różnych języków. Zawierają one najczęściej wzorce przenoszenia wyrazów, czasami dodatkowe pakiety makr i fontów. Aby zainstalować polskie pakiety (fonty, makra, dokumentacje), należy w tym menu wybrać klawisz odpowiadający opcji Polish.

Po powrocie do głównego menu można dodatkowo wybrać inne opcje. I tak:

<D> directories pozwala zmienić domyślne katalogi instalacji, przypisane zmiennym wewnętrznym:

TEXDIR
katalog bazowy, w ramach którego zostaną zainstalowane wszystkie pliki; domyślnie jest to /usr/local/texlive/2005, ale można go zmienić np. na /opt/texlive2005.

W systemie Mac OS X dostępne programy instalacyjne (TeXShop, ITeXMac, ...) korzystają z domyślnej lokalizacji teTEX, czyli /usr/local/teTeX. Wobec czego użytkownicy Mac dla instalacji TEX Live powinni rozważyć wybór katalogu /usr/local/teTeX zamiast /usr/local/texlive/2005.

TEXMFLOCAL
katalog przeznaczony na lokalne pliki makr i fontów użytkownika, a także indywidualne, nie związane z dystrybucją, uzupełnienia instalacji; domyślnie jest to /usr/local/texlive/texmf-local. (Katalog ten jest niezależny od opisanego wyżej katalogu bazowego, ponieważ jest przeznaczony na lokalnie dodawane makra czy fonty.)
TEXMFSYSVAR
katalog, który przechowuje pliki generowane przez system (np. formaty) (patrz część 3.4, str. 24); domyślnie TEXDIR/texmf-var. Istnieje ponadto TEXMFSYSCONFIG, katalog dla aktualnie używanych plików konfiguracyjnych, modyfikowanych najczęściej przez program texconfig.

<O> Other options – inne opcje:

a
alternate directory for generated fonts – pozwala określić katalog dla generowanych fontów (np. jeżeli chcemy zainstalować główny pakiet w trybie „tylko do odczytu” (read-only)); domyślnie fonty generowane są w katalogu określonym przez zmienną TEXMFVAR.
l
create symbolic links in standard directories – pozwala określić czy utworzyć dowiązania symboliczne (links) dla stron man, GNU info i programów w standardowych katalogach systemu operacyjnego, np. /usr/local/man, /usr/local/info oraz /usr/local/bin. Wymagane do tego są, oczywiście, uprawnienia administratora.
d
do not install font/macro doc tree – pozwala pominąć instalowanie dokumentacji fontów bądź makr, np. dla zaoszczędzenia miejsca na dysku.
s
do not install font/macro source tree – pozwala pominąć instalowanie plików źródłowych fontów bądź makr (dostępnych np. w postaci plików .dtx), które nie są wykorzystywane do bieżącej pracy;

Po zakończeniu ustawień i po powrocie go głównego menu, można rozpocząć instalację (klawisz I). Program instalacyjny, uwzględniając wybrane zestawy i systemy, sprawdzi spisy plików na CD/DVD, stworzy listę plików do skopiowania, po czym skopiuje je na twardy dysk.

Po instalacji wystarczy dodać do zmiennej PATH właściwy podkatalog bin instalacji TEX-a, uaktywnić tę zmienną i można już zacząć pracę.

Po zakończeniu instalacji i ustawieniu zmiennych systemowych warto uruchomić texconfig lub texconfig-sys aby dostroić instalację do własnych potrzeb (patrz część 3.4, str. 24).

3.3. Instalacja pojedynczych pakietów z TEX Live na twardym dysku

TEX Live można używać zarówno do aktualizacji istniejącej instalacji, jak i do dodawania składników do instalacji wcześniejszej. Główny program instalacyjny przeznaczony jest do użycia tylko za pierwszym razem, natomiast później należy używać znajdującego się na CD (DVD) skryptu install-pkg.sh. Uruchamia się go przez zamontowanie nośnika, przejście do katalogu punktu montowania i wydanie polecenia:

> sh install-pkg.sh opcje

Skrypt posiada dziewięć parametrów; pierwsze cztery pozwalają wybrać: pojedynczy pakiet do instalacji, cały zestaw (np. mathextra), nazwę katalogu zamontowanego CD, oraz nazwę katalogu zawierającego pliki ze spisami zawartości pakietów (zwykle te dwa ostatnie ustawiane są automatycznie):

--package=pkgname
pojedynczy pakiet do zainstalowania;
--collection=colname
pojedynczy zestaw do zainstalowania;
--cddir=dir
katalog źródłowy (domyślnie jest to katalog bieżący, z którego uruchomiono skrypt);
--listdir=dir
katalog ze spisami plików (domyślnie ./texmf/tpm/lists).

Proces instalacji jest określony dokładniej przez pięć kolejnych parametrów: pierwsze dwa pozwalają wyłączyć z instalacji dokumentacje i pliki źródłowe, trzeci wyłącza domyślne uruchamianie na koniec skryptu mktexlsr, przebudowującego bazę danych o plikach, czwarty uruchamia na koniec skrypt konfiguracyjny texconfig init, zaś piąty powoduje jedynie wypisanie plików, które miałyby być zainstalowane:

--nodoc
--nosrc
--nohash
--config
--listonly

Można także określić, czy zamiast instalować pliki, skrypt powinien utworzyć z nich w wybranej lokalizacji archiwum tar:

--archive=nazwa

Dodatkowa opcja --verbose pozwala wyświetlić podczas uruchomienia bardziej szczegółowe komunikaty.

Tak więc, jeżeli chcielibyśmy tylko zobaczyć przed zainstalowaniem, jakie pliki tworzą pakiet fancyhdr, nasze polecenie wyglądałoby następująco:

> sh install-pkg.sh --package=fancyhdr --listonly

texmf/source/latex/fancyhdr/README
texmf/doc/latex/fancyhdr/fancyhdr.pdf
...
Oto inne przykłady użycia:

3.4. Program texconfig

Po zakończeniu instalacji i uaktywnieniu modyfikacji zmiennej systemowej PATH, można użyć programu texconfig, do skonfigurowania systemu według własnych potrzeb. Program ten może być w każdej chwili uruchomiony do zmiany ustawień, w trybie interfejsu pełnoekranowego lub z linii poleceń. Program texconfig powinien być używany do wszelkich zmian, takich jak deklaracja używanych drukarek czy przebudowywanie bazy danych o plikach. Obydwa tryby pracy posiadają tekst pomocy, opisujący dostępne możliwości.

Przykłady użycia z wiersza poleceń:

texconfig dvips paper letter
ustawienie formatu papieru na „letter” dla programu dvips;
texconfig xdvi letter
jak wyżej, ale dla programu xdvi;
texconfig rehash
aktualizacja wszystkich baz danych instalacji systemu TEX;
texconfig faq
wyświetla FAQ dystrybucji teTEX (na dystrybucji tej oparto TEX Live);
texconfig help
wyświetla dostępne opcje skryptu.

Skrypt texconfig pozwala na zmianę jedynie najważniejszych ustawień. Głównym plikiem konfiguracyjnym jest texmf.cnf. Zlokalizujemy go uruchamiając polecenie „kpsewhich texmf.cnf”. Plik ten zawiera sporo użytecznych komentarzy, wyjaśniających reguły ustawień domyślnych, a także podaje przykłady ustawień alternatywnych.

Od roku 2005, zgodnie ze zmianami, które zaszły w teTEX 3.0, texconfig zapisuje pliki w katalogu użytkownika ($HOME/.texlive2005). Jeśli instalujemy system dla wielu użytkowników, powinniśmy zatem uruchomić polecenie texconfig-sys.

Podobnie rzecz ma się ze skryptami updmap oraz fmtutil; także i one zapisują pliki w $HOME/.texlive2005. Aby zmienić globalne ustawienia, wygenerować mapy bądź formaty, należy użyć poleceń updmap-sys fmtutil-sys. W przypadku instalacji dla wielu użytkowników warto wygenerować wspólne pliki formatów (polecenie fmtutil-sys –missing), dzięki czemu uniknie się generowania tychże przez każdego użytkownika, na jego własne potrzeby.

3.5. Testowanie instalacji

Po zainstalowaniu TEX Live warto sprawdzić czy programy działają prawidłowo. Opiszemy tu podstawowe procedury testujące funkcjonowanie systemu w systemach Unix. W Mac OS X i Windows najczęściej użyjemy środowiska graficznego (GUI), ale reguły będą podobne.

  1. Sprawdzamy najpierw czy uruchamia się program tex:

    > tex --version
    TeX 3.141592 (Web2C 7.5.5)
    kpathsea version 3.5.3
    Copyright (C) 1997-2004 D.E. Knuth.
    ...
    Jeśli uruchomienie zakończy się komunikatem command not found, oznacza to, że nieprawidłowo zadeklarowano zmienną PATH.
  2. Następnie przetwarzamy prosty plik LATEX-owy:

    > latex sample2e.tex
    This is pdfeTeXk, Version 3.141592...
    ...
    Output written on sample2e.dvi (3 pages, 7496 bytes).
    Transcript written on sample2e.log.
    Gdy program nie znajduje sample2e.tex (bądź innych wymaganych plików), może to oznaczać, że nadal działają ustawienia zmiennych środowiska bądź pliki konfiguracyjne z poprzedniej instalacji. Dogłębną analizę gdzie są przeszukiwane i znajdywane pliki umożliwia diagnostyka opisana w części 7.2.4 na str. 58.
  3. Podgląd wyniku składu:

    > xdvi sample2e.dvi
    Polecenie to wymaga uruchomionego środowiska graficznego X Window.
  4. Przetwarzanie wyniku składu do PostScript w celu wyświetlenia lub wydruku:

    > dvips sample2e.dvi -o sample2e.ps
  5. Tworzenie dokumentu bezpośrednio w formacie PDF:

    > pdflatex sample2e.tex
  6. Podgląd dokumentu PDF:

    > gv sample2e.pdf
    lub:
    > xpdf sample2e.pdf
    Programy gv xpdf są dostarczane zwykle w ramach systemu operacyjnego, wobec tego nie zawarto ich na TEX Live. Przed samodzielną instalacją warto odwiedzić strony, odpowiednio: http://www.gnu.org/software/gvhttp://www.foolabs.com/xpdf. W sieci dostępny jest także bezpłatny program Adobe Reader (http://www.adobe.com).
  7. Inne przydatne pliki testowe:

    small2e.tex
    przykład prostszy niż sample2e;
    testpage.tex
    test położenia wydruku na kartce papieru, przydatny do sprawdzenia, czy nasza drukarka nie wprowadza przesunięć;
    nfssfont.tex
    służy do wydruku tablic fontowych;
    testfont.tex
    jak wyżej, ale zamiast LATEX-a wymaga jedynie plain TEX;
    story.tex
    najbardziej kanoniczny przykład dla plain TEX; na zakończenie przetwarzania uruchomionego poleceniem tex story, po ukazaniu się *, należy wpisać \bye.

Początkującym użytkownikom polecamy stronę http://tug.org/begin.html oraz podręcznik Petera Flynna Formatting Information, dostępny pod adresem http://www.ctan.org/tex-archive/documentation/beginlatex.

4. Instalacja dla systemu Mac OS X

Na komputerach Macintosh TEX Live działa jedynie pod systemem operacyjnym Mac OS X (starsze systemy z działającym systemem TEX mogą korzystać z makr, fontów i dokumentacji o ile zainstalujemy rozszerzenie Joliet dostępne na http://www.tempel.org/joliet).

Instalacja pod Mac OS X może być wykonana na dwa sposoby.

W 2005 r. rekomendowana jest instalacja MacTEX, nowej dystrybucji dostępnej na live DVD w katalogu mactex/. Zawiera ona własny program instalacyjny pełnej dystrybucji systemu TEX, która jest kombinacją teTEX-a, TEX Live i dodatkowych programów oraz dokumentacji. Szczegóły na temat projektu MacTEX znajdują się na stronie: http://tug.org/mactex.

Jeśli wolimy, w Mac OS X można także zaistalować TEX Live, wykorzystując skrypty install*. Wymagane jest do tego posiadanie powłoki bash. Od wersji Mac OS X 10.2 bash jest standardowo dostępny, a więc instalujemy podobnie jak opisano to powyżej w części 3 na str. 13. Wcześniejsze wersje systemu operacyjnego wymagają aktualizacji, czyli pobrania z sieci powłoki bash.

4.1. Strona kodowa Macintosh CE

Piszący po polsku użytkownicy Mac OS X mają do wyboru stosowanie dwóch 8-bitowych stron kodowych:

iso8859-2
– co wiąże się z wykorzystywaniem standardowego oprogramowania uniksowego (Cocoa używa wyłącznie unikodu), jak na przykład Emacsa.
Mac CE
– co pozwala na stosowanie tradycyjnego (Carbon) oprogramowania jak np. BBEdit. Weźmy pod uwagę ten przypadek.

Na TEX Live w standardowych pakietach LATEX-a znajduje się plik macce.def, który pozwala LATEX-owi wczytywać polski tekst z wykorzystaniem pakietu inputenc:

\usepackage[macce]{inputenc}

Ponadto mamy tablice przekodowań dla Mac CE, niewymagające stosowania pakietu \inputenc. Zamiast niego wystarczy wpisać w pierwszym wierszu pliku deklarację:

%& --translate-file=macce-pl

5. Instalacja i użytkowanie pod Windows

Niniejsze wydanie TEX Live ponownie zawiera program instalacyjny dla Windows; jest to obecnie tlpmgui.exe. Program ten posiada podobne opcje jak instalator dla systemów Unix: pozwala wybrać schemat, poszczególne kolekcje, katalogi dla instalacji, a więc ma funcjonalność opisaną już w części 3.2 na str. 20. Dodatkowo, po instalacji właściwej, możliwe jest dodawanie bądź usuwanie pakietów a także wykonywanie najważniejszych czynności administracyjnych, jak aktualizacja bazy danych instalacji, generowanie formatów czy map fontowych. Możliwe jest także przygotowanie systemu operacyjnego do uruchamiania programów bezpośrednio z DVD.

tlpmgui wykorzystuje jako „silnik” program tlpm.

Oprogramowanie dla Windows w TEX Live jest oparte o zaktualizowane programy, zapożyczone z projektu XEmTEX, sukcesora dystrybucji fpTEX (patrz http://www.metz.supelec.fr/~popineau/xemtex-1.html). Zawiera ponadto niektóre starsze (ale nadal działające) programy, szczególnie przeglądarkę plików dvi, Windvi, która jest podobna w użyciu do znanego z systemów Unix programu xdvi. Dokumentacja Windvi znajduje się w texmf/doc/html/windvi/windvi.html.

TEX Live może być instalowany w systemach Windows 98, ME, NT, 2K lub XP.

Uwaga: Użytkownicy Win9.x powinni zadbać aby system posiadał wystarczający obszar dla nowych zmiennych środowiskowych. W tym celu przed instalacją należy dopisać do pliku C:\config.sys wiersz SHELL=<path>COMMAND.COM /E:4096 /P i ponownie uruchomić komputer.

5.1. Instalacja TEX Live na twardym dysku

Po włożeniu płyty do napędu CD, autostart powinien uruchomić program tlpmgui. Jeśli to nie nastąpi, kliknij menu StartUruchom i wybierz <litera CD-ROM>:\setup-win32\tplmgui.exe (lub <litera DVD>:\texlive\setup-win32\tplmgui.exe jeśli instalujesz z płyty TEX Collection DVD), a następnie kliknij OK.

Ukaże się okno instalatora zatytułowane Program instalacji i konfiguracji TeX Live. Zawiera ono następujące sekcje: Modyfikacja schematów, Instalacja, Wybierz schemat, Wybierz system, KatalogiOpcje.

W sekcji Katalogi, obok przycisku CD/DVD powinien być wyświetlony dysk instalacyjny, np. F:/ (lub F:/texlive/ dla DVD). Jeśli tak nie jest, naciśnij przycisk CD/DVD i wybierz napęd CD z TeX Live CD (lub katalog texlive na TEX Collection DVD).

Za pomocą przycisku TLroot możesz wybrać katalog, w którym chcesz zainstalować TEX Live. Wybrany katalog zostanie wpisany do zmiennej środowiskowej TLroot do późniejszego użycia. Przyciski TEXMFTEMP TEXMFCNF wskazują relatywne do TLRoot katalogi (pod koniec instalacji zostaną przypisane zmiennym środowiskowym TEXMFTEMP TEXMFCNF). Katalogi te są automatycznie aktualizowane przy zmianie TLroot.

W sekcji Wybierz schemat należy wybrać odpowiedni schemat instalacyjny TEX Live przez naciśnięcie jednego z dostępnych przycisków radiowych (np. scheme-gust). Przy nazwie każdego schematu znajduje się przycisk Informacje, po naciśnięciu którego wyświetlana jest lista kolekcji zawarta w wybranym schemacie.

Schematy to obszerne zestawy pakietów przeznaczone do wstępnego wyboru instalowanych komponentów. Mamy do wyboru schematy dla podstawowej, przeciętnej i pełnej instalacji, pozostałe przygotowano z myślą o wybranych grupach użytkowników (np. GUST i GUTenberg przygotowały schematy dla swoich członków) lub zastosowaniach (np. XML lub Omega). Wstępnie wybrane schematy można modyfikować. Dodatkowe kolekcje można wybrać w sekcji Modyfikacja schematów. Na przykład po naciśnięciu przycisku Wybierz obok Kolekcji standardowych można wybrać dodatkowe kolekcje, takie jak Metapost, Omega lub dokumentacje w różnych językach. Wybór zaznaczamy haczykiem.

Uwaga: Kolekcje Ghostscript, Perl Wintools są zaznaczone domyślnie i powinny zostać zainstalowane, ponieważ są wymagane przez wiele programów. Można z nich zrezygnować, gdy masz je już zainstalowane i wiesz, co robisz.

Ustawiane są także zmienne środowiskowe PERL5LIBGS_LIB.

W sekcji Modyfikacja schematów, po przyciśnięciu przycisku Wybierz przy Kolekcjach języków, otwiera się okno, w którym można wybrać do zainstalowania dodatkowe kolekcje z pakietami dla obsługi konkretnych języków. Wybór zaznaczamy haczykiem.

Właściwa instalacja rozpoczyna się po naciśnięciu przycisku Instaluj. Zaczekaj cierpliwie aż do pojawienia się komunikatu o pomyślnym zakończeniu instalacji.

Do menu StartProgramyTeXLive2005 dodawany jest skrót do tlpmgui.

Jeśli to będzie konieczne (Win9x/WinME), będziesz poproszony o ponowne uruchomienie komputera.

5.2. Uruchomienie z DVD

Przy uruchomieniu z DVD mamy dodatkową zakładkę Uruchom z DVD. Pozwala ona przygotować TEX Live do pracy wprost z dysku DVD bez instalacji. Po naciśnięciu przycisku Ustaw dodawane są zmienne środowiskowe i generowane są formaty na dysku lokalnym. Od tej chwili można korzystać z TEX Live, pamiętając tylko o włożeniu płyty do napędu DVD.

5.3. Programy pomocnicze dla Windows

Aby instalacja była kompletna, TEX Live wymaga kilku pomocniczych programów, które nie są dostarczane wraz z systemem Windows. Wiele skryptów napisano w języku Perl, ponadto wiele narzędzi wymaga programu Ghostscript (interpretera języka PostScript) do rasteryzacji bądź konwersji plików. Przydatne są także w wielu wypadkach różne programy do obróbki grafiki. Wreszcie – posiadanie edytora zorientowanego na środowisko TEX znacznie ułatwi pracę.

Wszystkie takie programy dla Windows dosyć łatwo znaleźć w sieci, ale ponieważ jest ich spory wybór, postanowiliśmy te najbardziej godne polecenia umieścić w dystrybucji TEX Live:

Powyżej wymienione programy zapożyczono z dystrybucji XEmTEX, sukcesora fpTEX.

Programy Perl Ghostscript są instalowane domyślnie, ponieważ są wymagane do uruchamiania wielu ważnych narzędzi. Istnieje jednakże możliwość rezygnacji z instalowania obu tyvh programów, jeśli mamy je już dostępne w systemie.

Poniżej zamieszczono listę miejsc, skąd można pobrać programy pomocnicze:

Ghostscript
http://www.cs.wisc.edu/~ghost/
Perl
http://www.activestate.com/ (uzupełniające, przydatne pakiety należy pobrać z zasobów CPAN http://cpan.org)
ImageMagick
bogaty zestaw narzędzi do wsadowego przetwarzania plików graficznych (http://www.imagemagick.com)
NetPBM
zamiast ImageMagick do przetwarzania i konwersji plików graficznych możemy użyć NetPBM (http://netpbm.sourceforge.net/)
Edytory dla systemu TEX
mamy tutaj spory wybór, zależny od indywidualnych preferencji użytkownika:

Możemy zainstalować z sieci także inne narzędzia, których zabrakło na TEX Live z powodów licencyjnych. Przykładem jest tu GSView, wygodny program wykorzystujący Ghostscript do wyświetlania i drukowania plików PS/PDF. Dostępny jest on m.in. na http://www.cs.wisc.edu/~ghost/gsview/, a także na każdym serwerze CTAN.

6. Zarządzanie systemem TEX Live w Windows

Po zainstalowaniu TEX Live można użyć tlpmgui razem z TEX Live CD (lub TEX Collection DVD) do zmian i administracji Twoją instalacją. Skrót do tlpmgui dostępny jest w menu StartProgramyTeXLive2005. Okno programu zawiera tym razem następujące zakładki: Dodawanie pakietów, Usuwanie pakietów, Zarządzanie instalacją Odinstalowanie.

6.1. Dodawanie/usuwanie pakietów

Zakładki Dodawanie pakietów lub Usuwanie pakietów posiadają następującą funkcjonalność:

6.2. Konfigurowanie i inne zadania administracyjne

Polecenia dostępne w zakładce Zarządzanie instalacją są pomocne przy wykonywaniu czynności po dodaniu pakietów językowych, fontów czy formatów, a także przy odświeżaniu bazy danych instalacji, czy ręcznym dodawaniu pakietów (bez pomocy tlpmgui).

Możemy tu wykonać następujące czynności:

Uwaga: okno Edycja... można zamknąć przyciskiem Anuluj lub Gotowe; w tym drugim wypadku zostaną odbudowane pliki formatów (bądź mapy fontowe, gdy edytowano updmap.cfg), a następnie zostaną odświeżone bazy danych instalacji (pliki ls-R).

Więcej informacji na temat indywidualnej konfiguracji zawarto w części 6.8, na str. 34.

6.3. Odinstalowanie TEX Live

Zakładka Odinstalowanie udostępnia polecenie, którego działanie nie jest warte opisu i nie wiadomo komu jest ono potrzebne...:-)

Uwaga: katalogi texmf-local (zawierający prywatne fonty, makra itp.) oraz setup-win32 (zawierający tlpmgui i związane z nim pliki) nie są usuwane podczas odinstalowania. Katalogi te należy usunąć samodzielnie.

6.4. Dodawanie własnych pakietów do instalacji

Gdy zamierzamy dodać pakiety, których brak w dystrybucji TEX Live, warto instalować je w katalogu specyfikowanym przez zmienną $TEXMFLOCAL. W ten sposób zabezpieczymy te pakiety podczas aktualizacji/wymiany oprogramowania TEX Live.

Katalog wskazywany przez $TEXMFLOCAL jest początkowo pusty. Przykładowo: dodajemy pakiet dla Maple (przetwarzanie symboliczne); pliki stylów należy skopiować do katalogu ...\texmf-local\tex\latex\maple\  zaś pliki dokumentacji do katalogu ...\texmf-local\doc\latex\maple\

Na zakończenie należy koniecznie zaktualizować bazę danych instalacji ls-R: albo poprzez wybór z menu programu tlpmgui, albo przez uruchomienie z linii poleceń mktexlsr.

6.5. Uruchamianie tlmp.exe z linii poleceń

Program tlpm.exe jest intensywnie używany jako „silnik” tlpmgui. Może być uruchamiany samodzielnie z linii poleceń i posiada wiele użytecznych opcji, które można wyświetlić po uruchomieniu:

  tlpm --help

Więcej informacji i przykładów użycia można znaleźć w pliku tlpm.readme (katalog setup-win32).

6.6. Instalacja sieciowa

Biblioteka Kpathsea rozpoznaje nazwy UNC, wobec tego możemy ich użyć dla specyfikacji drzew katalogów TEXMF udostępnianych w sieci komputerowej. Wszystkie pliki z wyjątkiem zawartych w katalogu bin/win32 mogą być współdzielone z instalacjami teTEX lub TEX Live systemów Unix/Linux. Oznacza to, że można użyć Samby do zamontowania serwera NT dla stacji roboczej Unix lub odwrotnie: serwer np. Linux może udostępniać zasoby dla stacji Windows.

Dostępne są następujące możliwości:

6.7. Różnice w stosunku do standardowego Web2C w systemach Win32

Programy Web2C działające w systemach Win32 posiadają szczególne cechy, o których warto wspomnieć:

Kpathsea
– tablice haszowe, tworzone w TEX Live przez bibliotekę Kpathsea, są bardzo duże. Aby skrócić czas uruchamiania dowolnego programu, wykorzystującego Kpathsea, tablice haszowe zostają umieszczone w pamięci współdzielonej przez procesy. W ten sposób zmniejszono znacznie czas uruchamiania programów wywoływanych kolejno, jeden przez drugi (np. tex wywołujący mpost wywołujący tex). Zmianę tę ukryto przed użytkownikiem, z wyjątkiem sytuacji, gdy zostanie użyta opcja -1 dla diagnostyki działania Kpathsea; można wtedy śledzić wykorzystanie pamięci współdzielonej.
kpsecheck
– program ten oferuje kilka opcji uzupełniających dla programu kpsewhich. Pozwala na wylistowanie wszystkich plików, które występują wielokrotnie w dostępnych drzewach katalogów texmf. Może to być przydatne, choć często możemy otrzymywać niepożądane komunikaty o dziesiątkach plików typu README. Warto tu wspomnieć, że takie pliki powodują „zapychanie” się mechanizmu haszowego Kpathsea; na szczęście biblioteka ta nigdy ich nie wyszukuje. Aby tego uniknąć, należy użyć opcji -multiple-occurences wraz z dwiema innymi, pozwalającymi podać wzorce nazw do pominięcia lub włączenia w procesie przeszukiwania (można podać kilka wzorców).

kpsecheck raportuje także stan pamięci współdzielonej: używanej i nieużywanej. Warto czasem o tym wiedzieć, gdyż pokazywany status „pamięć w użyciu” może oznaczać, że działa kilka procesów i efekt wykonania polecenia mktexlsr zostanie każdorazowo opóźniony do czasu, aż nie będzie pracował żaden program korzystający z Kpathsea.

kpsecheck pozwala także określić położenie programu Ghostscript. W systemach Win32 łatwiej jest wielu programom skorzystać z biblioteki DLL programu Ghostscript i znaleźć ją na podstawie rejestrów systemowych, niż na podstawie zmodyfikowanej przez użytkownika zmiennej PATH (ponadto zmienne środowiskowe, szczególnie w starszych wersjach systemu Windows, mają dość ograniczoną pojemność).

Web2C
– programy dla Windows posiadają kilka dodatkowych opcji nieobecnych w wersjach kompilowanych dla Unix i jedną działającą nieco inaczej:

6.8. Konfiguracja indywidualna

6.8.1. Dvips

Plik konfiguracyjny config.ps programu Dvips znajduje się w katalogu C:\TeXlive2005\texmf-var\dvips\config\. Plik ten można otworzyć w dowolnym edytorze (np. w WinShell) po to, aby zmienić niektóre parametry działania Dvips. Najważniejsze z nich zgrupowano w blokach deklaracji:

fonty
– można zmienić domyślne parametry generowania fontów przez Metafont-a dla danej drukarki (parametr M) i rozdzielczość (parametry D, X, Y). Standardowo fonty generowane są dla drukarek laserowych, zgodnych z Hewlett Packard (tryb ljfour), w rozdzielczości 600 dpi. Domyślnie ustawiono wykorzystanie fontów CM (oraz PL) w ich wersji obwiedniowej (Type 1), wobec tego Dvips nie powinien odwoływać się zbyt często do programu mktexpk.
drukarka
– parametr ‘o’ określa nazwę portu/przekierowania wydruku. Gdy nie wpisano nazwy drukarki (portu), wynik pracy będzie zapisywany w pliku PostScriptowym .ps. Drukarkę specyfikujemy jednym z poniższych sposobów:
  o lpt1:
  % o | lpr -S server -P myprinter
  % o \\server\myprinter

papier
– domyślnie Dvips tworzy dokumenty dla formatu A4. Zmiana formatu (np. na US Letter) wymaga przeniesienia jego definicji na początek bloku deklaracji formatów (blok ten rozpoczynają wiersze ze znakiem @). Na początek bloku trzeba więc przenieść wiersze:
  @ letterSize 8.5in 11in
  @ letter 8.5in 11in
  @+ %%BeginPaperSize: Letter
  @+ letter
  @+ %%EndPaperSize

Uwaga: obecna dystrybucja TEX Live posiada ułatwioną procedurę automatycznej aktualizacji map fontowych dla Dvips i Pdftex, wykonywaną przez program updmap. Po dodaniu pakietów z fontami należy zmodyfikować plik updmap.cfg w katalogu $VARTEXMF/web2c, a następnie uruchomić program updmap. Obie czynności wykonuje odpowiednie menu programu tlpmgui.

6.8.2. Pdftex

Konfiguracja programu pdf(la)tex wymaga modyfikacji pliku
...\TeXlive\texmf-var\generic\config\pdftexconfig.tex
Można tu ustawić parametry pracy programu pdftex: rozmiar papieru, stopień kompresji itp. Na przykład rozmiar strony dla formatu letter ustawia się następująco:

\pdfpagewidth=8.5 true in \pdfpageheight=11 true in

6.8.3. GSView

Począwszy od wersji zgodnej z Ghostscript 6.50, GSView jest niestety programem shareware, wobec tego nie mógł znaleźć się na CD.

Parametry pracy programu są ustawiane m.in. w menu Media. W podmenu Display Settings można poprawić (kosztem szybkości pracy) sposób wyświetlania: parametry Text Alpha Graphics Alpha należy ustawić na 4 bity. W menu Media można też określić rozmiar papieru i jego orientację.

Uwagi dotyczące drukowania zawarto poniżej, w podrozdziale 6.10.

6.8.4. WinDvi

Program tlpmgui.exe ustawia skojarzenie plików .dvi z uruchamianiem programu Windvi, ale nie tworzy dla tego programu ikony na pulpicie. W miarę potrzeby należy zatem wykonać to samodzielnie bądź uruchamiać program z linii poleceń lub menu edytora (po jego odpowiednim skonfigurowaniu).

W menu View ->Options można ustawić niektóre parametry pracy Windvi, np. możliwość uruchamiania programów zewnętrznych (Allow shell), automatyczne odświeżanie zmienionego pliku .dvi (Autoscan), tryb pracy Metafont-a i rozdzielczość generowanych fontów (MF mode Pixels per inch), współpracę z Ghostscriptem (Postscript) itp. Po zakończeniu pracy programu parametry zapisywane są w pliku $HOME/windvi.cnf (lub Moje dokumenty/windvi.cnf). Położenie tego pliku można ustalić po uruchomieniu z wiersza poleceń:

  c:\>kpsewhich --expand-var $HOME/windvi.cnf

W wypadku błędnego ustawienia parametrów pracy Windvi plik konfiguracyjny wystarczy skasować.

6.9. Testowanie

Ogólne wskazówki dotyczące weryfikacji instalacji zawarto w części 3.5, na str. 25. Tutaj omówimy jedynie kwestie specyficzne dla Windows.

Dla szybkiej kontroli poprawności instalacji należy uruchomić edytor i otworzyć plik sample2e.tex (znajduje się on w katalogu C:\TeXLive2005\texmf\tex\latex\base\). Na belce z narzędziami wybrać z menu CommandLaTeX (XEmacs) lub wcisnąć ikonę uruchamiania programu latex (WinShell). Następnie wybrać z menu CommandView DVI (XEmacs), lub wcisnąć ikonę podglądu DVI (WinShell). Pierwsze uruchomienie windvi zazwyczaj automatycznie generuje wymagane fonty ekranowe. Po kilku sesjach komunikaty dotyczące generowania fontów staną się rzadsze.

Wskazówka: jeśli program latex nie może znaleźć pliku do przetwarzania, naciśnięcie Ctrl-Z spowoduje natychmiastowe zakończenie jego pracy.

6.10. Drukowanie

Drukowanie bezpośrednio z programu Windvi odbywa się z wykorzystaniem uniwersalnego sterownika druku systemu Windows. Z definicji powinien być on zgodny z większością drukarek, jednakże ma on tendencję do tworzenia olbrzymich plików kolejek (spool) i niektóre (starsze) wersje Windows po prostu tego nie akceptują. Zaletą sterownika jest jedynie możliwość obsługi grafik BMP i WFM. Stosując metodę druku via sterownik Windows należy prawidłowo ustawić parametry rozdzielczości (patrz podrozdział 6.8.4), w przeciwnym wypadku otrzymany wydruk może być przeskalowany (np. drukując w rozdzielczości 600dpi na drukarce 300dpi otrzymamy niespodziewanie 1/4 zamierzonego rozmiaru wydruku).

Drukowanie znacznie szybsze i bardziej niezawodne zapewni konwersja pliku .dvi do .ps programem Dvips i wykorzystanie GSView. Z menu Plik należy wybrać Drukuj, co wyświetli okno dialogowe z szeregiem opcji. Gdy mamy drukarkę PostScriptową, należy wybrać PostScript printer. Drukowanie na drukarkach bez interpretera PostScript wymaga zaznaczenia opcji Ghostscript device (w sekcji „Print Method” okna) i wybrania przyciskiem po prawej stronie odpowiedniego urządzenia.

6.11. WinShell

Jeśli nie decydujemy się na rozbudowany (ale i bardzo silny) edytor XEmacs, możemy samodzielnie zainstalować prosty i łatwy w obsłudze edytor WinShell. Znajdziemy go na płytkach w katalogu support/WinShell. Wystarczy dwukrotnie kliknąć klawiszem myszy na znajdującym się tam pliku .exe. Program uruchamiamy z menu Start bądź z ikony/skrótu na pulpicie. Dostosowanie do polskiej wersji Windows wymaga, prócz określenia języka dla menu i komunikatów, użycia menu Opcje (Options) -> Font -> Zmień i wyboru w wyświetlonym oknie Skrypt napisu Europa Środkowa. Dzięki temu wpisywane za pomocą prawego klawisza Alt polskie znaki diakrytyczne będą prawidłowo wyświetlane.

Aby skonfigurować uruchamianie programów otwieramy menu Options -> Program Calls.

Wciskając przycisk OK zatwierdzamy zmiany.

Instalacja programu ustawia w Windows skojarzenie plików .tex z uruchamianiem WinShell. Dopóki nie zamierzamy korzystać z innego edytora (jak WinEdt lub Emacs) jest to poprawne.

WinShell posiada pomoc, dostępną po naciśnięciu symbolu ? na belce z narzędziami.

6.11.1. Użycie plików „projektu”

Wielokrotnie mamy do czynienia z dokumentami składającymi się z wielu części. Najwygodniej gdy są one zapisane w odrębnych plikach. WinShell umożliwia utworzenie pliku projektu (Project file), w którym deklarujemy poszczególne części większego dokumentu. Nazwy pliku projektu, traktowanego jako główny edytowany plik (Main file), oraz plików części są wyświetlane w lewym oknie edytora. Dwukrotne kliknięcie myszą na nazwie pliku pozwala na szybki wybór i wyświetlenie potrzebnego pliku w głównym oknie edytora. Naciśnięcie ikony LaTeX na belce narzędziowej uruchamia zawsze przetwarzanie głównego pliku, bez względu na to który plik jest aktualnie wyświetlany.

Na belce narzędziowej mamy dodatkowe przyciski pozwalające wyłączyć lub włączyć wyświetlanie okna projektu (po lewej stronie) i okna zapisu sesji (log) – na dole. Gdy plik projektu nie jest używany, lewą część okna można zamknąć, wykorzystując całą szerokość ekranu dla edytowanego pliku.

6.11.2. Drukowanie z WinShell na drukarce PostScriptowej

Ikona Dvips belki narzędziowej uruchamia program, który wynik pracy zapisuje zwykle w pliku .ps. Oglądanie i/lub drukowanie takiego pliku wymaga uruchomienia GSView. WinShell pozwala zdefiniować wygodne wywołanie polecenia dvips, które wynik przetwarzania wyśle od razu do drukarki posiadającej interpreter PostScript. Przykładowo, dla drukarki o nazwie vclw, postępowanie będzie następujące:

  1. Deklaracja danej drukarki w programie:
  2. Dodanie polecenia „Drukuj” do belki narzędziowej:

Uruchamianie polecenia zostało zdefiniowane. Aby drukować bezpośrednio na drukarce wystarczy teraz nacisnąć guzik z napisem „Drukuj”.

6.12. Wskazówki dla użytkowników Win32

6.12.1. Różne wcielenia Win32

To, co nazywamy Win32 nie jest właściwie systemem operacyjnym a jedynie zbiorem funkcji, z których wiele (ok. 12000) można użyć do pisania programów dla różnych systemów operacyjnych rodziny Windows. Spotykamy różne wersje Windows:

Win9x mają możliwość uruchamiania jednocześnie programów 16- i 32-bitowych, ale ponieważ sam system nie jest w całości napisany dla trybu 32-bitowego i nie posiada ochrony pamięci, programy 16-bitowe mogą nadpisywać część pamięci wykorzystywanej przez system! Niektóre elementy systemu, jak GDI (Graphical Device Interface) zarządzają w sposób ograniczony zasobami (bitmapy, fonty itp.) gdy wszystkie uruchomione programy jednocześnie korzystają z tych zasobów. Wszystkie nagłówki bitmap dostępnych w tym samym czasie nie mogą przekroczyć granicy 64KB. Jest to przyczyna spotykanego często gwałtownego spadku wydajności systemu i jego zawieszania.

NT i W2K i XP nie posiadają takich ograniczeń. Są to systemy w pełni wielozadaniowe i z ochroną pamięci. Wydają się bardziej stabilne, ponieważ lepiej zarządzają pamięcią, posiadają lepszy system plików itp.

6.12.2. Wiersz poleceń

Wielu użytkowników może zadać pytanie: „po co używać wiersza poleceń w systemie Windows?”. Dobre pytanie! Problem ma naturę bardziej ogólną. Otóż nie wszystkie zadania daje się wykonać jedynie przy użyciu interfejsu graficznego (GUI). Wiersz poleceń dostarcza wielu możliwości rasowego programowania (zakładając posiadanie przyzwoitego interpretera poleceń).

TEX jest programem działającym wsadowo (batch), a nie interakcyjnie: wylicza najlepszy wygląd każdej strony, rozwiązuje odesłania itp. Taki charakter pracy możliwy jest jedynie podczas globalnego przetwarzania dokumentu, nie ma tu możliwości interakcji. Oznacza to, że program TEX powinien być używany z linii poleceń. W istocie nie jest to takie złe. Programy działające wsadowo, przeznaczone do skomplikowanych zadań, są zwykle lepiej opracowane i pozbawione błędów, ponieważ nie są związane z graficznym interfejsem. Do uruchamiania takich programów można zawsze opracować interfejs graficzny, przekazujący zadanie do wykonania i inne parametry. Przykładem takiego właśnie działania może być graficzny edytor (patrz punkt 6.11).

Niemniej jednak częste są sytuacje, gdy przydaje się możliwość uruchamiania programów bezpośrednio z linii poleceń, np. diagnostyka błędów w wypadku wystąpienia problemów (patrz punkt 7.2.4 na str. 58).

Win9x
linia poleceń dostępna jest z menu Start->Programy->Tryb MS DOS albo Start->Uruchom: należy tu wpisać command.com.
NT, 2K, XP
dostęp do linii poleceń z menu Start->Akcesoria-> Command Prompt; można także w menu Start->Uruchom wpisać cmd.exe co uruchomi interpreter poleceń (wyjaśnia to, dlaczego trudno w systemach opartych na NT mówić o „oknie DOS”).

6.12.3. Separatory ścieżek

API Win32 obsługuje zarówno /, jak i \ jako separatory ścieżek. Niestety interpretery poleceń obsługują wyłącznie \, a więc odwołując się do programu w linii poleceń możemy użyć tylko tego znaku (wynika to z potrzeby kompatybilności: znak / używany jest często jako prefiks dodatkowego parametru). Gdy nazwa ścieżki jest używana przez program, oba separatory mogą być stosowane wymiennie, a nawet mieszane.

Nie należy się dziwić gdy często spotkamy ścieżki pisane w konwencji Unix (a więc separowane znakiem /). fpTEX jest implementacją Web2C i z zasady musi być zgodny między różnymi platformami. Dlatego właśnie np. wszystkie pliki konfiguracyjne stosują konwencję uniksową notacji ścieżek.

6.12.4. System plików

Najgorszą cechą Win9x z punktu widzenia systemu TEX jest prawdopodobnie system plików zwany FAT. TEX używa bardzo wielu niewielkich plików (1–3KB) i na współczesnych dyskach o wielkiej pojemności każdy taki plik potrafi faktycznie zająć nawet 32KB. Wykorzystanie dysku jest więc bardzo nieefektywne zaś instalacja wszystkich plików z CD może w rzeczywistości zająć wielokrotnie więcej miejsca niż łączna objętość plików.

Bardziej nowoczesne systemy plików, takie jak NTFS, dostępne są w nowszych wersjach Windows są pozbawione ujemnych cech FAT: minimalna jednostka alokacji dla pliku to zwykle 4KB, choć w systemie NTFS można ją zredukować nawet do 512 bajtów.

6.12.5. Jak dodać katalog do zmiennej PATH

Większość programów korzysta ze zmiennych, którym można przypisać pewne wartości. Zestaw takich przypisań (par: zmienna-wartość) nazywamy środowiskiem. Każdy uruchomiony program korzysta z kopii środowiska i może w ramach tej kopii zmieniać przypisania niektórych zmiennych (nie są one dostępne dla innych uruchomionych równolegle programów). Instalator systemu TEX dla Win32 konieczną konfigurację środowiska przeprowadza automatycznie. Warto jednak wiedzieć, jak konfigurować środowisko ręcznie.

PATH jest specjalną zmienną wykorzystywaną do lokalizowania programów w systemie. Poszczególne wersje Windows mają różne procedury deklarowania PATH:

Windows 95/98
zmienna PATH jest tu deklarowana w pliku autoexec.bat (znajduje się on w głównym katalogu dysku startowego). Po wczytaniu pliku do edytora (np. Notatnik, WinShell) należy odszukać wiersz z napisem PATH= i z szeregiem ścieżek oddzielanych separatorem ; (średnik). Można dopisać kolejne ścieżki wskazujące położenie programów, np.
  PATH=c:\windows;c:\windows\system;c:\TeXLive2005\bin\win32

Proszę zauważyć, że ścieżki zawierające spację wymagają ujęcia w parę znaków ". Poczynione zmiany będą aktywne po restarcie systemu.

Windows ME
należy uruchomić specjalny program c:\windows\system\msconfig.exe i wybrać opcję „Środowisko” (Environment). Po dodaniu lub modyfikacji zmiennej należy ponownie uruchomić system.
Windows NT/2K/XP
należy wybrać menu Start -> Settings -> Panel Sterowania, w opcji „System” otworzyć zakładkę „Zaawansowane”, następnie przycisk „Zmienne środowiskowe” i tu modyfikować deklaracje zmiennych, zgodnie z posiadanymi uprawnieniami. Istniejącą zmienną PATH modyfikujemy naciskając lewy klawisz myszy na napisie PATH. Pole „Wartość” (Value) pokaże listę katalogów rozdzielonych separatorem ;. Należy tu dopisać katalog zawierający programy środowiska TEX-owego (np. c:\TeXLive2005\bin\win32). Gdy brak jest zmiennej PATH, należy kliknąć pole „Zmienna”, wpisać PATH, przenieść kursor do pola „Wartość” i wpisać tu odpowiedni katalog.

Uwaga: przed zamknięciem okna dialogowego należy zatwierdzić zmiany przyciskiem „Zastosuj”.

Dokonane zmiany można sprawdzić otwierając konsolę i uruchamiając polecenie:

  set NAZWA_ZMIENNEJ

co wyświetli aktualnie aktywne wartości dla danej zmiennej.

6.12.6. „Maszyny” TEX

Z dokumentacji Web2C można wyczytać, że różnie nazwane programy wykorzystują tę samą „maszynę”, np. tex.exe latex.exe są dokładnymi kopiami tego samego programu, ale uruchamiają się z różnymi plikami formatu, zgodnie z nazwą podaną w wywołaniu.

W systemach Unix cecha ta jest zaimplementowana poprzez tzw. dowiązanie symboliczne, co pozwala na zaoszczędzenie wiele miejsca na dysku: ten sam program uruchamiany jest z wieloma formatami.

Interfejs aplikacji systemów Windows (API) nie zna pojęcia dowiązania. Aby niepotrzebnie nie zajmować miejsca na dysku, zastosowano tu pomysł umieszczenia głównej „maszyny” TEX w pliku dynamicznie wiązanej biblioteki (DLL). Z kolei programy uruchomieniowe (.exe) umieszczono w niewielkich plikach, przekazujących przez nazwę parametr wywołania (nazwę formatu). Na dysku znajdziemy zatem:

18/09/2005  14:19                3 584 latex.exe
18/09/2005  14:19                3 584 pdfetex.exe
18/09/2005  14:19              524 288 tl90pdfetex.dll
Każdy z tych identycznych programów (latex.exe, mex.exe itp.) korzysta ze wspólnego pliku tl90pdfetex.dll. Podobne rozwiązanie zastosowano dla grupy programów mktex*.exe, z których każdy jest powiązany z biblioteką mktex.dll. W dystrybucji dostępny jest program irun.exe, który tworzy w systemach Win32 odpowiedniki dowiązań systemu Unix.

6.13. W razie problemów

6.13.1. Co zrobić gdy latex nie może znaleźć potrzebnych plików?

Należy użyć programu kpsewhich, który jest narzędziem do diagnostyki wszelkich problemów związanych ze znajdowaniem plików (patrz część 7.2.4 na str. 58).

6.13.2. Co zrobić gdy instalacja nadal nie działa prawidłowo?

Należy odpowiedzieć sobie na szereg pytań:

  1. czy program tex.exe jest w ścieżce wymienionej w zmiennej PATH?
  2. czy zmienna TEXMFCNF jest prawidłowo ustawiona (standardowo c:/TeXLive2005/texmf-var/web2c)?
  3. diagnostyka błędów omówiona została w części 7.2.4.
  4. opis znanych problemów i ewentualne rozwiązania oraz poprawki można znaleźć pod adresem http://www.tug.org/tex-live.html.

Oprogramowanie zawarte na TEX Live jest bardzo złożone i składa się z ponad 250 programów i około 40000 plików różnego pochodzenia. Niesłychanie trudno przewidzieć wszystkie możliwe przyczyny problemów, niemniej jednak dołożymy wszelkich starań aby pomóc je rozwiązać.

7. Instrukcja obsługi systemu Web2C

Web2C to zestaw programów związanych z TEX-em, tj. sam TEX, Metafont, MetaPost, BibTeX itd. Stanowią one rdzeń dystrybucji TEX Live.

Oryginalna implementacja wykonana została przez Tomasa Rokickiego, który w roku 1987 stworzył pierwszy system TEX-to-C, adaptując pliki wymiany (change files) pod Unix-em (pierwotnie były one dziełem Howarda Trickey’a oraz Pavela Curtisa). W czasie gdy Tim Morgan zajmował się systemem, jego nazwa została zmieniona na Web-to-C. W 1990 roku prace nad projektem przejął Karl Berry wraz z dziesiątkami współpracowników, a w roku 1997 pałeczkę przejął Olaf Weber.

Web2C działa na platformach systemowych, takich jak Unix (w tym Mac OS X), Windows 9x/NT/2K/XP i innych. System wykorzystuje oryginalne źródła TEX-owe autorstwa Donalda Knutha oraz inne programy napisane w web i tłumaczy je na kod źródłowy C. Ponadto system udostępnia spory zestaw makr i funkcji stworzonych dla zwiększenia funkcjonalności oryginalnych zasobów oprogramowania związanego z TEX-em. Podstawowymi składnikami systemu są:

bibtex
tworzenie spisów bibliograficznych;
dmp
konwersja troff do MPX (rysunki MetaPost-owe);
dvicopy
modyfikowanie pliku DVI;
dvitomp
konwersja DVI do MPX (rysunki MetaPost-owe);
dvitype
konwersja DVI na plik tekstowy (ASCII);
gftodvi
zamiana fontu GF na plik DVI;
gftopk
zamiana fontu w formacie GF na font spakowany (PK);
gftype
zamiana fontu GF na plik tekstowy (ASCII);
makempx
skład etykiet MetaPost-owych;
mf
generowanie fontów bitmapowych w formacie GF;
mft
skład plików źródłowych Metafont-a;
mpost
tworzenie rysunków oraz diagramów technicznych;
mpto
ekstrakcja etykiet MetaPost-owych;
newer
porównywanie czasów modyfikacji;
patgen
tworzenie wzorców przenoszenia wyrazów;
pktogf
zamiana fontów w formacie PK na fonty GF;
pktype
zamiana fontu PK na plik tekstowy (ASCII);
pltotf
konwersja tekstowej listy właściwości do TFM;
pooltype
wyświetlanie web-owych plików pool;
tangle
konwersja web do języka Pascal;
tex
skład tekstu;
tftopl
konwersja TFM do tekstowej listy właściwości (PL);
vftovp
konwersja fontów wirtualnych do wirtualnej listy właściwości (VPL);
vptovf
konwersja wirtualnej listy właściwości do fontów wirtualnych;
weave
konwersja web do TEX-a.

Dokładny opis funkcji oraz składni tych programów zawarty jest w dokumentacji poszczególnych pakietów samego Web2C. Jednak do optymalnego wykorzystania instalacji Web2C pomocna będzie znajomość kilku zasad rządzących całą rodziną programów.

Wszystkie programy obsługują standardowe opcje GNU:

--help   
podaje podstawowe zasady użytkowania;
--verbose
podaje dokładny raport z działania programu;
--version
podaje informację o wersji, po czym kończy działanie programu.

W celu lokalizacji plików programy Web2C używają biblioteki do przeszukiwania ścieżek zwanej Kpathsea. Dla optymalizacji przeszukiwania TEX-owego drzewa podkatalogów biblioteka ta używa kombinacji zmiennych środowiskowych oraz kilku plików konfiguracyjnych. Web2C potrafi obsługiwać jednocześnie więcej niż jedno drzewo podkatalogów, co jest użyteczne w przypadku, gdy chce się przechowywać standardową dystrybucję TEX-a jak i lokalne rozszerzenia w dwóch różnych drzewach katalogów. Aby przyspieszyć poszukiwanie plików, katalog główny każdego drzewa ma swój plik ls-R, zawierający pozycje określające nazwę i względną ścieżkę dla wszystkich plików zawartych w tym katalogu.

7.1. Przeszukiwanie ścieżek przez Kpathsea

Opiszemy najpierw ogólny mechanizm przeszukiwania ścieżek przez bibliotekę Kpathsea.

Tym, co nazywamy ścieżką przeszukiwania, jest rozdzielona dwukropkami lub średnikami lista elementów ścieżki, które zasadniczo są nazwami podkatalogów. Ścieżka przeszukiwania może pochodzić z (kombinacji) wielu źródeł. Przykładowo, aby odnaleźć plik „my-file” w ścieżce „.:/dir”, Kpathsea sprawdza czy istnieje dany element ścieżki w następującej kolejności: najpierw ./my-file, potem /dir/my-file, zwracając pierwszy odnaleziony (lub możliwie wszystkie).

Aby optymalnie zaadaptować się do konwencji wszystkich systemów operacyjnych, na systemach nieunixowych Kpathsea może używać jako separatorów nazw ścieżek znaków innych niż dwukropek („:”) oraz „ciach” („/”).

W celu sprawdzenia konkretnego elementu p ścieżki, Kpathsea najpierw sprawdza czy zbudowana wcześniej baza danych (patrz „Baza nazw plików” na stronie 54) odnosi sie do p, tj. czy baza danych znajduje się w podkatalogu z prefiksem p. Jeżeli tak, to specyfikacja ścieżki jest porównywana z zawartością bazy.

Jeśli baza danych nie istnieje, lub nie odnosi się do danego elementu ścieżki, albo też nie zawiera elementów zgodnych, przeszukiwany jest system plików (jeżeli nie zostało to zabronione przez specyfikację rozpoczynającą się od „!!” oraz jeżeli poszukiwany plik musi istnieć). Kpathsea konstruuje listę podkatalogów, które korespondują z danym elementem ścieżki, a następnie sprawdza w każdym z nich czy nie ma tam poszukiwanego pliku.

Warunek mówiący, że „plik musi istnieć” dotyczy np. plików „.vf” i plików dołączanych TEX-owym poleceniem \openin. Takiego pliku może nie być (np. cmr10.vf), błędne byłoby zatem poszukiwanie go na dysku. Jeśli więc zapomnisz o aktualizacji ls-R po instalacji nowego pliku „.vf”, nie zostanie on odnaleziony. Każdy element ścieżki sprawdzany jest w następującej kolejności: najpierw w bazie danych, potem na dysku. Jeżeli plik się znajdzie, przeszukiwanie zostanie zatrzymane i zwrócony zostanie wynik.

Ponieważ najprostszym i najbardziej powszechnym elementem ścieżki jest nazwa katalogu, Kpathsea korzysta z dodatkowych możliwości w przeszukiwaniu ścieżek: wielowarstwowych wartości domyślnych, zmiennych środowiskowych, wartości pliku konfiguracyjnego, lokalnych podkatalogów użytkownika oraz rekursywnego przeszukiwania podkatalogów. Można więc powiedzieć, że Kpathsea rozwija element ścieżki, tzn. transformuje wszystkie specyfikacje do podstawowej nazwy lub nazw katalogów. Jest to opisane w kolejnych akapitach, w kolejności w jakiej ma to miejsce.

Trzeba zauważyć, że jeżeli nazwa poszukiwanego pliku jest absolutna lub jawnie względna, tj. zaczyna się od „/” lub „./” lub „../”, Kpathsea ogranicza się do sprawdzenia czy ten plik istnieje.

7.1.1. Źródła ścieżek

Nazwa przeszukiwanej ścieżki może pochodzić z wielu źródeł. Oto kolejność, w jakiej Kpathsea ich używa:

  1. Zmienna środowiskowa ustawiana przez użytkownika, np. TEXINPUTS. Zmienne środowiskowe z dołączoną kropką i nazwą programu zastępują inne, np. jeżeli „latex” jest nazwą uruchomionego programu, wtedy zamiast TEXINPUTS wykorzystana zostanie zmienna TEXINPUTS.latex.
  2. Plik konfiguracyjny konkretnego programu, np. linia „S /a:/b” w pliku config.ps programu dvips.
  3. Plik konfiguracyjny Kpathsea texmf.cnf, zawierający taką linię, jak „TEXINPUTS=/c:/d” (patrz poniżej).
  4. Wartości domyślne dla uruchamianych programów.

Każdą z tych wartości dla danej ścieżki przeszukiwania można zobaczyć, używając opcji diagnostyki błędów (patrz „Diagnostyka błędów” na stronie 58).

7.1.2. Pliki konfiguracyjne

Kpathsea szuka ścieżek przeszukiwania i innych definicji w plikach konfiguracyjnych o nazwach texmf.cnf. Ścieżka przeszukiwania używana do znajdowania tych plików określana jest zmienną TEXMFCNF (domyślnie taki plik znajduje się w podkatalogu texmf/web2c). Czytane będą wszystkie pliki texmf.cnf w ścieżce przeszukiwania, a definicje we wcześniejszych plikach zastąpią te w późniejszych. Tak więc w ścieżce .:$TEXMF, wartości pochodzące z ./texmf.cnf zastąpią te z $TEXMF/texmf.cnf.

Dociekliwy czytelnik może być zainteresowany jak same programy znajdują plik texmf.cnf, skoro nie jest obowiązkowe deklarowanie specyficznej zmiennej środowiskowej systemu. Otóż położenie domyślne jest wkompilowane w programy jako względne do ich położenia (określanego, jak wiemy, w ścieżce specyfikowanej przez $PATH): ../../texmf/web2c/ bądź ../texmf/web2c/. Jeśli jawnie deklarujemy zmienną TEXMFCNF, wymagane jest podanie bezwzględnej ścieżki.

Czytając zamieszczony poniżej opis formatu pliku texmf.cnf warto przeglądać jego zawartość. Położenie aktywnego pliku znajdziemy za pomocą polecenia kpsewhich texmf.cnf.

Fragment pliku konfiguracyjnego ilustrujący większość powyższych cech :

  TEXMF              = {$TEXMFLOCAL,!!$TEXMFMAIN}
  TEXINPUTS.latex    = .;$TEXMF/tex/{latex,generic;}//
  TEXINPUTS.fontinst = .;$TEXMF/tex//;$TEXMF/fonts/afm//
  % e-TeX related files
  TEXINPUTS.elatex   = .;$TEXMF/{etex,tex}/{latex,generic;}//
  TEXINPUTS.etex     = .;$TEXMF/{etex,tex}/{eplain,plain,generic;}//

7.1.3. Rozwijanie ścieżek

Kpathsea rozpoznaje w ścieżkach przeszukiwania pewne specjalne znaki oraz konstrukcje, podobne do tych dostępnych w powłokach Unix. Jako ogólny przykład: złożona ścieżka ~$USER/{foo,bar}//baz rozwija się do wszystkich podkatalogów pod katalogami foo bar w katalogu głównym $USER, które zawierają katalog lub plik baz. Rozwinięcia te opisane są w poniższych podrozdziałach.

7.1.4. Rozwijanie domyślne

Jeżeli ścieżka przeszukiwania największego uprzywilejowania (patrz „Źródła ścieżek” na stronie 48) zawiera dodatkowy dwukropek (np. na początku, na końcu lub podwójny) to Kpathsea wstawia w tym miejscu następną zdefiniowaną w hierarchii uprzywilejowania ścieżkę przeszukiwania. Jeżeli ta wstawiona ścieżka ma dodatkowy dwukropek, dzieje się dalej to samo. Przykładowo, jeżeli ustawić zmienną środowiskową

> setenv TEXINPUTS /home/karl:
oraz wartość TEXINPUTS pobraną z texmf.cnf

  .:$TEXMF//tex
końcową wartością użytą w przeszukiwaniu będzie:

  /home/karl:.:$TEXMF//tex

Ponieważ nieużytecznym byłoby wstawiać wartość domyślną w więcej niż jedno miejsce, Kpathsea zmienia tylko jeden dodatkowy „:” i pozostawia inne bez zmian. Kpathsea najpierw szuka dwukropków na początku linii, potem na końcu, a następnie podwójnych.

7.1.5. Rozwijanie nawiasów

Użyteczną cechą jest możliwość rozwijania nawiasów, co oznacza, że np. v{a,b}w rozwija się do vaw:vbw. Możliwe jest zagnieżdżanie nawiasów. Funkcja ta może być użyta do zaimplementowania różnych hierarchii TEX-owych przez przypisanie listy nawiasów do $TEXMF. Przykładowo, w pliku texmf.cnf znaleźć można następującą definicję:

    TEXMF = {$TEXMFHOME,$TEXMFLOCAL,!!$TEXMFVAR,!!$TEXMFMAIN}

Używając jej można następnie napisać coś w rodzaju:

    TEXINPUTS = .;$TEXMF/tex//

co oznacza, że po szukaniu w katalogu bieżącym przeszukane będą kolejno $TEXMFHOME/tex, $TEXMFLOCAL/tex, $TEXMFVAR/tex $TEXMFMAIN/tex (wszystkie wraz z katalogami niższego poziomu; dwie ostatnie ścieżki wyłącznie na podstawie zawartości pliku ls-R). Jest to wygodny sposób dla uruchamiania dwóch równoległych struktur TEX-owych, jednej „zamrożonej” (np. na CD), a drugiej ciągle uaktualnianej nowymi, pojawiającymi się wersjami. Używając zmiennej $TEXMF we wszystkich definicjach jest się pewnym, że najpierw przeszukiwane jest drzewo uaktualnione.

7.1.6. Rozwijanie podkatalogów

Dwa lub więcej kolejnych „ciachów” („/”) w elemencie ścieżki, występujących po nazwie katalogu d, zastępowany jest przez wszystkie podkatalogi d, najpierw podkatalogi znajdujące się bezpośrednio pod d, potem te pod powyższymi i tak dalej. Na każdym etapie kolejność, w jakiej przeszukiwane są katalogi, jest nieokreślona.

Jeśli wyszczególni się człony nazwy pliku po „//”, uwzględnione zostaną tylko te podkatalogi, które zawierają powyższe człony. Na przykład „/a//b” rozwija się do katalogów /a/1/b, /a/2/b, /a/1/1/b itd., ale nie do /a/b/c czy /a/1.

Możliwe jest wielokrotne użycie „//” w ścieżce, jednakże „//” występujące na początku ścieżki nie jest brane pod uwagę.

7.1.7. Lista znaków specjalnych i ich znaczeń – podsumowanie

Poniższa lista podsumowuje znaczenie znaków specjalnych w plikach konfiguracyjnych.

:
znak rozdzielający w specyfikacji ścieżki; umieszczony na początku lub na końcu ścieżki zastępuje domyślne rozwinięcie ścieżki;
;
znak rozdzielający dla systemów nieUnix-owych (działa tak jak „:”);
$
rozwijanie zmiennej;
~
oznacza katalog główny użytkownika;
{...}
rozwijanie nawiasów, np. a{1,2}b zmieni się w a1b:a2b;
//
rozwijanie podkatalogów (może wystąpić gdziekolwiek w ścieżce, poza jej początkiem);
%
początek komentarza, trwającego do końca linii;
\
znak kontynuacji (pozwala na przełamanie wiersza z wyrażeniem);
!!
przeszukiwanie tylko bazy danych, a nie dysku.

7.2. Bazy nazw plików

Dla celów przeszukiwania Kpathsea stara się zminimalizować dostęp do dysku. Niemniej jednak, w przypadku instalacji ze zbyt dużą liczbą katalogów, przeglądanie każdego możliwego katalogu w poszukiwaniu danego pliku może zabierać sporo czasu (ma to miejsce zwłaszcza, jeżeli przeszukać trzeba setki katalogów z fontami). Dlatego też Kpathsea może używać zewnętrznego pliku z „bazą danych” o nazwie ls-R, który to zawiera przypisania plików do katalogów. Unika się w ten sposób potrzeby czasochłonnego przeszukiwania dysku.

Drugi plik z bazą danych – aliases – pozwala na nadawanie dodatkowych nazw plikom zawartym w ls-R. Może to być pomocne do adaptacji do DOS-owej konwencji „8.3” nazewnictwa plików w plikach źródłowych.

7.2.1. Baza nazw plików

Jak to wytłumaczono powyżej, plik zawierający główną bazę nazw plików musi nosić nazwę ls-R. W katalogu podstawowym każdej hierarchii TEX-owej (domyślnie $TEXMF), którą chcemy włączyć w mechanizm przeszukiwania, umieszczać można po jednym pliku ls-R; w większości przypadków istnieje tylko jedna hierarchia. Kpathsea szuka pliku ls-R w ścieżce TEXMFDBS.

Najlepszym sposobem stworzenia i utrzymywania pliku ls-R jest uruchomienie skryptu mktexlsr, będącego składnikiem dystrybucji. Jest on wywoływany przez różne skrypty typu „mktex...”. W zasadzie skrypt ten jedynie wykonuje polecenie

cd /your/texmf/root && ls -LAR ./ >ls-R
zakładając, że polecenie ls danego systemu utworzy właściwy format strumienia wyjściowego (GNU ls działa prawidłowo). Aby mieć pewność, że baza danych jest zawsze aktualna, wygodnie jest przebudowywać ją regularnie za pomocą demona cron.

Jeśli pliku nie ma w bazie danych, Kpathsea domyślnie przechodzi do przeszukiwania dysku. Jeżeli jednak dany element ścieżki zaczyna sie od „!!”, w poszukiwaniu tego elementu sprawdzona zostanie jedynie baza danych, a nigdy dysk.

7.2.2. kpsewhich – program do przeszukiwania ścieżek

Przeszukiwanie ścieżek przez program kpsewhich jest niezależne od jakiejkolwiek aplikacji. Może on być przydatny jako rodzaj programu find, za pomocą którego lokalizować można pliki w hierarchiach TEX-owych (jest on używany intensywnie w skryptach „mktex...” tej dystrybucji).

> kpsewhich opcje... nazwa-pliku...
Parametry wyszczególnione w „opcje” mogą zaczynać się zarówno od „-” jak i od „--”, i dozwolony jest każdy jednoznaczny skrót.

Kpathsea traktuje każdy argument nie będący parametrem jako nazwę pliku i zwraca pierwszą odnalezioną nazwę. Nie ma parametru nakazującego zwracanie wszystkich nazw plików o określonej nazwie (w tym celu można wykorzystać Unix-owy program „find”).

Ważniejsze parametry opisane są poniżej.

--dpi=num

Ustaw rozdzielczość na „num”; ma to tylko wpływ na przeszukiwanie fontów „gf” i „pk”. Dla zgodności z dvips parametr „-D” działa identycznie. Domyślną wartością jest 600.
--format=nazwa

Ustawienie formatu (typu pliku) przeszukiwania na „nazwa”. Domyślnie format odgadywany jest z nazwy pliku. Dla formatów, które nie mają przydzielonego jednoznacznego rozszerzenia, takich jak niektóre pliki MetaPost-owe czy pliki konfiguracyjne dvips-a, należy wyszczególnić nazwę, których listę wyświetli uruchomienie kpsewhich --help.
--mode=napis

Ustaw nazwę trybu na „napis”; dotyczy to jedynie szukania fontów „gf” oraz „pk”. Brak jest wartości domyślnej – odnaleziony zostanie dowolny wyszczególniony tryb.
--must-exist

Zrób wszystko co możliwe aby odnaleźć pliki, włączając w to przede wszystkim przeszukanie dysku. Domyślnie, w celu zwiększeniu efektywności działania, sprawdzana jest tylko baza ls-R.
--path=napis

Szukaj w ścieżce „napis” (rozdzielonej, jak zwykle, dwukropkami), zamiast zgadywać ścieżkę przeszukiwania z nazwy pliku. „//” i wszystkie zwykłe rozszerzenia są możliwe. Parametry „--path” oraz „--format” wzajemnie się wykluczają.
--progname=nazwa

Ustaw nazwę programu na „nazwa”. Może to mieć wpływ na ścieżkę przeszukiwania poprzez „.program” w plikach konfiguracyjnych. Ustawieniem domyślnym jest „kpsewhich”.
--show-path=nazwa

Pokazuje ścieżkę używaną do poszukiwania plików typu „nazwa”. Użyte może być zarówno rozszerzenie („.pk”, „.vf”, etc.), jak i nazwa pliku, tak jak w przypadku parametru „--format”.
--debug=num

ustawia parametry wykrywania błędów na „num”.

7.2.3. Przykłady użycia

Przyjrzyjmy sie teraz jak działa Kpathsea.

> kpsewhich article.cls
/usr/local/texmf-dist/tex/latex/base/article.cls
Szukamy pliku article.cls. Ponieważ rozszerzenie „.cls” jest jednoznaczne, nie musimy zaznaczać, że poszukujemy pliku typu „tex” (katalogi plików źródłowych TEX-a). Znajdujemy go w podkatalogu tex/latex/base pod katalogiem nadrzędnym „texmf-dist”. Podobnie wszystkie poniższe pliki odnajdywane są bezproblemowo dzięki swoim jednoznacznym rozszerzeniom:

> kpsewhich array.sty
/usr/local/texmf-dist/tex/latex/tools/array.sty
> kpsewhich latin1.def
/usr/local/texmf-dist/tex/latex/base/latin1.def
> kpsewhich size10.clo
/usr/local/texmf-dist/tex/latex/base/size10.clo
> kpsewhich small2e.tex
/usr/local/texmf-dist/tex/latex/base/small2e.tex
> kpsewhich tugboat.bib
/usr/local/texmf-dist/bibtex/bib/beebe/tugboat.bib

(ostatni plik to BibTeX-owa baza bibliograficzna dla artykułów TUGBoat).

> kpsewhich cmr10.pk
Pliki czcionek bitmapowych typu .pk używane są przez sterowniki, takie jak dvips czy xdvi. W tym wypadku nie zostaną zwrócone żadne rezultaty przeszukiwania, ponieważ w systemie brak gotowych wygenerowanych czcionek „.pk” Computer Modern (wynika to z faktu używania w TEX Live fontów PostScript-owych Type1).

> kpsewhich wsuipa10.pk
   /usr/local/texmf-var/fonts/pk/ljfour/public/wsuipa/wsuipa10.600pk
Dla tych fontów (alfabetu fonetycznego) musieliśmy wygenerować pliki „.pk”, a ponieważ domyślnym Metafont-owym trybem naszej instalacji jest ljfour z podstawową rozdzielczością 600dpi, zwracany jest taki właśnie rezultat.

> kpsewhich -dpi=300 wsuipa10.pk
W tym wypadku, kiedy zaznaczamy, że interesuje nas rozdzielczość 300dpi (-dpi=300), widzimy, że taka czcionka nie jest dostępna w naszej instalacji. Program taki jak dvips czy xdvi zatrzymałby się, aby utworzyć pliki .pk w wymaganej rozdzielczości (używając skryptu mktexpk).

Zwrócimy teraz naszą uwagę na pliki nagłówkowe i konfiguracyjne programu dvips. Najpierw szukamy pliku PostScript-owego prologu tex.pro, wykorzystywanego dla potrzeb TEX-a. Drugi przykład pokazuje poszukiwanie pliku konfiguracyjnego config.ps, zaś trzeci – szukanie pliku mapy czcionek PostScriptowych psfonts.map (począwszy od obecnej edycji, pliki .map .enc mają własne reguły przeszukiwania ścieżek i zmienione położenie w ramach drzew texmf). Ponieważ rozszerzenie „.ps” nie jest jednoznaczne, musimy zaznaczyć wyraźnie jaki typ jest wymagany dla pliku config.ps („dvips config”).

> kpsewhich tex.pro
/usr/local/texmf/dvips/base/tex.pro
> kpsewhich --format="dvips config" config.ps
/usr/local/texmf-var/dvips/config/config.ps
> kpsewhich psfonts.map
/usr/local/texmf-var/fonts/map/dvips/updmap/psfonts.map

Następnie przyjrzymy się bliżej plikom pomocniczym fontów Quasi Times (zawierają one m.in. poprawne polskie znaki diakrytyczne). Pierwszy plik którego szukamy, to plik konfiguracyjny, zawierający nazwę pliku z przemapowaniem fontów:

> kpsewhich --format="dvips config" config.qtm
/usr/local/texmf-dist/dvips/qfonts/config.qtm
W pliku tym znajduje się wiersz:

  p +qtm.map
wskazujący na plik qtm.map, który chcemy zlokalizować w następnej kolejności:

> kpsewhich --format=map qtm.map
/usr/local/texmf-dist/fonts/map/dvips/qfonts/qtm.map
Plik z przemapowaniem definiuje nazwy czcionek PostScriptowych Type 1 w zestawie fontów Quasi Times, zaś jego zawartość wygląda następująco (pokazane są tylko fragmenty wierszy):

  qtmr  QuasiTimes-Regular  ... <qtmr.pfb
  qtmri QuasiTimes-Italic ... <qtmri.pfb
  qtmb  QuasiTimes-Bold  ... <qtmb.pfb
  qtmbi QuasiTimes-BoldItalic ... <qtmbi.pfb
Używając przeszukiwania plików z fontami Type1, znajdźmy font QuasiTimes-Regular qtmr.pfb w drzewie katalogów texmf:

> kpsewhich qtmr.pfb

/usr/local/texmf-dist/fonts/type1/qfonts/qtmr.pfb

Powyższe przykłady pokazują, jak łatwo można znajdować lokalizację danego pliku. Ważne jest to zwłaszcza wówczas, gdy istnieje podejrzenie, że gdzieś zawieruszyła się zła wersja jakiegoś pliku; kpsewhich pokaże tylko pierwszy napotkany plik.

7.2.4. Diagnostyka błędów

Czasami niezbędne są informacje o tym, jak program radzi sobie z odniesieniami do plików. Aby dało się to wykonywać w wygodny sposób, Kpathsea oferuje różne poziomy diagnostyki błędów:

Wartość -1 ustawia wszystkie powyższe opcje: w praktyce, potrzebując wykryć przyczyny błędów, prawdopodobnie zawsze używać będziesz tych poziomów.

Podobnie, w przypadku programu dvips, ustawiając kombinację przełączników wykrywania błędów, można dokładnie śledzić skąd pochodzą pliki. W wypadku gdy plik nie zostanie odnaleziony, widać, w których katalogach program szukał danego pliku, dzięki czemu można się zorientować w czym problem.

Ogólnie mówiąc, ponieważ programy odwołują się wewnętrznie do biblioteki Kpathsea, opcje wykrywania błędów wybrać można przy użyciu zmiennej środowiskowej KPATHSEA_DEBUG, ustawiając ją na opisaną powyżej wartość (kombinację wartości).

Uwaga dla użytkowników Windows: w systemie tym niełatwo jest przekierować komunikaty programu do pliku. Do celów diagnostycznych można w tym celu ustawić chwilowo zmienne (w oknie DOS/CMD):

  SET KPATHSEA_DEBUG_OUTPUT=err.log
  SET KPATHSEA_DEBUG=-1

Rozważmy na przykład mały LATEX-owy plik źródłowy hello-world.tex, który zawiera co następuje:

    \documentclass{article}
    \begin{document}
    Hello World!
    \end{document}

Ten mały plik używa jedynie fontu cmr10. Przyjrzyjmy się jak dvips przygotowuje plik PostScript-owy (chcemy użyć wersji Type1 fontu Computer Modern, stąd opcja -Pcms).

> dvips -d4100 hello-world -Pcms -o
Mamy tu do czynienia jednocześnie z czwartą klasą wykrywania błędów programu dvips (ścieżki fontowe) oraz z rozwijaniem elementu ścieżki przez Kpathsea (patrz: Dvips Reference Manual, texmf/doc/dvips/dvips.html). Program dvips zaczyna pracę od zlokalizowania potrzebnych mu plików. Najpierw znajduje plik texmf.cnf, który zawiera ścieżki przeszukiwania dla innych plików. Potem znajduje bazę danych ls-R (dla optymalizacji szukania plików), następnie plik aliases, który umożliwia deklarowanie różnych nazw (np. krótkie DOS-owe „8.3” i bardziej naturalne dłuższe wersje) dla tych samych plików. Następnie dvips znajduje podstawowy plik konfiguracyjny config.ps, zanim poszuka pliku z ustawieniami użytkownika .dvipsrc (który w tym wypadku nie zostaje odnaleziony). W końcu dvips lokalizuje plik konfiguracyjny config.cms dla fontów PostScript-owych Computer Modern (jest to inicjowane przez dodanie parametru -Pcms przy uruchamianiu programu). Plik ten zawiera listę plików z „mapami”, które definiują relacje pomiędzy TEX-owymi, PostScript-owymi i systemowymi nazwami fontów.

> more /usr/local/texmf/dvips/config/config.cms
p +bsr.map
p +bakomaextra.map
W ten sposób dvips wyszukuje wszystkie te pliki oraz główny plik z przemapowaniem psfonts.map, który ładowany jest domyślnie (zawiera on deklaracje często używanych fontów PostScript-owych; więcej szczegółów odnośnie PostScript-owych plików przemapowań fontów można znaleźć w ostatniej części rozdziału 7.2.3).

W tym miejscu dvips zgłasza się użytkownikowi:


This is dvips 5.86 Copyright 1999 Radical Eye Software (www.radicaleye.com)
...potem szuka pliku prologu texc.pro:


kdebug:start search(file=texc.pro, must_exist=0, find_all=0,
  path=.:~/tex/dvips//:!!/usr/local/texmf/dvips//:
       ~/tex/fonts/type1//:!!/usr/local/texmf/fonts/type1//).
kdebug:search(texc.pro) => /usr/local/texmf/dvips/base/texc.pro
Po znalezieniu szukanego pliku, dvips podaje datę i czas oraz informuje o generowaniu pliku hello-world.ps. Ponieważ potrzebuje pliku z fontem cmr10, a jest on zadeklarowany jako dostępny, wyświetla komunikat:


TeX output 1998.02.26:1204’ -> hello-world.ps
Defining font () cmr10 at 10.0pt
Font cmr10 <CMR10> is resident.
Teraz trwa poszukiwanie pliku cmr10.tfm, który zostaje znaleziony, a następnie dvips powołuje się na kilka innych plików startowych (nie pokazanych). W końcu przykładowy font Type1 cmr10.pfb zostaje zlokalizowany i dołączony do pliku wynikowego (patrz ostatnia linia):


kdebug:start search(file=cmr10.tfm, must_exist=1, find_all=0,
  path=.:~/tex/fonts/tfm//:!!/usr/local/texmf/fonts/tfm//:
       /var/tex/fonts/tfm//).
kdebug:search(cmr10.tfm) => /usr/local/texmf/fonts/tfm/public/cm/cmr10.tfm
kdebug:start search(file=texps.pro, must_exist=0, find_all=0,
   ...
<texps.pro>
kdebug:start search(file=cmr10.pfb, must_exist=0, find_all=0,
  path=.:~/tex/dvips//:!!/usr/local/texmf/dvips//:
       ~/tex/fonts/type1//:!!/usr/local/texmf/fonts/type1//).
kdebug:search(cmr10.pfb) => /usr/local/texmf/fonts/type1/public/cm/cmr10.pfb
<cmr10.pfb>[1]

7.3. Parametry kontrolujące działanie programów

Inną użyteczną cechą Web2C jest możliwość ustalania wielu parametrów określających wielkość pamięci za pomocą pliku texmf.cnf. Ustawienia wszystkich parametrów znajdują się w części trzeciej pliku. Najważniejszymi zmiennymi są:

main_memory
Całkowita wielkość pamięci dostępnej dla TEX-a, Metafont-a i MetaPost-a. Dla każdego nowego ustawienia tej zmiennej należy wykonać nowy format.
extra_mem_bot
Dodatkowa wielkość pamięci przeznaczonej na „duże” struktury danych TEX-a, takie jak: pudełka, kleje itd.; przydatna zwłaszcza w przypadku korzystania z pakietu PI CTEX.
font_mem_size
Wielkość pamięci przeznaczonej przez TEX-a na informacje o fontach. Jest to mniej więcej ogólna wielkość wczytywanych przez TEX-a plików TFM.
hash_extra
Dodatkowa wielkość pamięci przeznaczonej na tablicę zawierającą nazwy instrukcji. Tablica główna może zmieścić w przybliżeniu 10000 nazw; wielkość ta może okazać się zbyt mała, np. w wypadku obszernej książki zawierającej liczne odsyłacze. Domyślna wartość hash_extra to 50000.

Oczywiście powyższa możliwość nie zastąpi prawdziwej, dynamicznej alokacji pamięci. Jest to jednak niezwykle trudne do zaimplementowania w obecnej wersji TEX-a i dlatego powyższe parametry stanowią praktyczny kompromis, pozwalając na pewną elastyczność.

8. Budowa systemu na nowej platformie Uniksowej

Jeżeli mamy do czynienia z platformą, dla której nie są dostarczone binaria, trzeba będzie skompilować TEX-a oraz towarzyszące mu programy. Nie jest to takie trudne jak się wydaje. Wszystko czego potrzebujemy znajduje się na CD w katalogu source.

Najpierw należy zainstalować główne drzewo plików TEX-owych z CD TEX Live (najlepiej jest wykonać instalację podstawową, bez wybierania binariów systemowych).

8.1. Warunki wstępne

Do skompilowania całego TEX-a i jego programów pomocniczych potrzeba około 100 megabajtów wolnego miejsca na dysku. Potrzebny jest także kompilator ANSI C, oprogramowanie make, skaner leksykalny oraz generator parserów. Programy użytkowe GNU (gcc, GNU make, m4, flex, bison) są najlepiej przetestowanymi na różnych platformach. Prawidłowo powinny pracować gcc-2.7.*, flex-2.4.7 i GNU make-3.72.1 lub nowszy. Istnieje możliwość pracy z innymi kompilatorami C i programami make, wymaga to jednak dobrego zrozumienia zasad tworzenia programów Unixowych, aby móc poradzić sobie z ewentualnymi problemami.

8.2. Konfiguracja

Należy rozpakować źródła ze skompresowanego pliku tar z katalogu source na twardy dysk, a potem przejść do katalogu, do którego zostały one skopiowane. Teraz trzeba zdecydować się, gdzie będzie główny katalog instalacji, np. /usr/TeX lub /usr/local/TeX. Naturalnie, należy użyć tej samej lokalizacji, która została wykorzystana przy instalowaniu głównego drzewa TEX-owego.

Uruchomić configure z linii poleceń:

> ./configure --prefix=/usr/local/TeX

Katalog „prefix” to ten, w którym zainstalowane zostało główne drzewo TEX-owe. Zostanie wykorzystany następujący układ katalogów ($TEXDIR oznacza wybrany powyżej katalog):

$TEXDIR/man strony manuala Uniksowego,
$TEXDIR/share/texmf główne drzewo TEX-owe, zawierające makra itp.,
$TEXDIR/info podręczniki w formacie GNU info,
$TEXDIR/bin/$PLATFORM binaria

Można uniknąć stosowania „share/” przed katalogiem texmf, ponieważ $TEXDIR/share/texmf$TEXDIR/texmf są wykrywane automatycznie przez skrypt configure. W przypadku wybrania innego katalogu, trzeba wyszczególnić ten katalog parametrem --datadir skryptu configure.

Jeżeli nie chcemy używać katalogu $PLATFORM (a więc umieścić binaria bezpośrednio w $TEXDIR/bin), w wywołaniu skryptu configure należy użyć parametru --disable-multiplatform.

Więcej dostępnych parametrów (np. pomijanie pakietów opcjonalnych, takich jak Ω czy e-TEX) można zobaczyć uruchamiając ./configure --help.

8.3. Uruchamianie make

Po upewnieniu się, że nie jest ustawiona zmienna powłoki noclobber, należy napisać

> make world
i ...zaparzyć sobie kawę.

Mogłoby też być użyteczne zapisanie w pliku .log całego procesu kompilacji:

> sh -c "make world >world.log 2>&1" &
Zanim stwierdzimy, że wszystko jest w porządku, warto sprawdzić czy w pliku .log nie ma komunikatów błędów (kiedy polecenie zwraca kod błędu, GNU make zawsze używa sekwencji „***”) i czy utworzone zostały wszystkie binaria:

> cd /usr/local/TeX/bin/i586-pc-linux-gnu
> ls | wc
Oczekiwanym rezultatem jest 242. Polecenie make world jest równoważne z make all install strip. Jeśli do uruchamiania make install potrzebne są specjalne uprawnienia, można uruchomić dwie oddzielne sesje make:

> make all
> su
> make install strip

8.4. Końcowe kroki konfiguracyjne

Należy uaktualnić zmienną PATH o nazwę katalogu zawierającego właśnie zainstalowane binaria (np. /usr/local/TeX/bin/mips-sgi-irix6.3); podobnie postąpić trzeba z MANPATHINFOPATH i dołączyć do nich odpowiednie nazwy podkatalogów, tj. $TEXDIR/man oraz $TEXDIR/info.

Program texconfig pozwala na ustawienie domyślnych wzorców przenoszenia wyrazów, rozmiaru papieru, poleceń do druku, trybu Metafont-a itd. Polecenia tego używać można interaktywnie. Aby zobaczyć jakie funkcje program udostępnia, wystarczy napisać:

> texconfig help

Przykładowo, jeżeli nie używamy formatu A4, możemy ustawić jako format domyślny „lettersize” pisząc:

> texconfig dvips paper letter
> texconfig xdvi paper us

9. Podziękowania

TEX Live jest wspólnym dziełem praktycznie wszystkich grup TEX-owych. Niniejsza edycja TEX Live została opracowana pod kierownictwem Sebastiana Rahtza i Karla Berry, przy głównym współudziale:

Binaria dla różnych platform skompilowali: Tigran Aivazian (x86_64-linux), Manfred Lotz (i386-freebsd), Fabrice Popineau (win32), Norbert Preining (alpha-linux), Vladimir Volovich (powerpc-aix, sparc-linux sparc-solaris), Staszek Wawrykiewicz (i386-linux), Olaf Weber (mips-irix), Gerben Wierda (i386-darwin, powerpc-darwin).

Aktualizacje i tłumaczenia dokumentacji wykonali: Karl Berry (angielski), Daniel Flipo & Fabrice Popineau (francuski), Günter Partosch & Hartmut Henkel (niemiecki), Petr Sojka & Jan Busa (czeski/ słowacki), Boris Veytsman (rosyjski), Staszek Wawrykiewicz (polski).

Oczywiście, najważniejsze podziękowania należą się Donaldowi Knuthowi za stworzenie systemu TEX i ofiarowanie go nam wszystkim.

10. Historia

10.1. Poprzednie wersje

Dystrybucja TEX Live jest wspólnym przedsięwzięciem grup Użytkowników Systemu TEX z Niemiec, Holandii, Wielkiej Brytanii, Francji, Czech, Słowacji, Polski, Indii i Rosji oraz grupy międzynarodowej TUG (TEX Users Group). Dyskusje nad projektem rozpoczęły się pod koniec 1993 roku, kiedy holenderska Grupa Użytkowników TEX-a rozpoczęła prace nad swoim 4AllTEX CD dla użytkowników MS-DOS. W tym też czasie pojawiły się nadzieje na opracowanie jednego CD dla wszystkich systemów. Projekt taki był wprawdzie zbyt ambitny, ale zrodził nie tylko bardzo popularny i uwieńczony dużym powodzeniem projekt 4AllTEX CD, lecz również spowodował powstanie Grupy Roboczej TUG ds. Standardu Katalogów TEX-owych (TEX Directory Structure), określającego w jaki sposób tworzyć zgodne i łatwe do zarządzania zestawy pakietów TEX-owych. Końcowy raport TDS został opublikowany w grudniowym numerze TUGboat-a, i jasnym się stało, że jednym z oczekiwanych rezultatów wprowadzenia tego standardu mogłaby być modelowa struktura na CD. Niniejszy CD jest bezpośrednim rezultatem rozważań i zaleceń Grupy Roboczej ds. TDS. Jasne także było, że sukces 4AllTEX CD pokazał, że użytkownicy Unixa także wiele by zyskali mogąc korzystać z podobnie łatwego w instalacji/pielęgnacji i użytkowaniu systemu. Było to jednym z celów projektu TEX Live.

Projekt przygotowania nowego CD, opartego na standardzie TDS i zorientowanego na systemy Uniksowe, rozpoczął się jesienią 1995 roku. Szybko zdecydowaliśmy się na wykorzystanie teTEX-a autorstwa Thomasa Essera, ponieważ oferował on wsparcie dla wielu platform i został zaprojektowany z myślą o przenośności pomiędzy różnymi systemami plików. Thomas zgodził się pomóc i prace rozpoczęły się na dobre na początku 1996 roku. Pierwsze wydanie ukazało się w maju 1996 roku. Na początku 1997 roku Karl Berry udostępnił nową, poważnie zmienioną wersję swojego pakietu Web2C, zawierającą prawie wszystkie funkcje wprowadzone do teTEX-a przez Thomasa Essera. W związku z tym zdecydowaliśmy się oprzeć drugie wydanie CD na standardowej bibliotece Web2C, z dodaniem skryptu texconfig z pakietu teTEX. Trzecie wydanie CD było oparte na Web2C wersji 7.2, przygotowanej przez Olafa Webera. W tym samym czasie została przygotowana nowa wersja teTEX-a i TEX Live udostępniał prawie wszystkie jego nowe funkcje. Czwarta edycja była przygotowana podobnie, wykorzystując nową wersję teTEX-a i nową wersję Web2C (7.3). Wtedy to też zainaugurowano kompletną dystrybucję dla Windows.

Edycja piąta (marzec 2000) zawierała wiele poprawek i uzupełnień; zaktualizowano setki pakietów. Szczegóły zawartości pakietów zostały zapisane w plikach XML. Główną zmianą w TEX Live5 było usunięcie programów, które nie miały statusu public domain. Zawartość całej płytki powinna odpowiadać ustaleniom Debian Free Software Guidelines (http://www.debian.org/intro/free). Dołożyliśmy wszelkich starań aby sprawdzić warunki licencyjne pakietów, ale nadal bardzo prosimy o zgłaszanie zauważonych pomyłek.

Szósta edycja (lipiec 2001) zawierała aktualizacje całego materiału. Główną zmianą było wprowadzenie nowej koncepcji programów instalacyjnych: użytkownik miał odtąd możliwość dokładniejszego wyboru potrzebnych zestawów i pakietów. Zestawy dotyczące obsługi poszczególnych języków zostały całkowicie zreorganizowane, dzięki czemu wybór jednego z nich nie tylko instalował potrzebne makra i fonty, ale także przygotowywał odpowiedni plik language.dat.

TEX Live 7 (rok 2002) zawierał po raz pierwszy oprogramowanie dla Mac OS X i, jak zwykle, aktualizację wszelkich programów i pakietów. Ważnym zadaniem, które wykonano, było ujednolicenie plików źródłowych programów z dystrybucją teTEX. W programach instalacyjnych wprowadzono możliwość wyboru bardziej ogólnych, predefiniowanych zestawów pakietów (m.in. dla użytkowników francuskojęzycznych oraz polskich). Nowością było także wprowadzenie procedury aktualizacji map fontowych dla Dvips i Pdftex podczas instalacji oraz doinstalowywania pakietów fontowych.

W 2003 r., wraz z napływem aktualizacji i dodatkowych nowych pakietów, okazało się, że TEX Live nie mieści się na pojedynczym CD. Zmuszeni byliśmy podzielić TEX Live na trzy dystrybucje, które wydano na DVD i dwóch płytkach CD. Ponadto:

10.2. Edycja 2004

Jak przy każdej kolejnej wersji, w 2004 roku uaktualniono wiele pakietów i programów. Poniżej wymieniamy najbardziej istotne zmiany.

10.3. Edycja 2005

Aktualna edycja przyniosła, jak zwykle, mnóstwo aktualizacji pakietów i programów. Struktura dystrybucji ustabilizowała się, niemniej jednak pojawiło się nieco zmian w konfiguracji:

10.4. Przyszłe wersje

Niniejsza dystrybucja nie jest doskonała! Planujemy wydawanie jej raz na rok i chcielibyśmy żeby zawierała jeszcze więcej pomocnej dokumentacji, więcej programów użytkowych, lepsze programy instalacyjne oraz (oczywiście) stale ulepszany i poprawiany katalog makr i fontów. Zadanie to jest wykonywane przez ciężko pracujących ochotników, poświęcających na to wiele swojego wolnego czasu. Wiele jeszcze pozostało do zrobienia. Jeżeli możesz pomóc, nie zastanawiaj się i przyłącz się do nas.

Prosimy o przesyłanie poprawek, sugestii i uzupełnień oraz deklaracji pomocy w opracowywaniu kolejnych edycji na adres:

Sebastian Rahtz
7 Stratfield Road
Oxford OX2 7BG
United Kingdom
tex-live@tug.org
http://tug.org/texlive

Uaktualnienia, ogłoszenia i wskazówki będą dostępne na stronie http://tug.org/texlive.html.