% -- translate-file=il2-pl --
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Contents: Specialities of the LaTeX system (LShort2e Introduction)
% File: spec.tex (Polish translation)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\chapter{Rysunki, skorowidze, generowanie plików PDF\dots}
\begin{intro}
Kolej teraz na opis możliwości \LaTeX{}a przydatnych w~pracy nad większymi
dokumentami, takich jak: dołączania rysunków w~dokumencie, tworzenie
skorowidzów i~spisów literatury. Bardziej szczegółowy opis tych
i~pokrewnych zagadnień można znaleźć w~\manual{} oraz {\companion}.
Pod koniec niniejszego rozdziału jest też mowa o~tym, jak \LaTeX{}
może generować pliki \acro{PDF}.
\end{intro}
\section{Włączanie grafiki w~formacie EPS\label{eps:incl} }
Najprościej przygotować ilustrację w~wyspecjalizowanym programie
graficznym w~rodzaju
\prgi{xfig},
%\prgi{CorelDraw!}, %% generuje błąd (znak ! jest specjalny dla makeindexa)
\prg{CorelDraw!}\prgih{CorelDraw"!},
\prgi{Freehand},
\prgi{gnuplot}, itp.,
a~później włączyć gotowy rysunek do dokumentu. Chociaż można to
zrobić na wiele sposobów, tutaj przedstawimy jedynie sposób
na dołączanie grafiki w~formacie \acro{EPS}\index{EPS@\acro{EPS}}
(\UKemph{Encapsulated PostScript}), jako że jest to technika prosta
i~szeroko stosowana\footnote{%
Użytkownicy programów typu Office, którzy w~tym momencie być może po
raz pierwszy usłyszeli, że istnieje coś takiego jak język {\Postscript}
i~jego wariant \acro{EPS}, mogą być tym stwierdzeniem zdziwieni. Tak
jednak jest w~istocie: inne standardy obowiązuję w~biurze, a~inne
w~przemyśle poligraficznym. Więcej na temat grafiki
można znaleźć w~\cite{myszka}.}.
Do pracy z~grafiką w~formacie
\acro{EPS} potrzebujemy albo drukarki
%%z~wbudowanym interpreterem
wyposażonej w~język {\PostScript}, albo
%%Zamiast interpretera wbudowanego w~drukarkę możemy użyć
programu
\prgi{ghostscript}, dostępnego na przykład pod adresem
% ten adres jest do d... --tp--
%\url{CTAN:/tex-archive/support/ghostscript}.
\url{http://www.cs.wisc.edu/~ghost/}.
Program \prgi{ghostscript} oraz ułatwiające posługiwanie się nim
graficzne nakładki, takie jak: \prgi{ghostview}, \prgi{gv}
czy \prgi{gsview}
są dostępne (pod wyżej wymienionym adresem) na wszystkie popularne
platformy systemowe.
Wielu poleceń przydatnych do włączania rysunków dostarcza
pakiet \pai{graphicx}
(autor: D.~P.~Carlisle\index{Carlisle David}),
będący częścią zestawu o~nazwie ,,graphics''%
\footnote{Zestaw ,,graphics'' jest obowiązkową
(ang.~\UKemph{required}) częścią każdej dystrybucji
{\LaTeX}a, można go też znaleźć w~katalogu \CTAN{macros/latex/required/graphics}.}.
Włączenie grafiki do dokumentu za jego pomocą możemy przedstawić
w~następujący sposób:
\begin{enumerate}
\item W~programie graficznym zachowujemy rysunek w~formacie
\acro{EPS}\footnote{Jeżeli używany przez nas program graficzny na to
\emph{nie pozwala}, to spróbujmy zainstalować sterownik do drukarki
postscriptowej, jak Apple Laser Writer, i~drukować tym sterownikiem
do pliku. Przy odrobinie szczęścia otrzymamy dokument w~formacie
\acro{EPS}. Pamiętajmy, że plik \acro{EPS} %% w~tym formacie
może zawierać tylko jedną stronę. Sterowniki niektórych drukarek
można jawnie ustawić do tworzenia plików wyjściowych właśnie w~tym
formacie.} lub konwertujemy rysunek na format
\acro{EPS}\index{EPS@\acro{EPS}}, jeżeli
dysponujemy już gotową grafiką ale w~innym
formacie\footnote{W~wypadku grafiki obwiedniowej i~rastrowej, można
do tego celu użyć programu \prgi{ImageMagick}
(\urlImageMagick). Dobrym programem do konwersji, ale tylko grafiki
rastrowej, jest \prgi{gimp}~(\urlGimp). Do konwersji zdjęć albo
innych grafik w~formacie \acro{JPG} wygodnym narzędziem jest
\prgi{jpeg2ps} {\urlJPGtoPS}. Niestety konwersja plików
zapisanych w~promowanym przez firmę Microsoft formacie
\acro{WMF}/\acro{EMF} (\prgi{MS Visio},
\prgi{MS Office}, itp.)
często daje opłakane rezultaty, ale to już jest wina wspomnianej
firmy i~stosowanej przez nią ,,strategii biznesowej''\dots }.
\item
Dołączamy pakiet \textsf{graphicx} do preambuły dokumentu:
%
\begin{command}
\verb|\usepackage[|\emph{dvi-ps}\verb|]{graphicx}|
\end{command}
%
gdzie \emph{dvi-ps} oznacza nazwę programu do
konwersji pliku wyjściowego \eei{.dvi} na plik postscriptowy.
Najczęściej używanym do tego celu programem jest
\prgi{dvips}. Nazwa sterownika jest tu konieczna, gdyż
brakuje standardu dotyczącego dołączania grafiki postscriptowej
w~dokumentach \TeX{}owych. Kierując się nazwą sterownika,
pakiet \textsf{graphicx} potrafi do wynikowego pliku \eei{.dvi}
włączyć informację potrzebną do tego, by interpreter
{\PostScript}u (w~drukarce bądź w~komputerze) poprawnie
umieścił rysunek na wydruku.
\item Instrukcją:
%
\begin{command}
\ci{includegraphics}\verb|[|\emph{klucz}=\emph{wartość},
\ldots\verb|]{|\emph{plik}\verb|}|
\end{command}
%
\noindent
włączamy \emph{plik} do dokumentu. Parametr opcjonalny jest listą
oddzielonych przecinkami \emph{kluczy}, o~określonych przez nas
\emph{wartościach}. Klucze wykorzystujemy do zmiany parametrów
dołączanego rysunku, takich jak szerokość, wysokość czy kąt obrotu.
W~tabeli~\ref{keyvals} zamieszczono najważniejsze klucze.
\end{enumerate}
\begin{table}[htb]
\caption{Znaczenie ważniejszych kluczy polecenia
\ci{includegraphics}\label{keyvals}}
\begin{lined}{11.5cm}
\begin{tabular}{@{}ll}
\texttt{width=w} & skalowanie rysunku do podanej szerokości \emph{w}\\
\texttt{height=h}& skalowanie rysunku do podanej wysokości \emph{h}\\
\texttt{angle=a} & obrót o~kąt \emph{a} (przeciwnie do ruchu wskazówek zegara)\\
\texttt{scale=s} & równomierne przeskalowanie w~skali \emph{s}\\
\end{tabular}
\end{lined}
\end{table}
\noindent
Poniższy przykład pomoże zrozumieć całą ideę:
%%
\noindent
\begin{code}%
\begin{verbatim}
\begin{figure}
%\begin{center} zamiast \begin{center} użyj lepiej
\centering % bo \centering nie wstawia dodatkowego odstępu
\includegraphics[angle=90,width=0.5\textwidth]{sowauszata.eps}
\end{figure}
\end{verbatim}
%\showthe\baselineskip [tp]
\end{code}
%
\noindent
W~powyższym przykładzie do dokumentu jest dołączany rysunek z~pliku
\ee{sowauszata.eps}. Rysunek najpierw obracamy o~90$^{\rm o}$ w~kierunku
przeciwnym do ruchu wskazówek zegara, a~następnie przeskalowujemy tak,
by nadać mu szerokość równą połowie szerokości szpalty. Skalowanie
grafiki jest równomierne z~uwagi na brak klucza \texttt{height}.
Szerokość i~wysokość rysunku możemy też określić w~jednostkach
bezwzględnych, takich jak punkty czy centymetry. W~tabeli~\ref{units}
zestawiono jednostki miar w~\LaTeX{}u. Więcej informacji na temat
powyższych zagadnień znajdziemy w~\cite{graphics} i~\cite{eps}.
%%
Z~powodów opisanych w~punkcie~\ref{graph:inc}, \emph{zaleca się\/}
podawać nazwę dołączanego pliku graficznego \emph{bez
rozszerzenia}, to znaczy lepiej zapisać powyższe polecenie
\ci{includegraphics} następująco:
%
\begin{code}
\begin{verbatim}
\includegraphics[angle=90,width=0.5\textwidth]{sowauszata}
\end{verbatim}
\end{code}
%
W~takiej sytuacji {\LaTeX} będzie szukał pliku \ee{sowauszata}
o~rozszerzeniu
adekwatnym do możliwości zadeklarowanego w~poleceniu \ci{usepackage}
sterownika. Przykładowo, jeżeli \pai{graphicx} było wywołane z~opcją
\popti{dvips}, to szukany będzie plik \ee{sowauszata.eps}, jeżeli
zaś użyjemy opcji \popti{pdftex}, to będą szukane pliki
o~rozszerzeniach \eei{.pdf}, \eei{.jpg} i~\eei{.png},
a~pierwszy znaleziony zostanie dołączony.
%% fragment przeniesiony do p. 1.8
%%
Rysunki najlepiej jest umieszczać w~oddzielnym katalogu, będącym
podkatalogiem tego, w~którym jest dokument {\LaTeX}a. Bez względu na
używany system operacyjny katalogi w~ścieżce dostępu należy odzielać
znakiem~\verb@/@\footnote{Wszystkie uwagi dotyczące nazw plików
opisane w~punkcie~\ref{sec:duze-d} dla polecenia \ci{include}
dotyczą także polecenia \ci{includegraphics}.}:
%%
\begin{code}
\begin{verbatim}
\includegraphics[width=0.5\textwidth]{rys/sowy/sowauszata}
\end{verbatim}
\end{code}
\medskip
\noindent
Czasami wewnątrz jednego otoczenia \ei{figure} chcemy umieścić kilka
plików graficznych. W~tym celu wystarczy, że umieścimy je obok siebie
i~w~miarę potrzeby odpowiednio przeskalujemy:
\begin{code}%
\begin{verbatim}
\begin{figure}
\centering
%% http://pl.wikipedia.org/wiki/Ptaki_Polski
\includegraphics[width=.3\textwidth]{sowauszata}
\includegraphics[width=.3\textwidth]{puszczykmszarny}
\includegraphics[width=.3\textwidth]{bubobubo}%puchacz
\end{figure}
\end{verbatim}
\end{code}
%
\noindent
W~powyższym przykładzie trzy rysunki zostaną umieszczone jeden obok
drugiego. Ich łączna szerokość wyniesie $3\times0{,}3=0{,}9$ szerokości
kolumny (\ci{textwidth} w~języku {\LaTeX}a), między rysunkami wstawiony
zostanie odstęp wielkości zwykłej spacji, co wynika z~zasady
\LaTeX{}a, że pojedyncza zmiana wiersza jest traktowana jak odstęp.
Całość zostanie wyśrodkowana w~osi szpalty. Pamiętajmy, żeby do tego
stosować polecenie \ci{centering} a~nie otoczenie~\ei{center}, gdyż to
drugie wstawia dodatkowy a~zbędny odstęp pionowy.
Aby efekt końcowy na wydruku był zadowalający, rysunki powinny mieć
identyczne wymiary. Inaczej, albo poszczególne obrazki będą optycznie
niezgodnie (np. sowa uszata będzie 3~razy większa od puchacza), albo też
poszczególne rysunki składowe będą miały różne wymiary (rysunek z sową
uszatą będzie dwa razy mniejszy niż rysunek z~puchaczem).
%% Ale jak to jest w tym wypadku z PDFem? Jak reagują na to
%% przeglądarki typu yap? A kto pyta? [tp]
Czasami rysunki\index{obracanie!rysunku} czy
tabele\index{obracanie!tabeli} zmieściłyby się na stronie, gdyby
obrócić je o~90$^{\rm o}$. W~tym celu można skorzystać z~pakietu
\pai{rotating}. Do obracania dowolnego fragmentu tekstu,
pudełka\index{pudełko} (por.~punkt~\ref{sec:boxes}), tabeli itp.
należy używać otoczenia \ei{rotate}:
\begin{code}
\begin{verbatim}
\begin{rotate}{kąt} ... \end{rotate}
\end{verbatim}
\end{code}
Do obrócenia obiektu o~kąt 90$^{\rm o}$ należy użyć otoczenia
\ei{sideways}:
\begin{code}
\begin{verbatim}
\begin{sideways} ... \end{sideways}
\end{verbatim}
\end{code}
%%
Do obrócenia tabeli łącznie z~podpisem pod tabelą\index{podpis} należy
zastosować otoczenie \ei{sidewaystable} (uwaga: tabela jest umieszczana
na osobnej stronie):
\begin{code}
\begin{verbatim}
\begin{sidewaystable} ... \end{sidewaystable}
\end{verbatim}
\end{code}
Do obrócenia rysunku łącznie z~podpisem pod rysunkiem
należy użyć otoczenia \ei{sidewaysfigure}
(uwaga: rysunek jest umieszczany na osobnej stronie):
\begin{code}
\begin{verbatim}
\begin{sidewayfigure} ... \end{sidewaysfigure}
\end{verbatim}
\end{code}
%%
\section{Spis literatury}
Do przygotowania spisu literatury służy otoczenie
\ei{thebibliography}. Każda pozycja w~tym otoczeniu ma postać polecenia:
%
\begin{command}
\ci{bibitem}\verb|{|\emph{etykieta}\verb|}|
\end{command}
%
\noindent
\emph{Etykiety} można następnie użyć do zacytowania w~dokumencie tej
pozycji, czyli książki, artykułu bądź pracy konferencyjnej:
%
\begin{command}
\ci{cite}\verb|{|\emph{etykieta}\verb|}|
\end{command}
%
\noindent
Numerowanie pozycji literaturowych jest automatyczne (polecenia
\ci{bibitem} i~\ci{cite} działają podobnie jak opisane
już instrukcje \ci{label} i~\ci{ref}).
Otoczenie \ei{thebibliography} ma jeden parametr, który powinien
zawierać tekst przynajmniej tak szeroki jak najszersza
etykieta ze spisu. W~poniższym przykładzie zapis
\texttt{99} oznacza, że numery
pozycji w~spisie będą co najwyżej dwucyfrowe.
%
\begin{example}
Partl~\cite{pa} zaproponował,
żeby \ldots
\begin{thebibliography}{99}
\bibitem{pa} H.~Partl:
\emph{German \TeX},
TUGboat Vol.~9, No.~1 ('88)
\end{thebibliography}
\end{example}
%%%%
\chaptermark{Rysunki, skorowidze\dots} % naprawiamy szkody
% wyrządzone przez ten przykład
\thispagestyle{fancyplain}
%%%%
\noindent
Do większych projektów przydaje się program
o~nazwie {\BibTeX}\index{\BibTeX}.
Program ten znajduje się w~każdej współczesnej
dystrybucji {\TeX}a. {\BibTeX} 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{Skorowidze\label{sec:indexing} }
Niezwykle użytecznym elementem wielu książek jest skorowidz.
Można go utworzyć
stosunkowo łatwo za pomocą {\LaTeX}a oraz programu narzędziowego o~nazwie
\prgi{makeindex}\footnote{Albo \prg{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
skorowidzów. Jak zawsze, więcej informacji znajdziemy w~\companion.
Generować hasła do skorowidza można dopiero po załadowaniu
w~preambule dokumentu pakietu o~nazwie \pai{makeidx}:
%
\begin{command}
\verb|\usepackage{makeidx}|
\end{command}
%
\noindent
oraz wstawieniu (także w~obrębie preambuły) instrukcji:
%
\begin{command}
\ci{makeindex}
\end{command}
%
\noindent
Hasło wstawiamy do skorowidza poleceniem:
%
\begin{command}
\ci{index}\verb|{|\emph{hasło}\verb|}|
\end{command}
%
\noindent
gdzie \emph{hasło\/} oznacza pozycję w~skorowidzu.
Polecenie \verb@\index{@\emph{hasło}\verb@}@ umieszczamy w~pliku źródłowym
bezpośrednio w~miejscu związanym z~określonym hasłem.
W~tabeli~\ref{index} przedstawiono przykłady użycia \emph{haseł}.
\begingroup
\begin{table}[!thp]
\caption{Przykłady składni polecenia \ci{index}\label{index} }
\vspace{1.0ex}
\tabcolsep3.0pt
\centering
\begin{tabular}{@{}lll@{}}\hline
\textbf{Przykład} &\textbf{Hasło} &\textbf{Uwagi}\\\hline
\rule{0pt}{1.05em}\verb|\index{kot}| &kot, 1 & hasło pierwszego stopnia \\
\verb|\index{kot!rudy}| &\hspace*{2ex}rudy, 3 & hasło drugiego stopnia \\
\verb|\index{Sam@\textsl{Sam}}| &\textsl{Sam}, 2 & hasło sformatowane \\
\verb|\index{Lin@\textbf{Lin}}| &\textbf{Lin}, 7 & hasło sformatowane \\
\verb|\index{Cadiz@C\'adiz}| & C\'adiz, 77 & poprawne sortowanie \\
\verb+\index{Jenny|textbf}+ &Jenny, \textbf{3} & formatowanie numeru strony \\
\verb+\index{Joe|textit}+ &Joe, \textit{5} & formatowanie numeru strony \\
\verb+\index{kot|see{felis}}+ & kot, zob.~felis & relacja pomiędzy hasłami \\
\hline
\end{tabular}%
%% dodane:
\par \smallskip \footnotesize
\noindent
Aby wstawić do skorowidza literalnie znak \verb@!@, \verb.@. albo \verb@|@
należy poprzedzić go znakiem \verb."..
\end{table}
\endgroup
Podczas przetwarzania pliku źródłowego przez {\LaTeX}a każda instrukcja
\ci{index} powoduje, że do pliku pomocniczego zostaje zapisana
odpowiednia pozycja skorowidza wraz z~bieżącym numerem strony. Plik
pomocniczy nosi tę samą nazwę co główny plik źródłowy, ma jednak
rozszerzenie \eei{.idx}. Trzeba go następnie przetworzyć programem
\prgi{makeindex}, w~taki oto sposób:
%
\begin{command}
\texttt{makeindex} \emph{plik}
\end{command}
%
\noindent
W~rezultacie program \prgi{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 %%do dokumentu,
w~miejscu wystąpienia polecenia:
%
\begin{command}
\ci{printindex}
\end{command}
%
\noindent
Pakiet \pai{showidx}, wchodzący w~skład standardowej dystrybucji
%systemu
{\LaTeXe}, drukuje pozycje skorowidza na lewym marginesie szpalty. Jest
on dość przydatny do sprawdzania i~korygowania skorowidza.
Reguły sortowania skorowidza zależą oczywiście od języka, w~którym
piszemy dokument. Pod tym względem program \prgi{makeindex} jest
nieprzydatny dla dokumentów polskojęzycznych, gdyż sortuje hasła
jedynie według zasad języka angielskiego. Wersją programu
\prgi{makeindex} przystosowaną do polskich reguł sortowania
wyrazów jest \prgi{plmindex} (autor: Włodzimierz
Macewicz\index{Macewicz Włodzimierz}). Potrafi on tworzyć skorowidz
według reguł angielskich jak i~polskich. Program ten jest dostępny na
przykład pod adresem {\urlPlmindex}. Więcej informacji na temat
polskich zasad tworzenia skorowidzów można znaleźć
w~\cite{lichonski-idx}.
Umieszczając w~dokumencie polecenie \ci{index}, powinniśmy
zwrócić uwagę na odstępy. Oto przykład, jak może to wpłynąć na skład:
\begin{example}
Moje słowo \index{słowo}. Inaczej
niż słowo\index{słowo}. Zwróćmy
uwagę na pozycję kropki.
\end{example}
\section{Paginy górne i~dolne \label{sec:fancyhdr}}
Pakiet \pai{fancyhdr} (autor Piet van Oostrum\index{Oostrum Piet van}),
który można znaleźć w~katalogu: \CTAN{macros/latex/contrib/fancyhdr/},
udostępnia polecenia do definiowania zawartości pagin. Zwróćmy uwagę na
różnice w~wyglądzie pagin na stronach: bieżącej i~poprzedniej. Oprócz
numeru strony, w~paginie górnej na stronie parzystej znajduje się tytuł
rozdziału, a~na stronie nieparzystej dodatkowo tytuł punktu. Paginę,
której zawartość podąża za treścią dokumentu, nazywa się fachowo żywą
%% paginą\index{żywa pagina@żywa pagina\protect\label{verylast}}.
%% powyższe to hack służący do wstawienia odpowiedniej liczby **
%% minut na stronie tytułowej -- wykorzystujemy fakt, że **
%% hasło ,,żywa pagina'' jest ostatnią pozycją w~skorowidzu **
paginą\index{żywa pagina}.
%% teraz to jest niepotrzebne, bo do złożenia skorowidza
%% używamy multicols
\begin{figure}[!htbp]
\begin{lined}{\textwidth}
\begin{verbatim}
\documentclass{book}
\usepackage{fancyhdr}
\pagestyle{fancy}
% zmiana liter w~żywej paginie na małe
\renewcommand{\chaptermark}[1]{\markboth{#1}{}}
\renewcommand{\sectionmark}[1]{\markright{\thesection\ #1}}
\fancyhf{} % usuń bieżące ustawienia pagin
\fancyhead[LE,RO]{\small\bfseries\thepage}
\fancyhead[LO]{\small\bfseries\rightmark}
\fancyhead[RE]{\small\bfseries\leftmark}
\renewcommand{\headrulewidth}{0.5pt}
\renewcommand{\footrulewidth}{0pt}
\addtolength{\headheight}{0.5pt} % pionowy odstęp na kreskę
\fancypagestyle{plain}{%
\fancyhead{} % usuń p. górne na stronach pozbawionych
% numeracji (plain)
\renewcommand{\headrulewidth}{0pt} % pozioma kreska
}
\end{verbatim}
\end{lined}
\caption{Przykład wykorzystania pakietu \pai{fancyhdr}\label{fancyhdr} }
\end{figure}
Za pomocą {\LaTeX}a można sobie łatwo poradzić z~automatycznym
umieszczaniem odpowiedniej informacji w~żywej paginie. Rozwiązanie jest
następujące. W~definicjach poleceń składających paginy wykonanie
instrukcji \ci{rightmark} oraz \ci{leftmark} wstawia odpowiedni tytuł
rozdziału, punktu lub cokolwiek innego. Poleceniom \ci{rightmark}
i~\ci{leftmark} jest nadawane nowe znaczenie (nowe wartości) za każdym
wykonaniem instrukcji składania tytułu rozdziału i~punktu
(\ci{chapter}, \ci{section}).
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~paginie wystarczy modyfikacja
polecenia~\ci{chaptermark}.
Rysunek~\ref{fancyhdr} przedstawia takie wykorzystanie pakietu,
że paginy górne będą wyglądać mniej więcej tak
jak w~tym podręczniku.
Kompletny opis pakietu znajduje się w~jego dokumentacji.
%dostępnej pod adresem podanym w~ostatnim przypisie. %% lipa
\section{Pakiet \ei{verbatim}}
Pakiet \ei{verbatim} udostępnia poprawioną wersję standardowego
otoczenia \ei{verbatim} (opisanego na stronie~\pageref{verb-envir}).
Oprócz wielu drobnych, chociaż istotnych ulepszeń
pakiet udostępnia polecenie:
%
\begin{command}
\ci{verbatiminput}\verb|{|\emph{plik}\verb|}|
\end{command}
%
\noindent
które dołącza do dokumentu plik tekstowy tak, jakby jego zawartość
znajdowała się wewnątrz otoczenia \ei{verbatim}.
Pakiet \pai{verbatim} jest częścią grupy pakietów o~nazwie ,,tools''.
Wchodzą one w~skład standardowej dystrybucji {\LaTeX}a.
Więcej szczegółów znajdziemy w~\cite{verbatim}.
\section{Instalowanie dodatkowych pakietów\label{sec:Packages}}
Ten punkt jest adresowany raczej do tych czytelników, którzy mają już
doświadczenie w~\LaTeX{}u, do składania dokumentów używają własnych
poleceń i~otoczeń, a~odczuwają potrzebę uporządkowania sobie środowiska
pracy bądź udostępnienia go innym. Czytelnicy początkujący mogą bez
wielkiej straty pominąć ten punkt i~kontynuować czytanie
od następnego punktu.
W~większość instalacji {\LaTeX}a wbudowany jest bogaty zestaw
pakietów dodatkowych, jeszcze ich więcej można znaleźć w~sieci. Głównym
miejscem, %w~Internecie, %% --to oczywiste--tp--
gdzie można je znaleźć, jest archiwum \acro{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
\eei{.ins} i~drugiego o~rozszerzeniu \eei{.dtx}. Często jest też
dołączany plik \ee{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
\noindent
\texttt{\ldots/\emph{localtexmf}/tex/latex}
\noindent
(użytkownicy systemów {\MSWindows} oraz \acro{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:
w~te{\TeX}u i~fp{\TeX}u jest to \prgi{maktexlsr};
a~w~Mik{\TeX}u -- \texttt{initexmf -update-fndb}.
% Do polecenia tego może
% dawać też dostęp środowisko graficzne (GUI) dystrybucji, jeśli takowe
% ona posiada.
W~dystrybucjach wyposażonych w~środowisko graficzne
(np.~Mik{\TeX}) do odświeżenia bazy nazw wystarczy wybrać
odpowiednią pozycję z~menu.
\end{enumerate}
\noindent Można teraz wygenerować dokumentację z~pliku \eei{.dtx}:
\begin{enumerate}
\item Uruchamiamy {\LaTeX}a na pliku \eei{.dtx}, w~wyniku czego
powstanie plik \eei{.dvi}. Niewykluczone, że zanim w~dokumentacji
uporządkują się numery odsyłaczy, będziemy musieli
uruchomić {\LaTeX}a kilka razy.
\item Sprawdzamy, czy wśród wielu plików,
które wygenerował {\LaTeX},
jest plik \eei{.idx}. Jeśli go nie widać, to możemy przejść
do kroku~\ref{step:final}.
\item Aby wygenerować skorowidz, piszemy linijkę rozkazową:
%%
\begin{command}
\texttt{makeindex -s gind.ist \textit{nazwa}}
\end{command}
\noindent
gdzie \textit{nazwa\/} oznacza nazwę głównego spośród
przetwarzanych plików, bez rozszerzenia.
\item Ponownie uruchamiamy {\LaTeX}a na pliku \eei{.dtx}.
\label{step:next}
\item Na koniec coś równie ważnego: aby uprzyjemnić sobie czytanie,
tworzymy plik \eei{.ps} albo \eei{.pdf}.\label{step:final}
\end{enumerate}
%%
\noindent
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ć:
%%
\begin{command}
\texttt{makeindex -s gglo.ist -o \textit{name}.gls \textit{name}.glo}
\end{command}
\noindent
Zawsze przed przejściem do kroku \ref{step:final} musimy
mieć pewność, że w~poprzednim
kroku uruchomiliśmy {\LaTeX}a na pliku~\eei{.dtx}.
\section{Tworzenie plików PDF: {pdf\LaTeX}~i~hyperref \label{sec:pdftex}}
% \section{Praca z~programem pdf\LaTeX} \label{sec:pdftex}\index{PDF}
% to już nie jest tekst Daniela Flipo --tp--
% \secby{Daniel Flipo}{Daniel.Flipo@univ-lille1.fr}%
%
\noindent
\acro{PDF} (\emph{Portable Document Format})
to format hipertekstowy\index{hipertekst}.
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. %%łącza.
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.
Wiekszość spotykanych dziś w~Internecie stron jest napisana w~języku
\acro{HTML}\index{HTML@\acro{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, brakuje też w~komputerach odpowiednich
fontów.
\item Dokumenty \acro{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}
%%
\noindent
Próbowano już na wiele sposobów napisać program tłumaczący język {\LaTeX}a
na \acro{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 \acro{HTML}\index{HTML@\acro{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 \acro{WWW}, a~jednocześnie
chcą utrzymać wysoką jakość typograficzną,
pozostaje w~zasadzie wyłącznie \acro{PDF}\index{PDF@\acro{PDF}}.
Większość współczesnych przeglądarek sieciowych potrafi wyświetlać
%i~drukować
dokumenty w~tym formacie.
Chociaż przeglądarki do plików w~formatch \acro{DVI} i~\acro{PS} są dostępne na
prawie każdej platformie, to jeszcze powszechniej spotyka się
przeglądarki do plików \acro{PDF}, takie jak
\prgi{Acrobat Reader} i~\prgi{xpdf}.
Tak więc, jeśli naszą pracę udostępnimy w~postaci \acro{PDF}, to stanie się
ona łatwiej dostępna dla grona potencjalnych czytelników.
%% --tp--
%% http://www.tug.org/pipermail/macostex-archives/2006-May/022362.html
\subsection{Tworzenie dokumentów PDF w~{\LaTeX}u}
Są dwa sposoby\footnote{Tych sposobów jest więcej, ale
przedstawione dwa są zdecydowanie najczęściej używane.} zamiany
plików źródłowych {\LaTeX}a na dokument \acro{PDF}. Pierwszy z~nich
polega na zamianie pliku \acro{DVI} na dokument \acro{PS} (zwykle za
pomocą programu \prgi{dvips}), który następnie jest transformowany do
formatu \acro{PDF} bądź programem \prgi{ghostscript}, bądź z~użyciem
komercyjnego narzędzia \prgi{Acrobat Distiller}, firmy Adobe.
Drugi sposób
to bezpośrednie generowanie dokumentu \acro{PDF} za pomocą programu
pdf{\TeX}\index{pdftex@pdf\TeX}.
Pierwszy z~wymienionych sposobów, mimo że na pierwszy rzut
oka wydaje się bardziej pracochłonny, ma tę przewagę nad drugim, że
umożliwia wykorzystanie wielu wartościowych pakietów stosujących
język {\PSi}, choćby takich jak \pai{rotate} czy \pai{pstricks}.
Z~kolei utworzenie pliku \acro{PDF} bezpośrednio z~pliku źródłowego, za
pomocą programu {pdf\TeX}\index{pdftex@pdf\TeX},
jest prostsze. Którąkolwiek z~metod wybierzesz,
w~większości przypadków efekt końcowy będzie identyczny.
Program {pdf\TeX}, opracowany przez
H\`an Th\^e\llap{\raise 0.5ex\hbox{\'{}}}~Th\`anha%%
\index{Than Han The @Th\`anh H\`an Th\^e\llap{\raise 0.5ex\hbox{\'{}}}},
generuje dokument \acro{PDF} na podobnej
zasadzie, jak {\TeX} produkuje plik \acro{DVI}. Istnieje też
pdf{\LaTeX}, który tworzy pliki \acro{PDF} ze źródeł
{\LaTeX}owych.\index{pdftex@pdf\TeX}\index{pdflatex@pdf\LaTeX}
Zarówno {pdf\TeX}, jak i~{pdf\LaTeX} wchodzą w~skład wszystkich współczesnych
dystrybucji {\TeX}a, takich jak: {te\TeX}, {fp\TeX}, {Mik\TeX},
{\TeX}Live czy CMac{\TeX}.
Do wygenerowania pliku \acro{PDF}\index{PDF@\acro{PDF}} zamiast
\acro{DVI} wystarcza zastąpić polecenie \texttt{latex file.tex}
instrukcją \texttt{pdflatex file.tex}. W~zintegrowanym środowisku
graficznym\index{IDE@\acro{IDE}}, takim jak \prgi{TeXnicCenter} czy
\prgi{Kile}, uruchomienie obu programów polega na wybraniu odpowiedniego
przycisku z~menu.
% to jest lipa--ew. nadaje się na przypis ale później [tp]:
% wstawione w punkcie nt. hyperref
% W~{\LaTeX}u rozmiar papieru zadaje się w~opcjonalnym argumencie
% polecenia \ci{documentclass}, na przykład \texttt{a4paper} albo
% \texttt{letterpaper}. Działa to również w~pdf\LaTeX{}u, z~tym że musi on
% jeszcze znać fizyczny rozmiar papieru, aby przekazać fizyczny rozmiar stron
% do pliku \acro{PDF}\index{PDF@\acro{PDF}}.\index{paper size}
% Jeśli korzystamy z~pakietu
% \pai{hyperref} (por.~s.~\pageref{ssec:pdfhyperref}), to rozmiar
% dostosuje się automatycznie. W~przeciwnym razie musimy to zrobić
% ręcznie, umieszczając w~preambule dokumentu następujące dwa wiersze:
% %%
% \begin{code}
% \begin{verbatim}
% \pdfpagewidth=\paperwidth
% \pdfpageheight=\paperheight
% \end{verbatim}
% \end{code}
% %%
% \noindent
Tworzenie dobrej jakości dokumentów \acro{PDF} wymaga: użycia
\emph{odpowiednich\/} fontów, dołączenia grafiki we \emph{właściwym\/}
formacie oraz zdefiniowania hiperłączy dla elementów takich jak
odsyłacze, spisy czy skorowidze. W~kolejnych punktach omówimy
te zagadnienia szczegółowo. Jeszcze bardziej detaliczny opis
można znaleźć w~\cite{sapijaszko}.
\subsection{Fonty bitmapowe i~obwiedniowe}
Fonty są bardzo ważną częścią każdego systemu składu. Font to w~istocie
program komputerowy, zawierający opisy znaków oraz dodatkowe informacje
określające sposób ich drukowania i~pozycjonowania na stronie. Większość
fontów jest komercyjna i~nie może być swobodnie rozpowszechniana. Z~tego
powodu system {\TeX} nie używa fontów systemowych, na przykład fontów
dostępnych w~systemie {\MSWindows}, lecz wykorzystuje alternatywne kroje
pisma o~statusie Oprogramowania Otwartego. Inaczej, dokumentu
przygotowanego na przykład w~systemie {\MSWindows} nie można by poprawnie
przetworzyć w~systemie Linux albo, jeżeli nawet dałoby się go
przetworzyć, to otrzymalibyśmy dokument wyglądający
inaczej\footnote{Inne na przykład byłoby łamanie wierszy i~podział na
strony. W~edytorze {\MSWord} nie jest to zresztą uważane za błąd, bo
w~tamtym programie dokument jest przenośny, ale tylko razem z~komputerem,
bo przesłanie dokumentu na inny komputer z~reguły powoduje, że jest on
złożony inaczej.}.
Z~punktu widzenia ,,technologii komputerowej'' fonty dzielimy na
bitmapowe i~obwiedniowe, przy czym te pierwsze --~za wyjątkiem systemu
{\TeX} -- mają znaczenie historyczne. Istnieje kilka standardów
tworzenia fontów obwiedniowych: fonty postscriptowe
(tzw.~fonty Type~1 albo \emph{typu pierwszego\/}),
fonty TrueType oraz najnowsze OpenType. ,,Klasyczne''
bitmapowe fonty {\TeX}a
%\footnote{Z~których
%--~przypominamy -- nie należy korzystać:-).}
określa się akronimem \acro{PK}.
{\LaTeX} umie korzystać zarówno z~fontów \acro{PK}, jak i~z~fontów
Type~1, zaś {pdf\LaTeX}\index{pdflatex@pdf\LaTeX} potrafi dodatkowo
używać fontów TrueType i~OpenType. Jednakże dokument z~tradycyjnymi
fontami \acro{PK} bardzo źle wygląda w~przeglądarce \prgi{Acrobat
Reader}. Najlepiej używać wyłącznie fontów Type~1, bo wówczas
dokumenty zawsze wyświetlają się poprawnie. Współczesne instalacje
{\TeX}a są domyślnie skonfigurowane tak, by używane były fonty
Type~1\footnote{Aby się przekonać, czy tak jest w~wypadku twojej
instalacji, utwórz plik \acro{PDF} (na przykład za pomocą {pdf\LaTeX})
i~wyświetl go w~oknie przeglądarki \prgi{Acrobat Reader}. Jeżeli fonty
na ekranie są nieczytelne i~mają poszarpane brzegi, to masz problem.
%Jeżeli jakość znaków
%jest dobra, to reszty tego punktu możesz nie czytać.
W~nowych dystrybucjach {\LaTeX}a problem ten nie powinien wystąpić,
więc jeżeli go napotkałeś, to przypuszczalnie masz zainstalowaną zbyt
okrojoną wersję systemu \TeX.}.
W~zależności od sposobu polonizacji
dokumentu (por.~punkt~\ref{polski}) {\LaTeX} albo wykorzysta obwiedniowe
wersje fontów \acro{PL}\index{fonty!PL@\acro{PL}},
albo przełączy się na
fonty z~pakietu cm-super\index{fonty!cm-super},
które są implementacją fontów
\acro{EC}\index{fonty!EC@\acro{EC}} w~technologii Type~1.
Ostatnio dostępna stała się wysokiej jakości rodzina fontów
obwiedniowych \acro{LM}\index{fonty!LM@\acro{LM}}
(\emph{Latin Modern}). Jeśli
dysponujemy świeżej daty instalacją {\TeX}a, to jest całkiem możliwe,
że zawiera ona już tę rodzinę.
Wystarczy w~takim wypadku dodać do preambuły:
\begin{code}
\begin{verbatim}
\usepackage{lmodern}
\usepackage[T1]{fontenc}
\end{verbatim}
\end{code}
Uwaga! Rodzina \acro{LM} nie zawiera na razie fontów matematycznych,
dlatego do składu formuł i~tak potrzebne są albo fonty \acro{PL}, albo
oryginalne fonty {\LaTeX}owe.
\noindent
Uwaga! Jeśli w~pliku o~rozszerzeniu \eei{.log}, zawierającym raport
z~kompilacji, pojawią się komunikaty w~rodzaju:
\begin{code}
\begin{verbatim}
Warning: pdftex (file eurmo10): Font eur... not found
\end{verbatim}
\end{code}
to oznacza, że któryś z~fontów potrzebnych do przetworzenia dokumentu
nie został odnaleziony. Problem taki wymaga rzetelnej naprawy, gdyż
przeglądarka plików \acro{PDF} \emph{w~ogóle nie wyświetli stron ze znakami
z~brakującego fontu.}
\subsection{Dołączanie grafiki \label{graph:inc}}
\label{ssec:pdfgraph}
Do włączania grafiki najlepiej korzystać z~pakietu \pai{graphicx}
(zobacz str.~\pageref{eps:incl}). Po wpisaniu \popti{pdftex} jako opcji
\emph{sterownik\/} pakiet zadziała też w~pdf\LaTeX{}u:
%%
\begin{code}
\begin{verbatim}
\usepackage[pdftex]{color,graphicx}
\end{verbatim}
\end{code}
W~tym przykładzie pojawia się również pakiet \pai{color}, jako że stosowanie
kolorów w~sieci jest naturalne.
Tyle dobrych wieści. Złe są takie, że grafika
w~formacie \acro{EPS}\index{EPS@\acro{EPS}} nie
działa w~{pdf\LaTeX}u. Jeśli w~argumencie instrukcji \ci{includegraphics}
pominiemy rozszerzenie nazwy pliku,
to pakiet \pai{graphicx} będzie
szukał pliku w~formacie zależnym od opcji \emph{sterownik}. W~programie
{pdf\TeX} dopuszczalny jest jeden z~formatów: \eei{.png},
\eei{.pdf}, \eei{.jpg}, \eei{.mps}
(\MP\index{metapost@\MP}), ale \emph{nie} \eei{.eps}.
Prostym sposobem wyjścia z~tej sytuacji jest konwersja plików \acro{EPS} na
format \acro{PDF} programem \prgi{epstopdf},
dostępnym na wielu platformach.
Dla grafiki wektorowej (rysunków) jest to wspaniałe rozwiązanie. Dla
mapek bitowych (zdjęcia, skany) nie jest ono idealne, bo format \acro{PDF}
z~natury obsługuje włączanie obrazów w~formatach \acro{PNG} i~\acro{JPEG}.
Format \acro{PNG} jest
dobry do zdjęć z~ekranów i~innych obrazów z~niewielką liczbą kolorów.
Format \acro{JPEG} jest świetny do zdjęć, jako że zużywa na nie mało pamięci.
Niekiedy zamiast rysowania figur geometrycznych korzystniejsze jest
opisywanie ich w~wyspecjalizowanym języku poleceń, na przykład takim,
jaki jest stosowany w~programie \MP\index{metapost@\MP}, który -- wraz
z~obszernym podręcznikiem -- wchodzi w~skład większości dystrybucji
{\TeX}a.
\subsection{Łącza hipertekstowe \label{ssec:pdfhyperref}}
O~kierowanie wewnętrznych odsyłaczy we właściwe miejsca dokumentu zadba
pakiet \pai{hyperref}. Aby zadziałał poprawnie, zaleca się umieścić
polecenie \verb+\usepackage{hyperref}+ jako
\emph{ostatnie\/} %polecenie
w~preambule dokumentu. Sposobem działania
pakietu \pai{hyperref} można sterować za pomocą wielu opcji, które
podajemy bądź ,,tradycyjne'', czyli jako listę rozdzielonych przecinkami
opcji po \ci{usepackage}, wewnątrz nawiasów kwadratowych, bądź jako
argument polecenia \verb+\hypersetup{+\emph{opcje}\verb+}+.
Opcje \popti{pdftex} i~\popti{dvips} są kluczowe, bo określają metodę
generowania dokumentu \acro{PDF}: bezpośrednio za pomocą programu
pdf{\TeX} albo pośrednio poprzez zamianę wynikowego pliku \acro{DVI} na
\acro{PS}, a~potem~\acro{PDF}.
W~poniższym wykazie wartości domyślne są podane pismem prostym.
%\begin{flushleft}
\begin{description}
\item [\texttt{bookmarks (=true,\textit{false})}] w~trakcie wyświetlania
dokumentu Acrobatem pokaż bądź ukryj pasek zakładek;
\item [\texttt{unicode (=false,\textit{true})}]
\index{Unicode}pozwól w~zakładkach
Acrobata używać znaków z~alfabetów niełacińskich;
\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 (=true,\textit{false})}] dostosuj wielkość
wyświetlanego \acro{PDF}-a do wielkości okna;
\item [\texttt{pdftitle (=\{napis\})}] tytuł dokumentu;
\item [\texttt{pdfauthor (=\{napis\})}] nazwisko autora;
\item [\texttt{pdfnewwindow (=true,\textit{false})}] 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 \acro{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[pdftex]{hyperref} %ew. dvips zamiast pdftex
\end{verbatim}
\end{code}
%%
\noindent
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[pdftex,bookmarks,colorlinks]{hyperref}
\end{verbatim}
\end{code}
%%
Gdy tworzymy dokumenty \acro{PDF}\index{PDF@\acro{PDF}} przeznaczone do druku
czarno{\dywiz}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}
%%
Jeśli chcemy dodać informacji o~dokumencie \acro{PDF},
które \prgi{Acrobat} wyświetla
w~oknie~\emph{Document Properties}:
\begin{code}
\begin{verbatim}
\usepackage[pdfauthor={P. Desproges},pdftitle={Des femmes
qui tombent},pdftex]{hyperref}
\end{verbatim}
\end{code}
%%\vspace{\baselineskip}
\medskip
\noindent
Oprócz hiperłączy %generowanych
tworzonych automatycznie możemy umieszczać własne:
\begin{command}
\ci{href}\verb|{|\emph{url}\verb|}{|\emph{text}\verb|}|
\end{command}
%%
\noindent
Przykładowo, w~wyniku wykonania następującego fragmentu:
\begin{code}
\begin{verbatim}
Na stronie \href{http://www.ctan.org}{CTAN}.
\end{verbatim}
\end{code}
zostanie wydrukowane słowo ,,\href{http://www.ctan.org}{CTAN}'',
kliknięcie w~to słowo przeniesie nas na internetową stronę
\acro{CTAN}-u.
Jeśli docelowe miejsce łącza nie jest \acro{URL}-em, lecz plikiem lokalnym,
to możemy użyć polecenia \ci{href} w~następującej postaci:
%%
\begin{code}
\begin{verbatim}
Pełny dokument jest w~\href{manual.pdf}{pliku}.
\end{verbatim}
\end{code}
%
Generuje to tekst ,,Pełny dokument jest w \textcolor{cyan}{pliku}''.
Klikając w~słowo ,,\textcolor{cyan}{pliku}'', otworzymy plik
\texttt{manual.pdf}. (Nazwa pliku jest interpretowana względem
położenia dokumentu \acro{PDF}).
Autorka dokumentu może zachęcić czytelników do korespondencji
elektronicznej, wpisując instrukcję
\ci{href} jako fragment polecenia \ci{author}
na stronie tytułowej dokumentu:
\begin{code}
\begin{verbatim}
\author{Maria 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:
%%
\begin{code}
\verb+\href{mailto:mary@oetiker.ch}{Maria Oetiker}+
\end{code}
to łącze działałoby w~programie \prgi{Acrobat},
lecz adres nie byłby widoczny w~wydruku.
\subsection{Problemy z~łączami}
Ukazaniu się komunikatu w~rodzaju:
%%
\begin{code}
\begin{verbatim}
! pdfTeX warning (ext4): destination with the same
identifier (name{page.1}) has been already used,
duplicate ignored
\end{verbatim}
\end{code}
%%
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 ,,page.1'' staje się niejednoznaczny, stąd notka
,,\verb+duplicate+ \verb+ignored+''.
Możemy temu przeciwdziałać, dodając opcję \popt{plainpages=false}.
Pomaga to niestety tylko w~odniesieniu do licznika stron.
Radykalniejszym rozwiązaniem jest opcja \popt{hypertexnames=false},
która jednak powoduje, że przestają działać odsyłacze do stron
w~skorowidzu.
\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{command}
\ci{texorpdfstring}\verb|{|\emph{\TeX{} tekst}\verb|}{|\emph{Napis na zakładkę}\verb|}|
\end{command}
%%
\noindent
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}
%%
Śródtytuł ,,\verb@E=mc^2@'' przekształca się na zakładce w~,,E=mc2''.
Także zmiany kolorów nie przenoszą się dobrze na zakładki:
%%
\begin{code}
\verb+\section{\textcolor{czerwony}{Czerwony !}}+
\end{code}
%%
Na zakładce otrzymamy ,,redRed!''. Polecenie \verb+\textcolor+ jest
tu ignorowane, chociaż wyświetlany jest jego argument (na czerwono).
Lepszy wynik uzyskamy, wpisując:
%%
\begin{code}
\verb+\section{\texorpdfstring{\textcolor{red}{Red !}}{Red\ !}}+
\end{code}
%%
Jeśli w~dokumencie używamy unikodu, a~pakietowi \pai{hyperref} podamy
opcję \popti{unicode}, to na zakładkach będą mogły wystapić znaki
unikodowe\index{Unicode}.
Poszerza to zakres znaków, które można przekazać
w~poleceniu \ci{texorpdfstring}.
\subsection{Interpretacja pliku źródłowego przez \LaTeX{}a i~pdf\LaTeX{}a}
\label{sec:pdfcompat}
W~idealnych warunkach dokument powinien się równie dobrze kompilować
tak w~\LaTeX{}u, jak i~w~pdf\LaTeX{}u. Problemy w~tym względzie mogą
wynikać przede wszystkim z~włączania grafiki. Prostym sposobem jest
\emph{systematyczne opuszczanie} rozszerzeń nazw plików w~poleceniu
\ci{includegraphics}. Powoduje to wyszukiwanie plików w~formacie
właściwym dla sposobu kompilacji. Reszta sprowadza się do wygenerowania
odpowiednich wersji plików graficznych. \LaTeX{} poszuka plików
\eei{.eps}, podczas gdy pdf\LaTeX{} spróbuje włączyć plik o~jednym
z~rozszerzeń \eei{.png}, \eei{.pdf}, \eei{.jpg} lub
\eei{.mps} (w~podanej kolejności).
Jeśli w~{pdf\TeX}owej wersji dokumentu chcemy użyć innego kodu niż
w~\LaTeX{}owej, to do preambuły możemy dodać pakiet
\pai{ifpdf}\footnote{Pełniejsze wyjaśnienie, kiedy ten pakiet się
przydaje, można znaleźć w~\TeX{}owym \acro{FAQ}-u, w~punkcie
\url{http://www.tex.ac.uk/cgi-bin/texfaq2html?label=ifpdf}.}.
%% mętne [tp]:
%% Są spore
%% szanse, że mamy go już w~instalacji, a~jeśli nie, to prawdopodobnie
%% używamy MiK\TeX{}a, który napotkawszy pierwsze użycie pakietu,
%% zainstaluje go nam automatycznie.
W~pakiecie zdefiniowana jest
instrukcja \ci{ifpdf}, która ułatwia pisanie kodu warunkowego.
W~poniższym przykładzie wersja do druku, w~formacie \acro{PS},
ma być czarno{\dywiz}biała, co obniży koszty w~drukarni,
podczas gdy wersja \acro{PDF}, przeznaczona do wyświetlania na ekranie,
ma być kolorowa:
%%
\begin{code}
\begin{verbatim}
%& --translate-file=il2-pl
\RequirePackage{ifpdf}
% Sprawdzamy, czy działa pdfTeX:
\ifpdf \documentclass[a4paper,12pt,pdftex]{book}
\else \documentclass[a4paper,12pt,dvips]{book} \fi
\ifpdf \usepackage{lmodern} \fi
% dodajemy hiperłącza
\usepackage[bookmarks,colorlinks,plainpages=false]{hyperref}
\usepackage{polski}
...
\end{verbatim}
\end{code}
%%
Pakiet \pai{hyperref} jest tu włączany także w~wersji \acro{PS}.
Dzięki temu polecenie \ci{href} zadziała także w~wypadku kompilacji
zwykłym {\LaTeX}em.
Warto odnotować, że w~niektórych współczesnych dystrybucjach {\TeX}a
%na przykład w~\TeX{}Live,
podstawowym programem używanym do kompilacji dokumentów
jest właśnie \prg{pdftex}. Przełącza się on na
generowanie plików \acro{PDF} albo \acro{DVI}, zależnie od ustawień
podanych wraz z~klasą dokumentu.
Kod podany powyżej pozwala użyć zarówno instrukcji
\prg{pdflatex} do wygenerowania \acro{PDF}-a, jak i~\prg{latex} do
uzyskania pliku~\acro{DVI}.
\subsection{Wymiary kartki papieru}
W~{\LaTeX}u rozmiar papieru zadaje się w~opcjonalnym argumencie
polecenia \ci{documentclass}, na przykład \popti{a4paper} albo
\popti{letterpaper}. Opcje te działają również w~wypadku generowania
dokumentu \acro{PDF}, tyle że ich wykonanie nie wystarcza do stworzenia
poprawnego pliku \acro{PDF}. Jeśli korzystamy z~pakietu \pai{hyperref},
%(por.~s.~\pageref{ssec:pdfhyperref}),
to niezbędne polecenia zostaną
wykonane automatycznie. W~przeciwnym razie musimy to zrobić ręcznie,
umieszczając w~preambule dokumentu następujący fragment:
%%
\begin{code}
\begin{verbatim}
\ifpdf %% działa tylko z pdftex:
\pdfpagewidth=\paperwidth \pdfpageheight=\paperheight
%% dziala z programami latex+dvips:
\else \special{papersize=\paperwidth,\pageheight} \fi
\end{verbatim}
\end{code}
\section{Tworzenie prezentacji \label{sec:beamer}}
\secby{Daniel Flipo}{Daniel.Flipo@univ-lille1.fr}
\noindent
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 {pdf\LaTeX}\index{pdflatex@pdf\LaTeX}
w~połączeniu z~klasą \pai{beamer} służy do
tworzenia prezentacji w~formacie \acro{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, bo
\prgi{Acrobat Reader} jest
dostępny w~większej liczbie systemów.
%%\looseness-3
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 \`a
%compiler avec \wi{pdf\LaTeX} et le
%résultat produit.
% Écran capturé par ImageMagick (man ImageMagick) fonction << import >>
% et convertie en jpg toujours par ImageMagick.
\begin{figure}[!htb]
\begingroup
\advance\baselineskip-.45pt
\begin{verbatim}
%& --translate-file=il2-pl
\documentclass[10pt]{beamer}
\mode{\usetheme[hideothersubsections,%
right,width=22mm]{Goettingen} }
\usepackage{polski}
\title{Prosta prezentacja}
\author[K. Wielki]{Karol Wielki}
\institute{Uniwersytet Karola Wielkiego}
%\titlegraphic{\includegraphics[width=20mm]{USTL}}
\date{2005}
\begin{document}
\begin{frame}
\titlepage \end{frame}
\section{Przykład}
\begin{frame}
\frametitle{Co robić w~niedzielne popołudnie?}
\begin{block}{Można:}
\begin{itemize}
\item pójść na spacer z~psem\pause
\item przeczytać książkę\pause
\item pobawić się z~kotem\pause
\end{itemize}
\end{block}
i~robić wiele innych rzeczy.
\end{frame}
\end{document}
\end{verbatim}
\endgroup
\caption{Prosty kod dla klasy \pai{beamer}}
\label{fig:code-beamer}
\end{figure}
Kompilując {pdf\LaTeX}em\index{pdflatex@pdf\LaTeX}
kod z~rysunku \ref{fig:code-beamer},
otrzymamy plik \acro{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 \acro{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: \texttt{beamer} -- dla omówionych
wyżej prezentacji \acro{PDF}, \texttt{trans} -- do slajdów, oraz
\texttt{handout} -- do wydruku. 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 \emph{tematu}.
Możemy wskazać jeden z~temató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| temat
\emph{Goettingen}, w~którym spisowi treści towarzyszy panel do
nawigacji. Opcje tematu 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| i~\verb|\mode| nie zadano żadnej opcji;
mają się ukazywać w~swoim układzie domyślnym.
%Polecenia \verb|\title{}|, \verb|\author{}|, \verb|\institute{}|, oraz
% czy kogoś pogięło z tymi {}:
Polecenia \ci{title}, \ci{author}, \ci{institute}, oraz
\ci{titlegraphic} określają zawartość strony tytułowej. Opcjonalne
argumenty instrukcji \ci{title} i~\ci{author} pozwalają podać specjalną
wersję tytułu oraz autora do wyświetlenia w~panelu tematu
\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.
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ć w~otoczeniu
\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||.
Warto zatytułować każdy ze slajdów, nie zaś jedynie slajd tytułowy.
Zauważmy, że polecenia \ci{section} i~\ci{subsection} nie służą do
tytułowania slajdów; służy do tego instrukcja \ci{frametitle}. Gdyby
potrzebny był podtytuł, to -- jak pokazano w~przykładzie -- można użyć
otoczenia \ei{block}.
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}. Do dalszego sterowania
prezentacją służą dopuszczalne w~wielu miejscach opcje, podawane
w~nawiasach kątowych.
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 stronę \url{http://latex-beamer.sourceforge.net/}.
\section{Pakiet \pai{pdfscreen}}
Pakiet \pai{pdfscreen}, opracowany przez
C.V.~Radhakrishnana\index{Radhakrishnana C.V.}, pozwala tworzyć
dokumenty \acro{PDF} ,,zorientowane ekranowo'', to znaczy takie, które
będzie się wygodnie czytało z~ekranu monitora (inne wymiary kolumny
tekstu, większy krój pisma). Takie dokumenty mogą też zawierać różne
elementy nawigacyjne przeznaczone do poruszania się po dokumencie.
Efektowne przykłady dokumentów przygotowanych za pomocą pakietu
\pai{pdfscreen} można znaleźć pod adresem {\urlPDFscreenexs}.
Szczegółowy polski opis pakietu zawiera~\cite{sapijaszko}.
\endinput
%%% Local Variables:
%%% mode: latex
%%% TeX-master: "lshort2e"
%%% case-fold-search: nil
%%% ispell-local-dictionary: "polish"
%%% coding: latin-2
%%% End: