% iso8859-2 % $Id: texlive-pl.tex, v. 52 2015/05/15 % 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 % (with a little help from my friends, while my guitar gently weeps ;-) % Public domain. % ---- % UWAGA dla recenzentów/tłumaczy: %%! to moje komentarze (StaW) \documentclass{article} \let\tldocenglish=0 % for live4ht.cfg \let\textsl\textit \usepackage{tex-live} \usepackage{polski} %% for PL \usepackage[latin2]{inputenc} %% for PL \usepackage[T1]{fontenc} \exhyphenpenalty=10000 %% for PL \def\Dash{---} \widowpenalty=10000 \clubpenalty=10000 %% redefined MF logo! %% for PL %\def\MF{\textlogo{META}\-\textlogo{FONT}} %% for PL %\def\MP{\textlogo{META}\-\textlogo{POST}} %% *** TP *** \def\shac{\char178} % for PL + qtmr (HTML) \def\aac{\char225} % for PL + qtmr (HTML) \def\iac{\char237} % for PL + qtmr (HTML) \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} %% ----- \begin{document} \title{\huge \textit{Przewodnik po \protect\TL{} 2015} } \author{Redakcja: Karl Berry; tłumaczenie: Staszek Wawrykiewicz \\[3mm] \url{http://tug.org/texlive/} } \date{Maj 2015} \maketitle \begin{multicols}{2} \tableofcontents %\listoftables \end{multicols} %-------------------------- \section{Wstęp}\label{sec:intro} \subsection{\TeX\ Live i \TeX\ Collection} Niniejsza dokumentacja opisuje oprogramowanie \TL{} -- dystrybucję \TeX-a wraz z~programami pomocniczymi, dostępną dla różnych wersji Unix, w~tym \acro{GNU}/Linux, \MacOSX{} i~Cygwin, 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. W~tym dokumencie omówimy głównie samą dystrybucję \TL. \TL{} zawiera skompilowane programy: \TeX{}, \LaTeXe{}, \mbox{\MF}, \MP, \BibTeX{} i~wiele innych oraz bogaty zestaw pakietów makr o~wielorakim zastosowaniu, a także fonty i~dokumentacje. Wszystko to umożliwia skład publikacji w~wielu językach. Pakiety zawarte w~\TL{} są regularnie aktualizowane na serwerach \acro{CTAN} (\textit{Comprehensive TeX Archive Network}), które gromadzą wszelkie zasoby dotyczące systemu \TeX: \url{http://www.ctan.org}. Lista najważniejszych zmian dokonanych w~tej edycji \TL{} znajduje się w~części~\ref{sec:tlcurrent}, na str.~\pageref{sec:tlcurrent}. Nie opisujemy tu, czym jest system \TeX{}, a~jedynie kwestię instalacji i~konfiguracji oprogramowania \TL. Początkujący użytkownicy mogą się zapoznać z~podstawowymi pojęciami np. w~artykule {\it Przewodnik po systemie \TeX\/}: \OnCD{texmf-dist/doc/generic/tex-virtual-academy-pl/cototex.html}. \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 są tylko XP i nowsze wersje. %(choć w Windows 2000 \TL{} też w~zasadzie działa). Wprawdzie brak jest oprogramowania dedykowanego dla wersji 64-bitowych, ale programy 32-bitowe działają na nich równie sprawnie. 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{http://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. Posiadając płytkę \TK{} \DVD{} (lub jej obraz w~pliku \code{.iso}) możemy zaistalować \TL{} na twardym dysku, lub przygotować przenośną instalację, np. na pen drivie (patrz część~\ref{sec:portable-tl}). Szczegółowy opis instalacji \TL{} znajduje się w dalszych rozdziałach tego dokumentu, tu podamy skrócony przepis: \begin{itemize*} \item program instalacyjny \filename{install-tl} może działać w~kilku trybach: tzw. ,,wizard'' (graficznym, parametr \code{-gui=wizard}) -- domyślnym dla Windows; tekstowym (\code{-gui=text}, domyślnym dla Unix/Linux) i~graficznym trybie ,,expert'' (parametr \code{-gui=perltk}). Dla wygody użytkowników Windows uruchomienie \filename{install-tl-advanced.bat} przełącza instalator w tryb ,,expert''. %tryb można wymusić podając parametr \code{-gui} %bądź \code{-no-gui}; \item jednym z~instalowanych programów jest \prog{tlmgr} (menedżer \TL{}), który również można uruchamiać w~trybie tekstowym bądź graficznym; pozwala on doinstalować lub usunąć pakiety, aktualizować je z~sieci, a także wykonać 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 uzyskania najwyższego stopnia bezpieczeństwa zalecamy stosowania 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. \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 znaleźć się mogą mniej lub bardziej doświadczeni użytkownicy. (Jeśli preferujemy komercyjne wsparcie techniczne, możemy zamiast \TL{} zakupić system u~jednego z~dostawców, których listę można znaleźć na \url{http://tug.org/interest.html#vendors}.) Oto lista źródeł pomocy, w~kolejności przez nas rekomendowanej: \begin{description} \item [\TeX{} \acro{FAQ}] \TeX-owy \acro{FAQ} jest obszernym zbiorem odpowiedzi na wiele pytań, od najprostszych do najbardziej zaawansowanych. Jest on załączony na \TL{} w~katalogu \OnCD{texmf-dist/doc/generic/FAQ-en/}, a~także dostępny w~sieci: \url{http://www.tex.ac.uk/faq}. Proponujemy tam najpierw zajrzeć. Uruchomiono też serwis \acro{FAQ} w~języku polskim: \url{http://faq.gust.org.pl}. \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{http://mirror.ctan.org/help/Catalogue/}. \item [\TeX{} Web Resources] Strona \url{http://tug.org/interest.html} zawiera wiele odsyłaczy, w~szczególności do książek, podręczników i~artykułów poświęconych wszelkim aspektom pracy z~systemem \TeX. \item [archiwa pomocy] Główne fora pomocy to grupa Usenet \url{news:comp.text.tex}, lista dyskusyjna \email{texhax@tug.org} oraz strona \url{http://tex.stackexchange.com}. Warto przeszukać archiwa list dyskusyjnych, zawierające wiele pytań i odpowiedzi zbieranych przez wiele lat: \url{http://groups.google.com/group/comp.text.tex/topics} oraz \url{http://tug.org/mail-archives/texhax}. Nie zaszkodzi skorzystanie z~wyszukiwarki, np. \url{http://www.google.com}. \item [wysyłanie pytań] Jeśli nadal nie znajdujemy rozwiązania problemu, możemy wysłać pytanie do \dirname{comp.text.tex}, skorzystać z~Google, czytnika wiadomości bądź pisząc list na adres \email{texhax@tug.org}. Przedtem jednak \emph{należy} zapoznać się z~poradami dotyczącymi sposobu zadawania pytań, zawartymi w~\acro{FAQ}: \url{http://www.tex.ac.uk/cgi-bin/texfaq2html?label=askquestion}. Warto wspomnieć stronę \LaTeX{} Community (\url{http://www.latex-community.org/}), forum \url{http://www.latex-community.org/forum/} oraz \TeX\ StackExchange (\url{http://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{}] Gdy chcemy zgłosić błąd bądź sugestie i~komentarze dotyczące dystrybucji \TL{}, instalacji lub dokumentacji, mamy do dyspozycji listę dyskusyjną \email{tex-live@tug.org}. Jeśli kwestia dotyczy konkretnego programu (pakietu makr itp.) z~\TL{}, to lepiej jednak skierować pytanie do osoby opiekującej się danym programem lub na specjalistyczną listę dyskusyjną. \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} \label{sec:struct-tl} Omówimy tutaj strukturę i~zawartość dystrybucji \TL{}, a~także \TK{} -- płytki \DVD, w~skład której wchodzi \TL. \subsection{\protect\TeX\protect\ Collection: \TL, pro\TeX{}t, Mac\TeX} \label{sec:tl-coll-dists} \TK{} \DVD{} zawiera: \begin{description} \item [\TL] kompletny system \TeX, który pozwala na instalację na twardym dysku lub przygotowanie przenośnej instalacji np. na pen drivie; strona domowa projektu: \url{http://tug.org/texlive/}. \item [Mac\TeX] dla systemu \MacOSX; posiada własny program instalacyjny i~dodatkowe programy dla tego systemu; strona domowa projektu: \url{http://tug.org/mactex/}; \item [pro\TeX{}t] dystrybucja dla Windows, oparta na dystrybucji \MIKTEX{}, rozszerzonej o~dodatkowe narzędzia; całkowicie niezależna od \TL; \ProTeXt\ posiada własny, łatwy w~obsłudze program instalacyjny; strona domowa projektu: \url{http://tug.org/protext}; \item [CTAN] zrzut zawartości archiwów \CTAN{}; (\url{http://www.ctan.org}). % \item [\texttt{texmf-extra}] katalog z wybranymi pakietami dodatkowymi. \end{description} \CTAN, \pkgname{protext} nie spełnia 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 \TL} \label{sec:tld} Poniżej wymieniono ważniejsze podkatalogi głównego katalogu \emph{instalacji} \TL (na płytce \TK{} \DVD{} cała dystrybucja \TL{} została umieszczona nie w~katalogu głównym, ale w~katalogu \dirname{texlive}, którego struktura nieco się różni; poniżej traktujemy katalog \dirname{texlive} jako katalog główny we wszystkich odniesieniach do instalacji \TL). \begin{ttdescription} \item[bin] skompilowane programy \TeX-owe i~pomocnicze, zorganizowane w~podkatalogach według platform systemowych; \item[readme-*.dir] krótkie omówienie z~użytecznymi odnośnikami, w kilku językach, w formacie \HTML{} i~zwykłym tekstowym; \item[source] źródła wszystkich programów, włącznie z~głównymi dystrybucjami \Webc{} \TeX-a; %\item[support] różne programy pomocnicze związane z~\TeX-em, które \emph{nie} % są domyślnie instalowane; % dla użytkowników systemów Windows dołączono ponadto szereg programów % (edytory, ,,shelle TeX-owe''), których zwykle brak w~typowej instalacji % Windows (programy te mogą być szczególnie przydatne dla początkujących); \item[texmf-dist] główne drzewo katalogów instalacji (zawiera makra, fonty i~dokumentacje; patrz: \texttt{TEXMFDIST} w~następnej części); % %\item[texmf-doc] drzewo samodzielnych dokumentacji (m.in. podręczniki itp.), % niezwiązane z~konkretnymi pakietami, zorganizowane według języków. \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} Prócz podkatalogów wymienionych powyżej, katalog główny zawiera skrypty instalacyjne oraz inne pliki informacyjne. %\filename{README}, w~formacie tekstowym lub HTML, %w~kilku językach (również polskim). Do znalezienia dokumentacji przydatne mogą być np. 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 mogą pomóc programy \cmdname{texdoc} (tekstowy) lub \cmdname{texdoctk} (graficzny). Niniejsza dokumentacja w~kilku językach znajduje się na płytce \TK{}DVD\ w~podkatalogach \dirname{texlive-doc}, zaś po instalacji w~podkatalogach \dirname{texmf-dist/doc/texlive}: \begin{itemize*} \item{uproszczony chiński:} \OnCD{texmf-dist/doc/texlive/texlive-zh-cn} \item{czeski/słowacki:} \OnCD{texmf-dist/doc/texlive/texlive-cz} \item{angielski:} \OnCD{texmf-dist/doc/texlive/texlive-en} \item{francuski:} \OnCD{texmf-dist/doc/texlive/texlive-fr} \item{niemiecki:} \OnCD{texmf-dist/doc/texlive/texlive-de} \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{włoski:} \OnCD{texmf-dist/doc/texlive/texlive-it} \end{itemize*} \subsection{Predefiniowane drzewa katalogów texmf} \label{sec:texmftrees} W tej części wymieniono wszystkie używane przez system, predefiniowane zmienne specyfikujące drzewa katalogów texmf; omówiono też ich przeznaczenie. 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 posiadać strukturę zgodną z zaleceniami \TeX\ Directory Structure (\TDS, \url{http://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. \begin{ttdescription} \item [TEXMFDIST] Drzewo katalogów zawierające niemal wszystkie pliki dystrybucji: pakiety makr, fontów, pomocnicze skrypty, dokumentacje itp. (pozostałe pliki dystrybucji, czyli programy, znajdują się w~równoległym katalogu \code{bin/}). %Drzewo to może być współdzielone z~dowolną dystybucją. \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 [TEXMFCONFIG] Lokalne drzewo katalogów wykorzystywane przez narzędzia \verb+texconfig+, \verb+updmap+ oraz \verb+fmtutil+ do przechowywania danych konfiguracyjnych (domyślnie w~ramach \envname{TEXMFHOME}). \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 [TEXMFVAR] Lokalne drzewo katalogów wykorzystywane przez \verb+texconfig+, \verb+updmap+ i~\verb+fmtutil+ do przechowywania wygenerowanych plików formatów i~map fontowych (domyślnie w~ramach \envname{TEXMFHOME}). \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 [TEXMFCACHE] Drzewa katalogów wykorzystywane przez \ConTeXt\ Mk\acro{IV} oraz Lua\LaTeX\ do przechowywania %!!!(cached) runtime data. ??? buforowanych danych z~przetwarzania; domyślna wartość w~\TL{} jest identyczna z~\code{TEXMFSYSVAR} lub, jeśli katalog jest niedostępny do zapisu, \verb+TEXMFVAR+. \end{ttdescription} \noindent Domyślny układ katalogów: \begin{description} \item[ogólnosystemowy katalog instalacji] może zawierać kilka wydań \TL{}: \begin{ttdescription} \item[2014] poprzednie wydanie, \item[2015] wydanie aktualne: \begin{ttdescription} \item [bin] ~ \begin{ttdescription} \item [i386-linux] programy dla \GNU/Linux \item [...] \item [universal-darwin] programy dla \MacOSX \item [win32] programy dla Windows \end{ttdescription} \item [texmf-dist\ \ \ \ ] określany zmienną \envname{TEXMFDIST} i \envname{TEXMFMAIN} \item [texmf-var\ \ ] \envname{TEXMFSYSVAR} \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[.texlive2014] prywatne pliki konfiguracyjne poprzedniego wydania \item[.texlive2015] prywatne pliki konfiguracyjne dla 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] wersja \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{} dla składu 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] program zawierający silnik \eTeX{} i dalsze rozszerzenia, który umożliwia tworzenie plików zarówno w~formacie PDF, jak i~\dvi{}. Jest on domyślnym programem dla większości formatów (prócz plain \TeX), nie ma więc obecnie rozróżnienia na ,,maszyny'' \textsf{pdftex} i \textsf{pdfetex}, jak to miało miejsce w~poprzednich wersjach programów i~w~poprzednich dystrybucjach \TL. Podręczniki znajdziemy w~katalogu \OnCD{texmf-dist/doc/pdftex/manual/pdftex-a.pdf}, zaś przykład wykorzystania w~pliku \OnCD{texmf-dist/doc/pdftex/manual/samplepdf/samplepdf.tex}. \item [Lua\TeX] docelowo sukcesor pdf\TeX-a, z~którym ma być, aczkolwiek niecałkowicie, zgodny wstecz. Powinien także zastąpić Aleph (patrz niżej), choć nie zakłada się tu technicznej kompatybilności. Załączony interpreter Lua (patrz strona domowa \url{http://www.lua.org/}) pozwala na eleganckie rozwiązanie wielu trudnych problemów \TeX-a. Program \filename{texlua} ma funkcjonalność samodzielnego interpretera Lua, co sprawia, że jest używany w~\TL{} do wielu zadań. Patrz \url{http://www.luatex.org/} i~w~instalacji \OnCD{texmf-dist/doc/luatex/base/luatexref-t.pdf}. \item [Xe\TeX] umożliwia pisanie tekstów w~Unicode oraz korzystanie z~fontów OpenType (także tych dostępnych bezpośrednio w~systemie operacyjnym), przy czym stosuje biblioteki obce. Patrz \url{http://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'' (\acro{OTP}), co pozwala użytkownikowi definiować złożone transformacje, wykonywane na dowolnych strumieniach wejściowych. %Więcej szczegółów znaleźć można na \DVD: %\OnCD{texmf-dist/doc/omega/base/doc-1.8.tex} (dokumentacja niezbyt aktualna; Sam program od dawna nie jest aktualizowany, został więc usunięty z~\TL. Pozostawiono jego działający klon: \item [Aleph] łączy rozszerzenia \OMEGA\ i~\eTeX; powstał jako niezależny projekt z~potrzeby stabilnej ,,używalności'' programu Omega, w~sytuacji, gdy ten pozostawał wciąż w~fazie eksperymentalnej. Dostępna jest minimalna dokumentacja: \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] tworzenie spisów bibliograficznych; \item[makeindex, xindy] tworzenie posortowanych skorowidzów; \item[dvips] konwersja \dvi{} do \PS{}; \item[xdvi] przeglądarka plików \dvi{} dla X~Window; %\item[dvilj] sterownik dla drukarek HP LaserJet; %\item [dv2dt, dt2dv] konwerter \dvi{} do/z tekstu ASCII; \item [dviconcat, dviselect] programy do manipulacji stronami w~plikach \dvi{}; \item [dvipdfmx] konwersja \dvi{} do PDF, metoda alternatywna w~stosunku do wspomnianego wyżej programu pdf\TeX{}; %(pakiety \pkgname{ps4pdf} i~\pkgname{pdftricks} dostarczają tutaj kolejnych %możliwości); \item [psselect, psnup, \ldots] narzędzia do manipulacji na plikach postscriptowych; \item [pdfjam, pdfjoin, \ldots] narzędzia do manipulacji na plikach \acro{PDF}; %\item [lacheck] kontrola syntaktyki plików \LaTeX-owych; \item [context, mtxrun] programy uruchamieniowe dla Con\TeX{}t; \item [htlatex, \ldots] \cmdname{tex4ht} postprocesor dla \AllTeX-a konwersji do HTML i~XML. \end{cmddescription} %%! zostawiam tę część, choć wyleciała z wersji oryginalnej!!! 27.08.2003 %%! zmiany: 24.09.2009 \subsection[Pakiety i ich zestawy]{Pakiety i ich zestawy} \label{packages} Zawartość drzew \texttt{texmf} na \TL{} została do celów instalacji zorganizowana w~szereg ,,zestawów'' (\emph{collections}), z~których każdy posiada zbiór ,,pakietów'' (\emph{packages}; jest ich obecnie ponad 2500). Normalna instalacja pozwala użytkownikowi pobrać z~\DVD{} na twardy dysk jeden lub więcej zestawów, ale można następnie doinstalować do już zainstalowanego zestawu także pojedynczy pakiet. Zestawy pozwalają lepiej dobrać instalowane składniki, a~także określić, jakie języki będą obsługiwane po instalacji. Najważniejszy zestaw, wymagany dla większości zastosowań, to ,,Essential programs and files''. Zestawy ,,Basic LaTeX packages'' i~,,Recommended fonts'' są rekomendowane dla większości użytkowników. Pozostałe zestawy są opcjonalne. Oto wybrane dostępne zestawy i~krótki opis ich zawartości: \begin{description} \item[Essential programs and files] podstawowe programy, pakiety makr i~fontów systemu \TeX{}, pliki konfiguracyjne dla podstawowych sterowników; \item[BibTeX additional styles] dodatkowa, obszerna biblioteka stylów Bib\TeX-owych i~bazy danych bibliograficznych (podstawowe style znajdują się w~zestawie ,,Essential\dots''); %\item[chemistry] pakiety makr do składu wzorów chemicznych; \item[ConTeXt] pakiet makr do Con\TeX{}t -- ,,dialektu'' \TeX-a autorstwa Hansa Hagena; %\item[documentation] dodatkowe, użyteczne dokumentacje; %\item[etex] pliki pomocnicze dla programu e-\TeX; \item[TeX auxiliary programs] różne programy pomocnicze; zestaw zawiera m.in. programy i~makra dla systemu texinfo, programy do manipulacji na plikach DVI itp.; \item[Graphics and font utilities] programy do konwersji plików fontowych oraz testowania i~instalacji fontów (zestaw do tworzenia fontów wirtualnych, manipulacji plikami .gf i~.pk, programy \texttt{mft}, \texttt{fontinst} itp.); \item[Recommended fonts] obszerna biblioteka częściej używanych fontów w~postaci źródłowej (.mf) bądź fontów obwiedniowych oraz pliki z~definicjami i~stylami \LaTeX-a dla tych fontów; \item[Additional fonts] biblioteka różnych rzadziej używanych fontów; \item[Additional formats] pliki pomocnicze do generowania dodatkowych ,,formatów'' (tj. obszernych zestawów makr służących do wstępnego przetworzenia i~utworzenia pliku \texttt{.fmt}); \item[Games typesetting] pakiety do prezentacji zapisu różnych gier (szachy, brydż itp.); \item[Generic additional packages] obszerna biblioteka makr, trudnych do sklasyfikowania, działających z~różnymi formatami (Plain, \LaTeX{} itp.); \item[HTML/SGML/XML support] pakiety konwersji \LaTeX-a do XML/HTML oraz do składu dokumentów XML/SGML; \item[arabski] itp.: wsparcie poszczególnych języków; zestawy zawierają wzorce przenoszenia wyrazów i~makra obsługi danych języków, czasem też specyficzne fonty itp., przykładowo: %\item[langarmenian] armeński; %\item[langcjk] pakiety CJK (obsługa chińskiego, japońskiego i~koreańskiego); %\item[langcroatian] chorwacki; %\item[langcyrillic] fonty i makra do składu cyrylicą; %\item[langczechslovak] fonty i pakiety makr dla czeskiego i~słowackiego; %\item[langdanish] duński; %\item[langdutch] holenderski; %\item[langfinnish] fiński; %\item[langfrench] francuski; %\item[langgerman] niemiecki; %\item[langgreek] grecki; %\item[langhungarian] węgierski; %\item[langindic] wsparcie dla języków indyjskich; %\item[langitalian] włoski; %\item[langlatin] łacina; %\item[langmanju] język Manju; %\item[langmongolian] mongolski; %\item[langnorwegian] norweski; %\item[langother] wzorce przenoszenia wyrazów dla innych języków; \item[Polish] zawiera polskie pakiety: makra do tworzenia formatu MeX, pakiety \texttt{polski}, \texttt{mwcls}, fonty i~makra dodatkowe przydatne dla polskich użytkowników oraz dokumentacje w~języku polskim. %\item[langportuguese] portugalski; %\item[langspanish] hiszpański; %\item[langswedish] szwedzki; %\item[langtibetan] fonty i~wsparcie do składu tybetańskiego; %\item[langukenglish] angielski (brytyjski); %\item[langvietnamese] wietnamski; %\item[music] makra do składu nutowego; %\item[omega] rozszerzenie \TeX{}a autorstwa Johna Plaice'a i~Yannisa Haralambousa, działające ze znakami kodowanymi 16-bitowo; %\item[pdftex] pliki pomocnicze dla pdf\TeX{}-a, wersji programu \TeX{} % tworzącej pliki w~formacie PDF; %\item[pictures] pakiety do tworzenia diagramów i~innych obiektów graficznych; %\item[plainextra] dodatkowe biblioteki makr dla Plain \TeX; %\item[psutils] narzędzia do manipulacji plikami \PS-owymi; %\item[publishers] pakiety makr pochodzące od różnych wydawnictw; %\item[t1utils] narzędzia do obsługi fontów w~formacie Type~1; %\item[texbooks] przykłady i~inne materiały autorstwa D.E.~Knutha; %\item[ttfutils] narzędzia do konwersji fontów True Type. \end{description} %-------------------------- %%! koniec pozostawionej sekcji 24.09.2009 i po zmianach 28.05.2013 \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{http://tug.org/texlive/acquire.html}. \begin{description} \item [Instalacja z sieci; pliki .zip i~tar.gz:] z~archiwum \CTAN, z~katalogu \dirname{systems/texlive/tlnet} (\url{http://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}, \filename{install-tl-windows.bat} i~\filename{install-tl-advanced.bat}. \begin{figure}[tb] \tlpng{nsis_installer}{.6\linewidth} \caption{Ekran install-tl-windows.exe}\label{fig:nsis} \end{figure} \item [Instalacja z sieci w~Windows:] Dla Windows możemy pobrać alternatywny \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}). \begin{figure}[ht] \begin{boxedverbatim} Installing TeX Live 2015 from: ... Platform: i386-linux => 'GNU/Linux on Intel x86' Distribution: inst (compressed) Directory for temporary files: /tmp ... Detected platform: GNU/Linux on Intel x86 binary platforms: 1 out of 19 installation scheme (scheme-full) customizing installation collections: 47 collections out of 48, disk space required: 4022 MB directories: TEXDIR (the main TeX directory): /usr/local/texlive/2015 ... options: [ ] use letter size instead of A4 by default ... set up for portable installation Actions: start installation to hard disk help quit \end{boxedverbatim} \caption{Główny ekran instalatora w~trybie tekstowym (\GNU/Linux)}\label{fig:text-main} \end{figure} 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{http://tug.org/fonts} oraz %\OnCD{texmf-dist/doc/fonts/free-math-fonts-survey}. %==== \item [Instalacja z płytki \TeX{} Collection \DVD:] po zamontowaniu płytki należy zmienić katalog bieżący na \dirname{texlive} \DVD{} (w~Windows program instalacyjny powinien uruchomić się automatycznie). \DVD{} otrzymamy w ramach członkostwa w~dowolnej Grupie Użytkowników Systemu \TeX{} (kontakt w Polsce \url{http://www.gust.org.pl}). Możemy także wypalić płytkę z dostępnego w sieci jej obrazu \ISO{} bądź zamontować bezpośrednio plik obrazu (w większości systemów istnieje taka możliwość). Po zainstalowaniu z \DVD\ lub obrazu \ISO{} można dokonywać aktualizacji z~internetu (patrz \ref{sec:dvd-install-net-updates}). \end{description} Bez względu na źródło stosowany jest ten sam program instalacyjny. Jedyną widoczną różnicą przy instalacji z sieci jest pobranie zaktualizowanych pakietów, w przeciwieństwie do \DVD\ i obrazu \ISO, które nie są aktualizowane między corocznymi wydaniami. Gdy łączymy się z~siecią poprzez serwer proxy, należy uwzględnić jego ustawienia dla programu Wget w~pliku ~/.wget.rc bądź poprzez modyfikację zmiennych środowiskowych (patrz \url{http://www.gnu.org/software/wget/manual/html_node/Proxies.html}). Do pobierania plików \TL{} zawsze używa programu \GNU\ Wget. Oczywiście uwaga ta jest nieistotna gdy instalujemy z \DVD\ lub obrazu płyty \ISO. Dalsze kroki omówiono dokładniej poniżej. \subsubsection{Unix} \noindent Poniżej \texttt{>} oznacza znak zachęty systemu (tzw. prompt); to, co wpisuje użytkownik, zaznaczono \Ucom{\texttt{pogrubieniem}}. W~oknie terminala należy wykonać: \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 powtarzać wszelkich możliwych kombinacji). Zalecane jest powiększenie okna terminala, aby zobaczyć pełną zawartość ekranu programu instalacyjnego (rys.~\ref{fig:text-main}). Do uruchomienia w~trybie graficznym (\GUI; rys.~\ref{fig:gui-main}) wymagana jest obecność w~systemie modułu \dirname{Perl::TK} skompilowanego ze wsparciem dla \acro{XFT} (w~systemach \GNU/Linux{} jest on z~reguły dostępny, ale dla innych systemów niekoniecznie): \begin{alltt} > \Ucom{perl install-tl -gui} \end{alltt} Kompletny wykaz dostępnych opcji otrzymamy uruchamiając: \begin{alltt} > \Ucom{perl install-tl -help} \end{alltt} \textbf{Uwaga dotycząca uprawnień w Unix:} program instalacyjny będzie respektował aktualną wartość \code{umask}. Jeśli 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 \MacOSX{} przygotowano odrębną dystrybucję Mac\TeX\ (\url{http://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śli 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ń. Gdy katalog zawierający ten plik jest katalogiem bieżącym, wystarczy uruchomić: \begin{alltt} > \Ucom{install-tl-windows} \end{alltt} W linii poleceń można zamiast tego 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:wizard-w32} pokazuje domyślny dla Windows ekran programu instalacyjnego). 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] \tlpng{wizard-w32}{\linewidth} \caption{Ekran programu instalacyjnego ,,Wizard'' (Windows)}\label{fig:wizard-w32} \end{figure} \htmlanchor{cygwin} \subsubsection{Cygwin} \label{sec:cygwin} %Program instalujący \TL{} obsługuje jedynie Cygwin w~wersji 1.7. 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 instalacja: \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 \code{clear} -- ,,czyste'' polecenie stosowane 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 , by działał na możliwie wielu platformach, nawet wyposażonych jedynie w~podstawowe biblioteki Perla. \subsubsection{Zaawansowany program instalacyjny w trybie graficznym} Rysunek \ref{fig:gui-main} przedstawia program instalacyjny w~trybie graficznym, w~wersji rozszerzonej. W systemie Windows znajdziemy tu dodatkowe przyciski dla opcji nieistotnych w systemach Unix/Linux. Tryb ten uruchamiamy poleceniem: \begin{alltt} > \Ucom{install-tl -gui=perltk} \end{alltt} \subsubsection{Uproszczony program instalacyjny} W systemie Windows domyślnie uruchamiany jest uproszczony program instalujący wszystkie pakiety \TL{}, który wymaga od użytkownika odpowiedzi jedynie na kilka pytań (katalog docelowy itp.). Tryb ten zwany jest \textit{wizard} (,,czarodziej'', ,,mag'', rys.~\ref{fig:wizard-w32}). Na innych platformach tryb ten uruchamiamy poleceniem: \begin{alltt} > \Ucom{install-tl -gui=wizard} \end{alltt} \subsection{Podczas instalacji} \label{sec:runinstall} Program instalacyjny jest z~założenia na tyle prosty, że szczegółowe wyjaśnienia wydają się zbędne. Podamy jednak 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/Darwin universal binaries (universal-darwin) d [ ] MacOSX/Darwin on x86_64 (x86_64-darwin) e [ ] FreeBSD on x86_64 (amd64-freebsd) f [ ] FreeBSD on Intel x86 (i386-freebsd) g [ ] GNU/Linux on DEC Alpha (alpha-linux) h [ ] GNU/Linux on ARM (armel-linux) i [ ] GNU/Linux on ARMhf (armhf-linux) j [X] GNU/Linux on Intel x86 (i386-linux) k [ ] GNU/Linux on MIPSel (mipsel-linux) l [ ] GNU/Linux on PowerPC (powerpc-linux) m [ ] GNU/Linux on x86_64 (x86_64-linux) o [ ] NetBSD on x86_64 (amd64-netbsd) p [ ] NetBSD on Intel x86 (i386-netbsd) s [ ] Solaris on Intel x86 (i386-solaris) t [ ] Solaris on Sparc (sparc-solaris) u [ ] Solaris on x86_64 (x86_64-solaris) v [ ] Windows (win32) \end{boxedverbatim} \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 na serwerze i~współdzielenia zasobów w~sieci dla różnych systemów operacyjnych bądź dla instalacji dla kilku systemów na tej samej maszynie. \subsubsection{Wybór składników do instalacji} \label{sec:components} \begin{figure}[tbh] \begin{boxedverbatim} Select scheme: (Wybór schematu do instalacji:) =============================================================================== a [X] full scheme (everything) b [ ] medium scheme (small + more packages and languages) c [ ] small scheme (basic + xetex, metapost, a few languages) d [ ] basic scheme (plain and latex) e [ ] minimal scheme (plain only) f [ ] ConTeXt scheme g [ ] GUST TeX Live scheme h [ ] teTeX scheme (more than medium, but nowhere near full) i [ ] XML scheme j [ ] custom selection of collections \end{boxedverbatim} \caption{Menu: wybór schematów}\label{fig:scheme-text} \end{figure} Rysunek \ref{fig:scheme-text} pokazuje menu ,,Wybór schematów''. Schematy to obszerne zestawy pakietów, przeznaczone do wstępnego wyboru instalowanych komponentów. Mamy tu schematy do instalacji: podstawowej (\optname{basic}), typowej (\optname{medium}) i~pełnej (\optname{full}; jest ona domyślna), pozostałe przygotowano z~myślą o~wybranych grupach użytkowników (np.~GUST) lub zastosowaniach (np.~XML lub ConTeXt). \begin{figure}[tb] \begin{center} \centering \tlpng{stdcoll}{.7\linewidth} \caption{Menu Collections (Kolekcje)}\label{fig:collections-gui} \end{center} \end{figure} Wstępnie wybrane schematy można modyfikować. W skład ,schematów'' wchodzą tzw. ,,kolekcje'', czyli zestawy pakietów, które można wybrać w~kolejnym menu: ,,Kolekcje'' (rys.~\ref{fig:collections-gui}). Kolekcje stanowią niższy poziom niż schematy, a~same składają się z ,,pakietów''. Dopiero pakiety zawierają właściwe pliki makr, fontów itp. Jeśli chcemy dodać lub usunąć pakiet, to po instalacji właściwej użyjemy programu \TeX\ Live Manager (\prog{tlmgr}, patrz część~\ref{sec:tlmgr}). \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 (\dirname{TEXDIR}) to w~systemach Unix \dirname{/usr/local/texlive/2015}, zaś w~Windows |%SystemDrive%\texlive\2015|. Możemy zatem mieć kilka równoległych instalacji, każdą dla konkretnego roku wydania, i~łatwo przełączać się między nimi zmieniając jedynie kolejność ścieżek przeszukiwania. Głównym powodem, dla którego chcielibyśmy ewentualnie zmienić domyślne położenie \dirname{TEXDIR} podczas instalacji, może być brak uprawnień systemowych. Aby zainstalować \TL{}, nie musimy być administratorem systemu, musimy jednak posiadać uprawnienia do zapisu w~docelowym katalogu. Rozsądną alternatywą może być wtedy instalacja w~katalogu domowym, szczególnie gdy będziemy jej jedynym użytkownikiem. Stosujemy tu zapis ,,|~|'' do zaznaczenia katalogu domowego użytkownika, np. |~/texlive/2015|. Zalecamy użycie katalogu z~nazwą odzwierciedlającą rok wydania, co pozwoli na zainstalowanie obok siebie różnych wydań \TL{}. %%! przegadane, na razie olewam (SW) %(You may wish to make a %version-independent name such as \dirname{/usr/local/texlive-cur} via a %symbolic link, which you can then update after testing the new release.) Katlogi przeznaczone na instalację można również zmienić definiując zmienne systemowe \envname{TEXLIVE\_INSTALL\_PREFIX} lub \envname{TEXLIVE\_INSTALL\_TEXDIR}); patrz dokumentacja wyświetlana poleceniem |install-tl --help| (dostępna też online na stronie \url{http://tug.org/texlive/doc/install-tl.html}). 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|. 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 podkreślmy, że tak jak inne drzewa katalogów, \envname{TEXMFHOME} musi mieć strukturę zgodną z \TDS, w~przeciwnym wypadku potrzebne pliki mogą nie zostać znalezione. Katalog określany przez zmienną \dirname{TEXMFVAR} przechowuje dane konfiguracyjne specyficzne dla każdego użytkownika. Katalog określany przez zmienną \dirname{TEXMFCACHE} przechowuje dane buforowane (\textit{cached}) Lua\LaTeX{} oraz \ConTeXt\ Mk\acro{IV} (patrz część~\ref{sec:context-mkiv}, na str.~\pageref{sec:context-mkiv}). \subsubsection{Opcje} \label{sec:options} \begin{figure}[tbh] \begin{boxedverbatim} Options setup: ===============================================================================

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 installation, get package updates from CTAN: [X] \end{boxedverbatim} \caption{Menu: Options (Opcje) w Unix}\label{fig:options-text} \end{figure} Rysunek \ref{fig:options-text} pokazuje menu (w~trybie tekstowym) z~dodatkowymi opcjami. Warto tu je wymienić: \begin{description} \item[use letter size instead of A4 by default] (użyj domyślnie formatu papieru letter zamiast A4): pozwala określić domyślny format papieru dla wielu programów. Oczywiście format papieru można (nawet: należy) specyfikować dla każdego dokumentu w miarę potrzeby. \item[execution of restricted list of programs] (zezwalaj na uruchomienie niektórych programów): od \TL\ 2010 wykonanie niektórych przydatnych programów pomocniczych, uruchamianych jako podprocesy (w~,,tle''), zostało zastrzeżone dla ich niewielkiej listy, zamieszczonej w~pliku \filename{texmf.cnf}. Szczegóły znajdziemy w~części ,,Wydanie 2010'' (\ref{sec:2010news}). \item[create format files] (generuj pliki formatów): chociaż zbędne formaty zajmują miejsce na dysku, zaleca się pozostawić tę opcję włączoną; jeśli tego nie zrobimy, formaty będą generowane automatycznie (w~razie potrzeby) w~prywatnych katalogach \dirname{TEXMFVAR} użytkowników, nie będą jednak odświeżane, gdy w~instalacji zostaną zaktualizowane np. same programy bądź wzorce przenoszenia; wskutek tego pliki formatów mogą utracić zgodność ze środowiskiem, w~którym są używane. \item[install font/macro \ldots\ tree] (instaluj pliki źródłowe i/lub dokumentacji dla fontów bądź makr): wprawdzie wyłączenie tych opcji pozwala zaoszczędzić miejsce na dysku, ale nie jest zalecane. \item[create symlinks in standard directories] (utwórz dowiązania w~standardowych katalogach, dotyczy tylko Unix): opcja ta pozwala uniknąć ustawiania zmiennych środowiska po instalacji (\envname{PATH}, \envname{MANPATH} i~\envname{INFOPATH}), ale jej użycie nie jest zalecane, bo może powodować kolizje z już zainstalowanym w~systemie środowiskiem \TeX; może być ona przydatna jedynie wtedy, gdy w~standardowych katalogach (np. \dirname{/usr/local/bin}) nie ma jakichkolwiek programów \TeX-owych. Wymaga ona ponadto uprawnień do zapisu w docelowych katalogach. \item[after installation \ldots\ \CTAN] (po instalacji użyj CTAN, aby pobrać aktualizacje): gdy instalujemy z~\DVD, opcja ta jest domyślnie włączona, co pozwala dokonać aktualizacji zainstalowanych pakietów z~sieci (z~kopii CTAN). Jedyny powód, dla którego moglibyśmy wyłączyć tę opcję, to sytuacja, gdy instalujemy tylko część pakietów i~zamierzamy potem doinstalować z~\DVD\ inne. Tak czy inaczej, repozytorium pakietów do instalacji bądź aktualizacji może być w~każdej chwili zmienione w~linii poleceń, lub po wyborze odpowiedniego menu programu \cmdname{tlmgr} w~trybie graficznym. Patrz część~\ref{sec:location} i~część~\ref{sec:dvd-install-net-updates}. \end{description} Po wykonaniu wszystkich potrzebnych ustawień można rozpocząć instalację (klawisz ,,I''). Po instalacji zaleca się zajrzeć do części \ref{sec:postinstall}, bo być może będą jeszcze potrzebne dodatkowe kroki. %\htmlanchor{runfromdvd} %\subsubsection{Uruchamianie bezpośrednio z DVD{} (tylko w trybie tekstowym)} %\label{sec:fromdvd} % %Aby uruchomić programy bezpośrednio z~płytki \DVD{}, należy wybrać %opcję ,,|V|'', co zmienia menu na przedstawione na %rys.~\ref{fig:main-fromdvd}. %\begin{figure}[tbh] %\begin{boxedverbatim} %======================> TeX Live installation procedure <===================== %... % directories: % TEXDIRW (Writable root): % !! default location: /usr/local/texlive/2009 % !! is not writable, please select a different one! % TEXMFLOCAL (directory for site-wide local files): % /usr/local/texlive/texmf-local % TEXMFSYSVAR (directory for variable and automatically generated data): % /usr/local/texlive/2009/texmf-var % TEXMFSYSCONFIG (directory for local config): % /usr/local/texlive/2009/texmf-config % TEXMFHOME (directory for user-specific files): % ~/texmf % % options: % [ ] use letter size instead of A4 by default % [X] create all format files % % set up for installing to hard disk % %Other actions: % start installation for running from DVD % help % quit %\end{boxedverbatim} %\caption{Menu główne dla uruchamiania z~\optname{DVD}}% %\label{fig:main-fromdvd} %\end{figure} % %Zwróćmy uwagę na następujące zmiany w menu: zniknęły wszystkie opcje dotyczące %wyboru pakietów, sekcja dotycząca katalogów pokazuje teraz \dirname{TEXDIRW} %-- katalog posiadający prawa do zapisu. Pozwoli to uruchamiać dowolny program %bezpośrednio z~płytki; na dysku twardym znajdą się (w odpowiednich %katalogach) jedynie niezbędne pliki konfiguracyjne. % %Ponieważ struktura katalogów różni się nieco od domyślnej, niezbędne będą %pewne czynności konfiguracyjne, omówione w~części~\ref{sec:postinstall}. % %Instalator \GUI nie posiada opcji ,,V'', dlatego %użytkownicy Windows mogą uruchomić program jedynie %z~linii poleceń, jak opisano to w~części~\ref{sec:cmdline}. % %W~rozdziale \ref{sec:portable-tl} opisano jeszcze inny, przenośny sposób %uruchamiania \TL, który nie wymaga zmian w~konfiguracji systemu %(a~wręcz nie pozwala na nie). \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. % Either |-| or |--| can be used to introduce option names. Oto najczęściej używane: \begin{ttdescription} \item[-gui] użyj (jeśli to możliwe) programu w~wersji graficznej (\GUI); wymagane jest posiadanie modułu Perl/Tk (\url{http://tug.org/texlive/distro.html#perltk}) skompilowanego ze wsparciem dla \acro{XFT}; gdy jest on niedostępny, program instalacyjny uruchomiony zostanie w trybie tekstowym; \item[-no-gui] wymusza tryb tekstowy, np. w~Windows. \item[-lang {\sl ll}] pozwala wybrać język komunikatów, \textsl{ll} oznacza tu dwuliterowy kod języka; listę dostępnych języków wyświetli \verb|install-tl --help|; %angielski (\texttt{en}, domyślny), % chiński tradycyjny (\texttt{zh-tw}), % chiński uproszczony (\texttt{zh-cn}), % czeski (\texttt{cz}, % francuski (\texttt{fr}), % holenderski (\texttt{nl}), % japoński (\texttt{ja}), % niemiecki (\texttt{de}), % polski (\texttt{pl}), % rosyjski (\texttt{ru}), % serbski (\texttt{sr}), % słowacki (\texttt{sk}), % słoweński (\texttt{sl}), % włoski (\texttt{it}) i~wietnamski (\texttt{vi}); program samoczynnie wykrywa język systemu, ale jeśli jest to niemożliwe, komunikaty oraz menu będą wyświetlane w~języku angielskim; \item[-portable] instalacja do użycia przenośnego, np. na pen drivie; opcja ta może 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{http://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~graficznym interfejsem. \end{ttdescription} \subsubsection{Parametr \optname{-repository}} \label{sec:location} Domyślnym repozytorium pakietów dla \TL{} jest kopia (\textit{mirror}) CTAN, znajdywana automatycznie poprzez sewis \url{http://mirror.ctan.org}. Parametrowi \optname{-repository} można przypisać adres w sieci (rozpoczynający się od \texttt{ftp:}, \texttt{http:} 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}). Jeśli podany argument wskazuje na lokalny dysk (ścieżkę bądź adres \texttt{file:/}), wybrana zostanie instalacja ze skompresowanych plików \filename{tar.xz}, zawartych w~podkatalogu \dirname{archive}. (Podając adres \texttt{http:}\ lub \texttt{ftp:}\ końcowy znak ,,\texttt{/}'' lub komponent ,,\texttt{/tlpkg}'' są ignorowane.) Przykładowo, można wybrać konkretną kopię (zwierciadło) \CTAN\ z \url{http://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{http://ctan.org/mirrors}. \subsection{Czynności poinstalacyjne} \label{sec:postinstall} % %Część ta nie dotyczy systemu Windows, dla którego program instalacyjny %przeprowadza całą konfigurację, włącznie z~ustawieniami menu systemowego %i~tworzeniem ikon na pulpicie. Poniższe uwagi mogą być przydatne dla %użytkowników innych systemów. % %\subsubsection{Gdy zastosujemy dowiązania symboliczne} % \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 shell (\cmdname{sh}, \cmdname{bash}, \cmdname{ksh}) możemy dopisać do pliku \filename{$HOME/.profile}: \begin{sverbatim} PATH=/usr/local/texlive/2015/bin/i386-linux:$PATH; export PATH MANPATH=/usr/local/texlive/2015/texmf-dist/doc/man:$MANPATH; export MANPATH INFOPATH=/usr/local/texlive/2015/texmf-dist/doc/info:$INFOPATH; export INFOPATH \end{sverbatim} W~wypadku csh lub tcsh należy zmodyfikować plik \filename{$HOME/.cshrc}, np.: \begin{sverbatim} setenv PATH /usr/local/texlive/2015/bin/i386-linux:$PATH setenv MANPATH /usr/local/texlive/2015/texmf-dist/doc/man:$MANPATH setenv INFOPATH /usr/local/texlive/2015/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ć dokonane globalnie, lub jeśli mają być dokonane dla nowego użytkownika systemu, wówczas należy dokonać tego na własną rękę -- jest zbyt wiele możliwości dla różnych systemów dotyczących miejsca i sposobu konfiguracji. Nasze dwie rady są następujące: 1)~można sprawdzić plik \filename{/etc/manpath.config} i,~jeśli jest obecny, dodać w nim wiersze \begin{sverbatim} MANPATH_MAP /usr/local/texlive/2015/bin/i386-linux \ /usr/local/texlive/2015/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 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 \MacOSX, automatycznie znajdą to dowiązanie, likwidując potrzebę jakiegokolwiek ustawiania dla stron manuala. \subsubsection{Aktualizacje z internetu po instalacji z \DVD} \label{sec:dvd-install-net-updates} Po instalacji 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 http://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ą problemy z automatycznym wyborem archiwum, należy podać konkretny adres (listę adresów znajdziemy na \url{http://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 \XeTeX\ i~Lua\TeX} \label{sec:font-conf-sys} \XeTeX\ i~Lua\TeX\ pozwalają użyć każdy font zainstalowany w~systemie, nie tylko fonty znajdujące 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{}. Gdy w systemie uniksowym zainstalowano \filename{xetex}, należy skonfigurować system tak, aby program ten mógł znaleźć fonty dostarczone w~\TL. Aby to ułatwić, podczas instalacji pakietu 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ń, a~chcemy %podczas uruchamiania \XeTeX-a korzystać z~fontów dostępnych w~\TL, należy: \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*} Uruchomienie programu \code{fc-list} pozwala wyświetlić nazwy fontów systemowych. Uruchomienie \code{fc-list : family style file spacing} pokaże więcej interesujących informacji. %\subsubsection{Gdy uruchamiamy programy z~DVD} % %Programy \TL{} wyszukują potrzebne dane w~różnych drzewach katalogów, %korzystając z~pliku \filename{texmf.cnf}. Plik ten poszukiwany jest w całej %serii położeń względem położenia samych programów, ale zasada ta nie działa, %gdy uruchamiamy programy bezpośrednio z~\DVD. Wynika to z faktu, że niektóre %pliki są zapisywane na twardym dysku (\DVD{} jest medium tylko do odczytu) %i~tracą tym samym predefiniowane względne położenie. Wymagane jest zatem %zdefiniowanie w~środowisku zmiennej \envname{TEXMFCNF}, która wskaże %położenie \filename{texmf.cnf}. Nadal jest potrzebna modyfikacja zmiennej %\envname{PATH}, jak opisano wyżej. % %Na zakończenie instalacji program powinien pokazać komunikat informujący, %jaką wartość należy przypisać zmiennej \envname{TEXMFCNF}. Gdybyśmy %to przeoczyli -- wartością tą jest \dirname{$TEXMFSYSVAR/web2c}, czyli dla %domyślnych ustawień (\dirname{/usr/local/texlive/2009/texmf-var/web2c}) %potrzebujemy deklaracji: %\begin{sverbatim} %TEXMFCNF=/usr/local/texlive/2009/texmf-var/web2c; export TEXMFCNF %\end{sverbatim} %lub, dla [t]csh: %\begin{sverbatim} %setenv TEXMFCNF /usr/local/texlive/2009/texmf-var/web2c %\end{sverbatim} % %Opcja ta jest najbardziej przydatna, gdy chcemy uruchamiać programy \TL{} %we własnym systemie, ale brak nam wystarczającego miejsca na dysku. %W pełni przenośny sposób korzystania z~\TL{}, np. z pen drive USB, %opisano w części~~\ref{sec:portable-tl}. \subsubsection{\ConTeXt{} Mark \acro{IV}} \label{sec:context-mkiv} Zarówno tzw. ,,stary'' \ConTeXt{} (Mark \acro{II}), jak i~nowy \ConTeXt{} (Mark \acro{IV}, oparty na Lua\TeX) powinny działać po instalacji \TL bez problemów, o ile do aktualizacji będziemy używać wyłącznie programu \verb+tlmgr+. Ponieważ \ConTeXt{} Mk\acro{IV} nie stosuje biblioteki kpathsea do wyszukiwania plików, po zainstalowaniu ręcznie nowych plików (bez użycia \verb+tlmgr+) wymagane jest uruchomienie: \begin{sverbatim} context --generate \end{sverbatim} do odświeżenia danych buforowych \ConTeXt. Wygenerowane dane buforowe zostaną zapisane w~katalogach wskazywanych przez zmienną \code{TEXMFCACHE} (domyślna wartość w \TL\ tej zmiennej to \verb+TEXMSYSVAR;TEXMFVAR+). \ConTeXt\ Mk\acro{IV} 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{http://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 pozwoli uniknąć ręcznego konfigurowania w~przyszłości. W~obu drzewach katalogów pliki powinny być umieszczane w~odpowiednich podkatalogach, zgodnie z~zaleceniami \TDS{} (patrz: \url{http://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ł} Jest to, niestety, bardzo skomplikowane zagadnienie, wymagające sporej wiedzy użytkownika. Warto najpierw przejrzeć, jakie fonty mamy dostępne bezpłatnie w~dystrybucji \TL\ (jest ich całkiem sporo). Alternatywą jest tu użycie programu \XeTeX{} lub Lua\TeX\ (patrz część~\ref{sec:tex-extensions}), które korzystają z fontów systemowych bez potrzeby instalowania ich dla programów \TeX-owych. Procedury instalacji i integracji fontów % for our best effort at wielkim staraniem ?? opisano w~miarę dokładnie np. na stronie: \url{http://tug.org/fonts/fontinstall.html}. \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. W~\MacOSX{} i~Windows najczęściej użyjemy graficznego edytora (\GUI), odpowiednio TeXShop (\url{http://pages.uoregon.edu/koch/texshop}) i~\TeX{}works (\url{http://tug.org/texworks}), które dostępne są w~dystrybucji \TL{}. 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 są identyczne dla innych systemów. \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: \begin{alltt} > \Ucom{latex sample2e.tex} This is pdfTeX 3.14... ..... Output written on sample2e.dvi (3 pages, 7484 bytes). Transcript written on sample2e.log. \end{alltt} Gdy program nie znajduje \filename{sample2e.tex} (bądź innych wymaganych plików), może to oznaczać, że nadal działają 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: \begin{alltt} > \Ucom{xdvi sample2e.dvi} # Unix > \Ucom{dviout sample2e.dvi} # Windows \end{alltt} Polecenie \cmdname{xdvi} wymaga uruchomionego środowiska graficznego X~Window. Dla MS Windows analogicznym poleceniem jest \cmdname{dviout}. %%! %%! You should see a new window with a nice document explaining some of the %%! basics of \LaTeX{}. (Well worth reading, by the way if you're new to the %%! system.) You do have to be running under X for \cmdname{xdvi} to work; if %%! you're not, or your \envname{DISPLAY} environment variable is set %%! incorrectly, you'll get an error \samp{Can't open display}. \item Przetwarzanie wyniku składu do \PS{} w~celu wyświetlenia lub wydruku: \begin{alltt} > \Ucom{dvips sample2e.dvi -o sample2e.ps} \end{alltt} \item Tworzenie dokumentu bezpośrednio w~formacie \acro{PDF}: \begin{alltt} > \Ucom{pdflatex sample2e.tex} \end{alltt} \item Podgląd dokumentu \acro{PDF}: \begin{alltt} > \Ucom{gv sample2e.pdf} \textrm{lub:} > \Ucom{xpdf sample2e.pdf} \end{alltt} Programy \cmdname{gv} i~\cmdname{xpdf} są zwykle dostarczane w~ramach systemu operacyjnego, wobec tego nie zamieszczono ich na \TL. Przed samodzielną instalacją warto odwiedzić strony, odpowiednio: \url{http://www.gnu.org/software/gv} i~\url{http://www.foolabs.com/xpdf}. W~sieci dostępny jest także bezpłatny program Adobe Reader (\url{http://www.adobe.com}). Użytkownikom Windows można zarekomendować program Sumatra PDF (\url{http://blog.kowalczyk.info/software/sumatrapdf}. W~systemie Windows domyślnie instalowany jest dla \TL{} program \cmdname{psv} (PS\_View), pozwalający przeglądać pliki \cmdname{.ps} i~\cmdname{.pdf}. Program ten można też zainstalować samodzielnie w~systemach Linux %(w~katalogu \dirname{support/} znajdziemy plik \filename{psview-5.09t.zip}). (\url{http://psview.sourceforge.net/download.html}). \item Inne przydatne pliki testowe: \begin{ttdescription} \item [small2e.tex] przykład prostszy niż \filename{sample2e}; \item [testpage.tex] test 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 przykład dla plain \TeX{}; na zakończenie przetwarzania uruchomionego poleceniem \samp{tex story}, po ukazaniu się \code{*}, należy wpisać \samp{\bs bye}. \end{ttdescription} \item Jeśli zainstalowano pakiet \filename{xetex}, możemy 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~części~\ref{sec:font-conf-sys}. \end{enumerate} \subsection{Programy pomocnicze dla Windows} Początkującym użytkownikom polecamy stronę \url{http://tug.org/begin.html} oraz podręcznik Petera Flynna \textsl{Formatting Information}, dostępny pod adresem \url{http://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. 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 dedekowanego dla środowiska \TeX{} znacznie ułatwi pracę. Wszystkie te programy dla Windows można dosyć łatwo znaleźć w~sieci, ponieważ jednak jest ich spory wybór, postanowiliśmy te najbardziej istotne umieścić w~dystrybucji \TL: \begin{description} \item[Perl i Ghostscript] -- obydwa te programy są niezbędne do poprawnego działania \TL, dołączyliśmy zatem \cmdname{Ghostscript} 8.62 i~minimalną dystrybucję \cmdname{Perl} 5.8, 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[narzędzia uruchamiane z~linii poleceń] -- zestaw kilku przydatnych programów (\texttt{gzip}, \texttt{unzip}, \texttt{jpeg2ps} i~\texttt{tiff2png}) a~także kilka narzędzi z~zestawu \cmdname{xpdf}, uruchamianych z~linii poleceń (sam \cmdname{xpdf} nie jest dostępny dla Windows, można jednak pobrać z~internetu opartą na nim przeglądarkę \acro{PDF}: \url{http://blog.kowalczyk.info/software/sumatrapdf}); \item[fc-list, fc-cache] -- narzędzia z~biblioteki fontconfig; program \prog{fc-cache} rejestruje dla \XeTeX-a fonty systemowe lub dostarczane w~dystrybucji \TL{} fonty OpenType; \prog{fc-list} wyświetla zarejestrowane fonty, podając ich pełne nazwy (deklarujemy je w~rozszerzonym w~\XeTeX-u poleceniu \cs{font}); \item[PS\_View] -- program do podglądu plików postscriptowych (a~także plików \acro{PDF}), patrz rys.~\ref{fig:psview}. \end{description} %\begin{description} %\item[katalog \texttt{support,}] wspomniany już w~części~\ref{sec:tld}, %zawiera różne programy, które mogą być użyteczne w~środowisku \TeX-owym %(np. edytory/środowiska dla \TeX-a); programy te \emph{nie są} uwzględniane %podczas instalacji samego \TL, należy je więc zainstalować samodzielnie. %\end{description} \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} Poniżej zamieszczono listę miejsc, z~których można pobrać programy pomocnicze: \begin{description} \item[Ghostscript] \url{http://www.cs.wisc.edu/~ghost/} \item[Perl] \url{http://www.perl.org} (uzupełniające, przydatne pakiety należy pobrać z~zasobów CPAN \url{http://cpan.org}) \item[ImageMagick] -- bogaty zestaw narzędzi do wsadowego przetwarzania plików graficznych (\url{http://www.imagemagick.com}) \item[NetPBM] -- do przetwarzania i~konwersji plików graficznych możemy użyć alternatywnego dla \textsf{ImageMagick} programu NetPBM (\url{http://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} -- w~wersji zintegrowanej z~\textsf{AucTeX} dla Windows dostępny jest w~archiwach \CTAN; strona domowa: \url{http://www.gnu.org/software/auctex}. % http://www.gnu.org/software/emacs/windows/ntemacs.html) % \item \cmdname{XEmacs} -- bardziej przyjazna wersja dla Windows % (\url{http://www.xemacs.org/}) \item \cmdname{LEd} -- polski edytor, dostępny z~\url{http://mirror.ctan.org/support/LEd}. \item \cmdname{SciTE} -- edytor dostępny z \url{http://www.scintilla.org/SciTE.html} \item \cmdname{Texmaker} -- edytor dostępny z \url{http://www.xm1math.net/texmaker}. % \item \cmdname{TexMakerX} jest rozszerzeniem \cmdname{Texmaker} % (\url{http://texmakerx.sourceforge.net}). \item \cmdname{TeXstudio} jest rozszerzeniem \cmdname{Texmaker} o~dodatkowe fukcje (\url{http://texstudio.sourceforge.net}). \item TeXnicCenter -- kolejny, dosyć bogaty w~funkcje edytor (\url{http://www.toolscenter.org/products/texniccenter/}) \item \cmdname{TeXworks} -- nowy edytor, dostępny z \url{http://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{http://www.vim.org}) \item \cmdname{WinShell} -- prosty edytor/shell (\url{http://www.winshell.de}) \item \cmdname{WinEdt} -- bogaty w~funkcje edytor dla \TeX-a, dostępny jako \emph{shareware} (\url{http://www.winedt.com}) \end{itemize*} \end{description} Obszerniejszą listę programów można znaleźć na stronie \url{http://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. Dzięki standardowej strukturze 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 np. takie wiersze: \begin{sverbatim} TEXMFROOT = $SELFAUTOPARENT ... TEXMFDIST = $TEXMFROOT/texmf-dist ... TEXMFLOCAL = $SELFAUTOPARENT/../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. Użytkownicy Windows mogą pobrać z internetu skrypt \filename{w32client} (patrz: \url{http://tug.org/texlive/w32client.html}), który pozwala dostosować istniejącą instalację \TL{} dla potrzeb sieci (włącznie z~utworzeniem skrótów w~menu systemowym). Plik .zip dostępny na wymienionej stronie zawiera ponadto skrypt \filename{w32unclient}, służący do odinstalowania. %W części~\ref{sec:kpathsea} dowiemy się więcej o~konfigurowaniu \TL{} %i~zasadach przeszukiwania ścieżek. %%! 2 sekcje tłumaczył Kocio (Andrzej Borzyszkowski), przeredagował StaW \htmlanchor{tlportable} \subsection{Przenośna instalacja na pen drivie USB} \label{sec:portable-tl} Aby wykonać przenośną instalację na pen drivie 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 pen drivie, lub na dysku twardym, skąd kopiujemy ją na urządzenie przenośne. Do uruchomienia programów \TL\ w takiej instalacji wystarczy w sesji terminala dodać, jak zazwyczaj, odpowiedni katalog do zmiennej \code{PATH}. W Windows należy dwukrotnie kliknąć \filename{tl-tray-menu} w głównym katalogu instalacji, aby wybrać jedno z podstawowych zadań, pokazanych na poniższym rysunku: \medskip \tlpng{tray-menu}{4cm} \smallskip \noindent Wybór ,,More\ldots'' pokaże komunikat z informacją jak można dostosować menu do własnych potrzeb. \htmlanchor{tlisoinstall} \subsection{Instalacje z pliku obrazu \ISO\ (lub \DVD)} \label{sec:isoinstall} Jeśli nie zamierzamy często aktualizować bądź modyfikować w inny sposób naszej instalacji, a~także gdy zamierzamy uruchamiać \TL\ na wielu systemach, warto utworzyć plik obrazu \ISO\ takiej instalacji, choćby z poniższych powodów: \begin{itemize} \item kopiowanie obrazu \ISO\ między komputerami jest znacznie szybsze niż kopiowanie zwykłej instalacji; \item jeśli używamy kilku systemów operacyjnych na tym samym komputerze i chcemy korzystać z~tej samej instalacji \TL, obraz \ISO instalacji jest pozbawiony ograniczeń różnych systemów plików (\acro{FAT32}, \acro{NTFS}, \acro{HFS+}); \item systemy uruchamiane w trybie wirtualnym mogą po prostu zamontować plik obrazu \ISO. \end{itemize} Obraz \ISO\ można oczywiście wypalić na płytce \DVD. Systemy \GNU/Linux/Unix (w tym \MacOSX) pozwalają na montowanie pliku obrazu \ISO. Windows~8 jest pierwszą(!) wersją tego systemu, która też na to pozwala. Instalacja z~obrazu \ISO\ w~niczym się nie różni od typowej, wykonanej na dysku (patrz: \ref{sec:env}). Podczas wykonywania instalacji do \ISO\ warto pominąć specyfikowanie katalogu dla roku wydania, ponadto warto umieścić katalog \filename{texmf-local} na tym samym poziomie co inne drzewa (\filename{texmf-dist}, \filename{texmf-var}, itd.). Zmianę katalogów umożliwia opcja \verb+TEXDIR+ programu instalacyjnego. Dla natywnego (nie wirtualnego) systemu Windows można wypalić obraz \ISO\ na płytce \DVD, ale warto też rozważyć instalację któregoś z~dostępnych w sieci programów umożliwiających montowanie takiego obrazu, np. dla Windows XP WinCDEmu (\url{http://wincdemu.sysprogs.org/}). Poza tym w Windows można dołączyć opisany wyżej skrypt \filename{w32client} (patrz: \ref{sec:sharedinstall} oraz \url{http://tug.org/texlive/w32client.html}), który wykonuje swe zadania, podobnie jak w wypadku instalacji sieciowej. W systemie \MacOSX{} program TeXShop będzie mógł wykorzystać instalację na \acro{DVD}, gdy zadeklarujemy dowiązanie symboliczne \filename{/usr/texbin} do odpowiedniego katalogu, np.: \begin{verbatim} sudo ln -s /Volumes/MyTeXLive/bin/universal-darwin /usr/texbin \end{verbatim} Uwaga historyczna: \TL{} 2010 był pierwszą edycją, która (z różnych przyczyn) nie była faktycznie \textit{live}. Niemniej jednak poprzednie edycje zawsze wymagały akrobatycznych ,,sztuczek'' do uruchamiania programów bezpośrednio z \DVD\ lub obrazu \ISO (np. deklarowania dodatkowej zmiennej środowiska). Obraz \ISO, tworzony obecnie, tego nie wymaga. \htmlanchor{tlmgr} \section{\cmdname{tlmgr}: zarządzanie instalacją} \label{sec:tlmgr} \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 pokazanie zawartości pakietów oraz ich opisów; \item wyszczególnianie oraz dodawanie architektur (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 nadal dostępny w~dystrybucji \TL{} dla użytkowników przyzwyczajonych do tego interfejsu, zalecamy obecnie używanie \prog{tlmgr}. \begin{figure}[tb] \tlpng{tlmgr-gui}{\linewidth} \caption{\prog{tlmgr} w~trybie graficznym: główne okno, po akcji ,,Wczytaj'' (\textit{Load}).} \label{fig:tlmgr-gui} \end{figure} \begin{figure}[tb] \hbox to \hsize{% \vtop{\hsize=.59\linewidth \null % make figures align at the top \tlpng{tlmgr-general-options}{\hsize} \caption{\texttt{tlmgr} w trybie \GUI: Opcje ogólne} \label{fig:tlmgr-general-options} } \hfil \vtop{\hsize=.39\linewidth \null \tlpng{tlmgr-paper-options}{\hsize} \caption{\texttt{tlmgr} w trybie \GUI: Opcje dotyczące formatu papieru} \label{fig:tlmgr-paper-options} } } \end{figure} %\begin{figure}[tb] %\tlpng{tlmgr-config}{.8\linewidth} %\caption{\texttt{tlmgr} w~trybie graficznym: zakładka %konfiguracji}\label{fig:tlmgr-config} %\end{figure} \subsection{\cmdname{tlmgr} -- tryb graficzny (\GUI)} \prog{tlmgr} może być uruchomiony w~trybie graficznym (rys.~\ref{fig:tlmgr-gui}) za pomocą polecenia: \begin{alltt} > \Ucom{tlmgr -gui} \end{alltt} zaś w~systemie Windows poprzez wybór menu: \texttt{Start}, \texttt{Programy}, \texttt{TeX Live 2015}, \texttt{TeX Live Manager}. Po kliknięciu przycisku ,,Wczytaj'' wyświetla listę dostępnych oraz listę zainstalowanych pakietów. Rysunki~\ref{fig:tlmgr-general-options} i~\ref{fig:tlmgr-paper-options} pokazują zakładki doczące opcji. \subsection{Przykładowe wywołania \cmdname{tlmgr} z~linii poleceń} Po zainstalowaniu \TL{} można dokonać aktualizacji wszystkich pakietów: \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 przykład dodaje kolekcję zawierającą m.in. nowy ,,silnik'' \XeTeX, %z~innego niż domyślne położenia źródła 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/2015/texmf-dist/ls-R... ... running fmtutil-sys --missing ... Transcript written on xelatex.log. fmtutil: /usr/local/texlive/2015/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: 32768 \end{fverbatim} \noindent \textbf{Uwaga:} pełna dokumentacja programu \cmdname{tlmgr} dostępna jest pod adresem: \url{http://tug.org/texlive/tlmgr.html} lub po uruchomieniu: \begin{alltt} > \Ucom{tlmgr -help} \end{alltt} \section{Uwagi dotyczące Windows} \label{sec:windows} %\TL\ posiada tylko jeden program instalacyjny, działający zarówno w~Unix, %jak i~w~Windows. Stworzenie takiego programu było możliwe dopiero %po zaniechaniu wsparcia dla starszych wersji Windows. Obecnie %\TL\ można instalować tylko w~Windows 2000 i~nowszych. \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 instalowane jest podmenu ,,\TL'', które zawiera kilka pozycji dla programów działających w~trybie graficznym (\prog{tlmgr}, \prog{texdoctk}, PS\_View -- przeglądarka plików postscriptowych) oraz dokumentacji. %Dla PS\_View tworzony jest także %skrót (ikona) na pulpicie, umożliwiający ,,przeciąganie\dywiz upuszczanie'' %na ikonie plików postscriptowych. \item[Skojarzenia typów plików.] Jeśli wybrano tę opcję, \prog{TeXworks}, \prog{Dviout} oraz \prog{PS\_view} otwierają domyślne dla tych programów typy plików (lub, przy 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. \end{description} %\subsection{Program Dviout} % %Obecne wydanie \TL{} nie oferuje niestety preinstalowanego programu do %podglądu plików \acro{DVI} dla Windows, można jednak samodzielnie %zainstalować doskonały \prog{dviout}, autorstwa Toshio Oshimy. Znajdziemy go %w~katalogu \path{support/dviout/}, zawierającym również krótki plik %\filename{README} omawiający, jak zaistalować i~skonfigurować \prog{dviout} %dla \TL. Przed instalacją zalecamy przeczytać informacje tam zawarte. % %Pierwsze uruchomienie \verb+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. \subsection{User Profile to inaczej Home (katalog domowy)} \label{sec:winhome} Odpowiednikiem uniksowego katalogu domowego użytkownika (|$HOME|) jest w~Windows katalog określany zmienną \verb|%USERPROFILE%|. W~Windows XP jest to zazwyczaj katalog \verb|C:\Documents and Settings\| \verb||, zaś w~Windows Vista i~kolejnych wersjach katalog \verb|C:\Users\|. W~pliku konfiguracyjnym \filename{texmf.cnf} i~bibliotekach \KPS{} znak \verb|~| jest poprawnie rozwijany do odpowiedniej zmiennej zarówno w~Windows, jak i~w~Unix/Linux. \subsection{Rejestr Windows} \label{sec:registry} W systemie Windows prawie wszystkie dane konfiguracyjne przechowywane są w~tzw. rejestrze. Zawiera on hierachicznie zorganizowane klucze, w~ramach kilku kluczy głównych. Najbardziej istotne dla programów instalacyjnych są klucze \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~\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 administrata, 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ą zwykłych 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 użytkownik instalujący \TL{} nie jest administratorem, a~programy \TeX-owe są już w~ścieżce przeszukiwania. Wynikowa ścieżka zawiera wtedy ścieżkę systemową, do której dodano ścieżkę do programów użytkownika. W~konsekwencji nie będą znajdowane nowo instalowane programy. Aby rozwiązać ten problem, program instalacyjny tworzy skrót do okna z~wierszem poleceń, w~którym ścieżka do nowych programów \TL{} ma priorytet. W~ten sposób, po uruchomieniu tego skrótu, będzie można korzystać z~\TL. Dotyczy to także 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 żądać uprawnień do uruchomienia programów jako administrator! W rzeczywistości nie ma sensu logowanie jako administrator, zamiast tego wystarczy kliknąć prawym klawiszem myszy na programie (lub skrócie), co pozwala wybrać opcję ,,Uruchom jako administrator''. \subsubsection{Zabezpieczenie katalogu \TL} Nawet gdy instalujemy \TL{} jako administrator, nie zabezpiecza to katalogu docelowego instalacji przed zmianami, które może w~nim dokonać zwykły użytkownik. Po instalacji zatem może być wymagane ustawienie dla tego katalogu odpowiedniej wartości \acro{ACL} (Access Control List; patrz dokumentacja uruchamianego z~wiersza poleceń programu Windows \filename{icacls}). \subsection{Zwiększanie maksymalnej ilości dostępnej pamięci w~Windows i~Cygwin} \label{sec:cygwin-maxmem} Użytkownicy systemów Windows i~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 czcionek. % XXX "dużych" jest brzydkie, ale nie mam lepszego pomysłu :/ W~Cygwin można ten problem rozwiązać w~sposób podany za poradą zawartą w~Podręczniku Użytkownika Cygwin (\url{http://www.cygwin.com/cygwin-ug-net/setup-maxmem.html}). W~Windows należy utworzyć plik, np. \code{moremem.reg}, o~zawartości: \begin{sverbatim} Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\Software\Cygwin] "heap_chunk_in_mb"=dword:ffffff00 \end{sverbatim} \noindent a~następnie wykonać (jako użytkownik z~prawami administratora) polecenie: \code{regedit /s moremem.reg}. Zamiast ustawień globalnych dla systemu, można też zmienić wielkość dostępnej pamięci jedynie dla bieżącego użytkownika, używając \code{HKEY\_CURRENT\_USER}. \section{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} %-------------------------- % 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. 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ę systemem, jego nazwa została zmieniona na Web-to-C\@. W~1990 roku prace nad projektem przejął Karl Berry wraz z~dziesiątkami współpracowników, a~w~roku 1997 pałeczkę przejął Olaf Weber. \Webc{} działa na platformach systemowych, takich jak Unix (w~tym \MacOSX), Windows 9x/\acro{NT/2K/XP} i~innych. System wykorzystuje oryginalne źródła \TeX-owe autorstwa Donalda Knutha oraz inne programy napisane w~\web{} i~tłumaczy je na kod źródłowy~C. Ponadto system udostępnia spory zestaw makr i~funkcji stworzonych dla zwiększenia funkcjonalności oryginalnych zasobów oprogramowania związanego z~\TeX-em. Podstawowymi składnikami systemu są: \begin{cmddescription} \item[bibtex] tworzenie spisów bibliograficznych; \item[dvicopy] modyfikowanie pliku \dvi; \item[dvitomp] konwersja \dvi{} do MPX (rysunki \MP{}-owe); \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 \acro{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} Do lokalizowania plików programy oparte na \Webc{} używają biblioteki do przeszukiwania ścieżek zwanej \KPS{}. 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. \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{Filename-database}) odnosi sie 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. Jeśli baza danych nie istnieje bądź nie odnosi się do danego elementu ścieżki albo też nie zawiera elementów zgodnych, to przeszukiwany jest system plików (jeżeli nie zostało to zabronione przez specyfikację rozpoczynającą się od~\samp{!!}\ oraz jeżeli poszukiwany plik musi istnieć). \KPS{} konstruuje listę podkatalogów, które korespondują z~danym elementem ścieżki, a~następnie sprawdza w~każdym z~nich, czy nie ma tam poszukiwanego pliku. Warunek mówiący, że ,,plik musi istnieć'' dotyczy np. plików \samp{.vf} i~plików dołączanych \TeX-owym poleceniem \cs{openin}. Takiego pliku może nie być (np. \file{cmr10.vf}), błędne byłoby zatem poszukiwanie go na dysku. Jeśli więc zapomnisz o~aktualizacji \file{ls-R} po instalacji nowego pliku \samp{.vf}, to nie zostanie on odnaleziony. Każdy element ścieżki sprawdzany jest w~następującej kolejności: najpierw w~bazie danych, potem na dysku. Jeżeli plik się znajdzie, to przeszukiwanie zostanie zatrzymane i~zwrócony zostanie wynik. Ponieważ najprostszym i~najbardziej powszechnym elementem ścieżki jest nazwa katalogu, \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, tzn. transformuje wszystkie specyfikacje do podstawowej nazwy 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 \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} \tolerance=3500 \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}, %(domyślnie taki plik znajduje się %w~podkatalogu \file{texmf/web2c}). ale nie zalecamy jawnego ustawiania tej, jak i~innych zmiennych w~systemie. Zamiast tego typowa instalacja \TL{} tworzy plik \file{.../2015/texmf.cnf}, który w~wyjątkowych wypadkach możemy modyfikować. Głównym plikiem konfiguracyjnym jest \file{.../2015/texmf-dist/web2c/texmf.cnf}, ale nie powinien być on modyfikowany, gdyż %wprowadzone ewentualne zmiany będą utracone podczas aktualizacji. 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. Czytając zamieszczony poniżej opis 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 ,,\texttt{\%}'', 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ć: \begin{alltt} \emph{zmienna}[.\emph{program}] [=] \emph{wartość} \end{alltt}% gdzie \samp{=} i~otaczające spacje są opcjonalne. \item ,,\texttt{\var{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 ,,\texttt{.\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 ,,\texttt{\var{wartość}}'' zawierać może dowolne znaki poza ,,\texttt{\%}'' i \samp{@}. Nie można używać konstrukcji ,,\texttt{\$\var{zmienna}.\var{program}}'' po prawej stronie. Zamiast tego trzeba zastosować zmienną pomocniczą. Jeżeli systemem operacyjnym jest Unix, to średnik \samp{;}\ użyty w~,,\texttt{\var{wartość}}'' zamieniany jest na \samp{:}; umożliwia to istnienie wspólnego pliku \file{texmf.cnf} dla systemów Unix oraz Windows. \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} Oto fragment pliku konfiguracyjnego ilustrujący większość opisanych powyżej reguł notacji: \ifSingleColumn \verbatiminput{examples/ex5.tex} \else jest pokazany na rys.~\ref{fig:config-sample}. \fi \subsubsection{Rozwijanie ścieżek} \label{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: złożona ś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{Default-expansion} \tolerance=2500 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ą zdefiniowaną w~hierarchii uprzywilejowania ścieżkę przeszukiwania. Jeżeli ta wstawiona ścieżka ma dodatkowy dwukropek, to dzieje się dalej to samo. Przykładowo, jeżeli ustawić zmienną środowiskową \tolerance=1500 \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}. Przykładowo, w~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żywając zmiennej \code{\$TEXMF} we wszystkich definicjach daje pewność, że najpierw przeszukiwane jest drzewo uaktualnione. \subsubsection{Rozwijanie podkatalogów} \label{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 powyższymi 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 i~ich znaczeń -- podsumowanie} Poniższa lista podsumowuje znaczenie znaków specjalnych w~plikach konfiguracyjnych. \newcommand{\CODE}[1]{\makebox[2.2em][l]{\code{#1}}} \begin{description} \item[\CODE{:}] znak rozdzielający w~specyfikacji ścieżki; umieszczony na początku lub na końcu ścieżki zastępuje domyślne rozwinięcie ścieżki; \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{//}] 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 (pozwala na przełamanie wiersza z~wyrażeniem); \item[\CODE{!!}] przeszukiwanie \emph{tylko} bazy danych, a~\emph{nie} dysku. \end{description} \subsection{Bazy nazw plików} \label{Filename-database} Podczas przeszukiwania \KPS{} stara się zminimalizować dostęp do dysku. Niemniej, w~przypadku instalacji ze zbyt dużą liczbą katalogów przeglądanie każdego dopuszczalnego katalogu w~poszukiwaniu pliku może zabierać sporo czasu (ma to miejsce zwłaszcza, jeżeli przeszukać trzeba setki katalogów z~fontami). Dlatego też \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{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 \file{ls-R} jest uruchomienie skryptu \code{mktexlsr}, będącego składnikiem dystrybucji. Jest on wywoływany przez różne skrypty typu \samp{mktex...}. W~zasadzie skrypt ten jedynie wykonuje polecenie \begin{alltt} cd \var{/your/texmf-dist/root} && ls -LAR ./ >ls-R \end{alltt} zakładając, że polecenie \code{ls} danego systemu utworzy właściwy format strumienia wyjściowego (\acro{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 pliku nie ma w~bazie danych, \KPS{} domyślnie przechodzi do przeszukiwania dysku. Jeżeli jednak dany element ścieżki zaczyna sie od \samp{!!}, to w~poszukiwaniu tego elementu sprawdzona zostanie \emph{jedynie} baza danych, a~nigdy dysk. \subsubsection{kpsewhich -- program do przeszukiwania ścieżek} \label{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~,,\texttt{\var{opcje}}'' mogą zaczynać się zarówno od \samp{-}, jak i~od \samp{-{}-}, a~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 nazw plików o~określonej nazwie (w~tym celu można wykorzystać Unix-owy program \samp{find}). Oto ważniejsze parametry. \begin{ttdescription} \item[\texttt{-{}-dpi=\var{num}}]\mbox{}\\* Ustaw rozdzielczość na ,,\texttt{\var{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 ,,\texttt{\var{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ę, których listę wyświetli uruchomienie \texttt{kpsewhich -{}-help}. \item[\texttt{-{}-mode=\var{napis}}]\mbox{}\\* Ustaw nazwę trybu na ,,\texttt{\var{napis}}''; dotyczy to jedynie szukania fontów \samp{gf} oraz \samp{pk}. Brakuje 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ększeniu efektywności działania, sprawdzana jest tylko baza \file{ls-R}. \item[\texttt{-{}-path=\var{napis}}]\mbox{}\\ Szukaj w~ścieżce ,,\texttt{\var{napis}}'' (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 ,,\texttt{\var{nazwa}}''. Może to mieć wpływ na ścieżkę przeszukiwania poprzez ,,\texttt{.\var{program}}'' w~plikach konfiguracyjnych. Ustawieniem domyślnym jest \samp{kpsewhich}. \item[\texttt{-{}-show-path=\var{nazwa}}]\mbox{}\\ Pokazuje ścieżkę używaną do poszukiwania plików typu ,,\texttt{\var{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 ,,\texttt{\var{num}}''. \end{ttdescription} %Zmienne środowiskowe domyślnie ustawiane są w~pliku konfiguracyjnym %\file{texmf.cnf}. W~wypadku gdy chce się unieważnić wartości zmiennych %wyszczególnione w~tym pliku, można narzucić ich ustawienie w~środowisku, %w~którym uruchamiane są programy. \subsubsection{Przykłady użycia} \label{SExamplesofuse} Przyjrzyjmy sie teraz, jak działa \KPS{}. \begin{alltt} > \Ucom{kpsewhich article.cls} /usr/local/texmf-dist/tex/latex/base/article.cls \end{alltt} Szukamy tu pliku \file{article.cls}. Ponieważ rozszerzenie \samp{.cls} jest jednoznaczne, nie musimy zaznaczać, że poszukujemy pliku typu ,,tex'' (katalogi plików źródłowych \TeX-a). Znajdujemy go w~podkatalogu \file{tex/latex/base}, pod katalogiem nadrzędnym \samp{texmf-dist}. Podobnie wszystkie poniższe pliki odnajdywane są bez\-pro\-ble\-mo\-wo 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, % ??? dvips to chyba nie przeglądarka --- % w oryg. było display programs like dvips... takie jak \cmdname{dvips} czy \cmdname{xdvi}. W~tym wypadku wynik przeszukiwania okaże się pusty, ponieważ w~systemie brak gotowych wygenerowanych czcionek \samp{.pk} Computer Modern (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~tym wypadku, kiedy zaznaczamy, że interesuje nas rozdzielczość 300dpi (\texttt{-dpi=300}), to widzimy, że w~naszej instalacji taka czcionka nie jest dostępna. Program taki jak \cmdname{dvips} czy \cmdname{xdvi} zatrzymałby 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 obecnej edycji, 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} (,,\texttt{dvips config}''). \begin{alltt} > \Ucom{kpsewhich tex.pro} /usr/local/texmf-dist/dvips/base/tex.pro > \Ucom{kpsewhich --format="dvips config" config.ps} /usr/local/texmf-var/dvips/config/config.ps > \Ucom{kpsewhich psfonts.map} /usr/local/texmf-var/fonts/map/dvips/updmap/psfonts.map \end{alltt} Następnie przyjrzyjmy się bliżej plikom pomocniczym fontów Times z~kolekcji URW. W~standardzie nazewnictwa fontów mają one prefiks \samp{utm}. Pierwszy plik, którego szukamy, 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{itemize} \item[\texttt{\ 1}] wywołania \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 danego 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. \end{itemize} Wartość \texttt{-1} ustawia wszystkie powyższe opcje -- w~praktyce, poszukując przyczyny błędów, prawdopodobnie będziesz zawsze używać tych poziomów. Podobnie w~przypadku programu \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ć, w~czym 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): \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} \bigskip \input{examples/ex6b.tex} \caption{Szukanie pliku prologu}\label{fig:dvipsdbgb} \bigskip \input{examples/ex6c.tex} \caption{Szukanie pliku fontu}\label{fig:dvipsdbgc} \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 \acro{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{SExamplesofuse}). W~tym miejscu \cmdname{dvips} zgłasza się użytkownikowi: \begin{alltt}\ifSingleColumn This is dvips 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-dist/dvips//: ~/tex/fonts/type1//:!!/usr/local/texmf-dist/fonts/type1//). kdebug:search(texc.pro) => /usr/local/texmf-dist/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} \subsection{Parametry kontrolujące działanie programów} Inną użyteczną cechą \Webc{} jest możliwość ustalania wielu parametrów określających wielkość pamięci za pomocą pliku \texttt{texmf.cnf}. %Załącznik~\ref{app:texmf.cnf} zaczynający się na %stronie~\pageref{app:texmf.cnf} zawiera listing pliku \texttt{texmf.cnf}. Ustawienia wszystkich parametrów znajdują się w~części trzeciej pliku. Najważniejszymi zmiennymi są: \begin{description} \item[\code{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żesz wygenerować ,,ogromną'' wersję formatu \TeX{} i~nazwać %taki plik \texttt{hugetex.fmt}. %Dzięki standardowemu sposobowi nazywania programów przez %\KPS{}, określona wartość zmiennej \verb|main_memory| będzie %przeczytana z~pliku \texttt{texmf.cnf} (por. wartość standardową %oraz wartość ,,ogromną'', wykorzystywaną przez program \texttt{hugetex}, %itd.). % \item[\code{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[\code{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. Tablica główna może zmieścić w~przybliżeniu 10000 nazw; wielkość ta może się okazać zbyt mała, np. w~wypadku obszernej książki zawierającej liczne odsyłacze. Domyślna wartość \texttt{hash\_extra} to \texttt{50000}. \end{description} % Oczywiście powyższa możliwość nie zastąpi prawdziwej, dynamicznej alokacji pamięci. Jest to jednak niezwykle trudne do zaimplementowania w~obecnej wersji \TeX-a i~dlatego powyższe parametry stanowią praktyczny kompromis, pozwalając na pewną elastyczność. Należy tu jednak nadmienić, iż nie wszystkie programy korzystają z tych zmiennych. Np. Lua\TeX\ posiada nowoczesną, w~pełni dynamiczną alokację pamięci, a zatem powyższe zmienne są w tym przypadku po prostu ignorowane. %%==== %\begin{comment} %% nie wiem czemu rezygnować z tej części (SW) \section{Budowa systemu na nowej platformie uniksowej}\label{sec:build} Jeżeli mamy do czynienia z~platformą, dla której nie są dostarczone binaria, trzeba będzie skompilować \TeX-a oraz towarzyszące mu programy. Nie jest to takie trudne, jak się wydaje. Wszystko czego potrzebujemy, znajduje się na \DVD{} w~katalogu \texttt{source}. Najpierw należy zainstalować główne drzewo plików \TeX-owych z~\TL{} \DVD{} (najlepiej wykonać instalację podstawową, bez wybierania binariów systemowych). \subsection{Warunki wstępne} Do skompilowania całego \TeX-a i~jego programów pomocniczych potrzeba około 100 megabajtów wolnego miejsca na dysku. Potrzebny jest także kompilator \acro{ANSI}~C, oprogramowanie \cmdname{make}, skaner leksykalny oraz generator parserów. Programy użytkowe \acro{GNU} (\cmdname{gcc}, \acro{GNU} \cmdname{make}, \cmdname{m4}, \cmdname{flex}, \cmdname{bison}) są najlepiej przetestowanymi na różnych platformach. Poprawnie powinny pracować \cmdname{gcc}-2.7.*, \cmdname{flex}-2.4.7 i~\acro{GNU}\,\cmdname{make}-3.72.1 lub nowszy. Można też korzystać z~innych kompilatorów C i~programów \cmdname{make}, wymaga to jednak dobrego zrozumienia zasad tworzenia programów uniksowych, aby poradzić sobie z~ewentualnymi problemami. %W~wyniku wykonania polecenia \texttt{uname} powinniśmy %otrzymać jakąś rozsądną wartość. \subsection{Konfiguracja} Należy rozpakować źródła ze skompresowanego pliku \texttt{tar} z~katalogu \dirname{source} na twardy dysk, a~potem przejść do katalogu, do którego zostały one skopiowane. Teraz trzeba się zdecydować, gdzie będzie główny katalog instalacji, np.\ \path|/usr/TeX| lub \path|/usr/local/TeX|. Naturalnie, należy użyć tej samej lokalizacji, która została użyta podczas instalacji głównego drzewa \TeX-owego. Uruchomić \textsf{configure} z~linii poleceń: \begin{alltt} > \Ucom{./configure --prefix=/usr/local/TeX} \end{alltt} Katalog ,,prefix'' to ten, w~którym zainstalowane zostało główne drzewo \TeX-owe. Zostanie użyty następujący układ katalogów (\verb|$TEXDIR| oznacza wybrany powyżej katalog): \noindent \begin{tabular}{>{\ttfamily}ll@{}} \dirname{$TEXDIR/man} & strony manuala uniksowego,\\ \dirname{$TEXDIR/share/texmf} & główne drzewo \TeX-owe, zawierające makra itp.,\\ \dirname{$TEXDIR/info} & podręczniki w formacie \acro{GNU} info,\\ \dirname{$TEXDIR/bin/$PLATFORM} & binaria\\ \end{tabular} %$ Można uniknąć stosowania ,,\dirname{share/}'' przed katalogiem \dirname{texmf}, ponieważ \dirname{$TEXDIR/share/texmf} i~\dirname{$TEXDIR/texmf} są wykrywane automatycznie przez skrypt \cmdname{configure}. W~razie wybrania innego katalogu, trzeba ten katalog wyszczególnić parametrem \verb|--datadir| skryptu \cmdname{configure}. Jeżeli nie chcemy używać katalogu \dirname{$PLATFORM} (a~więc umieścić binaria bezpośrednio w~\dirname{$TEXDIR/bin}), to w~wywołaniu skryptu \cmdname{configure} należy użyć parametru \verb|--disable-multiplatform|. Więcej dostępnych parametrów (np. pomijanie pakietów opcjonalnych, takich jak \OMEGA) można zobaczyć, uruchamiając \texttt{./configure -{}-help}. \subsection{Uruchamianie \textsf{make}} Po upewnieniu się, że nie jest ustawiona zmienna powłoki \texttt{noclobber}, należy napisać: \begin{alltt} > \Ucom{make world} \end{alltt} i~\ldots zaparzyć sobie kawę. Może się też przydać zapisanie całego procesu kompilacji w~pliku \texttt{.log}: \begin{alltt} > \Ucom{sh -c "make world >world.log 2>\&1" \&} \end{alltt} Zanim stwierdzimy, że wszystko jest w~porządku, warto sprawdzić, czy w~pliku \texttt{.log} nie ma komunikatów błędów (kiedy polecenie zwraca kod błędu, \acro{GNU} \cmdname{make} zawsze używa sekwencji \samp{***}), i~czy utworzone zostały wszystkie binaria: \begin{alltt} > \Ucom{cd \var{TEXDIR}/bin/\var{archname}} > \Ucom{ls | wc} \end{alltt} Oczekiwanym rezultatem jest ponad 200. Polecenie \texttt{make world} jest równoważne z~\texttt{make all install strip}. Jeśli do uruchamiania \texttt{make install} potrzebne są specjalne uprawnienia, można uruchomić dwie oddzielne sesje \cmdname{make}: \begin{alltt} > \Ucom{make all} > \Ucom{su} > \Ucom{make install strip} \end{alltt} \subsection{Końcowe kroki konfiguracyjne} Należy uaktualnić zmienną \envname{PATH} o~nazwę katalogu zawierającego właśnie zainstalowane binaria (np.\ \dirname{/usr/local/TeX/bin/mips-sgi-irix6.3}); podobnie postąpić trzeba z~\envname{MANPATH} i~\envname{INFOPATH} i~dołączyć do nich odpowiednie nazwy podkatalogów, tj.\ \dirname{$TEXDIR/man} oraz \dirname{$TEXDIR/info}. Patrz część~\ref{sec:postinstall} (str.~\pageref{sec:postinstall}). Jeśli zechcesz udostępnić skompilowane przez siebie programy, skontaktuj się z~nami (\url{tex-live@tug.org}); chętnie umieścimy je na stronie \TL. %\end{comment} %-------------------------- \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: \acro{TUG}, \acro{DANTE} e.V., \acro{NTG}, i~\acro{GUST}), które wspólnie zapewniają potrzebną infrastrukturę techniczną i~organizacyjną. Dołącz do swojej grupy użytkowników systemu \TeX!; \item zespołu \acro{CTAN} (w~szczególności Robina Fairbairnsa i~Rainera Sch\"opfa), 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 ekipie \TL\ i~pomagał w~testowaniu; \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 autotools w~\TL); \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ł i~którego stała pomoc umożliwiła doskonalenie tej dystrybucji; \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ł \ConTeXt\ do potrzeb \TL; \item \Thanh{}a, %%! H\`an Th\^e Th\`anha coś nie działa w polskiej wersji [SW] Martina Schr\"odera i~zespołu pdf\TeX, którzy ciągle ulepszali możliwości tego programu; \item Hartmuta Henkela, mającego istotny udział w~rozwoju pdf\TeX-a, Lua\TeX-a i~innych programów; \item Taco Hoekwatera, który wznowił rozwój MetaPosta i~pracował nad Lua\TeX-em, jak też pomógł w~integracji \ConTeXt\ w~\TL oraz ulepszył bibliotekę Kpathsea, dodając jej wielowątkowość; \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~dystrybucji \acro{W32TEX} (\url{http://w32tex.org}), stale dostosowywane i~aktualizowane dla potrzeb \TL; \item Jonathana Kew, który zainicjował nową ścieżkę rozwojową -- Xe\TeX{}, 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 Dicka Kocha, który pielęgnuje Mac\TeX-a (\url{http://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, która również wzięła udział w~stworzeniu nowej infrastruktury i~programu instalacyjnego dla \TL{} 2008 (szczególnie dla Windows) oraz włożyła sporo pracy w aktualizację tej dokumentacji; \item Mojcy Miklavec, która pomagała wielokrotnie w~pracach związanych z~\ConTeXt; \item Petra Ol\shac{}\aac{}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; \item Norberta Preininga, głównego architekta infrastruktury i~programu instalacyjnego \TL{} 2009 i~nowszych, który przyczynił się również do aktualizacji pakietów, 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; \item Phila Taylora, który skonfigurował BitTorrent (do pobierania plików z sieci) na potrzeby \TL{}; \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); \item Olafa Webera, który cierpliwie pielęgnował Web2C, od którego wszystko zależy; \item Gerbena Wierda, który przygotował oryginalne oprogramowanie i~wsparcie dla \MacOSX{}; \item Grahama Williamsa, który zainicjował prace nad \TeX\ Catalogue. \end{itemize*} Binaria dla różnych platform skompilowali: Ettore Aldrovandi (\pkgname{i386-solaris}, \pkgname{x86\_64-solaris}), Marc Baudoin (\pkgname{amd64-netbsd}, \pkgname{i386-netbsd}), Karl Berry (\pkgname{i386-linux}), %Alan Braslau (\pkgname{amd64-kfreebsd}, \pkgname{i386-kfreebsd}), Peter Breitenlohner (\pkgname{x86\_64-linux}), Ken Brown (\pkgname{i386-cygwin}, \pkgname{x86\_64-cygwin}), Simon Dales (\pkgname{armhf-linux}), % Christian Mensing (\pkgname{mips-irix}), Akira Kakuto (\pkgname{win32}), Dick Koch (\pkgname{universal-darwin}, \pkgname{x86\_64-darwin}), Nikola Le\v{c}i\'c (\pkgname{amd64-freebsd}, \pkgname{i386-freebsd}), Mojca Miklavec (\pkgname{mipsel-linux}, \pkgname{sparc-solaris}), Norbert Preining (\pkgname{alpha-linux}), Thomas Schmitz (\pkgname{powerpc-linux}), Boris Veytsman (\pkgname{armel-linux}). Informacje na temat procesu budowy \TL{} można znaleźć na stronie: \url{http://tug.org/texlive/build.html}. Aktualizacje i~tłumaczenia dokumentacji wykonali: Siep Kroonenberg i~Karl Berry (angielski), Manuel P\'egouri\'e-Gonnard (francuski), Uwe Ziegenhagen (niemiecki), Jjgod Jiang, Jinsong Zhao, Yue Wang i~Helin Gai (chiński), Marco Pallante (włoski), Nikola Le\v{c}i\'c (serbski), Petr Sojka i~Jan Busa (czeski\slash słowacki), Boris Veytsman (rosyjski), Staszek Wawrykiewicz (polski). Na stronie \url{http://tug.org/texlive/doc.html} będą umieszczane ewentualne aktualizacje tej dokumentacji. Oczywiście, najważniejsze podziękowania należą się Donaldowi Knuthowi za stworzenie systemu \TeX{} i~ofiarowanie go nam wszystkim. %%% \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 \acro{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. 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{http://www.debian.org/intro/free}). Dołożyliśmy wszelkich starań, aby sprawdzić warunki licencyjne pakietów. %nadal jednak bardzo prosimy o~zgłaszanie zauważonych pomyłek. Szósta edycja (lipiec 2001) zawierała aktualizacje całego materiału. Główną zmianą było wprowadzenie nowej koncepcji programów instalacyjnych -- użytkownik miał odtąd możliwość dokładniejszego wyboru potrzebnych zestawów i~pakietów. Zestawy dotyczące obsługi poszczególnych języków zostały całkowicie zreorganizowane, dzięki czemu wybór jednego z~nich nie tylko instalował potrzebne makra i~fonty, ale też przygotowywał odpowiedni plik \texttt{language.dat}. \TL~7 (rok 2002) zawierał po raz pierwszy oprogramowanie dla \MacOSX{} 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. 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 \acro{OSF} (poprzednio usunięto także binaria dla \acro{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{http://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:struct-tl} na str.~\pageref{sec:struct-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~podkalogu \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 \acro{DVI}. Możliwe jest jednak wykorzystanie w~\LaTeX, \ConTeXt{} itp. m.in. właściwości mikrotypograficznych 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 \acro{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 \acro{DVI}. \item pdf\TeX\ (\url{http://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 mikrotypograficzne operacje z~fontami są łatwiejsze w użyciu;\\ \url{http://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 Web2C: \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 (\acro{UTF}-8) (patrz \OnCD{texmf-dist/doc/generic/enctex/} oraz \url{http://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{http://www.tex.ac.uk/cgi-bin/texfaq2html?label=aleph}. Format oparty na \LaTeX-u dla programu Aleph nazwano \textsf{lamed}. \item Dystrybucja \LaTeX-a została po raz pierwszy zaopatrzona w~nową licencję \acro{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 \acro{DVI} do formatu graficznego \acro{PNG} (\url{http://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 \acro{CTAN} (\url{http://mirror.ctan.org/tex-archive/fonts/greek/cbfonts}). \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 \acro{MIPS}pro 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 był Xe\TeX{}, w~postaci programów \texttt{xetex} i~\texttt{xelatex}; patrz \OnCD{texmf-dist/doc/xetex/XeTeX-reference.pdf} lub \url{http://scripts.sil.org/xetex}. W istotny sposób został zaktualizowany MetaPost, zaplanowano także jego dalszy rozwój (\url{http://tug.org/metapost/articles}); to samo dotyczy pdf\TeX-a (\url{http://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 \acro{CTAN} (\url{http://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{http://tug.org.pl/texlive}. Mimo iż nie widać efektów tej zmiany w końcowej dystrybucji, mamy nadzieję, że w~nadchodzących latach będzie to stabilne repozytorium oprogramowania dla rozwoju \TL{}. W~maju 2006~r. Thomas Esser ogłosił, że zaprzestaje aktualizowania dystrybucji te\TeX{} (\url{http://tug.org/tetex}). Spowodowało to znaczny wzrost zainteresowanie \TL, szczególnie wśród dystrybutorów \acro{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 takich 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{http://luatex.org}). Prócz nowych, elastycznych możliwości dotyczących składu, udostępnia on doskonały język skryptowy do zastosowania zarówno w~dokumentach \TeX-owych, jak i~poza nimi. Obsługa dla Windows i~platform opartych na Unix została obecnie znacznie bardziej zunifikowana. W~szczególności większość skryptów w~Perlu i~Lua dostępna jest teraz także dla Windows (zastosowano ,,wewnętrzny'' Perl, dostarczany wraz z~\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{http://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 dokonane przez Donalda Knutha (tzw. \textit{\TeX\ tuneup of 2008}); patrz: \url{http://tug.org/TUGboat/Articles/tb29-2/tb92knut.pdf}. \subsubsection{Wydanie 2009} W wydaniu 2009 najbardziej widoczną zmianą jest to, że pdf\AllTeX\ \emph{automatycznie} dokonuje konwersji pliku 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{http://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{http://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 dokonane w plikach metafontowych przez D.~Knutha w ciągu ostatnich lat, a także poprawki hintingu. Hermann Zapf przeprojektował także fonty Euler (patrz \url{http://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{http://www.ams.org/tex/amsfonts.html}. Dla Windows i Mac\TeX{} dołączono nowe środowisko\dywiz edytor \TeX{}works. Dla innych platform patrz: \url{http://tug.org/texworks}. Inspirowany przez edytor TeXShop dla \MacOSX, \TeX{}works jest wieloplatformowym, łatwym w użyciu środowiskiem pracy. Dla niektórych platform załączono nowy program graficzny Asymptote (\url{http://asymptote.sourceforge.net}). 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 \acro{CJK} i zawiera wiele poprawek od ostatniej dystrybucji \code{dvipdfm}. Strona domowa: \url{http://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{http://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{http://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 aktualizacja może zostać łatwo cofnięta poprzez \code{tlmgr restore}. W~przypadku ograniczonej ilości miejsca na dysku, opcja ta może zostać wyłączona przez \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{http://baruch.ev-en.org/proj/chktex}) -- program do sprawdzania dokumentów \AllTeX, dvisvgm -- konwerter DVI do SVG (\url{http://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{http://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 \MacOSX\ (\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ść 2GB. 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 obecnie 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{\enspace 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 mikrotypograficzne 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{http://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{\enspace 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: dodano nowy parametr \cs{pdfsuppresswarningpagegroup} pozwalający 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: dokonano istotnych zmian i~poprawek przy ładowaniu fontów i~wzorców przenoszenia. Najważniejszym dodatkiem są nowe warianty silnika: \code{luajittex} (\url{http://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{http://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 \acro{SVG} i~\acro{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~roż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 \acro{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{http://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. \htmlanchor{news} \subsection{\enspace Obecna edycja -- 2015} \label{sec:tlcurrent} 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, nazwnictwo poleceń wbudowanych itp.). Zmiana ta nie powinna być zauważalna przez użytkownika, choć zmieniono nazwy kilku poleceń wbudowanych, zaś kilka usunięto. pdf\TeX: poprawiono wsparcie dla plików \acro{JPEG} Exif oraz \acro{JFIF} dla zgodności z~programem \prog{xpdf}~3.04. Lua\TeX: dołączono nową bibliotekę \pkgname{newtokenlib} do skanowania żetonów (ang. \eph{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: dołączono nowy system numeryczny \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 \acro{CJK}. Tzw. \textit{The \TeX\ Distribution Preference Pane} działa obecnie w Yosemite (\MacOSX~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. \medskip \noindent %%!Końcowa uwaga, dotycząca przeszłości: Wszystkie wydania \TL{}, wraz z~dodatkowymi materiałami (np. okładkami płytek), są dostępne na stronie: \url{ftp://tug.org/historic/systems/texlive}. \subsection{\enspace 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 na to 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{http://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{http://tug.org/texlive} %\end{quote} %Uaktualnienia, ogłoszenia i~wskazówki będą dostępne na stronie %\url{http://tug.org/texlive.html}. \end{document}