% -- translate-file=il2-pl --
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Contents: Typesetting Part (LShort2e Introduction)
% File: typeset.tex (Polish translation)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\chapter{Składanie tekstu}
\begin{intro}
Po lekturze poprzedniego rozdziału znasz już podstawowe pojęcia
związane z~systemem \LaTeXe. W~tym rozdziale Twoja wiedza wzbogaci się
o~informacje niezbędne do tworzenia prawdziwych dokumentów.
\end{intro}
\section{Struktura tekstu i języka}
\secby{Hanspeter Schmid}{hanspi@schmid-werren.ch}
\noindent
Głównym zadaniem słowa pisanego jest przekaz myśli, informacji lub
wiedzy. Nadanie zapisowi odpowiedniej struktury pomaga czytelnikowi
lepiej zrozumieć przekazywane treści. Skład typograficzny może
czytelnikowi tę logiczną i~semantyczną strukturę tekstu przybliżyć.
\LaTeX{} tym się różni od innych systemów składu, że do złożenia tekstu
wystarcza mu znajomość logicznej i~semantycznej struktury tekstu.
Postać typograficzna jest wyprowadzana na podstawie ,,reguł'' zawartych
w~klasie dokumentu i~plikach z~makroinstrukcjami.
Najważniejszą jednostką podziału tekstu w~\LaTeX{}u (a~także
w~typografii) jest akapit. Jest to ,,jednostka podziału'' głównie
dlatego, że według wszelkich kanonów sztuki typograficznej treść akapitu
powinna być poświęcona jednej spójnej myśli lub pojęciu. Tak więc, gdy
zaczyna się nowa myśl, powinien się zacząć nowy akapit. Kontynuacja
dotychczasowej myśli w~nowym akapicie jest błędem. Niezgodne z~regułami
sztuki jest też pojawienie się w~tym samym akapicie całkowicie nowej
myśli. W~następnym punkcie omówimy instrukcje nakazujące \LaTeX{}owi
złamanie linii bez rozpoczynania nowego akapitu, na przykład poleceniem
\verb|\\|, a~także sposób rozpoczęcia nowego akapitu, na przykład przez
umieszczenie w~kodzie źródłowym pustej linii.
Większość ludzi całkowicie lekceważy znaczenie właściwej organizacji
akapitów. Co więcej, wiele osób nawet nie zdaje sobie sprawy, czym
akapit naprawdę jest, i~(szczególnie w~\LaTeX{}u) kończy akapit,
nawet o~tym nie wiedząc. Błąd taki łatwo popełnić
zwłaszcza w~tekście z~równaniami. Zobaczmy, dlaczego w~poniższych
przykładach w~jednej z~takich sytuacji należy przejść do nowego akapitu,
a~w~innej -- nie. Czytelnik, który nie zna jeszcze wszystkich poleceń
użytych w~tych przykładach, powinien dokładnie przeczytać ten i~następny
rozdział, a~następnie wrócić do tego punktu i~przeczytać go~jeszcze raz.
\begin{code}
\begin{verbatim}
% Przykład 1
\ldots Słynne równanie Einsteina
\begin{equation}
e = m \cdot c^2 \; ,
\end{equation}
jest najbardziej znanym, ale też
najmniej rozumianym równaniem w~fizyce.
% Przykład 2
\ldots którego wynikiem jest prądowe prawo Kirchhoffa:
\begin{equation}
\sum_{k=1}{n} I_k = 0 \; .
\end{equation}
Napięciowe prawo Kirchhoffa ma zaś swój początek w\ldots
% Przykład 3
\ldots co ma określone zalety.
\begin{equation}
I_D = I_F - I_R
\end{equation}
jest rdzeniem innego modelu tranzystora. \ldots
\end{verbatim}
\end{code}
%%
\noindent
Mniejszą od akapitu jednostką podziału tekstu jest zdanie. W~tekstach
angielskojęzycznych odstęp po kropce kończącej zdanie jest większy od
odstępu po kropce oznaczającej skrót. Zależnie od kontekstu \LaTeX{}
stara się użyć krótszego lub dłuższego odstępu. W~razie pomyłek z~jego
strony powinniśmy mu wskazać nasze intencje. Jak to zrobić, wyjaśniamy
w~dalszej części tego rozdziału.
Właściwa organizacja tekstu dotyczy nawet fragmentów zdań. Wiele języków
ma bardzo skomplikowaną interpunkcję, ale w~większości wypadków
(wliczając angielski i~niemiecki) stawiając przecinek w~określonym
miejscu w~zdaniu, nie popełnimy na ogół błędu, pamiętając o~zasadzie, że
przecinek oznacza krótką przerwę w~wypowiedzi. Dlatego -- jeśli nie
jesteśmy pewni, gdzie w~zdaniu należy go postawić -- przeczytajmy zdanie
na głos i~postawmy przecinki wszędzie tam, gdzie zrobiliśmy krótką
przerwę na wdech. Ale nie sugerujmy się wyłącznie tym! Jeśli w~danym
miejscu przecinek nie wygląda najlepiej, to go usuńmy; jeśli w~innym
miejscu odczuwamy potrzebę wzięcia powietrza do płuc (lub zrobienia
krótkiej przerwy), to postawmy tam przecinek. A~najlepiej w~celu
rozwiania wątpliwości sięgnąć do słownika ortograficzno\=interpunkcyjnego,
który zresztą zawsze warto mieć pod ręką.
I na koniec: akapit nie jest największą logiczną jednostką podziału
tekstu. Można jeszcze wspomnieć o rozdziałach, punktach, podpunktach
itd. Jednakże od strony typograficznej już same nazwy poleceń w~rodzaju
\verb|\section{Struktura tekstu i języka}| są na tyle oczywiste (dla
znających język angielski), że sposób ich użycia jest łatwo zrozumiały.
\section{Składanie akapitów i~łamanie stron}
\subsection{Składanie akapitów\label{just-paragraphs}}
Książki najczęściej składa się tak, że wszystkie wiersze w~akapitach są
tej samej długości. Dążąc do optymalnej prezentacji akapitu, {\LaTeX}
ustala miejsca złamań linii oraz wielkość odstępów między słowami. W~razie
potrzeby przenosi wyrazy, których nie jest w~stanie zmieścić w~wierszu.
Sposób składania akapitów zależy od użytej klasy dokumentu.
Najczęściej pierwszy wiersz akapitu jest wcięty, a~między akapitami nie
ma dodatkowych odstępów. Więcej na ten temat można przeczytać
w~punkcie~\ref{parsp}.
%%
Zgodnie z~anglo-amerykańskimi zwyczajami typograficznymi {\LaTeX} nie
wstawia wcięcia akapitowego bezpośrednio po tytułach rozdziałów,
punktów itd. Polskie zwyczaje nakazują jednak rozpoczynanie także
początkowych akapitów wcięciem. Efekt ten można osiągnąć przez
dołączenie w~preambule pakietu \pai{indentfirst}. W~niniejszym
tłumaczeniu nie stosujemy wcięć w~początkowych akapitach, gdyż akurat
pod tym względem bardziej nam się podobają zwyczaje anglosaskie.
%%
Czasami przydaje się instrukcja nakazująca {\LaTeX}owi złamanie linii.
Polecenie:
\begin{command}
\ci{\bs} lub \ci{newline}
\end{command}
\par
\noindent
rozpoczyna nową linię bez rozpoczynania nowego akapitu. \\
Natomiast instrukcja:
\begin{command}
\ci{\bs*}
\end{command}
%
\noindent
zakazuje dodatkowo złamania strony (w~miejscu złamania linii).
Z~kolei instrukcja:
\begin{command}
\ci{newpage}
\end{command}
%
\noindent
rozpoczyna nową stronę.
\noindent
Instrukcje:
%
\begin{command}
\ci{linebreak}\verb|[|\emph{n}\verb|]|,
\ci{nolinebreak}\verb|[|\emph{n}\verb|]|,
\ci{pagebreak}\verb|[|\emph{n}\verb|]| oraz
\ci{nopagebreak}\verb|[|\emph{n}\verb|]|
\end{command}
%
\noindent
oznaczają, odpowiednio:
zachętę do złamania wiersza, niezgodę na złamanie
wiersza, zachętę do złamania strony i~niezgodę na złamanie strony
(w~miejscu ich wystąpienia w~dokumencie).
%%Ponadto
Opcjonalny argument \emph{n}, o~dopuszczalnej wartości
od $0$ do $4$, określa stopień tej zachęty (niezgody).
Domyślna wartość~$4$ to bezwarunkowy zakaz lub nakaz złamania
linii/strony. Wartość mniejsza od $4$
pozostawia \LaTeX-owi swobodę zignorowania instrukcji, jeżeli
skład otrzymany w~jej rezultacie byłby kiepskiej jakości.
Poleceń z~grupy \verb|break| nie należy mylić z~tymi z~grupy \verb|new|.
Mimo otrzymania polecenia typu \verb|break| {\LaTeX} stara się wyrównać
wiersz do prawego marginesu czy też wypełnić stronę do całej jej wysokości.
Nietrudno zgadnąć, jakiej instrukcji należy użyć, gdy naprawdę
zależy nam na rozpoczęciu nowego wiersza\footnote{Zagadka ta
jest łatwa dla znających język angielski -- jest to
polecenie \ci{newline}.}.
%%
Jeżeli w~wierszu zakończonym instrukcją \ci{newline} jest zbyt mało
tekstu, to {\LaTeX} nie wyrówna tego wiersza do prawego marginesu,
lecz wstawi po tekście odpowiedni odstęp. Jeżeli zamiast \ci{newline}
użyjemy \ci{linebreak}, to {\LaTeX} postara się wyrównać zawartość
kończonej linijki do prawego marginesu. Zbyt małe wypełnienie wiersza
tekstem zmusi {\LaTeX}a do umieszczenia między wyrazami zbyt dużych
odstępów. Efekt ten \LaTeX{} sygnalizuje podczas przetwarzania
dokumentu, wyświetlając komunikat:
%
\begin{code}
\begin{verbatim}
Underfull \hbox (badness 10000) in paragraph at lines 4--5
\end{verbatim}
\end{code}
%
Liczba po słowie \verb|badness| w~tym komunikacie wskazuje, jak bardzo
\LaTeX{}owi ,,nie podoba się'' złożony wiersz. Tutaj jest to maksymalna
%%w~\LaTeX{}u
negatywna ocena \verb|10000|. Liczby na końcu komunikatu to
numery pierwszej i~ostatniej linii akapitu, w~którym {\LaTeX} musiał
złożyć wiersz z~nadmiernymi odstępami między wyrazami. Chociaż wielu
użytkowników {\LaTeX}a nie zwraca uwagi na podobne ostrzeżenia, warto
sobie zdawać sprawę, co one oznaczają.
Oprócz wyżej wymienionych istnieją jeszcze w~{\LaTeX}u instrukcje:
%
\begin{command}
\ci{clearpage},
\ci{cleardoublepage}
\end{command}
%
\noindent
Obydwie rozpoczynają skład nowej strony. Instrukcja \ci{cleardoublepage}
działa tak jak \ci{clearpage}, z~tym że rozpoczynana strona
ma numer nieparzysty; w~razie potrzeby tworzona jest strona pusta
(wakatowa)\footnote{%
Mówiąc precyzyjnie zależy to od stanu opcji \popti{openright}/\popti{openany},
w~szczególności w~klasie ,,article''
\ci{cleardoublepage} domyślnie
działa tak jak \ci{clearpage}.\label{fnt:clrdblpg}}.
%%
W~trybie składu dwułamowego (opcja \popti{twocolumn})
instrukcja \ci{newpage} kończy łam, natomiast \ci{clearpage}
oraz \ci{cleardoublepage} kończą stronę, pozostawiając w~razie
potrzeby pusty prawy łam.
Jeżeli na stronie zakończonej instrukcją \ci{newpage} albo
\ci{clearpage} jest zbyt mało tekstu, to {\LaTeX} wstawia odpowiedni
odstęp u~dołu strony, wypełniający pozostałą cześć kolumny.
W~wypadku polecenia \ci{pagebreak} {\LaTeX} wyrównuje zawartość
kolumny do dolnego brzegu, wstawiając odstępy pomiędzy akapitami lub
innymi elementami na stronie. Jeżeli wstawione odstępy okazują się za
duże, co zdarza się dość często, to podczas przetwarzania dokumentu
generowane jest odpowiednie ostrzeżenie, na przykład:
%
\begin{code}
\begin{verbatim}
Underfull \vbox (badness 10000) has occurred
while \output is active [7]
\end{verbatim}
\end{code}
%
W~powyższym komunikacie (z~uwagi na wąskość szpalty przełamanym na dwie
linijki) liczba po słowie \verb|badness| wskazuje, jak bardzo
{\LaTeX}owi nie podoba się złożona strona. Tutaj jest to \verb|10000| --
maksymalna w~{\TeX}u ujemna ocena jakości składu. Liczba w~nawiasach
prostokątnych na końcu komunikatu oznacza numer strony, podczas
składania której wystąpił problem.
%%
{\LaTeX} zawsze stara się znaleźć najlepszy podział akapitu na wiersze.
Kiedy nie potrafi znaleźć podziału, który spełnia jego wysokie wymagania
jakościowe, wtedy niektóre wyrazy wystają na prawy margines.
Sytuacja taka jest sygnalizowana komunikatem podobnym do następującego:
%
\begin{code}
\begin{verbatim}
Overfull \hbox (5.5452pt too wide) in paragraph at lines 79--83
\end{verbatim}
\end{code}
%%
W~komunikacie\index{overfull hbox} tym liczba
w~nawiasie okrągłym oznacza, że pewien fragment tekstu wystaje
o~5,5452 punktów drukarskich na prawy margines. Problem wystąpił
w~akapicie, który w~pliku źródłowym jest w~wierszach od~79 do~83.
Podobne ostrzeżenia pojawiają się najczęściej wówczas, gdy {\LaTeX}
nie potrafi przenieść wyrazów w~akapicie zgodnie z~zadanymi wzorcami
przenoszenia tak, by nie popsuć jakości składu. Komunikat typu
\emph{\wi{overfull hbox}\/} nie wystarcza na ogół do dokładnego
ustalenia przyczyny jego wystąpienia. Można wtedy jako argumentu
polecenia \ci{documentclass} użyć opcji \popti{draft}, na skutek
czego {\LaTeX} oznaczy wystające wiersze małą czarną sztabką na prawym
marginesie szpalty.
Deklaracja \ci{sloppy} nakazuje {\LaTeX}owi nieco obniżyć jego domyślnie
wysokie standardy. Zapobiega to --~w~większości wypadków --~występowaniu
zbyt długich linijek, kosztem jednak zwiększenia odstępów
międzywyrazowych, czyli pogorszenia jakości składu. Mogą się pojawiać
ostrzeżenia typu \emph{\wi{underfull hbox}}, co w~większości wypadków
(zwłaszcza gdy podana miara kiepskości jest powyżej 5000) oznacza, że
skład nie jest zbyt udany. Instrukcja \ci{fussy} działa w~odwrotnym
kierunku, to znaczy przywraca domyślne, wysokie standardy {\LaTeX}a.
\subsection{Przenoszenie wyrazów\label{hyph}}
W~razie potrzeby {\LaTeX} przenosi (dzieli) wyrazy. Jeżeli
algorytm podziału przeniósł jakiś wyraz błędnie, to
właściwe miejsca przenoszenia można zadać instrukcją:
%
\begin{command}
\ci{hyphenation}\verb|{|\emph{słowo1 słowo2 słowo3...}\verb|}|
\end{command}
%
\noindent
Słowa z~listy argumentów można dzielić
wyłącznie w~miejscach oznaczonych znakiem \verb|-|.
Instrukcji tej wolno użyć jedynie w~preambule
dokumentu, a~wyrazy{\dywiz}argumenty mogą zawierać (oprócz znaku \verb|-|)
wyłącznie litery.
Nie ma natomiast znaczenia, czy w~tych wyrazach używa się liter wielkich czy
małych. Instrukcja \ci{hyphenation} z~przykładu poniżej pozwala
podzielić słowo ,,ćwierć-li-trówka'' jedynie w~dwóch zaznaczonych
miejscach i~w~ogóle zabrania dzielić słowa ,,szczypce''.
Wyrazy z~listy argumentów nie mogą zawierać żadnych
znaków specjalnych ani symboli. Przykład:
%
\begin{code}
\verb|\hyphenation{ćwierć-li-trówka szczypce}|
\end{code}
W~językach fleksyjnych, do jakich należy polski, instrukcja
\ci{hyphenation} jest dużo mniej przydatna niż w~angielskim. Aby dany
wyraz zawsze był dobrze przenoszony, należałoby wypisać wszystkie jego
formy. Opracowane przez Hannę Kołodziejską\index{Kołodziejska Hanna},
Bogusława L.~Jackowskiego\index{Jackowski Bogusław} i~Marka
Ryćko\index{Ryćko Marek} wzorce przenoszenia wyrazów dla języka
polskiego sprawdzają się w~tak znacznej większości wypadków, że
praktycznie nie ma potrzeby stosowania tej konkretnej instrukcji. Co
więcej, próba użycia polecenia \ci{hyphenation} w~wypadku
stosowania również pakietu \pai{inputenc} (por. punkt~\ref{int-support})
zakończy się błędem w~czasie przetwarzania dokumentu.
Instrukcja \ci{-} wskazuje, w~których miejscach \emph{wolno} {\LaTeX}owi
przenieść wyraz do nowego wiersza; {\LaTeX} nie podzieli tego wyrazu
w~żadnym oprócz wskazanych miejsc. Instrukcja odnosi się do konkretnego
wystąpienia słowa w~dokumencie i~nie wpływa na miejsca podziału w~innych
jego wystąpieniach. Przydaje się ona szczególnie w~wypadku wyrazów ze
znakami specjalnymi, na przykład akcentowanymi, gdyż automatycznie
{\LaTeX} dzieli jedynie wyrazy złożone z~samych liter.
%
\begin{example}
Nie\-bie\-sko\-bia\-ło\-zie\-lo\-%
no\-nie\-bie\-ski
\end{example}
Tekst będący argumentem polecenia:
%
\begin{command}
\ci{mbox}\verb|{|\emph{tekst}\verb|}|
\end{command}
%
\noindent
nigdy nie zostanie przeniesiony.
%
\begin{example}
Numer mojego telefonu wkrótce
się zmieni na \mbox{0116 291 2319}.
Parametr \mbox{\emph{nazwa}} to
nazwa pliku.
\end{example}
Polecenie \ci{fbox} jest podobne do \ci{mbox}, z~tym że dodatkowo
dookoła argumentu rysuje ramkę (por.~punkt~\ref{sec:boxes}).
\section{Kilka gotowych oznaczeń napisów}
W~przykładach na poprzednich stronach pojawiło się kilka
prostych instrukcji \LaTeX{}a do składania krótkich napisów.
\vspace{1ex}
\noindent
\begin{tabular}{@{}lll@{}}
Instrukcja&Przykład&Opis\\
\hline
\ci{today} & \today & Bieżąca data\\
\ci{TeX} & \TeX & Twój ulubiony system składu\\
\ci{LaTeX} & \LaTeX & Nazwa tej gry\\
\ci{LaTeXe} & \LaTeXe & Obecne jej wcielenie\\
\end{tabular}
\section{Znaki specjalne i~symbole }
\subsection{Cudzysłowy\label{subsec:quotation}}
Znaku cudzysłowu \verb|"| używa się inaczej niż na maszynie do pisania.
W~publikacjach drukowanych różnie oznacza się początek i~koniec
cudzysłowu. Występują także różnice w sposobach oznaczania cudzysłowów
w~różnych językach. Dwa apostrofy \verb|`| otwierają, a~dwa apostrofy
\verb|'| zamykają {\LaTeX}owy cudzysłów według reguł języka
angielskiego:
\begin{example}
``Please press the `x' key.''
\end{example}
%%
W~języku polskim cudzysłów otwierający oznacza się
dwoma przecinkami \verb+,,+$\,$, natomiast zamykający --
dwoma apostrofami \verb+''+\footnote{Porównaj uwagi
o~tym sposobie oznaczania cudzysłowów
z~punktu~\ref{int-support} w~części dotyczącej fontów
i~ich kodowania (str.~\pageref{fonty-kodowanie}).
Dotyczy to również cudzysłowów francuskich.}.
Gdy zachodzi konieczność użycia cudzysłowu w~tekście już
objętym cudzysłowem, to
stosuje się ,,cudzysłowy <>'', oznaczane
w~pliku źródłowym znakami, odpowiednio, mniejszości \texttt{<<}
i~większości \texttt{>>}.
%
\begin{example}
,,Przechodź tylko po <>''!
\end{example}
%%
\subsection{Pauzy i~myślniki\label{subsec:pauzy} }
Zwyczajne maszyny do pisania posiadają tylko jeden znak w~kształcie
poziomej kreski ,,-''. W~składzie drukarskim występują
aż cztery rodzaje kresek poziomych. Są to: łącznik,
myślnik, półpauza i~minus, używany we wzorach matematycznych.
%%
Łącznik (dywiz) jest najkrótszą z~kresek. Stosuje się go do dzielenia
i~przenoszenia wyrazów oraz do łączenia wyrazów wieloczłonowych (np.
,,niebiesko-czarny''). Zgodnie z~polskimi regułami wyraz wieloczłonowy
można podzielić i~przenieść albo w~obrębie wyrazów składowych, albo na
łączniku. W~drugim z~tych przypadków łącznik należy powtórzyć, to
znaczy powinien się on znaleźć zarówno na końcu pierwszego wiersza,
jak też na początku drugiego. Oto możliwe miejsca podziału wyrazu
\mbox{niebiesko-czarny}:
%
\begin{flushleft}
\begin{tabular}{llllllll}
nie- && niebie- && niebiesko- && niebiesko-czar- \\
biesko-czarny && sko-czarny && -czarny && ny \\
\end{tabular}
\end{flushleft}
%
\noindent
Standardowy {\LaTeX} nie zna polskich norm i~dlatego dzieli
wyrazy wieloczłonowe w~miejscu połączenia, bez powielania łącznika.
Jeżeli do składu w~języku polskim korzystamy
z~zestawu \pai{platex},
to w~pliku źródłowym w~miejsce łącznika w~wyrazach wieloczłonowych
powinniśmy zastosować instrukcję \ci{dywiz}
(np. \verb|niebiesko{\dywiz}czarny|).
W~pewnych sytuacjach lepiej nie dzielić wyrazów połączonych
łącznikiem. Jeżeli na przykład mówimy o~wydziale K-2, kodzie pocztowym
czy numerze telefonu, to w~takich wypadkach łącznik
zapisujemy w~pliku źródłowym jako pojedynczą kreskę -$\,$.
Znaku łącznika używa się również do przenoszenia wyrazów. Jednak
w~{\LaTeX}u odbywa się to automatycznie i~nie wymaga ręcznych
ingerencji użytkownika.
Półpauza to kreska o~połowę krótsza od myślnika. Stosuje się ją
przede wszystkim w~zapisie zakresów liczbowych,
np.~,,str.~11--13'', czy ,,w~latach 1960--1963''. Przed i~po
półpauzie nie dodaje się odstępów. Odstępy takie muszą się pojawić
w~sytuacjach takich jak: ,,11 października -- 13 listopada''.
Półpauzę zapisuje
się za pomocą dwóch następujących po sobie minusów~\texttt{--}.
Myślnik ,,---'' to dłuższa kreska, używana jako znak przestankowy.
Zapisujemy go za pomocą trzech następujących po sobie znaków
\texttt{-}, czyli \texttt{---}$\,$. W~języku polskim należy przed i~po
myślniku umieścić odstęp, inaczej niż w~krajach anglosaskich,
gdzie nie otacza się myślnika odstępami. Wiele osób uważa konstrukcję
złożoną z~odstępu, myślnika i~kolejnego odstępu za zbyt wybijającą się
w~składzie. Z~tychże estetycznych powodów często w~roli myślnika używa
się ,,dwukreskowej'' półpauzy, i~takie właśnie podejście zastosowano
w~niniejszym tłumaczeniu.
We wzorach matematycznych, czyli wewnątrz trybu matematycznego,
znak minusa uzyskujemy, pisząc zwyczajnie \texttt{-}$\,$. Przykładowo,
zapis \verb|$-2$| daje w~składzie $-2$,
podczas gdy \verb|-2| daje~-2.
%%
%%
\subsection {Odstępy niełamliwe}
Polskie zasady typograficzne nie pozwalają łamać akapitów
z~pozostawianiem na końcu wierszy jednoliterowych spójników bądź
przyimków. Przykładowo, w~zdaniu ,,Jan Kochanowski urodził się
w~Czernolesie'' nieładnie na końcu wiersza wyglądałby przyimek ,,w''.
Odstępy, na których nie wolno złamać wiersza, zaznacza się w~pliku
źródłowym znakiem tyldy ,,\verb|~|'' zamiast zwykłym odstępem. Na
przykład, aby w~powyższej sytuacji zapobiec przeniesieniu składu do
nowego wiersza, powinniśmy zapisać w~pliku źródłowym:
\verb|w~Czarnolesie|.
Jest wiele sytuacji, w~których związek fragmentów zdania jest tak silny,
że wewnątrz nich nie należy łamać na wiersze. Nie zawsze decyzja jest
tak prosta jak w~wypadku wspomnianych spójników. Oto garść przykładów:
%
\begin{code}
\begin{verbatim}
godz.~17.00; od~15 do 40~osób; na str.~2 napisano; rozdz.~2;
2~rozdziały; p.~Jan Nowak; p.~J.~Nowak; I~część IX~Symfonii.
\end{verbatim}
\end{code}
Ze względu na zależność od kontekstu obowiązek decydowania
o~użyciu tyldy spada na użytkownika {\LaTeX}a.
%%
\subsection{Tylda \texorpdfstring{($\sim$)}{}}
W~adresach internetowych\index{www@\acro{WWW}}%
\index{URL@\acro{URL}}\index{tilde}
często występuje znak tyldy. W~\LaTeX{}u można by do jego uzyskania użyć
instrukcji \verb|\~|, ale wynik: \~{} nie jest chyba tym, czego
oczekujemy. Lepiej zrobić tak:
%
\begin{example}
http://www.rich.edu/\~{}bush \\
http://www.clever.edu/$\sim$demo
\end{example}
%
A jeszcze lepiej dołączyć do preambuły dokumentu pakiet \pai{url}
i~korzystać z~polecenia \verb@\url{...}@.
\subsection{Oznaczenie stopni \texorpdfstring{($\circ$)}{}}
Poniższy przykład ilustruje, jak w~\LaTeX{}u uzyskuje się symbol stopni:
%
\begin{example}
Jest $-30\,^{\circ}\mathrm{C}$.
Niedługo zacznę nadprzewodzić.
\end{example}
%
Pakiet \pai{textcomp} udostępnia symbol stopni
także jako \ci{textcelsius}.
\subsection{Symbol waluty euro \texorpdfstring{(\officialeuro)}{}}
Pisząc dziś o~pieniądzach, nie można się obejść bez symbolu euro. Znak
ten występuje w~wielu współczesnych fontach. Po załadowaniu pakietu
\pai{textcomp} w~preambule:
%
\begin{command}
\ci{usepackage}\verb|{textcomp}|
\end{command}
\noindent
można do uzyskania symbolu euro użyć oznaczenia:
\begin{command}
\ci{texteuro}
\end{command}
Jeśli używany font nie zawiera własnego symbolu euro albo nam się on
nie podoba, to mamy dwie dodatkowe możliwości:
Pierwszą jest pakiet \pai{eurosym}. Udostępnia on oficjalny znak euro:
%
\begin{command}
\ci{usepackage}\verb|[|\emph{official}\verb|]{eurosym}|
\end{command}
%
Jeśli wolimy znak euro zgodny optycznie z~fontem, to zastąpmy opcję
\popt{official} opcją \popt{gen}.
% Komentarz z~oryginału (RK):
%If the Adobe Eurofonts are installed on your system (they are available for
%free from \url{ftp://ftp.adobe.com/pub/adobe/type/win/all}) you can use
%either the package \pai{europs} and the command \ci{EUR} (for a Euro symbol
%that matches the current font).
% does not work
% or the package
% \pai{eurosans} and the command \ci{euro} (for the ``official Euro'').
Pakiet \pai{marvosym} dostarcza wielu różnych symboli, w~tym
euro pod nazwą \ci{EURtm}. Jego wadą jest to, że nie udostępnia wersji
pochylonej i~wytłuszczonej euro.
\begin{table}[!htbp]
\caption{Torba pełna symboli euro} \label{eurosymb}
\begin{lined}{10cm}
\begin{tabular}{llccc}
\acro{LM}+textcomp &\verb+\texteuro+ & \huge\texteuro &\huge\sffamily\texteuro
&\huge\ttfamily\texteuro\\
eurosym &\verb+\euro+ & \huge\officialeuro &\huge\sffamily\officialeuro
&\huge\ttfamily\officialeuro\\
$[$gen$]$eurosym &\verb+\euro+ & \huge\geneuro &\huge\sffamily\geneuro
&\huge\ttfamily\geneuro\\
%europs &\verb+\EUR + & \huge\EURtm &\huge\EURhv
% &\huge\EURcr\\
%eurosans &\verb+\euro+ & \huge\EUROSANS &\huge\sffamily\EUROSANS
% & \huge\ttfamily\EUROSANS \\
%% <>
%%marvosym &\verb+\EURtm+ & \huge\mvchr101 &\huge\mvchr101
%% &\huge\mvchr101
%% <>
Dla dokumentów unikodowych
należy użyć opcji \popti{utf8}\index{Unicode}.
Chociaż pakiety \pai{babel} oraz \pai{inputenc} umożliwiają skład
dokumentów w~języku polskim, to nie są pozbawione wad. Kłopoty mogą
sprawiać dokumenty o~rozbudowanej strukturze, na przykład zawierające
skorowidze. Inne podejście do sprawy języka polskiego w~\LaTeX{}u jest
przedstawione w~punkcie~\ref{polski}.
% Ten akapit nic nie wnosi: [tp]
% Wykorzystując pakiet \pai{inputenc}, musimy sobie zdawać sprawę, że
% część użytkowników nie będzie w~stanie odczytać tak
% przygotowanych plików źródłowych. Przykładowo: znak \verb+ą+ ma numer 161
% w~standardzie ISO-8859-2, podczas gdy w~kodowaniu zgodnym z~CP 1250 ta
% sama litera ma kod 169 (a znak o~kodzie 161 oznacza jakiś inny
% ,,krzaczek'').
% Dlatego, korzystając z~tej możliwości, powinniśmy
% informować innych użytkowników tego samego pliku
% źródłowego, jak zakodowano w~nim znaki diakrytyczne.
Kodowanie znaków ma znaczenie nie tylko w~pliku źródłowym. Drugą stroną
medalu jest układ znaków w~foncie, czyli kodowanie
fontu\label{fonty-kodowanie}. Określa ono, w~których miejscach
\emph{fontu} znajdują się poszczególne znaki. Standardowo \LaTeX{} używa
kodowania o~nazwie \label{OT1}\fei{OT1}, przyjętego dla oryginalnych
\TeX{}owych fontów Computer Modern\index{fonty!CM@\acro{CM}}
(\acro{CM}). Są to fonty jedynie 128-znakowe, nie zawierają na przykład
charakterystycznych polskich liter. Znak diakrytyczny można w~nich
skonstruować metodą nałożenia dwóch innych: litery i~odpowiedniego
akcentu. Ta metoda ma wady, bo {\TeX} nie może poprawnie przenosić
wyrazów zawierających tak zapisane znaki diakrytyczne, kiepska jest też
jakość typograficzna takich diakrytyków.
Na szczęście wszystkie współczesne dystrybucje {\TeX}a zawierają
komplet fontów \emph{European Computer Modern\/}
(\acro{EC})\index{fonty!EC@\acro{EC}}.
Są to fonty zawierające do 256 znaków
w~kodowaniu \fei{T1}. Pierwszych 128 znaków fontu \acro{EC} jest (prawie)
identycznych jak w~odpowiadającym mu foncie \acro{CM}. Pozostałe
128~znaków to znaki diakrytyczne występujące w~różnych językach
europejskich, w~tym też komplet znaków niezbędnych do składania
tekstów polskich. Fonty \acro{EC} umożliwiają
poprawne przenoszenie wyrazów, znacznie
lepsza jest też jakość typograficzna znaków diakrytycznych.
Polscy użytkownicy mogą też korzystać z~rodziny fontów
\acro{PL}\index{fonty!PL@\acro{PL}}\index{fonty!PL@\acro{PL}} (autorzy
B.~Jackowski\index{Jackowski Bogusław}, M.~Ryćko\index{Ryćko Marek},
J.~Nowacki\index{Nowacki Janusz}) oraz nowszych fontów
\acro{LM}\index{fonty!LM@\acro{LM}} (autorzy
B.~Jackowski\index{Jackowski Bogusław}
i~J.~Nowacki\index{Nowacki Janusz}). W~zakresie objętym przez rodzinę
\acro{CM} fonty \acro{PL}/\acro{LM} są całkowicie z~nią zgodne,
a~dodatkowo zawierają wszystkie polskie znaki diakrytyczne. Polskie
diakrytyki w~fontach \acro{EC} są kopią odpowiednich znaków z~fontów
\acro{PL}, czyli ,,ogonki'' wyglądają tak samo, niezależnie od tego,
z~której z~rodzin korzystamy.
W~fontach \acro{EC}, \acro{PL} i~\acro{LM} dostępne są ponadto znaki
cudzysłowów francuskich i~polskiego otwierającego, których nie ma
w~fontach \acro{CM}. Opisany w~punkcie~\ref{subsec:quotation} sposób
wprowadzania tych znaków za pomocą par \verb+,,+$\,$, \verb+<<+
i~\verb+>>+$\,$ działa jedynie wówczas, gdy używamy fontów \acro{EC},
\acro{PL} bądź~\acro{LM}.
% wszystkie już są w formacie PS:
% Zaletą fontów \acro{PL} w~porównaniu z~rodziną \acro{EC} jest to, że
% są dostępne także w~wersji obwiedniowej ({\PostScript}owej).
Aby przełączyć się na fonty \acro{EC} lub \acro{PL}, trzeba do preambuły
dokumentu dołączyć pakiet \pai{fontenc}:
%
\begin{command}
\verb@\usepackage[T1]{fontenc}@ lub
\verb@\usepackage[OT4]{fontenc}@
\end{command}
%
\noindent
Argument \fei{T1}, określający kodowanie, jest ,,odpowiedzialny'' za
przełączenie się na fonty \acro{EC}. Podobnie Argument \fei{OT4}
włącza fonty \acro{PL}.
Uwaga: Powyższe dołączenie pakietu \pai{fontenc} jest jedynie
deklaracją. Jeżeli twoja dystrybucja {\LaTeX}a nie zawiera fontów, które
chcesz włączyć, to powyższe polecenia nie zostaną wykonane, a~{\LaTeX}
przełączy się na font domyślny, zwykle nie zawierający polskich znaków.
% ten akapit musi się zmieścić w 2 wierszasz na wydruku!
Reasumując, oto przykładowa preambuła artykułu składanego w~języku polskim
przy wykorzystaniu pakietów \pai{babel}, \pai{inputenc}
oraz \pai{fontenc}:
%%
\begin{code}
\begin{verbatim}
\documenclass{article}
\usepackage[polish]{babel}
\usepackage[cp1250]{inputenc}
\usepackage[OT4]{fontenc} %% lub [T1]
\end{verbatim}
\end{code}
%%
Lepszy sposób polonizacji {\LaTeX}a opisano w~następnym punkcie.
Rodzina fontów \acro{LH} zawiera litery potrzebne do składania
dokumentów w~cyrylicy. Ze względu na dużą liczbę znaków w~różnych
pismach cyrylickich są one zgrupowane w~czterech różnych kodowaniach:
\fei{T2A}, \fei{T2B}, \fei{T2C}, i~\fei{X2}\footnote{Listę języków
obsługiwanych w~tych kodowaniach można znaleźć w~\cite{cyrguide}.}.
Rodzina \acro{CB}, w~kodowaniu \fei{LGR}, zawiera fonty do składu greki.
\subsection{Język polski w~dokumentach\label{polski}}
Jak wspomniano w~punkcie~\ref{int-support}, poprawny skład w~języku
polskim wymaga trzech rzeczy: {\LaTeX}a z~wbudowanymi
w~format\index{format} polskimi regułami przenoszenia wyrazów, fontów
zawierających polskie znaki diakrytyczne oraz dodatkowego pakietu
obsługującego specyficzne dla języka polskiego reguły typograficzne.
W~tym punkcie zakładamy, że udało ci się skonfigurować {\LaTeX}a pod
kątem pierwszych dwóch punktów, tj. wygenerowania formatu
i~zainstalowania fontów \acro{PL} lub~\acro{EC}, i~koncentrujemy się na
szczegółowym opisie ostatniego aspektu polonizacji.
W~każdej %kompletnej
dystrybucji {\LaTeX}a znajduje się wspomniany
w~punkcie~\ref{int-support} pakiet \pai{babel}. Mimo występujących
w~nim niedociągnięć można go polecić, szczególnie początkującym.
Bardziej wymagający użytkownicy piszący po polsku powinni korzystać
z~opisanego dalej zestawu polonizacyjnego~\pai{platex}.
W~wypadku języka polskiego wiele kłopotów sprawia kodowanie znaków
diakrytycznych. Wynika to przede wszystkim z~braku standardu: różne
platformy systemowe promują w~tym zakresie różne
rozwiązania\footnote{Lekarstwem na tę bolączkę może być kodowanie
wielobajtowe, tj.~standard Unicode\index{Unicode} (\acro{UTF}).
Wprawdzie {\LaTeX} potrafi przetwarzać dokumenty unikodowe jedynie
w~ograniczonym zakresie, ale jest on wystarczający dla tekstów
w~językach europejskich. Specjalna wersja {\TeX}a, XeTeX autorstwa
Jonathana Kew\index{Kew Jonathan}\index{XeTeX}, potrafi przetwarzać
dokumenty zakodowane w~unikodzie\index{Unicode}, a~także generować
skład z~użyciem unikodowych fontów OpenType.\index{OpenType}}. Można
wyróżnić dwa sposoby zapisu diakrytyków w~{\LaTeX}u: polecenia
standardowe (opisane w~punkcie~\ref{acc:chars} oraz poniżej) i~notację
,,bezpośrednią'', posługującą się znakami o~kodach większych od
127\footnote{Jest jeszcze trzeci sposób: tak zwana notacja prefiksowa
(\texttt{/a} --~ą, \texttt{/n} --~ń, \texttt{/S} --~Ś itp.). Metoda ta
wyszła już w~zasadzie z~użytku, gdyż powszechnie dostępna jest metoda
bezpośredniego wprowadzania znaków z~polskimi ogonkami z~klawiatury.}.
Standardowe polecenia akcentowe {\LaTeX}a umożliwiają zapis wszystkich
polskich znaków diakrytycznych w~następującej
postaci\footnote{Z~notacją tą wiąże się jednak pewien problem:
otoczenie \ei{tabbing} zmienia lokalnie definicję kilku makr, w~tym
\ci{'}. Dlatego w~jego obrębie do uzyskiwania znaków z~akcentem
\emph{acute} trzeba używać notacji typu \ci{a'o}. Konsekwencją jest
to, że zarówno w~implementacji notacji prefiksowej, jak i~,,stron
kodowych'' pakietu \pai{inputenc} trzeba się do akcentu \emph{acute}
dostawać nieco naokoło.}:
%%
\begin{example}
\k{a} \'c \k{e} \l{} \'n \'o \'s
\'z \.z \k{A} \'C \k{E} \L{} \'N
\'O \'S \'Z \.Z
\end{example}
%%
\noindent
Posługiwanie się powyższymi poleceniami do pisania tekstów po polsku
jest
%nad wyraz
uciążliwe, ale przydaje się na przykład do wstawienia
niewielkich fragmentów do dokumentu, który będzie przetwarzany przez
kogoś, kto języka polskiego nie zna i~nie ma dobrze skonfigurowanej pod
tym kątem instalacji (np. polskie wstawki w artykule konferencyjnym
pisanym po angielsku).
Bezpośrednie wprowadzanie polskich znaków umożliwia mechanizm
przekodowywania, uruchamiany przez umieszczenie komentarza
strukturalnego w~pierwszym wierszu pliku\footnote{Komentarz
ten %% strukturalny
należy umieścić w~pierwszym wierszu pliku,
czyli jeszcze przed wierszem z~\ci{documentclass}, a~znak \texttt{\%}
musi być pierwszym znakiem tego wiersza.}:
%
\begin{code}
\begin{verbatim}
%& --translate-file=cp1250pl
\end{verbatim}
\end{code}
Wpis taki będzie poprawny w~wypadku redagowania plików
w~systemie \acro{MS}~Windows i~stosowania domyślnego w~nim kodowania
\acro{CP}~1250. W~wypadku systemu Unix/Linux należy zamiast \verb+cp1250pl+
wpisać \verb+il2-pl+ (przy założeniu, że posługujemy się
kodowaniem \acro{ISO}~8859-2).
% [tp]
% Zamiast komentarza strukturalnego można skorzystać z~pakietu
% \pai{inputenc}, opisanego w~punkcie \ref{int-support}.
Komentarz strukturalny jest alternatywą dla pakietu \pai{inputenc},
opisanego w~punkcie \ref{int-support}\footnote{%
Oznacza to, że jednoczesne użycie komentarza strukturalnego
\texttt{translate-file} i~dołączanie pakietu \protect\pai{inputenc}
jest błędem}
%,
% bo \LaTeX{} nie potrafi wówczas poprawnie przetwarzać znaków z~ogonkami.
Mechanizm komentarza strukturalnego nie umożliwia poprawnego
przetwarzania dokumentów unikodowych\index{Unicode}. Jeżeli upierasz
się przy unikodzie to pozostaje ci tylko pakiet \pai{inputenc}.
Zamiast pakietu \pkg{babel} można zastosować pakiet \pai{polski}
z~zestawu \pai{platex} (autorzy
Mariusz Olko\index{Olko Mariusz}
i~Marcin Woliński)\index{Woliński Marcin}.
Jego niewątpliwą zaletą jest staranniejsza polonizacja, np.~pakiet
\pkg{polski} domyślnie przełącza się na fonty \acro{PL} bez potrzeby
dołączania %do preambuły dokumentu
pakietu \pai{fontenc}.
W~wypadku przejścia z~pakietu \pai{babel} na \pai{polski} dokumenty nie
wymagają modyfikacji, oprócz oczywistej wymiany nazwy ładowanego pakietu
w~preambule.
Pakiet \pkg{polski} dołączamy w~preambule dokumentu poleceniem:
%
\begin{command}
\verb+\usepackage[+\emph{opcje}\verb+]{polski}+
\end{command}
%
Lista ważniejszych opcji obejmuje:
%
\begin{description}
\item{\popti{OT4}} wybranie kodowania \texttt{OT4} fontów,
co w~praktyce oznacza skład fontami~\acro{PL};
\item{\popti{T1} } wybranie kodowania \texttt{T1} fontów,
co oznacza skład fontami~\acro{EC};
\item{\popti{OT1}} wybranie kodowania \texttt{OT1} fontów,
co oznacza skład fontami \acro{CM} (niezalecane);
\item{\popti{plmath}} włączenie polskich oznaczeń dla standardowych
poleceń trygonometrycznych oraz symboli relacji
mniejszy-lub{\dywiz}równy i~większy-lub{\dywiz}równy (zalecane);
\item{\popti{nomathsymbols}} blokada zmiany znaczenia standardowych
poleceń trygonometrycznych oraz symboli relacji
mniejszy-lub{\dywiz}równy i~większy-lub{\dywiz}równy
(por.~punkt~\ref{symbols},
str.~\pageref{mniejszy-lub-rowny});
\item{\popti{MeX}} tryb pełnej polonizacji (zalecane).
\end{description}
%
Jeżeli opcję układu kodowania w~foncie pominięto, to pakiet \pai{polski}
używa fontów \acro{PL} (w~wypadku ich braku {\LaTeX} będzie sygnalizował
błędy). Dotyczy to zarówno fontów tekstowych, jak i~zawierających znaki
matematyczne. W~instalacji zawierającej fonty \acro{PL} dołączenie
pakietu \pai{polski} bez opcji jest równoważne poleceniu:
%
\begin{code}
\verb+\usepackage[OT4,plmath]{polski}+
\end{code}
%
Polecenie \ci{selecthyphenation} pozwala przełączyć się na dany zestaw
wzorców dzielenia wyrazów. Jest to odpowiednik polecenia
\ci{selectlanguage} z~pakietu \pkg{babel}. Argumentem jest nazwa języka.
Polonizacyjnym uzupełnieniem pakietu \pai{polski} jest zestaw klas
Marcina Wolińskiego\index{Woliński Marcin}
\texttt{mwart}\index{klasa!mwart}, \texttt{mwrep}\index{klasa!mwrep}
i~\texttt{mwbook}\index{klasa!mwbook}, dostępny pod adresem
\urlMWclasses. W~klasach tych zostały uwzględnione m.in.\ takie
zwyczaje jak: umieszczanie kropek po numerach śródtytułów, sposób
formatowania przypisów oraz pagin, zakaz przenoszenia słów
w~śródtytułach, reguły umieszczania/pomijania paginacji.
Uzyskano to za cenę znacznej ingerencji w~sposób działania klas
standardowych, czego skutkiem jest niekompatybilność z~częścią
pakietów {\LaTeX}a.
Oto przykładowa preambuła artykułu składanego w~klasie \texttt{mwart}:
\begin{code}
\begin{verbatim}
%& --translate-file=cp1250pl
\documentclass{mwart}
\usepackage[MeX]{polski}
\begin{document} ...
\end{verbatim}
\end{code}
%%
Jest to zalecany sposób rozpoczynania dokumentów w~języku polskim. Warto
z~niego korzystać, zaopatrzywszy się w~niezbędne
elementy: fonty \acro{PL}, pakiet \pai{polski} i~klasy Marcina
Wolińskiego. W~standardowej dystrybucji \LaTeX{}a, w~której na ogół
znajdują się obecnie fonty \acro{PL}, zadziała natomiast taka preambuła:
%%
\begin{code}
\begin{verbatim}
%& --translate-file=cp1250pl
\documentclass{article}
\usepackage{polski}
\end{verbatim}
\end{code}
\section{Odstępy między wyrazami }
Aby wyrównać prawy margines, {\LaTeX} wstawia między słowami odstępy
różnej wielkości. Odstęp wstawiany na końcu zdania jest trochę większy,
ponieważ tak składa się książki w~krajach anglosaskich. {\LaTeX}
zakłada, że zdania mogą się kończyć kropką, znakiem zapytania
lub wykrzyknikiem. Jeżeli bezpośrednio przed kropką znajduje się
duża litera, to {\LaTeX} nie traktuje takiego miejsca jako końca
zdania, lecz jako kropkę po skrócie.
Wyjątki od powyższych zasad trzeba wyraźnie zaznaczyć
w~tekście. %W-tył-ciach
Znak \verb|\| poprzedzający spację oznacza odstęp normalnej wielkości.
Tylda \verb|~| również wstawia
%odstęp normalnej wielkości,
taki odstęp,
z~tym że
\LaTeX{}owi nie wolno na nim złamać wiersza. Umieszczenie instrukcji
\verb|\@| przed kropką jest dla \LaTeX{}a wskazówką, że ta kropka kończy
%zdanie, nawet jeśli po dużej literze. \cih{"@} \index{~@ \verb.~.}
zdanie, nawet jeśli następuje po dużej literze.
\cih{"@}% see. lamport 154
\index{~@\verb.~.}%
\index{tylda@tylda (\verb.~.)}%
%\index{., odstęp po} % ten wpis jest niejasny
%
\begin{example}
Pan~Kowalski ucieszył się\\
na jej widok (zob.~Rys.~5).\\
Podoba mi się JAVA\@. A~tobie?
\end{example}
%
\noindent
Jak wspomniano, wstawianie większych odstępów na końcu zdań to zwyczaj
anglosaski. W~Europie kontynentalnej tradycyjnie się tego nie robi.
Wstawianie większych odstępów na końcu zdań można wyłączyć
poleceniem:
%
\begin{command}
\ci{frenchspacing}
\end{command}
Pakiet \pai{polski} domyślnie wykonuje instrukcję \ci{frenchspacing}
za nas, czyli włącza odstępy ,,kontynentalne''.
\section{Tytuły, śródtytuły i~punkty }
%%
Podzielenie dokumentu na rozdziały, punkty, podpunkty itd.\ pomaga
czytelnikom lepiej orientować się w~tekście. Do dzielenia dokumentu na
hierarchiczne części służą odpowiednie instrukcje {\LaTeX}owe.
Do autora należy
używanie tych poleceń w~odpowiednim porządku.
W~klasie \texttt{article} mamy do dyspozycji następujące instrukcje
podziału hierarchicznego:
\nopagebreak
\begin{code}
\ci{section}\verb|{...} |\ci{paragraph}\verb|{...}|\\
\ci{subsection}\verb|{...} |\ci{subparagraph}\verb|{...} |\\
\ci{subsubsection}\verb|{...} |\ci{appendix}
\end{code}
W~klasach \texttt{report} (raport) i~\texttt{book} (książka)
mogą występować rozdziały:
\begin{code}
\ci{chapter}\verb|{...}|
\end{code}
%%
Jeśli raport bądź książkę trzeba podzielić na części bez naruszania numeracji
punktów i~rozdziałów, to można użyć polecenia:
\begin{command}
\ci{part}\verb|{...}|
\end{command}
Ponieważ w~klasie \texttt{article} najwyższą jednostką w~hierarchii
podziału jest \ci{section} (czyli \emph{punkt\/}), łatwo tworzy się
książki (klasa \verb+book+), w~których rozdziałami są poszczególne
artykuły. {\LaTeX} dobierze za nas odpowiednie odstępy między
rozdziałami oraz wielkość i~krój pisma w~śródtytułach.
%\pagebreak[3]
Dwie z~wymienionych instrukcji działają nieco inaczej niż pozostałe:
%
\begin{itemize}
\item instrukcja \ci{part} nie ma wpływu na numerację rozdziałów;
\item instrukcja \ci{appendix} nie ma argumentów. Jest to deklaracja
zmieniająca sposób numerowania z~cyfr na litery. Dotyczy to rozdziałów
w~klasach \verb+book+ i~\verb+report+, a~punktów w~klasie
\verb+article+.
\end{itemize}
%%
\noindent
Argumentu instrukcji podziału dokumentu {\LaTeX} używa do przygotowania
spisu treści. Instrukcja:
%
\begin{command}
\ci{tableofcontents}
\end{command}
%
\noindent
wstawia spis treści w~miejscu jej użycia. Aby w~spisie treści otrzymać
poprawne numery stron, trzeba dokument przetworzyć (,,zlatechować'')
dwukrotnie. Czasami niezbędna jest nawet trzecia kompilacja. Kolejny
przebieg jest potrzebny, gdy pod koniec przetwarzania dokumentu {\LaTeX}
pokazuje komunikat:
%
\begin{code}
\begin{verbatim}
LaTeX Warning: Label(s) may have changed.
Rerun to get cross-references right.
\end{verbatim}
\end{code}
%
%%
{\LaTeX} przetwarza dokument strona po stronie i~w~pojedynczym
przebiegu nie może wstawić spisu treści na początku dokumentu,
ponieważ nie jest jeszcze znana jego treść ani numeracja stron.
Podobnie ma się sprawa ze spisami tabel czy rysunków. Rozwiązanie tego
problemu jest tyleż proste co skuteczne. Podczas przetwarzania
dokumentu {\LaTeX} zapisuje odpowiednie informacje do plików
pomocniczych -- w~celu ich wykorzystania podczas kolejnych przebiegów.
Przeznaczenie danego pliku pomocniczego jest sygnalizowane przez
rozszerzenie jego nazwy. I tak: plik o~rozszerzeniu \eei{.toc} zawiera
spis treści, plik~\eei{.lot} -- spis tabel, plik~\eei{.lof} -- spis
rysunków, \eei{.aux} -- informacje o~odsyłaczach wewnątrz dokumentu
(odsyłacze omawiamy w~punkcie~\ref{sec:odsylacze}). Pełniejszy wykaz
nazw plików \LaTeX{}owych podano w~punkcie~\ref{sec:latex-files}
na stronie \pageref{sec:latex-files}.
%%
Wymienione wyżej instrukcje podziału hierarchicznego
posiadają także wersje ,,z~gwiazdką''. Nazwa instrukcji w~wersji
,,z~gwiazdką'' składa się z~,,normalnej'' nazwy, po której występuje
znak ,,\verb+*+''. W~wyniku działania takiej instrukcji tytuł
rozdziału lub punktu zostanie umieszczony w~dokumencie,
ale nie w~spisie treści; tytuł nie zostanie też objęty numeracją.
Przykładowo, wersją ,,z~gwiazdką'' instrukcji \verb|\section{Pomoc}| jest
\verb|\section*{Pomoc}|.
%%
Zwyczajem angielskim jest nieumieszczanie nienumerowanych śródtytułów
w~spisie treści. Polscy redaktorzy często się domagają, by na przykład
,,Wstęp'' był śródtytułem nienumerowanym, a~jednocześnie występował
w~spisie. Ten problem rozwiązujemy za pomocą polecenia:
\begin{command}
\ci{addcontentsline}\verb.{.\emph{spis}\verb.}{.\emph{poziom}\verb.}{.\emph{śródtytuł}\verb.}.
\end{command}
%
\noindent
gdzie: \emph{spis} to rozszerzenie nazwy pliku, w~którym ma zostać
zapisana informacja, \emph{poziom} to \texttt{chapter}, \texttt{section}
bądź inna nazwa polecenia hierarchicznego, a~\emph{śródtytuł} to sam
śródtytuł. Przykład:
%
\begin{code}
\begin{verbatim}
\chapter*{Wstęp}
\addcontentsline{toc}{chapter}{Wstęp}
\end{verbatim}
\end{code}
%%
Najczęściej hasła w~spisie treści pokrywają się z~tytułami rozdziałów
czy punktów. Czasami jednak nie jest to pożądane, na przykład wówczas,
gdy tekst hasła jest zbyt długi. W~takich wypadkach hasło do spisu
treści można podać jako \emph{opcjonalny} argument instrukcji podziału
hierarchicznego, na przykład tak:
%
\begin{code}
\verb|\chapter[Krótki i~ekscytujący rozdział]{To jest|\\
\verb| bardzo długi i~wyjątkowo nudny rozdział}|
\end{code}
%
W~wyniku wykonania tej instrukcji w~spisie treści pojawi się
,,Krótki i~ekscytujący rozdział'', natomiast w~tytule rozdziału
,,To jest bardzo długi i~wyjątkowo nudny rozdział''.
{\LaTeX} składa część tytułową dokumentu, napotkawszy instrukcję:
%
\begin{command}
\ci{maketitle}
\end{command}
%
\noindent
Należy ją umieścić po \verb+\begin{document}+, czyli nie w~preambule.
Zawartość części tytułowej ustalają polecenia:
%
\begin{command}
\ci{title}\verb|{...}|, \ci{author}\verb|{...}|
oraz opcjonalnie \ci{date}\verb|{...}|
\end{command}
%
\noindent
Należy je umieścić w~preambule. Jeżeli dokument ma kilku autorów, to ich
nazwiska i~imiona rozdzielamy instrukcją \ci{and}. Sposób użycia
powyższych instrukcji demonstruje rysunek~\ref{document} ze
strony~\pageref{document}.
W~{\LaTeXe} istnieją trzy dodatkowe instrukcje dotyczące struktury
dokumentu, dostępne jednak wyłącznie w~klasie \verb|book|. Oto ich nazwy,
sposób użycia i~przeznaczenie:
%
\begin{description}
\item[\ci{frontmatter}] powinna być pierwszą instrukcją w~treści
dokumentu, czyli powinna wystąpić tuż po \verb|\begin{document}|. Włącza ona
rzymski zapis numerów stron, wyłączając jednocześnie numerowanie
punktów podziału. To tak, jakby się używało instrukcji
,,gwiazdkowanych'', w~rodzaju \verb|\chapter*{Preface}|. Punkty
podziału trafią jednak do spisu treści.
\item[\ci{mainmatter}] należy umieścić tuż przed pierwszym rozdziałem
książki. Przełącza ona sposób oznaczania numerów stron na arabski,
zerując zarazem licznik stron.
\item[\ci{backmatter}] powinna wystąpić przed ostatnimi fragmentami
książki, takim jak spis literatury albo skorowidz.
\end{description}
%
\noindent
Powyższe instrukcje przydają się do podzielenia książki na część
wstępną (obejmującą tytulaturę, spisy treści, tabel, wstępy itd.),
główną i~zakończenie (załączniki, skorowidze, kolofon itd.). W~części
wstępnej tytuły rozdziałów są składane mniejszym stopniem pisma (czego
należy oczekiwać), a~numery stron są w~notacji rzymskiej (co raczej
odbiega od polskich zwyczajów typograficznych).
\section{Odsyłacze\label{sec:odsylacze}}
Książki, raporty i~artykuły często zawierają odsyłacze do rysunków,
tabel i~innych fragmentów tekstu. Z~odsyłaczami związane są w~\LaTeX{}u
następujące trzy instrukcje:
%
\begin{command}
\ci{label}\verb|{|\emph{etykieta}\verb|}|,
\ci{ref}\verb|{|\emph{etykieta}\verb|}|
i \ci{pageref}\verb|{|\emph{etykieta}\verb|}|
\end{command}
% *** Przypis JG
\noindent
Argument \emph{etykieta} jest ciągiem liter, cyfr lub~znaków
interpunkcyjnych. Nazwy etykiet ustala sam autor. \LaTeX{} zamienia
\verb+\ref{+\emph{etykieta}\verb+}+ na numer tego rozdziału, punktu,
rysunku, tabeli czy też równania matematycznego, \emph{bezpośrednio
za\/} którym umieszczona została instrukcja \ci{label} zawierająca
identyczną \emph{etykietę}. Instrukcja
\verb+\pageref{+\emph{etykieta}\verb+}+ działa identycznie jak \ci{ref},
z~tym że wstawia numer strony, na której znajduje się element oznaczony
etykietą\footnote{Warto pamiętać, że te instrukcje ,,nie wiedzą'', do czego
tak naprawdę się odnoszą. Zadaniem instrukcji \ci{label} jest
przechowanie związku wygenerowanej automatycznie liczby z~miejscem
w~tekście.}. Oto przykład:
%
\begin{example}
Odsyłacz do tego punktu
\label{sec:this} wygląda tak:
,,patrz punkt~\ref{sec:this} na
stronie~\pageref{sec:this}.''
\end{example}
Podobnie jak w~wypadku spisów treści, tabel czy rysunków, do ustalenia
właściwej numeracji odsyłaczy potrzebne są co najmniej dwie, a~z~reguły
trzy kompilacje dokumentu. Podczas pierwszej \LaTeX{} wysyła do pliku
pomocniczego z~rozszerzeniem \eei{.aux} (zob.
punkt~\ref{sec:latex-files}) informacje o~odsyłaczach, które
wykorzystuje podczas kolejnych kompilacji.
\section{Przypisy }
Do składania przypisów u~dołu strony służy instrukcja:
%
\begin{command}
\ci{footnote}\verb|{|\emph{tekst przypisu}\verb|}|
\end{command}
%
\noindent
Należy ją wstawić bezpośrednio po słowie lub zdaniu, do którego się
odnosi. W~krajach anglosaskich przypisy odnoszące się do całego zdania
lub jego części umieszcza się natychmiast po kropce lub przecinku.
W~Polsce najczęściej umieszcza się je \emph{przed} znakiem przestankowym
(zasadę tę stosujemy w~niniejszym tłumaczeniu).
%%
{\LaTeX} numeruje przypisy automatycznie. Sposób ich numerowania zależy
od używanej klasy. W~klasie \verb|article| numeracja jest
ciągła, w~klasach \verb|report| i~\verb|book| przypisy są numerowane
w~ramach rozdziałów.
%%
\begin{example}
Przypisy\footnote{To jest właśnie
przypis.} są często
stosowane przez
użytkowników {\LaTeX}a
\end{example}
\section{Wyróżnienia }
W~tekstach pisanych na maszynie fragmenty, które mają zostać
wyróżnione, $\underline{\mbox{podkreśla się}}$.
W~dokumentach drukowanych wyróżnienie fragmentu odbywa się przez
złożenie go \textit{kursywą}. Służy do tego \LaTeX{}owa instrukcja:
%
\begin{command}
\ci{emph}\verb|{|\emph{tekst}\verb|}|
\end{command}
%
\noindent
Argumentem tej instrukcji jest tekst, który ma zostać wyróżniony.
%
\begin{example}
\emph{\emph{Wyróżnienia} w~tekście
już wyróżnionym są składane
\emph{zwykłym} krojem pisma.}
\end{example}
Zwróćmy uwagę, że istnieje różnica między wyróżnieniem części tekstu
a~złożeniem go inną czcionką:
%
\begin{example}
\textit{Tekst można \emph{wyróżnić},
składając go kursywą,}
\textsf{czcionką \emph{szeryfową},}
\texttt{a nawet \emph{maszynowo}.}
\end{example}
\section{Otoczenia\label{env} }
Do instrukcji formatujących zaliczają się
\emph{otoczenia}\index{otoczenie} (zwane
też \emph{środowiskami}\index{środowisko|see{otoczenie}}),
czyli instrukcje postaci:
%
\begin{command}
\cmd{begin}\verb|{|\emph{nazwa}\verb|}|\quad
\emph{tekst}\quad
\cmd{end}\verb|{|\emph{nazwa}\verb|}|
\end{command}
%
\noindent
gdzie \emph{nazwa} jest nazwą otoczenia, a~\emph{tekst} jest fragmentem
dokumentu, który ma zostać złożony inaczej niż poza otoczeniem.
Otoczenia można zagnieżdżać jedne w~drugich:
%
\begin{code}
\verb|\begin{aaa}...\begin{bbb}...\end{bbb}...\end{aaa}|
\end{code}
%
\noindent
Niedopuszczalne jest natomiast ,,przeplatanie'' otoczeń:
%
\begin{code}
\verb|\begin{aaa}...\begin{bbb}...\end{aaa}...\end{bbb}|
\end{code}
%
% Otoczenie tworzy grupę, tak że instrukcje wykonane pomiędzy
% \verb+\begin{+\emph{nazwa}\verb+}+
% a~\verb+\end{+\emph{nazwa}\verb+}+ dotyczą tylko jego wnętrza.
% Innymi słowy ich działanie trwa aż do napotkania
% zamykającego \verb+\end{nazwa}+.
% Tu od nowego akapitu!
Wiele standardowych poleceń \LaTeX{}a można zapisać w~formie
,,otoczeniowej''. W~takich wypadkach nazwa polecenia (bez
w-tył-ciacha) jest nazwą otoczenia.
Na przykład, zamiast polecenia \ci{em}, włączającego
wyróżniający krój pisma, możemy
zastosować otoczenie \verb+\begin{em}...\end{em}+.
W~kolejnych punktach przedstawiamy częściej używane otoczenia.
\subsection{Otoczenia \ei{itemize}, \ei{enumerate} i~\ei{description}}
Otoczenia \ei{itemize} oraz \ei{description} służą do tworzenia
wyszczególnień, zaś \ei{enumerate} do tworzenia wyliczeń. W~każdym
z~nich element wyliczenia zaczyna się od instrukcji \ci{item}.
\begin{example}
\begin{enumerate}
\item Taka lista:
\begin{itemize}
\item wygląda
\item[--] śmiesznie.
\end{itemize}
\item Pamiętaj:
\begin{description}
\item[Głupoty] nie staną się
mądrościami, gdy się je wyliczy.
\item[Mądrości] można elegancko
zestawiać w~wyliczeniach.
\end{description}
\end{enumerate}
\end{example}
\subsection{Otoczenia \ei{flushleft}, \ei{flushright} i~\ei{center}}
W~otoczeniach \ei{flushleft} i~\ei{flushright} akapity są składane
z~wyrównaniem, odpowiednio, do lewego bądź prawego marginesu. Wewnątrz
otoczenia \ei{center} każdy wiersz akapitu jest wyśrodkowany w~osi
szpalty. Tak jak zawsze, {\LaTeX} dzieli akapity na wiersze
automatycznie, można jednak w~obrębie powyższych otoczeń wymusić zmianę
wiersza poleceniem \ci{\bs}.
%
\begin{example}
\begin{flushleft}
To jest tekst\\ wyrównany do lewej.
{\LaTeX} nie składa tu wierszy\\
z~zachowaniem jednakowej długości.
\end{flushleft}
\end{example}
\begin{example}
\begin{flushright}
To jest tekst\\ wyrównany do prawej.
{\LaTeX} nie składa tu wierszy\\
z~zachowaniem jednakowej długości.
\end{flushright}
\end{example}
\begin{example}
\begin{center}
To jest tekst\\wyśrodkowany.
\end{center}
\end{example}
\subsection{Otoczenia \ei{quote}, \ei{quotation} i~\ei{verse}}
Otoczenie \ei{quote} przydaje się do składania cytatów oraz przykładów:
%
\begin{example}
Jeżeli chodzi o~długość wierszy,
to regułą kciuka jest, że:
\begin{quote}
Przeciętnie wiersz nie powinien
zawierać więcej niż 66 znaków.
Dlatego w~{\LaTeX}u standardowe
strony mają szerokie marginesy.
\end{quote}
Dlatego też w~gazetach stosuje
się druk wielołamowy.
\end{example}
\noindent
Istnieją ponadto dwa otoczenia o~podobnym zastosowaniu:
\ei{quotation} oraz \ei{verse}. Pierwsze z~nich przydaje się
do formatowania cytatów dłuższych niż jeden akapit.
W~przeciwieństwie do otoczenia \ei{quote}, wewnątrz
\ei{quotation} {\LaTeX} rozpoczyna poszczególne akapity od wcięcia
akapitowego.
Otoczenie \ei{verse} służy do składania wierszy. Poszczególne
linijki zwrotek należy kończyć instrukcją \ci{\bs}, poszczególne zaś
zwrotki -- oddzielać pustą linią.
\begin{example}
Na pamięć znam tylko jeden angielski
wiersz. Ten o~Humptym Dumptym.
\begin{flushleft}
\begin{verse}
Humpty Dumpty sat on a wall:\\
Humpty Dumpty had a great fall.\\
All the King's horses and all
the King's men\\
Couldn't put Humpty together again.
\end{verse}
\end{flushleft}
\end{example}
\subsection{Streszczenie}
Publikacje naukowe zaczynają się zazwyczaj od streszczenia --
przeglądu tego, co czytelnik napotka w~dalszej części.
W~\LaTeX{}u do wyróżniania streszczeń służy otoczenie
\ei{abstract}. Używa się go na ogół w~dokumentach klasy
\texttt{article}.
\newenvironment{abstract}%
{\begin{center}\begin{small}\begin{minipage}{0.8\textwidth}}%
{\end{minipage}\end{small}\end{center}}
\begin{example}
\begin{abstract}
Streszczenie streszczenia.
\end{abstract}
\end{example}
\subsection{Symulacja maszynopisu\label{verb-envir} }
Tekst zawarty między \verb|\begin{|\ei{verbatim}\verb|}|
a~\verb|\end{verbatim}| jest przez \LaTeX{}a składany dosłownie, czyli
tak, by wyglądał jak napisany na maszynie, z~zachowaniem zmian wiersza
i~odstępów z~pliku źródłowego.
Aby uzyskać ten efekt, krój pisma zmienia się na imitujący pismo
maszynowe (grotesk). Wszystkie znaki w~tym kroju, włączając spację,
mają jednakową szerokość. Zakończenie linii wewnątrz otoczenia
\ei{verbatim} prowadzi do rozpoczęcia nowego wiersza w~wydruku,
a~\emph{każda\/} spacja zamienia się na odstęp. Wewnątrz otoczenia
\ei{verbatim} \emph{nie\/} są wykonywane instrukcje.
Wewnątrz akapitów imitację maszynopisu uzyskuje się
za pomocą instrukcji:
%
\begin{command}
\ci{verb}\verb|+|\emph{tekst}\verb|+|
\end{command}
%
\noindent
Znak \verb|+| ogranicza %tu
tekst, który ma zostać wydrukowany
dosłownie. Zamiast \verb|+| można użyć innego znaku, byle to nie była
litera, gwiazdka, spacja ani żaden znak, który występuje w~\emph{tekście}.
Instrukcję \ci{verb} oraz otoczenie
\pai{verbatim} wykorzystujemy często w~tej
książce do składania przykładów {\LaTeX}owych.
%
\begin{example}
Rozważmy przykład\ldots
\begin{verbatim}
{ for (i=1;i<=NF;i++) {l[$i]++; }
END {for (i in l) {print l[i]}
\end{verbatim}
\end{example}
%$ %
\noindent
Otoczenie \ei{verbatim} oraz instrukcja \ci{verb} mają także wersje
,,z~gwiazdką'', w~których spacja z~pliku źródłowego jest zamieniana na
znak \verb*+ +. Jest to jedyna różnica działania w~porównaniu do
wersji bezgwiazdkowych:
%
\begin{example}
\begin{verbatim*}
gwiazdkowa wersja
otoczenia verbatim
wyróżnia spacje
w tekście
\end{verbatim*}
\end{example}
%
\noindent
Otoczenia \ei{verbatim} ani instrukcji \ci{verb}
nie wolno używać wewnątrz argumentów innych instrukcji
(więcej na ten temat w~punkcie~\ref{fragile:commands}).
\subsection{Otoczenie \ei{tabular}\label{sec:tabular} }
Do składania tabel służy otoczenie \ei{tabular}. {\LaTeX} automatycznie
ustala szerokość poszczególnych rubryk tabeli. Otoczenie ma jeden
parametr obowiązkowy, \emph{spec-kolumn}, który określa liczbę kolumn
tabeli oraz sposób ich justowania:
%
\begin{command}
\verb|\begin{tabular}{|\emph{spec-kolumn}\verb|}|
\end{command}
%
\noindent
Dla każdej kolumny należy w~argumencie wstawić jedną z~liter: \verb+l+,
\verb+r+ lub \verb+c+, określając w~ten sposób justowania
zawartości kolumny. Dosunięcie zawartości kolumny do lewej
oznaczamy literą \verb+l+, do prawej -- znakiem \verb+r+,
a~wyśrodkowanie -- znakiem \verb+c+.
Zapisu \verb|p{|\emph{szer-kolumn}\verb|}| można użyć do zaznaczenia, że
kolumna ma mieć szerokość \emph{szer-kolumn}. Wewnątrz
takiej kolumny tekst jest składany w~prostokąt o~zadanej szerokości,
z~wyrównywaniem obu marginesów.
Znak \verb+|+ instruuje \LaTeX{}a, by kolumny tabeli
rozdzielił pionową kreską.
Wewnątrz otoczenia \ei{tabular} poszczególne wiersze oddzielamy
instrukcją \ci{\bs}, a~rubryki w~wierszu -- znakiem \verb+&+.
Instrukcja \ci{hline} wstawia poziomą kreskę na całą szerokość tabeli.
%
\index{"|@ \verb."|.}
\begin{example}
\begin{tabular}{|r|l|} \hline
7C0 & heksadecymalnie \\
3700 & oktalnie \\
11111000000 & binarnie \\
\hline \hline
1984 & dziesiętnie \\ \hline
\end{tabular}
\end{example}
%%
\vspace*{-.45ex}
%%
\begin{example}
\begin{tabular}{|p{4.7cm}|} \hline
Ten akapit jest wewnątrz pudełka.
Mamy nadzieję, że uzyskany
efekt się podoba.\\ \hline
\end{tabular}
\end{example}
%
\noindent
Instrukcją \verb|@{...}| określamy odstęp między kolumnami.
Zastępuje ona domyślny odstęp międzykolumnowy
treścią umieszczoną między \verb+{+ a~\verb+}+.
Stosuje się ją często do wyrównywania zestawień
liczbowych według cyfr znaczących.
Można ją także wykorzystać do usunięcia odstępów
w~pierwszej i~ostatniej kolumnie tabeli, co ilustruje
poniższy przykład:
%
\label{sec:tabular-et}
\begin{example}
\begin{tabular}{@{} l @{}} \hline
bez odstępów na brzegach\\ \hline
\end{tabular}
\end{example}
\vspace*{-.45ex}
\begin{example}
\begin{tabular}{l} \hline
odstępy na brzegach tabeli\\ \hline
\end{tabular}
\end{example}
\noindent
W~{\LaTeX}u nie ma mechanizmu pozwalającego wyrównywać zestawienia
liczbowe według cyfr znaczących\footnote{%
Do wyrównywania cyfr można skorzystać %z~możliwości
z~pakietu
\pai{dcolumn} z~zestawu ,,tools''.}, ale efekt ten można
%%osiągnąć, %% źle się składa
uzyskać, %% dzięki temu akapit skraca się o 1 wiersz
składając liczbę w~dwóch kolumnach: część całkowitą w~kolumnie
wyrównywanej do prawego brzegu i~część dziesiętną w~kolumnie
wyrównanej do lewego. Za pomocą instrukcji \verb|@{,}| zastępujemy
przecinkiem odstęp wstawiany normalnie między kolumnami. Trzeba jednak
pamiętać o~konieczności wpisywania znaku \verb|&| zamiast przecinków
w~liczbach. Rubryki rozciągające się na kilka kolumn, jak nagłówek
w~poniższym przykładzie, tworzymy poleceniem \ci{multicolumn}:
\begin{example}
\begin{tabular}{c r @{,} l}
Wyrażenie &
\multicolumn{2}{c}{Wartość}\\\hline
$\pi$ & 3&1416 \\
$\pi^{\pi}$ & 36&46 \\
$(\pi^{\pi})^{\pi}$ & 80662&7 \\
\end{tabular}
\end{example}
%
\noindent
Polecenie \ci{cline}\verb+{+\emph{m}\verb+-+\emph{n}\verb+}+
wstawia poziomą kreskę
ciągnącą się od kolumy \emph{m}~do kolumny~\emph{n}:
\begin{example}
\begin{tabular}{|c|c|c|c|l|}\hline
1 &\multicolumn{4}{c|}{0}\\
\cline{2-5}
1 & 2 & 3 & 4 &5 \\ \cline{2-4}
1 & 2 & 3 & 4 &5 \\ \hline
\end{tabular}
\end{example}
%%
W~punkcie~\ref{more:tables} opisano,
jak sobie radzić ze składem bardziej skomplikowanych tabel.
\section{Wstawki }
Współczesne publikacje zawierają dużo rysunków i~tabel. Elementów tych
nie należy dzielić między strony i~dlatego wymagają specjalnego
potraktowania. W~sytuacji gdy nie mieszczą
się one na bieżącej stronie, na ogół przenosi się je i~wstawia na
początku strony następnej. W~wypadku przeniesienia rysunku lub
tabeli miejsce pozostałe na stronie wypełniane jest tekstem. Tego
typu elementy będziemy nazywać \emph{wstawkami}\index{wstawka}.
Aby w~pełni skorzystać z~{\LaTeX}owego mechanizmu wstawek,
trzeba choćby powierzchownie rozumieć, jak {\LaTeX}
manipuluje takimi obiektami. W~przeciwnym razie
wstawki mogą się stać źródłem irytacji, gdyż {\LaTeX}
będzie je umieszczał wszędzie, tylko nie w~miejscach, w~którym byśmy
sobie tego życzyli.
Do tworzenia wstawek mamy w~{\LaTeX}u dwa otoczenia. Otoczenie
\ei{figure} służy do tworzenia rysunków, a~otoczenie \ei{table}
-- do tabel. Oba mają jeden parametr opcjonalny:
%
\begin{command}
\verb|\begin{figure}[|\emph{miejsce}\verb|]| albo
\verb|\begin{table}[|\emph{miejsce}\verb|]|
\end{command}
%
\noindent
Argument \emph{miejsce} określa, gdzie na stronie
można umieścić wstaw\-kę. Powinna to być sekwencja od jednego
do pięciu znaków: \verb+h+, \verb+t+, \verb+b+, \verb+p+ oraz \verb+!+.
Każdy znak określa dopuszczalny sposób umieszczenia wstawki;
szczegółowe informacje na ten temat zestawiono w~tabeli~\ref{tab:permiss}.
\begin{table}[!tbp]
\caption{Opcjonalny argument otoczeń \ei{table} i~\ei{figure}
\label{tab:permiss} }
\noindent \begin{minipage}{\textwidth}
\medskip
\begin{center}
\begin{tabular}{@{}cp{10cm}@{}}
Znak & Dopuszczalne miejsce umieszczenia wstawki \\ \hline
\rule{0pt}{1.05em}
\texttt{h} & bez przemieszczenia, dokładnie w~miejscu użycia \\[0.3ex]
% poniższe nie jest prawdą: [tp]
% (użyteczne w~wypadku niewielkich wstawek);
\texttt{t} & na górze strony \\[0.3ex]
\texttt{b} & na dole strony \\[0.3ex]
\texttt{p} & na stronie zawierającej wyłącznie wstawki \\[0.3ex]
\texttt{!} & ignorując większość parametrów kontrolujących
umieszczanie wstawek\footnote{Są to parametry takie jak
np.~maksymalna dopuszczalna liczba wstawek na stronie},
przekroczenie wartości, które mogą nie pozwolić na
umieszczanie następnych wstawek na stronie.
\end{tabular}
\end{center}
\end{minipage}
\end{table}
Przykładowa tabela może się zaczynać tak:
%
\begin{code}
\verb|\begin{table}[!hbp]|
\end{code}
%
\noindent
Argument \verb|[!hbp]| oznacza, że tabelę można umieścić w~miejscu,
w~którym pojawia się w~pliku źródłowym (\texttt{h}), albo na dole strony
(\texttt{b}), albo wreszcie na osobnej stronie zawierającej wyłącznie
wstawki (\texttt{p}). Ponadto ,,\texttt{!}'' oznacza, że {\LaTeX} ma
pominąć większość parametrów sterujących umieszczaniem wstawek. Jeżeli
%%instrukcji \ci{table} %% błąd [tp]
otoczenia \ei{table}
użyto bez opcjonalnego argumentu, to jego
domyślnymi wartościami są~\verb|[tbp]|.
\LaTeX{} umieszcza każdą wstawkę zgodnie ze specyfikacją autora podaną
w~argumencie \emph{miejsce}. Jeżeli nie może umieścić wstawki na
bieżącej stronie, to dołącza ją albo do \emph{kolejki rysunków}, albo do
\emph{kolejki tabel}\footnote{Są to kolejki typu \acro{FIFO} (pierwsze
weszło -- pierwsze wyjdzie).}. Na początku składania nowej strony
{\LaTeX} sprawdza, czy można ją zapełnić wstawkami czekającymi
w~kolejce. Jeśli nie jest to możliwe, to pierwsza wstawka każdej
z~kolejek traktowana jest tak, jak gdyby właśnie pojawiła się w~tekście:
{\LaTeX} stara się ją umieścić zgodnie z~wartościami parametru
\emph{miejsce} (za wyjątkiem \verb+h+, gdyż nie jest to już oczywiście
możliwe). Nowe wstawki dołączane są na koniec odpowiednich kolejek.
{\LaTeX} dba
o~właściwy porządek wstawek każdego typu. Może się zdarzyć, że
pojedynczy rysunek, którego z~jakichś względów nie można poprawnie
wstawić, ,,ciągnie'' za sobą wszystkie późniejsze rysunki, nawet aż na
koniec dokumentu. Dlatego:
\begin{quote}
Jeżeli {\LaTeX} nie umieszcza wstawek zgodnie z~oczekiwaniami,
to z~reguły któraś z~nich blokuje całą kolejkę,
a~być może nawet wszystkie kolejki wstawek.
\end{quote}
%%\bigskip
\noindent
Wyjaśniwszy ów cokolwiek zawiły problem umieszczania wstawek, przejdź\-my do
omówienia kilku pozostałych spraw z~nimi związanych. Poleceniem:
%
\begin{command}
\ci{caption}\verb|{|\emph{tekst}\verb|}|
\end{command}
%
\noindent
wstawiamy tytuł rysunku lub tabeli. Kolejny numer rysunku bądź tabeli
oraz słowo ,,Rysunek'' bądź ,,Tabela'' (lub ,,Tablica'' -- zależnie od
używanego pakietu polonizacyjnego) zostaną wstawione automatycznie.
Następujące instrukcje:
%
\begin{command}
\ci{listoffigures} oraz \ci{listoftables}
\end{command}
%
\noindent
działają analogicznie do instrukcji \ci{tableofcontents},
wstawiając do dokumentu, odpowiednio, spis rysunków oraz spis tabel.
Poszczególnymi pozycjami tych spisów będą
tytuły rysunków bądź tabel będące argumentami instrukcji
\ci{caption}. Jeżeli tytuł jest długi, to do spisu można
przesłać jego wersję skróconą, podaną jako opcjonalny argument
instrukcji \ci{caption}:
%
\begin{code}
\verb|\caption[Short]{LLLLLoooooonnnnnggggg}|
\end{code}
%
Za pomocą instrukcji \ci{label} oraz \ci{ref} można tworzyć
odsyłacze do tabel i~rysunków.
Polecenie \ci{label} należy umieszczać \emph{bezpośrednio za\/}
instrukcją \ci{caption}. Dobrym pomysłem jest też umieszczenie jej
wewnątrz argumentu instrukcji \ci{caption} (na przykład
na końcu tytułu rysunku czy tabeli).
Niektórzy użytkownicy błędnie sądzą, że wystarczy umieścić instrukcję
\ci{label} wewnątrz otoczenia \ei{figure} czy \ei{table}, gdy
tymczasem umieszczenie jej przed poleceniem \ci{caption}
prowadzi do błędów w~numerach odsyłaczy.
W~poniższym przykładzie wstawka zawiera prostokąt o~wymiarach 5~cm
$\times$ 5~cm. Ten sposób postępowania można wykorzystać w~celu
zarezerwowania miejsca na rysunki, które zostaną wklejone później -- do
gotowego, wydrukowanego dokumentu.
% to nie to samo co: [tp]
% Tym sposobem można
% zarezerwować miejsce na rysunki, które zostaną wklejone później --
% dopiero do gotowego, przeznaczonego do druku dokumentu.
%
\begin{code}
\begin{verbatim}
Rysunek~\ref{white} jest przykładem Pop-Artu.
\begin{figure}[!htp]
\makebox[\textwidth]{\framebox[5cm]{\rule{0pt}{5cm}}}
\caption{Pięć na pięć centymetrów\label{white} }
\end{figure}
\end{verbatim}
\end{code}
%
\noindent
Zakładając w~tym przykładzie, że kolejka rysunków jest pusta, {\LaTeX}
najpierw spróbuje umieścić rysunek bez przesuwania go dokądkolwiek
(\texttt{h}). Jeżeli okaże się to niemożliwe, to spróbuje go umieścić na
górze strony (\texttt{t}). Jeżeli i~to okaże się niewykonalne, to będzie
się starał umieścić rysunek na stronie zawierającej wyłącznie wstawki
(\texttt{p}). Jeżeli w~kolejkach rysunków i~tabel nie ma wstawek
pozwalających wypełnić stronę, to \LaTeX{} rozpocznie nową stronę
i~spróbuje umieścić na niej rysunek, traktując go znowu tak, jakby
właśnie pojawił się w~tekście.
Czasami może wystąpić konieczność wykonania instrukcji:
%
\begin{command}
\ci{clearpage} albo nawet \ci{cleardoublepage}
\end{command}
%
\noindent
W~wyniku jej zadziałania {\LaTeX} umieszcza w~dokumencie wszystkie
oczekujące w~kolejkach wstawki, a~następnie rozpoczyna skład od nowej
strony. W~wypadku użycia instrukcji \ci{cleardoublepage} {\LaTeX}
rozpoczyna skład od strony
nieparzystej (por. przypis~\ref{fnt:clrdblpg} na str.~\pageref{fnt:clrdblpg}).
W~dalszej części książki przedstawimy, jak można do dokumentu dołączać
rysunki w~formacie {\PSi} (por.~\ref{eps:incl}).
\section{Ochrona poleceń kruchych\label{fragile:commands}}
Niektórych poleceń nie można umieszczać wewnątrz argumentów innych
poleceń, na przykład polecenie \ci{footnote} albo \ci{verb} nie może się pojawić
w~argumencie polecenia \ci{section} czy \ci{caption}. Kompilacja
dokumentu zakończy się w~takiej sytuacji błędem, a~takie polecenia
nazywamy \emph{kruchymi}\index{polecenie!kruche} (ang.~\UKemph{fragile
command\/}).
Polecenia kruche wymagają ,,ochrony''. Możemy je chronić,
umieszczając przed nimi polecenie \ci{protect}.
Polecenie \ci{protect} odnosi się wyłącznie do instrukcji znajdującej
się tuż za nim, nie obejmuje swym działaniem nawet argumentów tej
instrukcji. W~większości wypadków nadmiarowe użycie \ci{protect} nie
powoduje szkód.
%%
\begin{code}
\begin{verbatim}
\section{Jestem przezorny%
\protect\footnote{i~chronię przypisy}}
\end{verbatim}
\end{code}
%%
Uwaga: wiele osób lubi dodawać przypisy do śródtytułów. Naszym zdaniem
jest to zły i~komplikujący życie zwyczaj; ostatecznie zawsze można
umieścić przypis w~pierwszym akapicie pod śródtytułem. Rób jak
uważasz, ale czy wiesz, jak usunąć numer przypisu ze spisu treści?
\section {Listy \label{sec:letter}}
Do pisania listów można użyć klasy \verb+letter+. Struktura pliku
źródłowego tej klasy różni się od
dokumentów z~klasy \verb+article+ czy \verb+book+. Klasę
\verb+letter+ zaprojektowano tak, by bezproblemowo dało się napisać
zarówno pojedynczy list do przysłowiowej ,,cioci'', jak też setki listów
do różnych osób (korespondencja seryjna).
Jeśli imię, nazwisko i~adres nadawcy mają być
identyczne we wszystkich listach, to deklarujemy je
poleceniem:
%
\begin{code}
\verb+\address{+\emph{imię}\verb+\\+\emph{nazwisko}\verb+\\+
\emph{adres\dots}\verb+}+
\end{code}
%
\noindent
Użycie instrukcji \ci{\bs} w~adresie powoduje złamanie wiersza.
Polecenie \ci{signature} służy do zadeklarowania podpisu pod listem.
Wewnątrz argumentu tego polecenia instrukcja \ci{\bs} służy
do rozpoczęcia nowego wiersza, przykładowo:
%
\begin{example}
Dyr. E.~K.~Tor,\\ Przewodniczący
Zastępcy
\end{example}
%
\noindent
Do nagłówka listu automatycznie wstawiana jest bieżąca data. Aby wstawić
inną, należy zastosować deklarację \ci{date}:
%
\begin{code}
\verb+\date{16 Czerwca 1963~r.}+
\end{code}
%
\noindent
Deklaracje \ci{address}, \ci{signature} oraz \ci{date}
umieszcza się zwykle w~preambule, chociaż mogą one wystąpić również
w~części zasadniczej pliku źródłowego.
Treść listu powinniśmy wpisać wewnątrz otoczenia \ei{letter}. Otoczenie
to ma jeden argument, którym jest adres osoby, do której piszemy.
Wewnątrz otoczenia \ei{letter} można stosować kilka prostych poleceń
służących do umieszczania w~odpowiednim miejscu elementów typowego
listu\footnote{Elementy nietypowe zawsze można umieścić, korzystając
z~innych poleceń poznanych w~tym rozdziale.}. Do złożenia nagłówka
listu używamy polecenia \ci{opening}, a~do zakończenia --
\ci{closing}. Ponadto są polecenia: \ci{ps} do wstawienia \emph{post
scriptum} oraz \ci{cc} do zdefiniowania wykazu osób, które mają
otrzymać kopię listu. Oto pełny przykład listu:
%
\begin{code}
\begin{verbatim}
%& --translate-file=il2-pl
\documentclass{letter}
\usepackage{polski}
\address{Dyr. E.~K.~Tor,\\ Przewodniczący Zastępcy\\
Firma z~o.o.\\ w/m}
\signature{E.~.K.~Thor}
\begin{document}
% pierwszy list
\begin{letter}{Henryk Potrykus\\ul.~Krótka\\Puck}
\opening{Szanowny Panie}
Z~przykrością zawiadamiam, że Pańskie podanie
zostało...
\closing{Z~poważaniem}
\cc{cc: Józef Wujke}
\end{letter}
% drugi list
\begin{letter}{Zofia Potrykus\\ul.~Szkolna\\Reda}
\opening{Szanowna Pani}
Odpowiadając na Pani pismo...
...
\end{letter}
\end{document}
\end{verbatim}
\end{code}
%%% Local Variables:
%%% mode: latex
%%% TeX-master: "lshort2e"
%%% coding: latin-2
%%% case-fold-search: nil
%%% LocalWords: ghostscript acrobat makeindex plmindex kiepskości
%%% LocalWords: Johannesa Braamsa
%%% ispell-local-dictionary: "polish"
%%% End