% -- 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: