## Przewodnik TeX Live 2023

Karl Berry
tłumaczenie: Zofia Walczak
https://tug.org/texlive/
Luty 2023 r.

### 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 Uwagi dotyczące bezpieczeństwa
1.5 Dostępna pomoc
2 Przegląd TeX Live
2.1 Kolekcje TeX-a: TeX Live, MacTeX, MiKTeX, CTAN
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
3 Instalacja
3.1 Start instalacji
3.1.1 Unix
3.1.2 macOS
3.1.3 Windows
3.1.4 Cygwin
3.1.5 Instalator w trybie tekstowym
3.1.6 Instalator w trybie graficznym
3.2 Uruchamianie instalacji
3.2.1 Menu: binary systems (tylko Unix)
3.2.2 Wybór składników do instalacji
3.2.3 Katalogi
3.2.4 Opcje
3.3 Parametry instalacji z linii poleceń
3.3.1 Parametr -repository
3.4 Czynności poinstalacyjne
3.4.1 Zmienne środowiska dla Unix
3.4.2 Zmienne środowiska: konfiguracja globalna
3.4.3 Aktualizacje z internetu po instalacji z DVD
3.4.4 Konfiguracja fontów dla XeTeX i LuaTeX
3.4.5 ConTeXt LMTX i MKIV
3.4.6 Integracja lokalnych i prywatnych pakietów makr
3.4.7 Integracja fontów z innych źródeł
3.5 Testowanie instalacji
3.6 Usuwanie instalacji TeX Live
3.7 Dodatkowe oprogramowanie
4 Instalacje zaawansowane
4.1 Instalacje dla wielu użytkowników (lub wieloplatformowe)
4.2 Instalacja przenośna (USB)
5 tlmgr: Zarządzanie instalacją
5.1 tlmgr – tryb graficzny (GUI)
5.2 Przykładowe wywołania tlmgr z linii poleceń
6 Uwagi dotyczące Windows
6.1 Cechy specyficzne w systemie Windows
6.2 Dodatkowe programy pomocnicze dla Windows
6.3 Korzystanie z zewnętrznych instalacji Perla, Tcl/Tk i Ghostscripta
6.4 User Profile (inaczej Home – katalog domowy)
6.5 Rejestr Windows
6.6 Uprawnienia w Windows
6.7 Zwiększanie maksymalnej dostępnej pamięci w Windows i Cygwin
7 Instrukcja obsługi systemu Web2C
7.1 Przeszukiwanie ścieżek przez Kpathsea
7.1.1 Źródła ścieżek
7.1.2 Pliki konfiguracyjne
7.1.3 Rozwijanie ścieżek
7.1.4 Rozwijanie domyślne
7.1.5 Rozwijanie nawiasów
7.1.6 Rozwijanie podkatalogów
7.1.7 Lista znaków specjalnych w plikach texmf.cnf – podsumowanie
7.2 Bazy nazw plików
7.2.1 Baza nazw plików
7.2.2 kpsewhich – program do przeszukiwania ścieżek
7.2.3 Przykłady użycia
7.2.4 Diagnostyka błędów
7.3 Parametry kontrolujące działanie programów
7.4 $TEXMFDOTDIR
8 Podziękowania
9 Historia
9.1 Poprzednie wersje
9.1.1 Wydanie 2003
9.1.2 Wydanie 2004
9.1.3 Wydanie 2005
9.1.4 Wydanie 2006–2007
9.1.5 Wydanie 2008
9.1.6 Wydanie 2009
9.1.7 Wydanie 2010
9.1.8 Wydanie 2011
9.1.9 Wydanie 2012
9.1.10 Wydanie 2013
9.1.11 Wydanie 2014
9.1.12 Wydanie 2015
9.1.13 Wydanie 2016
9.1.14 Wydanie 2017
9.1.15 Wydanie 2018
9.1.16 Wydanie 2019
9.1.17 Wydanie 2020
9.1.18 Wydanie 2021
9.1.19 Wydanie 2022
9.2 Wydanie 2023
9.3 Przyszłe wersje

### 1. Wstęp

#### 1.1. TeX Live i TeX Collection

Ten dokument opisuje oprogramowanie TeX Live – dystrybucję TeX-a wraz z programami pomocniczymi, dostępną dla systemów GNU/Linux, różnych wersji Unix, macOS oraz Windows.

TeX Live można ściągnąć z sieci bądź otrzymać na płytce DVD TeX Collection, którą otrzymują członkowie krajowej Grupy Użytkowników Systemu TeX. Część 2.1 omawia pokrótce zawartość tej płytki DVD. Zarówno TeX Live, jak i TeX Collection powstały dzięki zbiorowemu wysiłkowi różnych grup użytkowników TeX-a. W tym dokumencie omówimy głównie samą dystrybucję TeX Live.

TeX Live zawiera pliki wykonywalne programów: TeX, LaTeX2e, ConTeXt, METAFONT, MetaPost, BibTeX i wielu innych, bogaty zestaw pakietów makr o wielorakim zastosowaniu, fontów i dokumentacji w różnych językach, a także wsparcie składu publikacji w wielu językach świata.

Lista najważniejszych zmian w tej edycji TeX Live znajduje się w części 9.2, na str. 103.

Czytelnik nie znajdzie w tym dokumencie informacji o systemie TeX, a jedynie najważniejsze etapy instalacji i konfiguracji oprogramowania TeX Live.

Podstawowe pojęcia dotyczące TeX-a początkujący użytkownicy znajdą np. w artykule Przewodnik po systemie TeX: texmf-dist/doc/generic/tex-virtual-academy-pl/cototex.html lub na dowolnej stronie internetowej poświęconej TeX-owi.

#### 1.2. Obsługiwane systemy operacyjne

TeX Live zawiera oprogramowanie dla wielu platform uniksowych, w tym GNU/Linux, macOS i Cygwin. Dołączone źródła mogą być skompilowane na platformach, dla których nie udostępniamy plików binarnych.

Spośród systemów Windows obsługiwane jest Windows 7 i wersje późniejsze. W Windows Vista r ównie ż powinien zadziałać, ale TeX Live nie może już być instalowany w systemach Windows XP i wcześniejszych. TeX Live zawiera binaria dla 64-bitowych wersji Windows.

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

#### 1.3. Podstawy instalacji TeX Live

TeX Live można zainstalować z płytki DVD lub internetu ( https://tug.org/texlive/acquire.html). Program instalacyjny jest niewielki i pozwala pobrać z sieci wszystkie potrzebne pakiety. Jest to wygodne, zwłaszcza gdy potrzebujemy jedynie części oprogramowania TeX Live i nie chcemy pobierać niepotrzebnie obrazu całej płytki instalacyjnej.

Płytka DVD (lub jej obraz w pliku .iso) pozwala zainstalować TeX Live na dysku lokalny ale nie można uruchomić TeX Live bezpośrednio z TeX Collection DVD albo z jej obrazu. Mo żna przygotować instalację przenośną np. na pendrivie (patrz rozdział 4.2). Szczegółowy opis instalacji TeX Live znajduje się w dalszych rozdziałach tego dokumentu (str. 12), poniżej zaś informacja w skrócie.

- Skrypt instalacyjny dla systemu Unix nosi nazwę install-tl zaś dla systemów Windows należy użyć instal-tl-windows. Program instalacyjny będzie działał w trybie graficznym z opcją -gui (tryb domyślny dla Windows) lub w trybie tekstowym z opcją -gui=text (tryb domyślny dla pozostałych platform).

- Jednym z instalowanych programów jest tlmgr (menedżer TeX Live), który można uruchomić zarówno w trybie tekstowym jak i graficznym (GUI). Pozwala on doinstalować lub usunąć pakiety, aktualizować je z sieci, a także wykonywać różne czynności konfiguracyjne.

#### 1.4. Uwagi dotyczące bezpieczeństwa

Zgodnie z naszą najlepszą wiedzą, główne programy TeX-owe są (i zawsze były) nadzwyczaj odporne. Jednak mimo dokładania najwyższej staranności, inne programy wspierające, zawarte w TeX Live nie zawsze osiągają ten sam poziom. Jak zawsze, należy być ostrożnym przy uruchamianiu programów z danymi pochodzącymi z niepewnych źródeł. Dla zwiększenia stopnia bezpieczeństwa zalecamy stosowanie podczas pracy nowych podfolderów.

Konieczność zachowania staranności jest szczególnie ważna w systemie Windows, ponieważ niezależnie od zawartości ścieżki przeszukiwania poszukuje on programów zawsze najpierw w bieżącym folderze. To zachowanie systemu otwiera szerokie możliwości ataku. Usunęliśmy wiele luk, lecz niewątpliwie niektóre jeszcze pozostały, szczególnie przy uruchamianiu programów pochodzących z innych źródeł. Zalecamy więc sprawdzanie bieżących folderów pod kątem obecności podejrzanych plików, w szczególności plików wykonywalnych (binarnych lub skryptów). Zwykle nie powinno ich być, a w szczególności nie powinny być one tworzone w wyniku typowego przetwarzania dokumentów.

I na koniec: TeX (oraz towarzyszące mu programy) mogą, przy przetwarzaniu dokumentów, tworzyć pliki. Własność ta jest na wiele różnych sposobów podatna na nadużycia. Także w tych przypadkach, przetwarzanie nieznanych dokumentów w nowych podfolderach jest najlepszym znanym sposobem zabezpieczenia.

Innym elementem dbałości o bezpieczeństwo jest upewnienie się, że pobrany materiał nie został zmieniony po utworzeniu. Program tlmgr (punkt 5) wykona automatycznie weryfikację kryptograficzną pobieranego materiału, o ile w systemie dostępny jest program gpg (GNU Privacy Guard). Nie jest on dystrybuowany jako część TeX Live, ale w razie potrzeby informację o gpg można znaleźć na https://texlive.info/tlgpg/.

#### 1.5. 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 mogą się znaleźć mniej lub bardziej doświadczeni użytkownicy. (Jeśli preferujemy komercyjne wsparcie techniczne, to możemy zamiast TeX Live zakupić system u jednego z dostawców, których listę można znaleźć pod adresem
https://tug.org/interest.html#vendors.)

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

Start

  Jeśli właśnie zaczynasz używać TeX-a, krótkie wprowadzenie do systemu znajdziesz na stronie https://tug.org/begin.html.

CTAN

  Jeśli szukasz konkretnego pakietu, fontu, programu itp. powinieneś odwiedzić CTAN ( https://ctan.org). Jest to ogromny zbiór wszystkich elementów związanych z TeX-em. Wpisy w katalogu informują również, czy dany pakiet jest dostępny dla TeX Live czy dla MiKTeX-a.

TeX FAQ

  TeX-owy FAQ jest obszernym zbiorem odpowiedzi na wiele pytań, od najprostszych do najbardziej zaawansowanych. Znajdziesz go w Internecie na stronie https://texfaq.org.

TeX Zasoby internetowe

  Strona https://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

  Główne fora wsparcia użytkowników TeX-a to dla LaTeX-a https://latex.org/, https://tex.stackexchange.com (strona typu pytanie-odpowiedź), grupa dyskusyjna Usenet news:comp.text.tex, czy lista dyskusyjna texhax@tug.org.

Wysyłanie pyta ń

  Jeśli nie znajdziemy rozwiązania problemu wśród tematów poruszanych na listach dyskusyjnych, możemy, poprzez ich strony internetowe, wysłać swoje pytanie do https://latex-community.org/ i https://tex.stackexchange.com/, do comp.text.tex poprzez Google, bądź pisząc list na adres texhax@tug.org.

  Przed wysłaniem zapytania nale ży zapoznać się z poradami dotyczącymi sposobu formułowania pytań, zawartymi w FAQ: https://texfaq.org/FAQ. Zastosowanie się do tych zasad zwiększy szanse na otrzymanie użytecznej odpowiedzi.

  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 ze strony społeczno ści TeX Live

  Zauważony błąd, sugestie i komentarze dotyczące dystrybucji TeX Live, instalacji lub dokumentacji możemy zgłosić na listę dyskusyjną tex-live@tug.org. Jeśli pytanie dotyczy użycia konkretnego programu (pakietu makr itp.) z TeX Live, to lepiej je skierować do osoby opiekującej się danym programem lub na specjalistyczną listę dyskusyjną. Uruchomienie programu z parametrem --help dostarczy adres zgłaszania błędów.

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. Przegląd TeX Live

Omówimy teraz zawartość dystrybucji TeX Live, a także TeX Collection – płytki DVD, w skład której wchodzi TeX Live.

#### 2.1. Kolekcje TeX-a: TeX Live, MacTeX, MiKTeX, CTAN

Płytka DVD TeX Collection zawiera:

TeX Live

  to kompletny system TeX, który pozwala na instalację na twardym dysku lub przygotowanie przenośnej instalacji np. na pendrivie, strona domowa projektu: https://tug.org/texlive/;

MacTeX

  dla systemu macOS posiada własny program instalacyjny macOS i dodatkowe programy dla tego systemu, strona domowa projektu: https://tug.org/mactex/;

MiKTeX

  Inna dystrybucja dla wszystkich systemów operacyjnych tj. Windows, GNU/Linux i macOS (ale DVD zawiera tylko binaria dla Windows). Posiada zintegrowany menedżer pakietów, który instaluje brakujące komponenty z Internetu, w zależności od potrzeb. Strona domowa projektu: https://miktex.org;

CTAN

  to zrzut zawartości archiwów CTAN ( https://www.ctan.org). CTAN nie spełnia tych samych wymogów dotyczących swobody kopiowania co TeX Live, więc należy być ostrożnym podczas redystrybucji lub modyfikacji.

#### 2.2. Główne katalogi TeX Live

Poniżej wymieniono ważniejsze podkatalogi głównego katalogu instalacji TeX Live (na płytce TeX Collection DVD cała dystrybucja TeX Live została umieszczona nie w katalogu głównym, ale w katalogu texlive, którego struktura nieco się różni; poniżej traktujemy katalog texlive jako katalog główny we wszystkich odniesieniach do instalacji TeX Live).

bin

  Skompilowane programy TeX-owe i pomocnicze, zorganizowane w podkatalogach według platform systemowych.

readme-*.dir

  Krótkie omówienie z użytecznymi odnośnikami, w kilku językach, w formacie HTML i zwykłym tekstowym.

source

  Źródła wszystkich programów, włącznie z głównymi dystrybucjami TeX-a opartymi na Web2C.

texmf-dist

  Główne drzewo katalogów instalacji (zawiera makra, fonty i dokumentacje, patrz: TEXMFDIST w następnej części).

tlpkg

  Skrypty, programy i inne dane potrzebne do instalacji. Katalog zawiera także „prywatne” dla TeX Live kopie oprogramowania 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 i PDF – PS_View dla Windows.

Do znalezienia dokumentacji mogą się przydać na przykład dowiązania zawarte w pliku doc.html. Dokumentacje niemal wszystkiego (pakietów makr, formatów, fontów, programów, przewodników man i info, często także w formacie PDF) znajdują się w katalogu texmf-dist/doc/. W odszukaniu konkretnej dokumentacji w dowolnym z wymienionych katalogów może pomóc program texdoc.

Po instalacji niniejsza dokumentacja jest dostępna w różnych językach w podkatalogach texmf-dist/doc/texlive:

- czeski/słowacki: texmf-dist/doc/texlive/texlive-cz

- niemiecki: texmf-dist/doc/texlive/texlive-de

- angielski: texmf-dist/doc/texlive/texlive-en

- francuski: texmf-dist/doc/texlive/texlive-fr

- włoski: texmf-dist/doc/texlive/texlive-it

- japoński: texmf-dist/doc/texlive/texlive-ja

- polski: texmf-dist/doc/texlive/texlive-pl

- rosyjski: texmf-dist/doc/texlive/texlive-ru

- serbski: texmf-dist/doc/texlive/texlive-sr

- hiszpański: texmf-dist/doc/texlive/texlive-es

- uproszczony chiński: texmf-dist/doc/texlive/texlive-zh-cn

#### 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 ich przeznaczenie i domyślny układ TeX Live. Uruchomiając polecenie tlmgr conf, wyświetlimy wartości tych zmiennych, dzięki czemu łatwo ustalimy, które katalogi w naszej instalacji są przypisane do konkretnych zmiennych.

Wszystkie drzewa katalogów, włącznie z prywatnymi katalogami użytkownika, powinny mieć strukturę zgodną z zaleceniami TeX Directory Structure (TDS, https://tug.org/tds), konsekwentnie wraz z odpowiednimi podkatalogami. W przeciwnym wypadku potrzebne pliki mogą nie zostać odnalezione. W części 3.4.6 (str. 42) będzie to omówione dokładniej. Porządek na liście jest odwrotny do tego, w jakim drzewa są przeszukiwane, to znaczy, drzewa umieszczone na liście później przesłaniają wcześniejsze.

TEXMFDIST

  Drzewo katalogów zawierające niemal wszystkie pliki dystrybucji: pliki konfiguracyjne, pakiety makr, fontów, pomocnicze skrypty, dokumentacje itp. (pozostałe pliki dystrybucji, czyli programy, znajdują się w równoległym katalogu bin/).

TEXMFSYSVAR

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

TEXMFSYSCONFIG

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

TEXMFLOCAL

  Drzewo katalogów, które administratorzy mogą wykorzystać do przechowywania lokalnych makr, fontów itp., dostępnych dla wszystkich użytkowników w lokalnej sieci.

TEXMFHOME

  Drzewo katalogów dla prywatnych makr, fontów itp. użytkownika. Zmienna ta wskazuje własny katalog każdego użytkownika.

TEXMFVAR

  Lokalne drzewo katalogów wykorzystywane przez texconfig, updmap-user i fmtutil-use do przechowywania wygenerowanych plików formatów i map fontowych.

TEXMFCONFIG

  Lokalne drzewo katalogów wykorzystywane przez narzędzia texconfig, updmap-sys oraz fmtutil-sys do przechowywania danych konfiguracyjnych.

TEXMFCACHE

  Drzewa katalogów wykorzystywane przez ConTeXt MkIV oraz LuaLaTeX do przechowywania buforowanych danych z przetwarzania; domyślna wartość w TeX Live jest identyczna z TEXMFSYSVAR lub – jeśli katalog jest niedostępny do zapisu – TEXMFVAR.

Oto domyślny układ katalogów:

og ólnosystemowy katalog instalacji

  może zawierać kilka wydań TeX Live (/usr/local/texlive domyślnu dla Unix):

  2022

    poprzednie wydanie

  2023

    wydanie aktualne

    bin

      i386-linux

        binaria dla GNU/Linux (32-bit)

      ...

      universal-darwin

        binaria dla macOS

      x86_64-linux

        binaria dla GNU/Linux (64-bit)

      windows

        binaria dla Windows (64-bit)

    texmf-dist

      określany zmienną TEXMFDIST i TEXMFMAIN

    texmf-var

      TEXMFSYSVAR, TEXMFCACHE

    texmf-config

      TEXMFSYSCONFIG

  texmf-local

    TEXMFLOCAL, katalog zachowywany od wydania do wydania

katalog domowy u żytkownika

  ($HOME lub %USERPROFILE%)

  .texlive2022

    prywatne pliki konfiguracyjne poprzedniego wydania

  .texlive2023

    prywatne pliki konfiguracyjne bieżącego wydania

    texmf-var

      TEXMFVAR, TEXMFCACHE

    texmf-config

      TEXMFCONFIG

  texmf

    TEXMFHOME prywatne makra, fonty itp.

#### 2.4. Rozszerzenia TeX-a

Oryginalny TeX, stworzony przez prof. Knutha, został zamrożony, ale jest i zawsze będzie w przyszłości dostępny w dystrybucji. TeX Live zawiera ponadto kilka wersji rozszerzonych standardowego TeX-a (tzw. „silników” TeX-a):

ε-TeX

  jest wersją 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 do składu również od prawej do lewej. W trybie domyślnym ε-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

  zawiera silnik ε-TeX i inne rozszerzenia, umożliwia tworzenie dokumentów zarówno w formacie PDF, jak i DVI. Jest on domyślnym programem dla wielu zwykłych formatów, np. etex, latex, pdflatex. Jego witryna internetowa znajduje się pod adresem https://www.pdftex.org/. Podręczniki znajdziemy w katalogu texmf-dist/doc/pdftex/manual/pdftex-a.pdf, zaś przykłady wykorzystania niektórych jego funkcji w pliku texmf-dist/doc/pdftex/samplepdftex/samplepdf.tex.

LuaTeX

  przyjmuje teksty kodowane w Unicode oraz może korzystać z fontów OpenType/TrueType i systemu operacyjnego. Zawiera również interpreter Lua ( https://lua.org/), co pozwala na rozwiązywanie wielu trudnych problemów TeX-owych. Użyty jako texlua ma funkcjonalność samodzielnego interpretera Lua. Jego witryna internetowa znajduje się pod adresem https://www.luatex.org/ a podręcznik w instalacji w pliku texmf-dist/doc/luatex/base/luatex.pdf.

(e)(u)pTeX

  obsługują japońskie wymagania składu; pTeX jest silnikiem podstawowym, wariant e- dodaje funkcjonalność ε-TeX-a a wariant u- obsługę Unicode.

XeTeX

  przyjmuje teksty kodowane w Unicode oraz może korzystać z fontów OpenType/Truetype i systemu operacyjnego, do czego stosuje standardowe biblioteki zewnętrzne. Patrz https://tug.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 Ω” (OTPs), co pozwala użytkownikowi definiować złożone transformacje, wykonywane na dowolnych strumieniach wejściowych. Sam program od dawna nie jest aktualizowany, został więc usunięty z TeX Live. Pozostawiono jego działający klon Aleph.

Aleph

  Łączy rozszerzenia Ω i ε-TeX. Patrz texmf-dist/doc/aleph/base.

#### 2.5. Inne ważniejsze programy TeX Live

Poniżej zestawiono kilka innych, najczęściej używanych programów, dostępnych w dystrybucji TeX Live:

bibtex, biber

  wspomagają tworzenie spisów bibliograficznych;

makeindex, upmendex, xindex, xindy

  wspomagają tworzenie posortowanych skorowidzów;

dvips

  pozwala konwertować DVI do PostScript;

dvipdfmx

  pozwala konwertować DVI do PDF, metoda alternatywna w stosunku do wspomnianego wyżej programu pdfTeX;

xdvi

  przeglądarka plików DVI dla X Window;

dviconcat, dviselect

  programy do manipulacji stronami w plikach DVI;

psselect, psnup, …

  narzędzia do manipulacji na plikach postscriptowych;

pdfjam, pdfjoin, …

  : narzędzia do manipulacji na plikach PDF;

context, mtxrun

  : programy uruchomieniowe dla ConTeXt i PDF;

htlatex, …

  tex4ht: (LA )TeX postprocesor konwersji do HTML (i XML, DocX i innych).

### 3. Instalacja

#### 3.1. Start instalacji

Instalację TeX Live uruchamiamy z płytki TeX Collection DVD lub po pobraniu z sieci pakietu instalacyjnego i jego rozpakowaniu. Dodatkowe informacje na temat różnych metod instalacji znajdziemy na stronie https://tug.org/texlive/acquire.html.

Instalacja z sieci; pliki .zip lub tar.gz:

  Z archiwum CTAN, z katalogu systems/texlive/tlnet ( https://mirror.ctan.org/systems/texlive/tlnet powinien przekierować do najbliższej, aktualnej kopii CTAN) należy pobrać plik install-tl.zip (wspólny 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 i install-tl-windows.bat.

Instalacja z sieci; Windows .exe:

  Z archiwum CTAN pobrać plik jak poprzednio i kliknąć dwa razy. Na ekranie pojawi się okienko widoczne na rys. 1, uruchomiony zostanie pierwszy krok instalacji i będziemy mogli wybrać jedną z dwóch akcji: ’Install’ (zainstaluj) lub ’Unpack only’ (tylko rozpakuj).

InstalacjaTeX Collection z płytki DVD:

  Po uruchomieniu płytki należy przejść do katalogu texlive DVD (w Windows program instalacyjny powinien uruchomić się automatycznie po włożeniu płytki). DVD otrzymamy w ramach członkostwa w dowolnej grupie użytkowników TeX-a (rekomendowane, w Polsce to GUST http://www.gust.org.pl), możemy też kupić ją w sklepie ( https://tug.org/store) lub wypalić z dostępnego w sieci (CTAN ) jej obrazu ISO. Można też bezpośrednio zainstalować plik obrazu (w większości systemów istnieje taka możliwość). Po zainstalowaniu z DVD lub obrazu ISO można aktualizować pakiety bezpośrednio z internetu (patrz rozdział 3.4.3).

Rysunek 1: First stage of Windows .exe installer. Po naciśnięciu guzika Instaluj pojawi się okienko jak na rysunku 3.

Bez względu na źródło program instalacyjny jest ten sam. Podczas instalacji z sieci pobierane są najnowsze aktualizacje pakietów, natomiast zawartość DVD i obrazu ISO, nie jest aktualizowana pomiędzy corocznymi wydaniami.

Gdy łączymy się z siecią poprzez serwer proxy, należy uwzględnić jego ustawienia dla programu Wget w pliku ~/.wgetrc bądź poprzez modyfikację zmiennych środowiskowych (patrz https://www.gnu.org/software/wget/manual/html_node/Proxies.html). Można też użyć dowolnego innego programu do pobierania. Oczywiście uwaga ta jest nieistotna gdy instalujemy z DVD lub obrazu płyty ISO.

Dalsze kroki instalacji szerzej omówiono poniżej.

##### 3.1.1. Unix

Poniżej > oznacza znak zachęty systemu (tzw. prompt); to, co wpisuje użytkownik, zaznaczono pogrubieniem. Program install-tl jest skryptem Perla, więc w oknie terminala należy napisać:

> perl /path/to/installer/install-tl
(można także uruchomić /path/to/installer/install-tl, o ile posiada on tryb „wykonywalny”, lub najpierw zmienić katalog poleceniem cd, itd.; w dalszej części nie będziemy powtarzali wszelkich możliwych kombinacji). Zalecane jest powiększenie okna terminala, aby wyświetlić pełną zawartość ekranu programu instalacyjnego (rys. 2).

Do uruchomienia w trybie graficznym (GUI; rys. 4) wymagane jest zainstalowanie w systemie programu Tcl/Tk. Mając go możemy uruchomić:

> perl install-tl -gui

Stare opcje -wizard i -perltk/-expert realizują to samo co -gui. Kompletny wykaz dostępnych opcji można uzyskać uruchamiając:

> perl install-tl -help

O uprawnieniach w Unix: program instalacyjny będzie respektować aktualną wartość umask. Jeżeli więc chcemy, aby instalacja była dostępna dla innych użytkowników, musimy ustawić wartość np. umask 002. Więcej informacji na temat umask znajdziemy w dokumentacji posiadanego systemu operacyjnego.

Uwagi specjalne dotyczące Cygwin: w odróżnieniu od wielu rzeczywistych systemów operacyjnych, których Cygwin jest jedynie emulatorem, w środowisku tym mogą nie być domyślnie zainstalowane niektóre programy wymagane dla instalatora TeX Live. Dodatkowe informacje – patrz część 3.1.4.

##### 3.1.2. macOS

Jak wspomniano w części 2.1, dla macOS przygotowano odrębną dystrybucję nazwaną MacTeX ( https://tug.org/mactex). W jej 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 między różnymi dystrybucjami TeX Live dla Macs, wykorzystując tzw. struktury danych TeXDist.

MacTeX jest oparty na TeX Live i główne drzewa katalogów, programy są w nim dokładnie takie same; dodano jedynie katalogi ze specyficznymi dla tego systemu dokumentacjami i aplikacjami.

##### 3.1.3. Windows

Gdy używamy pobranego z sieci i rozpakowanego z pliku zip instalatora (bądź program ten nie uruchamia się automatycznie po włożeniu DVD do napędu), należy uruchomić install-tl-windows.bat (np. podwójnym kliknięciem myszy).

Można to uczynić także z linii poleceń. Poniżej > oznacza znak zachęty systemu (tzw. prompt); to, co wpisuje użytkownik, zaznaczono pogrubieniem. Gdy katalog zawierający plik instalatora jest katalogiem bieżącym, wystarczy uruchomić:

> install-tl-windows

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

> D:\texlive\install-tl-windows
zakładając, że D: jest napędem DVD. Rys. 3 pokazuje powitalny ekran programu instalacyjnego w trybie graficznym (GUI) dla Windows.

Instalacja w trybie tekstowym wymaga podania:

> install-tl-windows -no-gui

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

> install-tl-windows -help

Note. Jeśli ten sam katalog zawiera install-tl-windows.exe należy dodać przedłużenie .bat do uruchamianego

> install-tl-windows
(Tak się może zdarzyć jeśli lokalnie wykonano kopię lustrzaną katalogu tlnet).

    Installing TeX Live 2023 from: ...
    Platform: x86_64-linux => ’GNU/Linux on x86_64’
    Distribution: inst (compressed)
    Directory for temporary files: /tmp
    ...
     Detected platform: GNU/Linux on Intel x86_64

     <B> binary platforms: 1 out of 16

     <S> set installation scheme: scheme-full

     <C> customizing installation collections
         40 collections out of 41, disk space required: 7620 MB (free: 138718 MB)

     <D> directories:
       TEXDIR (the main TeX directory):
         /usr/local/texlive/2023
       ...

     <O> options:
       [ ] use letter size instead of A4 by default
       ...

     <V> set up for portable installation

    Actions:
     <I> start installation to hard disk
     <P> save installation profile to ’texlive.profile’ and exit
     <H> help
     <Q> quit

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

Rysunek 3: Podstawowy ekran instalatora (Windows). Przycisk „Advanced” (Zaawansowane) przywoła ekran podobny do rys. 4

Rysunek 4: Zaawansowany ekran instalatora GUI (GNU/Linux)

##### 3.1.4. Cygwin

Przed instalację w tym systemie zaleca się uruchomić program setup.exe i, o ile nie zostały one uprzednio zainstalowane, zainstalować pakiety perl oraz wget. Ponadto zalecana jest zainstalowanie dodatkowych pakietów:

- fontconfig [wymagany dla XeTeX i LuaTeX]

- ghostscript [wymagany dla wielu narzędzi]

- libXaw7 [wymagany dla xdvi]

- ncurses [udostępnia polecenie clear używane przez program instalacyjny]

##### 3.1.5. Instalator w trybie tekstowym

Rysunek 2 przedstawia główny ekran programu install-tl w (domyślnym) trybie tekstowym w systemie Unix.

W tym trybie nie używamy ani klawiszy kursora, ani myszy, lecz wyłącznie klawiszy alfanumerycznych (uwaga: duże i małe litery są rozróżniane!). Wybraną opcję zatwierdzamy klawiszem Enter.

Instalator w trybie tekstowym jest na tyle prosty, by działał na możliwie wielu platformach, nawet wyposażonych jedynie w podstawowe biblioteki Perla.

##### 3.1.6. Instalator w trybie graficznym

Instalator graficzny uruchamiamy przez

> install-tl -gui
Domyślnie uruchamia się tylko z podstawowymi opcjami, patrz rys. reffig:basic-w32. Przycisk „Advanced” (Zaawansowane) daje dostęp do większości opcji instalatora tekstowego, zobacz rys. 4.

Opcje wizard i perltk/expert dla GUI powodują uruchmienie zwykłego trybu graficznego.

#### 3.2. Uruchamianie instalacji

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

##### 3.2.1. Menu: binary systems (tylko Unix)

    Available platforms: (dostępne platformy:)
    ===============================================================================
       a [ ] Cygwin on Intel x86_64 (x86_64-cygwin)
       b [ ]  MacOSX current (10.14-) on ARM/x86_64 (universal-darwin)
       c [ ] MacOSX legacy (10.6-) on x86_64 (x86_64-darwinlegacy)
       d [ ] FreeBSD on x86_64 (amd64-freebsd)
       e [ ] FreeBSD on Intel x86 (i386-freebsd)
       f [ ] GNU/Linux on ARM64 (aarch64-linux)
       g [ ] GNU/Linux on RPi (32 bit) and ARMv7 (armhf-linux)
       h [ ] GNU/Linux on Intel x86 (i386-linux)
       i [X] GNU/Linux on x86_64 (x86_64-linux)
       j [ ] GNU/Linux on x86_64 with musl (x86_64-linuxmusl)
       k [ ] NetBSD on x86_64 (amd64-netbsd)
       l [ ]  NetBSD on Intel x86 (i386-netbsd)
       m [ ] Solaris on Intel x86 (i386-solaris)
       o [ ] Solaris on x86_64 (x86_64-solaris)
       p [ ] Windows (64-bit) (windows)

Rysunek 5: Dostępne platformy (systemy operacyjne)

Rysunek 5 pokazuje menu binarów w trybie tekstowym. Domyślnie instalowane są tylko binaria dla bieżącej platformy, ale menu to pozwala wybrać także zestawy dla innych platform. Może być to przydatne do instalacji drzewa TeX-a na serwerze i współdzielenia zasobów w sieci dla różnych systemów operacyjnych, albo instalacji dla kilku systemów na tej samej maszynie.

##### 3.2.2. Wybór składników do instalacji

    Wybór schematu:
    ===============================================================================
    a [X] pełny (full) -- wszystko
    b [ ] typowy (medium) -- skromny + więcej pakietów i języków
    c [ ] skromny (small) -- podstawowy + xetex, metapost, kilka języków
    d [ ] podstawowy (basic) -- plain i latex
    e [ ] minimalny --  tylko plain
    f [ ] wyłącznie schemat plików -- w ogóle bez  TeX-a
    g [ ] składanie książek -- tylko LaTeX i dodatki
    h [ ] ConTeXt
    i [ ] GUST
    j [ ] teTeX  -- obszerniejszy niż typowy, ale mniejszy od pełnego
    k [ ] wybór niestandardowy

Rysunek 6: Schematy dostępne w instalacji

Rysunek 6 pokazuje dostępne w instalacji schematy czyli obszerne zestawy pakietów, przeznaczone do wstępnego wyboru instalowanych komponentów. Domyślny jest schemat pełny pełny (rekomendowany) – instaluje wszystkie dostępne komponenty. Jeśli wybierzemy instalację basic, wtedy zostaną zainstalowane tylko komponenty konieczne do poprawnego działania plain TeX-a i LaTeX-a. Wybór schematu skromny spowoduje zainstalowanie nieco większej liczby pakietów (jest on równoważny z instalacją BasicTeX dla MacTeX-a). Do testowania możemy zainstalować schemat minimalny, a gdy zdecydujemy się na typowy lub teTeX, otrzymamy zestaw pakietów pomiędzy wymienionymi powyżej. Na rysunku 6 oprócz wymienionych, znajdziemy również schematy przygotowane z myślą o wybranych grupach użytkowników (np. GUST) lub zastosowaniach (ConTeXt).

Rysunek 7: Collections menu

Wybrany schemat można zmodyfikować korzystając z menu pokazanego na Rysunku 7.

Kolekcje są o jeden poziom bardziej szczegółowe niż schematy – w skład schematu wchodzi wiele kolekcji, kolekcje składają się z jednego lub więcej pakietów, a pakiet (najniższy poziom grupowania w TeX Live zawiera aktualne makra TeX-we, pliki fontów itd.

Aby dokładniej niż pozwala na to menu „Kolekcje” kontrolować instalację, po zakończeniu należy uruchomić managera instalacji tlmgr (patrz część 5), który pozwoli nam na przejrzenie instalacji na poziomie pakietów.

##### 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 to /usr/local/texlive/2023 w systemach Unix i C:\texlive\2023 w Windows. Taka organizacja pozwala mieć kilka równoległych instalacji, każdą dla konkretnego roku wydania, i łatwo się między nimi przełączać, zmieniając jedynie kolejność ścieżek przeszukiwania.

Domyślne położenie instalacji może być zmienione przez podanie innej wartości zmiennej TEXDIR w instalatorze. Może to być spowodowane brakiem miejsca na dysku (cały TeX Live potrzebuje kilku gigabajtów) lub uprawnień systemowych. Do zainstalowanie TeX Live nie jest konieczne posiadanie uprawnień administratora, musimy jednak mieć uprawnienia do zapisu w docelowym katalogu. Graficzny ekran pokazujący tę i inne opcje jest pokazany na rysunku 4.

Zwykle w Windows nie musimy być administratorem aby katalog %SystemDrive%\texlive\2023 został utworzony.

Katalogi instalacyjne można również zmienić ustawiając różne zmienne środowiskowe przed uruchomieniem instalatora (najczęściej są to TEXLIVE_INSTALL_PREFIX lub TEXLIVE_INSTALL_TEXDIR); więcej informacji można znaleźć w dokumentacji wyświetlanej poleceniem install-tl --help (dostępnej też online na stronie https://tug.org/texlive/doc/install-tl.html).

Rozsądną alternatywą może być wtedy instalacja w katalogu domowym, szczególnie gdy będziemy jej jedynym użytkownikiem. Dla zaznaczenia katalogu domowego użytkownika stosujemy zapis „~”, np. ’~/texlive/2023’. Zalecamy użycie 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 i TEXMFSYSCONFIG.

TEXMFHOME jest zalecanym położeniem dla prywatnych makr i fontów użytkownika. Domyślnym katalogiem jest ~/texmf (~/Library/texmf dla Macs). W odróżnieniu od TEXDIR, znak ~ jest zachowywany w generowanych plikach konfiguracyjnych, ponieważ w wygodny sposób odnosi się do katalogu domowego użytkownika podczas każdego uruchamiania programów. Znak ten rozwijany jest do zmiennej $HOME w Unix/Linux i %USERPROFILE% w Windows. Po raz kolejny należy podkreślić, że tak jak wszystkie drzewa katalogów, TEXMFHOME musi mieć strukturę zgodną z TDS, w przeciwnym wypadku potrzebne pliki mogą nie zostać znalezione.

Katalog TEXMFVAR przechowuje dane konfiguracyjne specyficzne dla każdego użytkownika. LuaLaTeX i ConTeXt MkIV (patrz cześć 3.4.5, str. 42) do tych samych celów wykorzystuje TEXMFCACHE, której domyślną wartością jestTEXMFSYSVAR, lub, jeśli ta nie może być zapisana, TEXMFVAR.

##### 3.2.4. Opcje

    Wybór opcji:
    ===============================================================================
     <P> use letter size instead of A4 by default: [ ]
     <E> execution of restricted list of programs: [X]
     <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:
     <Y> after install, set CTAN as source for package updates: [X]

Rysunek 8: Menu: Opcje w Unix

Więcej informacji na temat opcji w trybie tekstowym, przedstawionych na rysunku 8 podajemy poniżej.

use letter size instead of A4 by default:

  (zamiast domyślnego A4 użyj formatu letter) Pozwala zmienić domyślny format papieru. Zaleca się, aby format papieru określać dla każdego dokumentu (nawet jeśli ma być taki sam jak domyślny).

execution of restricted list of programs:

  (zezwalaj na uruchomienie niektórych programów) Od TeX Live 2010 niektóre programy pomocnicze są uruchamiane domyślnie. Ich listę (bardzo krótką) można znaleźć w pliku texmf.cnf. Szczegóły znajdziemy w części „Wydanie 2010” (9.1.7).

create all format files:

  (generuj pliki formatów) Zaleca się pozostawić tę opcję włączoną aby uniknąć niepotrzebnych problemów przy dynamicznym tworzeniu formatów. Więcej informacji można znaleźć w dokumentacji fmtutil.

install font/macro … tree:

  Ładuje/instaluje dokumentacje i źródła zawarte w większości pakietów. Wyłączenie tej opcji nie jest zalecane.

create symlinks in standard directories:

  (utwórz dowiązania w standardowych katalogach) Opcja ta (dotyczy tylko Unix) pozwala uniknąć ustawiania zmiennych środowiskowych. Bez tej opcji katalogi TeX Live muszą być dodane ręcznie do (PATH, MANPATH i INFOPATH). Wybranie opcji wymaga posiadania uprawnień do zapisu w katalogach docelowych. Zdecydowanie zaleca się nie używać tej opcji, bo może to 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 żadnych programów TeX-owych. Nie zastępuj za pomocą tej opcji istniejących w systemie plików, na przykład przez podanie katalogów systemowych. Najbezpieczniejszym i zalecanym podejściem jest pozostawić opcję niezaznaczoną.

after installation, set CTAN as source for package updates:

  (po instalacji ustaw CTAN jako źródło aktualizacji pakietów). Gdy instalujemy z DVD, opcja ta jest domyślnie włączona, co pozwala zaktualizować zainstalowane pakiety z sieci (z kopii CTAN). Jedynym powodem, dla którego moglibyśmy wyłączyć tę opcję, jest sytuacja, gdy instalujemy tylko część pakietów i zamierzamy potem doinstalować z DVD inne. Tak czy inaczej, repozytorium pakietów do instalacji (i do aktualizacji) może być w każdej chwili zmienione; patrz część 3.3.1 i część 3.4.3.

Opcje specyficzne dla systemu Windows występujące w zaawansowanym interfejsie GUI:

adjust searchpath

  Ta opcja zapewnia, że wszystkie programy będą miały w swoich ścieżkach wyszukiwania dostęp do drzewa katalogów TeX Live.

add menu shortcuts

  Po wybraniu tej opcji w menu Start systemu Windows pojawi się podmenu TeX Live. Oprócz opcji „TeX Live menu” i „No shortcuts” istnieje trzecia „Launcher entry”. Jest ona opisana w części 4.1.

File associations

  Pozwala zmienić powiązania plików z programami. Dostępne są warianty: „Only new” (powiąż pliki z aplikacjami, ale tylko nowe, nie zmieniając powiązań dla plików już istniejących w instalacji), „All” (Wszystkie) i „None” (Żadne).

install TeXworks front end

  Zainstaluj edytor TeXworks.

Po wykonaniu wszystkich potrzebnych ustawień można rozpocząć instalację (klawisz „I” lub przycisk „Install TeX Live”). Po instalacji zaleca się zajrzeć do części 3.4, bo być może będą niezbędne dodatkowe kroki.

#### 3.3. Parametry instalacji z linii poleceń

Uruchom

> install-tl -help
aby wyświetlić wszystkie dostępne parametry. Aby użyć danej opcji należy jej nazwę poprzedzić znakiem - lub --. Oto najczęściej używane:

-gui

  Użyj (jeśli to możliwe) programu w wersji graficznej (GUI). Wersja graficzna wymaga modułu Tcl/Tk w wersji 8.5 lub wyższej. W przypadku macOS był on dystrybuowany ze starszymi wersjami, dla Big Sur i późniejszych trzeba zainstalować Tcl/Tk samodzielnie, jeśli nie chce się korzystać z instalatora MacTeX-a. Tcl/Tk dla Windows jest dystrybuowany z TeX Live. Starsze opcje -gui=perltk i -gui=wizard są nadal dostępne, ale uruchomiają ten sam interfejs GUI. Jeśli Perl/Tk i Tcl/Tk są niedostępne, program instalacyjny uruchomiony zostanie w trybie tekstowym.

-no-gui

  Wymusza użycie instalatora w trybie tekstowym.

-lang LL

  Pozwala wybrać język komunikatów, LL oznacza tu dwuliterowy kod języka komunikatów instalatora. Listę dostępnych języków można wyświetlić poleceniem install-tl --help. Program próbuje automatycznie wykryć język systemu, ale jeśli będzie to niemożliwe, komunikaty oraz menu będą wyświetlane w języku angielskim.

-portable

  Ta opcja pozwala zainstalować TeX Live na urządzeniu przenośnym, np. na pendrivie. Może ona być użyta zarówno w trybie tekstowym (poleceniem V), jak i przez wybór odpowiedniego przycisku programu instalacyjnego w trybie GUI (patrz część 4.2).

-profile plik

  Wczytuje plik profilu instalacji i przebiega ona bez interakcji ze strony użytkownika; program instalacyjny zapisuje plik texlive.profile w katalogu tlpkg naszej instalacji, co pozwala wykorzystać go dla powielenia w trybie wsadowym wszystkich wyborów i ustawień w kolejnych instalacjach.

-repository url-lub-ście żka

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

-in-place

  (Dokumentacja ma charakter wyłącznie uzupełniający: Nie używaj tego chyba że wiesz, co robisz) Jeśli już posiadamy kopię repozytorium TeX Live uzyskaną via rsync, svn itp. (patrz https://tug.org/texlive/acquire-mirror.html), opcja ta pozwala na wykorzystanie jako instalacji owej kopii i jedynie wykona kroki poinstalacyjne (konfigurację).
  Uwaga: plik tlpkg/texlive.tlpdb może zostać nadpisany, a więc warto go uprzednio skopiować w bezpieczne miejsce. Ponadto usuwanie zbędnych pakietów należy wtedy wykonać ręcznie, słowem – użycie tej opcji zaleca się jedynie zaawansowanym użytkownikom. Opcja ta jest niedostępna w programie instalacyjnym z interfejsem graficznym.

##### 3.3.1. Parametr -repository

Domyślnym repozytorium pakietów dla TeX Live jest kopia (mirror) CTAN, znajdywana automatycznie poprzez serwis https://mirror.ctan.org.

Parametrowi -repository można przypisać adres w sieci (rozpoczynający się od ftp:, http:, https: lub file:/) lub pełną ścieżkę do kopii repozytorium pakietów na dysku (np. pobranej za pomocą programu wget lub rsync). (Podając adres http:, https: lub ftp: należy zwrócić uwagę, że końcowy znak „/” lub składowa „/tlpkg” są ignorowane.)

Przykładowo, można wybrać konkretną kopię (zwierciadło) CTAN z https://ctan.example.org/tex-archive/systems/texlive/tlnet/ podstawiając prawdziwą nazwę hosta i jego konkretną ścieżkę do korzenia CTAN, zamiast ctan.example.org/tex-archive. Lista kopii CTAN dostępna jest na stronie https://ctan.org/mirrors.

Jeśli podany argument wskazuje na lokalny dysk (ścieżkę bądź adres file:/), wybrana zostanie instalacja ze skompresowanych plików zawartych w podkatalogu archive (nawet jeśli są dostępne pliki nieskompresowane).

#### 3.4. Czynności poinstalacyjne

Mogą być wymagane jakieś czynności poinstalacyjne.

##### 3.4.1. Zmienne środowiska dla Unix

Użycie opisanej w części 3.2.4 opcji tworzenia dowiązań symbolicznych w standardowych katalogach nie wymaga zmian w zmiennych środowiska systemowego. Niemniej jednak w systemach Unix po instalacji należy do zmiennej PATH dodać ścieżkę do programów TeX Live. (W Windows program instalacyjny czyni to za nas.)

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

Również korzystanie z systemowych przeglądarek dokumentacji man i info staje się możliwe dopiero po dodaniu odpowiednich katalogów do ich ścieżek przeszukiwania. Strony man mogą być także znajdywane automatycznie po dodaniu ścieżki ich położenia do PATH.

Dla powłoki zgodnej z Bourne takiej jak bash, używając na przykład Intel x86 GNU/Linux i domyślnej konfiguracji TeX Live, należałoby edytować plik $HOME/.profile (lub inny pochodzący z .profile) i dopisać linie:

    PATH=/usr/local/texlive/2023/bin/x86_64-linux:$PATH; export PATH
    MANPATH=/usr/local/texlive/2023texmf-dist/doc/man:$MANPATH; export MANPATH
    INFOPATH=/usr/local/texlive/2023/texmf-dist/doc/info:$INFOPATH; export INFOPATH

W wypadku csh lub tcsh należy zmodyfikować plik $HOME/.cshrc i dopisać linie:

    setenv PATH /usr/local/texlive/2023/bin/x86_64-linux:$PATH
    setenv MANPATH /usr/local/texlive/2023/texmf-dist/doc/man:$MANPATH
    setenv INFOPATH /usr/local/texlive/2023/texmf-dist/doc/info:$INFOPATH

Jeśli nie używasz systemu x86_64-linux, użyj odpowiedniej nazwy; podobnie jeśli instalacja nie została przeprowadzona w domyślnym katalogu, należy zmienić nazwę katalogu.

Jeśli jakieś ustawienia zawarto już w prywatnych plikach konfiguracyjnych, wówczas oczywiście katalogi TeX Live powinny być tam odpowiednio wkomponowane.

##### 3.4.2. Zmienne środowiska: konfiguracja globalna

Jeśli zmiany mają być na poziomie globalnym albo jeśli mają dotyczyć nowego użytkownika systemu, to należy to zrobić na własną rękę – jest zbyt wiele możliwości dotyczących miejsca i sposobu konfigurowania w różnych systemach aby je wszystkie tutaj opisywać.

Nasze dwie rady są następujące: 1) można sprawdzić plik /etc/manpath.config i, jeśli istnieje, dodać w nim wiersze

    MANPATH_MAP /usr/local/texlive/2023/bin/x86_64-linux \
                /usr/local/texlive/2023/texmf-dist/doc/man

2) można sprawdzić plik /etc/environment, w którym może być zdefiniowana ścieżka wyszukiwania i inne domyślne zmienne środowiska.

W każdym (Unix-owym) katalogu w plikami wykonywalnymi systemów uniksowych możemy też utworzyć symboliczne dowiązanie o nazwie man do katalogu texmf-dist/doc/man. Niektóre programy man, np. standardowy program man w systemie macOS automatycznie znajdą to dowiązanie, likwidując potrzebę jakiegokolwiek działania z naszej strony.

##### 3.4.3. Aktualizacje z internetu po instalacji z DVD

Po instalacji TeX Live z DVD i po modyfikacji ścieżki wyszukiwania programów (jak opisano to powyżej), możemy pobrać z internetu aktualizacje pakietów:

> tlmgr option repository https://mirror.ctan.org/systems/texlive/tlnet

Wówczas pakiety będą aktualizowane z najbliższej, automatycznie znalezionej kopii archiwów CTAN (co domyślnie włączono podczas instalacji). Jeśli wystąpiły problemy z automatycznym wyborem archiwum, należy podać konkretny adres (listę adresów znajdziemy na https://ctan.org/mirrors) wraz z pełną ścieżką do podkatalogu tlnet.

##### 3.4.4. Konfiguracja fontów dla XeTeX i LuaTeX

XeTeX i LuaTeX mogą używać wszystkich fontów zainstalowanych w systemie, nie tylko tych znajdujących się w katalogach TeX-owych. Oba programy korzystają tu ze zbliżonych, ale jednak różnych metod. Taki font systemowy (nie będący częścią TeX Live) jest dostępny zazwyczaj poprzez podanie nazwy czcionki, np. ‘Liberation Serif’ choć można też użyć nazwy pliku systemowego.

Inną kwestią jest udostępnienie fontów z dystrybucji TeX Live w taki sposób, aby były dostępne po nazwie czcionki.

Dla LuaTeX: aby uzyskać dostęp do fontów z dystrybucji TeX Live nie trzeba robić nic szczególnego. Wszystkie fonty powinny być dostępne zarówno poprzez nazwę czcionki jak i fontu dzięki pakietowi luaotfload, który obsługuje zarówno LaTeX jak i TeX. Indeks nazw fontów pakietu luaotfload może wymagać odświeżenia, ale dzieje się to automatycznie w momencie próby załadowania nieznanego dotychczas fontu.

Dla XeTeX: dla Windows, fonty z TeX Live są dostępne automatycznie (poprzez uruchomienie programu fc-cache dostarczonego jako część TeX Live). Dla Mac, należy zapoznać się z inną dokumentacją. Dla systemów Unix, inaczej niż dla macOS, procedura jest następująca.

Kiedy zostanie zainstalowany pakiet xetex (albo w czasie pierwszej instalacji albo później), potrzebny plik konfiguracyjny jest tworzony w TEXMFSYSVAR/fonts/conf/texlive-fontconfig.conf. Aby sprawić, że fonty TeX Live są dostępne jako fonty systemowe należy:

1. Skopiować plik texlive-fontconfig.conf do (zazwyczaj) /etc/fonts/conf.d/ 09-texlive.conf.

2. Uruchomić fc-cache -fsv.

Jeżeli nie masz wystarczających uprawnień do wykonania powyższych kroków lub gdy chcesz udostępnić fonty z TeX Live tylko jednemu użytkownikowi, możesz postąpić następująco:

1. Skopiować plik texlive-fontconfig.conf do (zazwyczaj) ~/.fonts.conf.d/09-texlive. conf, gdzie ~ jest twoim katalogiem domowym.

2. Uruchomić fc-cache -fv.

Aby wyświetlić nazwy fontów systemowych trzeba uruchomić program fc-list. Uruchomienie go z dodatkową opcją fc-list : family style file spacing wyświetli więcej interesujących informacji.

##### 3.4.5. ConTeXt LMTX i MKIV

Po zainstalowaniu TeX Live zarówno ’stary’ ConTeXt (Mark IV or MkIV) jak i ‘nowy’ ConTeXt (LMTX) powinny działać bez problemów, o ile do aktualizacji będziemy używać wyłącznie programu tlmgr.

Jednakże, ponieważ ConTeXt nie używa biblioteki kpathsea, gdy będziemy instalować nowe pliki ręcznie (bez użycia verb+tlmgr+) będzie wymagana pewna dodatkowa konfiguracja. Po każdej takiej instalacji należy uruchomić:

    context --generate

dla LMTX, i

    context --luatex --generate

dla MkIV, aby odświeżyć dane w pamięci podręcznej dysku. Wygenerowane pliki zostaną zapisane w katalogach wskazywanych przez zmienną TEXMFCACHE, której domyślną wartością w TeX Live jest TEXMFSYSVAR;TEXMFVAR).

ConTeXt przeszuka wszystkie ścieżki wymienione w TEXMFCACHE i zapisze dane w pierwszej ścieżce, która jest dostępna do zapisu. Gdy dane buforowe są zduplikowane, podczas ich odczytywania zostaną wykorzystane te ostatnio znalezione.

Więcej informacji znajdziemy na stronach: https://wiki.contextgarden.net/Running_Mark_IV.

##### 3.4.6. 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 %SystemDrive%\texlive\texmf-local w Windows) 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 dla kolejnych wydań. Zalecamy zatem, by nie przedefiniowywać TEXMFLOCAL, co w przyszłości (przy następnych wydaniach TeX Live) pozwoli uniknąć ręcznego konfigurowania.

W obu drzewach katalogów pliki powinny być umieszczane w odpowiednich podkatalogach, zgodnie z zaleceniami TDS (patrz: https://tug.org/tds, także plik texmf-dist/web2c/texmf.cnf). Przykładowo pliki klas lub makr LaTeX-a powinny być umieszczane w katalogu TEXMFLOCAL/tex/latex/ lub TEXMFHOME/tex/latex/ (lub w 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 TeX Live Manager GUI (tlmgr).

Każda z tych zmiennych ma domyślnie przypisany pojedynczy katalog, ale nie musi być to regułą. Jeśli testujemy różne wersje pakietów, możemy do własnych celów zakładać kolejne drzewa katalogów i przełączać kolejność ich przeszukiwania. Wystarczy zadeklarować zmienną TEXMFHOME dla listy katalogów, które oddzielamy przecinkami i umieszczamy w klamrach:

         TEXMFHOME = {/my/dir1,/mydir2,/a/third/dir}

W części 7.1.5 opisano dokładniej analizę listy katalogów umieszczonych w klamrach.

##### 3.4.7. Integracja fontów z innych źródeł

Dla TeX-a i pdfTeX-a jest to, niestety, skomplikowane zagadnienie. Sugerujemy aby się tym nie zajmować, jeśli nie chce się zagłębiać w szczegóły instalowania TeX-a. Wiele fontów jest już zawartych w TeX Live, więc można wybrać taki jak nam odpowiada; strony pod adresem https://tug.org/FontCatalogue przedstawiają skategoryzowane na różne sposoby prawie wszystkie fonty tekstowe zawarte w głównych dystrybucjach TeX-a.

Procedury instalowania i integrowania swoich osobistych fontów opisano na stronie: https://tug.org/fonts/fontinstall.html.

Warto rozważyć użycie XeTeX-a lub LuaTeX-a, (patrz punkt 2.4), które pozwalają na użycie fontów zainstalowanych w sysytemie operacyjnym z pominięciem jakiegokolwiek instalowania TeX-owego. (Trzeba jednak zachować rozwagę, ponieważ użycie fontów systemowych czyni dokumenty nieużywalnymi w innych środowiskach).

#### 3.5. Testowanie instalacji

Po zainstalowaniu TeX Live warto sprawdzić, czy programy działają poprawnie. Pierwszą rzeczą będzie znalezienie programu do edycji plików. TeX Live dostarcza edytor TeXworks ( https://tug.org/texworks), ale tylko dla Windows, zaś MacTeX edytor TeXShop ( https://pages.uoregon.edu/koch/texshop). Dla innych systemów uniksowych wybór edytora pozostawia się użytkownikowi. W zasadzie we wszystkich systemach możemy korzystać z dowolnego edytora, operującego na czystym tekście.

Opiszemy tu podstawowe procedury testujące funkcjonowanie instalacji w systemach Unix, ale zasady dla macOS i Windows są identyczne.

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

   > tex --version
   TeX 3.14159265 (TeX Live ...)
   Copyright ... D.E. Knuth.
   ...
   Jeśli uruchomienie kończy się komunikatem command not found (nie znaleziono polecenia), oznacza to, że niepoprawnie zadeklarowano zmienną PATH (patrz: deklaracje zmiennych środowiska na str. 40).

2. Następnie przetwarzamy prosty plik LaTeX-owy generując PDF:

   > pdflatex sample2e.tex
   This is pdfTeX 3.14...
   ...
   Output written on sample2e.pdf (3 pages, 142120 bytes).
   Transcript written on sample2e.log.
   Gdy program nie znajduje sample2e.tex (bądź innych plików), może to oznaczać, że nadal działają poprzednie ustawienia zmiennych środowiska bądź pliki konfiguracyjne z innej (poprzedniej) instalacji. Szczegółową analizę, gdzie pliki są szukane i znajdowane, umożliwia diagnostyka opisana w części 7.2.4 na str. 74.

3. Podgląd wyniku składu (pliku PDF):

   > xpdf sample2e.dvi # Unix
   W nowym oknie powinien pojawić się dokument wyjaśniający podstawy LaTeX-a. (Warto go przeczytać będąc początkującym użytkownikiem TeX-a.)

   Oczywiście istnieje wiele przeglądarek PDF; w systemach Unix używa się evince i okular. Dla Windows sugerujemy wypróbowanie Sumatra PDF ( https://www.sumatrapdfreader.org/free-pdf-reader.html). Przeglądarki PDF nie jest są dostarczane z TeX Live, należy więc wybraną przeglądarkę zainstalować osobno.

4. Oczywiście można też nadal wygenerować dokument w oryginalnym TeX-owym formacie DVI:

   > latex sample2e.tex

5. A następnie obejrzeć wynik:

   > xdvi sample2e.dvi # Unix
   > dviout sample2e.dvi # Windows

   Polecenie xdvi nie działa poza środowiskiem X-Window. Jeśli X-Window nie będzie uruchomione lub zmienna środowiskowa DISPLAY będzie błędna to zamiast dokumentu pojawi się informacja „Can’t open display”.

6. Przetwarzanie pliku DVI do PostScript:

   > dvips sample2e.dvi -o sample2e.ps

7. Tworzenie dokumentu w formacie PDF z DVI; to alternatywa do użycia pdfTeXa (lub XeTeXa lub LuaTeX-a), co niekiedy może użyteczne:

   > dvipdfmx sample2e.dvi -o sample2e.pdf

8. Inne przydatne pliki testowe (poza sample2e.tex):

   small2e.tex

     Plik przykładowy prostszy niż sample2e.

   testpage.tex

     Plik do testowania 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 plik przykładowy dla plain TeX. Na zakończenie przetwarzania uruchomionego poleceniem „tex story.tex”, po ukazaniu się *, należy wpisać „\bye”.

9. Jeśli zainstalowano pakiet xetex, można przetestować użycie fontów systemowych:

   > xetex opentype-info.tex
   This is XeTeX, Version 3.14…
   ...
   Output written on opentype-info.pdf (1 page).
   Transcript written on opentype-info.log.

   Gdy otrzymamy komunikat błędu: „Invalid fontname ‘Latin Modern Roman/ICU’…”, oznacza to, że należy zmienić konfigurację systemu, jak to opisano w punkcie 3.4.4.

#### 3.6. Usuwanie instalacji TeX Live

Aby usunąć prawidłowo zainstalowany TeX Live (dla Windows patrz poniżej) należy uruchomić:

> tlmgr uninstall --all
Jeśli nie potwierdzimy chęci usunięcia instalacji, żadna akcja nie zostanie wykonana. (Bez dodatku --all, uninstall jest używany do usuwania pojedynczych pakietów.)

Przy usuwaniu całej instalacji żadne katalogi własne użytkownika nie zostaną usunięte (patrz też część 2.3:

TEXMFCONFIG

  Zawiera informacje użytkownika o zmianach w konfiguracji. Jeśli chcesz je zachować, upewnij się przed usunięciem, że wiesz, jak je odtworzyć.

TEXMFVAR

  Jest przeznaczony do przechowywania automatycznie generowanych runtime data, takich jak pliki lokalnych formatów. Jeśli nie używasz go do innych celów, można go bezpiecznie usunąć.

TEXMFHOME

  Zawiera tylko pliki które użytkownik zainstalował samodzielnie i które nie wchodzą w skład dystrybucji. Jeśli chcesz przeprowadzić instalację TeX od początku warto tego nie usuwać.

Możesz znaleźć ścieżkę dostępu do opisanych katalogów uruchamiając kpsewhich -var-value=var.

Należy pamiętać, że tlmgr usuwa instalację ale nie usuwa zmian wykonanych w procesie poinstalacyjnym w PATH oraz dostępu do fontów TeX Live (patrz część 3.4). Należy je, w razie potrzeby, usunąć ręcznie.

Dla Windows, usuwanie instalacji może być wykonane poprzez GUI; patrz część 6.1.

#### 3.7. Dodatkowe oprogramowanie

Jeżeli zaczynasz swoją przygodę z TeX-em, lub potrzebujesz pomocy w trakcie składania dokumentu, odwiedź stronę https://tug.org/begin.html. Znajdziesz tam wiele przydatnych informacji.

Poniżej znajdziesz linki do innych narzędzi, które mogą przydać się w pracy z TeX-em:

Ghostscript

  https://ghostscript.com/, bezpłatny interpreter plików PostScriptowych i PDF.

Perl

  https://perl.org/ z dodatkowymi pakietami z CPAN, https://cpan.org/

ImageMagick

  https://imagemagick.org, darmowy pakiet do obróbki grafiki, z dostępnym kodem źródłowym. Programy wchodzące w skład pakietu pozwalają wyświetlić, tworzyć, modyfikować i zapisywać pliki graficzne w wielu formatach.

NetPBM

  https://netpbm.sourceforge.net/, zestaw narzędzi do wsadowej konwersji i przetwarzania grafiki.

TeX-oriented editors

  Istnieje wiele edytorów wygodnych w użyciu z TeX-em, wybór konkretnego należy do użytkownika. Poniżej kilka z dostępnych, w porządku alfabetycznym (niektóre tylko dla systemu Windows).

  - GNU Emacs jest dostępny dla wszystkich najważniejszych platform (również dla Windows), zobacz https://www.gnu.org/software/emacs.

  - AUCTeX działa z Emacs; jest dostępny poprzez menedżera pakietów ELPA. Źródła są też dostępne z CTAN. Strona domowa AUCTeX https://www.gnu.org/software/auctex.

  - SciTE dostępny z https://www.scintilla.org/SciTE.html.

  - Texmaker darmowy, dostępny z https://www.xm1math.net/texmaker.

  - TeXstudio Oparty na Texmaker, do którego dodano nowe właściwości; dostępny z https://texstudio.org/.

  - TeXnicCenter darmowy, dostępny z https://www.texniccenter.org.

  - TeXworks darmowy, dostępny z https://tug.org/texworks i instalowany jako część TeX Live (tylko dla Windows).

  - Vim darmowy, dostępny z https://www.vim.org.

  - WinEdt shareware, dostępny przez https://tug.org/winedt lub https://www.winedt.com.

  - WinShell dostępny z https://www.winshell.de.

Obszerniejszą listę pakietów i programów można znaleźć na https://tug.org/interest.html.

### 4. Instalacje zaawansowane

W poprzednich częściach opisano proces typowej instalacji. Teraz omówimy te bardziej wyspecjalizowane.

#### 4.1. Instalacje dla wielu użytkowników (lub wieloplatformowe)

TeX Live zaprojektowano tak, by w sieci komputerowej mogło z niego korzystać wielu użytkowników, nawet w różnych systemach operacyjnych. Kiedy stosujemy standardową strukturę 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 $TEXMFDIST/web2c/texmf.cnf, który zawiera na przykład takie wiersze:

    TEXMFROOT = $SELFAUTOPARENT
    ...
    TEXMFDIST = $TEXMFROOT/texmf-dist
    ...
    TEXMFLOCAL = $SELFAUTOGRANDPARENT/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.

W wypadku Windows, TeX Live zawiera program uruchomiający tlaunch. Jego główne okno zawiera zawiera menu i przyciski dla różnych programów TeX-owych oraz dokumentacji, które można konfigurować w pliku ini. Podczas pierwszego uruchomienia program modyfikuje ścieżkę dostępu dla TeX Live i tworzy kilka skojarzeń typów plików – ale tylko dla aktualnego użytkownika. Z tego powodu stacje robocze, które mają w sieci lokalnej dostęp do TeX Live potrzebują jedynie skrótu do programu tlaunch w menu. Więcej o tym można przeczytać w podręczniku programu tlaunch (texdoc tlaunch albo https://ctan.org/pkg/tlaunch).

#### 4.2. Instalacja przenośna (USB)

Aby wykonać przenośną instalację na USB, należy uruchomić program instalacyjny z opcją -portable (lub polecenie V w trybie tekstowym bądź odpowiednia opcja w trybie GUI). Instalacja taka nie ingeruje w sam system operacyjny. Można ją wykonać bezpośrednio na urządzeniu USB, lub na dysku twardym, skąd kopiujemy ją na urządzenie przenośne.

Z technicznego punktu widzenia instalacja przenośna staje się samowystarczalna gdy ustawienia TEXMFHOME, TEXMFVAR i TEXMFCONFIG są równe TEXMFLOCAL, TEXMFSYSVAR, i TEXMFSYSCONFIG, odpowiednio; w ten sposób nie są tworzone konfiguracje indywidualne użytkowników i pamięci podręczne (cache).

Do uruchomienia programów TeX Live w takiej instalacji wystarczy w sesji terminala dodać, jak zazwyczaj, odpowiedni katalog do zmiennej PATH. W Windows należy dwukrotnie kliknąć tl-tray-menu w głównym katalogu instalacji i utworzyć pomocnicze ‘tray menu’, które oferuje wybór spośród kilku podstawowych zadań, poniżej:

Wybór „More…” spowoduje wyświetlenie komunikatu z informacją, jak można dostosować menu do własnych potrzeb.

### 5. tlmgr: Zarządzanie instalacją

Rysunek 9: tlshell w trybie graficznym (GUI), menu Actions (GNU/Linux)

Rysunek 10: tlcockpit – tryb graficzny tlmgr

Rysunek 11: tlmgr w trybie graficznym: główne okno, po „Wczytaj” (Load).

TeX Live zawiera program o nazwie tlmgr, służący do dalszego zarządzania TeX Live po pierwotnej instalacji. Jego możliwości obejmują:

- instalowanie, aktualizację, tworzenie kopii zapasowych, odtwarzanie oraz usuwanie pojedynczych pakietów (opcjonalnie – z uwzględnieniem zależności pomiędzy pakietami);

- wyszukiwanie i prezentowanie list pakietów oraz ich opisów;

- wyszczególnianie oraz dodawanie i usuwanie platform systemowych;

- zmianę opcji instalacji, takich jak rozmiar papieru czy zmiana położenia źródła instalacji (patrz część 3.3.1).

Program tlmgr całkowicie zastąpił funkcjonalność programu texconfig. Choć ten ostatni jest utrzymywany nadal dostępny w dystrybucji TeX Live użytkownikow przyzwyczajonym do tego interfejsu, zalecamy używanie tlmgr.

#### 5.1. tlmgr – tryb graficzny (GUI)

TeX Live dostarcza kilka trybów graficznych (GUI) dla programu tlmgr. Dwa najważniejsze to: (1) Rysunek 9 pokazuje tlshell który jest napisany w Tcl/Tk i działa pod Windows. 2) Rysunek 10 pokazuje tlcockpit, który wymaga programu Java w wersji 8 lub wyższej wraz z JavaFX. Oba programy są dołączone w osobnych pakietach.

tlmgr może być uruchomiony we własnym trybie graficznym (rys. 11) za pomocą polecenia:

> tlmgr -gui
W tym przypadku wymagany jest moduł Perl/Tk, który nie jest już częścią Perla dostarczanego przez TeX Live dla systemu Windows.

#### 5.2. Przykładowe wywołania tlmgr z linii poleceń

Po zainstalowaniu TeX Live można zaktualizować wszystkie pakiety:

> tlmgr update -all
Symulację aktualizacji umożliwia:

> tlmgr update -all -dry-run
bądź tylko wyliczenie, jakie pakiety będą aktualizowane:

> tlmgr update -list

Poniższy, bardziej rozbudowany przykład dodaje kolekcję zawierającą m.in. nowy „silnik” XeTeX, z lokalnego repozytorium instalacji:

> tlmgr -repository /local/mirror/tlnet install collection-xetex
co pokazują komunikaty (tu w skrócie):

    install: collection-xetex
    install: arabxetex
    ...
    install: xetex
    install: xetexconfig
    install: xetex.i386-linux
    running post install action for xetex
    install: xetex-def
    ...
    running mktexlsr
    mktexlsr: Updating /usr/local/texlive/2023/texmf-dist/ls-R...
    ...
    running fmtutil-sys --missing
    ...
    Transcript written on xelatex.log.
    fmtutil: /usr/local/texlive/2023/texmf-var/web2c/xetex/xelatex.fmt installed.

Jak widać, tlmgr instaluje wszystkie pakiety zależne, a także przeprowadza wymagane czynności poinstalacyjne, jak aktualizacja bazy danych, budowa plików formatów itp. (w przykładzie wygenerowaliśmy nowy format dla XeTeX).

Aby wyświetlić informację o pakiecie (kolekcji bądź schemacie), należy uruchomić np.:

> tlmgr show collection-latexextra
co pokaże:

    package:    collection-latexextra
    category:   Collection
    shortdesc:  LaTeX supplementary packages
    longdesc:   A very large collection of add-on packages for LaTeX.
    installed:  Yes
    revision:   46963
    sizes:      657941k

Uwaga: pełna dokumentacja programu tlmgr dostępna jest pod adresem: https://tug.org/texlive/tlmgr.html lub po uruchomieniu:

> tlmgr -help

### 6. Uwagi dotyczące Windows

#### 6.1. Cechy specyficzne w systemie Windows

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

Menu i skr óty.

  W menu systemowym Start instalowane jest podmenu ‘TeX Live’, które zawiera kilka pozycji dla programów działających w trybie graficznym takich jak tlshell (tryb graficzny dla tlmgr) i dviout oraz dokumentacji.

Skojarzenia typ ów plik ów.

  Jeśli wybrano tę opcję, TeXworks i Dviout otwierają domyślne dla tych programów typy plików (lub, po kliknięciu prawym klawiszem myszy na danym pliku, proponują „Otwórz” i wybór programu). Jednakże niektóre interaktywnie wybrane przez użytkownika skojarzenia plików mogą przeszkadzać.

Wsparcie PostScriptu.

  Pliki PostScriptowe są teraz przez PSviewer konwertowane do tymczasowego pliku PDF, który następnie jest edytowany przez domyślną przeglądarkę PDF-ów. Dla różnych formatów graficznych plików bitmapowych kliknięcie prawym klawiszem myszy wyświetla w menu „Otwórz” bitmap2eps. Bitmap2eps jest prostym skryptem, który pozwala na wybór programu sam2p bądź bmeps.

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 (instalacja przez administratora) lub w przypadku instalacji dla pojedynczego użytkownika w TeX Live menu.

Zabezpieczenie przed zapisem.

  Jeśli instalację wykonał administrator systemu, to katalogi TeX Live są zabezpieczone przed zapisem przez użytkowników (przynajmniej na dysku stałym sformatowanym w NTFS).

Można też skorzystać z innego sposobu instalacji, używając programu tlaunch, opisanego w punkcie 4.1.

#### 6.2. Dodatkowe programy pomocnicze dla Windows

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

Aby instalacja była kompletna, TeX Live wymaga kilku pomocniczych programów, które nie są dostarczane z systemem Windows. TeX Live dostarcza je wszystkie, są one instalowane jako część TeX Live tylko dla Windows.

Instalowane są następujące programy:

Perl, Tcl/Tk i Ghostscript.

  Ponieważ Perl i Ghostscript są niezbędne do poprawnego działania TeX Live, i ponieważ installer- i tlshell GUI są napisane w Tcl/Tk, TeX Live zawiera ’ukryte’ kopie tych programów. Oczywiście programy TeX Live, które z nich korzystają, „wiedzą” gdzie je znaleźć. To nie są pełne instalacje tym samym nie powinny kolidować z ewentualnie zainstalowanymi w systemie programami Perl i Ghostscript czy Tcl/Tk. Instrukcję jak poinformować TeX Live że chcemy używać naszych zewnętrznych instalacji do współpracy z TeX Live znajdziemy w 6.3.

dviout.

  Instalowany jest także dviout, program do podglądu plików DVI. 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.

TeXworks.

  Zorientowany na środowisko TeX-owe edytor, zintegrowany z modułem do podglądu plików PDF.

narzędzia uruchamiane z linii polece ń.

  Do TeX Live są włączone wersje Windows kilku przydatnych programów uniksowych. Są to programy: gzip, zip, unzip i kilka narzędzi z zestawu poppler (pdfinfo, pdffonts, …).

fc-list, fc-cache, …

  To narzędzia z biblioteki fontconfig. fc-cache rejestruje dla XeTeX-a fonty systemowe (Windows).fc-list wyświetla zarejestrowane fonty, podając ich pełne nazwy (deklarujemy je jako parametr rozszerzonego w XeTeX-u polecenia \font). Jeżeli to konieczne, należy uruchomić program fc-cache aby odświerzyć informację o dostępnych fontach.

#### 6.3. Korzystanie z zewnętrznych instalacji Perla, Tcl/Tk i Ghostscripta

Normalnie, TeX Live będzie używać wbudowanych Perla, Tcl/Tk i Ghostscripta, również w przypadku skryptów dodanych w ramach TeX Live. Jeśli chcesz używać własnych, zewnętrznych można to skonfigurować w pliku texmf.cnf.

Dla Perla należy dodać linię

       TEXLIVE_WINDOWS_TRY_EXTERNAL_PERL = 1

TeX Live (dokładnie, bin/windows/runscript.tlu) będzie wtedy poszukiwał pliku perl.exe pomijając te skrypty (Perla), które należą do infrastruktury TeX Live. Jest to najbardziej użyteczne przeszukanie; mimo, że TeX Live Perl zawiera wiele dodatkowych modułów, nie może obsługiwać wszystkich skryptów innych firm.

Podobnie, dla Tcl/Tk należy dodać linię

       TEXLIVE_WINDOWS_TRY_EXTERNAL_TCL = 1

TeX Live będzie wtedy poszukiwał plików tclkit.exe, wish.exe, wish85.exe, wish86.exe i wish87.exe.

Ghostscript is handled differently, in that you need to specify the filename or the full path of your command-line Ghostscript: Ghostscript jest obsługiwany inaczej, należy podać z linii poleceń nazwę pliku lub pełną ścieżkę do zainstalowanego zewnętrznie Ghostscripta:

TEXLIVE_WINDOWS_EXTERNAL_GS = path of command-line ghostscript
Kolejna różnica jest taka, że Ghostscript dostarczany z systemem jest kompletny, pominięto jedynie dokumentację i sterowniki drukarki, więc jest mało prawdopodobne, że będziesz potrzebował instalować go poza TeX Live.

Zobacz także rozdział 7.1.2 dotyczący texmf.cnf.

#### 6.4. User Profile (inaczej Home – katalog domowy)

Odpowiednikiem uniksowego katalogu domowego użytkownika ($HOME) w Windows jest katalog określany zmienną %USERPROFILE%. W Windows Vista i w wersjach późniejszych jest to C:\Users\<nazwa_u żytkownika>. W pliku konfiguracyjnym texmf.cnf i ogólnie w bibliotekach Kpathsea znak ~ jest poprawnie rozwijany do odpowiedniej zmiennej – zarówno w Windows, jak i w Unix.

#### 6.5. Rejestr Windows

W systemie Windows prawie wszystkie dane konfiguracyjne przechowywane są w tzw. rejestrze. Zawiera on hierarchicznie 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 część 6.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.

#### 6.6. Uprawnienia w Windows

W nowszych wersjach Windows istnieje wyraźne rozróżnienie między użytkownikami „zwykłymi” i administratorami, którzy 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 ma uprawnienia administratora, to udostępniona jest opcja instalacji dla wszystkich użytkowników. Użycie jej oznacza, że tworzone są skróty, a także ustawiane są zmienne środowiska dla całego systemu. W przeciwnym wypadku skróty i menu są tworzone jedynie dla konkretnego użytkownika, także definiowane zmienne środowiska dotyczą konkretnych użytkowników.

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

Problem może się pojawić wtedy, gdy instalujący TeX Live nie ma uprawnień administratora, a programy TeX-owe są już w systemowej ścieżce przeszukiwania. Wynikowa przeszukiwanie jest realizowane najpierw wg ścieżek systemowych, a następnie wg ścieżek użytkownika. W konsekwencji nie będą znajdowane nowo zainstalowane programy. W takim przypadku program instalacyjny tworzy skrót do wiersza poleceń, w którym ścieżka do nowych programów TeX Live jest przeszukiwana z priorytetem, przed ścieżkami systemowymi. Jedynie korzystanie z tak skonfigurowanego programu wiersza poleceń umożliwi dostęp do programów nowozainstalowanego TeX Live. Podobnie przygotowywany jest skrót do programu TeXworks, o ile go zainstalowaliśmy.

Windows Vista i nowsze stwarzają dodatkowe utrudnienia: nawet jeśli jesteśmy zalogowani jako administrator, musimy dodatkowo uzyskać uprawnienia do uruchomienia programów jako administrator! W rzeczywistości nie ma sensu logowanie jako administrator, zamiast tego wystarczy kliknąć prawym klawiszem myszy program (skrót), co pozwala na wybranie opcji „Uruchom jako administrator”.

#### 6.7. Zwiększanie maksymalnej dostępnej pamięci w Windows i Cygwin

Użytkownicy systemów Windows i Cygwin (patrz część 3.1.4 mogą w przypadku uruchamiania niektórych programów dostarczonych w TeX Live spotkać się z niewystarczającą ilością dostępnej pamięci. Na przykład asy wyczerpie dostępną pamięć w przypadku próby zadeklarowania macierzy składającej się z 25 milionów liczb rzeczywistych, a LuaTeX przy przetwarzaniu dokumentu zawierającego wiele dużych plików czcionek.

W Cygwin można ten problem rozwiązać korzystając z porady zawartej w Podręczniku użytkownika Cygwin ( https://www.cygwin.com/cygwin-ug-net/setup-maxmem.html).

W Windows należy utworzyć plik, np. moremem.reg, z takimi czterema liniami:

    Windows Registry Editor Version 5.00

    [HKEY_LOCAL_MACHINE\Software\Cygwin]
    "heap_chunk_in_mb"=dword:ffffff00

a następnie wykonać (jako użytkownik z prawami administratora) polecenie: regedit /s moremem.reg. Zamiast ustawień globalnych dla systemu, można też zmienić wielkość dostępnej pamięci jedynie dla bieżącego użytkownika, używając HKEY_CURRENT_USER.

### 7. Instrukcja obsługi systemu Web2C

Web2C to zestaw programów związanych z TeX-em, tj. sam TeX, METAFONT, MetaPost, BibTeX itd. Stanowią one rdzeń dystrybucji TeX Live. Strona domowa Web2C z aktualnym podręcznikiem użytkownika i innymi użytecznymi plikami jest dostępna pod adresem https://tug.org/web2c.

Trochę historii: 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ę utrzymaniem systemu, 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, w roku 1997 pałeczkę przejął Olaf Weber, który z powrotem przekazał ją w 2006 roku Karlowi.

Web2C działa w systemach Unix, Windows 32-bitowy, (w tym Mac OS X), i innych systemach operacyjnych. 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. Podstawowymi składnikami systemu są:

bibtex

  Tworzenie spisów bibliograficznych;

dvicopy

  Modyfikowanie pliku DVI;

dvitomp

  Konwersja DVI do MPX (rysunki MetaPost-a);

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);

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;

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;

--version

  podaje informację o wersji, po czym kończy działanie programu.

I w większości także honorują:

--verbose

  podaje dokładny raport z działania programu.

Do lokalizowania plików programy oparte na Web2C używają biblioteki do przeszukiwania ścieżek zwanej Kpathsea ( https://tug.org/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.

#### 7.1. Przeszukiwanie ścieżek przez Kpathsea

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

Tym, co nazywamy ście żką przeszukiwania, jest rozdzielona dwukropkami lub średnikami lista element ów ście żki, które zasadniczo są nazwami podkatalogów. Ścieżka przeszukiwania może pochodzić z (kombinacji) wielu źródeł. Przykładowo, aby odnaleźć plik „my-file” w ścieżce „.:/dir”, Kpathsea sprawdza 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 str. 71) odnosi się 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.

Chociaż 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, czyli transformuje wszystkie specyfikacje do nazwy podstawowej lub nazw katalogów. Jest to opisane w kolejnych akapitach, w kolejności, w jakiej to zachodzi.

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.

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

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

1. Zmienna środowiskowa ustawiana przez użytkownika, np. TEXINPUTS. Zmienne środowiskowe z dołączoną kropką i nazwą programu zastępują inne, np. jeżeli „latex” jest nazwą uruchomionego programu, wtedy zamiast TEXINPUTS wykorzystana zostanie zmienna TEXINPUTS.latex.

2. Plik konfiguracyjny konkretnego programu, np. linia „S /a:/b” w pliku config.ps programu dvips.

3. Plik konfiguracyjny Kpathsea texmf.cnf, zawierający taką linię, jak „TEXINPUTS=/c:/d” (patrz poniżej).

4. Wartości domyślne dla uruchamianych programów.

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

##### 7.1.2. Pliki konfiguracyjne

Kpathsea szuka ścieżek przeszukiwania i innych definicji w plikach konfiguracyjnych o nazwach texmf.cnf. Ścieżka przeszukiwania używana do znajdowania tych plików określana jest przez zmienną TEXMFCNF, ale nie zalecamy jawnego ustawiania tej, jak i innych zmiennych w systemie.

Zamiast tego typowa instalacja TeX Live tworzy plik .../2023/texmf.cnf, który w wyjątkowych wypadkach możemy modyfikować.
Głównym plikiem konfiguracyjnym jest .../2023/texmf-dist/web2c/texmf.cnf, ale nie powinien być on modyfikowany, gdyż zmiany będą utracone podczas aktualizacji.

Na marginesie, jeśli chcesz po prostu dodać osobisty katalog do konkretnej ścieżki wyszukiwania, rozsądnie jest zmienić ustawienie zmiennej środowiskowej następująco:

         TEXINPUTS=.:/my/macro/dir:

Aby ustawienia mogły być zachowane i przenoszone przez lata należy użyć „:” („;” dla Windows) aby wstawić ścieżki systemowe, zamiast próbować je wszystkie zapisywać jawnie (zobacz rozdział 7.1.4). Inna możliwość to użycie drzewa TEXMFHOME (zobacz rozdział 3.2.3).

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.

- Komentarze zaczynają się od %, a kończą na końcu wiersza.

- Puste wiersze nie są brane pod uwagę.

- Znak „\” na końcu wiersza działa jako znak kontynuacji, tzn. oznacza, że kolejny wiersz jest kontynuacją bieżącego. Spacja na początku kolejnego wiersza nie jest ignorowana.

- Pozostałe wiersze mają postać:
  zmienna [.prognam] [=] warto ś ć
  gdzie „=” i otaczające spacje są opcjonalne. (Jeśli warto ś ć zaczyna się od „.”, lepiej jest użyć „=”, aby uniknąć interpretacji kropki jako pochodzącej od nazwy programu.)

- Nazwa zmienna zawierać może dowolne znaki poza spacją, „=”, lub „.” (kropką), najbezpieczniej jednak używać znaków z zakresu „A-Za-z_”.

- Napis „.program” ma zastosowanie w wypadku, gdy uruchamiany program nosi nazwę program lub program.exe. Pozwala to różnym odmianom TeX-a stosować różne ścieżki przeszukiwania.

- Jako ciąg znaków, warto ś ć zawierać może dowolne znaki. W praktyce jednak większość znaków specjalnych, takich jak nawiasy klamrowe czy przecinki, jest używana do rozwijania ścieżek, więc nie mogą być one użyte w nazwach katalogów (zobacz rozdział 7.1.7).

  Jeżeli systemem operacyjnym jest Unix, to średnik „;” użyty w warto ś ć zamieniany jest na „:”; umożliwia to istnienie wspólnego pliku texmf.cnf dla systemów Unix, Ms-DOS oraz Windows. Aby plik texmf.cnf był ten sam dla Unix-a i Windows znak „;” w warto ś ć jest rozumiany jako „:”. Ta zmiana dotyczy wszystkich wartości, ale w praktyce znak o „;” nie jest potrzebny nigdzie indziej.

  Po prawej stronie nie można używać konstrukcji $var.prog, zamiast tego należy użyć zmiennej pomocniczej.

- Wszystkie definicje czytane są zanim cokolwiek zostanie rozwinięte, tak więc do zmiennych można się odwoływać przed ich zdefiniowaniem.

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

##### 7.1.3. Rozwijanie ścieżek

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

##### 7.1.4. Rozwijanie domyślne

Jeżeli ścieżka przeszukiwania największego uprzywilejowania (patrz „źródła ścieżek” na str. 65) zawiera dodatkowy dwukropek (np. na początku, na końcu lub podwójny), to Kpathsea wstawia w tym miejscu następną ścieżkę przeszukiwania zdefiniowaną w hierarchii uprzywilejowania. 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
to 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.

##### 7.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. W dostarczonym pliku texmf.cnf można znaleźć następującą (uproszczoną tu) definicję:

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

Używając jej, można następnie zdefiniować na przykład:

         TEXINPUTS = .;$TEXMF/tex//

co oznacza, że po szukaniu w katalogu bieżącym będą przeszukane kolejno $TEXMFVAR/tex, $TEXMFHOME/tex, $TEXMFLOCAL/tex, i $TEXMFDIST/tex (wszystkie wraz z katalogami niższego poziomu; dwie ostatnie ścieżki wyłącznie na podstawie zawartości pliku ls-R).

##### 7.1.6. Rozwijanie podkatalogów

Dwa lub więcej kolejnych „ciachów” („/”) w elemencie ścieżki, występujących po nazwie katalogu d, zastępowanych jest przez wszystkie podkatalogi d, najpierw podkatalogi znajdujące się bezpośrednio pod d, potem te pod nimi 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ę.

##### 7.1.7. Lista znaków specjalnych w plikach texmf.cnf – podsumowanie

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

:

  Znak rozdzielający w specyfikacji ścieżki; umieszczony na początku lub na końcu ścieżki, albo podwojony w środku ś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.

,

  Oddziela elementy w rozwinięciu nawiasu.

//

  Rozwijanie podkatalogów (może wystąpić gdziekolwiek w ścieżce, poza jej początkiem).

% and #

  Początek komentarza, obejmującego wszystkie znaki do końca linii.

\

  Znak kontynuacji na końcu wiersza pozwalający na wpisy wieloliniowe.

!!

  Przeszukiwanie tylko bazy danych, a nie dysku.

#### 7.2. Bazy nazw plików

Podczas przeszukiwania Kpathsea stara się zminimalizować dostęp do dysku. Niemniej, w przypadku instalacji standardowej TeX Live, lub innej instalacji z wystarczającą 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.

##### 7.2.1. Baza nazw plików

Jak wspomniano, 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”… . Zasadniczo skrypt ten wykonuje jedynie polecenie

cd /your/texmf/root && \ls -1LAR ./ >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 szukanego pliku nie ma w bazie danych, Kpathsea domyślnie przechodzi do przeszukiwania dysku. Jeżeli jednak dany element ścieżki zaczyna się od „!!”, to w poszukiwaniu tego elementu sprawdzana zostanie tylko baza danych, a nigdy dysk.

##### 7.2.2. kpsewhich – program do przeszukiwania ścieżek

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

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

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

Poniżej przedstawione zostały ważniejsze parametry.

--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ę plików znaną Kpathsea (np. tex lub enc), których listę wyświetli uruchomienie kpsewhich --help-formats.

--mode=string

  Ustaw nazwę trybu na string; dotyczy to jedynie szukania fontów „gf” oraz „pk”. Brak 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ększenia efektywności działania, sprawdzana jest tylko baza ls-R.

--path=string

  Szukaj w ścieżce string (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. Domyślne jest „kpsewhich”.

--show-path=nazwa

  Pokazuje ścieżkę używaną do poszukiwania plików typu nazwa. Użyć można zarówno rozszerzenia „.pk”, „.vf”, etc., jak i nazwy pliku, tak jak w wypadku parametru „--format”.

--debug=num

  Ustawia parametry wykrywania błędów na num.

##### 7.2.3. Przykłady użycia

Przyjrzyjmy się teraz, jak działa Kpathsea. Oto proste wyszukiwanie:

> 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, katalogiem nadrzędnym jest „texmf-dist”. Podobnie wszystkie poniższe pliki odnajdywane są bez problemów 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 programów, takich jak dvips czy xdvi. W tym wypadku wynik przeszukiwania okaże się pusty, ponieważ w systemie brak gotowych wygenerowanych czcionek Computer Modern („.pk”) 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 przypadku, kiedy zaznaczamy rozdzielczość 300dpi (-dpi=300), otrzymujemy informację, że w naszej instalacji taka czcionka nie jest dostępna. Programy takie jak dvips czy xdvi zatrzymałyby się, aby utworzyć pliki .pk w wymaganej rozdzielczości (używając skryptu mktexpk).

Przeanalizujmy teraz 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 edycji 2004, pliki .map i .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 wyraźnie zaznaczyć, 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/dvips/config/config.ps
> kpsewhich psfonts.map
/usr/local/texmf/fonts/map/dvips/updmap/psfonts.map

Przyjrzyjmy się teraz bliżej plikom pomocniczym fontów Times PostScript z kolekcji URW. W standardzie nazewnictwa fontów mają one prefiks „utm”. Pierwszy plik, który przeszukujemy, 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 Type1 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.

##### 7.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:

1

  Wywołanie stat (testy pliku). Podczas uruchamiania z uaktualnioną bazą danych ls-R nie powinno to przeważnie dawać żadnego wyniku.

2

  Zapis odwołań do tablic asocjacyjnych (hash tables), takich jak baza ls-R, pliki przemapowań, pliki konfiguracyjne.

4

  Operacje otwarcia i zamknięcia pliku.

8

  Ogólne informacje o ścieżkach dla typów plików szukanych przez Kpathsea; użyteczne do znalezienia ścieżki zdefiniowanej dla konkretnego pliku.

16

  Lista katalogów dla każdego z elementów ścieżki (odnosi się tylko do poszukiwań na dysku).

32

  Poszukiwania plików.

64

  Wartości zmiennych.

Wartość -1 ustawia wszystkie powyższe opcje – w praktyce jest to zazwyczaj najwygodniejsze.

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ć, jaki jest 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.

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-dist/doc/dvips/dvips.pdf). Komunikaty z uruchomienia programu (nieco zmodyfikowane) znajdują się na rys. 12.

debug:start search(file=texmf.cnf, must_exist=1, find_all=1,
path=.:/usr/local/bin/texlive:/usr/local/bin:
/usr/local/bin/texmf/web2c:/usr/local:
/usr/local/texmf/web2c:/.:/./teTeX/TeX/texmf/web2c:).
kdebug:start search(file=ls-R, must_exist=1, find_all=1,
path=~/tex:/usr/local/texmf).
kdebug:search(ls-R) =>/usr/local/texmf/ls-R
kdebug:start search(file=aliases, must_exist=1, find_all=1,
path=~/tex:/usr/local/texmf).
kdebug:search(aliases) => /usr/local/texmf/aliases
kdebug:start search(file=config.ps, must_exist=0, find_all=0,
path=.:~/tex:!!/usr/local/texmf/dvips//).
kdebug:search(config.ps) => /usr/local/texmf/dvips/config/config.ps
kdebug:start search(file=/root/.dvipsrc, must_exist=0, find_all=0,
path=.:~/tex:!!/usr/local/texmf/dvips//).
search(file=/home/goossens/.dvipsrc, must_exist=1, find_all=0,
path=.:~/tex/dvips//:!!/usr/local/texmf/dvips//).
kdebug:search($HOME/.dvipsrc) =>
kdebug:start search(file=config.cms, must_exist=0, find_all=0,
path=.:~/tex/dvips//:!!/usr/local/texmf/dvips//).
kdebug:search(config.cms)
=>/usr/local/texmf/dvips/cms/config.cms
Rysunek 12: Szukanie pliku konfiguracyjnego

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-dist/dvips/config/config.cms
p +ams.map
p +cms.map
p +cmbkm.map
p +amsbkm.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 7.2.3).

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

%
This is dvips(k) 5.92b Copyright 2002 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-dist/fonts/tfm//:
/var/tex/fonts/tfm//).
kdebug:search(cmr10.tfm) => /usr/local/texmf-dist/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-dist/dvips//:
~/tex/fonts/type1//:!!/usr/local/texmf-dist/fonts/type1//).
kdebug:search(cmr10.pfb) => /usr/local/texmf-dist/fonts/type1/public/cm/cmr10.pfb
<cmr10.pfb>[1]

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

Inną użyteczną cechą Web2C jest możliwość kontrolowania wielu parametrów określających wielkość pamięci za pomocą pliku texmf.cnf który jest czytany przez Kpathsea.

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. Przykładowo, można wygenerować „ogromną” wersję formatu TeX i nazwać taki plik hugetex.fmt. Dzięki standardowemu sposobowi nazywania programów używanych przez Kpathsea, właściwa wartość zmiennej main_memory będzie przeczytana z pliku texmf.cnf.

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; domyślna wartość hash_extra to 60000.

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ący na pewną elastyczność.

#### 7.4. $TEXMFDOTDIR

W wielu miejscach powyżej podajemy różne ścieżki przeszukiwania zaczynające się od znaku . (aby najpierw przeszukać katalog bieżący), tak jak w

TEXINPUTS=.;$TEXMF/tex//

Jest to uproszczenie. Plik texmf.cnf który dostarczamy w TeX Live używa $TEXMFDOTDIR zamiast „.”, tak jak w

TEXINPUTS=$TEXMFDOTDIR;$TEXMF/tex//
(W dostarczonym pliku druga część jest nieco bardziej skomplikowana niż tylko $TEXMF/tex//. Ale to jest mniej ważne; tu chcemy przedstawić zmienną $TEXMFDOTDIR).

Powód użycia zmiennej $TEXMFDOTDIR w definicji ścieżki zamiast „.” jest oczywisty – może ona być nadpisana. Na przykład, dokument może składać się z wielu plików umieszczonych w różnych podkatalogach. Aby sobie z tym poradzić należy ustawić TEXMFDOTDIR jako .// (na przykład w katalogu w którym budujemy dokument) i wtedy wszystkie podkatalogi będą przeszukiwane. (Ostrzeżenie: nie należy używać .// domyślnie. Jest wysoce niepożądane i potencjalnie niebezpieczne przeszukiwanie wszystkich podkatalogów dla dowolnego dokumentu.)

I jeszcze jeden przykład. Jeśli wszystkie pliki są wyszukiwane poprzez podanie bezpośrednich ścieżek to nie trzeba przeszukiwać bieżącego katalogu. Można wtedy ustawić $TEXMFDOTDIR na np. /nonesuch albo inny nie istniejący katalog.

Domyślną wartością $TEXMFDOTDIR jest „.” i taka jest w texmf.cnf.

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

- grup TeX-owych: międzynarodowej, niemieckiej, holenderskiej i polskiej (odpowiednio: TUG, DANTE e.V., NTG, i GUST), które wspólnie zapewniają potrzebną infrastrukturę techniczną i organizacyjną. Dołącz do swojej grupy użytkowników systemu TeX! (Odwiedź https://tug.org/usergroups.html);

- zespołu CTAN ( https://ctan.org), który dystrybuuje obrazy płyt TeX Live i udostępnia wspólną infrastrukturę służącą aktualizacji pakietów, od której zależy TeX Live;

- Nelsona Beebe, który umożliwił dostęp do wielu platform dewelperom TeX Live, który sam wszechstronnie testujemi za jego niezrównane prace bibliograficzne;

- Johna Bowmana, który dostosował swój zaawansowany program Asymptote do współpracy z TeX Live;

- Petera Breitenlohnera i zespołu ε-TeX, którzy stworzyli stabilną podstawę przyszłych wersji TeX-a (Peter dodatkowo służył nieustanną pomocą w wykorzystaniu narzędzi GNU autotools w TeX Live); Peter zmarł w październiku 2015 roku, dedykujemy kontynuację prac Jego pamięci.

- Jin-Hwan Cho i całego zespołu DVIPDFMx, którzy opracowali ten znakomity sterownik i nieustannie pomagali w rozwiązywaniu problemów z konfiguracją;

- Thomasa Essera, autora wspaniałego teTeX-a, bez którego TeX Live z całą pewnością by nie powstał;

- Michaela Goossensa, który był współautorem pierwotnej dokumentacji;

- Eitana Gurari, autora programu TeX4ht (wykorzystanego do tworzenia niniejszej dokumentacji w wersji HTML), który niezmordowanie pracować nad jego ulepszaniem i błyskawicznie dostarczał poprawki; Eitan zmarł w czerwcu 2009 r. i dedykujemy tę dokumentację Jego pamięci;

- Hansa Hagena, który dostosowywał pakiet ConTeXt ( https://pragma-ade.com) do potrzeb TeX Live i nadal rozwija TeX-a;

- Hŕn Thế Thŕnha, Martina Schrödera i zespołu pdfTeX( https://pdftex.org), którzy kontynuują ulepszanie tego programu;

- Hartmuta Henkela, mającego istotny udział w rozwoju pdfTeX-a, LuaTeX-a i innych programów;

- Shunshaku Hirata, za wiele oryginalnych i będących kontynuacją ulepszeń sterownika DVIPDFMx.

- Taco Hoekwatera, który wznowił rozwój MetaPosta i pracowa nad LuaTeX-em ( https://luatex.org), jak też pomógł w integracji ConTeXt w TeX Live oraz ulepszył bibliotekę Kpathsea, dodając jej wielowątkowość i za wiele więcej

- Khaleda Hosny, który pracuje nad doskonaleniem XeTeX, DVIPDFMx oraz fontów arabskich i innych;

- Pawła Jackowskiego, który wykonał instalator dla Windows tlpm i Tomka Łuczaka, twórcy tlpmgui (programy te były wykorzystywane w poprzednich edycjach);

- Akira Kakuto, który dostarczył programy dla Windows, pochodzące z japońskich dystrybucji W32TEX i W64TEX ( https://w32tex.org), stale dostosowywane i aktualizowane dla potrzeb TeX Live;

- Jonathana Kew, który zainicjować nową ścieżkę rozwojową – XeTeX, i który włożył sporo wysiłku w zintegrowanie tego programu z TeX Live, jak również zapoczątkował prace nad instalatorem dla MacTeX oraz edytorem TeXworks;

- Hironori Kitagawa, za pielęgnację (e)pTeX-a i związane z tym działania wspierające;

- Dicka Kocha, który pielęgnuje MacTeX-a ( https://tug.org/mactex) w ścisłym połączeniu z TeX Live i bardzo sympatycznie współpracuje;

- Reinharda Kotuchy, mającego istotny udział w stworzeniu nowej infrastruktury i programu instalacyjnego dla TeX Live 2008, uparcie dążącego do ujednolicenia działania TeX Live w Windows i Unix, który również opracował skrypt getnonfreefonts i wykonał wiele innych prac;

- Siep Kroonenberg, również za wielki wkład w stworzenie nowej infrastruktury i programu instalacyjnego dla TeX Live 2008 (szczególnie dla Windows) oraz włożyła sporo pracy w aktualizację tej dokumentacji;

- Clerk Ma, za poprawianie błędów w silnikach i rozbudowę;

- Mojcy Miklavec, która pomagała wielokrotnie w pracach związanych z ConTeXt-em, za budowanie wielu zestawów binariów i mnóstwo innych prac;

- Heiko Oberdiek, za pakiet epstopdf i wiele innych, skompresowanie ogromnych plików danych pst-geo, abyśmy mogli je dołączyć, a przede wszystkim, za jego wyjątkowo godną uwagi pracę nad pakietem hyperref.

- Phelype Oleinik, za wprowadzenie w 2020 roku dla wszystkich systemów group-delimited \input.

- Petra Olšáka, który koordynował i sprawdzał przygotowanie pakietów czeskich i słowackich;

- Toshio Oshimy, który opracował przeglądarkę dviout dla Windows;

- Manuela Pégourié-Gonnarda, który pomógł w aktualizacji pakietów i pracował nad texdoc;

- Fabrice’a Popineau, który pierwszy stworzył wersje oprogramowania dla Windows, także za pracę nad dokumentacją w języku francuskim;

- Norberta Preininga, głównego architekta infrastruktury i programu instalacyjnego, a także koordynował (wraz z Frankiem Küsterem) debianową wersję TeX Live i przedstawił wiele sugestii ulepszeń;

- Sebastiana Rahtza, który stworzył TeX Live i kierował projektem przez wiele lat; Sebastian zmarł w marcu 2016 r.; dedykujemy kontynuację prac Jego pamięci;

- Luigi Scarso, który kontynuuje rozwój MetaPosta, LuaTeX-a i innych programów;

- Andreasa Scherera, za cwebbin, implementację CWEB używaną w TeX Live i ciągłą pielęgnację oryginalego CWEB;

- Takuji Tanaka, za pielęgnację (e)(u)pTeX-a i związane z tym wsparcie;

- Tomka Trzeciaka, który pracowicie rozwiązywał rozliczne problemy związane z Windows;

- Vladimira Volovicha, który wydatnie pomógł w rozwiązywaniu problemów przenośności, szczególnie zaś umożliwił dołączenia xindy;

- Staszka Wawrykiewicza, głównego testującego TeX Live w różnych systemach, który ponadto koordynować przygotowanie wszystkich polskich dodatków (fontów, programów instalacyjnych i wielu innych). Staszek zmarł w lutym 2018 r, dedykujemy kontynuację prac Jego pamięci;

- Olafa Webera, który w poprzednich latach cierpliwie pielęgnował Web2C;

- Gerbena Wierda, który przygotował oryginalne oprogramowanie i wsparcie dla macOS;

- Grahama Williamsa, który zainicjował prace nad TeX Catalogue.

- Josepha Wrighta, za ogromną pracę nad przystosowaniem niektórych instrukcji pierwotnych dostępnych dla wszystkich silników;

- Hironobu Yamashita, za duży wkład pracy nad pTeX-em i jego obsługą;

Binaria skompilowali: Marc Baudoin (amd64-netbsd, i386-netbsd), Ken Brown (x86_64-cygwin), Simon Dales (armhf-linux), Johannes Hielscher (aarch64-linux), Akira Kakuto (win32), Dick Koch (universal-darwin), Mojca Miklavec (amd64-freebsd, armhf-linux, i386-freebsd, x86_64-darwinlegacy, i386-solaris, x86_64-solaris, sparc-solaris), Norbert Preining (i386-linux, x86_64-linux, x86_64-linuxmusl). Informacje na temat procesu budowy TeX Live można znaleźć na stronie: https://tug.org/texlive/build.html.

Aktualizacje i tłumaczenia dokumentacji wykonali: Takuto Asakura (japoński), Denis Bitouzé & Patrick Bideault (francuski), Carlos Enriquez Figueras (hiszpański), Jjgod Jiang, Jinsong Zhao, Yue Wang, & Helin Gai (chiński), Nikola Lečić (serbski), Marco Pallante & Carla Maggi (włoski), Petr Sojka & Jan Busa (czeski/ słowacki), Boris Veytsman (rosyjski), Zofia Walczak & Jerzy Ludwichowski (polski), Uwe Ziegenhagen (niemiecki). Dokumentację TeX Live znajdziemy na stronie https://tug.org/texlive/doc.html .

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

### 9. Historia

#### 9.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 – dzięki Fabrice Popineau.

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 ( https://www.debian.org/intro/free). Dołożyliśmy wszelkich starań, aby sprawdzić warunki licencyjne pakietów.

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

##### 9.1.1. Wydanie 2003

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:

- na życzenie „LaTeX team” zmieniono standardowe użycie programów latex i pdflatex – by korzystały one z ε-TeX (patrz str. 11);

- załączono nowe fonty obwiedniowe Latin Modern, które zastępują m.in. fonty EC (zawierając komplet znaków europejskich), szczególnie do tworzenia poprawnych plików PDF;

- usunięto binaria dla platformy Alpha OSF (poprzednio usunięto także binaria dla HPUX), niestety nie udało się znaleźć osób chętnych do wykonania kompilacji;

- zmieniono instalację w systemach Windows, wprowadzając po raz pierwszy zintegrowane środowisko pracy, oparte na edytorze XEmacs;

- potrzebne programy pomocnicze dla Windows (Perl, Ghostscript, ImageMagick, Ispell) instalowano w strukturze katalogów instalacji TeX Live;

- mapy fontowe, z których korzystają programy dvips, dvipdfm oraz pdftex, generowano odtąd w katalogu texmf-dist/fonts/map;

- TeX, METAFONT oraz MetaPost domyślnie pozwalały wypisywać komunikaty na ekranie i w pliku .log, a także w operacjach \write w ich reprezentacji 8-bitowej, zamiast tradycyjnej notacji ^^; w TeX Live 7 eksperymentalnie wprowadzono zależność przekodowania wyjścia programów od systemowej strony kodowej, potem ten pomysł zarzucono;

- znacznie zmieniono niniejszą dokumentację;

- wreszcie, ponieważ numery wersji kolejnych edycji mogły wprowadzać w błąd, postanowiono identyfikować edycje TeX Live zgodnie z rokiem wydania.

##### 9.1.2. Wydanie 2004

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

- Gdy mieliśmy już lokalnie zainstalowane fonty, które korzystały z własnych plików .map i/lub .enc, nale żało przenieść te pliki w nowe miejsce w strukturze texmf-dist/.

  Pliki .map (map fontowych) są odtąd wyszukiwane w podkatalogach fonts/map (w każdym drzewie texmf), zgodnie ze ścieżką określoną przez zmienną TEXFONTMAPS. Analogicznie, pliki .enc (przekodowań fontów) są odtąd wyszukiwane w podkatalogach fonts/enc, zgodnie ze ścieżką określoną przez zmienną ENCFONTS. O niewłaściwie umieszczonych plikach tego typu zostaniemy ostrzeżeni podczas uruchomienia programu updmap. Zmiany te wprowadzono w celu uporządkowania struktury katalogów: wszystkie pliki dotyczące fontów znajdują się odtąd w ramach jednego podkatalogu fonts/.

  Metody radzenia sobie z sytuacjami związanymi z przejęciem na nowy układ katalogów omawiał artykuł https://tug.org/texlive/mapenc.html.

- Do TeX Collection DVD dodano nową dystrybucję dla Windows o nazwie proTeXt (opartą na MiKTeX-u). Była ona dostępna także na odrębnym CD. Choć proTeXt nie bazuje na implementacji Web2C, stosuje układ katalogów zgodny z TDS (patrz część 2 na str. 7).

- W ramach TeX Live dotychczasowe pojedyncze drzewo katalogów texmf zostało rozdzielone na trzy mniejsze: texmf, texmf-dist i texmf-doc (patrz część 2.2, str. 8) oraz pliki README w każdym z tych katalogów).

- Wszystkie pliki makr wczytywane przez TeX-a zostały umieszczone wyłącznie w podkatalogu tex w ramach texmf*. Tym samym usunięto zbędne katalogi etex, pdftex, pdfetex itp. i uproszczono metody wyszukiwania plików. Patrz texmf-dist/doc/generic/tds/tds.html#Extensions.

- Pomocnicze skrypty wykonywalne, niezależne od platformy i zwykle uruchamiane w sposób automatyczny, były odtąd umieszczone w nowym podkatalogu scripts w ramach texmf*. Znajdowane są poleceniem kpsewhich -format=texmfscripts. Programy korzystające z tych skryptów mogły wymagać modyfikacji. Patrz texmf-dist/doc/generic/tds/tds.html#Scripts.

- Prawie wszystkie formaty traktują od tego wydania większość znaków jako jawnie „wyświetlalne” (printable), nie zaś, jak było dotychczas, konwertowane na TeX-ową notację ^^. Było to możliwe dzięki domyślnemu wczytywaniu tablicy przekodowań cp227.tcx. Dokładniej, znaki o kodach 32–256, HT, VT oraz FF zostały potraktowane dosłownie podczas wyświetlania komunikatów. Wyjątkiem jest plain TeX (tylko znaki z zakresu 32–127 są nie zmieniane), ConTeXt (znaki z zakresu 0–255) oraz formaty bazujące na Omedze. Podobna domyślna właściwość występowała w TeX Live 2003, ale w tej edycji została zaimplementowana w bardziej elegancki sposób i z większymi możliwościami indywidualnego dostosowania (patrz texmf-dist/doc/web2c/web2c.html#TCX-files. (Warto wspomnieć, że wczytując Unicode, TeX może w komunikatach błędów pokazywać niekompletne sekwencje znaków, ponieważ został zaprojektowany „bajtowo”.)

- Program pdfetex został domyślną „maszynę” dla większości formatów (nie dotyczy to samego Plain tex). domyślnie, gdy uruchamiamy polecenie latex, mex itp., generowane są pliki DVI. możliwe jest jednak wykorzystanie w LaTeX, ConTeXt itp. m.in. właściwości mikro-typograficznych zaimplementowanych w pdftex, a także rozszerzonych cech ε-TeX-a (texmf-dist/doc/etex/base/).

  Oznacza to także, co warto podkreślić, że zalecane jest odtąd użycie pakietu ifpdf (który działa zarówno z plain, jak i LaTeX) lub analogicznych makr. Zwykłe sprawdzanie czy zdefiniowano \pdfoutput bądź kilka innych poleceń pierwotnych może nie wystarczyć do rozstrzygnięcia czy nie jest generowany plik PDF. W 2004 roku podjęliśmy wysiłek by zachować, najlepiej jak to możliwe, kompatybilność z dotychczasowymi przyzwyczajeniami użytkowników. Brano wówczas pod uwagę, że \pdfoutput może być zdefiniowany nawet wtedy, gdy generowany jest plik DVI.

- pdfTeX ( https://pdftex.org) zyskał wówczas wiele nowych cech:

  - \pdfmapfile i \pdfmapline pozwalają określić z poziomu dokumentu użyte mapy fontowe, a także pojedyncze dodatkowe wpisy w tych mapach.

  - mikro-typograficzne operacje z fontami są łatwiejsze w użyciu;
    https://www.ntg.nl/pipermail/ntg-pdftex/2004-May/000504.html

  - wszystkie parametry pracy pdfTeX-a, dotychczas określane w specjalnym pliku konfiguracyjnym pdftex.cfg, muszą być odtąd ustawiane poleceniami wbudowanymi, jak w pliku pdftexconfig.tex; plik pdftex.cfg nie jest już w ogóle wykorzystywany. Po zmianie pdftexconfig.tex należało na nowo wygenerować pliki formatów (wciąż jednak użytkownik miał pełną swobodę określania parametrów w redagowanym dokumencie);

  - więcej informacji zawarto w podręczniku pdfTeX-a: texmf-dist/doc/pdftex/manual/pdftex-a.pdf.

- Polecenie \input w programach tex, mf oraz mpost akceptowało odtąd nazwy plików ograniczone podwójnymi apostrofami, zawierające spacje i inne znaki, np.:

           \input ,,nazwa_pliku ze spacjami"   % plain
      \input{,,nazwa_pliku ze spacjami"}  % latex

  więcej informacji zawarto w podręczniku Web2C: texmf-dist/doc/web2c.

- -output-directory – nowa opcja programów tex, mf oraz mpost – pozwalała na zapisanie wyniku pracy w wyspecyfikowanym katalogu (np. można uruchomić program tex z plikiem znajdującym się na dysku tylko do odczytu, zaś wynik zapisać na dysku pozwalającym na to);

- Rozszerzenie encTeX zostało szczęśliwie włączone do Web2C. Aby uaktywnić to rozszerzenie, należało podczas generowania formatu użyć opcji -enc. Ogólnie mówiąc, encTeX obsługuje przekodowanie wejścia i wyjścia, włączając także Unicode (UTF-8) (patrz texmf-dist/doc/generic/enctex/ oraz https://www.olsak.net/enctex.html).

- Udostępniono nowy program Aleph, który łączył cechy ε-TeX i Ω. Skromna dokumentacja jest dostępna na texmf-dist/doc/aleph/base oraz https://texfaq.org/FAQ-enginedev. Format oparty na LaTeX-u dla programu Aleph nazwano lamed.

- Dystrybucja LaTeX-a została po raz pierwszy zaopatrzona w nową licencję LPPL, odtąd w pełni zgodną i aprobowaną przez zalecenia określone w licencji Debiana. O nowościach i uaktualnieniach można się dowiedzieć przeglądając pliki ltnews w texmf-dist/doc/latex/base.

- Dołączono także program dvipng konwertujący pliki DVI do formatu graficznego PNG ( https://www.ctan.org/pkg/dvipng).

- W porozumieniu i z pomocą autora, Claudio Beccariego, ograniczono pakiet cbgreek do zestawu fontów rozsądnego rozmiaru. Usunięto sporadycznie używane fonty konturowe i służące do prezentacji. Pełen zestaw jest oczywiście nadal dostępny z serwerów CTAN ( https://ctan.org/pkg/cbgreek-complete).

- Usunięto program oxdvi; jego funkcje przejął xdvi.

- Programy z przedrostkiem ini oraz vir (np. initex), które zwykle były dowiązaniami do programów tex, mf i mpost, nie były od tej pory dostępne – w zupełności wystarcza użycie w wierszu poleceń opcji -ini.

- Dystrybucja nie zawierała binariów dla platformy i386-openbsd (głównie z powodu braku chętnych do wykonania kompilacji).

- W systemie sparc-solaris należało ustawić zmienną systemową LD_LIBRARY_PATH, aby uruchomić programy t1utils. Binaria były kompilowane w C++, ale w tym systemie brakowało standardowego położenia bibliotek uruchomieniowych. Wiedziano o tym już wcześniej, nie było to jednak dotychczas udokumentowane. Z kolei dla systemu mips-irix wymagana była obecność bibliotek MIPSpro 7.4.

##### 9.1.3. Wydanie 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:

- Wprowadzono nowe skrypty texconfig-sys, updmap-sys i fmtutil-sys, których zadaniem jest modyfikowanie plików konfiguracyjnych w głównych drzewach katalogów systemu. Dotychczasowe skrypty texconfig, updmap i fmtutil modyfikują odtąd pliki użytkownika w katalogu $HOME/.texlive2005.

- Dodano nowe zmienne środowiskowe TEXMFCONFIG i TEXMFSYSCONFIG, które wskazują położenie drzew katalogów z plikami konfiguracyjnymi, odpowiednio: użytkownika i systemu. Tak więc mogło okazać się koniecznym przeniesienie własnych wersji fmtutil.cnf i updmap.cfg w odpowiednie miejsca. Inną możliwością było przedefiniowanie TEXMFCONFIG lub TEXMFSYSCONFIG w pliku texmf.cnf. W każdym z przypadków położenie tych plików i przypisania TEXMFCONFIG i TEXMFSYSCONFIG muszą być zgodne. (Patrz część 2.3, str. 9.)

- W wydaniu z poprzedniego roku podczas tworzenia wynikowego pliku DVI \pdfoutput i podobne polecenia pozostawały niezdefiniowane, mimo że używany być program pdfetex. Zgodnie z obietnicą, w 2005 roku zarzucono to rozwiązanie (jego celem było zapewnienie kompatybilności). Z tego powodu użytkownik być zmuszony zmienić te dokumenty, które używały \ifx\pdfoutput\undefined do sprawdzania, czy plik wynikowy ma być w formacie PDF. Zamiast tego należało zastosować pakiet ifpdf.sty, który działa zarówno z plain TeX-em jak i LaTeX-em, albo zapożyczył zastosowane w nim rozwiązania.

- W wydaniu z 2004 roku zmieniono większość formatów tak, by na wyjściu 8-bitowe znaki były reprezentowane przez same siebie (por. poprzednia część). Nowy plik TCX o nazwie empty.tcx pozwalał w łatwy sposób uzyskać w razie potrzeby oryginalną notację (^^), np.:

           latex --translate-file=empty.tcx twojplik.tex

- Dołączono nowy program dvipdfmx, służący do konwersji DVI do PDF. Program jest aktywnie pielęgnowaną wersję programu dvipdfm, który wciąż jest dostępny, ale nie jest już jednak polecany.

- Nowe programy pdfopen i pdfclose pozwalały na przeładowanie plików PDF w Adobe Acrobat Reader, bez konieczności ponownego uruchamiania programu. (Inne przeglądarki formatu PDF, jak xpdf, gv i gsview, nigdy na tę przypadłość nie cierpiały.)

- Dla spójności, zmienne HOMETEXMF i VARTEXMF zostały przemianowane odpowiednio na TEXMFHOME i TEXMFSYSVAR. Zachowano zmienną TEXMFVAR, przeznaczoną domyślnie dla użytkownika. Patrz też punkt pierwszy, powyżej.

##### 9.1.4. Wydanie 2006–2007

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

W istotny sposób został zaktualizowany MetaPost, zaplanowano jego dalszy rozwój ( https://tug.org/metapost/articles); to samo dotyczy pdfTeX-a ( https://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-dist/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 ( https://mirror.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 https://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 ( https://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 ulepszeń w otoczeniu TeX-owym, na których skorzystają wszyscy.

##### 9.1.5. Wydanie 2008

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 ( https://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ęść 5), 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 ( https://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 wprowadzone przez Donalda Knutha (tzw. TeX tuneup of 2008); patrz: https://tug.org/TUGboat/Articles/tb29-2/tb92knut.pdf.

##### 9.1.6. Wydanie 2009

W wydaniu 2009 najbardziej widoczną zmianą jest to, że pdf(LA )TeX automatycznie konwertuje plik EPS do PDF, poprzez uruchomienie programu epstopdf (dotyczy to sytuacji, gdy użyto pliku konfiguracyjnego graphics.cfg LaTeX-a i gdy plikiem wynikowym składu ma być PDF). Domyślne ustawienia zapobiegają nadpisaniu wszelkich utworzonych wcześniej przez użytkownika plików PDF, ale można także wyłączyć uruchamianie epstopdf, wstawiając \newcommand{\DoNotLoadEpstopdf}{} (lub \def...) przed deklaracją \documentclass. Szczegóły można znaleźć w dokumentacji pakietu epstopdf ( https://ctan.org/pkg/epstopdf-pkg).

Ważną zmianą jest także uruchamianie podczas kompilacji niektórych zewnętrznych programów via \write18. Dotyczy to np. epstopdf, makeindex czy bibtex. Dokładna lista takich programów zawarta jest w pliku texmf.cnf. Dla instalacji, które mogą wymagać zakazu uruchamiania takich programów „w tle” przewidziano odpowiednią opcję w programie instalacyjnym (patrz część 3.2.4). Po instalacji można zablokować uruchamianie w pliku texmf.cnf.

Od wydania 2009 domyślnym formatem wyjściowym dla Lua(LA )TeX staje się PDF (wykorzystuje on m.in. obsługę przez LuaTeX-a fontów OpenType). Aby uzyskać plik DVI należy użyć nowych poleceń: dviluatex lub dvilualatex. Strona domowa projektu LuaTeX: https://luatex.org.

Usunięto oryginalny silnik Omega i format Lambda (w uzgodnieniu z autorami). Pozostał zaktualizowany Aleph i format Lamed, oraz pliki pomocnicze Omega.

Załączono nowe wydanie fontów AMS Type 1, m.in. fonty Computer Modern. Zawierają one poprawki, jakie D. Knuth wprowadził w plikach metafontowych w ciągu ostatnich lat, a także poprawki hintingu. Hermann Zapf przeprojektował także fonty Euler (patrz https://tug.org/TUGboat/Articles/tb29-2/tb92hagen-euler.pdf). Co ważne, dla wszystkich fontów nie zmieniono plików metrycznych (TFM). Strona domowa fontów: https://www.ams.org/tex/amsfonts.html.

Dla Windows i MacTeX dołączono nowe środowisko-edytor TeXworks. Dla innych platform patrz: https://tug.org/texworks. Inspirowany przez edytor TeXShop dla macOS, TeXworks jest wieloplatformowym, łatwym w użyciu środowiskiem pracy.

Dla niektórych platform załączono nowy program graficzny Asymptote ( https://asymptote.sourceforge.io). Korzysta on z tekstowej notacji zbliżonej do MetaPosta, ale rozszerzonej do obsługi 3D itp.

Program dvipdfm został zastąpiony przez dvipdfmx, który działa w specjalnym trybie kompatybilnym, gdy użyć do wywołania dawną nazwę. dvipdfmx wspiera CJK i zawiera wiele poprawek od ostatniej dystrybucji dvipdfm. Strona domowa: https://project.ktug.or.kr/dvipdfmx.

Dodano zestawy programów dla cygwin i i386-netbsd, podczas gdy usunięto programy dla innych platform BSD. Zapewniono nas, że użytkownicy OpenBSD i FreeBSD będą mogli pobierać pakiety TeX-owe wraz z aktualizacją obu systemów. Ponadto natknęliśmy się na spore trudności przy kompilacji programów, które mogłyby działać w różnych wersjach tych systemów.

Inne zmiany: do kompresji pakietów użyto programu xz, stanowiącego stabilny zamiennik lzma ( https://tukaani.org/xz/); znak $ jest obecnie dozwolony w nazwach plików, o ile nie poprzedza on nazwy znanej zmiennej; biblioteka Kpathsea jest obecnie wielowątkowa (co wykorzystano w programie MetaPost); do budowy wszystkich programów wykorzystano teraz Automake.

##### 9.1.7. Wydanie 2010

Od wydania 2010 generowane są pliki PDF w wersji 1.5, oferującej lepszą kompresję. Dotyczy to wszystkich mechanizmów używanych do generowania PDF, w tym dvipdfmx. Powrót do wersji 1.4 jest możliwy poprzez użycie pakietu pdf14 lub komendy \pdfminorversion=4.

Obecnie pdf(LA )TeX automatycznie konwertuje plik EPS (Encapsulated PostScript) do formatu PDF, wykorzystując pakiet epstopdf, o ile załadowano LaTeX-owy plik konfiguracyjny graphics.cfg i wybrano format wyjściowy PDF. Domyślne ustawienia mają na celu wykluczenie przypadkowego nadpisania istniejących już, wygenerowanych innym sposobem plików PDF, ale można również zabronić uruchamiania epstopdf wpisując przed poleceniem \documentclass polecenie \newcommand{\DoNotLoadEpstopdf}{} (lub \def...). Program epstopdf nie jest również używany w przypadku dołączenia pakietu pst-pdf. Więcej szczegółów znajduje się w dokumentacji pakietu epstopdf ( https://ctan.org/pkg/epstopdf-pkg).

Domyślnie włączono również wykonywanie kilku programów zewnętrznych dla TeX-a poprzez mechanizm \write18. Dotyczy to: repstopdf, makeindex, kpsewhich, bibtex i bibtex8 (lista jest zdefiniowana w texmf.cnf). W środowiskach, w których wykonywanie zewnętrznych programów jest niepożądane, należy tę opcję zaznaczyć podczas instalacji (patrz: część 3.2.4) lub wyłączyć już po niej poprzez uruchomienie: tlmgr conf texmf shell_escape 0.

Kolejna zmiana dotyczyła programów BibTeX i Makeindex, które (podobnie zresztą jak sam TeX) domyślnie nie zapisują swoich plików wynikowych do dowolnie zdefiniowanego katalogu. Umożliwia to w ograniczonym zakresie zadziałanie polecenia \write18. Aby to zmienić, należy ustawić zmienną TEXMFOUTPUT lub zmodyfikować openout_any.

Podobnie jak pdfTeX, obecnie również XeTeX obsługuje wyrównywanie (tzw. kernowanie) na krawędzi wiersza, ale możliwość poszerzania pisma (font expansion) nadal nie jest dostępna.

Program tlmgr podczas aktualizacji zachowuje obecnie domyślnie kopię poprzedniej wersji pakietu (tlmgr option autobackup 1), zatem aktualizację można łatwo cofnąć za pomocą tlmgr restore. W wypadku ograniczonej ilości miejsca na dysku, opcja ta może został wyłączona poleceniem tlmgr option autobackup 0.

Dołączono nowe programy: pTeX i narzędzia do składu w języku japońskim, BibTeXU dla obsługi Unicode w BibTeX-u, chktex ( https://baruch.ev-en.org/proj/chktex) – program do sprawdzania dokumentów (LA )TeX, dvisvgm – konwerter DVI do SVG ( https://dvisvgm.sourceforge.net) oraz binaria dla nowych platform sprzętowych: amd64-freebsd, amd64-kfreebsd, i386-freebsd, i386-kfreebsd, x86_64-darwin, x86_64-solaris.

W dokumentacji zmian poprzedniego wydanie (TeX Live 2009) nie zdążono uwzględnić usunięcia wielu programów uruchomieniowych dla TeX4ht ( https://tug.org/tex4ht) oraz zastąpienia ich jednym programem mk4ht.

Wreszcie, z powodu niewystarczającej ilości miejsca na płycie TeX Collection DVD, zrezygnowano z możliwości uruchamiania TeX Live w trybie „live”. Jednocześnie znacznie przyspieszyło to sam proces instalacji TeX Live z płytki DVD.

##### 9.1.8. Wydanie 2011

Edycja 2011 zawierała stosunkowo niewiele zmian w porównaniu do poprzednich wydań.

Programy dla macOS (universal-darwin i x86_64-darwin) działają od tego momentu tylko dla wersji Leopard i późniejszych. Wersje Panther i Tiger nie będą obsługiwane.

Dla większości platform dołączono program biber, służący do przetwarzania danych bibliograficznych. Rozwój tego programu jest ściśle związany z pakietem biblatex, który w zupełnie nowy sposób obsługuje bibliografie w LaTeX-u .

Program MetaPost (mpost) ani nie tworzy, ani już więcej nie wykorzystuje pliku formatu .mem. Wymagane pliki (np. plain.mp) są po prostu wczytywane przy każdym uruchomieniu. Zmiana (choć niezauważalna dla przeciętnego użytkownika) związana jest z nowym, innym podejściem: MetaPost jest obecnie traktowany jako biblioteka programów.

Zaprogramowany w Perl program updmap (uprzednio stosowany tylko w Windows) został dostosowany do wszystkich platform. Również te zmiany są niezauważalne dla użytkownika, choć znacznie przyspieszyły działanie programu.

Przywrócono (ze względów raczej historycznych) programy initex i inimf (ale nie inne warianty ini*).

##### 9.1.9. Wydanie 2012

Znacznie zmodyfikowano program tlmgr, odtąd pozwala on m.in. aktualizować z kilku repozytoriów w sieci. Szczegóły zawarto w pomocy (tlmgr –help), w części dotyczącej wielu repozytoriów.

Dla parametru \XeTeXdashbreakstate (xetex i xelatex) ustawiono domyślnie wartość 1. Pozwala to na łamanie wierszy po myślnikach i separatorach zakresu liczb, co było zawsze typowe dla kompilacji programami TeX, LaTeX, LuaTeX, itp. Chcąc zachować dotychczasowe dokładne miejsca łamania, pliki kompilowane programem XeTeX wymagają zatem użycia polecenia \XeTeXdashbreakstate=0.

Wynikowe pliki pdftex oraz dvips mogą obecnie przekroczyć wielkość dwóch gigabajtów.

Dotychczas program dvips korzystał ze zbyt wielu różnych wersji standardowych 35 fontów postscriptowych. Nie były one domyślnie włączane do pliku wynikowego, bo zakładano, że urządzenia drukujące bądź programy (np. GhostScript) mają dostęp do odpowiednich fontów. Od tej edycji fonty ze standardowego zestawu, dostarczone w dystrybucji TeX Live, domyślnie są włączane do tworzonego przez dvips pliku.

W zastrzeżonym trybie pracy \write18 (ustawianym domyślnie) dopuszczono uruchamianie programu mpost.

Plik konfiguracyjny texmf.cnf znajdywany jest także w drzewie katalogów ../texmf-local, np. /usr/local/texlive/texmf-local/web2c/texmf.cnf.

Skrypt updmap wczytuje updmap.cfg z kolejnych drzew TeX-owych, zamiast jeden plik globalny. Zmiana nie powinna być zauważalna, chyba że zmienimy ręcznie updmap.cfg. Uruchomienie updmap –help pokaże szczegóły.

Dodano binaria dla armel-linux and mipsel-linux. Usunięto z głównej dystrybucji binaria dla sparc-linux i i386-netbsd.

##### 9.1.10. Wydanie 2013

W układzie dystrybucji zawartość katalogu texmf/ włączono (dla uproszczenia) do katalogu texmf-dist/. Obie zmienne Kpathsea: TEXMFMAIN i TEXMFDIST wskazują odtąd katalog texmf-dist. Również dla uproszczenia instalacji połączono sporo niewielkich kolekcji językowych.

W programie MetaPost udostępniono zapis do formatu PNG i dodane wsparcie dla operacji zmiennoprzecinkowych (IEEE double).

LuaTeX zaktualizowano do wersji 5.2 Lua, oraz dołączono nową bibliotekę pdfscanner, służącą do przetwarzania zawartości zewnętrznych stron w formacie PDF (więcej informacji na stronie domowej projektu).

W programie XeTeX (patrz także na stronie domowej projektu):

- do obsługi układu fontów zastosowano bibliotekę HarfBuzz, zamiast dotychczasowej biblioteki ICU (biblioteka ICU jest nadal stosowana dla obsługi kodowania wejściowego, składu dwukierunkowego i unikodowych miejsc łamania wiersza);

- biblioteki Graphite2 i HarfBuzz zastąpiły SilGraphite dla układu Graphite;

- dla komputerów Mac użyto mechanizmu Core Text, zamiast (zarzuconego) ATSUI;

- w wypadku znalezienia identycznych nazw fontów w różnych formatach, program użyje fontów TrueType/OpenType, zamiast Type1;

- naprawiano okazjonalnie występujące różnice w znajdywaniu fontów przez programy XeTeX i xdvipdfmx.

- dołączono wsparcie dla OpenType math cut-ins;

W programie xdvi zastąpiono bibliotekę do wyświetlania t1lib przez FreeType.

W microtype.sty dodano niektóre operacje mikro-typograficzne dla programów XeTeX (protrusion) i LuaTeX (protrusion, font expansion, tracking).

W tlmgr zastosowano operację „przypinania” (ang. pinning) wielu repozytoriów do pobierania aktualizacji. więcej informacji: tlmgr --help lub strona https://tug.org/texlive/doc/tlmgr.html#MULTIPLE-REPOSITORIES.

Dodano bądź przywrócono binaria dla platform: armhf-linux, mips-irix, i386-netbsd i amd64-netbsd; usunięto powerpc-aix.

##### 9.1.11. Wydanie 2014

Edycja 2014 zawierała kolejną, drobną poprawkę D.E. Knutha: dotyczy ona wszystkich silników TeX-a, ale jedyną widoczną zmianą jest przywrócenie komunikatu preloaded format (zamiast format) wyświetlanego w wierszu identyfikującym program podczas jego uruchamiania. Według Knutha zmiana ma podkreślać, że chodzi o format ładowany domyślnie przez odpowiednie wywołanie, a nie o format, który jest zaszyty w binariach i który może został zastąpiony innym formatem.

pdfTeX: nowością jest parametr \pdfsuppresswarningpagegroup, który pozwala wyłączyć ostrzegawcze komunikaty programu; dodano nowe polecenia wbudowane (\pdfinterwordspaceon, \pdfinterwordspaceoff, \pdffakespace) modyfikujące spacjowanie, mające w zamierzeniu ułatwiać oblewanie tekstem.

LuaTeX: jest kilka istotnych zmian i poprawek w ładowaniu fontów i wzorców przenoszenia. Najważniejszym dodatkiem są nowe warianty silnika: luajittex ( https://foundry.supelec.fr/projects/luajittex) oraz pokrewne texluajit and texluajitc. Wykorzystują one Lua do kompilacji do kodu maszynowego (ang. just-in-time compilation; szczegóły na ten temat zawiera artykuł na stronie https://tug.org/TUGboat/tb34-1/tb106scarso.pdf). luajittex jest nadal w fazie rozwoju, nie jest dostępny dla wszystkich platform i jest znacznie mniej stabilny niż luatex. Zarówno my, jak i projektanci tego programu zalecamy jego użycie jedynie do eksperymentów z kodem jit i Lua.

XeTeX: na wszystkich platformach (w tym na Mac OSX) obsługiwane są obecnie te same formaty plików graficznych; zrezygnowano z niektórych wariantów dekompozycji znaków unikodowych (compatibility decomposition); preferowane jest korzystanie z fontów OpenType, zamiast fontów Graphite, dla zapewnienia zgodności w poprzednimi wersjami XeTeX-a.

MetaPost: zestaw możliwych wartości parametru numbersystem rozszerzono o wartość decimal; dokładność obliczeń można ustalać za pomocą nowej zmiennej wbudowanej numberprecision; dodano nową definicję drawdot w pliku plain.mp (Knuth); usunięto błędy m.in. w zapisie do formatów SVG i PNG.

Narzędzie ConTeXt-a pstopdf zostanie usunięte jakiś czas po opublikowaniu tego wydania TeX Live z powodu konfliktów z programem o takiej samej nazwie, występującym w różnych systemach operacyjnych. Na razie nadal może być ono uruchamiane poleceniem mtxrun –script pstopdf.

Programy psutils zostały w istotny sposób zmienione przez nowego opiekuna. W rezultacie kilka rzadko używanych narzędzi (fix*, getafm, psmerge, showchar) znajdziemy teraz tylko w katalogu scripts/, a nie jako samodzielne programy (jeśli się okaże, że stwarza to problemy, może w przyszłości został to zmienione). Dodano nowy skrypt psjoin.

Z pochodnej z TeX Live dystrybucji MacTeX (część 3.1.2) usunięto opcjonalne tylko dla Mac OSX pakiety fontów Latin Modern oraz TeX Gyre; indywidualny użytkownik może je obecnie w łatwy sposób udostępnić w systemie operacyjnym. Ze względu na definicje zawarte w pliku tex4ht.env usunięto pochodzący z ImageMagick program convert, ponieważ program TeX4ht korzysta bezpośrednio z programu Ghostscript.

Z kolekcji langcjk, wspólnej dla języków chińskiego, japońskiego i koreańskiego, zostały wydzielone oddzielne (o mniejszej wielkości) kolekcje dla każdego z tych języków.

Dodano programy dla platformy x86_64-cygwin, usunięto programy dla platformy mips-irix. Ponieważ Microsoft zakończył wspieranie Windows XP, może się w przyszłości zdarzyć, że nasze programy nie będą działać prawidłowo w tym systemie.

Programy dla niektórych innych platform są dostępne na stronie: https://tug.org/texlive/custom-bin.html. Ponadto binaria dla pewnych platform pominięto na DVD (dla zaoszczędzenia miejsca), ale można je zainstalować z repozytoriów w sieci.

##### 9.1.12. Wydanie 2015

Do LaTeX2e włączono domyślnie zmiany, które poprzednio były dostępne jedynie przez dosłowne zadeklarowanie pakietu fixltx2e. Nowy pakiet latexrelease pozwala na dokładniejszą kontrolę przetwarzania. LaTeX News #22 i „LaTeX changes” opisują szczegółowo owe zmiany. Pakiety babel i psnfss, mimo iż wchodzą w skład podstawowego LaTeX2e, są nadal rozwijane odrębnie, ale nie zostały naruszone wspomnianymi wyżej zmianami.

Obecnie LaTeX2e zawiera wewnętrzny mechanizm konfiguracji obsługi Unicode (które znaki są traktowane jako litery, nazewnictwo poleceń wbudowanych itp.). Dla użytkownika nie powinno być to zauważalne, mimo iż zmieniono nazwy kilku poleceń wbudowanych, zaś kilka usunięto.

pdfTeX: poprawiono wsparcie dla plików JPEG Exif oraz JFIF dla zgodności z programem xpdf 3.04.

LuaTeX: dołączono nową bibliotekę newtokenlib do skanowania żetonów (ang. token); poprawiono ponadto generator liczb losowych normal i inne drobne błędy.

XeTeX: poprawiono obsługę wczytywanych ilustracji oraz program xdvipdfmx; zmieniono także wewnętrzne polecenie XDV.

MetaPost: zestaw możliwych wartości parametru numbersystem rozszerzono o wartość binary; nowe programy upmpost i updvitomp dostarczają wsparcie dla języka japońskiego (podobnie jak up*tex).

MacTeX: uaktualniono dołączony pakiet Ghostscript dla wparcia CJK. Tzw. The TeX Distribution Preference Pane działa obecnie w Yosemite (macOS 10.10).

Infrastruktura TeX Live: program fmtutil został przekonstruowany tak, aby wczytywać fmtutil.cnf zgodnie z kolejnością drzew katalogów (analogicznie jak updmap). Skrypty mktex* Web2C (w tym mktexlsr, mktextfm, mktexpk) preferują obecnie położenie programów w ich własnych katalogach, zamiast wykorzystywać za każdym razem zmienną systemową PATH.

Usunięto programy dla platform *-kfreebsd, ponieważ TeX Live jest obecnie łatwo dostępny poprzez ich mechanizmy aktualizacji.

##### 9.1.13. Wydanie 2016

LuaTeX: ogólne zmiany dotyczące poleceń podstawowych (primitives) – zredukowana została ich liczba, dla niektórych operacji zmieniono nazwy, ponadto zmieniona została struktura węzłów. Zmiany zostały opisane przez Hansa Hagena w artykule „LuaTeX 0.90 backend changes for PDF and more” ( https://tug.org/TUGboat/tb37-1/tb115hagen-pdf.pdf); szczegóły można znaleźć w podręczniku LuaTeX-a texmf-dist/doc/luatex/base/luatex.pdf.

METAFONT: nowe, w znacznym stopniu eksperymentalne „rodzeństwo” – programy MFlua and MFluajit, będące połączeniem Lua z METAFONT-em, udostępnione do próbnych testów.

Metapost: poprawki i wewnętrzne przygotowanie do wersji 2.0.

Zmienna SOURCE_DATE_EPOCH jest obsługiwana przez wszystkie implementacje (silniki) za wyjątkiem LuaTeX-a (obsługa zostanie zaimplementowana w kolejnej wersji) i (celowo) w oryginalnym tex-u: jeśli zmienna SOURCE_DATE_EPOCH ma nadaną wartość, to wartość ta jest jest używana jako „datownik” w generowanych plikach PDF. Jeżeli zmienna SOURCE_DATE_EPOCH_TEX_PRIMITIVES ma także nadaną wartość, to zmienna SOURCE_DATE_EPOCH używana jest do inicjalizacji TeX-owych parametrów (operacji podstawowych) \year, \month, \day, \time. Szczegóły i odnośne przykłady można znaleźć w podręczniku pdfTeX-a.

pdfTeX: nowe polecenia podstawowe \pdfinfoomitdate, \pdftrailerid, \pdfsuppressptexinfo, wpływające na wartości parametrów pojawiających się w wynikowym pliku PDF (operacje te nie mają wpływu na wynikowy plik DVI).

XeTeX: nowe polecenia podstawowe \XeTeXhyphenatablelength, \XeTeXgenerateactualtext, \XeTeXinterwordspaceshaping; ograniczenie liczby klas znaków powiększono do 4096; wartość bajtu identyfikacyjnego w pliku DVI powiększono o 1.

Inne programy:

- gregorio jest nowym programem, częścią pakietu gregoriotex służącego do składu partytur śpiewu greogriańskiego; włączono go domyślnie w shell_escape_commands.

- upmendex jest programem generującym skorowidze, w znacznym stopniu zgodnym z programem makeindex, obsługującym m.in. sortowanie unikodowe.

- afm2tfm teraz jedynie dopasowuje wysokości związane z pozycjonowaniem akcentów; nowa opcja -a powoduje pominięcie wszystkich dopasowań.

- ps2pk obsługuje rozszerzone fonty PK/GF.

MacTeX: program TeX Distribution Preference Pane został zastąpiony przez program TeX Live Utility; zmodernizowano aplikacje działające w trybie GUI; dodano nowy skrypt cjk-gs-integrate, umożliwiający włączanie różnych fontów CJK do Ghostscripta.

Infrastruktura: plik konfiguracyjny tlmgr jest obsługiwany na poziomie systemowym; sprawdzane są sumy kontrolne pakietów; jeśli jest dostępna usługa GPG (GNU Privacy Guard), to sprawdzana jest również sygnatura instalacji pakietów bądź ich aktualizacji z sieci. Dotyczy to także programu instalacyjnego TeX Live. Jeżeli usługa GPG nie jest dostępna, to instalacja bądź aktualizacja przebiega jak dotychczas.

Binaria dla platform alpha-linux i mipsel-linux zostały usunięte.

##### 9.1.14. Wydanie 2017

LuaTeX: więcej wywołań zwrotnych (ang. callbacks), więcej możliwoci sterowania składem, więcej dostępu do struktur wewnętrznych; w wypadku niektórych platform dodana biblioteka ffi do dynamicznego ładowania kodu.

pdfTeX: Zmienna środowiskowa SOURCE_DATE_EPOCH_TEX_PRIMITIVES z instalacji poprzedniego roku zmieniła nazwę na FORCE_SOURCE_DATE, bez zmian w funkcjonalności; jeśli lista tokenów \pdfpageattr zawiera napis /MediaBox, to pomija się wyjście domyślnego /MediaBox.

XeTeX: Obsługa wzorów matematycznych Unicode/OpenType oparta jest teraz na używaniu tabeli HarfBuzz’s MATH; kilka poprawek błędów.

Dvips: Decyduje ostatnie ustalenie formatu papieru, dla zgodności z dvipdfmx i z oczekiwaniami pakietu; opcja -L0 (L0 w ustawieniach konfiguracyjnych) przywraca poprzednie zachowanie, w którym decydowało pierwsze ustalenie formatu papieru.

epTeX, eupTeX: Nowe polecenia: \pdfuniformdeviate, \pdfnormaldeviate, \pdfrandomseed, \pdfsetrandomseed, \pdfelapsedtime, \pdfresettimer zapożyczono z pdfTeX-a.

MacTeX: Począwszy od tego roku będzie zapewniana obsługa – pod nazwą x86_64-darwin – jedynie tych wersji MacTeX-a, dla których Apple wypuszcza łatki bezpieczeństwa; obecnie oznacza to: Yosemite, El Capitan, i Sierra (10.10 i nowsze). Binariów dla starszych macOS-ów nie ma w MacTeX-u, są one jednak wciąż dostępne w TeX Live (x86_64-darwinlegacy, i386-darwin, powerpc-darwin).

Infrastruktura: Drzewo TEXMFLOCAL jest teraz domyślnie przeszukiwane przed TEXMFSYSCONFIG i TEXMFSYSVAR; w nadziei, że lepiej spełniane będą oczekiwania użytkowników lokalnych plików, które poprzednio były przesłaniane przez pliki głównej instalacji. Dodatkowo, program tlmgr udostępnia teraz tryb shell – do użycia interaktywnego i skryptowego – jak też nowe zadanie conf auxtrees – do łatwego dodawania i usuwania dodatkowych drzew.

updmap and fmtutil: Skrypty te ostrzegają teraz, jeśli wywołano je bez jawnego podania tzw. trybu systemowego (updmap-sys, fmtutil-sys bądź opcji -sys), lub trybu użytkownika (updmap-user, fmtutil-user bądź opcji -user). Być może zredukuje to odwieczny problem przypadkowego wywołania trybu użytkownika, i w konsekwencji gubienia przyszłych aktualizacji systemowych. Szczegóły można znaleźć na stronie: https://tug.org/texlive/scripts-sys-user.html.

install-tl: ścieżki własne użytkownika Mac-ów, takie jak TEXMFHOME, są teraz w MacTeX-u domyślnie ustawione na ~/Library/...; nowa opcja -init-from-profile została dołączona dla wykorzystania zachowanego profilu poprzedniej instalacji; nowe polecenie P dla zapisu profilu; nowe nazwy zmiennych w profilach (stare są jednak nadal akceptowane).

SyncTeX: tworzony przez ten program plik tymczasowy ma obecnie postać foo.synctex(busy), zamiast foo.synctex.gz(busy) (nie jest kompresowany programem gz). Programy korzystające z SyncTeX powinny zastosować nową konwencję, szczególnie przy usuwaniu pliku tymczasowego.

Programy pomocnicze: texosquery-jre8 jest nowym programem wieloplatformowym do odczytywania w dokumencie TeX-owym danych o lokalizacji i innych informacji z poziomu systemu operacyjnego; został on domyślnie włączony do zestawu shell_escape_commands na potrzeby działań w ograniczonym trybie powłoki (ang. shell). (Starsze wersje JRE są obsługiwane przez texosquery, ale nie można ich udostępnić w trybie ograniczonym, gdyż Oracle już ich nie wspiera, nawet z bardzo poważnych powodów związanych z bezpieczeństwem).

Platformy: zapoznaj się z powyższą informacją na temat MacTeX; innych zmian nie ma.

##### 9.1.15. Wydanie 2018

Kpathsea: Domyślnie nie rozróżnia wielkości liter w nazwach plików w katalogach niesystemowych; wyłączyć tę opcją można w texmf.cnf lub ustawiając zmienną środowiskową texmf_casefold_search na 0. Więcej informacji można znaleźć w podręczniku Kpathsea ( https://tug.org/kpathsea).

epTeX, eupTeX: Nowe polecenie pierwotne \epTeXversion.

LuaTeX: Przygotowanie do przejścia w 2019 r. na wersję Lua 5.3: binaria luatex53 są dostępne dla większości platform, ale przed uruchomieniem muszą zostać przenazywane na luatex. Można też użyć plików ConTeXt Garden ( https://wiki.contextgarden.net); tam też dostępne są dodatkowe informacje.

MetaPost: Poprawiono błędne kierunki ścieżek oraz wyjście w formatach TFM i PNG .

Dopuszczono stosowanie plików przekodowujących dla fontów bitmapowych; identyfikator PDF obecnie nie zależy od nazwy katalogu w którym jest tworzony; poprawki błędów dla \pdfprimitive i pokrewne.

MacTeX: Zobacz poniżej zmiany obsługiwanych wersji. Ponadto, dla większej klarowności, układ plików zainstalowanych w code / Applications / TeX / przez Mac TeX został zmieniony; teraz ta lokalizacja zawiera cztery programy GUI (BibDesk, LaTeXiT, TeX Live Utility, i TeXShop) oraz katalogi z dodatkowymi narzędziami i dokumentacją.

tlmgr: nowe nakładki tlshell (Tcl/Tk) i tlcockpit (Java); wyjście w formacie JSON; uninstall teraz oznacza to samo co remove; nowa akcja/opcja print-platform-info.

Platformy:

- Usunięte: armel-linux, powerpc-linux.

- x86_64-darwin obsługuje 10.10–10.13 (Yosemite, El Capitan, Sierra, and High Sierra).

- x86_64-darwinlegacy obsługuje 10.6–10.10 (chociaż dla 10.10 jest zalecany x86_64-darwin). Nie ma już wsparcia dla 10.5 (Leopard), oznacza to, że platformy powerpc-darwin i i386-darwin platforms zostały usunięte.

- Windows: XP nie jest już obsługiwane.

##### 9.1.16. Wydanie 2019

Kpathsea: Bardziej spójne rozwijanie nawiasów i dzielenie ścieżek; nowa zmienna TEXMFDOTDIR zamiast . w ścieżce ułatwia przeszukiwanie dodatkowych lub podkatalogów (patrz komentarze w texmf.cnf).

epTeX, eupTeX: Nowe polecenia pierwotne \readpapersizespecial i \expanded.

LuaTeX: W tej wersji używany jest Lua 5.3 z towarzyszącymi zmianami arytmetycznymi i interfejsowymi. Do czytania plików pdf jest używana utworzona do tego celu biblioteka pplib, dzięki czemu znikają zależności od popplera (oraz C ++). Odpowiednio zmienił się też interfejs Lua.

MetaPost: Polecenie r-mpost jest rozpoznawane jako alias do wywołania z opcją –restricted i dodane jest do listy zastrzeżonych poleceń dostępnych domyślnie. Minimalna dokładność to 2 tak dla trybu dziesiętnego jak i binarnego. Tryb binarny nie jest już dostępny w MPlib, ale nadal jest dostępny w autonomicznej wersji MetaPost-a.

pdfTeX: Nowe polecenie pierwotne \expanded; jeżeli nowy parametr pierwotny \pdfomitcharset jest ustawiony na 1, to sekwencja /CharSet zostanie pominięta w pliku PDF, ponieważ nie można zagwarantować poprawności wymaganej przez PDF/A-2 i PDF/A-3.

XeTeX: Nowe polecenia pierwotne \expanded, \creationdate, \elapsedtime, \filemoddate, \filedump, \filesize, \resettimer, \normaldeviate, \uniformdeviate, \randomseed; rozwinięcie \Ucharcat do tworzenia aktywnych znaków.

tlmgr: Obsługa curl jako programu do pobierania; do tworzenia lokalnych kopii należy użyć lz4 i gzip przed xz, jeśli są dostępne; do kompresowania i pobierania przedkłada binaria dostarczane przez system zamiast tych, które dostarcza TeX Live, o ile nie ustawiono zmiennej TEXLIVE_PREFER_OWN.

install-tl: Nowa opcja -gui (bez argumentu) jest domyślna dla Windows i Macs i uruchamia nowy tryb graficzny Tcl/TK (patrz część 1.3 i 3.1.6).

Narzędzia:

- implementacją CWEB w TeX Live jest teraz cwebbin ( https://ctan.org/pkg/cwebbin), ze wsparciem dla wielu języków, włącznie z programem ctwill do trworzenia miniindeksów.

- chkdvifont: podaje informacje o fontach z plików DVI files, także z plików tfm/ofm, vf, gf, pk.

- dvispc: przekształca plik DVI tak, by każda strona zawierała kompletną informację o instrukcjach ’special’, nawet jeśli w oryginalnym pliku DVI zakres działania tych instrukcji przekracza granicę strony.

MacTeX: x86_64-darwin obsługuje 10.12 i wyższe (Sierra, High Sierra, Mojave);
x86_64-darwinlegacy nadal obsługuje 10.6 i nowsze. Moduł sprawdzania pisowni Excalibur nie jest już dołączony, ponieważ wymaga wsparcia 32-bitowego.

Platformy: usunięto sparc-solaris.

##### 9.1.17. Wydanie 2020

Ogólnie:

- We wszystkich silnikach TeX-a, włączając tex, instrukcja pierwotna \input akceptuje teraz jako argument nazwę pliku w nawiasach grupowych. Znaczenie zależy od systemu operacyjnego. Nadal można używać nazwy pliku ograniczonej odstępem lub tokenem. Argument w nawiasach grupowych został uprzednio zaimplementowany w LuaTeX-u; teraz jest dostępny we wszystkich silnikach. Znaki ASCII podwójnego cudzysłowu (") są usuwane z nazwy pliku, ale tokenizacja pozostawia je poza nią. Nie wpływa to na LaTeX-owe polecenie \input, gdyż makro to jest redefinicją standardowej instrukcji pierwotnej \input.

- Nowa opcja --cnf-line dla kpsewhich, tex, mf i wszystkich innych silników wspomagająca ustawienia konfiguracyjne z linii poleceń.

- Dodanie wielu poleceń pierwotnych do różnych silników w tym i poprzednich latach ma na celu zapewnienie takiej samej funkcjonalności wszystkich silników (LaTeX News #31, https://latex-project.org/news).

epTeX, eupTeX: Nowe polecenia pierwotne \Uchar, \Ucharcat, \current(x)spacingmode, \ifincsname; poprawione \fontchar?? i \iffontchar. Tylko dla eupTeX: \currentcjktoken.

LuaTeX: Zintegrowanie z biblioteką HarfBuzz dostępną jako nowy silnik luahbtex (używany przez lualatex) i luajithbtex. Nowe polecenia pierwotne: \eTeXgluestretch, \eTeXglueshrink, \eTeXglueorder.

pdfTeX: Nowe polecenie pierwotne \pdfmajorversion; zmienia ono numer wersji w pliku PDF; nie ma to wpływu na zawartość PDF-a. \pdfximage i podobne wyszukuje tera pliki obrazów tak samo jak \openin.

pTeX: Nowe polecenia pierwotne \ifjfont, \iftfont. Także w epTeX, upTeX, eupTeX.

XeTeX: Poprawiono \Umathchardef, \XeTeXinterchartoks, \pdfsavepos.

Dvips: Kodowanie bitmapowych czcionek wyjściowych poprawiające efekt w przypadku stosowania funkcji copy/paste ( https://tug.org/TUGboat/tb40-2/tb125rokicki-type3search.pdf).

MacTeX: MacTeX and x86_64-darwin wymaga teraz wersji 10.13 lub nowszej (High Sierra, Mojave, and Catalina); x86_64-darwinlegacy nadal obsługuje 10.6 i nowsze. MacTeXjest uwierzytelniony a programy uruchamiane z linii poleceń są stabilne co czyni zadość wymaganiom Apple przy instalacji pakietów. BibDesk i TeX Live Utility nie są dostępne w MacTeX ponieważ nie zostały uwierzytelnione, ale README zawiera listę łączy, gdzie można je znaleźć.

tlmgr i infrastruktura:

- Automatycznie ponawia (raz) ładowanie pakietów, których nie udało się załadować wcześniej.

- Nowa opcja tlmgr check texmfdbs, do sprawdzania poprawności plików ls-R i specyfikacji !! dla każdego drzewa.

- Używa wersjonowanych nazw plików dla spakowanych pakietów, jak
  w tlnet/archive/pkgname.rNNN.tar.xz; zmiana ta powinna być niezauważalna dla użytkowników, ale w dystrybucji jest istotna.

- Data catalogue-date nie powiela informacji zawartych w TeX Catalogue, gdyż były one bez związku z aktualizacjami pakietów.

##### 9.1.18. Wydanie 2021

Ogólnie:

- Donald Knuth przeprowadził zaplanowany na początek 2021 r. przegląd TeX-a i Metafonta. Powstałe zmiany zostały włączone ( https://tug.org/TUGboat/tb42-1/tb130knuth-tuneup21.pdf). Są one również dostępne na CTAN jako pakiety knuth-dist and knuth-local. Jak się można było spodziewać, poprawki dotyczą bardzo wyjątkowych przypadków i nie wpływają na jakiekolwiek zachowania w praktyce.

- Wyjątek w oryginalnym TeX-u: jeśli \tracinglostchars ma wartość 3 lub więcej, to brakujące znaki będą skutkowały błędem a nie jedynie komunikatem w pliku log, zaś brakujące znaki zostaną pokazane szesnastkowo (hex).

- Wyjątek w oryginalnym TeX-u: nowy całkowitoliczbowy parametr \tracingstacklevels jeśli dodatni i \tracingmacros również dodatni, spowoduje wyprowadzenie prefiksu wskazującego głębokość rozwinięcia makroinstrukcji w każdym z odpowiednich wierszy logu (np. ~.. dla głębokości 2). Ponadto raportowanie rozwinięcia makroinstrukcji jest ograniczane do poziomu ≥ wartości parametru.

Aleph: Został usunięty oparty na Aleph LaTeX-owy format lamed. Sam binarny (wykonywalny) aleph jest nadal częścią dystrybucji i jest wspierany.

LuaTeX:

- Lua 5.3.6

- Użyto callback dla poziomu zagnieżdżenia w \tracingmacros jako uogólnionego wariantu nowego parametru TeX-owego \tracingstacklevels.

- Znaki matematyczne są znakowane (mark) aby wyłączyć je z przetwarzania tekstowego.

- Usunięto width/ic (korektę italikową) w tradycyjnym przetwarzaniu matematyki.

MetaPost:

- wsparcie zmiennej środowiskowej SOURCE_DATE_EPOCH umożliwia uzyskiwanie powtarzalnych wyników.

- Wyeliminowanie błędnego końcowego znaku % w mpto.

- Udokumentowano opcję -T, inne poprawki w podręczniku.

- Zmieniono wartość epsilon w trybach binarnym i dziesiętnym; teraz mp_solve_rising_cubic działa zgodnie z oczekiwaniami.

pdfTeX:

- Dodano nowe polecenia pierwotne \pdfrunninglinkoff i \pdfrunninglinkon; np. dla wyłączenia generowania łączy w nagłówkach czy stopkach.

- Ostrzeżenia zamiast przerwania przebiegu gdy \pdfendlink znajdzie się w innym poziomie zagnieżdżenia niż \pdfstartlink.

- Wypisywanie przypisań \pdfglyphtounicode do pliku fmt.

- Kod źródłowy: usunięto kod współpracujący z poppler-em, ponieważ zbyt wiele wysiłku wymagała synchronizacja z oryginałem (with upstream). W niemodyfikowanym (native) TeX Live, pdfTeX zawsze używał libs/xpdf, który jest okrojonym i zaadoptowanym kodem xpdf.

XeTeX: Poprawki kerningu w trybie matematycznym.

Dvipdfmx:

- Ghostscript jest teraz domyślnie uruchamiany w trybie bezpiecznym; Aby to zanegować (przy założeniu że „wierzymy” wszystkim plikom wejściowym) należy użyć -i dvipdfmx-unsafe.cfg. Użycie unsafe jest konieczne przy użyciu PSTricks z XeTeX-em, np. w następujący sposób: xetex -output-driver="xdvipdfmx -i dvipdfmx-unsafe.cfg -q -E" ...

- Jeśli plik graficzny nie został znaleziony, zakończ z niezerowym kodem powrotu.

- Rozszerzono składnię special dla polepszenia obsługi kolorów.

- Polecenia special do manipulowania ExtGState.

- Polecenia special służące kompatybilności pdfcolorstack i pdffontattr.

- Eksperymentalny kod wspierający rozszerzony fnt_def w dviluatex.

- Wsparcie dla nowej własności fontów wirtualnych dla japońskich definicji fontów zastępczych (fallback).

MacTeX: MacTeX i jego nowy folder z binariami universal-darwin wymaga teraz wersji macOS 10.14 lub wyższej (Mojave, Catalina i Big Sur); folder z binariami x86_64-darwin został usunięty. Folder z binariami x86_64-darwinlegacy, dostępny jedynie z Unix-owym install-tl, wspiera 10.6 i nowsze.

Jest to ważny rok dla Macintosh-y ponieważ Apple wprowadził w listopadzie 2020 r. na rynek maszyny z procesorami ARM i przez wiele lat będzie sprzedawał i wspierał maszyny z procesorami zarówno ARM jak i Intela. Wszystkie programy w universal-darwin mają kod wykonywalny dla ARM and Intela. Oba binaria są kompilowane z tego samego kodu źródłowego.

Dodatkowe programy Ghostscript, LaTeXiT, TeX Live Utility i TeXShop są uniwersalne, zostały zweryfikowane pod kątem bezpieczeństwa (signed with a hardened runtime) i w związku z tym zostały w tym roku włączone do MacTeX-a.

tlmgr i infrastruktura:

- utrzymywana jest tylko jedna kopia bezpieczeństwa głównego repozytorium texlive.tlpdb;

- polepszono przenoszalność pomiędzy systemami i wersjami Perl-a;

- tlmgr info raportuje nowe pola lcat-* i rcat-* danych odpowiednio lokalnego i zdalnego katalogów;

- do nowego pliku log texmf-var/web2c/tlmgr-commands.log przesunięto pełne raportowanie podkomend.

##### 9.1.19. Wydanie 2022

Ogólnie:

- Nowy silnik hitex, produkuje własny format HINT zaprojektowany specjalnie do czytania dokumentacji technicznych na urządzeniach przenośnych. Przeglądarki HINT dla systemów GNU/Linux, Windows i Android są dostępne niezależnie od TeX Live.

- tangle, weave: obsługuje opcjonalny trzeci argument określający plik wyjściowy.

- Dołączono program Knutha twill do tworzenia mini-indeksów dla oryginalnych programów WEB-owych.

Rozszerzenia między silnikami (z wyjątkiem oryginalnych TeX, Aleph, i hiTeX):

- Dodano nowe polecenie pierwotne \showstream przekierowujące wynik \show do pliku.

- Dodano nowe polecenia pierwotne \partokenname i \partokencontext pozwalające nadpisać nazwę tokena \par generującego puste linie, koniec pudełka (vbox), itp.

epTeX, eupTeX:

- Nowe polecenia pierwotne: \lastnodefont, \suppresslongerror, \suppressoutererror, \suppressmathparerror.

- Rozszerzenie pdfTeX-a \vadjust pre jest już dostępne.

LuaTeX:

- Wsparcie strukturalnych destynacji z PDF 2.0.

- PNG /Smask dla PDF 2.0.

- Dostępny interfejs zmiennych czcionek dla luahbtex.

- Różne domyślne style pierwiastków w trybie mathdefaultsmode.

- Optionally block selected discretionary creation.

- Ulepszenie implementacji fontów TrueType.

- Bardziej skuteczna alokacja \fontdimen.

- Ignoruje akapity zawierające tylko lokalny węzeł par, a następnie węzły synchronizacji kierunku.

MetaPost: Usunięcie błędu związanego z nieskończonym rozwijaniem makr.

pdfTeX:

- Wsparcie strukturalnych destynacji z PDF 2.0.

- Dla fontów z dodatkowymi odstępami między literami (letterspaced fonts), używa bezpośrednio \fontdimen6, jeśli podany.

- Ostrzeżenia zawsze rozpoczynają się od początku linii.

- W przypadku znaków z automatycznym kerningiem (\pdfappendkern i \pdfprependkern), nadal występuje wypukłość; podobnie automatyczny kerning dotyczy jawnych i niejawnych łączników.

pTeX et al.:

- Istotna aktualizacja pTeX-a do wersji 4.0.0 w celu lepszej obsługi LaTeX-a.

- Nowe polecenia wbudowane \ptexlineendmode i \toucs.

- \ucs (poprzednio dostępny w uptex i euptex) teraz dostępny również w pTeX i epTeX.

- Rozróżnianie znaków 8-bitowych i znaków japońskich – patrz artykuł Hironori Kitagawy w TUGboat ( https://tug.org/TUGboat/tb41-3/tb129kitagawa-char.pdf).

XeTeX: Poprawione skrypty xetex-unsafe i xelatex-unsafe pozwalają w prostszy sposób wywoływać dokumenty wymagające użycia XeTeX i PSTricks (co jest z natury niebezpieczne (dopóki nie pojawi się nowa implementacja w Ghostscript). Dla bezpieczeństwa należy używać Lua(LA )TeX.

Dvipdfmx:

- Wsparcie dla PSTricks nie wymagające użycia -dNOSAFER.

- Opcja -r do ustawiania rozdzielczości fontów bitmapowych jest znowu aktywna.

Dvips: Domyślnie, nie ma automatycznego dopasowania obróconych rozmiarów papieru; należy użyć nowej opcji –landscaperotate.

Kpathsea: Pierwsza ścieżka zwrócona przez kpsewhich -all jest teraz taka sama jak w przypadku standardowego wyszukiwania (non-all).

tlmgr i infrastruktura:

- dla mirror.ctan.org używa domyślnie https.

- używa TEXMFROOT zamiast SELFAUTOPARENT dla łatwiejszej relokacji.

- install-tl: jeśli pobieranie lub instalacja konkretnego pakietu nie powiedzie się, kontynuuje proces automatycznie, a na koniec ponawia próbę, ale tylko raz.

MacTeX: MacTeX i folder z jego binariami universal-darwin wymaga obecności macOS 10.14 lub wyższego (Mojave, Catalina, Big Sur, Monterey). Dostępne tylko dla Unixowego install-tl binaria w folderze x86_64-darwinlegacy obsługują wersję 10.6 (Snow Leopard) i nowsze.

Systemy operacyjne: W tym (2022) roku brak zmian w obsłudze systemów operacyjnych. Jednakże, w przyszłym (2023) roku planujemy zmienić system Windows z 32-bitowego na 64-bitowy. Niestety nie jesteśmy w stanie obsługiwać obu systemów jednocześnie.

#### 9.2. Wydanie 2023

Windows: Tak jak zapowiadaliśmy, TeX Live zawiera teraz binaria dla Windows 64-bitowych, zamiast dla 32-bitowych. Nową nazwą katalogu jest bin/windows ponieważ nie było właściwe umieszczanie 64-bitowych binariów w katalogu z nazwą „32". Zdajemy sobie sprawę, że ta zmiana będzie wymagała dodatkowej pracy od użytkowników Windows, ale nie było lepszego wyboru. Zobacz stronę TeX Live dla Windows ( https://tug.org/texlive/windows.html).

Rozszerzenia między silnikami (z wyjątkiem oryginalnych TeX i e-TeX): \special poprzedzające nowe słowo kluczowe „shipout” opóźnia rozwinięcie tokenu argumentu do czasu określonego przez \shipout, tak jak non-\immediate\write.

epTeX, eupTeX:

- „Raw” (u)ptex nie jest już tworzony; (u)ptex działa teraz w trybie zgodności z e(u)ptex’s. To samo dotyczy narzędzi pTeX wymienionych poniżej.

- Nowe polecenia pierwotne: \tojis, \ptextracingfonts, \ptexfontname.

- Dla \font, nowa składnia JIS/UCS jest obsługiwana.

LuaTeX:

- Nowe polecenie pierwotne \variablefam pozwalające znakom matematycznym zachować swoją klasę jednocześnie z adaptacją do użytej rodziny fontów.

- Ulepszono pole przypisu r2l

- Rozszerzenia między silnikami „late \special” opisane powyżej.

MetaPost: Poprawione błędy. svg->dx i svg->dy są teraz dwa, dla większej precyzji; mp_begin_iteration zaktualizowany, memory leak w mplib poprawiony.

pdfTeX:

- Nowe polecenie pierwotne \pdfomitinfodict żeby ominąć zupełnie słownik /Info.

- Nowe polecenie pierwotne \pdfomitprocset aby kontrolować pomijanie tablicy /ProcSet: /ProcSet jest dodawany, jeżeli ten parametr jest ujemny, lub jeżeli ten parametr jest równy zero i pdftex generuje plik PDF 1.x.

- Z \pdfinterwordspaceon, jeżeli w bieżącym kodowaniu na miejscu 32 znajduje się znak /space, w przeciwnym wypadku użyty jest znak /space z nowego domyślnego fontu pdftexspace. Ten domyślny font może być nadpisany przez nowe polecenie pierwotne \pdfspacefont. Ta sama nowa procedura jest użyta dla \pdffakespace.

pTeX i inni:

- Jak wspomnieliśmy powyżej, teraz ptex uruchamia eptex w trybie zgodności.

- Narzędzia pTeX (pbibtex, pdvitype, ppltotf, ptftopl) też działają w trybie zgodności.

XeTeX: poprawiony błąd w obliczaniu \topskip i \splittopskip kiedy \XeTeXupwardsmode jest aktywny; opisany powyżej dla wszystkich silników „late \special”.

Dvipdfmx: nowy parametr –pdfm-str-utf8 do tworzenia pdfmark i/lub bookmark.

BibTeXu:

- Ten wariant BibTeX jest w większości kompatybilny z BibTeX, z lepszym (opartym na Unicode) wspomaganiem wielu języków. Mamy go w TeX Live od kilku lat.

- W tym roku zostało dodanych więcej funkcji do obsługi języków CJK, niektóre rozszerzone z japońskiego (u)pbibtex i z innych programów.

Kpathsea: wspomaganie odczytywania (zgadywania) kodowania plików wejściowych dla platform Unix-owych, tak jak to działa dla Windows; włączone dla (e)p(la)tex, pbibtex, mendex.

tlmgr i infrastruktura:

- domyślny dla interfejsu tekstowego na macOS,

- instaluje najpierw podstawowe pakiety, następnie pozostałe,

- sprawdza ilość potrzebnego miejsca na dysku.

MacTeX:

- MacTeX i jego katalog binarów universal-darwin wymaga macOS 10.14 lub wyższego (Mojave, Catalina, Big Sur, Monterey, Ventura). Katalog binarów x86_64-darwinlegacy, dostępny tylko z Unix install-tl, wspiera 10.6 (Snow Leopard) i późniejsze.

- Pakiet GUI w MacTeX zawiera teraz hintview, przeglądarkę macOS dla dokumentów HINT (utworzonych przez silniki hitex i hilatex dla urządzeń mobilnych; zobacz stronę HiTeX https://hint.userweb.mwn.de/hint/hitex.html). Pakiet GUI nie instaluje już katalogu z dokumentami, zastępując go krótkim READ ME dla nowych użytkowników i stroną o texttthintview.

- Katalog Extras o dodatkowych programach TeX-owych znajdujących się na DVD został zastąpiony dokumentem zawierającym linki do stron z plikami do pobrania.

Platforms:

- Jak wspomniano powyżej, nowy katalog z binariami dla windows zawiera binaria dla 64-bit Windows i

- katalog bin/win32 został usunięty, gdyż nie można obsługiwać równolegle Windows 32-bit i 64-bit.

- Również katalog z binariami dla i386-cygwin został usunięty, ponieważ Cygwin nie wspiera już i386.

#### 9.3. Przyszłe wersje

Niniejsza dystrybucja nie jest doskonała! Zamierzamy nadal wydawać nowe wersje programu i chcielibyśmy dostarczać więcej dokumentacji, więcej programów, stale ulepszane i lepiej sprawdzone drzewo makr i czcionek, a także wszystko inne, co dotyczy TeX-a. Wszystko to jest wykonywane przez wolontariuszy w ich czasie wolnym i zawsze jest więcej do zrobienia. Jeżeli możesz pomóc, nie zastanawiaj się i przyłącz do nas. Patrz: https://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
> https://tug.org/texlive

Przyjemnego TeX-owania!