%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Contents: Specialities of the LaTeX system
% $Id$
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\chapter{Specjalności}
\begin{intro}
  Przy składaniu większych dokumentów, \LaTeX{} jest w stanie pomóc z wieloma specjalnymi dodatkami, takimi jak generowanie indeksu, zarządzanie bibliografią i wiele innych. Bardziej szczegółowy opis tych
  i pokrewnych zagadnień można znaleźć w {\normalfont\manual{}} oraz {\normalfont \companion}.
\end{intro}

\section{Bibliografia}

Stwórz bibliografię\index{bibliografia} przy użyciu otoczenia
\ei{thebibliography}. Każdy wpis zaczyna się od
\begin{lscommand}
  \ci{bibitem}\verb|[|\emph{etykieta}\verb|]{|\emph{znacznik}\verb|}|
\end{lscommand}
%
\emph{Znacznik} można następnie użyć do zacytowania w dokumencie
danej książki, artykułu bądź pracy konferencyjnej.
\begin{lscommand}
  \ci{cite}\verb|{|\emph{znacznik}\verb|}|
\end{lscommand}
%
Jeśli nie użyjesz opcjonalnej \emph{etykiety} to wpisy będą
numerowane automatycznie. Otoczenie \ei{thebibliography} ma jeden
parametr, który określa ile miejsca należy zarezerwować na liczbę
etykiet. W poniższym przykładzie zapis \texttt{99} oznacza, że numery
pozycji w spisie nie będą szersze niż liczba 99.
\begin{example}
Partl~\cite{pa} zaproponował,
żeby\ldots
\begin{thebibliography}{99}
\bibitem{pa} H.~Partl:
\emph{German \TeX},
TUGboat Vol.~9, No.~1 (1988)
\end{thebibliography}
\end{example}

\chaptermark{Specjalności} % w need to fix the damage done by the
%bibliography example.
\thispagestyle{fancyplain}

Do większych projektów przydaje się program o nazwie Bib\TeX{}.
Program ten znajduje się w każdej współczesnej dystrybucji \TeX{}a.
Bib\TeX{} korzysta z bazy bibliograficznej (biblioteki), z której
wybiera tylko te pozycje literaturowe, które były cytowane w
dokumencie. Sposób formatowania spisów literatury jest sterowany za
pomocą specjalnych szablonów, których modyfikacja umożliwia zmianę
układu graficznego spisu.

%%plext
% Po przetworzeniu pliku, na podstawie zawartości etykiet zapisanych
% przez {\LaTeX}a do pliku \eei{.aux}, {\BibTeX} tworzy spis literatury
% obejmujący tylko te pozycje z~biblioteki, które cytowano w~dokumencie.
% Zwykle plik ten ma rozszerzenie \eei{.bib}. Format spisu zależy od
% specyfikacji szablonu znajdującej się w~pliku o~rozszerzeniu
% \eei{.bst}, a~jest zapisywany do pliku o~rozszerzeniu \eei{.bbl}. Do
% poprawnego sformatowania bibliografii i~cytowań konieczne jest
% przynajmniej trzykrotne przetworzenie dokumentu {\LaTeX}em.
% Więcej informacji na temat przygotowywania spisu literatury za
% pomocą {\BibTeX}a zawiera~\cite{borzyszkowski}.
%%/plext

\section{Indeksy} \label{sec:indexing}

Niezwykle użytecznym elementem wielu książek jest indeks
(skorowidz)\index{indeks}\index{skorowidz}. Można go utworzyć
stosunkowo łatwo za pomocą \LaTeX{}a oraz programu narzędziowego o
nazwie \texttt{makeindex}\footnote{Albo \texttt{makeidx}, jeśli nasz
  system operacyjny nie pozwala używać nazw dłuższych niż 8~znaków.}. W
tym wprowadzeniu omówimy jedynie podstawowe polecenia dotyczące
indeksów. Jak zawsze, więcej informacji znajdziemy w
\companion.\index{makeindex} \index{makeidx}

Generować hasła do indeksu można dopiero po załadowaniu w preambule
dokumentu pakietu o nazwie \pai{makeidx}:
\begin{lscommand}
  \verb|\usepackage{makeidx}|
\end{lscommand}
\noindent
oraz wstawieniu (także w obrębie preambuły) instrukcji
\begin{lscommand}
  \ci{makeindex}
\end{lscommand}

Hasło wstawiamy do indeksu poleceniem
\begin{lscommand}
  \ci{index}\verb|{|\emph{hasło}@\emph{sformatowane hasło}\verb|}|
\end{lscommand}
%
\noindent gdzie \emph{sformatowane hasło} pojawi się w indeksie, a
\emph{hasło} zostanie użyte do sortowania. Część \emph{sformatowane
  hasło} jest opcjonalna. Jeśli ją pominiemy zostanie użyte
\emph{hasło}. Hasła do indeksu wstawiamy w miejscu gdzie chcemy, by
wpisy z indeksu wskazywały. Tabela~\ref{index} przedstawia składnie
oraz kilka przykładów.

\begin{table}[!tp]
  \caption{Przykłady użycia wpisu do indeksu.}
  \label{index}
  \begin{center}
    \begin{tabular}{@{}lll@{}}
      \textbf{Przykład}                      & \textbf{Wpis indeksu} & \textbf{Komentarz}        \\\hline
      \rule{0pt}{1.05em}\verb|\index{witaj}| & witaj, 1              & Zwykły wpis               \\
      \verb|\index{witaj!Peter}|             & \hspace*{2ex}Peter, 3 & Podwpis pod `witaj'       \\
      \verb|\index{Sam@\textsl{Sam}}|        & \textsl{Sam}, 2       & Sformatowany wpis         \\
      \verb|\index{Lin@\textbf{Lin}}|        & \textbf{Lin}, 7       & Sformatowany wpis         \\
      \verb|\index{Kaese@\textbf{K\"ase}}|   & \textbf{K\"ase}, 33   & Sformatowany wpis         \\
      \verb.\index{ecole@\'ecole}.           & \'ecole, 4            & Sformatowany wpis         \\
      \verb.\index{Jenny|textbf}.            & Jenny, \textbf{3}     & Sformatowany numer strony \\
      \verb.\index{Joe|textit}.              & Joe, \textit{5}       & Sformatowany numer strony
    \end{tabular}
  \end{center}
\end{table}

Gdy plik źródłowy zostanie przetworzony przez \LaTeX{}a, wszystkie
polecenia \verb|\index| zapisują odpowiedni wpis do indeksu wraz z
aktualnym numerem strony do specjalnego pliku. Jego nazwa jest taka
sama jak nazwa pliku źródłowego \LaTeX{}, ale z innym rozszerzeniem
(\verb|.idx|). Ten plik \eei{.idx} może być następnie przetworzony
programem \texttt{makeindex}:

\begin{lscommand}
  \texttt{makeindex} \emph{nazwa pliku}
\end{lscommand}
%
W rezultacie program \texttt{makeindex} tworzy posortowany skorowidz
i zapisuje go do pliku o nazwie identycznej z nazwą głównego pliku
źródłowego i o rozszerzeniu \eei{.ind}. Jeżeli jeszcze raz
przetworzymy plik źródłowy, to tym razem skorowidz zostanie włączony
w miejscu wystąpienia polecenia
\begin{lscommand}
  \ci{printindex}
\end{lscommand}

Pakiet \pai{showidx}, wchodzący w skład standardowej dystrybucji
  {\LaTeXe}, drukuje pozycje skorowidza na lewym marginesie. Jest on
dość przydatny do sprawdzania i korygowania skorowidza.

Zwróć uwagę, że polecenie \ci{index} może zmienić układ twojego
dokumentu jeśli nie będzie używane ostrożnie.

\begin{example}
Moje Słowo \index{Słowo}. 
W przeciwieństwie do
Słowa\index{Słowo}. Zwróć
uwagę na pozycję kropki.
\end{example}

% TODO: Sprawdzić (z polskim chyba działa)
\texttt{makeindex} nie zna znaków spoza. Aby poprawnie je posortować
należy użyć \verb|@| jak pokazano w przykładach K\"ase oraz \'ecole
powyżej.

\section{Nagłówki i stopki}
\label{sec:fancy}

Pakiet \pai{fancyhdr}\footnote{Dostępny w
  \CTAN|macros/latex/contrib/supported/fancyhdr|.}, autorstwa Piet van
Oostrum, definiuje kilka prosty poleceń, które pozwalają dostoswać
nagłówek i stopkę dokumentu. Spójrz na górną część tej strony by
zobaczyć przykład użycia tego pakietu.

\begin{figure}[!htbp]
  \begin{lined}{\textwidth}
    \begin{verbatim}
\documentclass{book}
\usepackage{fancyhdr}
\pagestyle{fancy}
% dzięki temu upewniamy się, że nagłówki rozdziału 
% i sekcji są napisane małymi literami
\renewcommand{\chaptermark}[1]{%
        \markboth{#1}{}}
\renewcommand{\sectionmark}[1]{%
        \markright{\thesection\ #1}}
\fancyhf{}  % usuń aktualny nagłówek i stopkę
\fancyhead[LE,RO]{\bfseries\thepage}
\fancyhead[LO]{\bfseries\rightmark}
\fancyhead[RE]{\bfseries\leftmark}
\renewcommand{\headrulewidth}{0.5pt}
\renewcommand{\footrulewidth}{0pt}
\addtolength{\headheight}{0.5pt} % miejsce na linię
\fancypagestyle{plain}{%
   \fancyhead{} % pozbądź się nagłówku na pustych stronach
   \renewcommand{\headrulewidth}{0pt} % tak samo z linią
}
\end{verbatim}
  \end{lined}
  \caption{Przykładowe użycie \pai{fancyhdr}.} \label{fancyhdr}
\end{figure}

Delikatnym problemem z dostosowywaniem nagłówki i stopka jest
uzyskanie prawidłowych nazw sekcji i rozdziałów wewnątrz. \LaTeX{}
uzyskuje to za pomocą dwóch kroków. W definicji nagłówka i stopki
wykorzystujesz polecenia \ci{rightmark} oraz \ci{leftmark} aby
uzyskać odpowiednio nagłówek aktualnej sekcji oraz rozdziału.
Wartości w tych poleceniach są nadpisywane za każdym razem gdy
napotkane jest polecenie rozdziału lub sekcji.

W~rzeczywistości, \ci{chapter} oraz inne polecenia podziału
logicznego dokumentu nie zmieniają znaczenia poleceń \ci{rightmark} i
\ci{leftmark}. Odwołują się one natomiast do poleceń
\ci{chaptermark}, \ci{sectionmark} oraz \ci{subsectionmark}. Dopiero
użycie tych instrukcji powoduje zmianę definicji poleceń
\ci{rightmark} i \ci{leftmark}.

Do zmiany postaci tytułu rozdziału w nagłówkach wystarczy modyfikacja
polecenia~\ci{chaptermark}. \cih{sectionmark}\cih{subsectionmark}

Rysunek~\ref{fancyhdr} przedstawia takie wykorzystanie pakietu, że
nagłówki będą wyglądać mniej więcej tak jak w tym podręczniku.
Kompletny opis pakietu znajduje się w jego dokumentacji.

\section{Pakiet verbatim}

Wcześniej w tej książce pokazaliśmy \emph{otoczenie} \ei{verbatim}. W
tej sekcji dowiesz się o \emph{pakiecie} \pai{verbatim}. Pakiet
\pai{verbatim} jest reimplementacją otoczenia \ei{verbatim}, które
pozbywa się części jego ograniczeń. Nie jest to samo w sobie
zachwycające jednak pakiet \pai{verbatim} dodał również nową
funkcjonalność, co jest powodem dla którgo tutaj o nim wspominamy.
Pakiet udostępnia polecenie

\begin{lscommand}
  \ci{verbatiminput}\verb|{|\emph{nazwa pliku}\verb|}|
\end{lscommand}

\noindent które pozwala na włączenie pliku ASCII do dokumentu tak
jakby znajdował się wewnątrz otoczenia \ei{verbatim}.

Ponieważ pakiet \pai{verbatim} jest częścią kolekcji ,,tools'',
powinien on znajdować się w domyślnej dystrybucji w większości
systemów. Jeśli chcesz dowiedzieć się więcej o tej paczce, możesz
poczytać więcej w \cite{verbatim}.

\section{Instalacja dodatkowych pakietów}\label{sec:Packages}

Większość dystrybucji \LaTeX{}a dostarcza liczny zbiór
zainstalowanych pakietów, ale wiele więcej dostępnych jest w
internecie. Głównym miejscem gdzie można znaleźć pakiety jest CTAN
(\url{http://www.ctan.org/}).

Pakiety takie jak \pai{geometry} albo \pai{hyphenat}, a także wiele
innych, składają się na ogół z dwóch plików: jednego o rozszerzeniu
\texttt{.ins} i drugiego o rozszerzeniu \texttt{.dtx}. Często jest
też dołączany plik \texttt{readme.txt} z krótkim opisem pakietu. Ma
się rozumieć, zawsze warto zaczynać od przeczytania tego właśnie
pliku.

Po skopiowaniu plików pakietu na nasz komputer trzeba je w ten czy
inny sposób przetworzyć, aby po pierwsze wprowadzić do dystrybucji
\TeX{}a informację o nowym pakiecie, a po drugie uzyskać
dokumentację. Oto, jak osiąga się pierwszy z tych celów:

\begin{enumerate}
  \item Uruchamiamy \LaTeX{}a na pliku\eei{.ins}. To powoduje wygenerowanie
        pliku \eei{.sty}.
  \item Plik \eei{.sty} kopiujemy w miejsce, w którym nasza dystrybucja
        \TeX{}a potrafi go odnaleźć. Zazwyczaj jest to katalog o nazwie
        podobnej do \texttt{.../\emph{localtexmf}/tex/latex} (użytkownicy
        systemów Windows oraz OS/2 wiedzą, że w ich systemie trzeba używać
        znaku ukośnika pochylonego przeciwnie).
  \item Odświeżamy zawartą w dystrybucji bazę danych nazw plików. Odpowiednie
        polecenie zależy od dystrybucji \TeX{}a: \TeX{}live --
        \texttt{texhash}; web2c -- \texttt{maktexlsr}; MiK\TeX{} --
        \texttt{initexmf -{}-update-fndb} lub przy użyciu interfejsu
        graficznego
\end{enumerate}

\noindent Można teraz wygenerować dokumentację z pliku \eei{.dtx}:

\begin{enumerate}
  \item Uruchamiamy \hologo{XeLaTeX}a na pliku \texttt{.dtx}. Wygeneruje to
        plik \texttt{.pdf} file. Niewykluczone, że zanim w dokumentacji
        uporządkują się numery odsyłaczy, będziemy musieli uruchomić
        \LaTeX{}a kilka razy.
  \item Sprawdzamy czy \LaTeX{} wygenerował plik \texttt{.idx} wśród wielu
        wygenerowanych plików. Jeśli go nie widać, to oznacza, że
        dokumentacja nie ma indeksu. Możemy przejść do
        kroku~\ref{step:final}.
  \item Aby wygenerować indeks, wpisz następujące polecenie:\\
        \fbox{\texttt{makeindex -s gind.ist \textit{nazwa}}}\\ (gdzie
        \textit{nazwa} oznacza nazwę głównego spośród przetwarzanych plików,
        bez rozszerzenia.
  \item Uruchom \LaTeX{} na pliku \texttt{.dtx} raz jeszcze.
        \label{step:next}
  \item koniec coś równie ważnego: aby uprzyjemnić sobie czytanie, tworzymy
        plik \texttt{.ps} albo \texttt{.pdf}..\label{step:final}

\end{enumerate}

Czasami wśród wygenerowanych plików znajdziemy jeszcze plik
\eei{.glo}. W~takiej sytuacji między krokami~\ref{step:next}
i~\ref{step:final} powinniśmy wykonać:

\noindent\texttt{makeindex -s gglo.ist -o \textit{nazwa}.gls
  \textit{nazwa}.glo}

\noindent Należy również uruchomić \LaTeX{}a raz jeszcze na pliku
\texttt{.dtx} przed przejściem do kroku~\ref{step:final}.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Contents: Chapter on pdfLaTeX
% French original by Daniel Flipo 14/07/2004
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\section{\LaTeX{} i PDF} \label{sec:pdftex}

\index{PDF} \secby{Daniel Flipo}{Daniel.Flipo@univ-lille1.fr}

PDF to przenośny format hipertekstowych\index{hipertekst} dokumentów.
Podobnie jak na stronie internetowej, niektóre słowa są w dokumencie
zaznaczone jako hiperłącza\index{hiperłącze}. Łączą one miejsce w
dokumencie z innymi jego miejscami bądź nawet z innymi dokumentami;
gdy klikamy w takie hiperłącze, jesteśmy przenoszeni do miejsca
docelowego. W kontekście \LaTeX{}a oznacza to, że wszystkie
wystąpienia poleceń \ci{ref} i \ci{pageref} stają się hiperłączami.
Na dodatek spis treści, skorowidz i wszystkie podobne struktury stają
się zestawami łączy. %%łącza.

Większość spotykanych dziś w Internecie stron jest napisana w języku
HTML\index{HTML} (\emph{HyperText Markup Language}). Kiedy przychodzi
do pisania pracy naukowej, format ten ma dwie wady:
\begin{enumerate}
  \item Nie ma dobrej metody włączania wzorów matematycznych. Chociaż został
        zdefiniowany odpowiedni standard, to jednak większość przeglądarek go
        nie obsługuje, lub nie dostarcza odpowiednich fontów.
  \item Dokumenty HTML można co prawda drukować, ale wydruki wyglądają różnie
        w różnych przeglądarkach, a także na różnych platformach. Od jakości,
        do której przyzwyczaja nas \LaTeX{}, wydruki te dzieli przepaść.
\end{enumerate}

Próbowano już na wiele sposobów napisać program tłumaczący język
\LaTeX{}a na HTML. Niektóre z tych programów dają nawet niezłe wyniki
-- w tym sensie, że są w stanie ze źródła w standardowym {\LaTeX}u
wygenerować czytelny dokument HTML\index{HTML}. Wszystkim jednak
zawsze czegoś brakuje. Gdy tylko zachodzi konieczność użycia bardziej
wyrafinowanych możliwości \LaTeX{}a bądź jego pakietów zewnętrznych,
jakość spada. Autorom, którym zależy na publikowaniu w sieci WWW, a
jednocześnie chcą utrzymać wysoką jakość typograficzną, pozostaje w
zasadzie wyłącznie PDF\index{PDF}. Większość współczesnych
przeglądarek sieciowych potrafi wyświetlać dokumenty w tym formacie.

Wszystkie nowoczesne silnika \TeX{}a są w stanie generować dokumenty
PDF od razu po zainstalowaniu. Jeśli wykonujesz przykłady opisane w
tej książce to prawdopodobnie proces ten jest Ci znany.

\subsection{Łącza hipertekstowe}
\label{ssec:pdfhyperref}

Pakiet \pai{hyperref} dodaje dwie klawe funkcje do Twoich plików PDF
z \LaTeX{}a:

\begin{enumerate}
  \item Rozmiar papieru jest ustawiony zgodnie ze specyfikacją w opcjach
        klasy dokumentu.
  \item Wszystkie odniesienia w dokumencie staną się łączami.
\end{enumerate}

Aby to osiągnąć wystarczy dodać \verb+\usepackage{hyperref}+ jako
\emph{ostatnie} polecenie w preambule Twojego dokumentu.

Dostępne jest wiele opcji modyfikujących zachowanie pakietu
\pai{hyperref}, które można podać:
\begin{itemize}
  \item jako listę oddzieloną przecinkami po opcji pdftex\\
        \verb+\usepackage{hyperref}+
  \item jako indywidualne linie przy użyciu polecenia
        \verb+\hypersetup{+\emph{opcje}\verb+}+.
\end{itemize}

W poniższym wykazie wartości domyślne są podane pismem prostym.

\begin{flushleft}
  \begin{description}
    \item [\texttt{bookmarks (=true,\textit{false})}] pokaż lub ukryj pasek
          zakładek podczas wyświetlania dokumentu
    \item [\texttt{unicode (=false,\textit{true})}] pozwala na wykorzystanie
          znaków niełacińskich alfabetów w zakładkach Acrobata
    \item [\texttt{pdftoolbar (=true,\textit{false})}] pokaż bądź ukryj pasek
          narzędziowy Acrobata
    \item [\texttt{pdfmenubar (=true,\textit{false})}] pokaż bądź ukryj menu
          Acrobata
    \item [\texttt{pdffitwindow (=false,\textit{true})}] dostosuj wielkość
          wyświetlanego PDFa do wielkości okna
    \item [\texttt{pdftitle (=\{tekst\})}] tytuł dokumentu wyświetlany w
          informacji o dokumencie
    \item [\texttt{pdfauthor (=\{tekst\})}] nazwisko autora
    \item [\texttt{pdfnewwindow (=false,\textit{true})}] określa, czy w wypadku
          gdy łącze prowadzi poza dokument, ma być otwierane nowe okna
    \item [\texttt{colorlinks (=false,\textit{true})}] określa, czy otoczyć
          hiperłącza kolorowymi ramkami (\texttt{false}) czy kolorować same
          hiperłącza (\texttt{true}). Kolory można konfigurować za pomocą
          następujących opcji (w nawiasach kolory domyślne):
          \begin{description}
            \item [\texttt{linkcolor (=red)}] kolor łączy wewnętrznych (rozdziałów,
                  punktów, stron itp.),
            \item [\texttt{citecolor (=green)}] kolor cytowań, czyli odsyłaczy do
                  bibliografii,
            \item [\texttt{filecolor (=magenta)}] kolor odsyłaczy do plików,
            \item [\texttt{urlcolor (=cyan)}] kolor łączy typu URL (adresy poczty
                  elektronicznej bądź sieciowe).
          \end{description}
  \end{description}
\end{flushleft}

Jeśli zadowalają nas ustawienia domyślne, to wpisujemy:
\begin{code}
\begin{verbatim}
\usepackage{hyperref}
\end{verbatim}
\end{code}

Jeśli przeglądarka ma pokazać listę zakładek, a łącza mają być
kolorowane (wartości domyślnych \texttt{=true} nie trzeba podawać),
to:
\begin{code}
\begin{verbatim}
\usepackage[bookmarks,colorlinks]{hyperref}
\end{verbatim}
\end{code}

Gdy tworzymy dokumenty PDF przeznaczone do druku czarno-białego, to
kolorowanie łączy nie jest najlepszym pomysłem, bo w wydrukach
wychodzą one szare, co utrudnia czytanie. Zamiast tego możemy użyć
kolorowych ramek, które nie są drukowane:
\begin{code}
\begin{verbatim}
\usepackage{hyperref}
\hypersetup{colorlinks=false}
\end{verbatim}
\end{code}
\noindent albo dla łączy używać koloru czarnego:
\begin{code}
\begin{verbatim}
\usepackage{hyperref}
\hypersetup{colorlinks,%
            citecolor=black,%
            filecolor=black,%
            linkcolor=black,%
            urlcolor=black,%
            pdftex}
\end{verbatim}
\end{code}dostarczyć informacji

Jeśli chcesz tylko uzupełnić sekcję \texttt{Informacje o dokumencie}
w pliku PDF:
\begin{code}
\begin{verbatim}
\usepackage[pdfauthor={Pierre Desproges},%
            pdftitle={Des femmes qui tombent},%
            pdftex]{hyperref}
\end{verbatim}
\end{code}

\vspace{\baselineskip}

Oprócz hiperłączy tworzonych automatycznie możemy również umieszczać
własne przy użyciu
\begin{lscommand}
  \ci{href}\verb|{|\emph{url}\verb|}{|\emph{tekst}\verb|}|
\end{lscommand}

Wynikiem kodu
\begin{code}
\begin{verbatim}
Strona \href{http://www.ctan.org}{CTAN}.
\end{verbatim}
\end{code}
jest ,,\href{http://www.ctan.org}{CTAN}''; kliknięcie na napis
,,\textcolor{magenta}{CTAN}'' zabierze cię na stronę CTAN.

Jeśli docelowe miejsce łącza nie jest URL-em, lecz plikiem lokalnym,
to możemy użyć polecenia \ci{href} w następującej postaci:
\begin{verbatim}
  Pełny dokument jest \href{manual.pdf}{tutaj}
\end{verbatim}
Czego efektem jest ,,Pełny dokument jest \textcolor{cyan}{tutaj}''.
Kliknięcie na napis ,,\textcolor{cyan}{tutaj}'' otworzy plik
\texttt{manual.pdf}. (Nazwa pliku jest interpretowana względem
położenia dokumentu PDF).

Autorka dokumentu może zachęcić czytelników do korespondencji
elektronicznej, wpisując instrukcję \ci{href} wewnątrz polecenia
\ci{author} na stronie tytułowej dokumentu:
\begin{code}
\begin{verbatim}
\author{Mary Oetiker $<$\href{mailto:mary@oetiker.ch}%
       {mary@oetiker.ch}$>$
\end{verbatim}
\end{code}
Zauważmy, że łącze zapisano tu tak, iż adres elektroniczny pojawia
się zarówno w łączu, jak i na stronie. Gdyby podać go tak:\\
\verb+\href{mailto:mary@oetiker.ch}{Maria Oetiker}+\\ to łącze
działałoby w programie Acrobat, lecz adres nie byłby widoczny w
wydruku.

\subsection{Problemy z łączami}

Ukazaniu się komunikatu w rodzaju:
\begin{verbatim}
! pdfTeX warning (ext4): destination with the same
  identifier (name{page.1}) has been already used,
  duplicate ignored
\end{verbatim}
towarzyszy reinicjalizacja licznika, na przykład w wyniku użycia
polecenia \ci{mainmatter}, dostępnego w klasie dokumentów
\texttt{book}. Ustala ono wartość licznika stron na~1 tuż przed
pierwszym rozdziałem książki. Ale ponieważ również i wstęp do książki
zawiera stronę~1, to odsyłacz ,,strona 1'' staje się niejednoznaczny,
stąd notka ,,\verb+duplicate+ \verb+ignored+''.

Możemy temu przeciwdziałać, dodając opcję \texttt{plainpages=false}.
Pomaga to niestety tylko w odniesieniu do licznika stron.
Radykalniejszym rozwiązaniem jest opcja \texttt{hypertexnames=false},
która jednak powoduje, że przestają działać odsyłacze do stron w
indeksie.

\subsection{Problemy z zakładkami}

Tekst na zakładkach nie zawsze wygląda zgodnie z naszymi
oczekiwaniami. Ponieważ zakładki są traktowane jako ,,czysto
tekstowe'', może w nich wystąpić mniejszy zakres znaków niż w
normalnym tekście \LaTeX{}owym. Pakiet \pai{hyperref} zauważy tego
typu problem i zasygnalizuje go komunikatem:
\begin{code}
\begin{verbatim}
Package hyperref Warning:
Token not allowed in a PDFDocEncoded string:
\end{verbatim}
\end{code}
Możemy ten problem obejść, podając napis przeznaczony na zakładkę,
który ma zastąpić wywołujący trudność tekst:
\begin{lscommand}
  \ci{texorpdfstring}\verb|{|\emph{Tekst dla \TeX{}a}\verb|}{|\emph{Tekst dla zakładki}\verb|}|
\end{lscommand}

Podstawowym kandydatem do zastosowania takiego postępowania są wzory
matematyczne:
\begin{code}
\begin{verbatim}
\section{\texorpdfstring{$E=mc^2$}%
        {E = mc ** 2}}
\end{verbatim}
\end{code}
Powyższy kod zamieni \verb+\section{$E=mc^2$}+ na ,,E = mc ** 2''
polu zakładek.

Jeśli piszesz swój dokument w Unicode i korzystasz z opcji
\verb+unicode+ pakietu \pai{hyperref} aby pozwolić na wykorzystanie
znaków \verb+unicode+ w zakładkach, to możesz wykorzystać znacznie
więcej znaków do wyboru przy używaniu \ci{texorpdfstring}.

\section{Praca z \hologo{XeLaTeX} i PDF}
\label{sec:xetex}\index{PDF}\index{XeTeX@\hologo{XeTeX}}\index{XeLaTeX@\hologo{XeLaTeX}}
\secby{Axel Kielhorn}{A.Kielhorn@web.de}

Większość punktów opisanych w poprzedniej sekcji odnosi się również
do \hologo{XeLaTeX}a.

Istnieje Wiki na \url{http://wiki.xelatex.org/doku.php}, która
gromadzi informacje istotne dla \hologo{XeTeX}a i \hologo{XeLaTeX}a.

\subsection{Fonty}

Oprócz zwyczajnych fontów opartych na \texttt{tfm}, \hologo{XeLaTeX}
jest w stanie użyć dowolnego fontu znanego w systemie operacyjnym.
Jeśli masz zainstalowany font \texttt{Linux Libertine} to możesz po
prostu napisać

\begin{code}
\begin{verbatim}
\usepackage{fontspec}
\setmainfont[Ligatures=TeX]{Linux Libertine}
\end{verbatim}
\end{code}
%
w preambule. Wersja pogrubiona i kursywa zostanie wykryta
automatycznie, więc \verb|\textit| i \verb|\textbf| będą działać
zgodnie z oczekiwaniami. Gdy font korzysta z technologii OpenType to
zyskujesz również dostęp do wielu funkcji, które wymagały dotąd
zmiany na inne fonty bądź korzystania z wirtualnych fontów w
przeszłości. Główną zaletą jest rozszerzony zbiór znaków; font może
zawierać zarówno znaki łacińskie, greckie, cyrylice oraz odpowiednie
ligatury dla nich.

Wiele fontów zawiera również dwa rodzaje cyfr, zwyczajnie ustawiane
cyfry oraz tak zwane stare cyfry, które wystają nieco poniżej linii
tekstu. Mogą też oprócz proporcjonalnych cyfr (gdzie ,,1'' zajmuje
mniej miejsca niż ,,0'') zawierać również cyfry o jednakowej
szerokości, które lepiej sprawdzają się w tabelach.

\begin{code}
\begin{verbatim}
\newfontfamily\LLln[Numbers=Lining]{(font)}
\newfontfamily\LLos[Numbers=OldStyle]{(font)}
\newfontfamily\LLlnm[Numbers=Lining,Numbers=Monospaced]{(font)}
\newfontfamily\LLosm[Numbers=OldStyle,Numbers=Monospaced]{(font)}
\end{verbatim}
\end{code}

Niemal wszystkie fonty OpenType zawierają standardowe ligatury (fl fi
ffi), ale istnieją również rzadsze bądź historyczne ligatury takie
jak st, ct czy tz. Prawdopodobnie nie chcesz ich używać w pismach
naukowych jednak mogą być przydatne w nowelach. Aby włączyć te
ligatury wykorzystaj jedną z poniższych linii:

\begin{code}
\begin{verbatim}
\setmainfont[Ligatures=Rare]{(font)}
\setmainfont[Ligatures=Historic]{(font)}
\setmainfont[Ligatures=Historic,Ligatures=Rare]{(font)}
\end{verbatim}
\end{code}

Nie każdy font zawiera oba zbiory ligatury, sprawdź dokumentację lub
go wypróbuj by się dowiedzieć czy działa. Czasami ligatury te są
zależne od języka; przykładowo w języku Polskim (fk) nie jest
wykorzystywane w angielskim. Musisz dodać
\begin{code}
\begin{verbatim}
\setmainfont[Language=Polish]{(font)}
\end{verbatim}
\end{code}
aby włączyć polskie ligatury.

Niektóre fonty (jak na przykład komercyjne Adobe Garamond Premier
Pro) zawierają alternatywne glify, które są aktywne domyślnie w
\hologo{XeLaTeX}u\linebreak[1] w dystrybucji \TeX
Live~2010\footnote{W poprzednich wersjach było to domyślnie
  wyłączone.} Rezultatem jest stylowe ,,Q'', którego kreska sięga
poniżej ,,u''. Aby wyłączyć tę funkcję musisz zdefiniować font z
wyłączonymi ,,contextualami'':

\begin{code}
\begin{verbatim}
\setmainfont[Contextuals=NoAlternate]{(font)}
\end{verbatim}
\end{code}

Aby dowiedzieć się więcej o fontach w \hologo{XeLaTeX} przeczytaj
dokumentację pakietu \pai{fontspec}.

\subsubsection{Skąd wziąć fonty OpenType?}

Jeśli masz zainstalowanego \texttt{TeXLive} to już posiadasz ich
nieco w katalogu \url{.../texmf-dist/fonts/opentype}, wystarczy, że
zainstalujesz je w swoim systemie. Kolekcja ta nie zawiera
\texttt{DejaVu}, które możesz znaleźć na
\url{http://dejavu-fonts.org/}.

Upewnij się, że każdy font zainstalowany jest dokładnie \emph{raz}, w
przeciwnym razie mogą się wydarzyć ciekawe rzeczy.

Możesz korzystać z dowolnego fontu zainstalowanego na Twoim
komputerze, jednak pamiętaj, że inni użytkownicy mogą nie mieć danego
fontu u siebie. Font Zapfino użyty w dokumentacji \pai{fontspec} jest
dostępny w Mac OSX, ale nie jest dostępny na komputerach z systemem
Windows\footnote{Dostępna jest komercyjna wersja fontu o nazwie
  Zapfino Extra.}.

\subsubsection{Wprowadzanie znaków Unicode}

Liczba znaków w fontach znacząco wzrosła, jednak liczba klawiszy na
klawiaturze już nie. Więc jak możemy wprowadzać znaki spoza ASCII?

Jeśli piszesz sporą część tekstu w obcym języku, możesz zainstalować
układ klawiatury i wydrukować pozycje znaków (większość systemów
operacyjnych zawiera jakąś klawiaturę wirtualną, więc wystarczy
wykonać zrzut ekranu).

Jeśli tylko czasami potrzebujesz wprowadzić inny znak, możesz zwykle
wybrać z palety znaków.

Niektóre otoczenia (np. X Window System) oferuje wiele opcji na
wprowadzanie znaków spoza ASCII. Niektóre edytory (np. Vim i Emacs)
oferują sposoby wprowadzania tych znaków. Przeczytaj dokumentację
narządzi z których korzystasz.

\subsection{Kompatybilność pomiędzy \hologo{XeLaTeX}, a \hologo{pdfLaTeX}}

Istnieją pewne różnice pomiędzy \hologo{XeLaTeX}em i
\hologo{pdfLaTeX}em.

\begin{itemize}
  \item Dokument \hologo{XeLaTeX} musi być napisany w Unicode (UTF-8) podczas
        gdy \hologo{pdfLaTeX} może korzystać z różnych kodowań plików
        źródłowego.
        % TODO: Sprawdzić
  \item Pakiet \pai{microtype} nie działa jeszcze z \hologo{XeLaTeX}, jednak
        wsparcie dla występów liter jest w trakcie tworzenia1.
  \item Wszystko co związane z fontami musi zostać sprawdzone (chyba, że
        korzystasz z Latin Modern).
\end{itemize}

\section{Tworzenie prezentacji}
\label{sec:beamer} \secby{Daniel Flipo}{Daniel.Flipo@univ-lille1.fr}
Wyniki naszej pracy naukowej możemy przedstawiać kredą na tablicy, za
pomocą rzutnika i przeźroczy (slajdów) bądź -- posługując się
odpowiednim oprogramowaniem -- bezpośrednio z laptopa.

Program \wi{pdf\LaTeX} w połączeniu z klasą \pai{beamer} służy do
tworzenia prezentacji w formacie PDF. Wyglądają one tak, jak gdybyśmy
je wygenerowali -- mając dobry dzień i sporo szczęścia -- za pomocą
PowerPointa, ale są bardziej przenośne, ponieważ programy obsługujące
PDF są dostępne w większej liczbie systemów.

Klasa \pai{beamer} używa pakietów \pai{graphicx}, \pai{color} oraz
\pai{hyperref} z opcjami zaadaptowanymi do prezentacji ekranowych.
%La figure~\ref{fig:pdfscr} contient un exemple de fichier minimal
%compiler avec \wi{pdf\LaTeX} et le
%rsultat produit.

% cran captur par ImageMagick (man ImageMagick) fonction  import
% et convertie en jpg toujours par ImageMagick.

\begin{figure}[htbp]
  \begin{verbatim}
\documentclass[10pt]{beamer}
\mode<beamer>{%
  \usetheme[hideothersubsections,
            right,width=22mm]{Goettingen}
}

\title{Prosta prezentacja}
\author[D. Flipo]{Daniel Flipo}
\institute{U.S.T.L. \& GUTenberg}
\titlegraphic{\includegraphics[width=20mm]{USTL}}
\date{2005}

\begin{document}

\begin{frame}<handout:0>
  \titlepage
\end{frame}

\section{Przykład}

\begin{frame}
  \frametitle{Co robić w niedzielne popołudnie?}
  \begin{block}{Można\ldots}
    \begin{itemize}
      \item pójść na spacer z psem\dots \pause
      \item przeczytać książkę\pause
      \item pobawić się z kotem\pause
    \end{itemize}
  \end{block}
  i wiele innych rzeczy.
\end{frame}
\end{document}
\end{verbatim}
  \caption{Prosty kod dla klasy \pai{beamer}} \label{fig:code-beamer}
\end{figure}

Kompilując kod sprezentowany w rysunku~\ref{fig:code-beamer} przy
pomocy \wi{pdf\LaTeX} otrzymamy plik PDF ze stroną tytułową oraz
jeszcze jedną stroną, zawierającą kilka punktów, które mają się
odsłaniać w miarę, jak podczas prezentacji będziemy przechodzili do
kolejnych jej kroków.

Jedną z zalet klasy \pai{beamer} jest to, że generuje ona gotowy do
użycia plik PDF, bez konieczności przechodzenia przez fazę
postscriptową, jak to jest w wypadku pakietu \pai{prosper} albo
wymagającego dodatkowego przetworzenia pakietu \pai{ppower4}.

Korzystając z klasy \pai{beamer}, możemy z tego samego pliku
źródłowego generować kilka wersji prezentacji, tak zwanych trybów.
Plik źródłowy może w nawiasach kątowych zawierać instrukcje
przeznaczone do różnych trybów. Dostępne są następujące tryby:

\begin{description}
  \item[beamer] dla omówionych wyżej prezentacji PDF,
  \item[trans] do slajdów.
  \item[handout] do wydruku.
\end{description}
Domyślnym jest \texttt{beamer}, a inny
tryb możemy zadać jako opcję globalną, wpisując na przykład
\verb|\documentclass[10pt,handout]{beamer}| w celu wydrukowania
materiałów do rozdania.

Wygląd ekranu prezentacji zależy od wybranego motywu. Możemy wskazać
jeden z motywów dostarczanych wraz z klasą albo stworzyć nasz własny.
Więcej informacji na ten temat można znaleźć w opisie klasy zawartym
w pliku \texttt{beameruserguide.pdf}.

Przyjrzyjmy się bliżej kodowi z rysunku~\ref{fig:code-beamer}.

Do wersji ekranowej prezentacji wybrano dla trybu
\verb|\mode<beamer>| motyw \emph{Goettingen}, w którym spisowi treści
towarzyszy panel do nawigacji. Opcje motywu pozwalają określić
rozmiar panelu (w tym wypadku 22$\,$mm) oraz jego pozycję (z prawej
strony głównego tekstu). Opcja \emph{hideothersubsections} nakazuje
pokazywać tytuły punktów, jednak tylko te, które pochodzą z bieżącego
rozdziału. Dla trybów \verb|\mode<trans>| i \verb|\mode<handout>| nie
zadano żadnej opcji; mają się ukazywać w swoim układzie domyślnym.

Polecenia \ci{title}, \ci{author}, \ci{institute}, oraz
\ci{titlegraphic} określają zawartość strony tytułowej. Opcjonalne
argumenty poleceń \ci{title} oraz \ci{author} pozwalają podać
specjalną wersję tytułu oraz autora do wyświetlenia w panelu motywu
\emph{Goettingen}.

Tytuły oraz podtytuły na panelu są tworzone przez zwykłe polecenia
\ci{section} i \ci{subsection}, umieszczone \emph{poza} otoczeniem
\ei{frame}.

Maleńkie ikonki u dołu ekranu służą do nawigowania po dokumencie. Ich
obecność nie zależy od wybranego motywu.
% Można ich ukazywanie się zablokować poleceniem:
% \begin{code}
% \begin{verbatim}
% \setbeamertemplate{navigation symbols}{}
% \end{verbatim}
% \end{code}

Zawartość każdego slajdu oraz ekranu należy umieścić wewnątrz
otoczenia \ei{frame}. W nawiasach kątowych \verb|<| i \verb|>| można
podać opcjonalny argument, który pozwala ukryć slajd w jednym z
trybów prezentacyjnych. W powyższym przykładzie pierwsza strona nie
ukaże się w trybie materiałów do rozdania, gdyż w argumencie
otoczenia \ei{frame} podano argument \verb|<handout:0>|.

Warto zatytułować każdy ze slajdów z wyjątkiem slajdu tytułowego.
Służy do tego polecenie \verb|\frametitle{}|. Jeśli potrzebny jest
również podtytuł użyj otoczenia \ei{block} tak jak pokazano w
przykładzie. Zauważmy, że polecenia \ci{section} i \ci{subsection}
nie składają niczego na faktycznych slajdach.

Użycie polecenia \ci{pause} w otoczeniu \ei{itemize} pozwala rozwijać
punkty jeden po drugim, w miarę postępów prezentacji. Dodatkowe
efekty prezentacyjne można osiągnąć za pomocą instrukcji: \ci{only},
\ci{uncover}, \ci{alt} oraz \ci{temporal}. W wielu miejscach możliwe
jest użyte nawiasów kątowych do dalszego sterowania prezentacją.

Cokolwiek mówić, aby uzyskać pełny obraz wszystkich dostępnych
parametrów, trzeba przeczytać dokumentację
\texttt{beameruserguide.pdf} klasy \pai{beamer}. Pakiet ten jest
ciągle rozwijany, dlatego warto po nowości zajrzeć na ich stronę
(\href{http://latex-beamer.sourceforge.net/}{http://latex-beamer.sourceforge.net/}).

% Local Variables:
% TeX-master: "lshort2e"
% mode: latex
% mode: flyspell
% End:
