Przewodnik po TEX Live
TEX Live 2008

Redakcja: Karl Berry
http://tug.org/texlive/

Sierpień 2008

Spis treści

1 Wstęp
 1.1 TEX Live i TEX Collection
 1.2 Obsługiwane systemy operacyjne
 1.3 Podstawy instalacji TEX Live
 1.4 Dostępna pomoc
2 Struktura TEX Live
 2.1 The TEX Collection: TEX Live, proTEXt, MacTEX
 2.2 Główne katalogi TEX Live
 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
 2.7 Fonty w TEX Live
3 Instalacja
 3.1 Start instalacji
  3.1.1 Unix
  3.1.2 Mac OS X
  3.1.3 Windows
  3.1.4 Instalator w trybie tekstowym
  3.1.5 Instalator w trybie graficznym
 3.2 Podczas instalacji
  3.2.1 Menu: binary systems (tylko Unix)
  3.2.2 Wybór tego, co ma być zainstalowane
  3.2.3 Katalogi
  3.2.4 Opcje
  3.2.5 Uruchamianie bezpośrednio z DVD (tylko w trybie tekstowym)
 3.3 Parametry instalacji z linii poleceń
  3.3.1 Parametr location
 3.4 Czynności poinstalacyjne
  3.4.1 Gdy zastosujemy dowiązania symboliczne
  3.4.2 Zmienne środowiska dla Unix
  3.4.3 Gdy uruchamiamy programy z DVD
  3.4.4 ConTEXt Mark IV
  3.4.5 Integracja lokalnych i prywatnych pakietów makr
  3.4.6 Integracja fontów z innych źródeł
 3.5 Testowanie instalacji
4 Instalacje sieciowe
5 Maksymalnie przenośny TEX Live na DVD i USB
6 tlmgr: zarządzanie instalacją
 6.1 tlmgr – tryb graficzny (GUI)
 6.2 Przykładowe wywołania tlmgr z linii poleceń
7 Uwagi dotyczące Windows
 7.1 Cechy specyficzne w systemie Windows
 7.2 Programy pomocnicze dla Windows
 7.3 Program Dviout
 7.4 User Profile to inaczej Home (katalog domowy)
 7.5 Rejestr Windows
 7.6 Uprawnienia w Windows
 7.7 WinShell
  7.7.1 Użycie plików „projektu”
  7.7.2 Drukowanie z WinShell na drukarce PostScriptowej
 7.8 W razie problemów
  7.8.1 Co zrobić gdy latex nie może znaleźć potrzebnych plików?
8 Instrukcja obsługi systemu Web2C
 8.1 Przeszukiwanie ścieżek przez Kpathsea
  8.1.1 Źródła ścieżek
  8.1.2 Pliki konfiguracyjne
  8.1.3 Rozwijanie ścieżek
  8.1.4 Rozwijanie domyślne
  8.1.5 Rozwijanie nawiasów
  8.1.6 Rozwijanie podkatalogów
  8.1.7 Lista znaków specjalnych i ich znaczeń – podsumowanie
 8.2 Bazy nazw plików
  8.2.1 Baza nazw plików
  8.2.2 kpsewhich – program do przeszukiwania ścieżek
  8.2.3 Przykłady użycia
  8.2.4 Diagnostyka błędów
 8.3 Parametry kontrolujące działanie programów
9 Budowa systemu na nowej platformie uniksowej
 9.1 Warunki wstępne
 9.2 Konfiguracja
 9.3 Uruchamianie make
 9.4 Końcowe kroki konfiguracyjne
10 Podziękowania
11 Historia
 11.1 Poprzednie wersje
 11.2 Edycja 2004
 11.3 Edycja 2005
 11.4 Edycja 2007
 11.5 Wydanie obecne
 11.6 Przyszłe wersje

1. Wstęp

1.1. TEX Live i TEX Collection

Niniejsza dokumentacja opisuje oprogramowanie TEX Live – dystrybucję TEX-a wraz z programami pomocniczymi, dostępną dla systemów GNU/Linux, różnych wersji Unix (w tym Mac OS X) oraz Windows.

TEX Live można ściągnąć z sieci bądź otrzymać na płytce DVD TEX Collection, dostarczanej swoim członkom przez Grupy Użytkowników Systemu TEX . Część 2.1 omawia pokrótce zawartość tej płytki. Zarówno TEX Live, jak i TEX Collection powstały dzięki zbiorowemu wysiłkowi Grup. W tym dokumencie omówimy głównie samą dystrybucję TEX Live.

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. Wszystko to umożliwia skład publikacji w wielu językach.

Pakiety zawarte w TEX Live są regularnie aktualizowane z serwerów CTAN: http://www.ctan.org.

Lista najważniejszych zmian dokonanych w tej edycji TEX Live znajduje się w części 11.5, na str. 92.

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

1.2. Obsługiwane systemy operacyjne

TEX Live zawiera oprogramowanie dla wielu platform linuksowych i uniksowych, w tym Mac OS X. Załączone pliki źródłowe pozwalają też na instalację na dodatkowych platformach.

Spośród systemów Windows obsługiwane są tylko wersje 2000 i nowsze. Zaniechano wsparcia dla Windows 9x, ME oraz NT, których obsługa była bardzo pracochłonna (w porównaniu z Linux/Unix). Wprawdzie brak jest oprogramowania na wersje 64-bitowe, ale aplikacje 32-bitowe powinny na nich działać.

W części 2.1 omówiono alternatywne dystrybucje, przeznaczone dla Windows oraz Mac OS X.

1.3. Podstawy instalacji TEX Live

TEX Live można zainstalować z płytki DVD lub internetu. Program instalacyjny jest niewielki i pozwala pobrać z sieci wszystkie potrzebne pakiety. Jest to wygodne, gdy potrzebujemy jedynie części oprogramowania TEX Live.

Posiadając płytkę DVD, możemy nie tylko zaistalować TEX Live na twardym dysku, ale i uruchomić programy bezpośrednio z niej (a nawet z obrazu DVD, jeśli nasz system pozwala na jego zamontowanie).

Szczegółowy opis instalacji TEX Live znajduje się w dalszych rozdziałach tego dokumentu, tu podamy jedynie skrócony przepis:

1.4. Dostępna pomoc

Społeczność TEX-owa jest bardzo aktywna i pomocna, stąd też większość poważnych zapytań nie pozostaje 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ę można znaleźć 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://www.tex.ac.uk/faq. Proponujemy zajrzeć najpierw tam. Uruchomiono też serwis FAQ w języku polskim: http://faq.gust.org.pl.
TEX Catalogue
Jeśli poszukujemy konkretnego pakietu, fontu, programu itp., to polecamy TEX Catalogue. Jest to obszerne zestawienie wszelkich pakietów dotyczących TEX-a. Patrz: http://www.ctan.org/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 fora 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: http://groups.google.com/group/comp.text.tex/topics 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, to 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 się zapoznać 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 (polskiej 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. Jeśli kwestia dotyczy konkretnego programu (pakietu makr itp.) z TEX Live, to 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, tak 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. The TEX Collection: TEX Live, proTEXt, MacTEX

The TEX Collection DVD zawiera:

TEX Live
kompletny system na DVD, z możliwością uruchamiania bezpośrednio z płyty bądź instalacji na twardym dysku;
MacTEX
dla systemu Mac OS X; posiada on własny program instalacyjny i dodatkowe programy dla tego systemu; strona domowa projektu: http://www.tug.org/mactex/;
proTEXt
dystrybucja dla Windows, oparta na dystrybucji MiKTEX, rozszerzonej o dodatkowe narzędzia; całkowicie niezależna od TEX Live; ProTEXt posiada własny, łatwy w obsłudze program instalacyjny; strona domowa projektu: http://tug.org/protext;
CTAN
zrzut zawartości archiwów CTAN;
texmf-extra
katalog z wybranymi pakietami dodatkowymi.

CTAN, protext, i texmf-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.

2.2. Główne katalogi TEX Live

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 do TEX Live).

bin

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

readme.html

krótki wstęp z użytecznymi odnośnikami;

source

źródła wszystkich programów, włącznie z głównymi dystrybucjami Web2C TEX-a i Metafont-a;

support

różne programy pomocnicze związane z TEX-em, które nie są domyślnie instalowane; 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 według języków.

tlpkg

skrypty, programy i inne dane potrzebne do instalacji; katalog zawiera także „prywatne” dla TEX Live kopie systemów Perl i Ghostscript dla Windows (nie kolidują one z posiadanymi przez użytkownika podobnymi programami i działają tylko w ramach instalacji); poza tym dołączono szybki i wygodny program do podglądu plików postscriptowych (a także PDF) – PS_View dla Windows.

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 po polsku). Dokumentacje programów (man, info, także w formacie PDF) znajdują się w katalogu texmf/doc, zaś dokumentacje pakietów makr, fontów i formatów w katalogu texmf-dist/doc. W odszukaniu konkretnej dokumentacji w dowolnym z wymienionych katalogów mogą pomóc programy texdoc lub texdoctk. Pomocnym może też być plik doc.html, który znajdziemy w głównym katalogu.

Niniejsza dokumentacja w kilku językach znajduje się w katalogu texmf-doc:

2.3. Predefiniowane drzewa katalogów texmf

W tej części wymieniono wszystkie używane przez system, predefiniowane zmienne specyfikujące drzewa katalogów texmf, omówiono też ich przeznaczenie. Uruchomiając polecenie texconfig conf, zobaczymy wartości tych zmiennych, dzięki czemu łatwo ustalimy, 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), i inne pliki pomocnicze oraz ich dokumentację (nie zawiera zatem pakietów makr ani formatów).

TEXMFDIST

Drzewo katalogów zawierają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 (w Windows %USERPROFILE%).

TEXMFCONFIG

Drzewo katalogów wykorzystywane przez narzędzia texconfig, updmap oraz fmtutil do przechowywania danych konfiguracyjnych (domyślnie w ramach TEXMFHOME).

TEXMFSYSCONFIG

Drzewo katalogów wykorzystywane przez narzędzia texconfig-sys, updmap-sys oraz fmtutil-sys do przechowywania danych konfiguracyjnych dla całej instalacji.

TEXMFVAR

Drzewo katalogów wykorzystywane przez texconfig, updmapfmtutil do przechowywania wygenerowanych plików formatów i map fontowych (domyślnie w ramach TEXMFHOME).

TEXMFSYSVAR

Drzewo katalogów wykorzystywane przez texconfig-sys, updmap-sys oraz fmtutil-sys, a także przez program tlmgr do przechowywania wygenerowanych plików formatów i map fontowych dla całej instalacji.

Domyślny układ katalogów:

ogólnosystemowy katalog instalacji
może zawierać kilka wydań TEX Live:
2007

poprzednie wydanie,

...

2008

wydanie aktualne:

bin

 

i386-linux

programy dla GNU/Linux

...

universal-darwin

programy dla Mac OS X

win32

programy dla Windows

texmf

określany zmienną TEXMFMAIN

texmf-dist

TEXMFDIST

texmf-doc

TEXMFDOC

texmf-var

TEXMFSYSVAR

texmf-config

TEXMFSYSCONFIG

texmf-local

TEXMFLOCAL, katalog zachowywany od wydania do wydania,

katalog domowy użytkownika
($HOME lub %USERPROFILE%)
.texlive2007

prywatne pliki konfiguracyjne poprzedniego wydania:

.texlive2008

prywatne pliki konfiguracyjne dla bieżącego wydania:

texmf-var

TEXMFVAR

texmf-config

TEXMFCONFIG

texmf

TEXMFHOME prywatne makra, fonty itp.

2.4. Rozszerzenia TEX-a

Standardowy TEX został zamrożony, ale jest i będzie w przyszłości dostępny w dystrybucji. TEX Live zawiera ponadto kilka wersji rozszerzonych standardowego TEX-a:

e-TEX
wersja programu TEX, w której dodano pożyteczny 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 można znaleźć w texmf-dist/doc/etex/base/etex_man.pdf.
pdfTEX
program zawierający silnik e-TEX, umożliwiający tworzenie plików zarówno w formacie PDF, jak i DVI. Jest on domyślnym programem dla większości formatów (prócz plain TEX), nie ma więc obecnie rozróżnienia na „maszyny” pdftex i pdfetex, jak to miało miejsce w poprzednich wersjach programów i w poprzednich dystrybucjach TEX Live. Podręczniki znajdziemy w katalogu texmf-dist/doc/pdftex/manual/pdftex-a.pdf, zaś przykład wykorzystania – w pliku texmf-dist/doc/pdftex/manual/samplepdf/samplepdf.tex.
LuaTEX
docelowo sukcesor pdfTEX-a, z którym ma być zgodny wstecz. Powinien także zastąpić Aleph (patrz niżej). Załączony interpreter Lua (patrz strona domowa http://www.lua.org/) pozwala na eleganckie rozwiązanie wielu trudnych problemów TEX-a. Program texlua ma funkcjonalność samodzielnego interpretera Lua, co sprawia, że jest używany w TEX Live do wielu zadań. Patrz http://www.luatex.org/ i na DVD texmf-dist/doc/luatex/luatexref-t.pdf.
XeTEX
umożliwia kodowanie tekstów w Unicode oraz korzystanie z fontów OpenType (także tych dostępnych w systemie operacyjnym), przy czym stosuje biblioteki obce, patrz texmf-dist/doc/xetex/XeTeX-reference.pdf lub http://scripts.sil.org/xetex.
(Omega)
program, który pracuje wewnętrznie ze znakami kodowanymi 16-bitowo (Unicode), pozwalając składać jednocześnie większość tekstów spotykanych na świecie. Wspomaga 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 DVD: texmf-dist/doc/omega/base/doc-1.8.tex (dokumentacja niezbyt aktualna; sam program też od dawna nie jest aktualizowany).
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. Minimalna dokumentacja: texmf-dist/doc/aleph/base.

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 do manipulacji na plikach postscriptowych;

lacheck

kontrola syntaktyki plików LATEX-owych;

texexec, texmfstart

programy uruchamiające dla ConTEXt;

tex4ht

postprocesor dla TEX-a konwersji do HTML i XML.

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 obecnie ponad 2500). Normalna instalacja pozwala użytkownikowi skopiować z DVD na twardy dysk jeden lub więcej zestawów, można też zainstalować jedynie pojedynczy pakiet.

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 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 BibTEX-owych 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ź fontów obwiedniowych oraz pliki z definicjami i stylami 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 LATEX-a 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 polski, mwcls, fonty i 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 skł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 obsługi 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.

Plik tlpdb/texlive.tlpdb (wykorzystywany podczas instalacji) zawiera spis wszystkich plików w każdym pakiecie.

2.7. Fonty w TEX Live

TEX Live zawiera wiele wysokiej jakości fontów skalowanych. Patrz http://tug.org/fonts oraz texmf-doc/doc/english/free-math-fonts-survey.

3. Instalacja

3.1. Start instalacji

Instalację TEX Live uruchamiamy skryptem install-tl (install-tl.bat dla Windows) z płytki TEX Collection DVD bądź dostępnym w pobranym z sieci pakiecie instalacyjnym.

Instalator z sieci:
z archiwum CTAN, z katalogu systems/texlive/tlnet (http://mirror.ctan.org/systems/texlive/tlnet automatycznie przekierowuje do najbliższej kopii CTAN) należy pobrać plik install-tl.zip (dla Unix i Windows) lub znacznie mniejszy install-unx.tar.gz (tylko dla Unix). Po rozpakowaniu, w katalogu install-tl/ znajdziemy skrypty instalacyjne install-tl install-tl.bat.
TEX Collection DVD:
po zamontowaniu płytki należy zmienić katalog bieżący na texlive (w Windows program instalacyjny powinien uruchomić się automatycznie). DVD otrzymamy w ramach członkowstwa w dowolnej Grupie Użytkowników Systemu TEX (kontakt w Polsce http://www.gust.org.pl).

Dalsze kroki omówiono dokładniej w następnych częściach.

3.1.1. Unix

Poniżej > oznacza prompt systemu; to, co wpisuje użytkownik, zaznaczono pogrubieniem. W systemach zgodnych z Unix należy wykonać w oknie terminala:

> cd /path/to/installer
> perl install-tl
(można także uruchomić perl /path/to/installer/install-tl lub ./install-tl; w dalszej części nie będziemy powtarzać wszelkich możliwych kombinacji).

Do uruchomienia w trybie graficznym (GUI) wymagany jest w systemie moduł Perl/TK:

> perl install-tl -gui

Kompletny wykaz dostępnych opcji otrzymamy, uruchamiając:

> perl install-tl -help

Uwaga dotycząca uprawnień w Unix: program instalacyjny będzie respektował aktualną wartość umask. Jeśli więc chcemy, aby instalacja była dostępna dla innych, to musimy ustawić wartość np. umask 002. Więcej informacji na temat umask znajdziemy w podręcznikach systemu operacyjnego.


  ======================> TeX Live installation procedure <=====================
  
  =======> Note: Letters/digits in <angle brackets> indicate menu items <=======
  =======>       for commands or configurable options                   <=======
  
  
   Detected platform: Intel x86 with GNU/Linux
  
   <B> binary systems: 1 out of 16
  
   <S> Installation scheme (scheme-full)
  
   Customizing installation scheme:
     <C> standard collections
     <L> language collections
     83 collections out of 84, disk space required: 1666 MB
  
   <D> directories:
     TEXDIR (the main TeX directory):
       !! default location: /usr/local/texlive/2008
       !! is not writable, please select a different one!
     TEXMFLOCAL (directory for site-wide local files):
       /usr/local/texlive/texmf-local
     TEXMFSYSVAR (directory for variable and automatically generated data):
       /usr/local/texlive/2008/texmf-var
     TEXMFSYSCONFIG (directory for local config):
       /usr/local/texlive/2008/texmf-config
     TEXMFHOME (directory for user-specific files):
       ~/texmf
  
   <O> options:
     [ ] use letter size instead of A4 by default
     [X] create all format files
     [X] install macro/font doc tree
     [X] install macro/font source tree
     [ ] create symlinks in standard directories
  
   <V> Install for running from DVD
  
  Other actions:
   <I> start installation to HD
   <H> help
   <Q> quit
  
  Enter command:

Rysunek 1: Główny ekran instalatora w trybie tekstowym (GNU/Linux)



pict

Rysunek 2: Główny ekran instalatora GUI (Windows)


3.1.2. Mac OS X

Jak wspomniano w części 2.1, dla Mac OS X przygotowano odrębną dystrybucję MacTEX (http://tug.org/mactex), w tym wypadku należy użyć dedykowanego programu instalacyjnego, gdyż zmienia on w specyficzny sposób ustawienia systemu, w szczególności pozwala na łatwe przełączanie pomiędzy różnymi dystrybucjami TEX-a dla Mac OS X: MacTEX, gwTEX, Fink, MacPorts,…

MacTEX jest oparty na TEX Live i główne drzewa katalogów są dokładnie te same, jedynie dodawane są katalogi ze specyficznymi dla systemu Mac OS X dokumentacjami i aplikacjami.

3.1.3. Windows

Gdy używamy instalatora pobranego z sieci (bądź program ten nie uruchamia się automatycznie po włożeniu DVD do napędu), należy uruchomić install-tl.bat (np. podwójnym kliknięciem myszy). Można to uczynić także z linii poleceń – gdy katalog zawierający ten plik jest bieżącym, wystarczy uruchomić:

> install-tl

W linii poleceń można też podać ścieżkę do programu, np.:

> D:\texlive\install-tl
dla TEX Collection DVD, zakładając, że D: jest napędem DVD.

Instalacja w trybie tekstowym wymaga podania:

> install-tl -no-gui

Wszystkie dostępne opcje wyświetlimy uruchamiając:

> install-tl -help

3.1.4. Instalator w trybie tekstowym

Rysunek 1 przedstawia główny ekran programu install-tl w trybie tekstowym w systemie Unix. W tym trybie nie używamy ani klawiszy kursora, ani myszy, tylko wyłącznie klawiszy cyfr i liter (uwaga: duże i małe litery są rozróżniane!). Wybraną opcję zatwierdzamy klawiszem Enter. Instalator w trybie tekstowym jest dlatego tak prosty, by działał na możliwie wielu platformach, nawet wyposażonych w ubogie biblioteki Perla (dla Windows załączono taki właśnie podzbiór dystrybucji Perla).

3.1.5. Instalator w trybie graficznym

Rysunek 2 pokazuje instalator w trybie graficznym (zrzut ekranu w systemie Windows).

3.2. Podczas instalacji

Program instalacyjny jest z założenia na tyle prosty, że szczegółowe wyjaśnienia są zbędne. Podamy jednak kilka uwag dotyczących różnych opcji i dostępnych podmenu.

3.2.1. Menu: binary systems (tylko Unix)


  Available sets of binaries: (Dostępne zestawy programów dla:)
  ===============================================================================
  
     a [ ] alpha-linux      DEC Alpha with GNU/Linux
     b [ ] amd64-freebsd    x86_64 with FreeBSD
     c [ ] hppa-hpux        HP-UX
     d [ ] i386-freebsd     Intel x86 with FreeBSD
     e [X] i386-linux       Intel x86 with GNU/Linux
     f [ ] i386-openbsd     Intel x86 with OpenBSD
     g [ ] i386-solaris     Intel x86 with Sun Solaris
     h [ ] mips-irix        SGI IRIX
     i [ ] powerpc-aix      PowerPC with AIX
     j [ ] powerpc-linux    PowerPC with GNU/Linux
     k [ ] sparc-linux      Sparc with GNU/Linux
     l [ ] sparc-solaris    Sparc with Solaris
     m [ ] universal-darwin universal binaries for MacOSX/Darwin
     o [ ] win32            Windows
     p [ ] x86_64-linux     x86_64 with GNU/Linux

Rysunek 3: Wybór platformy (systemu operacyjnego)


Rysunek 3 pokazuje (w trybie tekstowym) wybór platformy (systemu operacyjnego). Domyślnie instalowane są tylko programy dla bieżącej platformy, ale menu to pozwala wybrać także zestaw dla innych platform. Może być to przydatne do instalacji na serwerze i współdzielenia zasobów w sieci dla różnych systemów operacyjnych bądź dla instalacji dla kilku systemów na tej samej maszynie.

3.2.2. Wybór tego, co ma być zainstalowane


  Select a scheme: (Wybór schematu do instalacji:)
  ===============================================================================
  
   a [ ] TeX Live basic scheme
   b [ ] TeX Live scheme for ConTeXt
   c [X] TeX Live full scheme
   d [ ] GUST TeX Live scheme
   e [ ] GUTenberg TeX Live scheme
   f [ ] TeX Live medium scheme
   g [ ] TeX Live minimal scheme
   h [ ] TeX Live for Omega users
   i [ ] teTeX scheme
   j [ ] XML typesetting scheme

Rysunek 4: Menu: wybór schematów


Rysunek 4 pokazuje menu „Wybór schematów”. Schematy to obszerne zestawy pakietów, przeznaczone do wstępnego wyboru instalowanych komponentów. Mamy tu schematy do instalacji: podstawowej (basic), typowej (medium) i pełnej (full; jest ona domyślna), 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).


pict

Rysunek 5: Menu Standard Collections (Kolekcje standardowe) (Linux)


Wstępnie wybrane schematy można modyfikować. W skład ,schematów” wchodzą tzw. „kolekcje”, które można wybrać w kolejnych menu o nazwach: „Kolekcje standardowe” i „Kolekcje językowe” (rysunek 5). Kolekcje stanowią niższy poziom niż schematy, a same składają się z „pakietów”. Dopiero pakiety zawierają właściwe pliki makr, fontów itp. Jeśli chcemy dodać lub usunąć pakiet, to po instalacji właściwej użyjemy programu tlmgr (patrz część 6).

3.2.3. Katalogi

Domyślny układ katalogów opisano w części 2.3 na str. 9. Położenie domyślne całej instalacji (TEXDIR) różni się w Windows (%PROGRAMFILES%\texlive\2008) i w Unix (/usr/local/texlive/2008).

Głównym powodem, dla którego zmieniamy domyślne położenie TEXDIR, może być brak uprawnień. Aby zainstalować TEX Live, nie musimy być administratorem systemu, musimy jednak posiadać uprawnienia do zapisu w docelowym katalogu. Logiczną alternatywą może być wtedy instalacja w katalogu domowym, szczególnie wtedy, gdy będziemy jedynym użytkownikiem. Stosujemy tu zapis „~” do zaznaczenia takiego wyboru, np. ~/texlive/2008. Zalecamy stosowanie katalogu z nazwą odzwierciedlającą rok wydania, co pozwoli na zainstalowanie obok siebie różnych wydań TEX Live.

Zmiana TEXDIR w programie instalacyjnym zmieni także ścieżki katalogów określone przez zmienne TEXMFLOCAL, TEXMFSYSVAR TEXMFSYSCONFIG.

TEXMFHOME jest zalecanym położeniem dla prywatnych makr i fontów użytkownika. Domyślnym katalogiem jest ~/texmf. W odróżnieniu od TEXDIR, znak ~ jest zachowywany w generowanych plikach konfiguracyjnych, ponieważ w wygodny sposób odnosi się do katalogu domowego podczas każdego uruchamiania programów. Znak ten rozwijany jest do zmiennej $HOME w Unix i %USERPROFILE% w Windows.

3.2.4. Opcje


  <P> use letter size instead of A4 by default: [ ]
  <F> create all format files:                  [X]
  <D> install font/macro doc tree:              [X]
  <S> install font/macro source tree:           [X]
  <L> create symlinks in standard directories:  [ ]
             binaries to:
             manpages to:
                 info to:

Rysunek 6: Menu: Options (Opcje) w Unix


Rysunek 6 pokazuje menu (w trybie tekstowym) z dodatkowymi opcjami. Warto tu wspomnieć o trzech z nich:

use letter size instead of A4 by default
(użyj domyślnego formatu papieru letter zamiast A4): pozwala określić domyślny format papieru dla wielu programów. Oczywiście format papieru można specyfikować potem dla każdego dokumentu.
create all format files
(generuj wszystkie pliki formatów): chociaż zbędne formaty zajmują miejsce na dysku, to zaleca się pozostawić tę opcję włączoną; jeśli tego nie zrobimy, formaty będą generowane automatycznie (w razie potrzeby) w prywatnych katalogach TEXMFVAR użytkowników, nie będą jednak odświeżane, gdy w instalacji zostaną zaktualizowane np. programy bądź wzorce przenoszenia; wskutek tego formaty mogą utracić zgodność ze środowiskiem, w którym są używane.
create symlinks in standard directories
(utwórz dowiązania w standardowych katalogach, tylko Unix): opcja ta pozwala uniknąć ustawiania zmiennych środowiska po instalacji (PATH, MANPATH INFOPATH), ale jej użycie nie jest zalecane, bo może powodować kolizje z już zainstalowanym w systemie środowiskiem TEX; może być ona przydatna jedynie wtedy, gdy w standardowych katalogach (np. /usr/local/bin) nie ma jakichkolwiek programów TEX-owych.

Po wszystkich potrzebnych ustawieniach można rozpocząć instalację (klawisz „I”). Po instalacji zaleca się zajrzeć do części 3.4, bo być może potrzebne okażą się jeszcze dodatkowe kroki.

3.2.5. Uruchamianie bezpośrednio z DVD (tylko w trybie tekstowym)

Aby uruchomić programy bezpośrednio z płytki DVD należy wybrać opcję „V”, co zmienia menu na przedstawione na rys.  7.


  ======================> TeX Live installation procedure <=====================
  
  =======> Note: Letters/digits in <angle brackets> indicate menu items <=======
  =======>       for commands or configurable options                   <=======
  
   <D> directories:
     TEXDIRW (Writable root):
       !! default location: /usr/local/texlive/2008
       !! is not writable, please select a different one!
     TEXMFLOCAL (directory for site-wide local files):
       /usr/local/texlive/texmf-local
     TEXMFSYSVAR (directory for variable and automatically generated data):
       /usr/local/texlive/2008/texmf-var
     TEXMFSYSCONFIG (directory for local config):
       /usr/local/texlive/2008/texmf-config
     TEXMFHOME (directory for user-specific files):
       ~/texmf
  
   <O> options:
     [ ] use letter size instead of A4 by default
     [X] create all format files
  
   <V> set up for installing to hard disk
  
  Other actions:
   <I> start installation for running from DVD
   <H> help
   <Q> quit

Rysunek 7: Menu główne dla uruchamiania z DVD


Zwróćmy uwagę na następujące zmiany: zniknęły wszystkie opcje dotyczące wyboru pakietów, sekcja dotycząca katalogów pokazuje teraz TEXDIRW – katalog z prawami do zapisu. Pozwoli to uruchamiać dowolny program bezpośrednio z płytki; na dysku twardym znajdą się (w odpowiednich katalogach) jedynie niezbędne pliki konfiguracyjne.

Ponieważ struktura katalogów różni się nieco od domyślnej, niezbędne będą pewne czynności konfiguracyjne, omówione w części 3.4.

Instalator GUI nie posiada opcji „V”, dlatego użytkownicy Windows mogą uruchomić program jedynie z linii poleceń, jak opisano to w części 3.3.

W rozdziale 5 opisano jeszcze inny, przenośny sposób uruchamiania TEX Live, który nie wymaga zmian w konfiguracji systemu (a nawet nie pozwala na nie).

3.3. Parametry instalacji z linii poleceń

Uruchom

> install-tl -help
aby wyświetlić wszystkie dostępne parametry. Najbardziej interesujące to:

-gui

użyj programu w wersji graficznej (GUI), jeśli to możliwe; wymagane jest posiadanie modułu Perl/Tk (http://tug.org/texlive/distro.html#perltk); gdy jest on niedostępny, program instalacyjny uruchomiony zostanie w trybie tekstowym;

-no-gui

wymusza tryb tekstowy, np. w Windows potrzebny jest on dla przygotowania do uruchamiania bezpośrednio z DVD;

-lang LL

pozwala wybrać język komunikatów, LL oznacza tu dwuliterowy kod języka; aktualnie dostępne są: angielski (en, domyślny), niemiecki (de), francuski (fr), holenderski (nl), polski (pl), słoweński (sl) i wietnamski (vi); program samoczynnie włącza język, ale jeśli jest to niemożliwe, komunikaty i menu będą wyświetlane w języku angielskim;

-profile profile

program instalacyjny zapisuje plik texlive.profile w katalogu 2008/tlpkg, co pozwala wykorzystać go dla powielenia wszystkich wyborów i ustawień w kolejnych instalacjach;

-location url/path

pozwala określić inne niż domyślne źródło instalacji (patrz poniżej).

3.3.1. Parametr location

Parametrowi location można przypisać adres w sieci (rozpoczynający się od ftp:, http: lub file:/), lub pełną ścieżkę. Jeśli podany argument wskazuje na lokalny dysk (ścieżka bądź adres file:/), to automatycznie zostanie dostosowany typ instalacji (ze skompresowanych plików bądź nie): gdy dostępny będzie katalog archive, zawierający pliki .tar.lzma, wybrana zostanie instalacja z tychże plików, nawet jeśli dostępne będą równolegle katalogi z plikami nieskompresowanymi.

3.4. Czynności poinstalacyjne

Część ta nie dotyczy systemu Windows, dla którego program instalacyjny przeprowadza całą konfigurację, włącznie z menu systemowym i ikonami na pulpicie. Poniższe uwagi mogą być przydatne dla użytkowników innych systemów.

3.4.1. Gdy zastosujemy dowiązania symboliczne

Użycie opisanej w części 3.2.4 opcji tworzenia dowiązań symbolicznych w standardowych katalogach nie wymaga zmian w zmiennych środowiska systemowego.

3.4.2. Zmienne środowiska dla Unix

Po instalacji trzeba do zmiennej PATH dodać ścieżkę do programów TEX Live. Każda z obsługiwanych platform ma własny podkatalog w ramach TEXDIR/bin. Listę platform i odpowiadających im katalogów przedstawiono na rys. 3.

Również korzystanie z systemowych przeglądarek dokumentacji man info staje się możliwe dopiero po dodaniu odpowiednich katalogów do ich ścieżek przeszukiwania.

Dla powłoki zgodnej z Bourne shell (sh, bash, ksh) możemy dopisać do pliku $HOME/.profile:

  PATH=/usr/local/texlive/2008/bin/i386-linux:$PATH; export PATH
  MANPATH=/usr/local/texlive/2008/texmf/doc/man:$MANPATH; export MANPATH
  INFOPATH=/usr/local/texlive/2008/texmf/doc/info:$INFOPATH; export INFOPATH

W wypadku csh lub tcsh należy zmodyfikować plik $HOME/.cshrc, np:

  setenv PATH /usr/local/texlive/2008/bin/i386-linux:$PATH
  setenv MANPATH /usr/local/texlive/2008/texmf/doc/man:$MANPATH
  setenv INFOPATH /usr/local/texlive/2008/texmf/doc/info:$INFOPATH

3.4.3. Gdy uruchamiamy programy z DVD

Programy TEX Live wyszukują potrzebne dane w różnych drzewach katalogów korzystając z pliku texmf.cnf. Plik ten znajdowany jest w całej serii położeń względem położenia samych programów, ale zasada ta nie działa, gdy uruchamiamy programy bezpośrednio z DVD. Wynika to z faktu, że niektóre pliki są zapisywane na twardym dysku (DVD jest medium tylko do odczytu) i tracą tym samym predefiniowane względne położenie. Wymagane jest zatem zdefiowanie w środowisku zmiennej TEXMFCNF, która wskaże położenie texmf.cnf. Nadal jest potrzebna modyfikacja zmiennej PATH, jak opisano wyżej.

Na zakończenie instalacji program powinien pokazać komunikat informujący, jaką wartość należy przypisać zmiennej TEXMFCNF. Gdybyśmy to przeoczyli – wartością tą jest $TEXMFSYSVAR/web2c, czyli dla domyślnych ustawień (/usr/local/texlive/2008/texmf-var/web2c) potrzebujemy deklaracji:

  TEXMFCNF=/usr/local/texlive/2008/texmf-var/web2c; export TEXMFCNF

lub, dla [t]csh:

  setenv TEXMFCNF /usr/local/texlive/2008/texmf-var/web2c

3.4.4. ConTEXt Mark IV

Tak zwany „stary” ConTEXt działa jak dotychczas. Nowy ConTEXt „Mark IV” wymaga ręcznego dostrojenia – patrz: http://wiki.contextgarden.net/Running_Mark_IV.

3.4.5. Integracja lokalnych i prywatnych pakietów makr

Jak już wspomniano w części 2.3, katalog TEXMFLOCAL (domyślnie /usr/local/texlive/texmf-local lub C:\Program Files\texlive\texmf-local) przeznaczony jest na lokalne (np. w danej sieci komputerowej) fonty oraz pakiety makr. Z kolei TEXMFHOME (domyślnie $HOME/texmf lub %USERPROFILE%\texmf) jest przeznaczony na prywatne makra i fonty użytkownika. W zamierzeniu oba te katalogi powinny być zachowywane przy instalacji nowszych wersji TEX Live, a ich zawartość ma być automatycznie dostępna w kolejnych wydaniach. Zalecamy zatem, by nie przedefiniowywać TEXMFLOCAL, co pozwoli uniknąć ręcznego konfigurowania w przyszłości.

W obu drzewach katalogów pliki powinny być umieszczane w odpowiednich podkatalogach, zgodnie z zaleceniami TDS (patrz: http://tug.org/tds, także plik texmf/web2c/texmf.cnf). Przykładowo pliki klas lub makr LATEX-a powinny być umieszczane w katalogu TEXMFLOCAL/tex/latex/ lub TEXMFHOME/tex/latex/ (lub ich podkatalogach).

TEXMFLOCAL po zmianie zawartości wymaga odświeżenia bazy danych – poleceniem mktexlsr lub poprzez użycie przycisku „Odśwież bazy danych” w graficznym trybie programu tlmgr.

3.4.6. Integracja fontów z innych źródeł

Jest to, niestety, bardzo skomplikowane zagadnienie, wymagające sporej wiedzy użytkownika. Warto najpierw się dowiedzieć, jakie fonty mamy dostępne bezpłatnie (patrz część  2.7).

Alternatywą jest XeTEX (patrz częśc 2.4), który umożliwia użycie fontów systemowych bez potrzeby instalowania ich dla programów TEX-owych.

3.5. Testowanie instalacji

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

  1. Sprawdzamy najpierw, czy uruchamia się program tex:

    > tex --version
    TeX 3.1415926 (Web2C 7.5.7)
    kpathsea version 3.5.7
    ...
    Jeśli uruchomienie kończy się komunikatem command not found (Nie znaleziono pelecenia), oznacza to, że niepoprawnie zadeklarowano zmienną PATH (patrz deklaracje zmiennych środowiska na str. 40).
  2. Następnie przetwarzamy prosty plik LATEX-owy:

    > latex sample2e.tex
    This is pdfeTeXk, Version 3.1415926...
    .....
    Output written on sample2e.dvi (3 pages, 7484 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. Szczegółową analizę, gdzie pliki są szukane i znajdowane, umożliwia diagnostyka opisana w części 8.2.4 na str. 76.
  3. Podgląd wyniku składu:

    > xdvi sample2e.dvi
    Polecenie to wymaga uruchomionego środowiska graficznego X Window. Dla MS Windows analogicznym poleceniem jest dviout (o ile samodzielnie zainstalowaliśmy ten program).
  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ą zwykle dostarczane w ramach systemu operacyjnego, wobec tego nie zamieszczono 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). W systemie Windows domyślnie instalowany jest dla TEX Live program psv (PS_View), pozwalający przeglądać pliki .ps .pdf. Program ten można też zainstalować samodzielnie w systemach Linux (w katalogu support/ znajdziemy plik psview-5.09t.zip).
  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, z tym że zamiast LATEX-a trzeba użyć 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. Instalacje sieciowe

TEX Live zaprojektowano tak, by mogło z niego korzystać wielu użytkowników, nawet w różnych systemach operacyjnych w sieci komputerowej. Dzięki standardowej strukturze katalogów nie ma potrzeby konfiguracji i określania konkretnych ścieżek: położenie plików wymaganych przez programy TEX Live jest zdefiniowane jako względne wobec samych programów. Można to zobaczyć w pliku $TEXMFMAIN/web2c/texmf.cnf, który zawiera np. takie wiersze:

  TEXMFMAIN = $SELFAUTOPARENT/texmf
  ...
  TEXMFLOCAL = $SELFAUTOPARENT/../texmf-local

W konsekwencji oznacza to, że dla różnych systemów operacyjnych bądź użytkowników wystarczy dodać do ich ścieżek przeszukiwania tylko ścieżkę do programów TEX Live.

Możliwa jest zatem np. instalacja lokalna TEX Live, po czym przeniesienie całej struktury w inne miejsce w sieci.

Użytkownicy Windows mogą mieć także inne wymagania. W katalogu texmf-doc/source/texlive/texlive-common/w32client znajdziemy przykładowy skrypt install-w32client, który pozwala dostosować istniejącą instalację TEX Live dla potrzeb sieci (włącznie z utworzeniem skrótów w menu systemowym). Wystarczy w tym katalogu uruchomić install-w32client.bat.

W części 8.1 dowiemy się więcej o konfigurowaniu TEX Live i zasadach przeszukiwania ścieżek.

5. Maksymalnie przenośny TEX Live na DVD i USB

Opcja „uruchom z DVD”, opisana w rozdziale 3.2.5, jest wprzydatna, jeśli działamy na swoim własnym komputerze. Gdy gościmy na cudzym, to prawdopodobnie wolelibyśmy wybrać inną możliwość, bez zbędnych skutków ubocznych.

W głównym katalogu TEX Live DVD (w podkatalogu texlive TEX Collection DVD) znajdziemy skrypt uniksowy tl-portable oraz widowsowy tl-portable.bat, które uruchamiają terminal z ustawieniami odpowiednimi do bezpośredniego dostępu do TEX Live na DVD.

Gdy skrypt ten jest wykonywany po raz pierwszy, generowane są pewne pliki w podkatalogu  /.tlportable2008, co trwa kilka chwil. W kolejnych wywołaniach skrypt rozpoczyna działanie niemal natychmiast.

Reszta systemu nie jest świadoma istnienia TEX Live. Jeśli chcemy, by nasz edytor mógł współpracować z TEX Live, to musimy uruchomić go z innej, równoległej sesji tl-portable.

Można również użyć tl-portable do wywołania TEX Live z pendrive’a (USB). W tym wypadku należy skopiować wszystkie pliki najwyższego poziomu oraz zawartość (co najmniej) katalogów bin, texmf, texmf-dist tlpkg na pendrive. Zajmie to trochę czasu! Jeśli kopiujemy na pendrive USB sformatowany z systemem plików FAT32, to należy się upewnić, że dowiązania symboliczne są zastępowane plikami (polecenie cp -L). Używany też będzie katalog texmf-local na pendrive.

Następnie wywołajmy tl-portable z katalogu głównego pendrive’a. W tym wypadku skrypt zauważy, że pendrive można zapisywać i użyje go do zapisania wygenerowanych plików. Zawartość tę można z powrotem zapisać na DVD (np. do przekazania innym).

6. tlmgr: zarządzanie instalacją


pict

Rysunek 8: tlmgr w trybie graficznym. Lista pokietów/kolekcji/schematów pokaże się dopiero po naciśnięciu klawisza „Ładuj” (Load).



pict

Rysunek 9: tlmgr w trybie graficznym: zakładka konfiguracji


Instalator instaluje program o nazwie tlmgr, służący do dalszego zarządzania TEX Live po pierwotnej instalacji. Programy updmap, fmtutil oraz texconfig są nadal dostępne i będą utrzymywane w przyszłości, jednakże obecnie polecanym interfejsem jest tlmgr. Jego możliwości obejmują:

Ostrzeżenie: tlmgr nie został zaprojektowany ani przetestowany z instalacjami, które są wywoływane bezpośrednio z DVD.

6.1. tlmgr – tryb graficzny (GUI)

tlmgr może być uruchomiony w trybie graficznym za pomocą polecenia

> tlmgr -gui
zaś w systemie Windows poprzez wybór menu: Start -> Programy -> TeX Live 2008 -> TeX Live Manager. Po kliknięciu przycisku „Ładuj” wyświetla listę dostępnych oraz listę zainstalowanych pakietów (te ostatnie poprzedzone są „(i)”). Zakładamy oczywiście, że źródła instalacji są poprawne i są dostępne.

Rysunek 9 przedstawia zakładkę konfiguracji.

6.2. Przykładowe wywołania tlmgr z linii poleceń

Poniższy przykład dodaje kilka pakietów, włącznie z nowym „silnikiem”, z innego niż domyślne położenia źródła instalacji:

> tlmgr -location http://172.16.18.1/tldev install collection-xetex xkeyval
Generuje on poniższy wynik:
  install: collection-xetex
  install: arabxetex
  install: euenc
  install: bidi
  install: fontspec
  install: fontwrap
  install: ifxetex
  install: philokalia
  install: polyglossia
  install: xecyr
  install: xecyr.i386-linux
  install: xepersian
  install: xetex
  install: xetexconfig
  install: xetex.i386-linux
  running post install action for xetex
  install: xetex-def
  install: xetex-pstricks
  install: xetexfontinfo
  install: xltxtra
  install: xunicode
  install: xkeyval
  running mktexlsr
  mktexlsr: Updating /usr/local/texlive/2008/texmf/ls-R...
  mktexlsr: Updating /usr/local/texlive/2008/texmf-config/ls-R...
  mktexlsr: Updating /usr/local/texlive/2008/texmf-dist/ls-R...
  mktexlsr: Updating /usr/local/texlive/2008/texmf-doc/ls-R...
  mktexlsr: Updating /usr/local/texlive/2008/../texmf-local/ls-R...
  mktexlsr: Updating /usr/local/texlive/2008/texmf-var/ls-R...
  mktexlsr: Done.
  regenerating fmtutil.cnf
  running fmtutil-sys --missing
  ...
  Transcript written on xelatex.log.
  fmtutil: /usr/local/texlive/2008/texmf-var/web2c/xetex/xelatex.fmt installed.

Jak widać, tlmgr instaluje zależne pakiety i dba o niezbędne czynności poinstalacyjne, włącznie z aktualizacją bazy danych nazw plików i powtórnym wygenerowaniem formatów (w przykładzie wygenerowaliśmy nowy format dla XeTEX).

Poniższy przykład prezentuje instalację nowego języka oraz uruchamia powtórne wygenerowanie formatów:

> tlmgr install collection-langdutch
Aby wyświetlić informację o pakiecie, należy uruchomić np.:

> tlmgr show collection-wintools
co daje w wyniku
  Package:   collection-wintools
  Category:  Collection
  ShortDesc: Windows support programs
  LongDesc:  Utilities for Windows, since they are not readily available there:
   gzip, chktex, jpeg2ps, unzip, wget, xpdf.
  Installed: Yes

Aktualizacja całej instalacji do najnowszej dostępnej wersji:

> tlmgr update -all
Aby uniknąć zdenerwowania, proponujemy zacząć od:

> tlmgr update -all -dry-run
albo

> tlmgr update -list
Pełną dokumentację programu pokaże polecenie:

> tlmgr -help

7. Uwagi dotyczące Windows

TEX Live ma tylko jeden program instalacyjny, działający zarówno w Unix, jak i w Windows. Stworzenie takiego programu było możliwe dopiero po zaniechaniu wsparcia dla starszych wersji Windows. Obecnie TEX Live można instalować tylko w Windows 2000 i nowszych.

7.1. Cechy specyficzne w systemie Windows

W systemie Windows program instalacyjny wykonuje kilka dodatkowych czynności:

Menu i skróty.
W menu systemowym instalowane jest podmenu „TEX Live”, które zawiera kilka pozycji dla programów działających w trybie graficznym (tlmgr, texdoctk, PS_View – przeglądarka plików postscriptowych) oraz dokumentacji. Dla PS_View tworzony jest także skrót (ikona) na pulpicie, umożliwiający „przeciąganie-upuszczanie” na ikonie plików postscriptowych.
Automatyczne ustawienie zmiennych środowiska.
Po instalacji nie są wymagane żadne „ręczne” zmiany ustawień.
Odinstalowanie.
Program instalacyjny rejestruje instalację w menu „Dodaj/Usuń programy” w Panelu sterowania; odinstalowanie odbywa się zatem w standardowy dla Windows sposób.

7.2. Programy pomocnicze dla Windows

Aby instalacja była kompletna, TEX Live wymaga kilku pomocniczych programów, które nie są dostarczane 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. Ponadto posiadanie edytora zorientowanego na środowisko TEX znacznie ułatwi pracę.

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

Perl i Ghostscript.
Oba te programy są niezbędne do poprawnego działania TEX Live, dołączyliśmy zatem Ghostscript 8.62 i minimalną dystrybucję Perl 5.8, wystarczającą do uruchomienia wszystkich, zawartych w TEX Live skryptów perlowych; oba programy zostały „ukryte”, to znaczy tylko programy TEX Live, które z nich korzystają, „wiedzą” gdzie je znaleźć; tym samym nie powinny kolidować z ewentualnie zainstalowanymi w systemie programami Perl i Ghostscript;
narzędzia uruchamiane z linii poleceń
– zestaw kilku przydatnych programów (gzip, unzip, jpeg2ps tiff2png) a także kilka narzędzi z zestawu xpdf, uruchamianych z linii poleceń (sam xpdf nie jest dostępny dla Windows, można jednak pobrać z internetu opartą na nim przeglądarkę PDF: http://blog.kowalczyk.info/software/sumatrapdf);
fc-cache
– program rejestrujący dla XeTEX-a fonty systemowe lub dostarczane w dystrybucji TEX Live fonty OpenType;
PS_View
– nowy program podglądu plików postscriptowych (a także plików PDF), patrz rys. 10.

katalog support,
wspomniany już w części 2.2, zawiera różne programy, które mogą być użyteczne w środowisku TEX-owym (np. edytory/środowiska dla TEX-a); programy te nie są uwzględniane podczas instalacji samego TEX Live, należy je więc zainstalować samodzielnie.


pict

Rysunek 10: PS_View: umożliwia bardzo duże powiększenia!


Poniżej zamieszczono listę miejsc, z których można pobrać programy pomocnicze:

Ghostscript
http://www.cs.wisc.edu/~ghost/
Perl
http://www.perl.org (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
– do przetwarzania i konwersji plików graficznych możemy użyć alternatywnego dla ImageMagick programu NetPBM (http://netpbm.sourceforge.net/)
Edytory dla systemu TEX
– spory wybór programów, uwzględniający indywidualne preferencje użytkownika:

7.3. Program Dviout

Obecne wydanie TEX Live nie oferuje niestety preinstalowanego programu do podglądu plików DVI dla Windows, można jednak samodzielnie zainstalować doskonały dviout, autorstwa Toshio Oshimy. Znajdziemy go w katalogu support/dviout/, zawierającym również krótki plik README omawiający, jak zaistalować i skonfigurować dviout dla TEX Live. Przed instalacją zalecamy przeczytać informacje tam zawarte.

Pierwsze uruchomienie dviout zazwyczaj automatycznie generuje wymagane fonty ekranowe. Po kilku sesjach komunikaty dotyczące generowania fontów staną się rzadsze. Więcej informacji można znaleźć w bardzo dobrym poradniku on-line tego programu.

7.4. User Profile to inaczej Home (katalog domowy)

Odpowiednikiem uniksowego katalogu domowego użytkownika (HOME) jest w Windows katalog określany zmienną %USERPROFILE%. W Windows 2000 i XP jest to zazwyczaj katalog C:\Documents and Settings\<nazwa_użytkownika>, zaś w Windows Vista C:\Users\<nazwa_użytkownika>. W pliku konfiguracyjnym texmf.cnf i bibliotekach Kpathsea znak ~ jest poprawnie rozwijany do odpowiedniej zmiennej zarówno w Windows, jak i w Unix.

7.5. Rejestr Windows

W systemie Windows prawie wszystkie dane konfiguracyjne przechowywane są w tzw. rejestrze. Zawiera on hierachicznie zorganizowane klucze, w ramach kilku kluczy głównych. Najbardziej istotne dla programów instalacyjnych są klucze HKEY_CURRENT_USER oraz HKEY_LOCAL_MACHINE (w skrócie HKCU i HKLM). Część HKCU dotyczy katalogów domowych użytkowników (patrz 7.4), zaś HKLM – podkatalogów systemowych (w katalogu Windows).

Informacje o ustawieniach systemu można czasem uzyskać ze zmiennych środowiska, ale po inne informacje, np. położenie tzw. skrótów, trzeba odwołać się do rejestru. Także zapis zmiennych środowiska na stałe wymaga dostępu do rejestru.

7.6. Uprawnienia w Windows

W nowszych wersjach Windows istnieje wyraźne rozróżnienie między zwykłymi użytkownikami i administratorami, przy czym tylko ci ostatni mają pełną swobodę dostępu do całości systemu. Dołożono wielu starań, aby umożliwić instalację TEX Live także osobom bez uprawnień administratora.

Jeśli osoba instalująca jest administratorem, to skróty są tworzone dla wszystkich użytkowników, także zmienne środowiska są ustawiane dla całego systemu. W przeciwnym wypadku skróty i menu są tworzone jedynie dla konkretnego użytkownika, także definiowane zmienne środowiska dotyczą zwykłych użytkowników. Mając uprawnienia admistratora możemy zainstalować TEX Live tylko dla użytkowników; należy wtedy uruchomić install-tl z parametrem -non-admin.

Bez względu na status użytkownika domyślnym katalogiem głównym instalacji jest katalog w ramach %PROGRAMFILES%. Program instalacyjny zawsze sprawdza, czy ten katalog jest dostępny do zapisu dla aktualnego użytkownika.

Problem może się pojawić wtedy, gdy użytkownik instalujący TEX Live nie jest administratorem, a programy TEX-owe już są w ścieżce przeszukiwania. Wynikowa ścieżka zawiera wtedy ścieżkę systemową, do której dodano ścieżkę do programów użytkownika. W konsekwencji nie będą znajdowane nowo instalowane programy. W celu obejścia tego problemu program instalacyjny tworzy skrót do okna z wierszem poleceń, w którym ścieżka do nowych programów TEX Live ma priorytet. W ten sposób, po uruchomieniu tego skrótu, będzie można korzystać z TEX Live.

7.7. WinShell

Jeśli nie decydujemy się na instalowanie rozbudowanego (ale i bardzo bogatego w funkcje) edytora Emacs, możemy samodzielnie zainstalować prosty i łatwy w obsłudze edytor WinShell. Znajdziemy go na płytce 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 poprawnie będą wyświetlane polskie znaki diakrytyczne, wpisywane za pomocą prawego klawisza Alt.

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

Po wciśnięciu przycisku OK zatwierdzamy zmiany.

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

WinShell jest wyposażony w moduł pomocy, dostępnej po naciśnięciu symbolu ? na pasku z narzędziami.

7.7.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 plików projektu: traktowanego jako główny (Main file) oraz plików części są wyświetlane w lewym oknie edytora. Dwukrotne kliknięcie myszą na nazwie pliku powoduje jego wyświetlenie 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) – u dołu. Gdy plik projektu nie jest używany, lewą część okna można zamknąć, zyskując w ten sposób całą szerokość ekranu dla edytowanego pliku.

7.7.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 PS_View. WinShell pozwala zdefiniować wygodne wywołanie polecenia dvips, które wynik przetwarzania wyśle od razu do drukarki wyposażonej w 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”.

7.8. W razie problemów

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

8. 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. Do optymalnego korzystania z instalacji Web2C przyda się 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.

Do lokalizowania plików programy oparte na 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 wypadku, 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.

8.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 istnienie danego elementu ś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 72) 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 bądź nie odnosi się do danego elementu ścieżki albo też nie zawiera elementów zgodnych, to 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”, to 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, to 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 „../”, to Kpathsea ogranicza się do sprawdzenia, czy ten plik istnieje.

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

8.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 przez 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 sposobem, w jaki programy znajdują plik texmf.cnf, skoro nie ma konieczności deklarowania 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.

Oto fragment pliku konfiguracyjnego, ilustrujący większość opisanych powyżej reguł notacji:

  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;}//

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

8.1.4. Rozwijanie domyślne

Jeżeli ścieżka przeszukiwania największego uprzywilejowania (patrz „Źródła ścieżek” na stronie 66) 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, to 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ż jednym miejscu, 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.

8.1.5. Rozwijanie nawiasów

Użyteczna jest możliwość rozwijania nawiasów, co oznacza, że np. v{a,b}w rozwija się do vaw:vbw. Nawiasy można też zagnieżdżać. Funkcji tej można użyć do zaimplementowania różnych hierarchii TEX-owych przez przypisanie listy nawiasów do $TEXMF. Przykładowo, w pliku texmf.cnf można znaleźć 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 będą przeszukane 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 na uruchamianie dwóch równoległych struktur TEX-owych, jednej „zamrożonej” (np. na CD), a drugiej ciągle uaktualnianej nowo pojawiającymi się wersjami. Używając zmiennej $TEXMF we wszystkich definicjach daje pewność, że najpierw przeszukiwane jest drzewo uaktualnione.

8.1.6. Rozwijanie podkatalogów

Dwa lub więcej kolejnych „ciachów” („/”) w elemencie ścieżki, występujących po nazwie katalogu d, zastępowanych 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 „//”, to 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ę.

8.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 nieuniksowych (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, obejmującego wszystkie znaki do końca linii;
\
znak kontynuacji (pozwala na przełamanie wiersza z wyrażeniem);
!!
przeszukiwanie tylko bazy danych, a nie dysku.

8.2. Bazy nazw plików

Podczas przeszukiwania Kpathsea stara się zminimalizować dostęp do dysku. Niemniej, w przypadku instalacji ze zbyt dużą liczbą katalogów przeglądanie każdego dopuszczalnego katalogu w poszukiwaniu 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 zawiera przypisania plików do katalogów. Unika się w ten sposób 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.

8.2.1. Baza nazw plików

Jak już wspomniano 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.

8.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 „--”, a 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”. Brakuje 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 wypadku parametru „--format”.

--debug=num


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

8.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 odnajdowane 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 wynik przeszukiwania okaże się pusty, 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 wynik.

> kpsewhich -dpi=300 wsuipa10.pk
W tym wypadku, kiedy zaznaczamy, że interesuje nas rozdzielczość 300dpi (-dpi=300), to widzimy, że w naszej instalacji taka czcionka nie jest dostępna. 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 Times z kolekcji URW. W standardzie nazewnictwa fontów mają one prefiks „utm”. Pierwszy plik którego szukamy, to plik konfiguracyjny, zawierający nazwę pliku z przemapowaniem fontów:

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

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

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

utmb8r  NimbusRomNo9L-Medi    ... <utmb8a.pfb
utmbi8r NimbusRomNo9L-MediItal... <utmbi8a.pfb
utmr8r  NimbusRomNo9L-Regu    ... <utmr8a.pfb
utmri8r NimbusRomNo9L-ReguItal... <utmri8a.pfb
utmbo8r NimbusRomNo9L-Medi    ... <utmb8a.pfb
utmro8r NimbusRomNo9L-Regu    ... <utmr8a.pfb
Używając przeszukiwania plików z fontami Type1, znajdźmy font Times Roman utmr8a.pfb w drzewie katalogów texmf:

> kpsewhich utmr8a.pfb
   /usr/local/texmf-dist/fonts/type1/urw/times/utmr8a.pfb

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

8.2.4. Diagnostyka błędów

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

Wartość -1 ustawia wszystkie powyższe opcje – w praktyce, poszukując przyczyny błędów, prawdopodobnie będziesz zawsze używać 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 sytuacji, 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 można wybrać 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 przekierować komunikaty programu do pliku. Do celów diagnostycznych można chwilowo ustawić zmienne (w oknie 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:

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

Ten mały plik korzysta jedynie z 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.pdf). 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 (w celu 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 postscriptowych; więcej szczegółów na temat postscriptowych plików przemapowań fontów można znaleźć w ostatniej części rozdziału 8.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, po czym 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]

8.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 wypadku 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 się okazać 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ść.

Należy tu jednak nadmienić, iż nie wszystkie programy korzystają z tych zmiennych. Np. LuaTEX posiada nowoczesną, w pełni dynamiczną alokację pamięci, a zatem powyższe zmienne są w tym przypadku po prostu ignorowane.

9. 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 DVD w katalogu source.

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

9.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. Poprawnie powinny pracować gcc-2.7.*, flex-2.4.7 i GNU make-3.72.1 lub nowszy. Można też korzystać z innych kompilatorów C i programów make, wymaga to jednak dobrego zrozumienia zasad tworzenia programów uniksowych, aby móc poradzić sobie z ewentualnymi problemami.

9.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 się zdecydować, 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 użyta podczas instalacji 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 użyty 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 razie wybrania innego katalogu, trzeba ten katalog wyszczególnić parametrem --datadir skryptu configure.

Jeżeli nie chcemy używać katalogu $PLATFORM (a więc umieścić binaria bezpośrednio w $TEXDIR/bin), to 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 ) można zobaczyć, uruchamiając ./configure --help.

9.3. Uruchamianie make

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

> make world
i …zaparzyć sobie kawę.

Może się też przydać zapisanie całego procesu kompilacji w pliku .log:

> 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 TEXDIR/bin/archname
> ls | wc
Oczekiwanym rezultatem jest ponad 200. 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

9.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 MANPATH INFOPATH i dołączyć do nich odpowiednie nazwy podkatalogów, tj. $TEXDIR/man oraz $TEXDIR/info. Patrz część 3.4 (str. 40).

Jeśli zechcesz udostępnić skompilowane przez siebie programy, skontaktuj się z nami (tex-live@tug.org); chętnie umieścimy je na stronie TEX Live.

10. Podziękowania

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

Binaria dla różnych platform skompilowali: Reinhard Kotucha (x86_64-linux), Tim Arnold (hppa-hpux), Randy Au (amd64-freebsd), Edd Barrett (i386-openbsd), Karl Berry (i386-linux), Akira Kakuto (win32), Dick Koch (universal-darwin), Manfred Lotz (i386-freebsd), Norbert Preining (alpha-linux), Arthur Reutenauer (sparc-linux), Thomas Schmitz (powerpc-linux), Apostolos Syropoulos (i386-solaris), Vladimir Volovich (powerpc-aix, sparc-solaris), Olaf Weber (mips-irix). Informacje na temat procesu budowy TEX Live można znaleźć na stonie: http://tug.org/texlive/build.html.

Aktualizacje i tłumaczenia dokumentacji wykonali: Siep Kroonenberg i Karl Berry (angielski), Daniel Flipo (francuski), Klaus Höppner (niemiecki), Petr Sojka i Jan Busa (czeski/słowacki), Boris Veytsman (rosyjski), Staszek Wawrykiewicz (polski). Na stronie http://tug.org/texlive/doc.html będą umieszczane ewentualne aktualizacje tej dokumentacji.

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

11. Historia

11.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 ten był wprawdzie zbyt ambitny, zrodził jednak 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 wyników wprowadzenia tego standardu mogłaby być modelowa struktura na płytce CD. Wydana wówczas płytka CD była 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 płytki CD, opartej na standardzie TDS i zorientowanej na systemy uniksowe, rozpoczął się jesienią 1995 roku. Szybko zdecydowaliśmy się na wykorzystanie teTEX-a autorstwa Thomasa Essera, ponieważ działał na wielu platformach 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ą, istotnie 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, z użyciem nowej wersji teTEX-a i nowej wersji Web2C (7.3). Wtedy to też zapoczątkowano kompletną dystrybucję dla Windows.

Edycja piąta (marzec 2000) zawierała wiele poprawek i uzupełnień; zaktualizowano setki pakietów. Szczegółową zawartość pakietów zapisano w plikach XML. Główną zmianą w TEX Live 5 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, nadal jednak 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 też 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:

11.2. Edycja 2004

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

11.3. Edycja 2005

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

11.4. Edycja 2007

Największą nowością edycji lat 2006 i 2007 był XeTEX, w postaci programów xetex xelatex; patrz texmf-dist/doc/xetex/XeTeX-reference.pdf lub http://scripts.sil.org/xetex.

W istotny sposób został zaktualizowany MetaPost, zaplanowano także jego dalszy rozwój (http://tug.org/metapost/articles); to samo dotyczy pdfTEX-a (http://tug.org/applications/pdftex).

Pliki formatów (pdf)TeX-a (.fmt) oraz analogiczne dla MetaPosta i MetaFonta są od tej edycji zapisywane w podkatalogach texmf/web2c, choć sam ten katalog jest nadal przeszukiwany. Podkatalogi te mają nazwę zgodną z zastosowanym podczas generowania „silnikiem”, np. tex, pdftex lub xetex. Zmiana ta nie powinna być zauważalna w typowym użyciu.

Program tex (plain) od tej edycji już nie analizował pierwszego wiersza rozpoczynającego się znakami %&, aby ustalić jaki ma wczytać format. Pozostał zatem czysty, Knuthowy TEX. LATEX i wszystkie pozostałe formaty nadal analizują pierwszy wiersz z %&.

Oczywiście, jak zwykle, w okresie od poprzedniego wydania opracowano setki innych aktualizacji pakietów i programów. Kolejne aktualizacje można znaleźć tradycyjnie na CTAN (http://www.ctan.org).

Drzewo źródłowe TEX Live jest odtąd przechowywane w Subversion. Przeglądanie umożliwia standardowy interfejs www, a jego adres zamieszczono na stronie http://tug.org.pl/texlive. Mimo iż nie widać efektów tej zmiany w końcowej dystrybucji, mamy nadzieję, że w nadchodzących latach będzie to stabilne repozytorium oprogramowania dla rozwoju TEX Live.

W maju 2006 r. Thomas Esser ogłosił, że zaprzestaje aktualizowania dystrybucji teTEX (http://tug.org/tetex). Spowodowało to znaczny wzrost zainteresowanie TEX Live, szczególnie wśród dystrybutorów GNU/Linuksa. (W TEX Live zdefiniowano w przybliżeniu równoważny, nowy schemat instalacyjny pod nazwą tetex.) Mamy nadzieję, że w przyszłości doprowadzi to do takich ulepszeń w otoczeniu TEX-owym, na których skorzystają wszyscy.

Wszystkie wydania TEX Live, wraz z dodatkowymi materiałami (np. okładkami płytek), są dostępne na stronie: ftp://tug.org/historic/systems/texlive.

11.5. Wydanie obecne

W 2008 roku cała infrastruktura TEX Live została przeprojektowana i przeprogramowana. Informacja dotycząca instalacji jest przechowywana obecnie w zwykłym pliku tekstowym tlpkg/texlive.tlpdb.

Po zainstalowaniu TEX Live wreszcie jest możliwa jego aktualizacja z internetu, podobnie jak od paru lat umożliwia to dystrybucja MiKTEX. Zamierzamy regularnie aktualizować pakiety, w miarę jak będą się pojawiać na serwerach CTAN.

W tym wydaniu pojawił się nowy „silnik”, LuaTEX (http://luatex.org). Prócz nowych, elastycznych możliwości dotyczących składu, udostępnia on doskonały język skryptowy do zastosowania zarówno w dokumentach TEX-owych, jak i poza nimi.

Obsługa dla Windows i platform opartych na Unix została obecnie znacznie bardziej zunifikowana. W szczególności większość skryptów w Perlu i Lua dostępna jest teraz także dla Windows (zastosowano „wewnętrzny” Perl, dostarczany wraz z TEX Live).

Pojawił się nowy skrypt tlmgr (patrz część 6), który staje się głównym narzędziem do zarządzania TEX Live po jego instalacji. Umożliwia on aktualizację pakietów wraz z niezbędnymi wtedy czynnościami, jak regenerowanie formatów, aktualizacja map fontowych itp.

Wraz z pojawieniem się tlmgr niektóre funkcje texconfig zostały zablokowane (edycja plików konfiguracyjnych formatów i wzorców przenoszenia).

Program xindy do tworzenia skorowidzów (http://xindy.sourceforge.net/) jest obecnie dostępny dla większości platform.

Narzędzie kpsewhich może obecnie raportować wszystkie wyniki przeszukiwania danego pliku (parametr –all), jak również ograniczyć wyszukiwanie do jednego katalogu (parametr –subdir).

Program dvipdfmx posiada obecnie funkcję extractbb uzyskania informacji o prostokącie ograniczającym (bounding box); jest to jedna z ostatnich cech przejętych od dawniej używanego programu dvipdfm (który jest nadal dostępny).

Usunięto aliasy fontów Times-Roman, Helvetica, itd. Różne pakiety korzystały z nich w nieoczekiwany sposób (np. spodziewając się, że fonty te będą miały różne kodowanie). Nie ma obecnie dobrego sposobu na rozwiązanie tych sprzeczności.

Usunięto format platex, by uniknąć konfliktu nazwy z używanym od wielu lat japońskim pakietem platex; pakiet polski (czyli dawny platex) jest obecnie wystarczającym sposobem na polonizację dla LATEX-a.

Usunięto pliki .pool, które są obecnie wkompilowane w programy, co ułatwia ich aktualizację.

Do tego wydania włączono także ostatnie zmiany dokonane przez Donalda Knutha (tzw. TEX tuneup of 2008); patrz: http://tug.org/TUGboat/Articles/tb29-2/tb92knut.pdf.

11.6. Przyszłe wersje

Niniejsza dystrybucja nie jest doskonała! Planujemy kontynuować wydawanie nowych wersji i chcielibyśmy, żeby zawierały one jeszcze więcej pomocnej dokumentacji, więcej programów użytkowych, lepsze programy instalacyjne oraz 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 zostało do zrobienia. Jeżeli możesz pomóc, nie zastanawiaj się i przyłącz się do nas. Patrz: http://tug.org/texlive/contribute.html.

Prosimy o przesyłanie poprawek, sugestii i uzupełnień oraz deklaracji pomocy w opracowywaniu kolejnych edycji pod adres: tex-live@tug.org