% $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, Jerzy Ludwichowski},% 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{} 2021}} } \author{Karl Berry\\[2mm] tłumaczenie: Zofia Walczak\\[2mm] tłumaczenie 2021: Jerzy Ludwichowski\\[3mm] \url{https://tug.org/texlive/} } \date{Marzec 2021 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 \GNU/Linux, różnych wersji Unix, \MacOSX oraz Windows. \TL{} można ściągnąć z~sieci bądź otrzymać na płytce \DVD \TK{}, którą otrzymują członkowie odpowiedniej Grupy Użytkowników Systemu \TeX{}. Część \ref{sec:tl-coll-dists} omawia pokrótce zawartość tej płytki. Zarówno \TL{}, jak i \TK{} powstały dzięki zbiorowemu wysiłkowi 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, \MacOSX i~Cyg\-win. 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 również powinien zadziałać, ale \TL{} nie może już być instalowany w~systemach Windows XP i~wcześniejszych. \TL{} nie zawiera osobnych binariów 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 \MacOSX. \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 twardym dysku. Nie można uruchomić \TL{} bezpośrednio z~\TK{} \DVD{} albo z~jej obrazu, ale można przygotować instalację przenośną np. na pendrivie (patrz część~\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} (co jest trybem domyślnym dla Windows i~MacOSX) lub w~trybie tekstowym z~opcją \code{-gui=text} (co jest trybem domyślnym 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. 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~\TeX\ Live, nie zawsze osiągają ten sam poziom. Jak zawsze, należy być ostrożnym przy uruchamianiu programów z~danymi pochodzącymi z~niepewnych źródeł. Dla zwiększenia stopnia bezpieczeństwa zalecamy stosowanie podczas pracy nowych podfolderów. Konieczność zachowania staranności jest szczególnie ważna w systemie Windows, ponieważ niezależnie od zawartości ścieżki przeszukiwania poszukuje on programów zawsze najpierw w bieżącym folderze. To zachowanie systemu otwiera szerokie możliwości ataku. Usunęliśmy wiele luk, lecz niewątpliwie niektóre jeszcze pozostały, szczególnie przy uruchamianiu programów pochodzących z~innych źródeł. Zalecamy więc sprawdzanie bieżących folderów pod kątem obecności podejrzanych plików, w~szczególności plików wykonywalnych (binarnych lub skryptów). Zwykle nie powinno ich być, a~w~szczególności nie powinny być one tworzone w~wyniku typowego przetwarzania dokumentów. I~na koniec: \TeX\ (oraz towarzyszące mu programy) mogą, przy przetwarzaniu dokumentów, tworzyć pliki. Własność ta jest na wiele różnych sposobów podatna na nadużycia. Także w~tych przypadkach, przetwarzanie nieznanych dokumentów w~nowych podfolderach jest najlepszym znanym sposobem zabezpieczenia. %tutaj jest dodany cały akapit 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 [\TeX{} FAQ] \TeX-owy FAQ jest obszernym zbiorem odpowiedzi na wiele pytań, od najprostszych do najbardziej zaawansowanych. Na \TL{} znajdziesz go w~katalogu \OnCD{texmf-dist/doc/generic/FAQ-en/}, a~w~sieci znajdziesz go tu: \url{https://texfaq.org}. Proponujemy najpierw zajrzeć właśnie tam. Serwis {FAQ} uruchomiono też w~języku polskim: \url{http://www.gust.org.pl/faq}. \item [\TeX{} Catalogue] Jeśli poszukujemy konkretnego pakietu, fontu, programu itp., to polecamy \TeX{} Catalogue. Jest to obszerne zestawienie wszelkich pakietów dotyczących \TeX-a. Patrz: %\OnCD{texmf-dist/doc/english/catalogue} lub %\url{https://mirror.ctan.org/help/Catalogue/}. \url{https://ctan.org/pkg/catalogue/}. \item [\TeX{} Web Resources] 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/}, %gdzie można zadać pytanie lub poszukać na nie odpowiedzi \url{https://tex.stackexchange.com} (strona typu pytanie-odpowiedź), grupa dyskusyjna Usenet \url{news:comp.text.tex}, czy lista dyskusyjna \email{texhax@tug.org}. %Pomocy w rozwiązaniu tex-owego problemu możemy szukać na stronach % użytkowników \TeX-a %\url{https://latex-community.org/}, \url{https://tex.stackexchange.com}, % grupy Usenet \url{news:comp.text.tex} czy liście dyskusyjnej \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. %Warto wspomnie� stron� \LaTeX{} Community %(\url{https://www.latex-community.org/}), forum %\url{https://www.latex-community.org/forum/} oraz %\TeX\ StackExchange (\url{https://tex.stackexchange.com/}). 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} Płytka \TK{} \DVD{} 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 \MacOSX; posiada własny program instalacyjny i~dodatkowe programy dla tego systemu, strona domowa projektu: \url{https://tug.org/mactex/}; %Przetłumaczyć %\item [Mac\TeX] for \MacOSX\ (currently named macOS by Apple, but we %continue to use the older name in this document), this adds a native %\MacOSX\ installer and other Mac applications to \TL{}. Home page: %\url{https://tug.org/mactex/}. \item [pro\TeX{}t] to, oparta na \MIKTEX-u dystrybucja dla Windows, rozszerzona o~dodatkowe narzędzia; całkowicie niezależna od \TL. \ProTeXt\ posiada własny, łatwy w~obsłudze program instalacyjny, strona domowa projektu: \url{https://tug.org/protext}; \item [CTAN] to zrzut zawartości archiwów \CTAN{}; (\url{https://www.ctan.org}). \end{description} %\end{document} \CTAN i \pkgname{protext} nie spełniają przyjętych dla \TL{} wymogów dotyczących swobody kopiowania, wobec tego należy ten fakt uwzględnić przy redystrybucji bądź modyfikacji zawartości wymienionych katalogów. \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). %% tu są zmiany \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} %% tego nie ma %Oprócz podkatalogów wymienionych powyżej katalog główny zawiera skrypty %instalacyjne oraz plik % \filename{README} w~kilku językach (również polskim). %% 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{uproszczony chiński:} \OnCD{texmf-dist/doc/texlive/texlive-zh-cn} \end{itemize*} %%%%%%%%% 284 \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. %% poniżej są różnice \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%+). \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{}: \begin{ttdescription} \item[2020] poprzednie wydanie \item[2021] wydanie aktualne \begin{ttdescription} \item [bin] ~ \begin{ttdescription} \item [i386-linux] \ \ \ \ \ programy dla \GNU/Linux (32-bit) \item [...] \item [universal-darwin] programy dla \MacOSX \item [x86\_64-linux] programy dla \GNU/Linux (64-bit) \item [win32] \ \ \quad \ \ \qquad programy dla Windows \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[.texlive2020] prywatne pliki konfiguracyjne poprzedniego wydania \item[.texlive2021] 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, xindy] wspomagają tworzenie posortowanych skorowidzów; \item[dvips] pozwala konwertować \dvi{} do \PS{}; \item[xdvi] przeglądarka plików \dvi{} dla X~Window; \item [dviconcat, dviselect] programy do manipulacji stronami w~plikach \dvi{}; \item [dvipdfmx] pozwala konwertować \dvi{} do PDF, metoda alternatywna w~stosunku do wspomnianego wyżej programu pdf\TeX{}; \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 Con\TeX{}t; \item [htlatex, \ldots \cmdname{tex4ht}]: postprocesor konwersji do HTML (i~XML i innych) dla \AllTeX-a. \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}. %\begin{figure}[tb] %\tlpng{nsis_installer}{.6\linewidth} %\caption{Ekran install-tl-windows.exe}\label{fig:nsis} %\end{figure} \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). % W~Windows instalator domyślnie startuje automatycznie % alternatywny program %\filename{install-tl-windows.exe} i~uruchomić go podwójnym kliknięciem. Po %samoczynnym rozpakowaniu zawartości ujrzymy okno przedstawione na %rys.~\ref{fig:nsis}. Znajdziemy tam trzy opcje: ,,Simple install'' (prosta %instalacja; instaluje wszystko); ,,Custom install'' (instalacja zaawansowana, %opisana w~części ~\ref{sec:wininst}) oraz ,,Unpack only'' (tylko %rozpakowanie, czyli w~wyniku otrzymamy to samo, co po rozpakowaniu %\filename{install-tl.zip}). %Plik \texttt{tlpdb/texlive.tlpdb} (wykorzystywany podczas instalacji) %zawiera spis wszystkich plików w~każdym pakiecie. %\subsection{Fonty w \protect\TL} %\label{sec:tl-fonts} % %\TL{} zawiera wiele wysokiej jako�ci fontów skalowanych. Patrz: %\url{https://tug.org/fonts} oraz %\OnCD{texmf-dist/doc/fonts/free-math-fonts-survey}. %==== \item [Instalacja z płytki \TeX{} Collection \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}), kupić płytkę w sklepie (\url{https://tug.org/store}) lub wypalić z dostępnego w sieci jej obrazu \ISO{}. Można też zamontować bezpośrednio 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 \ref{sec:dvd-install-net-updates}). \end{description} \begin{figure}[tb] \tlpng{nsis_installer}{.6\linewidth} \caption{Pierwszy krok instalacji w Windows instalator \code{.exe}}\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 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}}. Skrypt \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 %to jest w tekście dalej %dotąd Do uruchomienia w~trybie graficznym (\GUI; rys.~\ref{fig:advanced-lnx}) %ten rysunek też jest dalej wymagane jest zainstalowanie w~systemie 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} są nadal dostępne, ale teraz 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. %\begin{figure}[tb] %\tlpng{install-lnx-main}{\linewidth} %\caption{Ekran zaawansowanego programu instalacyjnego \GUI{} %(\GNU/Linux)}\label{fig:gui-main} %\end{figure} \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{\MacOSX} \label{sec:macosx} Jak wspomniano w części \ref{sec:tl-coll-dists}, dla Mac\,OS\,X{} przygotowano odrębną dystrybucję 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 \TeX-a dla \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 oraz programy są w~nim dokładnie takie same; dodano jedynie katalogi ze specyficznymi dla systemu \MacOSX\ 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). %Jeżeli potrzebujemy więcej opcji %instalacyjnych (np. wyboru konkretnych kolekcji pakietów), możemy %uruchomić alternatywny \filename{install-tl-advanced.bat}. 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} \begin{figure}[tb] \begin{boxedverbatim} Installing TeX Live 2021 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 binary platforms: 1 out of 16 set installation scheme: scheme-full customizing installation collections 40 collections out of 41, disk space required: 7172 MB directories: TEXDIR (the main TeX directory): /usr/local/texlive/2021 ... options: [ ] use letter size instead of A4 by default ... set up for portable installation Actions: start installation to hard disk

save installation profile to 'texlive.profile' and exit help quit \end{boxedverbatim} % \vskip-\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} \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} \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 (i386-cygwin) b [ ] Cygwin on x86_64 (x86_64-cygwin) c [ ] MacOSX current (10.14-) on ARM/x86_64 (universal-darwin) d [ ] MacOSX legacy (10.6-) on x86_64 (x86_64-darwinlegacy) e [ ] FreeBSD on x86_64 (amd64-freebsd) f [ ] FreeBSD on Intel x86 (i386-freebsd) g [ ] GNU/Linux on ARM64 (aarch64-linux) h [ ] GNU/Linux on ARMv6/RPi (armhf-linux) i [ ] GNU/Linux on Intel x86 (i386-linux) j [X] GNU/Linux on x86_64 (x86_64-linux) k [ ] GNU/Linux on x86_64 with musl (x86_64-linuxmusl) l [ ] NetBSD on x86_64 (amd64-netbsd) m [ ] NetBSD on Intel x86 (i386-netbsd) o [ ] Solaris on Intel x86 (i386-solaris) p [ ] Solaris on x86_64 (x86_64-solaris) s [ ] Windows (win32) \end{boxedverbatim} % \vskip-\baselineskip \caption{Wybór platformy (systemu operacyjnego)}\label{fig:bin-text} \end{figure} Rysunek \ref{fig:bin-text} pokazuje (w~trybie tekstowym) wybór platformy (systemu operacyjnego). Domyślnie instalowane są tylko programy dla bieżącej platformy, ale menu to pozwala wybrać także 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 [ ] ConTeXt g [ ] GUST h [ ] wyłącznie schemat plików -- w ogóle bez TeX-a i [ ] teTeX -- obszerniejszy niż typowy, ale mniejszy od pełnego j [ ] wybór niestandardowy \end{boxedverbatim} % \vskip-\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} \centering \tlpng{stdcoll}{.7\linewidth} \caption{Menu Collections (Kolekcje)}\label{fig:collections-gui} \end{center} \end{figure} Wybrany schemat można zmodyfikować korzystając z menu ,,Kolekcje''. Rysunek~\ref{fig:collections-gui} pokazuje okno ,,Collections'' w trybie graficznym. 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/2021} w~systemach Unix i~|%SystemDrive%\texlive\2021| 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}. 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/2021|. 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: ===============================================================================

use letter size instead of A4 by default: [ ] execution of restricted list of programs: [X] create all format files: [X] install font/macro doc tree: [X] install font/macro source tree: [X] create symlinks in standard directories: [ ] binaries to: manpages to: info to: after install, set CTAN as source for package updates: [X] \end{boxedverbatim} \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}). \item[create all format files:] (generuj pliki formatów) Zaleca się pozostawić tę opcję włączoną chociaż zbędne formaty zajmują miejsce na dysku; jeżeli tego nie zrobimy, formaty będą generowane automatycznie (w~razie potrzeby) w~prywatnych katalogach \dirname{TEXMFVAR} użytkowników, jednak gdy w~instalacji zostaną zaktualizowane np. same programy bądź wzorce przenoszenia, te w~katalogach prywatnych odświeżone nie będą; wskutek tego pliki formatów mogą utracić zgodność ze środowiskiem, w~którym są używane. \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. Tak jest w przypadku Mac\,OS\,X, 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] Jeśli 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 wykonać wtedy 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 %\filename{tar.xz}, w~podkatalogu \dirname{archive} (nawet jeśli są dostępne pliki nieskompresowane). \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{MANPATH}. Dla powłoki zgodnej z~Bourne takiej jak \prog{bash}, używając na przykład Intel x86 \GNU/Linux i~domyślnej konfiguracji, należałoby edytować plik \filename{$HOME/.profile} (lub inny pochodzący z \filename{.profile}) i~dopisać linie: \begin{sverbatim} PATH=/usr/local/texlive/2021/bin/x86_64-linux:$PATH; export PATH MANPATH=/usr/local/texlive/2021/texmf-dist/doc/man:$MANPATH; export MANPATH INFOPATH=/usr/local/texlive/2021/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/2021/bin/x86_64-linux:$PATH setenv MANPATH /usr/local/texlive/2021/texmf-dist/doc/man:$MANPATH setenv INFOPATH /usr/local/texlive/2021/texmf-dist/doc/info:$INFOPATH \end{sverbatim} 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/2021/bin/x86_64-linux \ /usr/local/texlive/2021/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 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 Mac\,OS\,X automatycznie znajdą to dowiązanie, likwidując potrzebę jakiegokolwiek działania z~naszej strony. \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. W systemach Windows fonty dostarczone z~\TL\ są automatycznie dostępne dla programu \XeTeX{} poprzez odwołanie do nazwy fontu. W~Mac\,OS\,X{} wyszukanie fontów wymaga dodatkowych kroków; patrz strona Mac\TeX\ w~sieci (\url{https://tug.org/mactex}). Dla innych systemów uniksowych należy skonfigurować system tak, aby dowolny program mógł znaleźć fonty dostarczone w~\TL. Aby to ułatwić, podczas instalacji pakietu \pkgname{xetex} tworzony jest plik konfiguracyjny fontów: \filename{TEXMFSYSVAR/fonts/conf/texlive-fontconfig.conf}. Aby udostępnić fonty \TL{} dla innych aplikacji systemu (zakładając, że mamy odpowiednie uprawnienia) należy wykonać następujące czynności: \begin{enumerate*} \item skopiować \filename{texlive-fontconfig.conf} do \dirname{/etc/fonts/conf.d/09-texlive.conf}; \item uruchomić \Ucom{fc-cache -fsv}. \end{enumerate*} Jeśli nie mamy odpowiednich uprawnień aby wykonać kroki przedstawione powyżej lub chcemy fonty \TL{} udostępnić tylko jednemu użytkownikowi, możemy: \begin{enumerate*} \item skopiować plik \filename{texlive-fontconfig.conf} do \filename{~/.fonts.conf}, gdzie \filename{~} oznacza nasz katalog domowy. \item uruchomić \Ucom{fc-cache -fv}. \end{enumerate*} 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. \subsubsection{\protect\ConTeXt{} Mark IV} \label{sec:context-mkiv} Po zainstalowaniu \TL, zarówno tzw. ,,stary'' \ConTeXt{} (Mark II), jak i~nowy \ConTeXt{} (Mark IV) powinny działać bez problemów, o~ile do aktualizacji będziemy używać wyłącznie programu \verb+tlmgr+. Ponieważ \ConTeXt{} MkIV nie stosuje biblioteki kpathsea do wyszukiwania plików, po zainstalowaniu ręcznie nowych plików (bez użycia \verb+tlmgr+) każdy użytkownik MkIV musi uruchomić: \begin{sverbatim} context --generate \end{sverbatim} aby odświeżyć dane buforowe \ConTeXt. Wygenerowane pliki zostaną zapisane w~katalogach wskazywanych przez zmienną \code{TEXMFCACHE} (domyślną wartością tej zmiennej w~\TL\ jest \verb+TEXMFSYSVAR;TEXMFVAR+). \ConTeXt\ MkIV 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 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 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 \TeX\ Live Manager (\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 się rozejrzeć; 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 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 fiontów zainstalowanych w sysytemie operacyjnym z~pominięciem jakiegokolwiek instalowania \TeX-owego. (Trzeba jednak zachwować rozwagę, ponieważ użycie fontów systemowych czyni dokumenty nieużywalnymi w~innych otoczeniach). \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 Mac\,OS\,X{} 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.) 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 osobno zainstalować przeglądarkę swojego wyboru. \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 lub utworzenie 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żytecznym: \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} \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/} \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 również dostępny dla Windows, zobacz \url{https://www.gnu.org/software/emacs/emacs.html}. \item \cmdname{Emacs with AUC\TeX} dla Windows dostępny 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} \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}[tb] \tlpng{tlshell-macos}{\linewidth} \caption{\prog{tlshell} w trybie graficznym, menu Actions (Mac\,OS\,X{})} \label{fig:tlshell} \end{figure} \begin{figure}[tb] \tlpng{tlcockpit-packages}{.8\linewidth} \caption{\prog{tlcockpit} -- tryb graficzny \prog{tlmgr}} \label{fig:tlcockpit} \end{figure} \begin{figure}[tb] \tlpng{tlmgr-gui}{\linewidth} \caption{\prog{tlmgr} w~trybie graficznym: główne okno, po ,,Wczytaj'' (\textit{Load}).} \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}. Rysunek~\ref{fig:tlshell} pokazuje \cmdname{tlshell} który jest napisany w~Tcl/Tk i~działa pod Windows i~\MacOSX{}. 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/2021/texmf-dist/ls-R... ... running fmtutil-sys --missing ... Transcript written on xelatex.log. fmtutil: /usr/local/texlive/2021/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 (\prog{tlmgr}, \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). \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; odinstalowanie 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 zwykłego użytkownika (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{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 i Ghostscript.] 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 Windowsowe 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] narzędzia z~biblioteki fontconfig; program \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, można uruchomić program \prog{fc-cache} aby otrzymać pełną informację o dostępnych fontach. \end{description} % % %Poniżej zamieszczono listę miejsc, z~których można pobrać programy %pomocnicze: % %\begin{description} %\item[Ghostscript] -- \url{https://ghostscript.com/} %\item[Perl] \url{https://www.perl.org} (uzupełniające, przydatne % pakiety należy pobrać z~zasobów CPAN \url{https://cpan.org}) %\item[ImageMagick] -- bogaty zestaw narzędzi do wsadowego przetwarzania % plików graficznych (\url{https://www.imagemagick.com}) %\item[NetPBM] -- do przetwarzania i~konwersji plików graficznych możemy % użyć alternatywnego dla \textsf{ImageMagick} programu NetPBM % (\url{https://netpbm.sourceforge.net/}) %\item[Edytory dla systemu \TeX{}] -- spory wybór programów, uwzględniających % indywidualne preferencje użytkownika (poniżej wymieniono jedynie % te działające w~systemach Windows) % \begin{itemize*} % \item \cmdname{GNU Emacs} jest dostępna wersja natywna dla systemu Windows, zob. % \url{https://www.gnu.org/software/emacs/emacs.html}. % \item \cmdname{GNU Emacs} -- w~wersji zintegrowanej z~\textsf{AucTeX} % dla Windows dostępny jest w~archiwach \CTAN; % strona domowa: \url{https://www.gnu.org/software/auctex}. %% http://www.gnu.org/software/emacs/windows/ntemacs.html) %% \item \cmdname{XEmacs} -- bardziej przyjazna wersja dla Windows %% (\url{https://www.xemacs.org/}) % \item \cmdname{LEd} -- polski edytor, dostępny % z~\url{https://www.latexeditor.org/}. % \item \cmdname{SciTE} -- edytor dostępny % z \url{https://www.scintilla.org/SciTE.html} % \item \cmdname{Texmaker} -- edytor dostępny z % \url{https://www.xm1math.net/texmaker}. %% \item \cmdname{TexMakerX} jest rozszerzeniem \cmdname{Texmaker} %% (\url{https://texmakerx.sourceforge.net}). % \item \cmdname{TeXstudio} jest rozszerzeniem \cmdname{Texmaker} o~dodatkowe % fukcje, patrz \url{https://texstudio.org/}. % \item TeXnicCenter -- kolejny, dosyć bogaty w~funkcje edytor % (\url{https://www.toolscenter.org/products/texniccenter/}) % \item \cmdname{TeXworks} -- nowy edytor, dostępny % z~\url{https://tug.org/texworks} i~instalowany wyłącznie w~Windows % jako część \TL. % \item \cmdname{Vim} -- rozbudowany i~bardzo funkcjonalny edytor, % wywodzący się z~klasycznego dla systemów Unix edytora \cmdname{vi} % %, dostępny na \TL{} w~katalogu \dirname{support/vim} % (\url{https://www.vim.org}) % \item \cmdname{WinShell} -- prosty edytor/shell % (\url{https://www.winshell.de}) % \item \cmdname{WinEdt} -- bogaty w~funkcje edytor dla \TeX-a, dostępny jako % \emph{shareware} (\url{https://www.winedt.com}) % \end{itemize*} %\end{description} % %Obszerniejszą listę programów można znaleźć na stronie %\url{https://tug.org/interest.html}. \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\|. 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} %%! UWAGA SW: cała ta część jest mocno niejasna w oryginale. T�umaczyłem %%! j� mając na uwadze og�lny sens, w niektórych miejscach doprecyzowuj�c %%! sformu�owania. Ale i tak jest, wg mnie, do bani :-) 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}. %% Chyba nie ma tego - jest dalej 2184ang - jakie� troch� inne %\section{W razie problemów} %\label{troubleshooting} % %\subsection{Co zrobi� gdy \texttt{latex} nie może znale�� potrzebnych %plików?} % %\begin{itemize} % \item Podstawowym narz�dziem do diagnozowania problemów jest program % \cmdname{kpsewhich}. Wyprowadza on informacje diagnostyczne na wyj�cie %stderr, przy czym konsole (okienka wierszy poleceń) starszych systemów %Windows nie potrafi� przekierować stderr do pliku. umożliwia to dopiero %system Windows NT i~p��niejsze, ale rozwiązanie przedstawione poniżej dzia�a %dla każdej konsoli (okienka wierszy poleceń). Ot�� dla celów diagnostycznych %można tymczasowo zdefiniować zmienną środowiska (w~oknie poleceń): %\begin{verbatim} %SET KPATHSEA_DEBUG_OUTPUT=err.log %\end{verbatim} %można równie� zadań zakres diagnostyki: %\begin{verbatim} %SET KPATHSEA_DEBUG=-1 %\end{verbatim} % %Podobnie, aby przekierować wyj�cie stderr na stdout: %\begin{verbatim} %SET KPATHSEA_DEBUG_OUTPUT=con: %\end{verbatim} %W ten sposób można skierować zarówno stderr, jak i stdout do tego samego pliku. %\item Przy za�ożeniu, że instalacj� wykonano w \path|c:/TeX|, należy % sprawdzi� (porówna�) nast�puj�ce warto�ci:\\ % {\small % \begin{tabular}{ll} % \path|kpsewhich -expand-path $SELFAUTOPARENT| & \path|c:/TeX| \\ % \path|kpsewhich -expand-path $TEXMF| & \path|c:/TeX/texmf....| \\ % \path|kpsewhich -expand-var $TEXINPUTS| & \path|.;c:/TeX/texmf-dist/tex//| % \end{tabular} %} % %jeśli w otoczeniu systemowym są zdefiniowane zmienne związane z~\TeX-em, %należy je usun��, maj� bowiem pierwsze�stwo przed tymi, %które okre�lono w~pliku \filename{texmf.cnf}. %\item Nast�pnie należy sprawdzi� (porówna�) warto�ci:\\ %{\small % \begin{tabular}{ll} % \texttt{kpsewhich cmr10.tfm} & \path|c:/TeX/texmf-dist/fonts/tfm/public/cm/cmr10.tfm|\\ % \texttt{kpsewhich latex.fmt}& \path|c:/TeX/texmf-var/web2c/pdftex/latex.fmt| % \end{tabular} %} % %jeśli podczas sprawdzania nie znaleziono odst�pstw, to \TeX{} i~programy %towarzysz�ce powinny dzia�a�. jeśli tak nie jest, to należy poeksperymentować %z opcj� \path|-debug=n| programu \path|kpsewhich| i~zweryfikować wszystkie %uzyskane warto�ci. Po zidentyfikowaniu problemu warto go zg�osi�. %\end{itemize} % dot�d %-------------------------- % don't use \Webc so the \uppercase in the headline works. \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. \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{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} \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{.../2021/texmf.cnf}, który w~wyjątkowych wypadkach możemy modyfikować. \\ Głównym plikiem konfiguracyjnym jest \file{.../2021/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|. %Dociekliwy czytelnik może być zainteresowany sposobem, w~jaki programy %znajdują plik \file{texmf.cnf}, skoro nie ma konieczności deklarowania %specyficznej zmiennej środowiskowej systemu. Otóż położenie domyślne jest %wkompilowane w~programy jako względne do ich położenia (określanego, jak %wiemy, w~ścieżce specyfikowanej przez \texttt{\$PATH}): %\path{../../texmf-dist/web2c/} bądź \path{../texmf-dist/web2c/}. Jeśli jawnie %deklarujemy zmienną \envname{TEXMFCNF}, wymagane jest podanie bezwzględnej %ścieżki. % %Podczas czytania zamieszczonego poniżej opisu formatu pliku \file{texmf.cnf}, %warto przeglądać jego zawartość. Położenie \emph{aktywnego} pliku %znajdziemy za pomocą polecenia \texttt{kpsewhich 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 %\end{document} \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{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{\%}] 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.% na przełamanie wiersza z~wyrażeniem). \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 ... \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}. %% 2018 ZW %\begin{verbatim} %SET KPATHSEA_DEBUG_OUTPUT=err.log %SET KPATHSEA_DEBUG=-1 %\end{verbatim} 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 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, ... 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 [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 Mac\,OS\,X{}; \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{i386-cygwin}, \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{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~\TeX\ Live~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 Mac\,OS\,X{} i -- jak zwykle -- aktualizację wszelkich programów i~pakietów. Ważnym zadaniem, które wykonano, było ujednolicenie plików źródłowych programów z~dystrybucją 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 \textsf{pdfetex} został domyślną ,,maszynę'' dla większości formatów (nie dotyczy to samego Plain \textsf{tex}). domyślnie, gdy uruchamiamy polecenie \textsf{latex}, \textsf{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 \textsf{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 \textsf{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 \textsf{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 Mac\,OS\,X, \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 Mac\,OS\,X\ (\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 (Mac\,OS\,X~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 Mac\,OS\,X-ów nie ma w~Mac\TeX-u, są one jednak wciąż dostępne w~\TeX\ Live (|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, \TeX\ Live 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 \TeX\ Live 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 \texttt{--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~\TeX\ Live 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*} % \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~prakytce. \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 przenaszalność 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*} \newpage % zbyt mało tekstu przepływało na ostatnią stronę ... \subsection{Przyszłe wersje} \emph{Niniejsza dystrybucja nie jest doskonała!} Planujemy kontynuować wydawanie nowych wersji i~chcielibyśmy, żeby zawierały one jeszcze więcej pomocnej dokumentacji, więcej programów użytkowych, lepsze programy instalacyjne oraz stale ulepszany i~poprawiany katalog makr i~fontów. Zadanie to jest wykonywane przez ciężko pracujących ochotników, poświęcających mnóstwo swojego wolnego czasu. Wiele jeszcze zostało do zrobienia. Jeżeli możesz pomóc, nie zastanawiaj się i~przyłącz się do nas. Patrz: \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}