diff options
Diffstat (limited to 'info/lshort/polish/src/custom.tex')
-rw-r--r-- | info/lshort/polish/src/custom.tex | 1681 |
1 files changed, 0 insertions, 1681 deletions
diff --git a/info/lshort/polish/src/custom.tex b/info/lshort/polish/src/custom.tex deleted file mode 100644 index 1c83e554fe..0000000000 --- a/info/lshort/polish/src/custom.tex +++ /dev/null @@ -1,1681 +0,0 @@ -% -- translate-file=il2-pl -- -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Contents: Customising LaTeX output (LShort2e Introduction) -% File: custom.tex (Polish translation) -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\chapter{Adaptowanie {\LaTeX}a \label{chp:adapt}} - -\begin{intro} - Dokumenty składane za pomocą poznanych do tej pory poleceń - będą się zapewne podobały zdecydowanej większości czytelników. - Chociaż ich wygląd nie będzie może wyrafinowany, z~pewnością jednak - spełnią one podstawowe zasady składu, dzięki czemu - będzie się je czytało łatwo i~przyjemnie. - - W~niektórych wypadkach może się jednak okazać, że brakuje polecenia - czy otoczenia, za pomocą którego moglibyśmy złożyć dany fragment - tekstu w~sposób odpowiadający potrzebom, albo też że sposób - działania dostępnej w~{\LaTeX}u instrukcji nie spełnia naszych wymagań. - - W~tym rozdziale przedstawimy, jak nauczyć {\LaTeX}a formatować - dokumenty tak, aby wyglądały inaczej niż w~wypadku korzystania - jedynie ze standardowych klas i~pakietów. -\end{intro} - -\section{Definiowane instrukcji i~otoczeń} - -Czytelnicy zauważyli zapewne, że nowo wprowadzane w~tej książce -polecenia ukazują się w~ramkach oraz że znajdują się one -w~skorowidzu. Aby to osiągnąć, nie korzystaliśmy za każdym razem -z~wbudowanych w~{\LaTeX}a instrukcji, lecz utworzyliśmy własny -pakiet, w~którym zawarliśmy nowe, potrzebne nam polecenia i~otoczenia. -Dysponując takim pakietem, wystarczy po prostu napisać: - % -\begin{example} -\begin{command} -\ci{polecenie} -\end{command} -\end{example} -\noindent -W~tym przykładzie użyliśmy zarówno nowego otoczenia o~nazwie -\verb+command+, odpowiedzialnego za rysowanie ramek dookoła instrukcji, -jak też nowego polecenia \verb+\ci+, służącego do składu nazw poleceń -i~wprowadzania ich do skorowidza. Proponujemy Czytelnikom odszukanie -hasła \verb+\polecenie+ w~skorowidzu; przy haśle powinny być podane -numery stron, na których ta instrukcja występuje w~książce. - -Gdy zdecydujemy się zaprzestać otaczać polecenia ramkami, -to do zmiany wyglądu wystarczy, że zmienimy definicję -otoczenia \verb+command+. -Jest to znacznie łatwiejsze od przebiegnięcia przez cały dokument -w~celu wyłapania w~nim wszystkich standardowych poleceń \LaTeX{}, które -służą do rysowania ramek wokół słów. - -%%<PLext> -We wstępie do tego opracowania wspomnieliśmy, że w~{\LaTeX}u możemy -się skupić na logicznej strukturze dokumentów. Wskazane jest -rozróżnić w~tekście źródłowym wszystkie elementy logiczne dokumentu, -nawet jeżeli ich formatowanie jest identyczne. Nierzadko bowiem to, -co dzisiaj formatujemy w~taki sam sposób, w~przyszłości możemy chcieć -rozróżnić. - -Zwykło się na przykład składać adresy internetowe imitacją kroju -maszynowego. Ponieważ w~adresach mogą wystąpić znaki specjalne -{\LaTeX}a, to można by do tego celu stosować instrukcję \ci{verb}. -Lepiej jednak użyć specjalnej instrukcji, np.~\ci{url}. W~dokumencie -papierowym nie ma to znaczenia, znakowanie logiczne pozwala jednak -przedstawić dokument zarówno w~formie drukowanej, jak -i~hipertekstowej, w~formacie \acro{HTML} lub \acro{PDF}. -%%</PLext> - -\subsection{Instrukcje definiowane przez użytkownika} - -Do definiowania potrzebnych nam nowych poleceń możemy użyć instrukcji: -% -\begin{command} -\ci{newcommand}\verb|{|% -\emph{nazwa}\verb|}[|\emph{num}\verb|]{|\emph{tekst}\verb|}| -\end{command} -% -\noindent -Wymaga ona podania dwóch argumentów. Pierwszy z~nich, \emph{nazwa}, -oznacza nazwę nowej instrukcji, natomiast \emph{tekst} to jej znaczenie, -czyli tekst, który ma zostać wstawiony do składu w~momencie wykonania -instrukcji. Podawany w~nawiasach kwadratowych argument \emph{num} -powinien być cyfrą od~1 do~9, określającą liczbę (obowiązkowych) argumentów -instrukcji. Argument \emph{num} jest opcjonalny, a~jego pominięcie -oznacza, że definiowana instrukcja jest bezargumentowa. - -%%<PLext> -W~części \emph{tekst} wolno używać zarówno standardowych instrukcji -{\LaTeX}a, jak też zdefiniowanych przez użytkownika. Nie wolno jednak -korzystać z~tych instrukcji, które same definiują inne polecenia, jak -\ci{newcommand}, \ci{newenvironment} itp. Niedozwolona jest rekursja, -nie wolno też w~nazwach instrukcji umieszczać polskich liter -diakrytycznych. -%%</PLext> - -Następujące przykłady pomogą lepiej zrozumieć zagadnienie. W~pierwszym -z~nich definiujemy instrukcję o~nazwie \cmd{kwle}, mającą być skrótem dla -słów ,,Krótkie wprowadzenie do systemu \LaTeXe''. Takie polecenie -mogłoby się przydać, gdyby tytuł książki miał w~niej występować wielokrotnie. -% -\begin{example} -\newcommand{\kwle}{Krótkie -wprowadzenie do systemu \LaTeXe} -% następnie po \begin{document}: -\kwle; \emph{\kwle} -\end{example} -% -\noindent -Następny przykład ilustruje sposób wykorzystania opcjonalnego argumentu -\emph{num}. Znacznik \verb|#1| oznacza pierwszy parametr formalny -(\verb|#2| oznaczałby drugi, \verb|#3| -- trzeci -itd.). W~trakcie wykonywania treści instrukcji w~miejsce parametrów -formalnych \TeX{} wstawia argumenty podane w~jej wywołaniu -(parametry aktualne). - -Instrukcja w~poniższym przykładzie ma jeden parametr: -% -\begin{example} -\newcommand{\wle}[1] -{\emph{#1} wprowadzenie -do systemu \LaTeXe} -% następnie po \begin{document}: -\wle{Krótkie}; \wle{Długie} -\end{example} -% -\noindent {\LaTeX} nie pozwala zdefiniować instrukcji nazwanej tak samo -jak wcześniej zdefiniowane polecenie. W~wypadku gdy chcemy zmienić -znaczenie już istniejącej instrukcji, powinniśmy użyć polecenia -\ci{renewcommand}. Za wyjątkiem nazwy ma ono składnię identyczną jak -\verb|\newcommand|. - -Czasami może się też przydać polecenie -\ci{providecommand}. Działa ono jak \verb|\newcommand|, z~tym że jeśli -istnieje już komenda o~takiej samej nazwie, to nie zastępuje ono -starej, zwyczajnie ignorując nową. - -Nieco uwagi należy poświęcić temu, jaki skutek ma umieszczenie odstępu -po komendzie \LaTeX{}a. Informacje na ten temat można znaleźć na stronie -\pageref{whitespace}. - -\subsection{Otoczenia definiowane przez użytkownika } - -Odpowiednikiem definiującej nowe polecenie instrukcji \verb|\newcommand| -jest dla otoczeń instrukcja \verb|\newenvironment|. Ma ona następującą -składnię: -% -\begin{command} -\ci{newenvironment}\verb|{|% -\emph{nazwa}\verb|}[|\emph{num}\verb|]{|% -\emph{początek}\verb|}{|\emph{koniec}\verb|}| -\end{command} -% -\noindent -Podobnie jak w~wypadku \verb|\newcommand|, można instrukcji -\ci{newenvironment} użyć z~argumentem opcjonalnym albo bez niego. -{\LaTeX} wstawia tekst \emph{początek}, gdy w~dokumencie napotyka napis -\verb+\begin{+\emph{nazwa}\verb+}+, a~zawartość argumentu \emph{koniec} - -- po napotkaniu napisu \verb|\end{|\emph{nazwa}\verb|}|. - -Poniższy przykład ilustruje sposób użycia -instrukcji \ci{newenvironment}. -% -\begin{example} -\newenvironment{zrodlo} -{Źródło: }{\par} -% następnie po \begin{document}: -\begin{zrodlo} Rocznik Statystyczny -GUS. \end{zrodlo} -\end{example} -% -\noindent -Znaczenie argumentu \emph{num} jest takie samo jak w~instrukcji -\verb|\newcommand|. - -{\LaTeX} nie pozwala zdefiniować otoczenia o~już istniejącej nazwie. -W~razie potrzeby zastąpienia już istniejącego otoczenia -powinniśmy użyć polecenia \ci{renewenvironment}, o~składni takiej samej -jak \ci{newenvironment}. - -% to jest zbędne [tp]: -% Polecenia użyte w~powyższym przykładzie są objaśniane dalej. O~poleceniu -% \ci{rule} można przeczytać na stronie \pageref{sec:rule}, o~\ci{stretch} -% -- na stronie \pageref{cmd:stretch}, a~informacje na temat \ci{hspace} -% można znaleźć na stronie \pageref{sec:hspace}. - -\subsection{Nadmiarowe odstępy} - -Gdy tworzymy nowe otoczenie, problemem mogą być zbędne -%, niechciane przez nas %% źle się łamie strona -odstępy, które {\LaTeX} wstawia do składu. Rozważmy przykład -otoczenia, które ma się rozpoczynać od akapitu bez wcięcia, ponadto -pierwszy akapit po otoczeniu także nie ma mieć wcięcia. Polecenie -\ci{ignorespaces}, umieszczone jako ostatnie polecenie bloku -\emph{begin\/} otoczenia, spowoduje zignorowanie wszystkich %znaków -odstępów występujących przed pierwszym akapitem otoczenia. Usunięcie -drugiego wcięcia przez umieszczenie w~bloku końcowym \ci{ignorespaces} -jest niemożliwe, gdyż zawsze ostatnim poleceniem będzie -\verb@\end{otoczenie}@, które anuluje działanie \ci{ignorespaces}. -W~takiej sytuacji trzeba skorzystać z~polecenia -\ci{ignorespacesafterend}. Napotkawszy je, {\LaTeX} wstawi -\ci{ignorespaces} dopiero po wykonaniu zamykającego -\verb|\end{otoczenie}|. - - %% -\begin{example} -\newenvironment{proste}% - {\noindent}% - {\par\noindent} - -\begin{proste} -Zobacz odstęp\\z~lewej strony. -\end{proste} -Tak samo\\tutaj. -\end{example} - -\begin{example} -\newenvironment{poprawne}% - {\noindent\ignorespaces}% - {\par\noindent% - \ignorespacesafterend} - -\begin{poprawne} -Bez odstępu\\z lewej strony. -\end{poprawne} -Tak samo\\tutaj. -\end{example} - -% Poniższe jest zupełnie niepotrzebne [tp]: -% \subsection{Wywoływanie \LaTeX{}a w~linii rozkazowej} - -% Użytkownicy systemów operacyjnych typu Unix do obsługi projektów -% \LaTeX{}owych stosują zapewne pliki Makefile. W~tym kontekście -% ciekawa byłaby możliwość tworzenia różnych wersji tego samego dokumentu -% metodą podawaniu różnych parametrów w~linii rozkazowej -% wołającej \LaTeX{}a. Możemy to ułatwić, umieszczając w~dokumencie -% coś takiego: -% \begin{verbatim} -% \usepackage{ifthen} -% \ifthenelse{\equal{\blackandwhite}{true}}{ -% % coś robimy w~trybie "czarno--białym" -% }{ -% % robimy coś innego w~trybie "kolorowym" -% } -% \end{verbatim} -% Możemy teraz wywołać \LaTeX{}a w~następujący sposób: -% \begin{verbatim} -% latex '\newcommand{\blackandwhite}{true}\input{test.tex}' -% \end{verbatim} -% Polecenie \verb|\blackandwhite| zostaje zdefiniowane jeszcze przed -% odczytem pliku źródłowego. Zmieniając \verb|\blackandwhite| na -% \ci{false} spowodujemy generowanie kolorowej wersji dokumentu. - -\subsection{Własne pakiety} - -W~wypadku definiowania wielu nowych poleceń i~otoczeń preambuła -dokumentu może się znacznie wydłużyć. Dobrze w~takiej sytuacji stworzyć -pakiet zawierający definicje tych instrukcji i~otoczeń. Taki pakiet -można później dołączyć do dokumentu poleceniem \ci{usepackage}. - -\begin{figure}[!htbp] -\begin{lined}{\textwidth} -\begin{verbatim} -% Przykładowy pakiet *** -\ProvidesPackage{demopack} -\newcommand{\kwle}{Krótkie wprowadzenie do systemu \LaTeXe} -\newcommand{\wle}[1]{\emph{#1} wprowadzenie -do systemu \LaTeXe} -\newenvironment{zrodlo}{Źródło: }{\par} -\end{verbatim} -\end{lined} -\caption{Przykładowy pakiet\label{package} } -\end{figure} -\noindent - -Tworzenie pakietu polega na skopiowaniu poleceń z~preambuły do -oddzielnego pliku o~rozszerzeniu \eei{.sty}. -Na początku pakietu należy wpisać polecenie: -% -\begin{command} -\ci{ProvidesPackage}\verb|{|\emph{nazwa}\verb|}| -\end{command} -% -\noindent -Dzięki instrukcji \verb|\ProvidesPackage| {\LaTeX} poznaje nazwę -pakietu, a~to pozwala mu na przykład ostrzec użytkownika -w~wypadku powtórnego dołączenia pakietu do dokumentu. -Rysunek~\ref{package} przedstawia niewielki pakiet z~instrukcjami -z~powyższych przykładów. - -\section{Fonty} - -\subsection{Instrukcje przełączające stopień pisma } - -{\LaTeX} automatycznie -%%dostosowuje -dobiera -krój, odmianę i~stopień pisma\footnote{% - \emph{Pismo drukarskie\index{pismo!drukarskie}\/} to pismo utrwalone - na nośniku, tj.~materiale, na którym umieszczono negatywy lub pozytywy - znaków pisma. \emph{Krój pisma}\index{pismo!krój} to obraz pisma - drukarskiego o~jednolitych cechach graficznych, niezależnych od - stopnia i~odmiany pisma. Każdy krój pisma posiada swoją nazwę (na - przykład Times New Roman, Computer Modern czy Garamond). \emph{Odmiana - kroju}\index{pismo!odmiana} pisma różnicuje pisma jednego kroju ze - względu na grubość, szerokość i~pochylenie. \emph{Stopień - pisma}\index{pismo!stopień} określa z~kolei wielkość znaków. Zestawy - metalowych \emph{czcionek}\index{czcionka|see{pismo drukarskie}}, - czyli kawałków metalu, - w~których utrwalano znaki pisma, drukarze przechowywali - w~\emph{kasztach}\index{kaszta}. Angielską, a~właściwie amerykańską - nazwą zestawu czcionek jednego kroju i~wielkości, powszechnie dziś - używaną w~terminologii komputerowej, jest \emph{font}\index{font} - (zobacz też~\cite{chwialowski}). - - Fonty {\LaTeX}a, takie jak \acro{PL}, \acro{EC} czy \acro{LM}, są - optycznie identyczne, bo wszystkie są replikami kroju \emph{Computer - Modern}, różnią się jednak od najczęściej używanego - w~edytorach biurowych, takich jak {\MSWord}, kroju \emph{Times New - Roman}. } -%% do logicznego charakteru składanych -dla różnych -elementów dokumentu (tytułów -rozdziałów, punktów, przypisów itp.). Czasami zachodzi jednak potrzeba -,,ręcznego'' przełączenia kroju bądź stopnia pisma. Można do tego -użyć poleceń zestawionych w~tabelach~\ref{fonts} i~\ref{sizes}. -Stopień pisma jest kwestią układu graficznego dokumentu i~zależy od -wybranej klasy dokumentu oraz ustawienia odpowiednich opcji. -W~tabeli~\ref{tab:ptsizes} zestawiono stopnie pisma w~jednostkach -absolutnych dla poleceń zmieniających wielkość kroju w~standardowych -klasach dokumentów. -% -\begin{example} -{\small Nieliczni lecz -\textbf{odważni} Rzymianie rządzili} -{\Large wielką \textit{Italią}.} -\end{example} -% - -\noindent -Bieżący font jest w~{\LaTeX}u scharakteryzowany przez pięć elementów: -układ (zestaw znaków), krój (rodzinę), grubość i~szerokość, odmianę oraz -stopień i~interlinię. Każdy z~nich można dobrać niezależnie od -ustawienia pozostałych. Oznacza to na przykład, że zmiana stopnia -pisma nie powoduje zmiany jego kroju ani odmiany. - -\begin{table}[!bth] -\caption{Polecenia wyboru krojów i~odmian \label{fonts}} -\begin{lined}{12.5cm} -% -% Alan suggested not to tell about the other form of the command -% eg \verb|\sffamily| or \verb|\bfseries|. This seems a good thing to me. -% -\tabcolsep=.5\tabcolsep -\begin{tabular}{@{}rl@{\quad}rl@{}} -\ci{textrm}\verb|{...}| & \textrm{krój szeryfowy} & -\ci{textsf}\verb|{...}| & \textsf{krój bezszeryfowy} \\ -\ci{texttt}\verb|{...}| & \multicolumn{3}{l}{\texttt{grotesk}, - tj. pismo o~jednakowej szerokości znaków} \\[6pt] -\ci{textmd}\verb|{...}| & \textmd{pismo jasne} & -\ci{textbf}\verb|{...}| & \textbf{pismo grube} \\[6pt] -\ci{textup}\verb|{...}| & \textup{odmiana prosta} & -\ci{textit}\verb|{...}| & \textit{kursywa} \\ -\ci{textsl}\verb|{...}| & \textsl{odmiana pochyła}& -\ci{textsc}\verb|{...}| & \textsc{kapitaliki} \\[6pt] -\ci{emph}\verb|{...}| & \emph{wyróżnienie} \\ -\ci{textnormal}\verb|{...}| & \multicolumn{2}{l}{główny font dokumentu} -\end{tabular} -\end{lined} -\vspace{-2.0ex} -\end{table} - -\begin{table}[!tbh] -\caption{Polecenia jednoczesnego wyboru stopnia pisma -i~interlinii\index{stopień pisma}\label{sizes} } -\begin{lined}{12.5cm} -\begin{tabular}{@{}ll} -\ci{tiny} & \tiny mikroskopijny \\ -\ci{scriptsize} & \scriptsize bardzo mały \\ -\ci{footnotesize} & \footnotesize mniejszy \\ -\ci{small} & \small mały \\ -\ci{normalsize} & \normalsize normalny \\ -\ci{large} & \large duży -\end{tabular}% -\qquad\begin{tabular}{ll@{}} -\ci{Large} & \Large większy \\[5pt] -\ci{LARGE} & \LARGE bardzo duży \\[5pt] -\ci{huge} & \huge ogromny \\[5pt] -\ci{Huge} & \Huge największy -\end{tabular} -\end{lined} -\end{table} - -Przy okazji omawiania poleceń dotyczących fontów trzeba wspomnieć -o~koncepcji \emph{grupowania}. Grupa\index{grupa} zaczyna -się od znaku \verb+{+, a~kończy znakiem \verb+}+. Grupy służą -do ograniczania zasięgu działania poleceń {\LaTeX}a. Przyjrzyjmy się -następującemu przykładowi: -% -\begin{example} -Lubię {\LARGE duże oraz -{\small małe} litery} i~cyfry. -\end{example} -% -%%<PLext> - Pierwszy nawias klamrowy rozpoczyna grupę, potem polecenie - \verb+\LARGE+ zmienia stopień pisma na \emph{bardzo duży}, w~którym - zostanie złożony napis ,,duże oraz''. Kolejny otwierający nawias - klamrowy zaczyna następną grupę. W~jej obrębie polecenie \verb+\small+ zmienia - stopień pisma na mały. Do złożenia w~tym stopniu przewidziano jedynie słowo - ,,małe'', bo nawias \verb+}+ za tym słowem zamyka grupę. Po zamknięciu -grupy następuje powrót do stopnia pisma aktualnego przed jej -rozpoczęciem, czyli \verb+\LARGE+. W~nim zostanie złożone -słowo ,,litery''. Zamknięcie tej grupy powoduje, że resztę tekstu -{\LaTeX} złoży w~wyjściowym stopniu pisma. Jak widać, grupy można -zagnieżdżać, nawet wielokrotnie. -%%</PLext> - -\noindent -Polecenia zmieniające stopień pisma zmieniają także interlinię. Dzieje -się tak jednak tylko wtedy, gdy \emph{przed} zamknięciem odpowiedniej -grupy kończony jest akapit -- przez wstawienie pustego wiersza -\emph{lub} polecenia \ci{par}. Zwróćmy uwagę na miejsce, w~którym -umieszczono instrukcję \verb|\par| w~poniższych dwóch przykładach. -% -\begin{example} -{\Large Zdanie, które ma więcej -niż pięć słów, nie ma sensu!\par} -\end{example} -% -\begin{example} -{\Large Zdanie, które ma więcej -niż pięć słów, nie ma sensu!}\par -\end{example} -% -\noindent -Jeśli zachodzi konieczność zmiany stopnia pisma dla całego akapitu lub jeszcze -dłuższego tekstu, to możemy skorzystać ze składni przyjętej dla otoczeń: -% -\begin{example} -\begin{Large} Zdanie, które ma -więcej niż pięć słów, nie ma sensu! -\end{Large} -\end{example} -% -\noindent -Zapis taki pozwala unikać łatwych do popełnienia błędów, wynikających -z~opuszczania nawiasów otwierających lub zamykających grupy. - -% [RK] usuwam ten akapit jako nieobecny w oryginale, nieoznakowany -% przez TP i w ogóle mało niosący informacji (powtarza to, co -% w nagłówku tabeli. -% Stopień pisma jest kwestią układu graficznego dokumentu i~zależy od -% wybranej klasy dokumentu i~ustawienia odpowiednich opcji. -% W~tabeli~\ref{tab:ptsizes} zestawiono stopnie pisma, wyrażone -% w~jednostkach absolutnych, dla poleceń ustalających wielkość kroju -% w~standardowych klasach dokumentów. - -\begin{table}[!tb] -\caption{Wielkość stopnia pisma w~klasach standardowych\label{tab:ptsizes}} -\label{tab:sizes} -\begin{lined}{12.5cm} -\tabcolsep=1.75em -\begin{tabular}{lrrr} -\multicolumn{1}{c}{\emph{Stopień}} & \multicolumn{1}{c}{\emph{10pt}} & -\multicolumn{1}{c}{\emph{opcja 11pt}} & -\multicolumn{1}{c}{\emph{opcja 12pt}} \\[4.5pt] -\verb|\tiny| & 5pt & 6pt & 6pt \\ -\verb|\scriptsize| & 7pt & 8pt & 8pt \\ -\verb|\footnotesize| & 8pt & 9pt & 10pt \\ -\verb|\small| & 9pt & 10pt & 11pt \\ -\verb|\normalsize| & 10pt & 11pt & 12pt \\ -\verb|\large| & 12pt & 12pt & 14pt \\ -\verb|\Large| & 14pt & 14pt & 17pt \\ -\verb|\LARGE| & 17pt & 17pt & 20pt \\ -\verb|\huge| & 20pt & 20pt & 25pt \\ -\verb|\Huge| & 25pt & 25pt & 25pt -\end{tabular} -\end{lined} -\vspace{-2.0ex} -\end{table} - -W~\emph{trybie matematycznym} w~celu złożenia fragmentu wzoru innym -niż pochyłe krojem pisma można zastosować polecenia zestawione -w~tabeli~\ref{mathfonts}. - -\begin{table}[!tb] -\caption{Polecenia wyboru fontów w~trybie matematycznym\label{mathfonts} } -\begin{lined}{\textwidth} -\begin{tabular}{@{}lll@{}} -\textit{Polecenie}&\textit{Przykład}& \textit{Wynik\strut}\\ \hline -\ci{mathcal}\verb|{...}|& \verb|$\mathcal{B}=c$|& $\mathcal{B}=c$\\ -\ci{mathrm}\verb|{...}|& \verb|$\mathrm{K}_2$|& $\mathrm{K}_2$\\ -\ci{mathbf}\verb|{...}|& \verb|$\sum x=\mathbf{v}$|& $\sum x=\mathbf{v}$\\ -\ci{mathsf}\verb|{...}|& \verb|$\mathsf{G\times R}$|& $\mathsf{G\times -R}$\\ -\ci{mathtt}\verb|{...}|& \verb|$\mathtt{L}(b,c)$|& $\mathtt{L}(b,c)$\\ -\ci{mathnormal}\verb|{...}|& \verb|$\mathnormal{R_{19}}\neq R_{19}$|& -$\mathnormal{R_{19}}\neq R_{19}$\\ -\ci{mathit}\verb|{...}|& \verb|$\mathit{ffi}\neq ffi$|& $\mathit{ffi}\neq -ffi$ -\end{tabular} -\end{lined} -\end{table} - -\subsection{Uwaga, niebezpieczeństwo! } - -Jak zaznaczyliśmy na początku rozdziału, nie należy instrukcji zmiany -fontu wstawiać \emph{explicite} do pliku źródłowego. Byłoby to niezgodne -z~podstawową ideą {\LaTeX}a, jaką jest oddzielenie formy od treści -dokumentu i~posługiwanie się formatowaniem logicznym, a~nie wizualnym. -Jeżeli fragment tekstu ma zostać wyróżniony przez złożenie go innym -krojem lub stopniem pisma, to należy zdefiniować odpowiednie polecenie -i~potem właśnie jego używać w~treści dokumentu. -% -\begin{example} -% w~preambule albo pakiecie -\newcommand{\uwaga}[1]{\textbf{#1}} -% po \begin{document} -\uwaga{Baczność!} Przewody sieci -trakcyjnej są pod napięciem. -Dotknięcie grozi \uwaga{śmiercią}. -\end{example} -% -\noindent -Niewątpliwą zaletą tego podejścia jest to, że kiedy później będziemy -chcieli wyróżnić wszystkie elementy, na które czytelnik powinien -zwrócić \emph{szczególną uwagę}, w~sposób inny niż składając je pismem -półgrubym, to nie musimy przeglądać całego pliku w~celu sprawdzenia, -czy dane wystąpienie \ci{textbf} dotyczy tekstu, na który ma zostać -zwrócona \emph{szczególna uwaga}, czy też wstawione zostało w~zupełnie -innym celu. - -\medskip -\noindent -%%<PLext> - \EMPH{Na zakończenie rada z~gatunku estetycznych}: nie należy - przesadzać ze stosowaniem wielu różnych krojów pisma w~jednym - dokumencie. -%%</PLext> - -\subsection{Użycie alternatywnych krojów pisma} - -Większość dokumentów jest składanych w~{\LaTeX}u z~użyciem domyślnego -kroju, będącego repliką \emph{Computer Modern}. Jeżeli wygląd znaków -z~rodziny \acro{CM} nam się znuży, to możemy złożyć dokument innym -krojem. Musimy jednak pamiętać, że na ogół alternatywne kroje nie są tak -kompletne jak rodzina \emph{Computer Modern}, często na przykład brakuje -w~nich kompletu symboli matematycznych, znaków z~alfabetów -niełacińskich, takich jak greka lub alfabet cyrylicki, albo niektórych -odmian, jak na przykład kapitalików. - -Z~drugiej strony krój \acro{CM} ma też wady: kreski znaków są cieńsze, a -względna wysokość małych liter\footnote{Względna w~porównaniu do - nominalnego stopnia pisma; - wysokość ta wynosi dla kroju \acro{CM} 43\%, a dla - kroju Palatino -- 46\%; dla dużych liter z~tych krojów jest - to odpowiednio: 68,9\% i~68,5\%.} jest mniejsza niż w~wielu innych -krojach. Te cechy kroju \acro{CM} powodują, że jest mniej czytelny -w~wypadku, gdy jest reprodukowany na nośniku o~niskiej rozdzielczości, -lub -- mówiąc wprost -- nie najlepiej się nadaje do dokumentów, które będą -wyświetlane na ekranach komputerów, np.~dokumentów w~formacie \acro{PDF}. - -Pakiet~\pai{qtimes} umożliwia skład dokumentu w~kroju QTimes, -który jest klonem znanego kroju Times New Roman autorstwa Stanleya -Morisona\index{Morison Stanley}. -Jeżeli dokument zawiera wzory matematyczne, to aby znaki -w~formułach były optycznie zgodne z~otaczającym je tekstem, należy także -dołączyć pakiety \pai{txfonts} oraz \pai{qtxmath}: - %% -\begin{code} -\begin{verbatim} -%& --translate-file=il2-pl -\documentclass[a4paper]{article} -\usepackage{polski} -\usepackage{txfonts,qtimes,qtxmath} -\usepackage{qswiss,qcourier} -\usepackage{sfheaders} -\author{Wanda Przechlewska} -\title{Test pakietu txfonts} -\begin{document} ... -\end{verbatim} -\end{code} - %% -Z~kolei pakiet~\pai{qpalatin} wraz z~pakietami \pai{qpxmath} oraz -\pai{pxfonts} umożliwia skład dokumentu krojem QPalatino -(łącznie ze wzorami matematycznymi), który jest klonem znanego kroju -Palatino autorstwa Hermanna Zapfa\index{Zapf Hermann}: - %% -\begin{code} -\begin{verbatim} -%& --translate-file=il2-pl -\documentclass[a4paper]{article} -\usepackage{polski} -\usepackage{pxfonts,qpalatin,qpxmath} -\usepackage{qswiss,qcourier} -\usepackage{sfheaders} -\author{Maria Matysek} -\title{Test pakietu qpxfonts} -\begin{document} ... -\end{verbatim} -\end{code} - %% -W~powyższych przykładach dołączono także pakiety \pai{qswiss}, -\pai{sfheaders} oraz \pai{qcourier}. Pakiet \pai{qswiss} przestawia -domyślą odmianę bezszeryfową na krój Helvetica, a~\pai{sfheaders} -przedefiniowuje śródtytuły tak, że składane są krojem bezszeryfowym. -Z~kolei \pai{qcourier} zamienia domyślny krój o~stałej szerokości znaków -na QCourier. W~rezultacie pierwszy z~dokumentów będzie podobny do -typowego dokumentu składanego na przykład edytorem {\MSWord}; drugi -z~kolei będzie się doskonale nadawał do dokumentu \acro{PDF}, który -chcemy umieścić w~sieci \acro{WWW}, z~uwagi na to, że krój Palatino -- -reprodukowany w~niskiej rozdzielczości -- jest dużo bardziej czytelny -niż \acro{CM}, a nawet \emph{Times New Roman}. Uwaga: aby powyższe -deklaracje zadziałały, instalacja {\LaTeX}a musi zawierać -ww.~fonty\footnote{Wchodzą one w~skład współczesnych dystrybucji - {\LaTeX}a. Jeżeli ich nie masz, to powinieneś je doinstalować. - W~dokumentacji dystrybucji powinno być opisane, jak się to robi.}. - -\section{Odstępy } - -\subsection{Zmiana wielkości interlinii\index{interlinia} } - -% Odstęp %%<skład -Wielkość odstępów między wierszami dokumentu można zmienić, umieszczając -w~preambule polecenie \ci{linespread}, postaci: -% -\begin{command} -\ci{linespread}\verb|{|\emph{czynnik}\verb|}| -\end{command} -% -\noindent -Parametr \emph{czynnik\/} określa powiększenie odstępu między wierszami. -Znany z~maszyn do pisania efekt podwójnej -interlinii\index{interlinia!podwójna}, -czyli podwojenie odstępu\index{odstęp!podwójny}, uzyskamy za pomocą -\verb|\linespread{1.6}|. -Aby otrzymać odstęp wielkości 1,5, powinniśmy wpisać \verb|\linespread{1.3}|. -Pojedynczemu i~zarazem domyślnemu odstępowi odpowiada wartość~1. - -Polecenie \ci{linespread} wpływa na odstępy międzywierszowe w~całym -dokumencie. -Jeśli są wyraźne powody do zmiany odstępu tylko w~pewnym fragmencie -dokumentu, to lepsza może się okazać instrukcja: -\begin{command} -\verb|\setlength{\baselineskip}{1.5\baselineskip}| -\end{command} - %% -Poniższy przykład ilustruje wykorzystanie \ci{baselineskip}: - %% -\begin{example} -{\setlength{\baselineskip}% - {1.5\baselineskip} -Ten akapit jest składany -z~\ci{baselineskip} ustawionym -na 1,5 dotychczasowej wartości. -Zwróćmy uwagę na wystąpienie -\ci{par} na końcu akapitu.\par} - -Przeznaczenie tego akapitu -jest jasne. Ilustruje on, -że po zamykającym nawiasie -klamrowym następuje powrót -do normalnego składu. -\end{example} - -\subsection{Odstępy wokół akapitów\label{parsp} } - -Dwa dodatkowe parametry określają w~\LaTeX{}u wielkość, odpowiednio, -wcięcia akapitowego oraz odstępu między akapitami. Wpisując na przykład -do preambuły dokumentu: -% -\begin{code} -\ci{setlength}\verb|{|\ci{parindent}\verb|}{0pt}| \\ -\verb|\setlength{|\ci{parskip}\verb|}{1ex plus 0.5ex minus 0.2ex}| -\end{code} -% -\noindent -ustalamy wielkość wcięcia akapitowego na 0~pt -(co powoduje, że akapity będą się zaczynać bez wcięć), a~odstęp między -akapitami ustalamy na 1~ex plus 0,5~ex minus 0,2~ex. Drugi zapis -oznacza, że normalny odstęp między akapitami, wynoszący 1,0~ex -(jednostki miary w~{\LaTeX}u podaje tabela~\ref{units} na -stronie~\pageref{units}), może się zwiększyć do $1{,}0 + 0{,}5 = -1{,}5$~ex lub zmniejszyć do $1{,}9 - 0{,}2 = 0{,}8$~ex. W~Europie -kontynentalnej akapity składa się czasami bez wcięcia akapitowego, a~jedynie -z~dodatkowym odstępem między nimi. Ale uwaga! Ten efekt pojawi -się także w~spisie treści, tabel i~rysunków, gdzie poszczególne -pozycje spisu będą od siebie bardziej oddalone (w~spisach większość -akapitów jest jednowierszowa). Aby uniknąć tego trochę śmiesznego -efektu, należy usunąć powyższe instrukcje \ci{setlength} z~preambuły -dokumentu i~wstawić je w~części głównej, po poleceniach -\verb+\tableofcontents+ itp. Najlepiej jednak wcale nie korzystać -z~tego sposobu, gdyż znakomita większość książek jest składana -z~wcięciem akapitowym, a~nie z~dodatkowymi odstępami między -akapitami\footnote{%% -% Pomijając wszystkie inne argumenty, oszczędzamy także trochę drzew nie -% wstawiając odstępów między akapity. - Jednoczesne użycie wcięć i~powiększonych odstępów między akapitami - uważa się w~Polsce za poważny błąd typograficzny.}. - -Wcięcie akapitowe na początku akapitu wstawiamy -poleceniem\footnote{Dla uzyskania efektu -wcięcia w~pierwszym akapicie po tytule rozdziału, punktu itd. -należy dołączyć do dokumentu pakiet \pai{indentfirst} -z~zestawu pakietów ,,tools''.}: -% -\begin{command} -\ci{indent} -\end{command} -% -\noindent -Wstawienie \verb+\indent+, kiedy wartość \verb|\parindent| wynosi -zero, nie przyniesie oczywiście żadnego efektu. - -Aby uzyskać akapit bez wcięcia, należy przed nim umieścić polecenie: -% -\begin{command} -\ci{noindent} -\end{command} - - -\subsection{Odstępy poziome\label{sec:hspace} } - -Wielkość odstępów między słowami oraz między zdaniami \LaTeX{} ustala -automatycznie. Dodatkowy odstęp poziomy\index{odstęp!poziomy} (przez -\emph{odstęp poziomy\/} rozumiemy odstęp między wyrazami, przez -\emph{odstęp pionowy\/} -- odstęp między wierszami i~akapitami) możemy -wstawić poleceniem: -% -\begin{command} -\ci{hspace}\verb|{|\emph{odległość}\verb|}| -\end{command} -% -\noindent -Jeżeli taki odstęp, w~wyniku złamania akapitu na wiersze, wypadnie na -początku lub na końcu wiersza, to zostanie on usunięty -- aby zapobiec -justowaniu akapitu ,,w~chorągiewkę''. Jeżeli {\LaTeX} ma wstawić odstęp -także na początku lub na końcu wiersza, to zamiast \verb+\hspace+ należy -użyć ,,gwiazdkowej'' wersji \ci{hspace*}. Argument \emph{odległość} -oznacza wymiar {\LaTeX}owy. W~najprostszej postaci jest to liczba wraz -z~jednostką odległości. Wykaz ważniejszych spośród dostępnych w~{\LaTeX}u -jednostek odległości znajduje się w~tabeli~\ref{units}. -% -\begin{example} -To jest \hspace{1.5cm}odstęp -równy 1,5~cm. -\end{example} - -%\suppressfloats % ?? --tp??-- -\begin{table}[!hbt] -\caption{{\LaTeX}owe jednostki miary\label{units}} -\index{jednostki miary}% -\begin{lined}{10.5cm} -\begin{tabular}{@{}ll@{}} -\texttt{mm} & milimetr $\approx 1/25$~cala \quad \demowidth{1mm} \\ -\texttt{cm} & centymetr = 10~mm \quad \demowidth{1cm} \\ -\texttt{in} & cal $=$ 25,4~mm \quad \demowidth{1in} \\ -\texttt{pt} & punkt $\approx 1/72$~cala $\approx \frac{1}{3}$~mm -\quad\demowidth{1pt}\\ -\texttt{em} & w~przybliżeniu szerokość ,,M'' w~bieżącym foncie \quad -\demowidth{1em}\\ -\texttt{ex} & w~przybliżeniu wysokość ,,x'' w~bieżącym foncie \quad -\demowidth{1ex} -\end{tabular} -%%\bigskip %% po kiego grzyba?? --tp-- -\end{lined} -\end{table} - -%%<PLext> -Często wygodnie jest użyć odległości ,,elastycznej'', -zostawiając {\LaTeX}owi nieco swobody doboru -takiej odległości, jaką uzna za najlepszą z~punktu widzenia -jakości składu. Taką -elastyczną odległość zapisujemy następująco: -\emph{n}~\verb+plus+~\emph{p} \verb+minus+~\emph{m}. -Części ,,\verb+plus+~\emph{p}'' i~,,\verb+minus+~\emph{m}'' są -opcjonalne (każdą z~nich można pominąć). -Tego typu odległości mają naturalną wielkość \emph{n} i~mogą się -kurczyć lub~rozciągać w~zakresie od $\emph{n} - \emph{m}$ -do $\emph{n} + \emph{p}$. - -Omawiany wcześniej odstęp między akapitami (\verb+\parskip+) jest -przykładem {\LaTeX}owego wymiaru o~zmiennej wielkości. Część wymiarów -może mieć wartości zmienne, część jednak musi mieć wartość stałą. -Powinno być na przykład zrozumiałe, że wcięcie akapitowe musi być -wielkością stałą, podobnie jak szerokość i~wysokość łamu. -%%</PLext> - -Polecenie\label{cmd:stretch}: -% -\begin{command} -\ci{stretch}\verb|{|\emph{n}\verb|}| -\end{command} -% -\noindent -wstawia specjalny rozciągliwy odstęp, który potrafi wypełnić całą wolną -przestrzeń w~pionie lub w~poziomie. Jeżeli na przykład wstawimy -w~wierszu dwa lub więcej poleceń -\verb|\hspace{\stretch{|\emph{n}\verb|}}|, to odstępy dzięki nim -uzyskane będą miały wielkość według proporcji zadanych przez -argument~\emph{n}. -W~poniższym przykładzie odstęp między~\emph{x\/} a~\emph{y\/}~jest trzy -razy mniejszy od odstępu między~\emph{y\/}~a~\emph{z}. - % -\begin{example} -x\hspace{\stretch{1}} -y\hspace{\stretch{3}}z -\end{example} - % -\noindent -Wielkość odstępów towarzyszących tekstowi warto dostosować do aktualnego -rozmiaru czcionki. Można do tego użyć względnych jednostek miary -\texttt{em} oraz \texttt{ex}: - % -\begin{example} -{\Large{}big\hspace{1em}y} \quad -{\tiny{}tin\hspace{1em}y} -\end{example} - % -\noindent -\label{quad:def}%% -Przypominamy, że polecenia \ci{quad} i~\ci{qquad} wstawiają -odstęp poziomy o~szerokości, odpowiednio, 1\,em oraz 2\,em. - -\subsection{Odstępy pionowe} - -Odstępy pionowe między akapitami, rozdziałami, punktami itp. {\LaTeX} -wstawia automatycznie. Jeśli zachodzi potrzeba wstawienia dodatkowego -odstępu pionowego, to należy zastosować polecenie: -% -\begin{command} -\ci{vspace}\verb|{|\emph{odległość}\verb|}| -\end{command} -% -\noindent -Polecenie to należy oddzielić pustymi liniami od otaczającego je tekstu. -Jeżeli w~wyniku złamania strony odstęp taki znajdzie się na początku lub -na końcu strony (będzie zaczynał lub też kończył kolumnę tekstu), to -zostanie on usunięty. Jeżeli ma zostać wstawiony także na początku lub -końcu strony, to należy użyć wersji ,,gwiazdkowej'' -\ci{vspace*}\footnote{Zwróćmy uwagę, że w~takim wypadku - wysokość kolumny tekstu na sąsiednich stronach nie będzie jednakowa, - stosujmy zatem polecenie \ci{vspace*} z~pewną - ostrożnością.}. Argument \emph{odległość} oznacza -{\LaTeX}owy wymiar. - -Do rozmieszczania tekstu kolumny w~pionie można używać -polecenia \ci{stretch}, łącznie z~\ci{pagebreak}. W~poniższym -przykładzie tekst zostanie rozmieszczony tak, że odstęp u~dołu będzie -dwa razy mniejszy od odstępu u~góry strony: -% -\begin{code} -\begin{verbatim} -\vspace{\stretch{1}} -Tytuł i~autor -\vspace{\stretch{2}}\pagebreak -\end{verbatim} -\end{code} -% -\noindent -Dodatkowy odstęp między dwoma wierszami tego samego akapitu lub -między wierszami tabeli możemy uzyskać poleceniem: -% -\begin{command} -\ci{\bs}\verb|[|\emph{odległość}\verb|]| -\end{command} -\noindent - %% -Polecenia \ci{bigskip}, \ci{medskip} i~\ci{smallskip} wstawiają -odpowiednio odstępy ,,elastyczne'' o~następujących wielkościach: 12pt -$\pm$~4pt, 6pt $\pm$~2pt oraz 3pt $\pm$~1pt\footnote{Nie są to wielkości - przypadkowe: 12~punktów to typowa odległość między liniami - podstawowymi wierszy przy składzie pismem w~stopniu 10~punktów.}. - - -\section{Układ graficzny strony} - -Wymiary papieru można podać jako argumenty instrukcji -\verb+\documentclass+. Na podstawie zadeklarowanych wymiarów -{\LaTeX} oblicza szerokość i~wysokość kolumny, marginesy i~inne parametry. -Na rysunku~\ref{fig:layout} przedstawiono dostępne parametry -graficznego układu strony. Do przygotowania rysunku użyliśmy -pakietu \pai{layout} z~zestawu ,,tools''% -\footnote{\CTAN{macros/latex/packages/tools}.}. -Jeżeli obliczone przez {\LaTeX}a wartości są z~pewnych względów -nieodpowiednie, to można je zmienić. - -\begin{figure}[!hp] -\centering -\makeatletter\@layout\makeatother -%% -\vspace*{1.8cm} -\caption{Parametry układu graficznego strony \label{fig:layout}} -\cih{footskip} -\cih{headheight} -\cih{headsep} -\cih{marginparpush} -\cih{marginparsep} -\cih{marginparwidth} -\cih{oddsidemargin} -\cih{paperheight} -\cih{paperwidth} -\cih{textheight} -\cih{textwidth} -\cih{topmargin} -\end{figure} - -Zanim jednak zaczniemy eksperymentować, zwiększając na przykład -szerokość szpalty, chwilę pomyślmy. Jak dla większości rzeczy w~{\LaTeX}u, -istnieją ważne powody, dlaczego szerokość szpalty jest -taka a~nie inna. - -Z~pewnością w~porównaniu z~wydrukiem przygotowanym za pomocą świeżo -kupionego programu {\MSWord} strona {\LaTeX}owa ma denerwująco wąską -szpaltę. Ale spójrzmy na książkę z~renomowanego wydawnictwa i~policzmy -na niej liczbę znaków w~przeciętnym wierszu. Okaże się, że wynosi ona -około 66. Jeśli porównamy ją z~wydrukiem złożonym przez {\LaTeX}a, to -zapewne i~tym razem będzie ona zbliżona do 66. Z~doświadczeń wynika bowiem, -że w~miarę wzrostu liczby znaków w~wierszu czytanie staje się -męczące. Dzieje się tak, gdyż przy długich wierszach naszym -oczom trudniej jest przenosić wzrok z~końca jednego wiersza na -początek następnego. Jest to jedna z~przyczyn stosowania składu -wielołamowego w~gazetach i~czasopismach. - -Tak więc, jeśli zwiększamy szerokość kolumny, to pamiętajmy, że może to -utrudnić odbiorcom czytanie naszej pracy. -No, ale dość już kazań. -Obiecaliśmy przecież wyjaśnić, jak można te rzeczy robić\dots - -W~{\LaTeX}u mamy dwie instrukcje do zmiany wielkości wymiarów, -używane zazwyczaj w~obrębie preambuły dokumentu. -Pierwsza z~nich \emph{nadaje} parametrowi określoną wielkość:% - %% -\begin{command} -\ci{setlength}\verb|{|\emph{parametr}\verb|}{|\emph{wielkość}\verb|}| \par -\end{command} - %% -\noindent -Drugie polecenie \emph{zwiększa} wartość parametru -o~określoną wielkość: -\noindent -\begin{command} -\ci{addtolength}\verb|{|\emph{parametr}\verb|}{|\emph{wielkość}\verb|}| -\end{command} -% -\noindent -Z~tej pary częściej stosowana -jest druga instrukcja, ponieważ pozwala zmieniać wymiary. Przykładowo, aby -zwiększyć szerokość szpalty o~jeden centymetr, umieszczamy w~preambule -dokumentu następujące polecenia: -% -\begin{code} -\verb|\addtolength{\hoffset}{-0.5cm}|\\ -\verb|\addtolength{\textwidth}{1cm}| -\end{code} - -Zmianę parametrów układu graficznego strony ułatwia pakiet -\pai{geometry}. W~wykonywaniu operacji arytmetycznych na wymiarach pomaga -pakiet \pai{calc}. - -%% -\section{Więcej o~odległościach} - -Kiedy to tylko możliwe, unikajmy stosowania wymiarów -zdefiniowanych w~jednostkach absolutnych, takich jak punkty czy -milimetry. Starajmy się raczej odnosić wymiary do już -istniejących, takich jak wysokość czy szerokość kolumny. W~poniższym -przykładzie szerokość rysunku jest definiowana jako połowa szerokości -bieżącej szpalty: -% -\begin{code} -\verb+\includegraphics[width=0.5\textwidth]{sowauszata.eps}+ -\end{code} -% -\noindent -Następujące trzy polecenia pozwalają określić szerokość, -wysokość i~głębokość \emph{tekstu}: -% -\begin{command} -\ci{settoheight}\verb|{|\emph{nazwa}\verb|}{|\emph{tekst}\verb|}|\\ -\ci{settodepth}\verb|{|\emph{nazwa}\verb|}{|\emph{tekst}\verb|}|\\ -\ci{settowidth}\verb|{|\emph{nazwa}\verb|}{|\emph{tekst}\verb|}| -\end{command} -% -\noindent -Oto przykład ilustrujący zastosowanie tych poleceń: -% -\begin{example} -\newenvironment{vardesc}[1]{% -\settowidth{\parindent}{#1:\ } -\makebox[0pt][r]{#1:\ }}{} - -\begin{displaymath} a^2+b^2=c^2 -\end{displaymath} - -\begin{vardesc}{gdzie}% -$a$, $b$ -- przyprostokątne, \par -$c$ -- przeciwprostokątna. -\end{vardesc} -\end{example} - -\section{Pudełka \label{sec:boxes}} - -Każdą stronę {\LaTeX} tworzy z~pudełek\index{pudełko}, które odpowiednio -skleja. Elementarnymi pudełkami są litery, z~których sklejane są słowa. -Słowa są następnie łączone w~wiersze, a~wiersze -- w~akapity. Do łączenia -używany jest specjalny klej, który dzięki elastyczności pozwala wyrazy -ścisnąć lub rozciągnąć tak, by dokładnie wypełniały wiersze na stronie. - -Trzeba przyznać, że takie ujęcie jest mocno uproszczoną wersją tego, co -się naprawdę dzieje, chociaż zasadniczo biorąc, działanie {\TeX}a można -jednak wyjaśnić właśnie w~terminach pudełek oraz kleju\index{klej} -(odstępu wstawianego między pudełkami). Pudełkami są nie tylko litery. -Do pudełka można włożyć praktycznie wszystko, także inne pudełka. Każde -pudełko {\LaTeX} traktuje jak pojedynczą literę. - -Chociaż nie mówiliśmy o~tym wprost, pudełka pojawiały się już -w~poprzednich rozdziałach. Na przykład polecenie \ci{includegraphics} -albo otoczenie \ei{tabular} tworzą pudełka. Dzięki temu dwa rysunki albo -tabele można łatwo zestawić obok siebie. Trzeba jedynie zadbać o~to, by -łączna szerokość połączonych obiektów nie przekraczała szerokości -szpalty. - -To samo odnosi się do akapitów, które -- jeśli tego potrzebujemy -- -możemy składać w~pudełka o~zadanej szerokości: -% -\begin{command} -\ci{parbox}\verb|[|\emph{pos}\verb|]{|\emph{szerokość}% -\verb|}{|\emph{tekst}\verb|}| -\end{command} -% -\noindent -Do tego samego celu można wykorzystać otoczenie: -% -\begin{command} -\verb|\begin{|\ei{minipage}\verb|}[|\emph{pos}\verb|]{|% -\emph{szerokość}\verb|}| \emph{tekst} \verb|\end{|\ei{minipage}\verb|}| -\end{command} -% -\noindent -Argument \emph{szerokość} to wymiar określający szerokość pudełka. -Argument \emph{pos\/} jest jednoliterowy i~może przyjmować jedną -z~wartości: \texttt{c}, \texttt{t} lub \texttt{b}. Wartości te -określają, jak {\LaTeX} ma umieścić pudełko względem otaczającego -tekstu. Wartość \verb|c| oznacza umieszczenie środka wysokości pudełka -na linii podstawowej\index{linia podstawowa}, \verb|t| -- umieszczenie -linii podstawowej pierwszego wiersza w~pudełku na linii -podstawowej\index{linia podstawowa} otaczającego tekstu, natomiast -\verb|b| -- umieszczenie dolnej krawędzi pudełka na linii -podstawowej\index{linia podstawowa}. Wynik zastosowania parametrów -ilustruje poniższy przykład (linię podstawową\index{linia podstawowa} -oznaczono kreską): -%% -\iffalse -%% JG -Główna różnica między \ci{parbox} a~\pai{minipage} polega na tym, że -wewnątrz \verb|parbox| nie wszystkie polecenia i~otoczenia są dozwolone, -w~przeciwieństwie do otoczenia \verb|minipage|. -\fi -%% -%% -\begin{example} -\makebox[0pt][l]{\rule{66mm}{.4pt}}% -\parbox[c]{9mm}{5 5 5 5 5 5 5 5 5} -\parbox[t]{9mm}{6 6 6 6 6 6 6 6 6} -\parbox[b]{9mm}{8 8 8 8 8 8 8 8 8} -\end{example} - -\bigskip -\noindent -Polecenie \ci{parbox} składa tekst w~pudełku, w~razie potrzeby dzieląc -tekst na linijki. Inaczej jest z~pudełkami uzyskiwanymi -poleceniem \ci{mbox}, których zawartość nigdy nie jest dzielona na -wiersze. Polecenia tego używamy, gdy trzeba zapobiec dzieleniu wyrazu -lub sekwencji wyrazów na wiersze. Polecenie \verb+\mbox+ jest -uproszczoną wersją instrukcji \ci{makebox}, o~składni: -% -\begin{command} -\ci{makebox}\verb|[|\emph{szerokość}\verb|][|\emph{pos}\verb|]{|% -\emph{tekst}\verb|}| -\end{command} -% -\noindent -W~opcjonalnym argumencie \emph{szerokość} możemy zadać szerokość -pudełka. Może się ona różnić od naturalnej szerokości tekstu w~pudełku; -może wynosić zero, a~nawet być wielkością ujemną! W~obrębie argumentu -\emph{szerokość} możemy się też posługiwać wielkościami \ci{width} -(szerokość), \ci{height} (wysokość), \ci{depth} (głębokość) oraz -\ci{totalheight} (suma wysokości i~głębokości). Ponadto argument -\emph{pos} określa sposób umieszczenia tekstu. Litera \texttt{c}~oznacza -wyśrodkowanie, \texttt{l}~-- dosunięcie do lewej, \texttt{r}~-- -dosunięcie do prawej, a~\texttt{s}~-- wyspacjowanie zawartości. - -Poniższy przykład ilustruje użycie polecenia \verb+\width+ -w~obrębie argumentu \emph{szerokość}. Pierwsze pudełko ma szerokość -równą połowie naturalnej szerokości tekstu: -% -\begin{example} -\makebox[.5\width][l]{oooooooo}% -\makebox{xxxxxxxx} -\end{example} - -\bigskip -\noindent -Polecenie \ci{framebox} działa dokładnie jak \ci{makebox}, -z~tym że naokoło pudełka kreślona jest ramka. - -Oto przykład zastosowania poleceń \ci{makebox} i~\ci{framebox}: -% -\begingroup -\hbadness 10000 -\begin{example} -\makebox[\textwidth]{% -p o ś r o d k u}\par -\makebox[\textwidth][s]{% -r o z s t r z e l o n y}\par -\framebox[1.1\width]{Teraz jestem -obramowany!} \par -\framebox[0.8\width][r]{Trochę -tu jest za szeroko} \par -\framebox[1cm][l]{Nie -ma sprawy} -Da się to czytać? -\end{example} -\endgroup - -\bigskip -\noindent -Pudełka można też przesuwać w~pionie. Służy do tego polecenie: -% -\begin{command} -\ci{raisebox}\verb|{|\emph{przesunięcie}\verb|}[|% -\emph{wysokość}\verb|][|\emph{głębokość}\verb|]{|\emph{tekst}\verb|}| -\end{command} -% -\noindent -Argument \emph{przesunięcie} określa wielkość przesunięcia w~górę (lub -w~dół, jeżeli wielkość przesunięcia jest ujemna). Ponadto za pomocą -parametrów opcjonalnych \emph{wysokość} oraz \emph{głębokość} można -zadać nominalną wysokość oraz głębokość pudełka (\LaTeX{} będzie traktował -pudełko tak, jakby miało zadane wymiary, bez względu na wymiary -naturalne). Wewnątrz parametrów można skorzystać z~wielkości -\ci{width}, \ci{height}, \ci{depth} oraz \ci{totalheight}. - -\begin{example} -\raisebox{0pt}[0pt][0pt]{\Large% -\textbf{Aaaa\raisebox{-0.3ex}{a}% -\raisebox{-0.7ex}{aa}% -\raisebox{-1.2ex}{r}% -\raisebox{-2.2ex}{g}% -\raisebox{-4.5ex}{h}}} -Krzyczała, ale nikt nie zauważył, -że coś się jej przytrafiło. -\end{example} - -\section{Kreski i~podpory \label{sec:rule}} - -W~wyniku wykonania polecenia \ci{rule}, postaci: -% -\begin{command} -\ci{rule}\verb+[+\emph{przesunięcie}\verb+]{+% -\emph{szerokość}\verb+}{+\emph{wysokość}\verb+}+ -\end{command} -% -\noindent -otrzymujemy w~składzie -czarny prostokąt: -% -\begin{example} -\rule{3mm}{.1pt}% -\rule[-1mm]{5mm}{1cm}% -\rule{3mm}{.1pt}% -\rule[1mm]{1cm}{5mm}% -\rule{3mm}{.1pt} -\end{example} -% -\noindent -Polecenie \ci{rule} służy zwykle do rysowania kresek pionowych -i~poziomych. Na przykład gruba czarna krecha na stronie tytułowej -niniejszego \emph{Wprowadzenia} to wynik zadziałania instrukcji: -% -\begin{code} -\verb+\rule[-1ex]{\textwidth}{5pt}+ -\end{code} -% -Parametr \emph{przesunięcie} określa, jak wysoko przesunąć kreskę -ponad linię podstawową\index{linia podstawowa} (lub opuścić -poniżej linii podstawowej, jeśli parametr jest ujemny). - -Specjalnym przypadkiem jest kreska o~zerowej szerokości, lecz -o~niezerowej wysokości. Taką kreskę nazywamy \emph{podporą} -(\USemph{strut}). Podpora to często stosowana metoda nadawania -wszystkim elementom jednakowej wysokości. Spójrzmy na poniższy -przykład. Dzięki wstawieniu podpory drugi wiersz ma tę samą wysokość -co pierwszy. Zawartość wiersza trzeciego jest identyczna jak drugiego, -ale w~drugim występuje niewidoczna podpora. Gdyby jej brakowało, to -wysokość drugiego wiersza byłaby mniejsza. - -\begin{example} -\begin{tabular}{|c|} \hline -\rule{1pt}{4ex}Pittprop \ldots\\ -\hline -\rule{0pt}{4ex}Strut\\ \hline -Strut\\ \hline -\end{tabular} -\end{example} - -%%<PLext> -\section{Więcej o~składaniu tabel~\label{more:tables}} -\subsection{Tabele o~zadanej szerokości} - -W~otoczeniu~\ei{tabular} szerokość poszczególnych kolumn tabeli -jest ustalana automatycznie, a~szerokość tabeli jest sumą szerokości -kolumn i~odstępów międzykolumnowych. -Czasami jednak trzeba złożyć tabelę o~z~góry zadanej -szerokości; jest to potrzebne przykładowo wtedy, gdy wszystkie tabele -w~dokumencie mają mieć tę samą szerokość. - -Do tego celu można użyć albo otoczenia \ei{tabular*}, -albo otoczenia \ei{tabularx} z~pakietu o~tej samej nazwie. Niestety -każdy z~tych sposobów ma poważne ograniczenia funkcjonalne. Rozpocznijmy -od otoczenia \ei{tabular*}, które różni się od \ei{tabular} -tylko jednym dodatkowym parametrem -obowiązkowym, określającym szerokość tabeli: -% -\begin{command} -\verb|\begin{tabular*}{|\emph{szerokość}\verb|}{|\emph{spec-kolumn}\verb|}| -\end{command} -% -\noindent -Rozważmy przykład tabeli zawierającej najważniejsze ,,parametry'' -słynnych wzniesień i~przełęczy: -\begin{code} -\begin{verbatim} -\begin{tabular}{|l|r|r|r|r|r|}\hline -Nazwa & \multicolumn{2}{|c|}{Wys. w~m~n.p.m.} & -Długość & \multicolumn{2}{|c|}{Nachylenie \%}\\ - \cline{2-3} \cline{5-6}% \cline można wstawiać wielokrotnie - & początek & koniec & w~km & śr. & max \\ \hline -Col du Galibier & 1401 & 2646 & 18,1 & 6,9\% & 14,5 \\ -Alpe D'Huez & 724 & 1815 & 14,2 & 7,7\% & 15,0 \\ -Passo Gavia & 1734 & 2618 & 13,5 & 6,5\% & 20,0 \\ \hline -\end{tabular} -\end{verbatim} -\end{code} -\noindent -Złożone tabele wyglądają następująco: -\par -\medskip -\noindent%%<-- ważne -\begin{tabular}{|l|r|r|r|r|r|}\hline -Nazwa & \multicolumn{2}{c|}{Wys. w~m~n.p.m.} & Długość & \multicolumn{2}{c|}{Nachylenie \%}\\ - \cline{2-3} \cline{5-6} - & początek & koniec & w~km & śr. & max \\ \hline -Col du Galibier & 1401 & 2646 & 18,1 & 6,9\% & 14,5 \\ -Alpe D'Huez & 724 & 1815 & 14,2 & 7,7\% & 15,0 \\ -Passo Gavia & 1734 & 2618 & 13,5 & 6,5\% & 20,0 \\ \hline -\end{tabular} -\par -\medskip - %% -\noindent -Jeżeli tabela ma być złożona na przykład -na szerokość łamu, to zastępujemy \ei{tabular} -jego wersją z~gwiazdką oraz modyfikujemy preambułę tabeli: -\begin{code} -\begin{verbatim} -\begin{tabular*}{\textwidth}% -{@{\extracolsep{\stretch{1}}}|l|r|r|r|r|r|}\hline ... -\end{tabular} -\end{verbatim} -\end{code} - %% -\noindent -Złożona tabela wygląda następująco: -\par \medskip - -\noindent%%<-- ważne -\begin{tabular*}{\textwidth}% -{@{\extracolsep{\stretch{1}}}|l|r|r|r|r|r|}\hline -Nazwa & \multicolumn{2}{c|}{Wys. w~m~n.p.m.} & Długość & \multicolumn{2}{c|}{Nachylenie \%}\\ - \cline{2-3} \cline{5-6} - & początek & koniec & w~km & śr. & max \\ \hline -Col du Galibier & 1401 & 2646 & 18,1 & 6,9\% & 14,5 \\ -Alpe D'Huez & 724 & 1815 & 14,2 & 7,7\% & 15,0 \\ -Passo Gavia & 1734 & 2618 & 13,5 & 6,5\% & 20,0 \\ \hline -\end{tabular*} -\par -\medskip -\noindent -Wewnątrz otoczenia \ei{tabular} {\LaTeX} odziela poszczególne kolumny -stałym odstępem równym \ci{tabcolsep}. Do składania tabel o~określonej -szerokości należy ten odstęp zamienić na taki, którego wielkość może się -zmieniać (por.~punkt~\ref{sec:hspace}). Do tego celu należy użyć -wspomnianej w~punkcie~\ref{sec:tabular} (s.~\pageref{sec:tabular-et}) -instrukcji \verb+@+. Ponadto polecenie -\ci{extracolsep}, umieszczone wewnątrz instrukcji \verb+@{...}+, wstawia -\emph{dodatkowy odstęp\/} między kolejnymi kolumnami -- do odwołania -poleceniem \ci{extracolsep} albo aż do końca tabeli. - -W~powyższym przykładzie polecenie \verb+@{...}+ usuwa domyślny odstęp -międzykolumnowy, zastępując go specjalnym odstępem o~zmiennej wielkości -(taki odstęp wstawia polecenie \ci{stretch}). Manipulując odstępem -międzykolumnowym, {\LaTeX} dopasowuje szerokość tabeli do żądanej -wielkości. Otoczenie \ei{tabular*} -%do prawidłowego działania -powinno zawierać w~specyfikacji formatu kolumn co najmniej jedną -konstrukcję \verb|@{\extracolsep{\stretch{1}}}|. Uważny czytelnik -dostrzeże jednak, że kreski poziome pod pierwszym wierszem między -kolumnami 2--3 oraz 5--6 nie są ,,dociągnięte'' do lewego brzegu. -Niestety nie da się tego naprawić -- przynajmniej nie w~prosty sposób. -Otoczenie \ei{tabular*} nadaje się do składania tabel, ale tylko wtedy, -gdy nie korzystamy zbyt często z~polecenia \ci{cline}. - -Spróbujmy teraz zastosować otoczenie \ei{tabularx}. W~tym celu najpierw -do preambuły dokumentu dołączamy pakiet \pai{tabularx}. Następnie -zmieniamy tabelę w~taki sposób (kolumny, których szerokość ma -być wyznaczona automatycznie, oznaczamy symbolem \verb@X@): -\begin{code} -\begin{verbatim} -\begin{tabularx}{\textwidth}{|X|X|X|X|X|X|}\hline -... -\end{tabularx} -\end{verbatim} -\end{code} - -\noindent -Złożona tabela wygląda następująco: -\par -\medskip -\begingroup -\hbadness10001 %%<-- -\noindent%%<-- ważne -\begin{tabularx}{\textwidth}{|X|X|X|X|X|X|}\hline -Nazwa & \multicolumn{2}{c|}{Wys. w~m~n.p.m.} & Długość & \multicolumn{2}{c|}{Nachylenie \%}\\ - \cline{2-3} \cline{5-6} - & początek & koniec & w~km & śr. & max \\ \hline -Col du Galibier & 1401 & 2646 & 18,1 & 6,9\% & 14,5 \\ -Alpe D'Huez & 724 & 1815 & 14,2 & 7,7\% & 15,0 \\ -Passo Gavia & 1734 & 2618 & 13,5 & 6,5\% & 20,0 \\ \hline -\end{tabularx} -\par -\endgroup - %% -\medskip -\noindent -Teraz wprawdzie wszystkie kreski są elegancko dociągnięte, ale jest -problem z~pierwszą kolumną: jest ona zbyt wąska, a przez to zawartość -rubryk już się nie mieści i~musi zostać przeniesiona\footnote{Ponadto - lepiej, by kolumny 2--6 były wyrównane do prawego, a~nie - do lewego brzegu rubryki.}. Otoczenie \ei{tabularx} automatycznie -dzieli bowiem tabelę wyłącznie na kolumny \emph{o~równej szerokości}. -Jest to jego największe ograniczenie funkcjonalne. - -Specyfikacja kolumn tabeli oprócz \verb@X@ może zawierać także wartości -,,tradycyjne'', takie jak: \verb@l@, \verb@r@ lub \verb@c@. -Odpowiadającym tym specyfikacjom kolumny mają naturalną szerokość. -Przykładowo: - %% -\begin{code} -\begin{verbatim} -\begin{tabularx}{\textwidth}{|l|X|X|X|X|X|}\hline -... -\end{tabularx} -\end{verbatim} -\end{code} - %% -\noindent -Akurat w~naszym przykładzie osiągneliśmy zadowalający -rezultat, gotowa tabela wygląda bowiem następująco: -\par -\medskip -\noindent%%<-- ważne -\begin{tabularx}{\textwidth}{|l|X|X|X|X|X|}\hline -Nazwa & \multicolumn{2}{c|}{Wys. w~m~n.p.m.} & Długość & \multicolumn{2}{c|}{Nachylenie \%}\\ - \cline{2-3} \cline{5-6} - & początek & koniec & w~km & śr. & max \\ \hline -Col du Galibier & 1401 & 2646 & 18,1 & 6,9\% & 14,5 \\ -Alpe D'Huez & 724 & 1815 & 14,2 & 7,7\% & 15,0 \\ -Passo Gavia & 1734 & 2618 & 13,5 & 6,5\% & 20,0 \\ \hline -\end{tabularx} -\medskip - -Tabele złożone z~użyciem otoczenia \ei{tabular} nie są automatycznie -dzielone między stronami. Do składu tabel, które nie mieszczą się na -pojedynczej stronie, służy -pakiet~\ei{longtable}, opisany w~następnym punkcie. - -\subsection{Pakiet \pai{longtable} \label{sec:longtable}} - -Pakiet definiuje otoczenie \ei{longtable}, pozwalające składać tabele -ciągnące się przez wiele kolejnych stron dokumentu. -Aby zapewnić jednakowe szerokości -rubryk na wszystkich stronach, wymagana jest -dwukrotna kompilacja dokumentu. Oto przykład: - %% -\begin{verbatim} -\begin{longtable}{|l|r|r|r|} -\caption{Tytuł tabeli}\\\hline -\multicolumn{4}{|c|}{To jest nagłówek pierwszej strony}\\\hline - nazwa & wysokość & długość & nachylenie \\ \hline - k-1 & k-2 & k-3 & k-4 \\ \hline -\endfirsthead -\hline -\multicolumn{4}{|c|}{To jest nagłówek następnych stron}\\ -\hline k-1 & k-2 & k-3 & k-4\\\hline -\endhead -\hline \multicolumn{4}{|c|}{Stopka tabeli}\\ \hline -\endfoot -\hline \multicolumn{4}{|c|}{Stopka na ostatniej stronie}\\ -\hline -\endlastfoot - Col du T\'el\'egraphe & 1,566 & 12,0 & 6,7\% \\ - Col du Galibier & 2,646 & 18,1 & 6,9\% \\ - Col de la Madeleine & 2,000 & 25,4 & 6,1\% \\ - %% ... 17 pominiętych wierszy ... - La Bola del Mundo & 2257 & 21,8 & 6,2\% \\ -\end{longtable} -\end{verbatim} - %% http://www.salite.ch/struttura/salite.asp?stato=Francia - %% coś tu dopisać nt toporności tego pakietu, tabular + longtable - -Po złożeniu efekt jest następujący\footnote{Dane z~tabeli pochodzą - z~katalogu \url{http://www.salite.ch}.}: - -\begin{longtable}{|l|r|r|r|} - \caption{Tytuł tabeli}\\\hline - \multicolumn{4}{|c|}{To jest nagłówek pierwszej strony}\\ \hline - nazwa & wysokość & długość & nachylenie \\ \hline - k-1 & k-2 & k-3 & k-4 \\ \hline - \endfirsthead - \hline - \multicolumn{4}{|c|}{To jest nagłówek następnych stron}\\ - \hline k-1 & k-2 & k-3 & k-4\\\hline - \endhead - \hline \multicolumn{4}{|c|}{Stopka tabeli}\\ \hline - \endfoot - \hline \multicolumn{4}{|c|}{Stopka na ostatniej stronie}\\ - \hline - \endlastfoot - Col du T\'el\'egraphe & 1,566 & 12,0 & 6,7\% \\ - Col du Galibier & 2,646 & 18,1 & 6,9\% \\ - Col de la Madeleine & 2,000 & 25,4 & 6,1\% \\ - Alpe D'Huez & 1815 & 14,2 & 7,7\% \\ - Col de la Croix de Fer & 2067 & 22,0 & 7,0\% \\ - %see http://pl.wikipedia.org/wiki/Fabio_Casartelli - %for the details concerning Fabio Casartelli - Col de Portet d'Aspet\index{Casartelli Fabio} & 1069 & 4,4 & 9,6\% \\ - %see http://en.wikipedia.org/wiki/Tom_Simpson - %for the details concerning Tom Simpson - Mont Ventoux\index{Simpson Tom} & 1912 & 21,0 & 7,6\% \\ - Col de l`Izoard & 2361 & 15.9 & 6,9\% \\ - Passo dello Stelvio & 2758 & 24.3 & 7.4\% \\ - Col du Tr\'ebuchet & 1143 & 14.6 & 4.3\% \\ - Passo Gavia & 2618 & 13.5 & 6.5\% \\ - Col du Grand Colombier & 1505 & 15.9 & 7.8\% \\ - Col de l`Iseran & 2770 & 48,0 & 4.1\% \\ - Courchevel & 2000 & 21,7 & 6,5\% \\ - Col de l`Aspin & 1489 & 12,0 & 6,5\% \\ - Col de la Croix de l`Homme Mort & 1163 & 18,0 & 4,3\% \\ - Col de Notre Dame des Abeilles & 1000 & 13,9 & 5,1\% \\ - Paso del Morredero & 1872 & 25,0 & 5,4\% \\ - Collado de la Caballar & 1308 & 14,5 & 7,5\% \\ - Capilla de la Magdalena & 1137 & 11,0 & 5,5\% \\ - La Bola del Mundo & 2257 & 21,8 & 6,2\% \\ -\end{longtable} - -\subsection{Pakiet \pai{array}} - -Do składu tabel o~bardziej skomplikowanym układzie graficznym lepiej -używać pakietu \pai{array}. Pakiet ten nie wprowadza żadnego nowego -otoczenia, redefiniuje jedynie i~rozszerza standardowe otoczenie -\ei{tabular}. - -W~,,standardowym'' otoczeniu \ei{tabular} konstrukcja -\verb|p{|\emph{szer-kolumn}\verb|}| deklaruje kolumnę, w~której -zawartość każdej rubryki będzie składana w~prostokąt o~zadanej -szerokości, z~wyrównywaniem obu marginesów (odpowiednik -\verb@\parbox[t]{szer}@). Pakiet \pai{array} wprowadza ponadto -\verb@b{szer}@ -- odpowiednik \verb@\parbox[b]{szer}@ -- oraz -\verb@m{szer}@ -- odpowiednik \verb@\parbox{szer}@. -Przykład: - %% -\begin{code} -\begin{verbatim} -\begin{tabular}{|p{8mm}|p{8mm}|p{8mm}|} \hline -x y z x y z x y z x y z x y z & x y z x y z x y y& -1 1 1 1 1 \\ \hline \end{tabular} -\begin{tabular}{|m{8mm}|m{8mm}|m{8mm}|} \hline -x y z x y z x y z x y z x y z & x y z x y z x y y& -2 2 2 2 2 \\ \hline \end{tabular} -\begin{tabular}{|b{8mm}|b{8mm}|b{8mm}|} \hline -x y z x y z x y z x y z x y z & x y z x y z x y y& -3 3 3 3 3 \\ \hline -\end{tabular} -\end{verbatim} -\end{code} - %% -Złożone tabele wyglądają następująco: - %% -\par -\medskip -\noindent%%<-- ważne -\begin{tabular}{|p{8mm}|p{8mm}|p{8mm}|} \hline -x y z x y z x y z x y z x y z & x y z x y z x y y& -1 1 1 1 1 \\ \hline -\end{tabular} -\quad -\noindent -\begin{tabular}{|m{8mm}|m{8mm}|m{8mm}|} \hline -x y z x y z x y z x y z x y z & x y z x y z x y y& -2 2 2 2 2 \\ \hline -\end{tabular} -\quad -\noindent -\begin{tabular}{|b{8mm}|b{8mm}|b{8mm}|} \hline -x y z x y z x y z x y z x y z & x y z x y z x y y& -3 3 3 3 3 \\ \hline -\end{tabular} - -\par -\bigskip -\noindent -Kolejnym użytecznym rozszerzeniem zdefiniowanym w~\pai{array} jest -możliwość bardziej szczegółowego określenia sposobu formatowania rubryk -tabeli, niż ma to miejsce w~standardowym otoczeniu \ei{tabular}, gdzie -w~zasadzie możemy jedynie określić sposób justowania zawartości rubryk -w~poszczególnych kolumnach. Wracając do przykładu tabeli zawierającej -różne ,,parametry'' dotyczące przełęczy i~wniesień, załóżmy, że -nazwę wzniesienia chcemy złożyć kursywą, a~długość -- odmianą półgrubą. -Można to -oczywiście osiągnąć, wstawiając odpowiednie polecenia do każdej rubryki -danej kolumny, ale sprawniej będzie zastosować zdefinowane w~pakiecie -\pai{array} konstrukcje: -\begin{command} -\verb|>{|\emph{polecenia}\verb|}| lub \verb|<{|\emph{polecenia}\verb|}| -\end{command} - %% -\noindent -Konstrukcji \verb|>{|\emph{polecenia}\verb|}| można użyć -w~preambule \emph{przed\/} \verb@c@, \verb@l@, \verb@r@, \verb@p@ oraz -\verb@m@ i~\verb@b@. Jej działanie polega na wstawieniu -\emph{poleceń\/} na początku każdej rubryki w~tej kolumnie. -Podobnie, \verb|<{|\emph{polecenia}\verb|}| można użyć \emph{po\/} -\verb@c@, \verb@l@, \verb@r@, \verb@p@, \verb@m@ i~\verb@b@. W~rezultacie -\emph{polecenia} zostaną wstawione na końcu każdej -rubryki w~tej kolumnie. - -Wracając do przykładu, oto preambuła tabeli wykorzystująca -omawiane konstrukcje pakietu \pai{array}: - %% -\begin{code} -\begin{verbatim} -\begin{tabular}{|>{\itshape}l|r|r|>{\bfseries}r|r|r|}\hline -Nazwa & \multicolumn{2}{|c|}{Wys. w~m~n.p.m.} & -Długość & \multicolumn{2}{|c|}{Nachylenie \%}\\ -... -\end{verbatim} -\end{code} - %% -Wynik jest następujący: - %% -\par -\medskip -\noindent -\begin{tabular}{|>{\itshape}l|r|r|>{\bfseries}r|r|r|}\hline -Nazwa & \multicolumn{2}{c|}{Wys. w~m~n.p.m.} & -Długość & \multicolumn{2}{c|}{Nachylenie \%}\\ - \cline{2-3} \cline{5-6}% - & początek & koniec & w~km & śr. & max \\ \hline -Col du Galibier & 1401 & 2646 & 18,1 & 6,9\% & 14,5 \\ -Alpe D'Huez & 724 & 1815 & 13,5 & 7,7\% & 15,0 \\ -Passo Gavia & 1734 & 2618 & 13,5 & 6,5\% & 20,0 \\ \hline -\end{tabular} -\par - -\medskip -\noindent -Do zmiany głębokości konkretnego wiersza służy -opcjonalny argument polecenia~\verb@\\@, np. -\verb@\\[2pt]@. -Wysokość i~głębokość wiersza można zmienić za pomocą -niewidzialnej kreski, np. -\verb@\rule[-3mm]{0mm}{8mm}@. Przykładowo, w~powyższym -przykładzie tabela będzie wyglądała lepiej, jeżeli -dodamy do pierwszego wiersza: -\begin{code} -\begin{verbatim} -Col du Galibier\rule[-3.5pt]{0pt}{15pt} -\end{verbatim} -\end{code} -Spowoduje to wstawienie dodatkowego odstępu między -kreską nad pierwszym wierszem tabeli a~zawartością wiersza. - -\subsection{Pakiet \pai{tap}} -% -------------------- - -Pakiet \pai{tap} (autorzy: Bogusław Jackowski\index{Jackowski Bogusław}, -Piotr Pianowski\index{Pianowski Piotr} i~Piotr -Strzelczyk\index{Strzelczyk Piotr}) pozwala na eleganckie składanie -nawet najbardziej ekstrawaganckich (jednostronicowych) tabel, z~tym że -stosuje niestandardowy zapis\footnote{Tak naprawdę, nie jest to nawet - pakiet w~rozumieniu {\LaTeX}a i~zamiast poleceniem \ci{usepackage} - należy go dołączać poleceniem \ci{input}.}, co może powodować problemy -w~integracji z~innymi pakietami {\LaTeX}a, np. pakietem \pai{colortbl}, -służącym do kolorowania rubryk w~tabelach. Oto przykład: -\par -\medskip -\noindent -\begin{code} -\begin{verbatim} -\input{tap.tex} %% <- dołączenie pakietu -\desiredwidth=\textwidth %% skład na szerokość łamu -\begintable -\begintableformat \left " &\right \endtableformat -\= -\B!^ | @2\center{Wys. w~m~n.p.m.} | Długość | - @2\center{Nachylenie \%} \E! -\B"- \center{Nazwa} " @2\- " " @2\- \E" -\B"_ | początek | koniec | w~km | śr. | max \E! -\B! Col du Galibier | -- | 2645 | 17,5 | 6,9\% | 14,5 \E! -\B! Alpe D'Huez | -- | 1839 | 13,0 | 8,5\% | 15,0 \E! -\B! Passo Gavia | -- | 2621 | 17,3 | 7,9\% | 20,0 \E! -\= -\endtable -\end{verbatim} -\end{code} - %% -Wynik jest imponujący: - %% -\par -\medskip -\begingroup -\input{tap.tex} -\desiredwidth=\textwidth %% skład na szerokość łamu -\begintable -\begintableformat \left " &\right \endtableformat -\= -\B!^ | @2\center{Wys. w~m~n.p.m.} | Długość | @2\center{Nachylenie \%} \E! -\B"- \center{Nazwa} " @2\- " " @2\- \E" -\B!_ | początek | koniec | w~km | śr. | max \E! \= -\B!^ Col du Galibier | 1401 | 2646 | 18,1 | 6,9\% | 14,5 \E! -\B!+ Alpe D'Huez | 724 | 1815 | 14,2 | 7,7\% | 15,0 \E! -\B!_ Passo Gavia | 1734 | 2618 | 13,5 | 6,5\% | 20,0 \E! -\= -\endtable -\endgroup - -\medskip -\noindent -Więcej informacji można odnaleźć w~(polskojęzycznej) dokumentacji -pakietu (\CTAN{macros/generic/tables/tap077.zip}). - -%% dodałem akapit, żeby się tak nie kończyło gwałtownie:-) [tp]: -\medskip -\noindent -Na zakończenie uwaga: składanie tabel w~{\LaTeX}u nie jest może aż tak -proste jak w~edytorach {\WYSIWYG}, ale za to można tworzyć konstrukcje -niezwykle trudne lub wręcz niemożliwe do wykonania w~innych programach. -Ponadto zadanie składania tabel można sobie znakomicie ułatwić, stosując -skryptowe języki programowania, w~rodzaju Perla czy Pythona. Już -stosunkowo niewielka umiejętność programowania w~wymienionych językach -pozwala na szybką konwersję generowanych przez zewnętrzne aplikacje -danych tabelarycznych do formatu {\LaTeX}a. - -% To jest teraz wstawione do indeksu! -% \label{verylast}\mbox{}%% przeniesione do xtables -% </PLext> -% -\endinput -%%% Local Variables: -%%% mode: latex -%%% TeX-master: "lshort2e" -%%% case-fold-search: nil -%%% coding: latin-2 -%%% LocalWords: ghostscript acrobat makeindex plmindex kiepskości -%%% ispell-local-dictionary: "polish" -%%% End: |