%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Contents: Specialities of the LaTeX system (LShort2e Introduction) % File: spec.tex (Polish translation) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \chapter{Rysunki, skorowidze\dots} \begin{intro} Kolej na opis możliwości \LaTeX-a przydatnych podczas prac nad większymi dokumentami, tj. dołączania rysunków, tworzenia skorowidzów i~spisów literatury. Bardziej szczegółowy opis tych i~podobnych zagadnień znajdziemy w~\manual{} i~{\companion}. \end{intro} \section{Dołączanie grafiki w~formacie EPS\label{eps:incl} } Środowisko \envr{figure} pozwala zarezerwować miejsce na wstawienie rysunku do dokumentu \LaTeX-owego. Rysunki możemy tworzyć na wiele sposobów przy wykorzystaniu standardowych oraz niestandardowych pakietów \LaTeX-a. Trzeba jednak przyznać, że dla większości użytkowników, nauka posługiwanie się tymi pakietami jest trudna a~tworzenie rysunków za ich pomocą pracochłonne. Dlatego nie będziemy się już nimi dalej zajmować. Zainteresowanych odsyłamy do \companion{} oraz \manual. Znacznie prostszym sposobem wstawiania rysunków do dokumentu jest uprzednie ich przygotowanie za pomocą wyspecjalizowanych programów graficznych, takich jak XFig, CorelDraw!, Freehand, Gnuplot, itd., a~następnie dołączenia gotowych rysunków do dokumentu. Także i~tym przypadku można to wykonać na wiele sposobów. W~tym wprowadzeniu przedstawimy tylko dołączanie grafiki w~formacie EPS\index{EPS} (\UKemph{Encapsulated PostScript}) z~uwagi na to, że jest to sposób prosty a~do tego zdecydowanie najpowszechniej wykorzystywany. Po to żeby wykorzystywać grafikę w~formacie EPS potrzebna jest drukarka z~wbudowanym interpreterem języka PostScript\footnote{Zamiast interpretera w~drukarce możemy użyć programu ghostscript\index{ghostscript} dostępnego, np.~w~\CTAN{support/ghostscript}.} \begin{TPextension} Program ghostscript\index{ghostscript} jest interpreterem języka PostScript o~statusie oprogramowania \emph{freeware}. Obsługuje kilkadziesiąt różnorakich urządzeń, w~tym wiele popularnych drukarek oraz kart graficznych. Pozwala on obejrzeć dokument na ekranie przed drukiem. Nie mamy takiej możliwości wykorzystując interpreter w~drukarce. Program ghostscript jest dostępny na wszystkich popularnych platformach systemowych. \end{TPextension} \noindent Do dołączenia rysunków do dokumentu można skorzystać z~poleceń pakietu \pai{graphicx} (autor: D.~P.~Carlisle). Pakiet ten jest częścią zestawu pakietów zwanego ,,graphics''% \footnote{\CTAN{macros/latex/packages/graphics}}. Zakładając, że dysponujemy interpreterem języka PostScript oraz pakietem \textsf{graphicx}, dołączanie grafiki można przedstawić następująco: \begin{enumerate} \item Zapisujemy rysunek w~formacie EPS\footnote{Jeżeli program graficzny, którym się posługujemy nie pozwala nam na to, spróbujmy zainstalować sterownik do drukarki postscriptowej w~rodzaju Apple Laser Writer i~drukować za pomocą tego sterownika do pliku. Przy odrobinie szczęścia plik wynikowy będzie w~formacie EPS. Pamiętajmy jednak, że pliki w~tym formacie mają tylko jedną stronę. Sterowniki niektórych drukarek można jawnie ustawić właśnie do tworzenia plików w~tym formacie.}. \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ę sterownika wykorzystywanego do zamiany pliku \texttt{.dvi} na plik postscriptowy. Najczęściej używanym do tego celu programem jest \texttt{dvips}\index{dvips}. Nazwa sterownika jest tu konieczna z~uwagi na brak standardu dotyczącego dołączania grafiki PostScriptowej do dokumentów \LaTeX-owych. Podanie nazwy pozwala na wybór metody specyficznej dla danego sterownika. \item Instrukcją: % \begin{command} \ci{includegraphics}\verb|[|\emph{klucz}=\emph{wartość}, \ldots\verb|]{|\emph{plik}\verb|}| \end{command} % dołączamy \emph{plik} do dokumentu. Parametr opcjonalny jest listą, oddzielonych przecinkami \emph{kluczy} o~określonych przez nas \emph{wartościach}. Klucze wykorzystujemy do zmian parametrów rysunku, tj. szerokości czy wysokości rysunku oraz kąta obrotu. W~tablicy~\ref{keyvals} zamieszczono najważniejsze klucze. \end{enumerate} \begin{table}[htb] \caption{Nazwy kluczy w~pakiecie \textsf{graphicx}\label{keyvals}} \begin{lined}{9.75cm} \begin{tabular}{@{}ll} \texttt{width} & skalowanie rysunku do szerokości \emph{width}; \\ \texttt{height}& skalowanie rysunku do wysokości \emph{height}; \\ \texttt{angle} & obrót (przeciwnie do ruchu wskazówek zegara); \\ \texttt{scale} & skalowanie równomierne. \\ \end{tabular} \end{lined} \end{table} Poniższy przykład pozwoli nam lepiej zrozumieć to, co zostało przedstawione w~powyższych punktach: % \begin{code} \begin{verbatim} \begin{figure} \begin{center} \includegraphics[angle=90,width=0.5\textwidth]{test.eps} \end{center} \end{figure} \end{verbatim} \end{code} % \noindent Dołączony zostaje rysunek zawarty w~pliku \texttt{test.eps}. Rysunek najpierw obracamy o~90 stopni w~kierunku przeciwnym do ruchu wskazówek zegara a~następnie przeskalowujemy tak, aby jego szerokość była równa połowie szerokości szpalty. Skalowanie grafiki jest równomierne z~uwagi na brak klucza \texttt{height}. Szerokość i~wysokość rysunku możemy także określić przy użyciu miar bezwzględnych. W~tabeli~\ref{units} zamieszczono zestawienie jednostek miar w~\LaTeX-u. Więcej informacji dotyczącej powyższych zagadnień znajdziemy w~\cite{graphics} oraz \cite{eps}. %% \section{Spis literatury} Do przygotowania spisu literatury używamy środowiska \ei{thebibliography}. Każda pozycja w~tym spisie rozpoczyna się poleceniem: % \begin{command} \ci{bibitem}\verb|{|\emph{etykieta}\verb|}| \end{command} % \noindent \emph{Etykietą} posługujemy się do cytowania oznaczonej nią pozycji w~dokumencie: % \begin{command} \ci{cite}\verb|{|\emph{etykieta}\verb|}| \end{command} % \noindent Numerowanie pozycji literaturowych jest automatyczne (polecenia \verb+\bibitem+ i~\verb+\cite+ działają podobnie jak opisane już instrukcje \verb+\label+ i~\verb+\ref+). Środowisko \envr{thebibliography} ma jeden parametr, który powinien zawierać tekst równy szerokości (lub szerszy) od najszerszej etykiety ze spisu. W~przykładzie poniżej ,,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}. 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. \begin{TPextension} Po przetworzeniu pliku, na podstawie zawartości etykiet, zapisanych do pliku \verb|.aux| przez \LaTeX-a, {\BibTeX} tworzy spis literatury obejmujący tylko te pozycje z~biblioteki (zwykle plik ten ma rozszerzenie \verb|.bib|), które cytowano w~dokumencie. Format spisu zależy od specyfikacji szablonu znajdującej się w~pliku o~rozszerzeniu \verb|.bst| i~zapisywany jest do pliku o~rozszerzeniu \verb|.bbl|. Do poprawnego sformatowania bibliografii i~cytowań konieczne jest przynajmniej trzykrotne przetworzenie dokumentu \LaTeX-em. \end{TPextension} % %% \section{Skorowidze\label{sec:indexing} } Niezwykle użytecznym elementem wielu książek jest skorowidz. Można go bardzo łatwo utworzyć za pomocą \LaTeX-a oraz programu wspomagającego o~nazwie \texttt{makeindex}\index{makeindex}\footnote{Lub \texttt{makeidx}, jeśli nasz system operacyjny nie pozwala używać nazw dłuższych niż 8~znaków.}. W~tym wprowadzeniu omówimy jedynie podstawowe polecenia dotyczące przygotowania skorowidzy. Znowu więcej informacji znajdziemy w~\companion. Generowanie haseł do skorowidza jest możliwe dopiero po dołączeniu 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 Każde 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ł}. \begin{table}[!thp] \caption{Przykłady składni polecenia \ci{index} } \label{index} \begin{center} \begin{tabular}{@{}lll@{}} \textbf{Przykład} &\textbf{Argument } &\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 & \textit{ditto} \\ \verb+\index{Jenny|textbf}+ &Jenny, \textbf{3} & formatowanie numeru strony \\ \verb+\index{Joe|textit}+ &Joe, \textit{5} & \textit{ditto} \end{tabular} \end{center} \vspace{-1ex}% \end{table} Podczas przetwarzania pliku źródłowego przez \LaTeX-a każda instrukcja \verb+\index+ powoduje zapisanie odpowiedniej pozycji skorowidza oraz numeru strony, którego ta pozycja dotyczy do pliku pomocniczego. Plik ten ma tę samą nazwę co główny plik źródłowy i~rozszerzenie \texttt{.idx}. Z~kolei plik \texttt{.idx} musi być przetworzony za pomocą programu \verb+makeindex+, piszemy: % \begin{command} \texttt{makeindex} \emph{plik} \end{command} % \noindent W~rezultacie program \verb+makeindex+ tworzy posortowany skorowidz i~zapisuje go do pliku o~nazwie identycznej z~nazwą głównego pliku źródłowego i~rozszerzeniu \verb+.ind+. Jeżeli teraz jeszcze raz przetworzymy plik źródłowy, to tym razem taki skorowidz zostanie dołączony do dokumentu w~miejscu, w~którym znajduje się~polecenie: % \begin{command} \ci{printindex} \end{command} % \noindent Pakiet \pai{showidx}, który znajduje się w~standardowej dystrybucji \LaTeX-a drukuje pozycje skorowidza na lewym marginesie. Jest on przydatny do korekt lub/i tworzenia skorowidza. % Add some infos on PROTECT ... \begin{TPextension} Reguły sortowania skorowidza są specyficzne dla danego języka. W~przypadku pracy nad polskim dokumentem program \verb|makeindex| jest nieprzydatny gdyż sortuje hasła tylko według zasad języka angielskiego. Zmodyfikowaną wersją programu \verb+makeindex+ jest \verb+plmindex+, (autor: Włodzimierz Macewicz) zdolny do tworzenia skorowidza zarówno według reguł angielskich, jak i~polskich. Program jest dostępny, np. w~\GUST{GUST/contrib/GUSTPROG/plmindex.zip}. Więcej informacji na temat polskich zasad tworzenia skorowidzów można znaleźć w~\cite{lichonski-idx}. \end{TPextension} \section{Paginy górne i~dolne } Pakiet \pai{fancyhdr} (autor Piet van Oostrum)\footnote{Dostępny~w: \CTAN{macros/latex/contrib/supported/fancyhdr/}.} udostępnia polecenia, którymi definiujemy własne paginy. 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. Taką paginę fachowo nazywa się żywą paginą\index{żywa pagina@żywa pagina\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 ** \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 łatwo poradzić sobie z~automatycznym umieszczaniem odpowiedniej informacji w~żywej paginie. {\LaTeX} rozwiązuje ten problem następująco. 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 (\verb+\chapter+, \verb+\section+). W~rzeczywistości, \verb+\chapter+ oraz~inne polecenia podziału logicznego dokumentu nie zmieniają definicji poleceń \ci{rightmark} i~\ci{leftmark}. Odwołują się one natomiast do poleceń \ci{chaptermark}, \ci{sectionmark}, lub \ci{subsectionmark}. Dopiero użycie tych instrukcji powoduje zmianę definicji poleceń \ci{rightmark} i~\ci{leftmark}. Do zmiany postaci tytułu rozdziału w~główce 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. %% \section{Pakiet \texttt{verbatim}} Pakiet \ei{verbatim} udostępnia poprawioną wersję standardowego środowiska \envr{verbatim} (opisanego na stronie~\pageref{verb-envir}). Oprócz wielu drobnych ale istotnych ulepszeń pakiet udostępnia polecenie: % \begin{command} \ci{verbatiminput}\verb|{|\emph{plik}\verb|}| \end{command} % \noindent które pozwala dołączyć dosłownie (\UKemph{verbatim}) plik tekstowy do dokumentu, tak jakby jego zawartość znajdowała się wewnątrz środowiska \envr{verbatim}. Pakiet \pai{verbatim} jest częścią zestawu pakietów ,,tools''. Zestaw ten wchodzi w~skład standardowej dystrybucji \LaTeX-a. Więcej szczegółów jest~w~\cite{verbatim}. \endinput %%% Local Variables: %%% mode: latex %%% TeX-master: "lshort2e" %%% End: