% $Id: texlive-pl.tex, 2021/

% Rewritten in utf8 -- Z. Walczak 2019
% iso8859-2 --  not valid anymore

% TeX Live documentation.
% Originally written by Sebastian Rahtz and Michel Goossens,
% now maintained by Karl Berry and others.
% Polish translation and additions by Staszek Wawrykiewicz until TL2017 release.
% From TL 2018 Polish translation by Zofia Walczak.
% TL 2020 -> TL 2021 Polish translation by Jerzy Ludwichowski
% Public domain.
%  ----
% UWAGA dla recenzentów/tłumaczy:  %%! to moje komentarze (StaW) - moje też ZW
\documentclass{article}
\let\tldocenglish=0 % for live4ht.cfg
\let\textsl\textit
\usepackage{tex-live}
\usepackage{polski}            %% for PL
\ifXeTeX\else
 \usepackage[utf8]{inputenc}  %% for PL
 \usepackage[T1]{fontenc}
\fi
\usepackage{microtype}

\exhyphenpenalty=10000         %% for PL
\widowpenalty=10000
\clubpenalty=10000
\renewcommand{\samp}[1]{,,\texttt{#1}''}  %% for PL
%% Polish style for sections
\makeatletter
\renewcommand{\@seccntformat}[1]{%
 \csname the#1\endcsname.\hspace{.5em}} %%
\def\numberline#1{\hb@xt@\@tempdima{#1.\hfill}}
\makeatother
\hyphenation{tex-basic la-tex pdf-tex}
%% -----
\ifx \HCode\UnDef
% running TeX:
\usepackage[breaklinks,colorlinks,linkcolor=hypercolor,
 citecolor=hypercolor,urlcolor=hypercolor,filecolor=hypercolor,
 bookmarksopen,hyperindex]{hyperref}
 \hypersetup{%
  pdftitle={Przewodnik TeX Live },%
  pdfauthor={Karl Berry, Zofia Walczak},%
  pdfsubject={TeX Live},%
  pdfkeywords={TeX, LaTeX, TeX Live, TeXLive, polski},
  pdfpagemode=UseNone, % start bez Spisu treści
  pdfstartview=FitV, % dopasuj wysokość strony do okna przeglądarki
  pdfpagelayout=SinglePage % przewijaj po stronie
}

\else
% running tex4ht:
\RequirePackage[tex4ht]{hyperref}  \hyperlinkfileprefix{}
\fi

\title{%
 {\huge \textit{Przewodnik \protect\TL{} 2023}}
}

\author{Karl Berry\\[2mm]
 tłumaczenie: Zofia Walczak\\[2mm]
% tłumaczenie 2021: Jerzy Ludwichowski\\[3mm]
 \url{https://tug.org/texlive/}
}

\date{Luty 2023 r.}
\begin{document}
\maketitle

\begin{multicols}{2}
\tableofcontents
%\listoftables
\end{multicols}
%--------------------------
\section{Wstęp}\label{sec:intro}

\subsection{\protect\TeX\protect\ Live i \protect\TeX\protect\ Collection}
Ten dokument  opisuje oprogramowanie \TL{} --
dystrybucję \TeX-a wraz z~programami pomocniczymi, dostępną dla systemów \GNU/Linux,
różnych wersji Unix, \macOS\ oraz Windows.

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

\TL{} zawiera pliki wykonywalne programów: \TeX{}, \LaTeXe{}, \ConTeXt,
\MF, \MP, \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 \TL{}
znajduje się w~części~\ref{sec:tlcurrent}, na str.~\pageref{sec:tlcurrent}.

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


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

\htmlanchor{platforms}
\subsection{Obsługiwane systemy operacyjne}
\label{sec:os_support}

\TL{} zawiera oprogramowanie dla wielu platform uniksowych,
w~tym \GNU/Linux, \macOS\  i~Cyg\-win. Dołączone źródła mogą być skompilowane
na platformach, dla których nie udostępniamy plików binarnych. %Załączone pliki źródłowe pozwalają też na jego instalację na platformach innych systemów operacyjnych i~kompilację
%samych programów.

Spośród systemów Windows obsługiwane jest Windows~7 i~wersje
późniejsze. W~Windows Vista  \emph{również powinien}
zadziałać, ale \TL{} nie może już być instalowany w~systemach Windows XP i~wcześniejszych.
\TL{}   zawiera   binaria dla 64-bitowych wersji Windows. %programy 32-bitowe
%działają w~obu wersjach.  
%W \url{https://tug.org/texlive/windows.html} omówiono, jak
%dodać binaria 64-bitowe.

W części \ref{sec:tl-coll-dists} omówiono alternatywne dystrybucje,
przeznaczone dla Windows oraz \macOS.

\subsection{Podstawy instalacji \protect\TL{}}
\label{sec:basic}

\TL{} można zainstalować z~płytki \DVD{} lub internetu
(\url{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
\TL\ i~nie chcemy pobierać niepotrzebnie obrazu całej płytki instalacyjnej.

Płytka \DVD{}  (lub jej obraz w~pliku \code{.iso})  pozwala
zainstalować \TL{} na dysku lokalny ale nie można  uruchomić \TL{} bezpośrednio z~\TK{} \DVD{} albo z~jej obrazu.  \emph{Można}  przygotować instalację przenośną  np. na pendrivie
(patrz rozdział~\ref{sec:portable-tl}).
Szczegółowy opis instalacji \TL{} znajduje się w~dalszych rozdziałach
tego dokumentu (str.~\pageref{sec:install}), poniżej zaś informacja w skrócie.
%%%%%%%%%%%%%%
\begin{itemize*}
\item Skrypt instalacyjny dla systemu Unix nosi nazwę \filename{install-tl} zaś dla systemów Windows
należy użyć \filename{instal-tl-windows}. Program instalacyjny będzie działał w~trybie graficznym
z~opcją \code{-gui} (tryb domyślny dla Windows) lub w~trybie tekstowym z~opcją
\code{-gui=text} (tryb domyślny dla pozostałych platform).

\item Jednym z~instalowanych programów jest \prog{tlmgr} (menedżer \TL{}),
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.

\end{itemize*}

\htmlanchor{security}
\subsection{Uwagi dotyczące bezpieczeństwa}
\label{sec:security}

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~\TL\  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 \prog{tlmgr} (punkt~\ref{sec:tlmgr})
wykona automatycznie weryfikację kryptograficzną pobieranego materiału, o~ile
w~systemie dostępny jest program \prog{gpg} (GNU Privacy Guard). Nie jest
on dystrybuowany jako część \TL, ale w~razie potrzeby informację o~\prog{gpg} można znaleźć na
\url{https://texlive.info/tlgpg/}.

\subsection{Dostępna pomoc}
\label{sec:help}

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
\TL{} zakupić system u~jednego z~dostawców, których listę można znaleźć
pod adresem\newline \url{https://tug.org/interest.html#vendors}.)

Oto lista źródeł pomocy, w~kolejności przez nas rekomendowanej:
\begin{description}
\item [Start] Jeśli właśnie zaczynasz używać \TeX-a, krótkie wprowadzenie do systemu znajdziesz na stronie \url{https://tug.org/begin.html}.

\item [CTAN] Jeśli szukasz konkretnego pakietu, fontu, programu itp. powinieneś odwiedzić \CTAN{} (\url{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 \TL{}  czy dla  MiK\TeX-a. 

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

\item [\TeX{} Zasoby internetowe] Strona \url{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.

\item [Archiwa pomocy] Główne fora wsparcia użytkowników \TeX-a to dla \LaTeX-a
\url{https://latex.org/},     
 \url{https://tex.stackexchange.com} (strona typu pytanie-odpowiedź), grupa dyskusyjna Usenet \url{news:comp.text.tex}, czy
lista dyskusyjna \email{texhax@tug.org}.
%
%Archiwa ostatnich dwóch list dyskusyjnych,
%zawierające  pytania i odpowiedzi zbierane przez wiele lat znajdziemy po adresem:
%\url{https://groups.google.com/group/comp.text.tex/topics} oraz
%\url{https://tug.org/mail-archives/texhax}. Nie zaszkodzi też
%skorzystać z~wyszukiwarki, np. \url{https://www.google.com}.

\item [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 \url{https://latex-community.org/}  i~\url{https://tex.stackexchange.com/},
do \dirname{comp.text.tex} poprzez Google,
  bądź pisząc list na adres \email{texhax@tug.org}.

Przed wysłaniem zapytania \emph{należy} zapoznać się z~poradami dotyczącymi sposobu
formułowania pytań, zawartymi w~FAQ:
\url{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 \url{http://www.gust.org.pl}.

\item [Wsparcie ze strony społeczności \TL{}] Zauważony błąd, sugestie i~komentarze dotyczące dystrybucji \TL{}, instalacji
lub dokumentacji możemy zgłosić na listę dyskusyjną \email{tex-live@tug.org}. Jeśli pytanie dotyczy użycia konkretnego programu
(pakietu makr itp.) z~\TL{}, to lepiej je  skierować   do osoby
opiekującej się danym programem lub na specjalistyczną listę dyskusyjną. Uruchomienie programu z parametrem  \code{-{}-help} dostarczy adres  zgłaszania błędów.
\end{description}

Druga strona medalu to pomaganie tym, którzy mają problemy. Zarówno
\dirname{comp.text.tex}, jak i~\code{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!

%--------------------------
%\section{Struktura \protect\TeX\protect\ Live}
\section{Przegląd \protect\TeX\protect\ Live}
%\label{sec:struct-tl}
\label{sec:overview-tl}

Omówimy teraz zawartość dystrybucji \TL{}, a~także \TK{} --
płytki \DVD, w~skład której wchodzi \TL.

%\subsection{The \protect\TeX\protect\ Collection: \protect\TL, pro\protect\TeX{}t, Mac\protect\TeX}
%\label{sec:tl-coll-dists}

\subsection{Kolekcje \protect\TeX-a: \protect\TL, Mac\protect\TeX, MiK\protect\TeX, CTAN}
\label{sec:tl-coll-dists}
Płytka \DVD{} \TK{}  zawiera:

\begin{description}

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

\item [Mac\TeX] dla systemu \macOS\  posiada własny program instalacyjny \macOS\  
i~dodatkowe programy dla tego systemu, strona domowa projektu:
\url{https://tug.org/mactex/};
%%%%%
\item [\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: \url{https://miktex.org};

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

\end{description}

\subsection{Główne katalogi \protect\TL}
\label{sec:tld}

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


\begin{ttdescription}
\item[bin] Skompilowane programy \TeX-owe i~pomocnicze, zorganizowane
w~podkatalogach  według platform systemowych.

\item[readme-*.dir] Krótkie omówienie z~użytecznymi odnośnikami,
w kilku językach, w formacie \HTML{} i~zwykłym tekstowym.

\item[source] Źródła wszystkich programów, włącznie z~głównymi dystrybucjami
 \TeX-a opartymi na  \Webc{}.

\item[texmf-dist] Główne drzewo katalogów instalacji (zawiera makra,
 fonty i~dokumentacje, patrz: \dirname{TEXMFDIST} w~następnej części).

\item[tlpkg] Skrypty, programy i~inne dane potrzebne do instalacji.
  Katalog zawiera także ,,prywatne'' dla \TL{} 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.
\end{ttdescription}
 
Do znalezienia dokumentacji mogą się przydać na przykład dowiązania zawarte
w~pliku \OnCD{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 \dirname{texmf-dist/doc/}. W~odszukaniu
konkretnej dokumentacji w~dowolnym z~wymienionych
katalogów może pomóc program \cmdname{texdoc}.


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

\begin{itemize*}
\item{czeski/słowacki:} \OnCD{texmf-dist/doc/texlive/texlive-cz}
\item{niemiecki:} \OnCD{texmf-dist/doc/texlive/texlive-de}
\item{angielski:} \OnCD{texmf-dist/doc/texlive/texlive-en}
\item{francuski:} \OnCD{texmf-dist/doc/texlive/texlive-fr}
\item{włoski:} \OnCD{texmf-dist/doc/texlive/texlive-it}
\item{japoński:} \OnCD{texmf-dist/doc/texlive/texlive-ja}
\item{polski:} \OnCD{texmf-dist/doc/texlive/texlive-pl}
\item{rosyjski:} \OnCD{texmf-dist/doc/texlive/texlive-ru}
\item{serbski:} \OnCD{texmf-dist/doc/texlive/texlive-sr}
\item{hiszpański:} \OnCD{texmf-dist/doc/texlive/texlive-es}
\item{uproszczony chiński:} \OnCD{texmf-dist/doc/texlive/texlive-zh-cn}
\end{itemize*}
  
\subsection{Predefiniowane drzewa katalogów texmf}
\label{sec:texmftrees}

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 \TL{}.
Uruchomiając polecenie \texttt{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, \url{https://tug.org/tds}), konsekwentnie wraz
z~odpowiednimi podkatalogami. W~przeciwnym wypadku potrzebne pliki mogą nie
zostać odnalezione. W~części \ref{sec:local-personal-macros}
(str.~\pageref{sec:local-personal-macros}) 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.

\begin{ttdescription}
\item [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 \code{bin/}).
 \item [TEXMFSYSVAR] Drzewo katalogów wykorzystywane przez
 \verb+texconfig-sys+, \verb+updmap-sys+, \verb+fmtutil-sys+, a~także
 przez program \verb+tlmgr+ do przechowywania wygenerowanych plików
 formatów i~map fontowych dla całej instalacji.
 \item [TEXMFSYSCONFIG] Drzewo katalogów wykorzystywane przez narzędzia
 \verb+texconfig-sys+, \verb+updmap-sys+ oraz \verb+fmtutil-sys+
 do przechowywania danych konfiguracyjnych dla całej instalacji (np.
 sieciowej).
 \item [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.
\item [TEXMFHOME] Drzewo katalogów dla prywatnych makr, fontów itp.
 użytkownika. %Rozwinięcie tej zmiennej zależy domyślnie od wartości przypisanej
 %zmiennej systemowej \verb+$HOME+ (w~Windows \verb+%USERPROFILE%+).
 Zmienna ta wskazuje  własny katalog każdego użytkownika.
\item [TEXMFVAR] Lokalne drzewo katalogów wykorzystywane przez \verb+texconfig+,
 \verb+updmap-user+ i~\verb+fmtutil-use+ do przechowywania wygenerowanych plików
 formatów i~map fontowych.% (domyślnie w~ramach \envname{TEXMFHOME}).
\item [TEXMFCONFIG] Lokalne drzewo katalogów wykorzystywane przez narzędzia
 \verb+texconfig+, \verb+updmap-sys+ oraz \verb+fmtutil-sys+ do przechowywania
 danych konfiguracyjnych.% (domyślnie w~ramach \envname{TEXMFHOME}).
\item [TEXMFCACHE] Drzewa katalogów wykorzystywane przez \ConTeXt\
  MkIV oraz Lua\LaTeX\ do przechowywania buforowanych danych
  z~przetwarzania; domyślna wartość w~\TL{} jest identyczna
  z~\code{TEXMFSYSVAR} lub -- jeśli katalog jest niedostępny do zapisu
  -- \code{TEXMFVAR}.
\end{ttdescription}

\noindent
Oto domyślny układ katalogów:
\begin{description}
  \item[ogólnosystemowy katalog instalacji] może zawierać kilka wydań \TL{}  (\texttt{/usr/local/texlive} domyślnu dla Unix):
  \begin{ttdescription}
    \item[2022] poprzednie wydanie
    \item[2023] wydanie aktualne
    \begin{ttdescription}
      \item [bin] ~ 
      \begin{ttdescription}
        \item [i386-linux] \ \ \ \ \ binaria dla \GNU/Linux (32-bit)
        \item [...]
        \item [universal-darwin]  binaria dla \macOS
        \item [x86\_64-linux] binaria dla \GNU/Linux  (64-bit)
        \item [windows] \ \ \quad \ \ \qquad  binaria dla Windows (64-bit)
      \end{ttdescription}
      \item [texmf-dist\ \ ] określany zmienną \envname{TEXMFDIST} i~\envname{TEXMFMAIN}
      \item [texmf-var\ \ \ ] \envname{TEXMFSYSVAR}, \envname{TEXMFCACHE}
      \item [texmf-config] \envname{TEXMFSYSCONFIG}
    \end{ttdescription}
    \item [texmf-local] \envname{TEXMFLOCAL}, katalog zachowywany
      od wydania do wydania
  \end{ttdescription}
  \item[katalog domowy użytkownika] (\texttt{\$HOME} lub
      \texttt{\%USERPROFILE\%})
    \begin{ttdescription}
      \item[.texlive2022] prywatne pliki konfiguracyjne
        poprzedniego wydania
      \item[.texlive2023] prywatne pliki konfiguracyjne
         bieżącego wydania
      \begin{ttdescription}
        \item [texmf-var\  \ \ ] \envname{TEXMFVAR}, \envname{TEXMFCACHE}
        \item [texmf-config] \envname{TEXMFCONFIG}
      \end{ttdescription}
    \item[texmf] \envname{TEXMFHOME} prywatne makra, fonty itp.
  \end{ttdescription}
\end{description}

\subsection{Rozszerzenia \protect\TeX-a}
\label{sec:tex-extensions}

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

\begin{description}
\item [\eTeX] jest wersją \label{text:etex} 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 \TeXXeT{} do składu również
 od prawej do lewej. W~trybie domyślnym \eTeX{} jest w~100\% zgodny ze
 standardowym programem \TeX. Więcej szczegółów można znaleźć
 w~\OnCD{texmf-dist/doc/etex/base/etex_man.pdf}.

\item [pdf\TeX] zawiera silnik \eTeX{} 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. \prog{etex}, \prog{latex}, \prog{pdflatex}.
Jego witryna internetowa znajduje się pod adresem \url{https://www.pdftex.org/}.
Podręczniki znajdziemy w~katalogu \OnCD{texmf-dist/doc/pdftex/manual/pdftex-a.pdf},
zaś przykłady wykorzystania niektórych jego funkcji
w~pliku \OnCD{texmf-dist/doc/pdftex/samplepdftex/samplepdf.tex}.

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

\item [(e)(u)p\TeX] obsługują japońskie wymagania składu; p\TeX{} jest
silnikiem podstawowym, wariant e-~dodaje funkcjonalność \eTeX{}-a
a~wariant u-~obsługę Unicode.

\item [\XeTeX] przyjmuje teksty kodowane w~Unicode oraz może korzystać
z~fontów OpenType\slash Truetype i~systemu operacyjnego,
do czego stosuje standardowe biblioteki zewnętrzne. Patrz \url{https://tug.org/xetex}.

\item [\OMEGA{} (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 \OMEGA'' (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~\TL.
Pozostawiono jego działający klon Aleph.

\item [Aleph] Łączy rozszerzenia \OMEGA\ i~\eTeX.
Patrz  \OnCD{texmf-dist/doc/aleph/base}.

\end{description}

\subsection{Inne ważniejsze programy \protect\TL}

Poniżej zestawiono kilka innych, najczęściej używanych programów, dostępnych
w~dystrybucji \TL{}:

\begin{cmddescription}

\item[bibtex, biber]  wspomagają tworzenie spisów bibliograficznych;

\item[makeindex,  upmendex, xindex, xindy] wspomagają tworzenie posortowanych skorowidzów;

\item[dvips]  pozwala konwertować \dvi{} do \PS{};

\item [dvipdfmx]  pozwala konwertować \dvi{} do PDF, metoda alternatywna w~stosunku
 do wspomnianego wyżej programu pdf\TeX{};
 
\item[xdvi]   przeglądarka plików \dvi{} dla X~Window;

\item [dviconcat, dviselect] programy do manipulacji stronami w~plikach
  \dvi{};

\item [psselect, psnup, \ldots] narzędzia do manipulacji na plikach
postscriptowych;

\item [pdfjam, pdfjoin, \ldots]: narzędzia do manipulacji na plikach
 PDF;

\item [context, mtxrun]:  programy uruchomieniowe dla \ConTeXt\ i~PDF;

\item [htlatex, \ldots ] \cmdname{tex4ht}: \AllTeX{} postprocesor konwersji do HTML (i~XML, DocX i innych).

\end{cmddescription}


\htmlanchor{installation}
\section{Instalacja}
\label{sec:install}

\subsection{Start instalacji}
\label{sec:inst-start}

Instalację \TL{} uruchamiamy z~płytki \TK{} \DVD{} lub po pobraniu z~sieci
pakietu instalacyjnego i~jego rozpakowaniu.
Dodatkowe informacje na temat różnych metod instalacji znajdziemy
na stronie \url{https://tug.org/texlive/acquire.html}.

\begin{description}
\item [Instalacja z sieci; pliki .zip lub~tar.gz:] Z~archiwum \CTAN, z~katalogu
\dirname{systems/texlive/tlnet}
(\url{https://mirror.ctan.org/systems/texlive/tlnet} powinien
przekierować do najbliższej, aktualnej kopii \CTAN) należy pobrać plik
\filename{install-tl.zip} (wspólny dla Unix i Windows) lub znacznie mniejszy
\filename{install-unx.tar.gz} (tylko dla Unix). Po rozpakowaniu,
w~katalogu \dirname{install-tl} znajdziemy skrypty instalacyjne
\filename{install-tl} i~\filename{install-tl-windows.bat}.

\item [Instalacja z~sieci; Windows .exe:]
Z~archiwum \CTAN{}   pobrać plik jak poprzednio i~ kliknąć dwa razy. Na ekranie pojawi się okienko  widoczne na rys.~\ref{fig:nsis},  uruchomiony zostanie pierwszy krok instalacji  i~będziemy mogli wybrać jedną z~dwóch akcji: 'Install' (zainstaluj) lub 'Unpack only' (tylko rozpakuj).


\item [Instalacja\TeX{} Collection z płytki  \DVD:] Po uruchomieniu
płytki należy przejść do katalogu   \dirname{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  \url{http://www.gust.org.pl}), możemy też kupić ją  w sklepie (\url{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ł~\ref{sec:dvd-install-net-updates}).
\end{description}

\begin{figure}[tb]
\def\figdesc{First stage of Windows \code{.exe} installer}
\tlpng{nsis_installer}{.6\linewidth}{\figdesc}
\caption{\figdesc. Po naciśnięciu guzika Instaluj pojawi się okienko jak na rysunku~\ref{fig:basic-w32}.}\label{fig:nsis}
\end{figure}

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 \filename{~/.wgetrc} bądź poprzez modyfikację zmiennych środowiskowych
(patrz \url{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.


\noindent Dalsze kroki instalacji  szerzej omówiono  poniżej.%Poniżej omówiono dokładniej dalsze kroki instalacji.
\subsubsection{Unix}

\noindent
Poniżej \texttt{>} oznacza znak zachęty systemu (tzw. prompt); to,
co wpisuje użytkownik, zaznaczono \Ucom{\texttt{pogrubieniem}}. Program \filename{install-tl} jest skryptem Perla, więc
w~oknie terminala należy napisać:
\begin{alltt}
> \Ucom{perl /path/to/installer/install-tl}
\end{alltt}
(można także  uruchomić \Ucom{/path/to/installer/install-tl}, o~ile posiada
on tryb ,,wykonywalny'', lub najpierw zmienić katalog poleceniem \texttt{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.~\ref{fig:text-main}).%rysunek jest dalej

Do uruchomienia w~trybie graficznym (\GUI; rys.~\ref{fig:advanced-lnx})
wymagane jest zainstalowanie w~systemie programu Tcl/Tk.
Mając go możemy uruchomić:
\begin{alltt}
> \Ucom{perl install-tl -gui}
\end{alltt}

Stare opcje \code{-wizard} i \code{-perltk}/\code{-expert}  
  realizują to samo co \code{-gui}.
Kompletny wykaz dostępnych opcji można uzyskać uruchamiając:
\begin{alltt}
> \Ucom{perl install-tl -help}
\end{alltt}

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

\textbf{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 \TL. Dodatkowe informacje -- patrz
część~\ref{sec:cygwin}.


\subsubsection{\macOS}
\label{sec:macosx}

Jak wspomniano w części \ref{sec:tl-coll-dists}, dla \macOS 
przygotowano odrębną dystrybucję nazwaną Mac\TeX\ (\url{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 \TL\ dla   Macs,  
%\MacOSX\ (Mac\TeX, Fink, MacPorts, \ldots), 
wykorzystując tzw. struktury danych \TeX{}Dist.

Mac\TeX\ jest oparty na \TL{} 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.


 
\subsubsection{Windows}\label{sec:wininst}

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ć \filename{install-tl-windows.bat} (np.
podwójnym kliknięciem myszy). 

Można to uczynić także  z~linii poleceń.  Poniżej \texttt{>} oznacza znak zachęty systemu (tzw. prompt); to,
co wpisuje użytkownik, zaznaczono \Ucom{\texttt{pogrubieniem}}.
Gdy katalog zawierający plik instalatora
jest katalogiem bieżącym, wystarczy uruchomić:
\begin{alltt}
> \Ucom{install-tl-windows}
\end{alltt}

W linii poleceń można też podać ścieżkę do programu, np.
dla \TK\ \DVD:
\begin{alltt}
> \Ucom{D:\bs{}texlive\bs{}install-tl-windows}
\end{alltt}
zakładając, że \dirname{D:} jest napędem \DVD.
Rys.~\ref{fig:basic-w32} pokazuje powitalny ekran programu instalacyjnego w trybie  graficznym (\GUI) dla Windows.

Instalacja w~trybie tekstowym wymaga podania:
\begin{alltt}
> \Ucom{install-tl-windows -no-gui}
\end{alltt}

Wszystkie dostępne opcje wyświetlimy uruchamiając:
\begin{alltt}
> \Ucom{install-tl-windows -help}
\end{alltt}

\textbf{Note.} Jeśli ten sam katalog zawiera \texttt{install-tl-windows.exe} należy dodać  przedłużenie  \texttt{.bat} do uruchamianego \begin{alltt}
> \Ucom{install-tl-windows}\end{alltt}
(Tak się może zdarzyć jeśli lokalnie wykonano kopię lustrzaną katalogu \dirname{tlnet}).

\begin{figure}[tb]
\begin{boxedverbatim}
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
\end{boxedverbatim}
 \vskip-.5\baselineskip
\caption{Główny ekran instalatora w~trybie tekstowym  (\GNU/Linux)}\label{fig:text-main}
\end{figure}

\begin{figure}[tb]
\tlpng{basic-w32}{.6\linewidth}{Basic instaler screen (Windows)}
\caption{Podstawowy ekran instalatora (Windows). Przycisk ,,Advanced'' (Zaawansowane) przywoła ekran podobny do  rys. \ref{fig:advanced-lnx}}\label{fig:basic-w32}
\end{figure}

\begin{figure}[tb]
\tlpng{advanced-lnx}{\linewidth}{Advanced installer screen (\GNU/Linux)}
\caption{Zaawansowany ekran instalatora \GUI{}
  (\GNU/Linux)}\label{fig:advanced-lnx}
\end{figure}


\htmlanchor{cygwin}
\subsubsection{Cygwin}
\label{sec:cygwin}

Przed instalację w tym systemie zaleca się  uruchomić program
\filename{setup.exe} i,~o~ile nie zostały one uprzednio zainstalowane,
zainstalować pakiety \filename{perl} oraz \filename{wget}.
Ponadto zalecana jest zainstalowanie dodatkowych pakietów:
\begin{itemize*}
\item \filename{fontconfig} [wymagany dla \XeTeX{} i~Lua\TeX]
\item \filename{ghostscript} [wymagany dla wielu narzędzi]
\item \filename{libXaw7} [wymagany dla \code{xdvi}]
\item \filename{ncurses} [udostępnia polecenie \code{clear}
używane przez program instalacyjny]
\end{itemize*}

\subsubsection{Instalator w trybie tekstowym}

Rysunek \ref{fig:text-main} przedstawia główny ekran programu
\filename{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.


\subsubsection{Instalator w trybie graficznym}
\label{sec:graphical-inst}

Instalator graficzny uruchamiamy przez
\begin{alltt}
> \Ucom{install-tl -gui}
\end{alltt}
Domyślnie uruchamia się tylko z podstawowymi opcjami, patrz rys.~ref{fig:basic-w32}.
Przycisk ,,Advanced'' (Zaawansowane) daje dostęp do większości  opcji instalatora tekstowego, zobacz rys.~\ref{fig:advanced-lnx}.

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


\subsection{Uruchamianie instalacji}
\label{sec:runinstall}

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.

\subsubsection{Menu: binary systems (tylko Unix)}
\label{sec:binary}

\begin{figure}[tb]
\begin{boxedverbatim}
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)
\end{boxedverbatim}
 \vskip-.5\baselineskip
\caption{Dostępne platformy (systemy operacyjne)}\label{fig:bin-text}
\end{figure}

Rysunek \ref{fig:bin-text} 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.

\subsubsection{Wybór składników do instalacji}
\label{sec:components}

\begin{figure}[tbh]
\begin{boxedverbatim}
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
\end{boxedverbatim}
 \vskip-.5\baselineskip
\caption{Schematy dostępne w instalacji}\label{fig:scheme-text}
\end{figure}

Rysunek \ref{fig:scheme-text} 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 \optname{pełny} (rekomendowany) -- instaluje wszystkie dostępne komponenty. Jeśli wybierzemy   instalację \optname{basic}, wtedy zostaną zainstalowane tylko komponenty konieczne do poprawnego działania plain \TeX-a i \LaTeX-a. Wybór schematu \optname{skromny} spowoduje zainstalowanie nieco większej liczby pakietów (jest on równoważny z instalacją Basic\TeX\ dla Mac\TeX-a). Do testowania  możemy zainstalować schemat \optname{minimalny}, a gdy zdecydujemy się na \optname{typowy} lub \optname{teTeX}, otrzymamy zestaw pakietów pomiędzy wymienionymi powyżej.
Na rysunku \ref{fig:scheme-text} oprócz wymienionych, znajdziemy również schematy przygotowane z~myślą o~wybranych grupach użytkowników (np.~GUST) lub zastosowaniach (ConTeXt).



\begin{figure}[tb]
%\begin{center}
\def\figdesc{Collections menu}
\centering \tlpng{stdcoll}{.7\linewidth}{\figdesc}
\caption{\figdesc}\label{fig:collections-gui}
%\end{center}
\end{figure}

Wybrany schemat można zmodyfikować korzystając z menu  pokazanego na 
Rysunku~\ref{fig:collections-gui}.

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~\TL{} 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 \prog{tlmgr}
(patrz część~\ref{sec:tlmgr}), który pozwoli nam na przejrzenie instalacji
na poziomie pakietów.

\subsubsection{Katalogi}
\label{sec:directories}

Domyślny układ katalogów opisano w części~\ref{sec:texmftrees} na
str.~\pageref{sec:texmftrees}. Położenie domyślne całej instalacji to
\dirname{/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  \dirname{TEXDIR} w~instalatorze. Może to być spowodowane  brakiem
miejsca na dysku (cały \TL\ potrzebuje kilku gigabajtów) lub uprawnień systemowych.
Do zainstalowanie \TL\ 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~\ref{fig:advanced-lnx}.

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
\envname{TEXLIVE\_INSTALL\_PREFIX} lub
\envname{TEXLIVE\_INSTALL\_TEXDIR}); więcej informacji można znaleźć w~dokumentacji
wyświetlanej poleceniem |install-tl --help| (dostępnej też online na stronie
\url{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ń \TL{}.

Zmiana \dirname{TEXDIR} w programie instalacyjnym zmieni także  ścieżki
katalogów określone przez zmienne \dirname{TEXMFLOCAL}, \dirname{TEXMFSYSVAR}
i~\dirname{TEXMFSYSCONFIG}.

\dirname{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
\dirname{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 \dirname{$HOME} w~Unix/Linux i~\verb|%USERPROFILE%| w~Windows. Po
raz kolejny należy  podkreślić, że tak jak wszystkie drzewa katalogów,
\envname{TEXMFHOME} musi mieć strukturę zgodną z \TDS, w~przeciwnym wypadku
potrzebne pliki mogą nie zostać znalezione.

Katalog   \dirname{TEXMFVAR} przechowuje dane
konfiguracyjne specyficzne dla każdego użytkownika.
Lua\LaTeX\ i~\ConTeXt\ MkIV (patrz cześć~\ref{sec:context-mkiv},
str.~\pageref{sec:context-mkiv})  do tych samych celów wykorzystuje
\dirname{TEXMFCACHE}, której domyślną wartością jest\dirname{TEXMFSYSVAR},
lub, jeśli ta nie może być zapisana, \dirname{TEXMFVAR}.

\subsubsection{Opcje}
\label{sec:options}

\begin{figure}[tbh]
\begin{boxedverbatim}
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]
\end{boxedverbatim}
\vskip-.5\baselineskip
\caption{Menu: Opcje w Unix}\label{fig:options-text}
\end{figure}

Więcej informacji na temat opcji w~trybie tekstowym, przedstawionych na
rysunku~\ref{fig:options-text} podajemy poniżej.
\begin{description}
\item[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).

\item[execution of restricted list of programs:] (zezwalaj na uruchomienie
 niektórych programów) Od \TL\ 2010 niektóre programy pomocnicze są uruchamiane domyślnie.
 Ich listę (bardzo krótką) można znaleźć w pliku  \filename{texmf.cnf}.
 Szczegóły znajdziemy w~części ,,Wydanie 2010'' (\ref{sec:2010news}).
%%linia 888
\item[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  \prog{fmtutil}.

\item[install font/macro \ldots\ tree:]  Ładuje/instaluje dokumentacje i źródła
 zawarte w~większości pakietów.  Wyłączenie tej opcji nie jest zalecane.

\item[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 \TL{}
 muszą być dodane  ręcznie do (\envname{PATH}, \envname{MANPATH} i~\envname{INFOPATH}).
 Wybranie opcji wymaga posiadania uprawnień do zapisu w~katalogach docelowych.
 Zdecydowanie zaleca się  \emph{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. \dirname{/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ą.

\item[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ęść~\ref{sec:location}
 i~część~\ref{sec:dvd-install-net-updates}.

\end{description}

Opcje specyficzne dla systemu Windows występujące w~zaawansowanym interfejsie GUI{}:
\begin{description}
\item[adjust searchpath] Ta opcja zapewnia, że wszystkie
  programy będą miały w~swoich ścieżkach wyszukiwania dostęp do drzewa
  katalogów \TL.

\item[add menu shortcuts] Po wybraniu tej opcji w~menu Start systemu
  Windows pojawi się podmenu \TL. Oprócz opcji ,,TeX Live menu''
  i~,,No shortcuts'' istnieje trzecia  ,,Launcher entry''.
  Jest ona opisana w~części~\ref{sec:sharedinstall}.

\item[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).

\item[install \TeX{}works front end] Zainstaluj edytor \TeX{}works.
\end{description}

Po wykonaniu wszystkich potrzebnych ustawień można rozpocząć
instalację (klawisz ,,I'' lub przycisk ,,Install TeX Live'').
Po instalacji zaleca się  zajrzeć do części~\ref{sec:postinstall},
bo być może będą niezbędne dodatkowe kroki.



\subsection{Parametry instalacji z linii poleceń}
\label{sec:cmdline}

Uruchom
\begin{alltt}
> \Ucom{install-tl -help}
\end{alltt}
aby wyświetlić wszystkie dostępne parametry. Aby użyć danej opcji należy jej
nazwę poprzedzić znakiem |-| lub |--|.  Oto najczęściej używane:

\begin{ttdescription}
\item[-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  Mac\TeX-a. Tcl/Tk dla Windows jest
 dystrybuowany z \TL. Starsze opcje  \texttt{-gui=perltk} i~\texttt{-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.

\item[-no-gui] Wymusza użycie instalatora w trybie tekstowym.

\item[-lang {\sl LL}] Pozwala wybrać język komunikatów,
 \textsl{LL} oznacza tu dwuliterowy kod języka komunikatów instalatora. Listę dostępnych
 języków można wyświetlić poleceniem  \verb|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.

\item[-portable] Ta opcja pozwala zainstalować \TL{} na urządzeniu przenośnym, np. na pendrivie.
 Może ona być użyta zarówno w trybie tekstowym (poleceniem \code{V}),
 jak i~przez wybór odpowiedniego przycisku programu instalacyjnego w trybie
 \GUI{} (patrz część ~\ref{sec:portable-tl}).

\item[-profile {\sl plik}] Wczytuje \var{plik} profilu instalacji
 i~przebiega ona bez interakcji ze strony użytkownika; program
 instalacyjny zapisuje plik \filename{texlive.profile} w~katalogu
 \dirname{tlpkg} naszej instalacji, co pozwala wykorzystać go dla
 powielenia w trybie wsadowym wszystkich wyborów i~ustawień w~kolejnych
 instalacjach.

\item [-repository {\sl url-lub-ścieżka}] Pozwala określić inne niż
 domyślne źródło instalacji (patrz poniżej).

\htmlanchor{opt-in-place}
\item[-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 \TL{} uzyskaną via
 rsync, svn itp. (patrz \url{https://tug.org/texlive/acquire-mirror.html}),
 opcja ta pozwala na wykorzystanie jako instalacji owej kopii i~jedynie
 wykona kroki poinstalacyjne (konfigurację). \\
 \textbf{Uwaga:} plik
 \filename{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.
\end{ttdescription}

\subsubsection{Parametr \optname{-repository}}
\label{sec:location}

Domyślnym repozytorium pakietów dla \TL{} jest kopia (\textit{mirror}) \CTAN,
znajdywana automatycznie poprzez serwis \url{https://mirror.ctan.org}.

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

Przykładowo, można wybrać konkretną kopię (zwierciadło) \CTAN\
z~\url{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 \url{https://ctan.org/mirrors}.

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

\htmlanchor{postinstall}
\subsection{Czynności poinstalacyjne}
\label{sec:postinstall}

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

\subsubsection{Zmienne środowiska dla Unix}
\label{sec:env}

Użycie opisanej w~części~\ref{sec:options} 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 \envname{PATH} dodać ścieżkę do
programów \TL. (W Windows program instalacyjny czyni to za nas.)

Każda z~obsługiwanych platform ma własny podkatalog
w~ramach \dirname{TEXDIR/bin}. Listę platform i~odpowiadających im katalogów
przedstawiono na rys.~\ref{fig:bin-text}.

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

Dla powłoki zgodnej z~Bourne takiej jak \prog{bash}, używając na przykład Intel x86 \GNU/Linux
i~domyślnej konfiguracji \TL , należałoby edytować plik  \filename{$HOME/.profile}
(lub inny pochodzący z \filename{.profile}) i~dopisać linie:
\begin{sverbatim}
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
\end{sverbatim}

W~wypadku csh lub tcsh należy zmodyfikować plik \filename{$HOME/.cshrc} i dopisać linie:
\begin{sverbatim}
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
\end{sverbatim}

Jeśli nie używasz systemu \code{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 \TL\ powinny być tam odpowiednio wkomponowane.

\subsubsection{Zmienne środowiska: konfiguracja globalna}
\label{sec:envglobal}

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
\filename{/etc/manpath.config} i,~jeśli istnieje, dodać w~nim wiersze
\begin{sverbatim}
MANPATH_MAP /usr/local/texlive/2023/bin/x86_64-linux \
            /usr/local/texlive/2023/texmf-dist/doc/man
\end{sverbatim}

 2)~można sprawdzić plik \filename{/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 \code{man} do katalogu
\dirname{texmf-dist/doc/man}. Niektóre programy \code{man}, np. standardowy
program \code{man} w~systemie \macOS  automatycznie znajdą to dowiązanie,
likwidując potrzebę jakiegokolwiek działania z~naszej strony.

%%% numer linii 1097
\subsubsection{Aktualizacje z internetu po instalacji z \DVD}
\label{sec:dvd-install-net-updates}

Po instalacji \TL{} z~\DVD\ i~\textit{po modyfikacji} ścieżki wyszukiwania
programów (jak opisano to powyżej), możemy pobrać z~internetu aktualizacje
pakietów:

\begin{alltt}
> \Ucom{tlmgr option repository https://mirror.ctan.org/systems/texlive/tlnet}
\end{alltt}

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 \url{https://ctan.org/mirrors})
wraz z~pełną ścieżką do podkatalogu \dirname{tlnet}.

\htmlanchor{xetexfontconfig} % keep historical anchor working
\htmlanchor{sysfontconfig}
\subsubsection{Konfiguracja fontów dla \protect\XeTeX\protect\ i~Lua\protect\TeX}
\label{sec:font-conf-sys}

\XeTeX\ i~Lua\TeX\ 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ą \TL) jest dostępny zazwyczaj poprzez podanie nazwy czcionki, np. `\code{Liberation Serif}' choć można też użyć nazwy pliku systemowego.

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

Dla Lua\TeX: aby uzyskać dostęp do fontów z dystrybucji \TL\ nie trzeba robić nic szczególnego. Wszystkie fonty powinny być dostępne zarówno poprzez nazwę czcionki jak i fontu dzięki pakietowi \pkgname{luaotfload}, który obsługuje zarówno \LaTeX \ jak i ~TeX. Indeks nazw fontów  pakietu \pkgname{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 \TL\/ są dostępne automatycznie (poprzez uruchomienie programu \cmdname{fc-cache} dostarczonego jako część \TL).
 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 \pkgname{xetex} (albo w czasie pierwszej instalacji albo później), potrzebny plik konfiguracyjny jest tworzony w~\filename{TEXMFSYSVAR/fonts/conf/texlive-fontconfig.conf}. Aby sprawić, że fonty \TL\ są dostępne jako fonty systemowe należy:
 \begin{enumerate*}
\item Skopiować plik \filename{texlive-fontconfig.conf} do  (zazwyczaj)
\dirname{/etc/fonts/conf.d/09-texlive.conf}.
\item Uruchomić \Ucom{fc-cache -fsv}.
\end{enumerate*}

Jeżeli nie masz wystarczających uprawnień do wykonania powyższych kroków lub gdy chcesz udostępnić fonty z \TL{} tylko jednemu użytkownikowi, możesz postąpić następująco:
\begin{enumerate*}
\item Skopiować plik \filename{texlive-fontconfig.conf} do (zazwyczaj)
      \filename{~/.fonts.conf.d/09-texlive.conf}, gdzie \filename{~} jest twoim katalogiem domowym.
\item Uruchomić \Ucom{fc-cache -fv}.
\end{enumerate*}


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

%You can run \code{fc-list} to see the names of the available system
%fonts. The incantation \code{fc-list : family style file spacing} (all
%those arguments are literal strings) shows some generally interesting
%information.


\subsubsection{\protect\ConTeXt{} LMTX i MKIV}
\label{sec:context-mkiv}

Po zainstalowaniu \TL 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 \verb+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ć:
\begin{sverbatim}
context --generate
\end{sverbatim}
dla LMTX, i
\begin{sverbatim}
context --luatex --generate
\end{sverbatim}
dla MkIV, aby odświeżyć  dane w pamięci podręcznej dysku.
Wygenerowane pliki zostaną zapisane w~katalogach wskazywanych przez
zmienną  \code{TEXMFCACHE}, której domyślną wartością  w~\TL\ jest
\verb+TEXMFSYSVAR;TEXMFVAR+).

\ConTeXt\ przeszuka wszystkie ścieżki wymienione w~\verb+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:
\url{https://wiki.contextgarden.net/Running_Mark_IV}.

\subsubsection{Integracja lokalnych i prywatnych pakietów makr}
\label{sec:local-personal-macros}

Jak już wspomniano w~części~\ref{sec:texmftrees}, katalog \dirname{TEXMFLOCAL}
(domyślnie \dirname{/usr/local/texlive/texmf-local} lub
\verb|%SystemDrive%\texlive\texmf-local| w~Windows) 
przeznaczony jest na lokalne
(np. w~danej sieci komputerowej) fonty oraz pakiety makr. Z~kolei
\dirname{TEXMFHOME} (domyślnie \dirname{$HOME/texmf} lub
\verb|%USERPROFILE%\texmf|) jest przeznaczony na prywatne makra i~fonty
użytkownika. W zamierzeniu oba te katalogi powinny być zachowywane przy
instalacji nowszych wersji \TL{}, a~ich zawartość ma być automatycznie
dostępna dla kolejnych wydań. Zalecamy zatem, by nie
przedefiniowywać \dirname{TEXMFLOCAL}, co w~przyszłości (przy następnych wydaniach \TL) pozwoli uniknąć ręcznego konfigurowania.

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

\dirname{TEXMFLOCAL} po zmianie zawartości wymaga odświeżenia bazy danych --
poleceniem \cmdname{mktexlsr} lub poprzez użycie przycisku ,,Odśwież bazy
danych'' w~graficznym trybie programu \TL\  Manager \GUI (\prog{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ą \dirname{TEXMFHOME}
dla listy katalogów, które oddzielamy przecinkami i~umieszczamy w~klamrach:

\begin{verbatim}
  TEXMFHOME = {/my/dir1,/mydir2,/a/third/dir}
\end{verbatim}

W części \ref{sec:brace-expansion} opisano dokładniej analizę listy
katalogów umieszczonych w klamrach.


\subsubsection{Integracja fontów z innych źródeł}

Dla \TeX-a i~pdf\TeX-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~\TL, więc można wybrać taki jak nam odpowiada; strony pod adresem
\url{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:
\url{https://tug.org/fonts/fontinstall.html}.

Warto rozważyć użycie \XeTeX-a lub Lua\TeX-a, (patrz punkt \ref{sec:tex-extensions}),
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).

\subsection{Testowanie instalacji}
\label{sec:test-install}

Po zainstalowaniu \TL{} warto sprawdzić, czy programy działają
poprawnie. Pierwszą rzeczą będzie znalezienie programu do edycji plików.
\TL{} dostarcza edytor \TeX{}works (\url{https://tug.org/texworks}), ale tylko
dla Windows, zaś Mac\TeX{} edytor
TeXShop (\url{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.


\begin{enumerate}
\item Sprawdzamy najpierw, czy uruchamia się  program \cmdname{tex}:
\begin{alltt}
> \Ucom{tex -{}-version}
TeX 3.14159265 (TeX Live ...)
Copyright ... D.E. Knuth.
...
\end{alltt}
Jeśli uruchomienie kończy się  komunikatem \emph{command not found}
(\emph{nie znaleziono polecenia}), oznacza to, że niepoprawnie
zadeklarowano zmienną \envname{PATH} (patrz: deklaracje zmiennych
środowiska na str.~\pageref{sec:env}).

\item Następnie przetwarzamy prosty plik \LaTeX-owy generując PDF:
\begin{alltt}
> \Ucom{pdflatex sample2e.tex}
This is pdfTeX 3.14...
...
Output written on sample2e.pdf (3 pages, 142120 bytes).
Transcript written on sample2e.log.
\end{alltt}
Gdy program nie znajduje \filename{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 \ref{sec:debugging} na
str.~\pageref{sec:debugging}.
%%%%
\item Podgląd wyniku składu (pliku PDF):
\begin{alltt}
 > \Ucom{xpdf sample2e.dvi}    # Unix
\end{alltt}
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ę
\cmdname{evince} i~\cmdname{okular}. Dla Windows sugerujemy
wypróbowanie Sumatra PDF (\url{https://www.sumatrapdfreader.org/free-pdf-reader.html}).
Przeglądarki PDF nie jest są dostarczane z \TL{}, należy więc wybraną przeglądarkę  zainstalować osobno.

\item Oczywiście można też nadal wygenerować dokument w oryginalnym \TeX-owym formacie \dvi{}:
\begin{alltt}
> \Ucom{latex sample2e.tex}
\end{alltt}

\item A następnie  obejrzeć wynik:
\begin{alltt}
> \Ucom{xdvi sample2e.dvi}    # Unix
> \Ucom{dviout sample2e.dvi}  # Windows
\end{alltt}

Polecenie \cmdname{xdvi} nie działa poza środowiskiem
X-Window. Jeśli X-Window nie będzie uruchomione lub zmienna
środowiskowa  \envname{DISPLAY} będzie błędna to zamiast
dokumentu pojawi się informacja \samp{Can't open display}.

\item Przetwarzanie pliku \dvi{} do \PS{}:
\begin{alltt}
> \Ucom{dvips sample2e.dvi -o sample2e.ps}
\end{alltt}

\item Tworzenie dokumentu  w~formacie PDF z~\dvi{}; to alternatywa
do użycia pdf\TeX\-a (lub Xe\TeX\-a lub Lua\TeX-a), co niekiedy może użyteczne:

\begin{alltt}
> \Ucom{dvipdfmx sample2e.dvi -o sample2e.pdf}
\end{alltt}

\item Inne przydatne pliki testowe (poza sample2e.tex):
\begin{ttdescription}
\item [small2e.tex] Plik przykładowy prostszy niż \filename{sample2e}.
\item [testpage.tex] Plik do testowania położenia wydruku na kartce papieru, przydatny
  do sprawdzenia, czy nasza drukarka nie wprowadza przesunięć.
\item [nfssfont.tex] Służy do wydruku tablic fontowych.
\item [testfont.tex] Jak wyżej, z~tym że zamiast \LaTeX-a trzeba użyć plain
 \TeX{}.
\item [story.tex] Najbardziej kanoniczny plik przykładowy dla plain \TeX{}.
 Na zakończenie przetwarzania uruchomionego poleceniem \samp{tex story.tex},
 po ukazaniu się  \code{*}, należy wpisać \samp{\bs bye}.
\end{ttdescription}

\item Jeśli zainstalowano pakiet \filename{xetex}, można przetestować
 użycie fontów systemowych:
\begin{alltt}
> \Ucom{xetex opentype-info.tex}
This is XeTeX, Version 3.14\dots
...
Output written on opentype-info.pdf (1 page).
Transcript written on opentype-info.log.
\end{alltt}

Gdy otrzymamy komunikat błędu:
,,Invalid fontname `Latin Modern Roman/ICU'\dots'', oznacza to, że
należy zmienić konfigurację systemu, jak to opisano
w~punkcie~\ref{sec:font-conf-sys}.
\end{enumerate}

\htmlanchor{uninstall}
\subsection{Usuwanie instalacji \TL}
\label{sec:uninstall}

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

\begin{alltt}
> \Ucom{tlmgr uninstall --all}
\end{alltt}
Jeśli nie potwierdzimy chęci usunięcia instalacji, żadna akcja nie zostanie wykonana.
(Bez dodatku \code{-{}-all},   \code{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ęść~\ref{sec:texmftrees}:
 
\begin{ttdescription}
\item [TEXMFCONFIG]  Zawiera informacje użytkownika o   zmianach w konfiguracji. 
Jeśli chcesz je zachować, upewnij się przed usunięciem, że wiesz, jak je odtworzyć.

\item [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ąć.

\item[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ć.

\end{ttdescription}

\noindent Możesz znaleźć ścieżkę dostępu do opisanych katalogów uruchamiając  
 \code{kpsewhich -var-value=\ttvar{var}}.
 
Należy pamiętać, że \prog{tlmgr} usuwa instalację ale nie usuwa zmian wykonanych w~procesie poinstalacyjnym  w~\envname{PATH} oraz dostępu   do fontów \TL\ (patrz część~\ref{sec:postinstall}). 
 Należy je, w~razie potrzeby, usunąć ręcznie.

Dla Windows, usuwanie instalacji może być wykonane poprzez \GUI; patrz część~\ref{sec:winfeatures}.


\subsection{Dodatkowe oprogramowanie}
Jeżeli zaczynasz swoją przygodę z \TeX-em, lub potrzebujesz pomocy w trakcie składania dokumentu, odwiedź stronę \url{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:
\begin{description}
\item[Ghostscript] \url{https://ghostscript.com/}, bezpłatny interpreter plików PostScriptowych  i PDF.
\item[Perl] \url{https://perl.org/} z~dodatkowymi pakietami z~CPAN, \url{https://cpan.org/}
\item[ImageMagick] \url{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.
\item[NetPBM] \url{https://netpbm.sourceforge.net/}, zestaw narzędzi do wsadowej konwersji i~przetwarzania grafiki.

\item[\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).
  \begin{itemize*}
  \item \cmdname{GNU Emacs} jest  dostępny dla wszystkich  najważniejszych platform (również dla Windows), zobacz  \url{https://www.gnu.org/software/emacs}.
  \item \cmdname{AUC\TeX} działa z  Emacs; jest dostępny poprzez menedżera pakietów \cmdname{ELPA}.  Źródła są też dostępne z~CTAN. Strona domowa AUC\TeX\  
        \url{https://www.gnu.org/software/auctex}.
  \item \cmdname{SciTE} dostępny z
        \url{https://www.scintilla.org/SciTE.html}.
  \item \cmdname{Texmaker} darmowy, dostępny z
        \url{https://www.xm1math.net/texmaker}.
  \item \cmdname{TeXstudio} Oparty na \cmdname{Texmaker}, do którego dodano nowe właściwości;
        dostępny z~\url{https://texstudio.org/}.% lub w~dystrybucji pro\TeX{}.
  \item \cmdname{TeXnicCenter} darmowy, dostępny z~\url{https://www.texniccenter.org}.
  \item \cmdname{TeXworks} darmowy, dostępny z~\url{https://tug.org/texworks}
        i~instalowany jako część \TL\ (tylko dla Windows).
  \item \cmdname{Vim} darmowy, dostępny z~\url{https://www.vim.org}.
  \item \cmdname{WinEdt}  shareware, dostępny przez
        \url{https://tug.org/winedt} lub \url{https://www.winedt.com}.
  \item \cmdname{WinShell} dostępny z \url{https://www.winshell.de}.
  \end{itemize*}
\end{description}

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

\section{Instalacje zaawansowane}

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

\htmlanchor{tlsharedinstall}
\subsection{Instalacje dla wielu użytkowników (lub wieloplatformowe)}
\label{sec:sharedinstall}

\TL{} 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 \TL{} jest zdefiniowane jako względne wobec samych
programów. Można to zobaczyć w~pliku
\filename{$TEXMFDIST/web2c/texmf.cnf}, który zawiera na przykład takie
wiersze:
\begin{sverbatim}
TEXMFROOT = $SELFAUTOPARENT
...
TEXMFDIST = $TEXMFROOT/texmf-dist
...
TEXMFLOCAL = $SELFAUTOGRANDPARENT/texmf-local
\end{sverbatim}
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 \TL{}.

Możliwa jest zatem np. instalacja lokalna \TL{}, po czym przeniesienie
całej struktury w~inne miejsce w~sieci.

W~wypadku Windows, \TL{} zawiera program uruchomiający
\filename{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 \code{ini}. Podczas pierwszego uruchomienia
program modyfikuje ścieżkę dostępu dla \TL\ 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 \TL{} potrzebują
jedynie skrótu do programu \filename{tlaunch} w~menu. Więcej o~tym
można przeczytać w~podręczniku programu \code{tlaunch} (\code{texdoc tlaunch}
albo \url{https://ctan.org/pkg/tlaunch}).

%Użytkownicy Windows mogą pobrać z~internetu program uruchamiający
%\filename{tlaunch} (patrz:
%\url{https://tug.org/texlive/w32client.html}).  Główne okno programu
%zawiera menu i~przyciski dla różnych programów \TeX-owych oraz
%dokumentacji.  Ponadto dodaje do menu Start skrót
%dla odwołania tych zmian w~konfiguracji (taki sam skrót znajdzie się
%również w menu \filename{tlaunch}).

\htmlanchor{tlportable}
\subsection{Instalacja przenośna (\USB{})}
\label{sec:portable-tl}

Aby wykonać przenośną instalację na \USB{}, należy uruchomić program
instalacyjny z~opcją \optname{-portable} (lub polecenie \code{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 \envname{TEXMFHOME}, \envname{TEXMFVAR}
i~\envname{TEXMFCONFIG} są równe \envname{TEXMFLOCAL},
\envname{TEXMFSYSVAR}, i~\envname{TEXMFSYSCONFIG}, odpowiednio; w~ten sposób nie są tworzone
konfiguracje indywidualne użytkowników i~pamięci podręczne (\textit{cache}).

Do uruchomienia programów \TL\ w~takiej instalacji wystarczy w sesji
terminala dodać, jak zazwyczaj, odpowiedni katalog do zmiennej
\code{PATH}.
%\newpage % wymuszam, aby poniższy tekst i ,,tray-menu'' były na tej samej stronie
W~Windows należy dwukrotnie kliknąć
\filename{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:

\medskip
\tlpng{tray-menu}{4cm}{Windows tray menu}
\smallskip
\noindent Wybór ,,More\ldots'' spowoduje wyświetlenie komunikatu z~informacją, jak można
dostosować menu do własnych potrzeb.

\htmlanchor{tlmgr}
\section{\cmdname{tlmgr}: Zarządzanie instalacją}
\label{sec:tlmgr}
%%%%

\begin{figure}[htb]
\def\figdesc{\prog{tlshell} w trybie graficznym (\GUI), menu Actions (\GNU/Linux)}
\tlpng{tlshell-linux}{\linewidth}{\figdesc}
\caption{\figdesc}
\label{fig:tlshell}
\end{figure}

\begin{figure}[tb]
\def\figdesc{\prog{tlcockpit} -- tryb graficzny \prog{tlmgr}}
\tlpng{tlcockpit-packages}{.8\linewidth}{\figdesc}
\caption{\figdesc}
\label{fig:tlcockpit}
\end{figure}

\begin{figure}[tb]
\def\figdesc{\prog{tlmgr} w~trybie graficznym: główne okno, po
,,Wczytaj'' (\textit{Load}).}
\tlpng{tlmgr-gui}{\linewidth}{\figdesc}
\caption{\figdesc}
\label{fig:tlmgr-gui}
\end{figure}

\TL{} zawiera program o~nazwie  \prog{tlmgr}, służący do dalszego
zarządzania \TL{} po pierwotnej instalacji. Jego możliwości obejmują:

\begin{itemize*}
\item instalowanie, aktualizację, tworzenie kopii zapasowych, odtwarzanie
 oraz usuwanie pojedynczych pakietów (opcjonalnie~-- z~uwzględnieniem
 zależności pomiędzy pakietami);
\item wyszukiwanie i prezentowanie list pakietów oraz ich opisów;
\item wyszczególnianie oraz dodawanie i usuwanie platform systemowych;
\item zmianę opcji instalacji, takich jak rozmiar papieru czy zmiana
 położenia źródła instalacji (patrz część~\ref{sec:location}).
\end{itemize*}

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


\subsection{\cmdname{tlmgr} -- tryb graficzny (\GUI)}

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

\prog{tlmgr} może być uruchomiony we własnym trybie graficznym
(rys.~\ref{fig:tlmgr-gui}) za pomocą polecenia:
\begin{alltt}
> \Ucom{tlmgr -gui}
\end{alltt}
W tym przypadku wymagany jest moduł Perl/Tk, który nie jest już częścią Perla
dostarczanego przez \TL{} dla systemu Windows.

\subsection{Przykładowe wywołania \cmdname{tlmgr} z~linii poleceń}

Po zainstalowaniu \TL{} można zaktualizować wszystkie pakiety:
\begin{alltt}
> \Ucom{tlmgr update -all}
\end{alltt}
Symulację aktualizacji umożliwia:
\begin{alltt}
> \Ucom{tlmgr update -all -dry-run}
\end{alltt}
bądź tylko wyliczenie, jakie pakiety będą aktualizowane:
\begin{alltt}
> \Ucom{tlmgr update -list}
\end{alltt}

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

\begin{alltt}
> \Ucom{tlmgr -repository /local/mirror/tlnet install collection-xetex}
\end{alltt}
co pokazują komunikaty (tu w skrócie):
\begin{fverbatim}
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.
\end{fverbatim}

Jak widać, \prog{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.:
\begin{alltt}
> \Ucom{tlmgr show collection-latexextra}
\end{alltt}
co pokaże:
\begin{fverbatim}
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
\end{fverbatim}

\noindent
\textbf{Uwaga:} pełna dokumentacja programu \cmdname{tlmgr} dostępna
jest pod adresem:
\url{https://tug.org/texlive/tlmgr.html} lub po uruchomieniu:
\begin{alltt}
> \Ucom{tlmgr -help}
\end{alltt}

\section{Uwagi dotyczące Windows}
\label{sec:windows}

\subsection{Cechy specyficzne w~systemie Windows}
\label{sec:winfeatures}

W systemie Windows program instalacyjny wykonuje kilka dodatkowych czynności:
\begin{description}
\item[Menu i skróty.]
W~menu systemowym Start  instalowane jest podmenu `\TL{}',
 które zawiera kilka pozycji dla programów działających w~trybie graficznym takich jak \prog{tlshell} (tryb graficzny dla \prog{tlmgr}) i  \prog{dviout} %\prog{texdoctk}%, PS\_View (\prog{psv} -- przeglądarka plików postscriptowych))
  oraz dokumentacji.
\item[Skojarzenia typów plików.] Jeśli wybrano tę opcję,
 \prog{TeXworks} i \prog{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ć.
  
  \item[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.
%\item[Konwerter bitmap do EPS.] 
Dla różnych formatów graficznych plików
 bitmapowych kliknięcie prawym klawiszem myszy wyświetla w~menu ,,Otwórz''
 \cmdname{bitmap2eps}. Bitmap2eps jest prostym skryptem, który pozwala
 na wybór programu \cmdname{sam2p} bądź \cmdname{bmeps}.
 
\item[Automatyczne ustawienie zmiennych środowiska.]
 Po instalacji nie są wymagane żadne ,,ręczne'' zmiany ustawień.
 
\item[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 \TL\ menu.
%odbywa się  zatem w~standardowy dla Windows sposób. Przycisk ,,Usuń''
%w~\TeX\ Live Manager \GUI\ także  pozwala usunąć całość instalacji.
%Dla pojedynczego użytkownika program instalacyjny dodaje też w~menu Start
%skrót do usunięcia instalacji.

\item[Zabezpieczenie przed zapisem.] Jeśli instalację wykonał
administrator systemu, to katalogi \TL\ są zabezpieczone przed zapisem przez użytkowników (przynajmniej na dysku stałym sformatowanym w~NTFS).
\end{description}
%%%%%
Można też skorzystać z innego sposobu instalacji, używając  programu \filename{tlaunch},
opisanego w~punkcie~\ref{sec:sharedinstall}.
%Istnieje też inne podejście, używając programu \filename{tlaunch},
%opisanego w~punkcie~\ref{sec:sharedinstall}.

\subsection{Dodatkowe programy pomocnicze dla Windows}

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

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

%Wiele skryptów napisano w~języku Perl, ponadto wiele narzędzi wymaga
%programu Ghostscript (interpretera języka PostScript) do
%rasteryzacji bądź konwersji plików. Przydatne są także  w~wielu wypadkach
%różne programy do obróbki grafiki. Ponadto posiadanie edytora
%dedykowanego dla środowiska \TeX{} znacznie ułatwi pracę.

%Stosowne wersje tych programów dla systemu Windows można dość łatwo znaleźć w~sieci,
%ponieważ jednak jest ich spory wybór, postanowiliśmy te najbardziej istotne
%umieścić w~dystrybucji \TL:

Instalowane są następujące programy:
\begin{description}
\item[Perl, Tcl/Tk  i Ghostscript.] Ponieważ Perl i Ghostscript są niezbędne do
poprawnego działania \TL{}, i~ponieważ installer- i tlshell \GUI{} są napisane 
w~Tcl/Tk, \TL{} zawiera 'ukryte' kopie tych programów. Oczywiście  programy \TL{}, 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ć \TL{} że chcemy używać naszych zewnętrznych instalacji do współpracy z \TL{} znajdziemy w~\ref{sec:externalwndws}.
%Obydwa te programy są niezbędne do
%poprawnego działania \TL{}, dołączyliśmy zatem \cmdname{Ghostscript}
%i~minimalną dystrybucję \cmdname{Perl}, wystarczającą do
%uruchomienia wszystkich zawartych w~\TL{} skryptów perlowych;
%oba programy zostały ,,ukryte'', to znaczy tylko programy \TL{}, które
%z~nich korzystają, ,,wiedzą'' gdzie je znaleźć; tym samym nie powinny
%kolidować z~ewentualnie zainstalowanymi w~systemie programami Perl
%i~Ghostscript;
%\item[PS\_View.] Program do podglądu plików postscriptowych (a~także
% plików PDF), patrz rys.~\ref{fig:psview};
%
%\begin{figure}[h]
%\begin{center}
%\tlpng{psview}{.6\linewidth}
%\caption{PS\_View: umożliwia bardzo duże powiększenia!}\label{fig:psview}
%\end{center}
%\end{figure}

\item[dviout.] Instalowany jest także  \prog{dviout}, program do podglądu
plików DVI. Pierwsze uruchomienie \prog{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 \emph{on-line} tego programu.
\item[\TeX{}works.] Zorientowany na środowisko \TeX-owe edytor, zintegrowany
z~modułem do podglądu plików PDF.
\item[narzędzia uruchamiane z~linii poleceń.] Do \TL{} są włączone
 wersje Windows
 kilku przydatnych programów uniksowych. Są to programy: \cmdname{gzip}, \cmdname{zip}, \texttt{unzip}  i~kilka narzędzi z~zestawu \cmdname{poppler} (\cmdname{pdfinfo}, \cmdname{pdffonts}, \ldots). %Nie ma oddzielnej przeglądarki plików PDF dla Windows.
% Można pobrać z~internetu  na przykład przeglądarkę   PDF Sumatra:
%  \url{https://sumatrapdfreader.org/}.

\item[fc-list, fc-cache, \ldots] To narzędzia z~biblioteki \pkgname{fontconfig}.    
\prog{fc-cache} rejestruje dla \XeTeX-a fonty systemowe (Windows).% lub dostarczane w~dystrybucji \TL{} fonty OpenType; 
\prog{fc-list} wyświetla zarejestrowane
 fonty, podając ich pełne nazwy (deklarujemy je jako parametr rozszerzonego
 w~\XeTeX-u polecenia \cs{font}). Jeżeli to konieczne, należy uruchomić program \prog{fc-cache} aby odświerzyć   informację o dostępnych fontach.
\end{description}

\subsection{Korzystanie z zewnętrznych instalacji Perla, Tcl/Tk i Ghostscripta} 
\label{sec:externalwndws}

 
Normalnie, \TL{} będzie używać wbudowanych Perla, Tcl/Tk i Ghostscripta, również
w przypadku skryptów dodanych w ramach \TL. Jeśli chcesz używać   własnych, zewnętrznych
można to skonfigurować w pliku \file{texmf.cnf}.
 
Dla Perla należy dodać linię
\begin{verbatim}
TEXLIVE_WINDOWS_TRY_EXTERNAL_PERL = 1
\end{verbatim}
\TL{} (dokładnie, \file{bin/windows/runscript.tlu}) będzie wtedy poszukiwał 
  pliku \file{perl.exe}  pomijając te skrypty (Perla), które należą do
 infrastruktury \TL{}. Jest to najbardziej   użyteczne przeszukanie; mimo, że \TL{} Perl zawiera wiele dodatkowych modułów, nie może obsługiwać wszystkich skryptów innych firm.

Podobnie, dla Tcl/Tk należy dodać linię
\begin{verbatim}
TEXLIVE_WINDOWS_TRY_EXTERNAL_TCL = 1
\end{verbatim}
\TL{} będzie wtedy poszukiwał 
  plików \file{tclkit.exe}, \file{wish.exe},
\file{wish85.exe}, \file{wish86.exe} i~\file{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:
\begin{alltt}
TEXLIVE_WINDOWS_EXTERNAL_GS = \var{path of command-line ghostscript}
\end{alltt}
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 \TL.


Zobacz także rozdział \ref{sec:configfiles} dotyczący \file{texmf.cnf}.


\subsection{User Profile (inaczej Home -- katalog domowy)}
\label{sec:winhome}

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

\subsection{Rejestr Windows}
\label{sec:registry}

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 \path{HKEY_CURRENT_USER} oraz \path{HKEY_LOCAL_MACHINE}
(w~skrócie \path{HKCU} i~\path{HKLM}). Część \path{HKCU} dotyczy katalogów
domowych użytkowników (patrz część~\ref{sec:winhome}), zaś \path{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.

\subsection{Uprawnienia w Windows}
\label{sec:winpermissions}



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ę \TL{} 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 \verb|%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 \TL{} 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 \TL{} jest przeszukiwana
z~priorytetem, przed ścieżkami systemowymi. Jedynie korzystanie z~tak skonfigurowanego
programu wiersza poleceń umożliwi dostęp do  programów nowozainstalowanego \TL.
Podobnie przygotowywany jest skrót do programu \TeX{}works, 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''.


\subsection{Zwiększanie maksymalnej  dostępnej pamięci
w~Windows i~Cygwin}
\label{sec:cygwin-maxmem}

Użytkownicy systemów Windows i~Cygwin (patrz część~\ref{sec:cygwin} mogą w~przypadku uruchamiania niektórych programów dostarczonych w~\TL{} spotkać się  z~niewystarczającą
ilością dostępnej pamięci.  Na przykład \prog{asy} wyczerpie dostępną pamięć
w~przypadku próby zadeklarowania macierzy składającej się  z~25~milionów liczb
rzeczywistych, a~Lua\TeX\ przy przetwarzaniu dokumentu zawierającego wiele
dużych plików czcionek.
 % XXX "dużych" jest brzydkie, ale nie mam lepszego pomysłu :/
 %a dużych plików czcionek? ZW

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

W~Windows należy utworzyć plik, np. \code{moremem.reg}, z~takimi czterema liniami:

\begin{sverbatim}
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\Software\Cygwin]
"heap_chunk_in_mb"=dword:ffffff00
\end{sverbatim}

\noindent a~następnie wykonać (jako użytkownik z~prawami administratora)
polecenie: \code{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 \code{HKEY\_CURRENT\_USER}.


\section{Instrukcja obsługi systemu Web2C}

\Webc{} to zestaw programów związanych z~\TeX-em, tj.  sam \TeX{}, \MF{},
\MP, \BibTeX{} itd. Stanowią one rdzeń dystrybucji \TL{}. Strona domowa \Webc{} z aktualnym
podręcznikiem użytkownika i innymi użytecznymi plikami jest dostępna pod adresem \url{https://tug.org/web2c}.
%\end{document}

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
(\emph{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.

%% Sprawdzić wiersze 1958-1962

\Webc{} 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ą:

\begin{cmddescription}
\item[bibtex]    Tworzenie spisów bibliograficznych;
\item[dvicopy]   Modyfikowanie pliku \dvi;
\item[dvitomp]   Konwersja \dvi{} do MPX (rysunki MetaPost-a);
\item[dvitype]   Konwersja \dvi{} na plik tekstowy (ASCII);
\item[gftodvi]   Zamiana fontu GF na plik \dvi;
\item[gftopk]    Zamiana fontu w~formacie GF na font spakowany (PK);
\item[gftype]    Zamiana fontu GF na plik tekstowy (ASCII);
\item[mf]        Generowanie fontów bitmapowych w formacie GF;
\item[mft]       Skład plików źródłowych \MF{}-a;
\item[mpost]     Tworzenie rysunków oraz diagramów technicznych;
\item[patgen]    Tworzenie wzorców przenoszenia wyrazów;
\item[pktogf]    Zamiana fontów w formacie PK na fonty GF;
\item[pktype]    Zamiana fontu PK na plik tekstowy (ASCII);
\item[pltotf]    Konwersja tekstowej listy właściwości do TFM;
\item[pooltype]  wyświetlanie \web-owych plików pool;
\item[tangle]    Konwersja \web{} do języka Pascal;
\item[tex]       Skład tekstu;
\item[tftopl]    Konwersja TFM do tekstowej listy właściwości (PL);
\item[vftovp]    Konwersja fontów wirtualnych do wirtualnej listy
                 właściwości (VPL);
\item[vptovf]    Konwersja wirtualnej listy właściwości do fontów wirtualnych;
\item[weave]     Konwersja \web{} do \TeX-a.
\end{cmddescription}

\noindent
Dokładny opis funkcji oraz składni tych programów zawarty jest
w~dokumentacji poszczególnych pakietów samego \Webc{}.
Do optymalnego korzystania z~instalacji \Webc{}
przyda się  znajomość kilku zasad rządzących całą rodziną programów.

Wszystkie programy obsługują standardowe opcje \GNU:
\begin{description}
\item[\texttt{-{}-help\ \ \ }] podaje podstawowe zasady użytkowania;
%\item[\texttt{-{}-verbose}] podaje dokładny raport z~działania programu;
\item[\texttt{-{}-version}] podaje informację o~wersji, po czym kończy
                          działanie programu.
\end{description}

I w większości także honorują:
\begin{ttdescription}
\item[-{}-verbose] podaje dokładny raport z~działania programu.
\end{ttdescription}



Do lokalizowania plików programy oparte na \Webc{} używają biblioteki do
przeszukiwania ścieżek zwanej \KPS{} (\url{https://tug.org/kpathsea}).
Dla optymalizacji przeszukiwania \TeX-owego drzewa podkatalogów biblioteka ta
używa kombinacji zmiennych środowiskowych oraz kilku plików konfiguracyjnych.
\Webc{} 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 \file{ls-R}, zawierający pozycje określające nazwę i~względną ścieżkę
dla wszystkich plików zawartych w~tym katalogu.
% \end{document}


\subsection{Przeszukiwanie ścieżek przez Kpathsea}
\label{sec:kpathsea}

Opiszemy najpierw ogólny mechanizm przeszukiwania ścieżek przez bibliotekę
\KPS{}.

Tym, co nazywamy \emph{ścieżką przeszukiwania}, jest rozdzielona dwukropkami
lub średnikami lista \emph{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 \samp{my-file} w~ścieżce
\samp{.:/dir}, \KPS{} sprawdza istnienie danego elementu ścieżki
w~następującej kolejności: najpierw \file{./my-file}, potem
\file{/dir/my-file}, zwracając pierwszy odnaleziony (lub możliwie wszystkie).

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

W~celu sprawdzenia konkretnego elementu \var{p} ścieżki, \KPS{} najpierw
sprawdza, czy zbudowana wcześniej baza danych (patrz ,,Baza nazw plików'' na
str.~\pageref{sec:filename-database}) odnosi się  do \var{p}, tj.
czy baza danych znajduje się  w~podkatalogu z~prefiksem~\var{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, \KPS{} 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 \KPS{} \emph{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 \samp{/} lub \samp{./}
lub \samp{../}, to \KPS{} ogranicza się  do sprawdzenia, czy ten plik istnieje.

\ifSingleColumn
\else
\begin{figure*}
\verbatiminput{examples/ex5.tex}
\setlength{\abovecaptionskip}{0pt}
  \caption{Przykład pliku konfiguracyjnego}
  \label{fig:config-sample}
\end{figure*}
\fi
%\end{document}
\subsubsection{Źródła ścieżek}
\label{sec:path-sources}

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

\begin{enumerate}
\item
  Zmienna środowiskowa ustawiana przez użytkownika, np.
  \envname{TEXINPUTS}\@.
  Zmienne środowiskowe z~dołączoną kropką i~nazwą programu zastępują inne,
  np. jeżeli \samp{latex} jest nazwą uruchomionego programu, wtedy zamiast
  \envname{TEXINPUTS} wykorzystana zostanie zmienna \envname{TEXINPUTS.latex}.
\item
  Plik konfiguracyjny konkretnego programu, np. linia ,,\texttt{S /a:/b}''
  w~pliku \file{config.ps} programu \cmdname{dvips}.
\item   Plik konfiguracyjny \KPS{} \file{texmf.cnf}, zawierający taką linię,
  jak \samp{TEXINPUTS=/c:/d} (patrz poniżej).
\item Wartości domyślne dla uruchamianych programów.
\end{enumerate}
\noindent 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.~\pageref{sec:debugging}).

\subsubsection{Pliki konfiguracyjne}
\label{sec:configfiles}

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

Zamiast tego typowa instalacja \TL{} tworzy plik \file{.../2023/texmf.cnf},
który w~wyjątkowych wypadkach możemy modyfikować. \\ Głównym plikiem
konfiguracyjnym jest \file{.../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:

\begin{verbatim}
  TEXINPUTS=.:/my/macro/dir:
\end{verbatim}
Aby ustawienia mogły być zachowane i przenoszone przez lata należy użyć \samp{:} (\samp{;} dla Windows) aby wstawić ścieżki systemowe,
zamiast próbować je wszystkie zapisywać jawnie (zobacz rozdział~\ref{sec:default-expansion}).
Inna możliwość to użycie drzewa \envname{TEXMFHOME}  (zobacz rozdział~\ref{sec:directories}).

Czytane będą \emph{wszystkie} pliki \file{texmf.cnf} w~ścieżce
przeszukiwania, a~definicje we wcześniejszych plikach zastąpią te
w~późniejszych.  Tak więc w~ścieżce \verb|.:$TEXMF| wartości pochodzące
z~\file{./texmf.cnf} zastąpią te z~\verb|$TEXMF/texmf.cnf|.

\begin{itemize*}
\item
  Komentarze zaczynają się  od \code{\%}, a~kończą   na końcu wiersza.
\item
  Puste wiersze nie są brane pod uwagę.
\item
  Znak ,,\bs{}'' 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.
\item
  Pozostałe wiersze mają postać:\\
 \hspace*{2em}\texttt{\var{zmienna} \textrm{[}.\var{prognam}\textrm{]}
  \textrm{[}=\textrm{]} \var{wartość}}\\[1pt]
  gdzie \samp{=} i~otaczające spacje są opcjonalne. (Jeśli \var{wartość} zaczyna się od \samp{.}, lepiej jest użyć
   \samp{=}, aby uniknąć interpretacji kropki jako pochodzącej od nazwy programu.)
\item
Nazwa  \ttvar{zmienna} zawierać może dowolne znaki poza spacją,
  \samp{=}, lub \samp{.} (kropką), najbezpieczniej jednak używać znaków
  z~zakresu \samp{A-Za-z\_}.
\item
  Napis \samp{.\var{program}} ma zastosowanie w~wypadku, gdy
  uruchamiany program nosi nazwę \texttt{\var{program}} lub
  \texttt{\var{program}.exe}. Pozwala to różnym odmianom \TeX-a stosować
  różne ścieżki przeszukiwania.
\item Jako ciąg znaków, \var{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ł~\ref{sec:cnf-special-chars}).

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

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


\item
  Wszystkie definicje czytane są zanim cokolwiek zostanie rozwinięte, tak
  więc do zmiennych można się  odwoływać przed ich zdefiniowaniem.
\end{itemize*}
Fragment pliku konfiguracyjnego ilustrujący większość opisanych powyżej
reguł notacji:
\ifSingleColumn
\verbatiminput{examples/ex5.tex}
\else
jest pokazany na rys.~\ref{fig:config-sample}.
\fi

 
\subsubsection{Rozwijanie ścieżek}
\label{sec:path-expansion}

\KPS{} 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
\verb+~$USER/{foo,bar}//baz+ rozwija się  do wszystkich podkatalogów pod
katalogami \file{foo} i~\file{bar} w~katalogu głównym \texttt{\$USER},
które zawierają katalog lub plik \file{baz}.
Rozwinięcia te opisane są w~poniższych podrozdziałach.

\subsubsection{Rozwijanie domyślne}
\label{sec:default-expansion}


Jeżeli ścieżka przeszukiwania największego uprzywilejowania (patrz ,,źródła
ścieżek'' na str.~\pageref{sec:path-sources}) zawiera
\emph{dodatkowy dwukropek} (np. na początku, na końcu lub podwójny), to \KPS{}
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ą


\begin{alltt}
> \Ucom{setenv TEXINPUTS /home/karl:}
\end{alltt}
oraz wartość \code{TEXINPUTS} pobraną z~\file{texmf.cnf}

\begin{alltt}
  .:\$TEXMF//tex
\end{alltt}
to końcową wartością użytą w~przeszukiwaniu będzie:

\begin{alltt}
  /home/karl:.:\$TEXMF//tex
\end{alltt}

Ponieważ nieużytecznym byłoby wstawiać wartość domyślną w~więcej niż jednym
miejscu, \KPS{} zmienia tylko jeden dodatkowy \samp{:}\ i~pozostawia
inne bez zmian. \KPS{} najpierw szuka dwukropków na początku linii, potem na końcu,
a~następnie podwójnych.

\subsubsection{Rozwijanie nawiasów}
\label{sec:brace-expansion}

Użyteczna jest możliwość rozwijania nawiasów, co oznacza, że np.
\verb+v{a,b}w+ rozwija się  do \verb+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 \code{\$TEXMF}.
W~dostarczonym pliku \file{texmf.cnf} można znaleźć następującą (uproszczoną tu)
definicję:
\begin{verbatim}
  TEXMF = {$TEXMFVAR,$TEXMFHOME,!!$TEXMFLOCAL,!!$TEXMFDIST}
\end{verbatim}
Używając jej, można następnie zdefiniować na przykład:
\begin{verbatim}
  TEXINPUTS = .;$TEXMF/tex//
\end{verbatim}
co oznacza, że po szukaniu w~katalogu bieżącym będą przeszukane kolejno
\code{\$TEXMFVAR/tex}, \code{\$TEXMFHOME/tex}, \code{\$TEXMFLOCAL/tex},
i~\code{\$TEXMFDIST/tex} (wszystkie wraz z~katalogami niższego poziomu;
dwie ostatnie ścieżki \emph{wyłącznie} na podstawie zawartości
pliku \file{ls-R}).
%Jest to wygodny sposób na uruchamianie dwóch równoległych struktur \TeX-owych,
%jednej ,,zamrożonej'' (np. na \CD), a~drugiej ciągle uaktualnianej nowo
%pojawiającymi się  wersjami.
%Używanie zmiennej \code{\$TEXMF} we wszystkich definicjach daje pewność,
%że uaktualnione drzewo jest   przeszukiwane jest przeszukiwane w pierwszej kolejności.

\subsubsection{Rozwijanie podkatalogów}
\label{sec:subdirectory-expansion}

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

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

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

\subsubsection{Lista znaków specjalnych w plikach \file{texmf.cnf} -- podsumowanie}
\label{sec:cnf-special-chars}

Poniższa lista podsumowuje znaczenie znaków specjalnych i konstrukcji w~plikach
konfiguracyjnych \KPS{}.
%%%

\newcommand{\CODE}[1]{\makebox[3em][l]{\code{#1}}}
\begin{ttdescription}
\item[\CODE{:}] 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.\par
\item[\CODE{;}] Znak rozdzielający dla systemów nieuniksowych
 (działa tak jak \code{:}).
\item[\CODE{\$}] Rozwijanie zmiennej.
\item[\CODE{\string~}] Oznacza katalog główny użytkownika.
\item[\CODE{\char`\{\dots\char`\}}] Rozwijanie nawiasów.% np.
    %\verb+a{1,2}b+ zmieni się  w~\verb+a1b:a2b+;
\item[\CODE{,}] Oddziela elementy w rozwinięciu nawiasu.%Separates items in brace expansion.
\item[\CODE{//}] Rozwijanie podkatalogów (może wystąpić gdziekolwiek
 w~ścieżce, poza jej początkiem).
\item[\CODE{\%{\rm\ and }\#}] Początek komentarza, obejmującego wszystkie znaki do końca
 linii.
\item[\CODE{\bs}] Znak kontynuacji na końcu wiersza pozwalający na wpisy wieloliniowe.
\item[\CODE{!!}] Przeszukiwanie \emph{tylko} bazy danych,
         a~\emph{nie} dysku.
\end{ttdescription}

\subsection{Bazy nazw plików}
\label{sec:filename-database}

Podczas przeszukiwania \KPS{} stara się  zminimalizować dostęp do dysku.
Niemniej, w~przypadku instalacji standardowej \TL, 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ż \KPS{} może używać zewnętrznego pliku z~,,bazą danych''
o~nazwie \file{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 -- \file{aliases} -- pozwala na nadawanie
dodatkowych nazw plikom zawartym w~\file{ls-R}.
%Może to być pomocne do adaptacji do DOS-owej konwencji ,,8.3'' nazewnictwa
%plików w~plikach źródłowych.

\subsubsection{Baza nazw plików}
\label{sec:ls-R}

Jak wspomniano, plik zawierający główną bazę nazw
plików musi nosić nazwę \file{ls-R}.
W~katalogu podstawowym każdej hierarchii \TeX-owej (domyślnie \code{\$TEXMF}),
którą chcemy włączyć w~mechanizm przeszukiwania, umieszczać można po jednym
pliku \file{ls-R}; w~większości przypadków istnieje tylko jedna hierarchia.
\KPS{} szuka pliku \file{ls-R} w~ścieżce \code{TEXMFDBS}.

Najlepszym sposobem stworzenia i~utrzymywania pliku \samp{ls-R} jest
uruchomienie skryptu \code{mktexlsr}, będącego składnikiem dystrybucji.
Jest on wywoływany przez różne skrypty typu \samp{mktex}\dots\ .
Zasadniczo skrypt ten wykonuje jedynie  polecenie
\begin{alltt}
cd \var{/your/texmf/root} && \path|\|ls -1LAR ./ >ls-R
\end{alltt}
zakładając, że polecenie \code{ls} danego systemu utworzy właściwy format
strumienia wyjściowego (\GNU \code{ls} działa prawidłowo).
Aby mieć pewność, że baza danych jest zawsze aktualna, wygodnie jest
 przebudowywać ją regularnie za pomocą demona \code{cron}.
 %tak że wraz ze zmianami
 %w~instalowanych plikach -- np. po instalacji lub uaktualnianiu pakietu
 %\LaTeX{} -- plik \file{ls-R} jest uaktualniany automatycznie.

Jeśli szukanego pliku nie ma w~bazie danych,  \KPS{} domyślnie przechodzi do
przeszukiwania dysku. Jeżeli jednak dany element ścieżki zaczyna się  od
\samp{!!}, to w~poszukiwaniu tego elementu sprawdzana zostanie \emph{tylko}
baza danych, a~nigdy dysk.

\subsubsection{kpsewhich -- program do przeszukiwania ścieżek}
\label{sec:invoking-kpsewhich}

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

\begin{alltt}
> \Ucom{kpsewhich \var{opcje}\dots{} \var{nazwa-pliku}\dots{}}
\end{alltt}
Parametry wyszczególnione w~,,\ttvar{opcje}'' mogą zaczynać się  zarówno od
\samp{-}, jak i~od \samp{-{}-}, i~dozwolony jest każdy jednoznaczny skrót.

\KPS{} 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 \samp{find}).

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

\begin{ttdescription}
\item[\texttt{-{}-dpi=\var{num}}]\mbox{}\\*
  Ustaw rozdzielczość na \ttvar{num}; ma to tylko wpływ na
  przeszukiwanie fontów \samp{gf} i~\samp{pk}.  Dla zgodności
  z~\cmdname{dvips} parametr
  \samp{-D} działa identycznie. Domyślną wartością jest 600.
\item[\texttt{-{}-format=\var{nazwa}}]\mbox{}\\
  Ustawienie formatu (typu pliku) przeszukiwania na \ttvar{nazwa}.
  Domyślnie format odgadywany jest z~nazwy pliku.
  Dla formatów, które nie mają przydzielonego jednoznacznego rozszerzenia,
  takich jak niektóre pliki \MP{}-owe czy pliki konfiguracyjne
  \cmdname{dvips}-a, należy wyszczególnić nazwę plików znaną \KPS{} (np. \texttt{tex} lub \texttt{enc}), których listę wyświetli uruchomienie \texttt{kpsewhich -{}-help-formats}.

\item[\texttt{-{}-mode=\var{string}}]\mbox{}\\*
  Ustaw nazwę trybu na \ttvar{string}; dotyczy to jedynie szukania
  fontów \samp{gf} oraz \samp{pk}.
  Brak wartości domyślnej --  odnaleziony zostanie dowolny
  wyszczególniony tryb.
\item[\texttt{-{}-must-exist}]\mbox{}\\
  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 \file{ls-R}.
\item[\texttt{-{}-path=\var{string}}]\mbox{}\\
  Szukaj w~ścieżce  \ttvar{string} (rozdzielonej, jak
  zwykle, dwukropkami), zamiast zgadywać ścieżkę przeszukiwania z~nazwy
  pliku. \samp{//} i~wszystkie zwykłe rozszerzenia są możliwe.
  Parametry \samp{-{}-path} oraz \samp{-{}-format} wzajemnie się  wykluczają.
\item[\texttt{-{}-progname=\var{nazwa}}]\mbox{}\\
  Ustaw nazwę programu na  \ttvar{nazwa}.
  Może to mieć wpływ na ścieżkę przeszukiwania poprzez
  \texttt{.\var{program}} w~plikach konfiguracyjnych.
  Domyślne jest \samp{kpsewhich}.
\item[\texttt{-{}-show-path=\var{nazwa}}]\mbox{}\\
  Pokazuje ścieżkę używaną do poszukiwania plików typu
   \ttvar{nazwa}.
  Użyć można zarówno rozszerzenia \samp{.pk}, \samp{.vf}, etc., jak
  i~nazwy pliku, tak jak w~wypadku parametru \samp{-{}-format}.
\item[\texttt{-{}-debug=\var{num}}]\mbox{}\\
  Ustawia parametry wykrywania błędów na  \ttvar{num}.
\end{ttdescription}

\subsubsection{Przykłady użycia}
\label{sec:examples-of-use}

Przyjrzyjmy się teraz, jak działa \KPS{}. Oto proste wyszukiwanie:

\begin{alltt}
> \Ucom{kpsewhich  article.cls}
/usr/local/texmf-dist/tex/latex/base/article.cls
\end{alltt}
Szukamy  pliku \file{article.cls}.
Ponieważ rozszerzenie \samp{.cls} jest jednoznaczne, nie musimy zaznaczać, że
poszukujemy pliku typu \optname{tex} (katalogi plików źródłowych \TeX-a).
Znajdujemy go w~podkatalogu \file{tex/latex/base},  katalogiem nadrzędnym jest
\samp{texmf-dist}.
Podobnie wszystkie poniższe pliki odnajdywane są bez problemów
dzięki swoim jednoznacznym rozszerzeniom:
\begin{alltt}
> \Ucom{kpsewhich array.sty}
/usr/local/texmf-dist/tex/latex/tools/array.sty
> \Ucom{kpsewhich latin1.def}
/usr/local/texmf-dist/tex/latex/base/latin1.def
> \Ucom{kpsewhich size10.clo}
/usr/local/texmf-dist/tex/latex/base/size10.clo
> \Ucom{kpsewhich small2e.tex}
/usr/local/texmf-dist/tex/latex/base/small2e.tex
> \Ucom{kpsewhich tugboat.bib}
/usr/local/texmf-dist/bibtex/bib/beebe/tugboat.bib
\end{alltt}

\noindent (Ostatni plik to \BibTeX-owa baza bibliograficzna dla artykułów
\textsl{TUGBoat}).

\begin{alltt}
> \Ucom{kpsewhich cmr10.pk}
\end{alltt}
Pliki czcionek bitmapowych typu \file{.pk} używane są przez sterowniki programów,
 takich jak \cmdname{dvips} czy \cmdname{xdvi}.
W~tym wypadku wynik przeszukiwania okaże się  pusty, ponieważ
w~systemie brak gotowych wygenerowanych czcionek Computer Modern (\samp{.pk})
Wynika to z~faktu używania w~\TL{} fontów PostScript-owych Type1.
\begin{alltt}
> \Ucom{kpsewhich wsuipa10.pk}
\ifSingleColumn   /usr/local/texmf-var/fonts/pk/ljfour/public/wsuipa/wsuipa10.600pk
\else /usr/local/texmf-var/fonts/pk/ljfour/public/
.....                         wsuipa/wsuipa10.600pk
\fi\end{alltt}
Dla tych fontów (alfabetu fonetycznego) musieliśmy wygenerować pliki
\samp{.pk}, a~ponieważ domyślnym \MF{}-owym trybem naszej instalacji jest
\texttt{ljfour} z~podstawową rozdzielczością 600dpi, zwracany jest taki
właśnie wynik.
\begin{alltt}
> \Ucom{kpsewhich -dpi=300 wsuipa10.pk}
\end{alltt}
W przypadku, kiedy zaznaczamy  rozdzielczość
300dpi (\texttt{-dpi=300}), otrzymujemy informację, że w~naszej instalacji taka
czcionka nie jest dostępna.
Programy takie jak \cmdname{dvips} czy \cmdname{xdvi} zatrzymałyby się, aby
utworzyć pliki \texttt{.pk} w~wymaganej rozdzielczości (używając skryptu
\cmdname{mktexpk}).

Przeanalizujmy teraz pliki nagłówkowe i~konfiguracyjne
programu \cmdname{dvips}.
Najpierw szukamy pliku PostScript-owego prologu \file{tex.pro},
wykorzystywanego dla potrzeb \TeX-a.  Drugi przykład pokazuje
poszukiwanie pliku konfiguracyjnego \file{config.ps}, zaś trzeci --
szukanie pliku mapy czcionek PostScriptowych \file{psfonts.map}
(począwszy od edycji 2004, pliki \file{.map} i~\file{.enc}
mają własne reguły przeszukiwania ścieżek i~zmienione położenie w~ramach
drzew \dirname{texmf}).
Ponieważ rozszerzenie \samp{.ps} nie jest jednoznaczne, musimy
wyraźnie zaznaczyć, jaki typ jest wymagany dla pliku
\texttt{config.ps} (\optname{dvips config}).
\begin{alltt}
> \Ucom{kpsewhich tex.pro}
   /usr/local/texmf/dvips/base/tex.pro
> \Ucom{kpsewhich --format="dvips config" config.ps}
   /usr/local/texmf/dvips/config/config.ps
> \Ucom{kpsewhich psfonts.map}
   /usr/local/texmf/fonts/map/dvips/updmap/psfonts.map
\end{alltt}

Przyjrzyjmy się teraz bliżej plikom pomocniczym fontów Times  \PS{} z~kolekcji
URW. W~standardzie nazewnictwa fontów mają one prefiks \samp{utm}.
Pierwszy plik, który przeszukujemy, to plik konfiguracyjny, zawierający nazwę
pliku z~przemapowaniem fontów:
\begin{alltt}
> \Ucom{kpsewhich --format="dvips config" config.utm}
   /usr/local/texmf-dist/dvips/psnfss/config.utm
\end{alltt}
W~pliku tym znajduje się  wiersz:
\begin{alltt}
  p +utm.map
\end{alltt}
wskazujący na plik \file{utm.map}, który chcemy zlokalizować w~następnej
kolejności:
\begin{alltt}
> \Ucom{kpsewhich utm.map}
   /usr/local/texmf-dist/fonts/map/dvips/times/utm.map
\end{alltt}
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):
\begin{alltt}
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
\end{alltt}
Używając przeszukiwania plików z~fontami Type1, znajdźmy font
Times Roman \file{utmr8a.pfb} w~drzewie katalogów \file{texmf}:
\begin{alltt}
> \Ucom{kpsewhich utmr8a.pfb}
\ifSingleColumn   /usr/local/texmf-dist/fonts/type1/urw/times/utmr8a.pfb
\else   /usr/local/texmf-dist/fonts/type1/
... urw/utm/utmr8a.pfb
\fi\end{alltt}

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; \cmdname{kpsewhich} pokaże tylko
pierwszy napotkany plik.

\subsubsection{Diagnostyka błędów}
\label{sec:debugging}

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,
\KPS{} oferuje różne poziomy diagnostyki błędów:
\begin{ttdescription}
\item[\texttt{\ 1}] Wywołanie \texttt{stat} (testy pliku). Podczas
  uruchamiania z~uaktualnioną bazą danych \file{ls-R} nie powinno to
  przeważnie dawać żadnego wyniku.
\item[\texttt{\ 2}] Zapis odwołań do tablic asocjacyjnych (\emph{hash
 tables}), takich jak baza \file{ls-R}, pliki przemapowań, pliki konfiguracyjne.
\item[\texttt{\ 4}] Operacje otwarcia i~zamknięcia pliku.
\item[\texttt{\ 8}] Ogólne informacje o~ścieżkach dla typów
  plików szukanych przez \KPS; użyteczne do znalezienia ścieżki
  zdefiniowanej dla konkretnego pliku.
\item[\texttt{16}] Lista katalogów dla każdego z~elementów ścieżki
  (odnosi się  tylko do poszukiwań na dysku).
\item[\texttt{32}] Poszukiwania plików.
\item[\texttt{64}] Wartości zmiennych.
\end{ttdescription}
Wartość \texttt{-1} ustawia wszystkie powyższe opcje -- w~praktyce jest to zazwyczaj najwygodniejsze.
%poszukując przyczyny błędów, prawdopodobnie będziesz zawsze używać
%tych poziomów.

Podobnie w~przypadku programu \cmdname{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 \KPS{}, opcje wykrywania błędów można wybrać przy użyciu
zmiennej środowiskowej \envname{KPATHSEA\_DEBUG}, ustawiając ją
na opisaną powyżej wartość (kombinację wartości).

\noindent
\textbf{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):
\texttt{SET KPATHSEA\_DEBUG\_OUTPUT=err.log}. 

Rozważmy na przykład mały \LaTeX-owy plik źródłowy \file{hello-world.tex},
który zawiera:
\begin{verbatim}
  \documentclass{article}
  \begin{document}
  Hello World!
  \end{document}
\end{verbatim}
Ten mały plik korzysta jedynie z~fontu \file{cmr10}. Przyjrzyjmy się, jak
\cmdname{dvips} przygotowuje plik PostScript-owy (chcemy użyć wersji Type1
fontu Computer Modern, stąd opcja \texttt{-Pcms}).
\begin{alltt}
> \Ucom{dvips -d4100 hello-world -Pcms -o}
\end{alltt}
Mamy tu do czynienia jednocześnie z~czwartą klasą wykrywania błędów
programu \cmdname{dvips} (ścieżki fontowe) oraz z~rozwijaniem elementu
ścieżki przez \KPS{} (patrz: \cmdname{dvips} Reference Manual,
\OnCD{texmf-dist/doc/dvips/dvips.pdf}).
Komunikaty z~uruchomienia programu (nieco zmodyfikowane) znajdują się
na~rys.~\ref{fig:dvipsdbga}.
\begin{figure*}[tp]
\centering
\input{examples/ex6a.tex}
\caption{Szukanie pliku konfiguracyjnego}\label{fig:dvipsdbga}
\end{figure*}

 Program \cmdname{dvips} zaczyna pracę od zlokalizowania potrzebnych mu plików.
Najpierw znajduje plik \file{texmf.cnf}, który zawiera ścieżki
przeszukiwania dla innych plików. Potem znajduje bazę danych \file{ls-R}
(w~celu optymalizacji szukania plików), następnie plik \file{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 \cmdname{dvips} znajduje podstawowy plik konfiguracyjny
\file{config.ps}, zanim poszuka pliku z~ustawieniami użytkownika
\file{.dvipsrc} (który w~tym wypadku \emph{nie} zostaje odnaleziony).
W~końcu \cmdname{dvips} lokalizuje plik konfiguracyjny \file{config.cms}
dla fontów PostScript-owych Computer Modern (jest to inicjowane przez
dodanie parametru \texttt{-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.
\begin{alltt}
> \Ucom{more /usr/local/texmf-dist/dvips/config/config.cms}
p +ams.map
p +cms.map
p +cmbkm.map
p +amsbkm.map
\end{alltt}
W~ten sposób \cmdname{dvips} wyszukuje wszystkie te pliki oraz główny plik
z~przemapowaniem
\file{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 \ref{sec:examples-of-use}).

W~tym miejscu \cmdname{dvips} zgłasza się  użytkownikowi:
\begin{alltt}
%\ifSingleColumn
This is dvips(k) 5.92b Copyright 2002 Radical Eye Software (www.radicaleye.com)
%\else\small{}This is dvips 5.86 Copyright 1999 Radical Eye...
%\fi
\end{alltt}% decided to accept slight overrun in tub case
\ifSingleColumn
%\ldots
potem szuka pliku prologu \file{texc.pro}:
\begin{alltt}\small
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
\end{alltt}
\else
potem szuka pliku prologu \file{texc.pro}.
 (patrz rys.~\ref{fig:dvipsdbgb}).
\fi
Po znalezieniu szukanego pliku \cmdname{dvips} podaje datę i~czas
oraz informuje o~generowaniu pliku \file{hello-world.ps}.
Ponieważ potrzebuje pliku z~fontem \file{cmr10}, a~jest on
zadeklarowany jako dostępny, wyświetla komunikat:
\begin{alltt}\small
TeX output 1998.02.26:1204' -> hello-world.ps
Defining font () cmr10 at 10.0pt
Font cmr10 <CMR10> is resident.
\end{alltt}
Teraz trwa poszukiwanie pliku \file{cmr10.tfm}, który zostaje znaleziony,
po czym \cmdname{dvips} powołuje się  na kilka innych plików startowych
(nie pokazanych). W~końcu przykładowy font Type1 \file{cmr10.pfb}
zostaje zlokalizowany i~dołączony do pliku wynikowego (patrz ostatnia linia):
\begin{alltt}\small
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]
\end{alltt}
%\end{document}

\subsection{Parametry kontrolujące działanie programów}

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

 Ustawienia wszystkich parametrów znajdują się  w~części trzeciej pliku.
Najważniejszymi zmiennymi są:
\begin{ttdescription}
\item[\texttt{main\_memory}] Całkowita wielkość pamięci dostępnej dla
 \TeX-a, \MF{}-a i~\MP{}-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 \texttt{hugetex.fmt}.
Dzięki standardowemu sposobowi nazywania programów używanych przez
\KPS{}, właściwa wartość zmiennej \verb|main_memory| będzie
przeczytana z~pliku \texttt{texmf.cnf}.

\item[\texttt{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 \PiCTeX{}.
 %
\item[\texttt{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.
 %
\item[\code{hash\_extra}]
Dodatkowa wielkość pamięci przeznaczonej na tablicę zawierającą nazwy instrukcji;
domyślna wartość \texttt{hash\_extra} to \texttt{60000}.
\end{ttdescription}
 %


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ść.


\htmlanchor{texmfdotdir}
\subsection{\texttt{\$TEXMFDOTDIR}}
\label{sec:texmfdotdir}

W wielu miejscach powyżej podajemy różne ścieżki przeszukiwania zaczynające się od znaku
\code{.} (aby najpierw przeszukać katalog bieżący), tak jak w
\begin{alltt}\small
TEXINPUTS=.;$TEXMF/tex//
\end{alltt}

Jest to uproszczenie. Plik \code{texmf.cnf} który dostarczamy w \TL{} używa \filename{$TEXMFDOTDIR} zamiast \samp{.}, tak jak w
\begin{alltt}\small
TEXINPUTS=$TEXMFDOTDIR;$TEXMF/tex//
\end{alltt}
(W dostarczonym pliku druga część jest nieco bardziej skomplikowana niż tylko
\filename{$TEXMF/tex//}. Ale to jest mniej ważne; tu chcemy przedstawić zmienną
\filename{$TEXMFDOTDIR}).

Powód użycia zmiennej \filename{$TEXMFDOTDIR} w definicji ścieżki zamiast
\samp{.} 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ć \filename{TEXMFDOTDIR} jako \filename{.//}
(na przykład w katalogu w~którym budujemy dokument) i wtedy wszystkie podkatalogi
będą przeszukiwane. (Ostrzeżenie: nie należy używać \filename{.//} 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ć \filename{$TEXMFDOTDIR} na np. \filename{/nonesuch} albo inny nie
istniejący katalog.

Domyślną wartością \filename{$TEXMFDOTDIR} jest \samp{.} i~taka jest w~\filename{texmf.cnf}.

\htmlanchor{ack}
\section{Podziękowania}

\TL{} jest wspólnym dziełem prawie wszystkich grup \TeX-owych.
Niniejsza edycja \TL{} została opracowana pod kierownictwem Karla Berry'ego,
przy głównym współudziale:

\begin{itemize*}
\item 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ź
 \url{https://tug.org/usergroups.html});

\item zespołu CTAN (\url{https://ctan.org}),
 który dystrybuuje obrazy płyt \TL{} i~udostępnia wspólną
 infrastrukturę służącą aktualizacji pakietów, od której zależy \TL{};

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

\item Johna Bowmana, który dostosował swój zaawansowany program Asymptote
 do współpracy z \TL;

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

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

\item Thomasa Essera, autora wspaniałego \teTeX-a, bez którego
  \TL{} z~całą pewnością by nie powstał;

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

\item 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;

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

\item \Thanh{}a,
 Martina Schr\"odera i~zespołu pdf\TeX (\url{https://pdftex.org}), którzy
 kontynuują ulepszanie tego programu;

\item Hartmuta Henkela, mającego istotny udział w~rozwoju pdf\TeX-a,
 Lua\TeX-a i~innych programów;

\item Shunshaku Hirata, za wiele oryginalnych i będących kontynuacją
 ulepszeń sterownika  DVIPDFM$x$.

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

\item Khaleda Hosny, który pracuje nad doskonaleniem \XeTeX, DVIPDFM$x$
 oraz fontów arabskich i~innych;

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

\item Akira Kakuto, który dostarczył programy dla Windows, pochodzące
  z~japońskich dystrybucji W32TEX i~W64TEX
  (\url{https://w32tex.org}),
  stale dostosowywane i~aktualizowane dla potrzeb \TL;

\item Jonathana Kew, który zainicjować nową ścieżkę
  rozwojową -- \XeTeX{}, i~który włożył sporo wysiłku w~zintegrowanie
  tego programu z~\TL, jak również zapoczątkował prace nad instalatorem dla
  Mac\TeX{} oraz edytorem \TeX{}works;

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

\item Dicka Kocha, który pielęgnuje Mac\TeX-a (\url{https://tug.org/mactex})
 w~ścisłym połączeniu z~\TL i~bardzo sympatycznie współpracuje;

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

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

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

\item 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;

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

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

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

\item Toshio Oshimy, który opracował przeglądarkę \cmdname{dviout} dla Windows;

\item Manuela P\'egouri\'e-Gonnarda, który pomógł w~aktualizacji pakietów
 i~pracował nad \cmdname{texdoc};

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

\item Norberta Preininga, głównego architekta infrastruktury i~programu
 instalacyjnego, a także  koordynował (wraz z~Frankiem K\"usterem)
 debianową wersję \TL{} i~przedstawił wiele sugestii ulepszeń;

\item Sebastiana Rahtza, który stworzył \TL{} i~kierował projektem przez
 wiele lat; Sebastian zmarł w~marcu 2016~r.; dedykujemy kontynuację prac
 Jego pamięci;

\item Luigi Scarso, który kontynuuje rozwój MetaPosta, Lua\TeX-a i~innych
 programów;

 \item Andreasa Scherera, za \texttt{cwebbin}, implementację CWEB używaną w  \TL{}
 i~ciągłą pielęgnację oryginalego CWEB;

 \item Takuji Tanaka, za pielęgnację (e)(u)p\TeX-a i~związane z~tym wsparcie;

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

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

\item Staszka Wawrykiewicza, głównego testującego \TL{} 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;

\item Olafa Webera, który w~poprzednich latach cierpliwie pielęgnował \Webc;

\item Gerbena Wierda, który przygotował oryginalne oprogramowanie i~wsparcie
 dla \macOS;

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

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

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

\end{itemize*}

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

Aktualizacje i~tłumaczenia dokumentacji wykonali:
Takuto Asakura (japoński),
Denis Bitouz\'e \& Patrick Bideault (francuski),
Carlos Enriquez Figueras (hiszpański),
Jjgod Jiang, Jinsong Zhao, Yue Wang, \& Helin Gai (chiński),
Nikola Le\v{c}i\'c (serbski),
Marco Pallante \& Carla Maggi (włoski),
Petr Sojka \& Jan Busa (czeski\slash słowacki),
Boris Veytsman (rosyjski),
Zofia Walczak \& Jerzy Ludwichowski  (polski),
Uwe Ziegenhagen (niemiecki).  Dokumentację \TL{} znajdziemy na stronie
  \url{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.

%%%
\section{Historia}
\label{sec:history}

\subsection{Poprzednie wersje}

Dystrybucja \TL{} 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 (\emph{\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
4All\TeX{} \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 4All\TeX{} \CD{},
lecz również spowodował powstanie Grupy Roboczej TUG ds. Standardu Katalogów
\TeX-owych (\emph{\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
\textsl{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 4All\TeX{} \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 \TL.

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 \Webc, 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 \Webc, z~dodaniem skryptu \texttt{texconfig} z~pakietu \teTeX.
Trzecie wydanie \CD{} było oparte na \Webc{} wersji 7.2, przygotowanej przez
Olafa Webera. W~tym samym czasie została przygotowana nowa wersja \teTeX-a
i~\TL{} udostępniał prawie wszystkie jego nowe funkcje.
Czwarta edycja była przygotowana podobnie,
z~użyciem nowej wersji te\TeX-a i~nowej wersji \Webc{} (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~\TL~5 było usunięcie programów, które nie miały
statusu {\it public domain}. Zawartość całej płytki powinna odpowiadać ustaleniom
Debian Free Software Guidelines (\url{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
\texttt{language.dat}.

\TL~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ą te\TeX. 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.

\subsubsection{Wydanie 2003}

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

\begin{itemize*}
\item na życzenie ,,\LaTeX{} team'' zmieniono standardowe użycie
 programów \cmdname{latex} i~\cmdname{pdflatex}~-- by korzystały
 one z~\eTeX{} (patrz str.~\pageref{text:etex});
\item 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;
\item 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;
\item zmieniono instalację w~systemach Windows, wprowadzając po raz pierwszy
 zintegrowane środowisko pracy, oparte na edytorze XEmacs;
\item potrzebne programy pomocnicze dla Windows (Perl, Ghost\-script,
 Image\-Magick, Ispell) instalowano w~strukturze katalogów
 instalacji \TL;
\item mapy fontowe, z~których korzystają programy \cmdname{dvips},
 \cmdname{dvipdfm} oraz \cmdname{pdftex}, generowano odtąd w~katalogu
 \dirname{texmf-dist/fonts/map};
\item \TeX{}, \MF{} oraz \MP{} domyślnie pozwalały wypisywać komunikaty
 na ekranie i~w~pliku .log, a~także  w~operacjach \verb|\write| w~ich
 reprezentacji 8-bitowej, zamiast tradycyjnej notacji \verb|^^|;
 w~\TL{}~7 eksperymentalnie wprowadzono zależność przekodowania
 wyjścia programów od systemowej strony kodowej, potem ten pomysł
 zarzucono;
\item znacznie zmieniono niniejszą dokumentację;
\item wreszcie, ponieważ numery wersji kolejnych edycji mogły wprowadzać
 w~błąd, postanowiono identyfikować edycje \TL{} zgodnie z~rokiem
 wydania.
\end{itemize*}

\subsubsection{Wydanie 2004}

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

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

Pliki \filename{.map} (map fontowych) są odtąd wyszukiwane w~podkatalogach
\dirname{fonts/map} (w~każdym drzewie \filename{texmf}), zgodnie ze ścieżką
określoną przez zmienną \envname{TEXFONTMAPS}. Analogicznie, pliki
\filename{.enc} (przekodowań fontów) są odtąd wyszukiwane w~podkatalogach
\dirname{fonts/enc}, zgodnie ze ścieżką określoną przez zmienną
\envname{ENCFONTS}. O~niewłaściwie umieszczonych plikach tego typu
zostaniemy ostrzeżeni podczas uruchomienia programu \cmdname{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
\dirname{fonts/}.

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

\item Do \TK\ \DVD{} dodano nową dystrybucję dla Windows o~nazwie
pro\TeX{}t (opartą na \MIKTEX-u). Była ona dostępna także  na odrębnym \CD. Choć pro\TeX{}t nie bazuje na implementacji Web2C, stosuje układ katalogów
zgodny z~\TDS (patrz część~\ref{sec:overview-tl} na
str.~\pageref{sec:overview-tl}).

\item W ramach \TL{} dotychczasowe pojedyncze drzewo katalogów
\dirname{texmf} zostało rozdzielone na trzy mniejsze: \dirname{texmf},
\dirname{texmf-dist} i~\dirname{texmf-doc} (patrz
część~\ref{sec:tld}, str.~\pageref{sec:tld}) oraz pliki \filename{README}
w~każdym z~tych katalogów).

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

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

\item Prawie wszystkie formaty traktują od tego wydania większość znaków jako
jawnie ,,wyświetlalne'' (\emph{printable}), nie zaś, jak było dotychczas,
konwertowane na \TeX-ową notację \verb|^^|. Było to możliwe dzięki domyślnemu
wczytywaniu tablicy przekodowań \filename{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~\TL\,2003, ale
w~tej edycji została zaimplementowana w~bardziej elegancki sposób
i~z~większymi możliwościami indywidualnego dostosowania (patrz
\CDref{texmf-dist/doc/web2c/web2c.html\#TCX-files}
{\texttt{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''.)
 %%! hmmm, cały akapit by o strumieniach we-wy? Mętne...

\item Program \pkgname{pdfetex} został domyślną ,,maszynę'' dla
większości formatów (nie dotyczy to samego Plain \textsf{tex}).
domyślnie, gdy uruchamiamy polecenie \pkgname{latex}, \pkgname{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~\textsf{pdftex}, a~także  rozszerzonych cech \eTeX-a
(\OnCD{texmf-dist/doc/etex/base/}).

Oznacza to także, co warto podkreślić, że \emph{zalecane} jest odtąd użycie
pakietu \pkgname{ifpdf} (który działa zarówno z~plain, jak i~\LaTeX)
lub analogicznych makr. Zwykłe sprawdzanie czy zdefiniowano \cs{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 \cs{pdfoutput} może być zdefiniowany nawet wtedy,
gdy generowany jest plik DVI.

\item pdf\TeX\ (\url{https://pdftex.org}) zyskał wówczas wiele nowych
cech:

 \begin{itemize*}
 \item \cs{pdfmapfile} i~\cs{pdfmapline} pozwalają określić
 z~poziomu dokumentu użyte mapy fontowe, a~także  pojedyncze
 dodatkowe wpisy w~tych mapach.

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

 \item wszystkie parametry pracy pdf\TeX-a, dotychczas określane
 w~specjalnym pliku konfiguracyjnym \filename{pdftex.cfg}, muszą być
 odtąd ustawiane poleceniami wbudowanymi, jak w~pliku
 \filename{pdftexconfig.tex}; plik \filename{pdftex.cfg}
 nie jest już w~ogóle wykorzystywany. Po zmianie \filename{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);

 \item więcej informacji zawarto w~podręczniku pdf\TeX-a:
 \OnCD{texmf-dist/doc/pdftex/manual/pdftex-a.pdf}.

 \end{itemize*}

\item Polecenie \cs{input} w~programach \cmdname{tex},
 \cmdname{mf} oraz \cmdname{mpost} akceptowało odtąd nazwy
 plików ograniczone podwójnymi apostrofami, zawierające spacje i~inne
 znaki, np.:
\begin{verbatim}
\input ,,nazwa_pliku ze spacjami"   % plain
\input{,,nazwa_pliku ze spacjami"}  % latex
\end{verbatim}
więcej informacji zawarto w~podręczniku \Webc: \OnCD{texmf-dist/doc/web2c}.

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

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

\item Udostępniono nowy program Aleph, który łączył cechy \eTeX\ i~\OMEGA.
 Skromna dokumentacja jest dostępna na \OnCD{texmf-dist/doc/aleph/base}
 oraz  \url{https://texfaq.org/FAQ-enginedev}.
 Format oparty na \LaTeX-u dla programu Aleph nazwano \pkgname{lamed}.

\item 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 \filename{ltnews}
 w~\OnCD{texmf-dist/doc/latex/base}.

\item Dołączono także  program \cmdname{dvipng} konwertujący pliki DVI
do formatu graficznego PNG (\url{https://www.ctan.org/pkg/dvipng}).

\item W~porozumieniu i~z~pomocą autora, Claudio Beccariego, ograniczono
 pakiet \pkgname{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
  (\url{https://ctan.org/pkg/cbgreek-complete}).



\item Usunięto program \cmdname{oxdvi}; jego funkcje przejął
 \cmdname{xdvi}.

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

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

\item W~systemie \textsf{sparc-solaris} należało ustawić zmienną systemową
 \envname{LD\_LIBRARY\_PATH}, aby uruchomić programy \pkgname{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
 \pkgname{mips-irix} wymagana była obecność bibliotek MIPSpro 7.4.

\end{itemize}

\subsubsection{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:

\begin{itemize}

\item Wprowadzono nowe skrypty \cmdname{texconfig-sys}, \cmdname{updmap-sys}
 i~\cmdname{fmtutil-sys}, których zadaniem jest modyfikowanie plików
 konfiguracyjnych w~głównych drzewach katalogów systemu. Dotychczasowe
 skrypty \cmdname{texconfig}, \cmdname{updmap} i~\cmdname{fmtutil}
 modyfikują odtąd pliki użytkownika w~katalogu \dirname{$HOME/.texlive2005}.
 %(Patrz część~\ref{sec:texconfig}, str.~\pageref{sec:texconfig}).

\item Dodano nowe zmienne środowiskowe \envname{TEXMFCONFIG}
 i~\envname{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
 \filename{fmtutil.cnf} i~\filename{updmap.cfg} w~odpowiednie miejsca.
 Inną możliwością było przedefiniowanie \envname{TEXMFCONFIG} lub
 \envname{TEXMFSYSCONFIG} w~pliku \file{texmf.cnf}. W~każdym z~przypadków
 położenie tych plików i~przypisania
 \envname{TEXMFCONFIG} i~\envname{TEXMFSYSCONFIG} muszą być zgodne.
 (Patrz część~\ref{sec:texmftrees}, str.~\pageref{sec:texmftrees}.)

\item W~wydaniu z~poprzedniego roku podczas tworzenia wynikowego pliku
 DVI \verb|\pdfoutput| i~podobne polecenia pozostawały niezdefiniowane, mimo
 że używany być program \cmdname{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 \verb|\ifx\pdfoutput\undefined| do sprawdzania, czy plik
 wynikowy ma być w~formacie PDF. Zamiast tego należało zastosować pakiet
 \pkgname{ifpdf.sty}, który działa zarówno z~plain \TeX-em jak i~\LaTeX-em,
 albo zapożyczył zastosowane w~nim rozwiązania.

\item 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 \filename{empty.tcx} pozwalał
 w~łatwy sposób uzyskać w~razie potrzeby oryginalną notację (\verb|^^|),
 np.:

\begin{verbatim}
latex --translate-file=empty.tcx twojplik.tex
\end{verbatim}

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

\item Nowe programy \cmdname{pdfopen} i~\cmdname{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 \cmdname{xpdf},
 \cmdname{gv} i~\cmdname{gsview}, nigdy na tę przypadłość nie cierpiały.)

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

\end{itemize}

\subsubsection{Wydanie 2006--2007}

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

W istotny sposób został zaktualizowany MetaPost, zaplanowano jego
dalszy rozwój (\url{https://tug.org/metapost/articles}); to samo dotyczy
pdf\TeX-a (\url{https://tug.org/applications/pdftex}).

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

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

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} (\url{https://mirror.ctan.org}).

Drzewo źródłowe \TL{} jest odtąd przechowywane w~Subversion. Przeglądanie
umożliwia standardowy interfejs www, a~jego adres zamieszczono na stronie
\url{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 \TL{}.

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

\subsubsection{Wydanie 2008}

W 2008 roku cała infrastruktura \TL{} została przeprojektowana
i~przeprogramowana. Informacja dotycząca instalacji jest przechowywana
obecnie w~zwykłym pliku tekstowym \filename{tlpkg/texlive.tlpdb}.

Po zainstalowaniu \TL{} wreszcie jest możliwa jego aktualizacja z~internetu,
podobnie jak od paru lat umożliwia to dystrybucja MiK\TeX. Zamierzamy
regularnie aktualizować pakiety, w~miarę jak będą się  pojawiać na serwerach
\CTAN.

W~tym wydaniu pojawił się  nowy ,,silnik'', Lua\TeX\
(\url{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~\TL).

Pojawił się  nowy skrypt \cmdname{tlmgr} (patrz część~\ref{sec:tlmgr}), który
staje się  głównym narzędziem do zarządzania \TL{} 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ę  \cmdname{tlmgr} niektóre funkcje \cmdname{texconfig}
zostały zablokowane (edycja plików konfiguracyjnych formatów i~wzorców
przenoszenia).

Program \cmdname{xindy} do tworzenia skorowidzów
(\url{https://xindy.sourceforge.net/}) jest obecnie dostępny dla większości
platform.

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

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

Usunięto aliasy fontów \filename{Times-Roman}, \filename{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 \pkgname{platex}, by uniknąć konfliktu nazwy z~używanym od
wielu lat japońskim pakietem \pkgname{platex}; pakiet \pkgname{polski} (czyli
dawny \pkgname{platex}) jest obecnie wystarczającym sposobem na polonizację
dla \LaTeX-a.

Usunięto pliki \filename{.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. \textit{\TeX\ tuneup of 2008}); patrz:
\url{https://tug.org/TUGboat/Articles/tb29-2/tb92knut.pdf}.

\subsubsection{Wydanie 2009}

W wydaniu 2009 najbardziej widoczną zmianą jest to, że
pdf\AllTeX\ \emph{automatycznie} konwertuje plik EPS do PDF,
poprzez uruchomienie programu \code{epstopdf} (dotyczy to sytuacji,
gdy użyto pliku konfiguracyjnego \code{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 \code{epstopdf}, wstawiając
|\newcommand{\DoNotLoadEpstopdf}{}| (lub |\def...|) przed deklaracją
\cs{documentclass}. Szczegóły można znaleźć w dokumentacji pakietu epstopdf
(\url{https://ctan.org/pkg/epstopdf-pkg}).

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

Od wydania 2009 domyślnym formatem wyjściowym dla Lua\AllTeX\ staje się  PDF
(wykorzystuje on m.in. obsługę przez Lua\-\TeX-a fontów OpenType). Aby uzyskać
plik DVI należy użyć nowych poleceń: \code{dviluatex} lub \code{dvilualatex}.
Strona domowa projektu Lua\TeX: \url{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 \TypeI, 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
\url{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: \url{https://www.ams.org/tex/amsfonts.html}.

Dla Windows i Mac\TeX{} dołączono nowe środowisko\dywiz edytor \TeX{}works.
Dla innych platform patrz: \url{https://tug.org/texworks}.
Inspirowany przez edytor TeXShop dla \macOS, \TeX{}works jest
wieloplatformowym, łatwym w użyciu środowiskiem pracy.

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

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

Dodano zestawy programów dla \pkgname{cygwin} i \pkgname{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 \pkgname{xz},
stanowiącego stabilny zamiennik \pkgname{lzma}
(\url{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.

\subsubsection{Wydanie 2010}
\label{sec:2010news} % keep with 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 \code{dvipdfmx}.  Powrót do wersji 1.4 jest możliwy poprzez użycie
pakietu \pkgname{pdf14} lub komendy |\pdfminorversion=4|.

Obecnie pdf\AllTeX\ \emph{automatycznie} konwertuje plik EPS
(\textit{Encapsulated PostScript}) do formatu PDF, wykorzystując pakiet
\pkgname{epstopdf}, o~ile załadowano \LaTeX-owy plik konfiguracyjny
\code{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
\code{epstopdf} wpisując przed poleceniem \cs{documentclass} polecenie
|\newcommand{\DoNotLoadEpstopdf}{}| (lub |\def...|). Program \code{epstopdf} nie jest
również używany w~przypadku dołączenia pakietu \pkgname{pst-pdf}. Więcej
szczegółów znajduje się  w dokumentacji pakietu epstopdf
(\url{https://ctan.org/pkg/epstopdf-pkg}).

Domyślnie włączono również wykonywanie kilku programów zewnętrznych dla \TeX-a
poprzez mechanizm \cs{write18}.  Dotyczy to: \code{repstopdf},
\code{makeindex}, \code{kpsewhich}, \code{bibtex} i~\code{bibtex8} (lista
jest zdefiniowana w~\code{texmf.cnf}).  W~środowiskach, w~których wykonywanie
zewnętrznych programów jest niepożądane, należy tę opcję zaznaczyć podczas
instalacji (patrz: część~\ref{sec:options}) 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 \cs{write18}.  Aby to zmienić, należy ustawić zmienną
\envname{TEXMFOUTPUT} lub zmodyfikować |openout_any|.

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

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

Dołączono nowe programy: p\TeX\ i~narzędzia do składu w~języku japońskim,
\BibTeX{}U dla obsługi Unicode w~\BibTeX-u, chktex
(\url{https://baruch.ev-en.org/proj/chktex}) -- program do sprawdzania
dokumentów \AllTeX, dvisvgm -- konwerter DVI do SVG
(\url{https://dvisvgm.sourceforge.net}) oraz binaria dla nowych platform
sprzętowych: \code{amd64-freebsd}, \code{amd64-kfreebsd},
\code{i386-freebsd}, \code{i386-kfreebsd}, \code{x86\_64-darwin},
\code{x86\_64-solaris}.

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

Wreszcie, z~powodu niewystarczającej ilości miejsca na płycie \TK\ \DVD,
zrezygnowano z~możliwości uruchamiania \TL{} w~trybie ,,live''.  Jednocześnie
znacznie przyspieszyło to sam proces instalacji \TL{} z~płytki \DVD.

\subsubsection{Wydanie 2011}

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

Programy dla \macOS\ (\code{universal-darwin} i \code{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 \code{biber}, służący do
przetwarzania danych bibliograficznych. Rozwój tego programu jest ściśle
związany z pakietem \code{biblatex}, który w zupełnie nowy sposób
obsługuje bibliografie w~La\TeX-u .

Program MetaPost (\code{mpost}) ani nie tworzy, ani już więcej nie
wykorzystuje pliku formatu \code{.mem}. Wymagane pliki (np. \code{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 \code{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 \cmdname{initex}
i~\cmdname{inimf} (ale nie inne warianty \cmdname{ini*}).

\subsubsection{Wydanie 2012}

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

Dla parametru \cs{XeTeXdashbreakstate} (\code{xetex} i~\code{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, Lua\TeX, itp.
Chcąc zachować dotychczasowe dokładne miejsca łamania,
pliki kompilowane programem \XeTeX\ wymagają zatem użycia polecenia
\cs{XeTeXdashbreakstate=0}.

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

Dotychczas program \code{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 \TL,
domyślnie są włączane do tworzonego przez \code{dvips} pliku.

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

Plik konfiguracyjny \code{texmf.cnf} znajdywany jest także
w~drzewie katalogów \filename{../texmf-local}, np.
\filename{/usr/local/texlive/texmf-local/web2c/texmf.cnf}.

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

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

\subsubsection{Wydanie 2013}

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

W programie \MP{} udostępniono zapis do formatu PNG i~dodane wsparcie dla
operacji zmiennoprzecinkowych (IEEE double).

Lua\TeX{} zaktualizowano do wersji 5.2 Lua, oraz dołączono nową bibliotekę
\code{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):
\begin{itemize*}
\item 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);
\item biblioteki Graphite2 i~HarfBuzz zastąpiły SilGraphite dla układu
 Graphite;
\item dla komputerów Mac użyto mechanizmu Core Text, zamiast (zarzuconego)
 ATSUI;
\item w wypadku znalezienia identycznych nazw fontów w~różnych
 formatach, program użyje fontów TrueType/OpenType, zamiast Type1;
\item naprawiano okazjonalnie występujące różnice w~znajdywaniu fontów
 przez programy \XeTeX\ i~\code{xdvipdfmx}.
\item dołączono wsparcie dla OpenType math cut-ins;
\end{itemize*}

W programie \cmdname{xdvi} zastąpiono bibliotekę do wyświetlania
\code{t1lib} przez FreeType.

W \pkgname{microtype.sty}
dodano niektóre operacje mikro-typograficzne dla
programów \XeTeX\ (protrusion) i~Lua\TeX\ (protrusion,
font expansion, tracking).

W~\cmdname{tlmgr} zastosowano operację ,,przypinania'' (ang.
\textit{pinning}) wielu repozytoriów do pobierania aktualizacji.
więcej informacji: \verb|tlmgr --help| lub strona
\url{https://tug.org/texlive/doc/tlmgr.html#MULTIPLE-REPOSITORIES}.

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

\subsubsection{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 \code{preloaded format} (zamiast \code{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.

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

Lua\TeX: jest kilka istotnych zmian i~poprawek w~ładowaniu fontów i~wzorców
przenoszenia. Najważniejszym dodatkiem są nowe warianty silnika:
\code{luajittex} (\url{https://foundry.supelec.fr/projects/luajittex}) oraz
pokrewne \code{texluajit} and \code{texluajitc}. Wykorzystują one
Lua do kompilacji do kodu maszynowego (ang. \emph{just-in-time compilation};
szczegóły na ten temat zawiera artykuł na stronie
\url{https://tug.org/TUGboat/tb34-1/tb106scarso.pdf}).
\code{luajittex} jest nadal w~fazie rozwoju, nie jest dostępny dla wszystkich
platform i~jest znacznie mniej stabilny niż \code{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 (\emph{compatibility
decomposition}); preferowane jest korzystanie z~fontów OpenType, zamiast
fontów Graphite, dla zapewnienia zgodności w~poprzednimi wersjami \XeTeX-a.

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

Narzędzie Con\TeX{}t-a \cmdname{pstopdf} zostanie usunięte jakiś czas po
opublikowaniu tego wydania \TL{} 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 \code{mtxrun --script pstopdf}.

Programy \cmdname{psutils} zostały w~istotny sposób zmienione przez nowego
opiekuna. W~rezultacie kilka rzadko używanych narzędzi (\code{fix*},
\code{getafm}, \code{psmerge}, \code{showchar}) znajdziemy teraz
tylko w~katalogu \dirname{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 \code{psjoin}.

Z~pochodnej z~\TL{} dystrybucji Mac\TeX\ (część~\ref{sec:macosx}) 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 \code{tex4ht.env}
usunięto pochodzący z~ImageMagick program \cmdname{convert}, ponieważ program
\TeX4ht korzysta bezpośrednio z programu Ghostscript.

Z~kolekcji \pkgname{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 \pkgname{x86\_64-cygwin}, usunięto
programy dla platformy \pkgname{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:
\url{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.

\subsubsection{Wydanie 2015}

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

Obecnie \LaTeXe\ 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.

pdf\TeX: poprawiono wsparcie dla plików {JPEG} Exif oraz {JFIF} dla
zgodności z~programem \prog{xpdf}~3.04.

Lua\TeX: dołączono nową bibliotekę \pkgname{newtokenlib} do skanowania
żetonów (ang. \emph{token}); poprawiono ponadto generator liczb losowych
\code{normal} i~inne drobne błędy.

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

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

Mac\TeX:\ uaktualniono dołączony pakiet Ghostscript dla wparcia {CJK}.
Tzw. \textit{The \TeX\ Distribution Preference Pane} działa obecnie w
Yosemite (\macOS~10.10).

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

Usunięto programy dla platform \pkgname{*-kfreebsd}, ponieważ \TL{} jest
obecnie łatwo dostępny poprzez ich mechanizmy aktualizacji.

% 
\subsubsection{Wydanie 2016}

Lua\TeX: ogólne zmiany dotyczące poleceń podstawowych (\textit{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  ,,Lua\TeX\ 0.90 backend changes for PDF and more''
(\url{https://tug.org/TUGboat/tb37-1/tb115hagen-pdf.pdf}); szczegóły można
znaleźć w~podręczniku Lua\TeX-a \OnCD{texmf-dist/doc/luatex/base/luatex.pdf}.

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

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

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

pdf\TeX: nowe polecenia podstawowe \cs{pdfinfoomitdate},
\cs{pdftrailerid}, \cs{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 \cs{XeTeXhyphenatablelength},
\cs{XeTeXgenerateactualtext}, \cs{XeTeXinterwordspaceshaping}; ograniczenie
liczby klas znaków powiększono do 4096; wartość bajtu identyfikacyjnego
w~pliku DVI powiększono o~1.

Inne programy:
\begin{itemize*}
 \item \code{gregorio} jest nowym programem, częścią pakietu
\code{gregoriotex} służącego do składu partytur śpiewu greogriańskiego;
włączono go domyślnie w~\code{shell\_escape\_commands}.
\item \code{upmendex} jest programem generującym skorowidze, w~znacznym
stopniu zgodnym z~programem \code{makeindex}, obsługującym m.in. sortowanie
unikodowe.
 \item \code{afm2tfm} teraz jedynie dopasowuje wysokości związane
z~pozycjonowaniem akcentów; nowa opcja \code{-a} powoduje pominięcie
wszystkich dopasowań.
 \item \code{ps2pk} obsługuje rozszerzone fonty PK/GF.
\end{itemize*}

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

Infrastruktura: plik konfiguracyjny \code{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 \TL. Jeżeli usługa
GPG nie jest dostępna, to instalacja bądź aktualizacja przebiega jak
dotychczas.

Binaria dla platform \code{alpha-linux} i~\code{mipsel-linux} zostały
usunięte.

\subsubsection{Wydanie 2017}


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

pdf\TeX: 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 \cs{pdfpageattr}
zawiera napis \code{/MediaBox}, to pomija się  wyjście domyślnego
\code{/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~\code{dvipdfmx} i~z~oczekiwaniami pakietu; opcja \code{-L0}
(\code{L0} w~ustawieniach konfiguracyjnych)
przywraca poprzednie zachowanie, w~którym
decydowało pierwsze ustalenie formatu papieru.

ep\TeX, eup\TeX: Nowe polecenia: \cs{pdfuniformdeviate},
\cs{pdfnormaldeviate}, \cs{pdfrandomseed}, \cs{pdfsetrandomseed},
\cs{pdfelapsedtime}, \cs{pdfresettimer} zapożyczono z~pdf\TeX-a.

Mac\TeX:\ Począwszy od tego roku będzie zapewniana obsługa -- pod nazwą
|x86_64-darwin| -- jedynie tych wersji Mac\TeX-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~Mac\TeX-u, są one jednak wciąż dostępne w~\TL
(|x86_64-darwinlegacy|, \code{i386-darwin}, \code{powerpc-darwin}).

Infrastruktura: Drzewo \envname{TEXMFLOCAL} jest teraz domyślnie
przeszukiwane przed \envname{TEXMFSYSCONFIG}
i~\envname{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 \code{tlmgr} udostępnia teraz tryb \code{shell}
-- do użycia interaktywnego i~skryptowego -- jak też nowe zadanie
\code{conf auxtrees} -- do łatwego dodawania i~usuwania dodatkowych
drzew.

\code{updmap} and \code{fmtutil}: Skrypty te ostrzegają teraz, jeśli
wywołano je bez jawnego podania tzw. trybu systemowego
(\code{updmap-sys}, \code{fmtutil-sys} bądź opcji \code{-sys}),
lub trybu użytkownika
(\code{updmap-user}, \code{fmtutil-user} bądź opcji \code{-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:
\url{https://tug.org/texlive/scripts-sys-user.html}.

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

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

Programy pomocnicze: \code{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 (\emph{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 Mac\TeX;
innych zmian nie ma.


\subsubsection{Wydanie 2018}
%\label{sec:tlcurrent}

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

ep\TeX, eup\TeX: Nowe polecenie pierwotne \cs{epTeXversion}.

Lua\TeX: Przygotowanie do przejścia w 2019 r. na wersję  Lua 5.3: binaria
\code{luatex53} są dostępne dla większości platform, ale przed uruchomieniem muszą zostać przenazywane   na
\code{luatex}. Można też użyć plików \ConTeXt\ Garden
(\url{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 \cs{pdfprimitive} i~pokrewne.

Mac\TeX:\ 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, \TL Utility, i TeXShop) oraz katalogi z dodatkowymi narzędziami i dokumentacją.

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

Platformy:
\begin{itemize*}
\item
Usunięte: \code{armel-linux}, \code{powerpc-linux}.

\item \code{x86\_64-darwin} obsługuje 10.10--10.13
(Yosemite, El~Capitan, Sierra, and High~Sierra).

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

\item Windows: XP nie jest już obsługiwane. %is no longer supported.
\end{itemize*}


\subsubsection{Wydanie 2019}

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

ep\TeX, eup\TeX: Nowe polecenia pierwotne \cs{readpapersizespecial} i~\cs{expanded}.

Lua\TeX: 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 \code{r-mpost} jest rozpoznawane jako alias do wywołania z~opcją
\code{--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.

pdf\TeX: Nowe polecenie pierwotne \cs{expanded}; jeżeli nowy parametr pierwotny
\cs{pdfomitcharset} jest ustawiony na 1, to  sekwencja \code{/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 \cs{expanded},
\cs{creationdate},
\cs{elapsedtime},
\cs{filemoddate},
\cs{filedump},
\cs{filesize},
\cs{resettimer},
\cs{normaldeviate},
\cs{uniformdeviate},
\cs{randomseed}; rozwinięcie \cs{Ucharcat} do tworzenia aktywnych znaków.

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

\code{install-tl}: Nowa opcja  \code{-gui} (bez argumentu) jest domyślna dla Windows i Macs i~uruchamia nowy tryb graficzny Tcl/TK (patrz część~\ref{sec:basic} i~\ref{sec:graphical-inst}).

Narzędzia:
\begin{itemize*}
\item implementacją CWEB w \TL\  jest teraz \code{cwebbin}
  (\url{https://ctan.org/pkg/cwebbin}), ze wsparciem dla wielu języków, włącznie
  z~programem \code{ctwill} do trworzenia miniindeksów.

\item \code{chkdvifont}: podaje informacje o fontach z plików \dvi{} files, także
  z~plików tfm/ofm, vf, gf, pk.

\item \code{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.
\end{itemize*}

Mac\TeX:\ \code{x86\_64-darwin} obsługuje 10.12 i wyższe (Sierra,
High Sierra, Mojave);\\ \code{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 \code{sparc-solaris}.


\subsubsection{Wydanie 2020}

Ogólnie: \begin{itemize}
\item We wszystkich silnikach \TeX-a, włączając \texttt{tex},
instrukcja pierwotna \cs{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 Lua\TeX-u; teraz jest dostępny we wszystkich
silnikach. Znaki ASCII podwójnego cudzysłowu (\texttt{"}) są usuwane z
nazwy pliku, ale tokenizacja pozostawia je poza nią.  Nie wpływa to na
\LaTeX-owe polecenie \cs{input}, gdyż makro to jest redefinicją
standardowej instrukcji pierwotnej \cs{input}.

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

 \item 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
  (\textsl{\LaTeX\ News \#31},
\url{https://latex-project.org/news}).
\end{itemize}

ep\TeX, eup\TeX: Nowe polecenia pierwotne \cs{Uchar}, \cs{Ucharcat},
\cs{current(x)spacingmode}, \cs{ifincsname}; poprawione \cs{fontchar??} i~\cs{iffontchar}. Tylko dla eup\TeX: \cs{currentcjktoken}.

Lua\TeX: Zintegrowanie z biblioteką HarfBuzz dostępną jako nowy silnik \texttt{luahbtex} (używany przez \texttt{lualatex}) i~\texttt{luajithbtex}.
Nowe polecenia pierwotne: \cs{eTeXgluestretch}, \cs{eTeXglueshrink},
\cs{eTeXglueorder}.

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

p\TeX: Nowe polecenia pierwotne \cs{ifjfont}, \cs{iftfont}. Także w ep\TeX,
up\TeX, eup\TeX.

\XeTeX: Poprawiono \cs{Umathchardef}, \cs{XeTeXinterchartoks}, \cs{pdfsavepos}.

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

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

\code{tlmgr} i infrastruktura:
\begin{itemize*}
\item Automatycznie ponawia (raz) ładowanie pakietów, których nie udało się załadować wcześniej.
\item Nowa opcja \texttt{tlmgr check texmfdbs}, do sprawdzania poprawności plików \texttt{ls-R} i~specyfikacji \texttt{!!} dla każdego drzewa.
 \item Używa wersjonowanych nazw plików dla spakowanych pakietów, jak \\ w~\texttt{tlnet/archive/\textsl{pkgname}.rNNN.tar.xz}; zmiana ta powinna być niezauważalna  dla użytkowników, ale   w dystrybucji jest istotna.
\item Data \texttt{catalogue-date} nie  powiela informacji zawartych w \TeX~Catalogue, gdyż były one bez związku z aktualizacjami pakietów.
\end{itemize*}

\subsubsection{Wydanie 2021}
%
%\htmlanchor{news}
%\subsection{Wydanie aktualne: 2021}
%\label{sec:tlcurrent}

Ogólnie:
\begin{itemize}
\item Donald Knuth przeprowadził zaplanowany na początek 2021~r. przegląd \TeX-a i~Metafonta.
Powstałe zmiany zostały włączone (\url{https://tug.org/TUGboat/tb42-1/tb130knuth-tuneup21.pdf}).
Są one również dostępne na CTAN jako pakiety \code{knuth-dist} and \code{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.

\item Wyjątek w~oryginalnym \TeX-u: jeśli \cs{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 ({\em hex}\/).

\item Wyjątek w~oryginalnym \TeX-u: nowy całkowitoliczbowy parametr \cs{tracingstacklevels}
jeśli dodatni i~\cs{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 $\ge$ wartości
parametru.

\end{itemize}

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

Lua\TeX:
\begin{itemize*}
\item Lua 5.3.6
\item Użyto callback dla poziomu zagnieżdżenia w \cs{tracingmacros} jako uogólnionego wariantu
nowego parametru \TeX-owego \cs{tracingstacklevels}.
\item Znaki matematyczne są znakowane ({\em mark}\/) aby wyłączyć je z przetwarzania tekstowego.
\item Usunięto width/ic (korektę italikową) w tradycyjnym przetwarzaniu matematyki.
\end{itemize*}

MetaPost:
\begin{itemize*}
\item wsparcie zmiennej środowiskowej |SOURCE_DATE_EPOCH| umożliwia uzyskiwanie powtarzalnych wyników.
\item Wyeliminowanie błędnego końcowego znaku \texttt{\%} w~\texttt{mpto}.
\item Udokumentowano opcję \texttt{-T}, inne poprawki w~podręczniku.
\item Zmieniono wartość \texttt{epsilon} w~trybach binarnym i~dziesiętnym; teraz
|mp_solve_rising_cubic| działa zgodnie z~oczekiwaniami.
\end{itemize*}

 pdf\TeX{}:
\begin{itemize*}
\item Dodano nowe  polecenia pierwotne \cs{pdfrunninglinkoff}
i~\cs{pdfrunninglinkon}; np. dla wyłączenia generowania łączy
w~nagłówkach czy stopkach.
\item Ostrzeżenia zamiast przerwania przebiegu gdy \cs{pdfendlink} znajdzie się
w innym poziomie zagnieżdżenia niż \cs{pdfstartlink}.
\item Wypisywanie przypisań \cs{pdfglyphtounicode} do pliku \texttt{fmt}.
\item Kod źródłowy: usunięto kod współpracujący z \texttt{poppler}-em, ponieważ zbyt wiele
wysiłku wymagała synchronizacja z~oryginałem ({\em with upstream}\/).
W niemodyfikowanym ({\em native}\/) \TL, pdf\TeX\ zawsze używał
\texttt{libs/xpdf}, który jest okrojonym i~zaadoptowanym kodem \texttt{xpdf}.
\end{itemize*}

Xe\TeX{}: Poprawki kerningu w~trybie matematycznym.

Dvipdfmx: \begin{itemize*}
\item 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ć \verb|-i dvipdfmx-unsafe.cfg|.
    Użycie \verb|unsafe| jest
    konieczne przy użyciu PSTricks z~\XeTeX-em, np. w~następujący sposób:\hfill\break
    \verb|xetex -output-driver="xdvipdfmx -i dvipdfmx-unsafe.cfg -q -E" ...|
\item Jeśli plik graficzny nie został znaleziony, zakończ z niezerowym kodem powrotu.
\item Rozszerzono składnię \texttt{special} dla polepszenia obsługi kolorów.
\item Polecenia \texttt{special} do manipulowania |ExtGState|.
\item Polecenia \texttt{special} służące kompatybilności \code{pdfcolorstack} i~\code{pdffontattr}.
\item Eksperymentalny kod wspierający rozszerzony |fnt_def| w~\code{dviluatex}.
%\item Support new feature of virtual font to fallback Japanese font definition.
\item Wsparcie dla nowej własności fontów wirtualnych dla japońskich definicji fontów zastępczych ({\em fallback}\/).
\end{itemize*}

Mac\TeX{}: Mac\TeX{} i~jego nowy folder z~binariami \texttt{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
\texttt{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~\texttt{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
({\em signed with a hardened runtime}\/) i~w~związku z~tym zostały
w~tym roku włączone do Mac\TeX{}-a.

\code{tlmgr} i~infrastruktura:
\begin{itemize*}
\item utrzymywana jest tylko jedna kopia bezpieczeństwa głównego repozytorium
\texttt{texlive.tlpdb};
\item polepszono przenoszalność pomiędzy systemami i~wersjami~Perl-a;
\item \texttt{tlmgr info} raportuje nowe pola \texttt{lcat-*} i~\texttt{rcat-*}
danych odpowiednio lokalnego i zdalnego katalogów;
\item do nowego pliku log \texttt{texmf-var/web2c/tlmgr-commands.log} przesunięto
pełne raportowanie podkomend.
\end{itemize*}

 
\subsubsection{Wydanie  2022}

Ogólnie:
\begin{itemize}
\item  Nowy silnik \code{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 \TL.
\item \code{tangle}, \code{weave}: obsługuje opcjonalny trzeci argument
określający plik wyjściowy.
\item Dołączono program Knutha \code{twill} do tworzenia mini-indeksów dla oryginalnych programów \texttt{WEB}-owych.
 \end{itemize}
 
 Rozszerzenia między silnikami (z wyjątkiem oryginalnych \TeX{}, Aleph, i~hi\TeX{}):
\begin{itemize}
\item Dodano nowe polecenie pierwotne \cs{showstream} przekierowujące wynik \cs{show} do pliku.
\item Dodano nowe polecenia pierwotne \cs{partokenname} i~\cs{partokencontext} pozwalające nadpisać nazwę tokena \cs{par} generującego puste linie, koniec pudełka (vbox), itp.
\end{itemize}

ep\TeX{}, eup\TeX{}: \begin{itemize*}\raggedright
\item Nowe polecenia pierwotne: \cs{lastnodefont}, \cs{suppresslongerror},
\cs{suppressoutererror}, \cs{suppressmathparerror}.
\item Rozszerzenie pdf\TeX-a  \cs{vadjust pre} jest już dostępne.
\end{itemize*}

Lua\TeX{}: \begin{itemize*}
\item Wsparcie   strukturalnych destynacji z PDF 2.0. 
\item PNG /Smask dla PDF 2.0.
\item  Dostępny interfejs zmiennych czcionek dla  \code{luahbtex}. 
\item  Różne domyślne style pierwiastków w trybie mathdefaultsmode.
\item Optionally block selected discretionary creation.
\item Ulepszenie implementacji fontów TrueType.
\item Bardziej skuteczna alokacja  \cs{fontdimen}.
\item Ignoruje akapity zawierające tylko lokalny węzeł \code{par}, a następnie węzły synchronizacji kierunku.

\end{itemize*}


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

pdf\TeX{}: \begin{itemize*}\raggedright
\item Wsparcie   strukturalnych destynacji z PDF 2.0.
\item Dla fontów z dodatkowymi odstępami między literami (letterspaced fonts), używa bezpośrednio    \cs{fontdimen}6, jeśli podany. 
\item Ostrzeżenia zawsze rozpoczynają się  od początku linii. 
\item W przypadku znaków z automatycznym  
 kerningiem (\cs{pdfappendkern} i~\cs{pdfprependkern}), nadal występuje wypukłość;   podobnie automatyczny kerning dotyczy jawnych i niejawnych łączników.  
\end{itemize*}

p\TeX{}\ et al.: \begin{itemize*}
\item Istotna aktualizacja p\TeX-a do wersji 4.0.0 w celu lepszej obsługi \LaTeX-a.
\item Nowe polecenia wbudowane \cs{ptexlineendmode} i \cs{toucs}.
\item \cs{ucs} (poprzednio dostępny w~uptex i~euptex) teraz  dostępny również w~p\TeX\ i~ep\TeX.
\item Rozróżnianie znaków 8-bitowych i~znaków japońskich -- patrz artykuł  Hironori Kitagawy w~TUGboat  (\url{https://tug.org/TUGboat/tb41-3/tb129kitagawa-char.pdf}).
\end{itemize*}

Xe\TeX{}: Poprawione skrypty \texttt{xetex-unsafe} i~\texttt{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\AllTeX{}.

Dvipdfmx: \begin{itemize*}
\item Wsparcie dla PSTricks  nie wymagające użycia \texttt{-dNOSAFER}.
\item Opcja \texttt{-r} do ustawiania rozdzielczości fontów bitmapowych   jest znowu aktywna.
\end{itemize*}

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

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

\code{tlmgr} i infrastruktura: \begin{itemize*}
\item dla \code{mirror.ctan.org} używa domyślnie https.
\item używa  \code{TEXMFROOT} zamiast \code{SELFAUTOPARENT} dla łatwiejszej relokacji.
\item \code{install-tl}: jeśli pobieranie lub instalacja konkretnego pakietu  nie powiedzie się, kontynuuje proces automatycznie, a~na koniec  ponawia próbę, ale tylko raz.
\end{itemize*}

Mac\TeX{}: Mac\TeX{} i folder z jego binariami \texttt{universal-darwin} wymaga obecności \macOS 10.14 lub wyższego (Mojave, Catalina, Big~Sur, Monterey). 
Dostępne tylko dla Unixowego \texttt{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.
 
 
 \htmlanchor{news}
\subsection{Wydanie 2023}
\label{sec:tlcurrent}

Windows:
Tak jak zapowiadaliśmy, \TL{} zawiera teraz binaria dla Windows 64-bitowych, zamiast dla 32-bitowych. Nową nazwą katalogu jest \texttt{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ę \TL{} dla Windows (\url{https://tug.org/texlive/windows.html}).

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


\noindent ep\TeX{}, eup\TeX{}:\begin{itemize*}
\item ,,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 p\TeX{} wymienionych poniżej.
\item Nowe polecenia pierwotne: \cs{tojis}, \cs{ptextracingfonts},
\cs{ptexfontname}.
\item Dla \cs{font}, nowa składnia  JIS/UCS jest obsługiwana.
\end{itemize*}

\noindent Lua\TeX: \begin{itemize*}
\item Nowe polecenie pierwotne \cs{variablefam} pozwalające znakom matematycznym zachować swoją klasę jednocześnie z adaptacją do użytej rodziny fontów.
\item Ulepszono pole przypisu  r2l % improved r2l annotation areas
\item Rozszerzenia między silnikami ,,late \cs{special}'' opisane powyżej.
\end{itemize*}

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

\noindent pdf\TeX{}: \begin{itemize*}
\item Nowe polecenie pierwotne \cs{pdfomitinfodict} żeby ominąć zupełnie słownik  \texttt{/Info}.
\item Nowe polecenie pierwotne \cs{pdfomitprocset} aby kontrolować pomijanie tablicy \texttt{/ProcSet}: \texttt{/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. 
\item Z \cs{pdfinterwordspaceon}, jeżeli w bieżącym kodowaniu na miejscu 32 znajduje się znak \texttt{/space}, w przeciwnym wypadku użyty jest znak 
  \texttt{/space} z nowego domyślnego fontu \texttt{pdftexspace}.  Ten domyślny font może być nadpisany przez nowe polecenie pierwotne 
\cs{pdfspacefont}. Ta sama nowa procedura jest użyta dla \cs{pdffakespace}.
\end{itemize*} 

\noindent p\TeX{} i inni: \begin{itemize*}
\item Jak wspomnieliśmy powyżej,  teraz  \texttt{ptex} uruchamia \texttt{eptex} w trybie zgodności.

\item Narzędzia p\TeX{}   (pbibtex, pdvitype, ppltotf, ptftopl) też  działają w trybie zgodności.
\end{itemize*}

\noindent Xe\TeX: poprawiony błąd w obliczaniu \cs{topskip} i \cs{splittopskip}
kiedy \cs{XeTeXupwardsmode} jest aktywny; opisany powyżej dla wszystkich silników
,,late \cs{special}''.

\noindent Dvipdfmx: nowy parametr \texttt{--pdfm-str-utf8} do tworzenia pdfmark i/lub bookmark.

\noindent \BibTeX{}u: \begin{itemize*}
\item Ten wariant Bib\TeX{} jest w większości  kompatybilny z   \BibTeX,
 z lepszym (opartym na Unicode) wspomaganiem wielu języków. Mamy go w \TL{} od kilku lat. 
\item 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.
\end{itemize*}

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

\noindent \code{tlmgr} i infrastruktura: \begin{itemize*}
\item domyślny dla interfejsu tekstowego na \macOS,
\item instaluje najpierw podstawowe pakiety,  następnie  pozostałe,
\item sprawdza ilość  potrzebnego miejsca na dysku.
\end{itemize*}

\noindent Mac\TeX{}: \begin{itemize*}
\item Mac\TeX{} i jego katalog binarów \texttt{universal-darwin}
wymaga  \macOS\ 10.14 lub wyższego (Mojave, Catalina, Big~Sur, Monterey,
Ventura). Katalog binarów  \texttt{x86\_64-darwinlegacy}, dostępny tylko z~Unix \texttt{install-tl}, wspiera 10.6 (Snow~Leopard) i późniejsze.

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

\item Katalog \texttt{Extras} o dodatkowych programach  \TeX-owych znajdujących się na DVD został zastąpiony dokumentem zawierającym linki do stron z plikami do pobrania. 
\end{itemize*}

\noindent Platforms: \begin{itemize*}
\item Jak wspomniano powyżej,   nowy katalog z binariami dla \texttt{windows} zawiera  binaria dla 64-bit Windows i 
\item katalog \texttt{bin/win32} został usunięty, gdyż nie można obsługiwać równolegle  Windows  32-bit i 64-bit.
\item Również katalog z binariami dla \texttt{i386-cygwin} został usunięty, ponieważ    Cygwin nie wspiera już i386.
\end{itemize*}



%\newpage % zbyt mało tekstu przepływało na ostatnią stronę ...
\subsection{Przyszłe wersje}

\emph{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: \url{https://tug.org/texlive/contribute.html}.


Prosimy o~przesyłanie poprawek, sugestii i~uzupełnień oraz deklaracji
pomocy w~opracowywaniu kolejnych edycji pod adres:
\begin{quote}
\email{tex-live@tug.org}\\
\url{https://tug.org/texlive}
\end{quote}

\medskip
\noindent \textsl{Przyjemnego \TeX-owania!}

\end{document}

