You are on page 1of 141

Nie za krtkie wprowadzenie

do systemu LATEX 2
Albo LATEX 2 w 129 minut

Tobias Oetiker
Hubert Partl, Irene Hyna, Elisabeth Schlegl
Tomasz Przechlewski i Ryszard Kubiak
Janusz Godasz
Wydanie drugie, poprawione, uaktualnione i rozszerzone
Oparte na wersji 4.20 The Not So Short Introduction to LATEX 2
z 31 maja 2006

Stycze 2007

ii
Copyright 19952005 Tobias Oetiker and Contributers. All rights reserved.
Copyright 1999, 2007 for the Polish translation and extension JG, RK and TP
All rights reserved.
This document is free; you can redistribute it and/or modify it under the terms
of the GNU General Public License as published by the Free Software Foundation;
either version 2 of the License, or (at your option) any later version.
This document is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
License for more details.
You should have received a copy of the GNU General Public License along with
this document; if not, write to the Free Software Foundation, Inc., 675 Mass Ave,
Cambridge, MA 02139, USA.

Copyright 19952005 Tobias Oetiker i wszyscy wspautorzy Wprowadzenia.


Copyright 1998, 2007 polskiego tumaczenia i opracowania JG, RK i TP.
Niniejszy dokument jest wolno dostpny; mona go rozpowszechnia i/lub zmienia
zgodnie z postanowieniami Oglnej Licencji Publicznej GNU takiej, jak opublikowaa fundacja Free Software Foundation w wersji 2 teje Licencji, albo (Wasz
wybr) w dowolnej pniejszej.
Dokument jest rozpowszechniany w nadziei, e bdzie uyteczny, jednake BEZ
ADNEJ GWARANCJI, nawet bez jakiejkolwiek domylnej gwarancji WYNIKAJCEJ Z NABYCIA lub ODPOWIADANIA KONKRETNEMU CELOWI. Wicej
szczegw znajdziecie w Oglnej Licencji Publicznej GNU.
Do dokumentu powinna by doczona kopia Oglnej Licencji Publicznej GNU;
jeli jej nie ma, to napiszcie do: the Free Software Foundation, Inc., 675 Mass Ave,
Cambridge, MA 02139, USA.

Najnowsz polskojzyczna wersja Wprowadzenia znajduje si pod adresem:


http://www.ctan.org/tex-archive/info/lshort/polish/
Najnowsza anglojzyczna wersja Wprowadzenia znajduje si w katalogu:
http://www.ctan.org/tex-archive/info/lshort

Podzikowania
Wikszo materiau w niniejszej ksice pochodzi z napisanego w jzyku
niemieckim austriackiego Wprowadzenia do LATEXa 2.09, ktrego autorami s:
Hubert Partl <partl@mail.boku.ac.at>
Zentraler Informatikdienst der Universit
at f
ur Bodenkultur Wien

Irene Hyna <Irene.Hyna@bmwf.ac.at>


Bundesministerium f
ur Wissenschaft und Forschung Wien

Elisabeth Schlegl <no email>


in Graz

Osoby zainteresowane wersj niemieck, opracowan przez Jorga Knappena


do LATEX 2 , mog j znale pod adresem CTAN://info/lshort/german.
Niej wymienione osoby pomogy w tworzeniu Wprowadzenia swoimi poprawkami, sugestiami i propozycjami ulepsze. Przyczyniy si one bardzo
do nadania niniejszej ksice jej obecnego ksztatu. Chciabym im za to
serdecznie podzikowa. Za wszelkie bdy, ktre nieuchronnie pozostay
w tekcie, ponosz oczywicie odpowiedzialno wycznie ja sam. Wszystkie natomiast sowa zapisane bez bdu s w ksice wyczn zasug osb
z poniszej listy:
Rosemary Bailey, Marc Bevand, Friedemann Brauer, Jan Busa,
Markus Br
uhwiler, Pietro Braione, David Carlisle, Jose Carlos Santos,
Neil Carter, Mike Chapman, Pierre Chardaire, Christopher Chin, Carl Cerecke,
Chris McCormack, Wim van Dam, Jan Dittberner, Michael John Downes,
Matthias Dreier, David Dureisseix, Elliot, Hans Ehrbar, Daniel Flipo, David Frey,
Hans Fugal, Robin Fairbairns, Jorg Fischer, Erik Frisk, Mic Milic Frederickx,
Frank, Kasper B. Graversen, Arlo Griffiths, Alexandre Guimond, Andy Goth,
Cyril Goutte, Greg Gamble, Frank Fischli, Morten Hgholm, Neil Hammond,
Rasmus Borup Hansen, Joseph Hilferty, Bjorn Hvittfeldt, Martien Hulsen,
Werner Icking, Jakob, Eric Jacoboni, Alan Jeffrey, Byron Jones, David Jones,
Johannes-Maria Kaltenbach, Michael Koundouros, Andrzej Kawalec,
Sander de Kievit, Alain Kessi, Christian Kern, Tobias Klauser, J
org Knappen,
Kjetil Kjernsmo, Maik Lehradt, Remi Letot, Flori Lambrechts, Axel Liljencrantz,
Johan Lundberg, Alexander Mai, Hendrik Maryns, Martin Maechler,
Aleksandar S Milosevic, Henrik Mitsch, Claus Malten, Kevin Van Maren,

iv

Podzikowania
Richard Nagy, Philipp Nagele, Lenimar Nunes de Andrade, Manuel Oetiker,
Urs Oswald, Martin Pfister, Demerson Andre Polli, Nikos Pothitos,
Maksym Polyakov Hubert Partl, John Refling, Mike Ressler, Brian Ripley,
Young U. Ryu, Bernd Rosenlecher, Chris Rowley, Risto Saarelma,
Hanspeter Schmid, Craig Schlenter, Gilles Schintgen, Baron Schwartz,
Christopher Sawtell, Miles Spielberg, Geoffrey Swindale, Laszlo Szathmary,
Boris Tobotras, Josef Tkadlec, Scott Veirs, Didier Verna, Fabian Wernli,
Carl-Gustav Werner, David Woodhouse, Chris York, Fritz Zaucker, Rick Zaccone,
oraz Mikhail Zotov.

Od autorw polskiej wersji


Za pomoc redakcyjn dzikujemy Staszkowi Wawrykiewiczowi i Wodkowi
Macewiczowi.

Przedmowa
LATEX [12] jest systemem skadu znakomicie nadajcym si do tworzenia publikacji naukowych i technicznych o wysokiej jakoci typograficznej. LATEX
nadaje si rwnie do przygotowywania dowolnego rodzaju dokumentw,
poczynajc od prostych listw, a koczc na grubych ksikach. Do formatowania dokumentw LATEX wykorzystuje program TEX [11, 5].
Niniejsze krtkie Wprowadzenie opisuje LATEXa w zakresie wystarczajcym do wikszoci zastosowa. Peny opis LATEXa mona znale w [12, 6, 4].
Wprowadzenie zawiera sze nastpujcych rozdziaw:
Rozdzia 1 przedstawia ogln struktur dokumentw LATEXowych i krtko
omawia histori systemu LATEX. Po przeczytaniu tego rozdziau powiniene mie ju zgrubne wyobraenie o tym, czym jest LATEX.
Rozdzia 2 podaje szczegy dotyczce skadania dokumentw. Omwiono
w nim najwaniejsze instrukcje i otoczenia. Po przeczytaniu tego rozdziau bdziesz ju umia tworzy proste dokumenty LATEXowe.
Rozdzia 3 powicono skadaniu wzorw matematycznych. Wiele zamieszczonych w nim przykadw nauczy Ci wykorzystywa jedn z najwaniejszych umiejtnoci TEXa, jak jest elegancki skad matematyki. Na
kocu rozdziau zamieszczono zestawienie dostpnych w LATEXu symboli matematycznych.
Rozdzia 4 wyjania, jak tworzy skorowidze i spisy bibliograficzne oraz
jak docza rysunki w formacie eps. Znajdziesz tu rwnie informacje
o tworzeniu plikw w formacie pdf za pomoc programu pdflatex
oraz o kilku uytecznych pakietach LATEXowych.
Rozdzia 5 pokazuje, jak uywa LATEXa do tworzenia grafiki. Zamiast
przygotowywa rysunek w jakim programie graficznym, zachowa
go w pliku, po czym wczy do dokumentu LATEXowego, opisujesz
rysunek w dokumencie, a do jego narysowania uywasz samego LATEXa.
Rozdzia 6 zawiera informacje, ktrych wykorzystanie jest potencjalnie
niebezpieczne, bo mwi o tym, jak mona zmieni standardowy ukad
graficzny dokumentw LATEXowych. Niewaciwe ich uycie moe spowodowa pogorszenie adnego na og skadu LATEX-owego.
Sdzimy, e powiniene przeczyta wszystkie rozdziay, w powyszej kolejnoci. Ostatecznie, ksika nie jest zbyt gruba. Szczegln uwag zwr na
przykady, gdy wanie w nich zawarto sporo wartociowych informacji.

vi

Przedmowa

LATEX jest dostpny na wikszoci platform sprztowych, poczwszy od


pc i Macintosh, a skoczywszy na duych systemach wyposaonych w system unix czy vms. W wielu sieciach uniwersyteckich mona spotka gotowe
do uytku instalacje LATEXa. Informacje, jak rozpocz prac w lokalnej instalacji LATEXa, mona znale w [16]. Jeeli nie wiesz, jak zacz prac
z LATEXem, to zapytaj si osoby, od ktrej otrzymae niniejsze Wprowadzenie. W tym dokumencie nie poruszamy spraw zwizanych z instalowaniem
i konfigurowaniem systemu LATEX. Mwimy wycznie o tym, jak pisa dokumenty, aby mogy by przetwarzane przez LATEXa.
Gdyby potrzebowa jakichkolwiek materiaw dotyczcych LATEXa, to
zajrzyj do jednego z archiww sieci ctan. Gwny wze ctan ma adres
http://www.ctan.org. Mona te korzysta z innych wzw, takich jak
http://www.dante.de lub ftp://ftp.dante.de albo dowolnego z wielu
archiww lustrzanych, na przykad polskiego ftp://ftp.gust.org.pl.
Wszystkie zasoby w kadym archiwum ctan znajduj si w katalogu tex-archive. W dalszej czci ksiki bdziemy wielokrotnie uywa odsyaczy do zasobw ctanu, ale bdziemy w nich pomija protok, adres konkretnego wza oraz pocztkowy katalog tex-archive,
to znaczy bdziemy uywa zapisu CTAN://cieka-do-zasobu zamiast
http://www.ctan.org/tex-archive/cieka-do-zasobu.
W katalogu CTAN://systems znajdziesz oprogramowanie niezbdne do
uruchomienia LATEXa na twoim komputerze.

Od autorw polskiej wersji


Poniewa uznalimy, e niektre tematy autorzy Wprowadzenia przedstawili
zbyt lakonicznie, zdecydowalimy si na ich poszerzenie. Zmiany w stosunku
do oryginau dotycz w szczeglnoci: zagadnie przygotowywania dokumentw w jzyku polskim (punkt 2.5 i wiele uzupenie w innych punktach),
opisu klasy letter (punkt 2.14) oraz informacji dotyczcych tworzenia plikw pdf (punkt 4.7). Poniewa w naszej opinii w oryginale Wprowadzenia
zdecydowanie za mao miejsca zajmuje wane zagadnienie skadania tabel,
dodalimy powicony w caoci temu tematowi obszerny punkt 6.8.
Jeeli masz pomys, co naleaoby doda, usun lub zmieni w tym
dokumencie bd jego tumaczeniu napisz. Jestemy szczeglnie zainteresowani opiniami pocztkujcych uytkownikw LATEXa o tym, ktre fragmenty
trudno zrozumie i wymagaj lepszego przedstawienia.
Ryszard Kubiak, R.Kubiak@guests.ipipan.gda.pl
Tomasz Przechlewski, T.Przechlewski@GUST.org.pl
Z autorem oryginalnej wersji angielskiej moesz si skontaktowa, piszc pod
adresem: Tobias Oetiker (oetiker@ee.ethz.ch).
Polecamy stron http://www.gust.org.pl Polskiej Grupy Uytkownikw Systemu TEX GUST jako dodatkowe, bogate rdo informacji o TEXu.

Spis treci
Podzikowania

iii

Przedmowa

1. Podstawy, ktre warto zna


1.1. Nazwa programu . . . . . . . . . . .
1.1.1. TEX . . . . . . . . . . . . . .
1.1.2. LATEX . . . . . . . . . . . . .
1.2. Podstawy . . . . . . . . . . . . . . .
1.2.1. Autor, redaktor i zecer . . . .
1.2.2. Ukad graficzny . . . . . . .
1.2.3. Zalety i wady . . . . . . . . .
1.3. Plik rdowy . . . . . . . . . . . . .
1.3.1. Odstpy . . . . . . . . . . . .
1.3.2. Znaki specjalne . . . . . . . .
1.3.3. Polecenia LATEXa . . . . . . .
1.3.4. Komentarze . . . . . . . . . .
1.4. Struktura pliku rdowego . . . . .
1.5. Typowa sesja pracy z LATEXem . . .
1.6. Ukad graficzny dokumentu . . . . .
1.6.1. Klasy dokumentw . . . . . .
1.6.2. Pakiety . . . . . . . . . . . .
1.6.3. Style strony . . . . . . . . . .
1.7. Nazwy plikw zwizanych z LATEXem
1.8. Due dokumenty . . . . . . . . . . .

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

1
1
1
1
2
2
3
3
4
4
5
5
6
6
7
9
9
10
11
12
14

2. Skadanie tekstu
2.1. Struktura tekstu i jzyka . . . . . .
2.2. Skadanie akapitw i amanie stron
2.2.1. Skadanie akapitw . . . . .
2.2.2. Przenoszenie wyrazw . . .
2.3. Kilka gotowych oznacze napisw .
2.4. Znaki specjalne i symbole . . . . .

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

15
15
17
17
19
20
21

.
.
.
.
.
.

viii

Spis treci

2.4.1. Cudzysowy . . . . . . . . . . . . . . . . . . . .
2.4.2. Pauzy i mylniki . . . . . . . . . . . . . . . . .
2.4.3. Odstpy nieamliwe . . . . . . . . . . . . . . .
2.4.4. Tylda () . . . . . . . . . . . . . . . . . . . . .
2.4.5. Oznaczenie stopni () . . . . . . . . . . . . . .
2.4.6. Symbol waluty euro (e) . . . . . . . . . . . . .
2.4.7. Wielokropek (. . . ) . . . . . . . . . . . . . . . .
2.4.8. Ligatury . . . . . . . . . . . . . . . . . . . . .
2.4.9. Akcenty i znaki specjalne . . . . . . . . . . . .
2.5. LATEX wielojzyczny . . . . . . . . . . . . . . . . . . .
2.5.1. Jzyk polski w dokumentach . . . . . . . . . .
2.6. Odstpy midzy wyrazami . . . . . . . . . . . . . . .
2.7. Tytuy, rdtytuy i punkty . . . . . . . . . . . . . . .
2.8. Odsyacze . . . . . . . . . . . . . . . . . . . . . . . . .
2.9. Przypisy . . . . . . . . . . . . . . . . . . . . . . . . .
2.10. Wyrnienia . . . . . . . . . . . . . . . . . . . . . . .
2.11. Otoczenia . . . . . . . . . . . . . . . . . . . . . . . . .
2.11.1. Otoczenia itemize, enumerate i description
2.11.2. Otoczenia flushleft, flushright i center . .
2.11.3. Otoczenia quote, quotation i verse . . . . . .
2.11.4. Streszczenie . . . . . . . . . . . . . . . . . . . .
2.11.5. Symulacja maszynopisu . . . . . . . . . . . . .
2.11.6. Otoczenie tabular . . . . . . . . . . . . . . .
2.12. Wstawki . . . . . . . . . . . . . . . . . . . . . . . . .
2.13. Ochrona polece kruchych . . . . . . . . . . . . . . . .
2.14. Listy . . . . . . . . . . . . . . . . . . . . . . . . . . .
3. Wyraenia matematyczne
3.1. Wstp . . . . . . . . . . . . . . . . . . . .
3.2. Grupowanie . . . . . . . . . . . . . . . . .
3.3. Czci skadowe wyrae matematycznych
3.4. Odstpy w trybie matematycznym . . . .
3.5. Wyrwnywanie w pionie . . . . . . . . .
3.6. Fantomy . . . . . . . . . . . . . . . . . . .
3.7. Stopie pisma . . . . . . . . . . . . . . . .
3.8. Twierdzenia, definicje, itp. . . . . . . . . .
3.9. Symbole pgrube . . . . . . . . . . . . .
3.10. Zestawienie symboli matematycznych . .

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

21
21
22
23
23
23
24
24
25
25
28
30
31
34
34
35
35
36
36
37
37
38
38
40
43
43

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

45
45
47
47
51
52
54
55
56
57
58

4. Rysunki, skorowidze, generowanie plikw PDF. . .


4.1. Wczanie grafiki w formacie EPS . . . . . . . . .
4.2. Spis literatury . . . . . . . . . . . . . . . . . . . . .
4.3. Skorowidze . . . . . . . . . . . . . . . . . . . . . .
4.4. Paginy grne i dolne . . . . . . . . . . . . . . . . .

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

65
65
68
69
71

. . .
. . .
. .
. . .
. . .
. . .
. . .
. . .
. . .
. . .

.
.
.
.
.
.
.
.
.
.

Spis treci

ix

4.5. Pakiet verbatim . . . . . . . . . . . . . . . . . . . . . . . . .


4.6. Instalowanie dodatkowych pakietw . . . . . . . . . . . . . .
4.7. Tworzenie plikw PDF: pdfLATEX i hyperref . . . . . . . . .
4.7.1. Tworzenie dokumentw PDF w LATEXu . . . . . . . .
4.7.2. Fonty bitmapowe i obwiedniowe . . . . . . . . . . . . .
4.7.3. Doczanie grafiki . . . . . . . . . . . . . . . . . . . .
4.7.4. cza hipertekstowe . . . . . . . . . . . . . . . . . . .
4.7.5. Problemy z czami . . . . . . . . . . . . . . . . . . .
4.7.6. Problemy z zakadkami . . . . . . . . . . . . . . . . .
4.7.7. Interpretacja pliku rdowego przez LATEXa i pdfLATEXa
4.7.8. Wymiary kartki papieru . . . . . . . . . . . . . . . . .
4.8. Tworzenie prezentacji . . . . . . . . . . . . . . . . . . . . . .
4.9. Pakiet pdfscreen . . . . . . . . . . . . . . . . . . . . . . . . . .
5. Tworzenie grafiki matematycznej
5.1. Przegld . . . . . . . . . . . . . . . . . . . . . . . .
5.2. Otoczenie picture . . . . . . . . . . . . . . . . . .
5.2.1. Podstawowe polecenia . . . . . . . . . . . .
5.2.2. Odcinki . . . . . . . . . . . . . . . . . . . .
5.2.3. Strzaki . . . . . . . . . . . . . . . . . . . .
5.2.4. Okrgi . . . . . . . . . . . . . . . . . . . . .
5.2.5. Tekst i wzory . . . . . . . . . . . . . . . . .
5.2.6. Polecenia \multiput i \linethickness . .
5.2.7. Owale . . . . . . . . . . . . . . . . . . . . .
5.2.8. Wielokrotne uycie pudeek z rysunkami . .
5.2.9. Krzywe Beziera drugiego stopnia . . . . . .
5.2.10. Krzywe acuchowe . . . . . . . . . . . . .
5.2.11. Prdko w Szczeglnej Teorii Wzgldnoci
5.3. XY-pic . . . . . . . . . . . . . . . . . . . . . . . . .
6. Adaptowanie LATEXa
6.1. Definiowane instrukcji i otocze . . . . . . . . . .
6.1.1. Instrukcje definiowane przez uytkownika
6.1.2. Otoczenia definiowane przez uytkownika
6.1.3. Nadmiarowe odstpy . . . . . . . . . . . .
6.1.4. Wasne pakiety . . . . . . . . . . . . . . .
6.2. Fonty . . . . . . . . . . . . . . . . . . . . . . . .
6.2.1. Instrukcje przeczajce stopie pisma .
6.2.2. Uwaga, niebezpieczestwo! . . . . . . . .
6.2.3. Uycie alternatywnych krojw pisma . . .
6.3. Odstpy . . . . . . . . . . . . . . . . . . . . . . .
6.3.1. Zmiana wielkoci interlinii . . . . . . . .
6.3.2. Odstpy wok akapitw . . . . . . . . .
6.3.3. Odstpy poziome . . . . . . . . . . . . .

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

72
72
74
74
75
76
77
79
79
80
81
81
83

.
.
.
.
.
.
.
.
.
.
.
.
.
.

84
84
85
85
86
87
88
89
89
90
91
92
93
94
94

.
.
.
.
.
.
.
.
.
.
.
.
.

98
98
99
100
101
101
102
102
105
105
107
107
108
108

Spis treci

6.4.
6.5.
6.6.
6.7.
6.8.

6.3.4. Odstpy pionowe . . . . . .


Ukad graficzny strony . . . . . . .
Wicej o odlegociach . . . . . . .
Pudeka . . . . . . . . . . . . . . .
Kreski i podpory . . . . . . . . . .
Wicej o skadaniu tabel . . . . .
6.8.1. Tabele o zadanej szerokoci
6.8.2. Pakiet longtable . . . . . .
6.8.3. Pakiet array . . . . . . . . .
6.8.4. Pakiet tap . . . . . . . . . .

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

110
111
113
113
115
116
116
119
120
122

Bibliografia

123

Skorowidz

125

Spis rysunkw
1.1.
1.2.
4.1.
4.2.
6.1.
6.2.

Zawarto minimalnego pliku rdowego


Przykad artykuu do czasopisma . . . . .
Przykad wykorzystania pakietu fancyhdr
Prosty kod dla klasy beamer . . . . . . . .
Przykadowy pakiet . . . . . . . . . . . .
Parametry ukadu graficznego strony . .

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
7
.
8
. 71
. 82
. 102
. 112

Spis tabel
1.1. Wybrane pakiety z podstawowej dystrybucji LATEXa . . . .
2.1. Torba pena symboli euro . . . . . . . . . . . . . . . . . . .
2.2. Akcenty i znaki specjalne . . . . . . . . . . . . . . . . . . .
2.3. Opcjonalny argument otocze table i figure . . . . . . .
3.1. Akcenty matematyczne . . . . . . . . . . . . . . . . . . . .
3.2. Litery alfabetu greckiego . . . . . . . . . . . . . . . . . . .
3.3. Symbole relacji . . . . . . . . . . . . . . . . . . . . . . . . .
3.4. Symbole operacji dwuargumentowych . . . . . . . . . . . .
3.5. Symbole zmiennej wielkoci . . . . . . . . . . . . . . . . . .
3.6. Strzaki . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.7. Ograniczniki . . . . . . . . . . . . . . . . . . . . . . . . . .
3.8. Due ograniczniki . . . . . . . . . . . . . . . . . . . . . . .
3.9. Rne symbole . . . . . . . . . . . . . . . . . . . . . . . . .
3.10. Symbole niematematyczne . . . . . . . . . . . . . . . . . . .
3.11. Ograniczniki (pakiet AMS) . . . . . . . . . . . . . . . . . .
3.12. Symbole Greckie i Hebrajskie (pakiet AMS) . . . . . . . . .
3.13. Symbole relacji (pakiet AMS) . . . . . . . . . . . . . . . . .
3.14. Strzaki (pakiet AMS) . . . . . . . . . . . . . . . . . . . . .
3.15. Negacje symbolw relacji i strzaek (pakiet AMS) . . . . .
3.16. Relacje dwuargumentowe (pakiet AMS) . . . . . . . . . . .
3.17. Rne symbole (pakiet AMS) . . . . . . . . . . . . . . . . .
3.18. Kroje pisma dostpne w trybie matematycznym . . . . . . .
4.1. Znaczenie waniejszych kluczy polecenia \includegraphics
4.2. Przykady skadni polecenia \index . . . . . . . . . . . . .
6.1. Polecenia wyboru krojw i odmian . . . . . . . . . . . . . .
6.2. Polecenia jednoczesnego wyboru stopnia pisma i interlinii .
6.3. Wielko stopnia pisma w klasach standardowych . . . . . .
6.4. Polecenia wyboru fontw w trybie matematycznym . . . .
6.5. LATEXowe jednostki miary . . . . . . . . . . . . . . . . . . .
6.6. Tytu tabeli . . . . . . . . . . . . . . . . . . . . . . . . . . .

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

12
24
25
41
58
58
59
60
60
60
61
61
61
61
61
61
62
62
63
63
64
64
66
70
103
103
104
105
109
119

Rozdzia 1

Podstawy, ktre warto zna


W pierwszej czci tego rozdziau przedstawimy krtko filozofi oraz histori systemu LATEX 2 . W czci drugiej skoncentrujemy si na podstawowych elementach
dokumentu LATEXowego. Po przeczytaniu tego rozdziau czytelnik powinien z grubsza wiedzie, jak dziaa LATEX, co jest niezbdne do rozumienia materiau prezentowanego w nastpnych rozdziaach.

1.1. Nazwa programu


1.1.1. TEX
TEX jest programem komputerowym stworzonym przez Donalda E. Knutha [11]. Jest przeznaczony do skadu tekstw oraz wzorw matematycznych.
Knuth rozpocz prac nad TEXem w 1977 roku, aby wykorzysta potencja
skadu cyfrowego, stosowanego wwczas na coraz szersz skal w poligrafii.
Mia te nadziej, e uda si odwrci tendencj do pogarszania si jakoci
typograficznej, co uwidaczniao si w jego wasnych ksikach i artykuach.
W uywanej obecnie postaci TEX zosta udostpniony w roku 1982, a niewielkie rozszerzenie, dotyczce omiobitowego kodowania znakw, pojawio
si w roku 1989. TEX ma renom programu nadzwyczaj stabilnego, pracujcego na rnego rodzaju sprzcie oraz praktycznie wolnego od bdw.
Numery wersji TEXa zbiegaj do liczby , a obecny wynosi 3,14159.
Sowo TEX naley wymawia tech. Zgoska ch ma zwizek z tym, e
znak X przypomina greck liter chi. TEX jest te pierwsz sylab greckiego sowa texnologia (technologia). W sytuacjach, w ktrych nie mona
zapisywa nazwy TEX z charakterystycznym obnieniem litery E, naley
zamiennie uywa wersji TeX.

1.1.2. LATEX
LATEX jest zestawem instrukcji (polece, makrodefinicji, makr) umoliwiajcych autorom zoenie i wydrukowanie ich prac na najwyszym poziomie

Podstawy, ktre warto zna

typograficznym. Pierwsz wersj LATEXa opracowa Leslie Lamport [12]. Do


formatowania dokumentu LATEX uywa programu TEX. Pielgnacj dzisiejszych wersji LATEXa zajmuje si Frank Mittelbach.
Kilka lat temu pakiet LATEX zosta rozszerzony przez zesp o nazwie
A
L TEX3 (LATEX3 team), kierowany przez Franka Mittelbacha. Celem tego
rozszerzenia byo wprowadzenie kilku od dawna postulowanych ulepsze
oraz unifikacja rozmaitych odmian LATEXa, ktre rozpowszechniy si od
chwili powstania kilkanacie lat wczeniej LATEXa w wersji 2.09. Now wersj
pakietu nazwano LATEX 2 , w celu odrnienia jej od wersji poprzednich.
Niniejszy dokument opisuje wanie LATEX 2 .
Sowo LATEX naley wymawia lej-tech albo la-tech. Jeeli nie mona
zapisa symbolu LATEX, to zamiennie naley uy zapisu LaTeX. LATEX 2
wymawiamy la-tech dwa i, a zamienn wersj zapisu jest LaTeX2e.

1.2. Podstawy
1.2.1. Autor, redaktor i zecer
Aby wyda ksik, autor dostarcza maszynopis do wydawnictwa. W wydawnictwie redaktor decyduje o ukadzie graficznym dokumentu (szeroko
szpalty, krj pisma, odstpy przed i po tytuach rozdziaw itd.). Redaktor
zapisuje swoje decyzje w maszynopisie, w formie odpowiednich instrukcji,
i przekazuje go zecerowi. Na podstawie maszynopisu oraz instrukcji zecer
wykonuje skad.
Redaktor-czowiek odgaduje, co mia na myli autor, gdy zapisywa
maszynopis. Wykorzystujc swoje dowiadczenie zawodowe, ustala, ktre
miejsca w maszynopisie oznaczaj tytuy rozdziaw, podrozdziaw, cytaty,
przykady, wzory matematyczne itd.
LATEX gra rol redaktora, a TEX zecera. Z tym e LATEX jest zaledwie programem komputerowym i dlatego potrzebuje dodatkowej pomocy
autora, ktry powinien dostarczy niezbdnych do skadu informacji o strukturze logicznej dokumentu. Informacje te autor zapisuje w pliku rdowym
dokumentu jako polecenia dla LATEXa.
Praca z LATEXem zdecydowanie rni si od podejcia stosowanego w procesorach tekstu typu wysiwyg1 , takich jak MS Word albo OpenOffice.
Pierwszy sposb mona okreli formatowaniem logicznym drugi formatowaniem wizualnym. Uywajc programw typu wysiwyg, autor decyduje interakcyjnie o wygldzie graficznym dokumentu, w miar dopisywania
tekstu. Przez cay czas widzi na ekranie, jak tekst bdzie wyglda po wydrukowaniu.
Uywajc LATEXa, nie mona na og oglda dokumentu w jego ostatecznej postaci i jednoczenie dopisywa tekstu. Mona natomiast obejrze
1

ang. What you see is what you get (dostaniesz to, co widzisz).

1.2. Podstawy

dokument na ekranie po przetworzeniu go LATEXem2 . Gdy jest ju gotowy,


mona dokument wysa na drukark.

1.2.2. Ukad graficzny


Projektowanie ksiek jest sztuk. Amatorzy czsto popeniaj powany
bd, zakadajc, e zaprojektowanie ukadu graficznego ksiki jest jedynie
kwesti estetyki (jeeli dokument adnie wyglda, to jest dobrze zoony).
Poniewa dokumenty s przeznaczone do czytania, a nie do powieszenia, jak
obraz na cianie w galerii, to o wiele wiksze znaczenie ni pikny wygld
ma atwo czytania i przyswajania tekstu. Przykady:
stopie pisma oraz numeracj rozdziaw, podrozdziaw i punktw
naley ustali tak, by czytelnik mg si szybko zorientowa w strukturze dokumentu;
szeroko szpalty powinna by na tyle wska, by czytelnik nie musia wyta wzroku, wystarczajco jednak dua, aby tekst elegancko
wypenia stron.
W systemach wizualnych czsto powstaj dokumenty przyjemne dla oka,
chocia pozbawione struktury albo wykazujce brak konsekwencji w strukturze. LATEX zapobiega powstawaniu takich bdw, nakaniajc autora do
okrelenia logicznej struktury dokumentu. Do LATEXa naley dobr najodpowiedniejszego dla niej ukadu graficznego.

1.2.3. Zalety i wady


Tematem czsto dyskutowanym, gdy uytkownicy programw typu wysiwyg spotykaj uytkownikw LATEXa, s zalety LATEXa w porwnaniu ze
zwykym procesorem tekstu albo na odwrt. Najlepiej podczas takich dyskusji siedzie cicho. Czasami jednak nie ma ucieczki. . .
Na wszelki wypadek troch amunicji. Oto najwaniejsze zalety LATEXa
w porwnaniu ze zwykymi procesorami tekstu:
Dostpne s gotowe, przygotowane przez zawodowcw szablony, dziki
zastosowaniu ktrych dokumenty wygldaj jak z drukarni.
Wygodnie skada si wzory matematyczne.
Do rozpoczcia pracy wystarczy pozna zaledwie kilkanacie atwych
do zrozumienia instrukcji, okrelajcych struktur logiczn dokumentu.
Nie trzeba zaprzta sobie gowy formatowaniem dokumentu.
Nawet takie elementy jak: przypisy, odnoniki, spisy treci, spisy tabel,
skorowidze oraz spisy bibliograficzne przygotowuje si bardzo atwo.
2

Na szybkim komputerze przetworzenie trwa czsto zaledwie kilka sekund. Dysponujc


duym ekranem, mona jednoczenie wywietli okno z plikiem rdowym oraz okno
podgldu, otrzymujc w ten sposb system prawie wysiwyg.

Podstawy, ktre warto zna

Istnieje wiele bezpatnych pakietw poszerzajcych typograficzne moliwoci LATEXa. Dostpne s na przykad pakiety umoliwiajce wstawianie do dokumentw grafiki w formacie Postscript, tworzenie hipertekstowej wersji dokumentw w formacie pdf czy te przygotowanie
spisw bibliograficznych wedug cile okrelonych regu, obowizujcych w rnych wydawnictwach. Opis wielu z tych pakietw mona
znale w podrczniku [6].
LATEX zachca autorw do tworzenia dokumentw o dobrze okrelonej
strukturze.
TEX program formatujcy uywany przez LATEX 2 jest bezpatny
i w najwyszym stopniu przenony. Dziki temu mona dziaa na
praktycznie dowolnej platformie systemowo-sprztowej.
LATEX ma take pewne wady, chocia ciko mi znale jakkolwiek istotn.
Jestem jednak pewien, e inne osoby wska ci ich setki;-)
LATEX nie dziaa u tych, ktrzy zaprzedali swoje dusze. . .
Chocia przez zmian niektrych parametrw mona dostosowywa
predefiniowane ukady graficzne do wasnych potrzeb, to jednak zaprojektowanie cakowicie nowego ukadu jest pracochonne3 .
Trudno jest tworzy dokumenty o nieokrelonej, baaganiarskiej strukturze.
Twj chomik moe nie by w stanie, mimo kilku obiecujcych krokw
wstpnych, w peni poj koncepcj znakowania logicznego.

1.3. Plik rdowy


Plik rdowy LATEXa to zwyky plik tekstowy (plik ascii). Taki plik mona
utworzy w dowolnym edytorze tekstowym. Powinien on zawiera tekst
dokumentu oraz instrukcje dla LATEXa okrelajce, jak tekst ma zosta
zoony.

1.3.1. Odstpy
Znaki niewidoczne, takie jak odstpy (spacje) lub znaki tabulacji, s przez
LATEXa traktowane jednakowo jako odstp. Kolejno po sobie wystpujce
znaki odstpu LATEX traktuje jak pojedynczy odstp. Znaki odstpu znajdujce si na pocztku wiersza s prawie zawsze ignorowane. Pojedynczy
koniec linii jest traktowany jak odstp.
Pusty wiersz pomidzy dwoma wierszami tekstu oznacza koniec akapitu.
Kolejno wystpujce puste wiersze LATEX traktuje jak jeden. Przykadem
moe by poniszy tekst. Po prawej stronie (w ramce) przedstawiono wynik
skadu, a po lewej zawarto pliku rdowego.
3

Plotki mwi, e jest to jeden z waniejszych problemw, nad jakim pracuj twrcy
systemu LATEX3.

1.3. Plik rdowy

Nie ma znaczenia, czy midzy sowami


jest jedna czy
wicej spacji.
Pusty wiersz zakoczy poprzedni
akapit.

Nie ma znaczenia, czy midzy sowami jest


jedna czy wicej spacji.
Pusty wiersz zakoczy poprzedni akapit.

1.3.2. Znaki specjalne


Niektre znaki s zarezerwowane w tym sensie, e albo maj dla LATEXa
specjalne znaczenie, albo nie s dostpne we wszystkich standardowych
krojach pisma. Uyte dosownie w pliku rdowym nie pojawi si na
wydruku, lecz (najczciej) spowoduj bd podczas przetwarzania tekstu.
Oto ich lista:
$ & % # _ { } ~ ^ \
Znaki te mona umieci w dokumencie pod warunkiem, e w pliku rdowym zostan poprzedzone znakiem w-ty-ciacha (ang. backslash):
\$ \& \% \# \_ \{ \}

$&%#

{}

Samego znaku w-ty-ciach nie mona wstawi do tekstu metod podwojenia,


kombinacja \\ jest bowiem poleceniem LATEXa, opisanym w punkcie 2.2.1.
Znak w-ty-ciach mona wstawi poleceniem $\backslash$. Uwaga: znaki
dolara s tu niezbdne, a ich opuszczenie spowoduje bd podczas przetwarzania.

1.3.3. Polecenia LATEXa


Polecenia LATEXa mog wystpi w dwch nastpujcych odmianach:
1. Instrukcji rozpoczynajcych si znakiem w-ty-ciach \, po ktrym
wystpuje cig liter. Kocem instrukcji jest wwczas odstp lub inny
znak niebdcy liter. W nazwach instrukcji LATEX rozrnia litery
mae i due, nie mona te w nich uywa polskich liter diakrytycznych.
2. Instrukcji skadajcych si ze znaku w-ty-ciach oraz jednego znaku
niebdcego liter.
LATEX ignoruje znaki niewidoczne po instrukcji typu 1. Jeeli po instrukcji ma wystpowa w dokumencie odstp, to naley bezporednio po niej
umieci kolejno: par nawiasw klamrowych {} i odstp. Para znakw {}
zapobiega zignorowaniu przez LATEXa odstpu po nazwie instrukcji. Innym
sposobem jest wstawienie specjalnej instrukcji \ (tj. w-ty-ciach i spacja).
Niektrzy zapobiegaj poykaniu spacji w jeszcze inny sposb, a mianowicie otaczajc nazw instrukcji par nawiasw { i }.

Podstawy, ktre warto zna

Czytaem, e Knuth dzieli


uytkownikw systemu {\TeX} na
\TeX{}nikw oraz \TeX pertw.\\
Dzisiaj jest \today.

Czytaem, e Knuth dzieli uytkownikw systemu TEX na TEXnikw oraz TEXpertw.


Dzisiaj jest 15 stycznia 2007.

Niektre instrukcje LATEXowe maj argumenty. Podaje si je w nawiasach


klamrowych { }, kady w osobnej parze nawiasw. Liczba oraz kolejno
argumentw jest istotna i wynika z definicji instrukcji. Instrukcje mog
mie take argumenty opcjonalne, podawane w nawiasach kwadratowych
[ ]. W wypadku wikszej liczby argumentw opcjonalnych oddziela si je
przecinkami. Kolejno argumentw opcjonalnych nie odgrywa roli.
Ponisze przykady ilustruj posta instrukcji LATEXowych. Ich znaczenie
jest tu nieistotne i zostanie opisane pniej.
Moesz

na mnie \textsl{polega}!

Tu wstaw zmian wiersza.\newline


Dzikuj.

Moesz na mnie polega!


Tu wstaw zmian wiersza.
Dzikuj.

1.3.4. Komentarze
Po napotkaniu znaku % LATEX ignoruje reszt biecego wiersza (cznie ze
znakiem koca wiersza) oraz znaki odstpu na pocztku nastpnego. Znak %
jest uywany do umieszczania komentarzy i dodatkowych informacji w pliku
rdowym.
Mao zmar % sprawdzi!
w~1975 roku.

Mao zmar w 1975 roku.

Znaku % uywa si niekiedy do dzielenia bardzo dugich linii w pliku wejciowym, gdy niedozwolone jest uycie spacji lub zamanie wiersza.

1.4. Struktura pliku rdowego


LATEX oczekuje, e plik rdowy posiada okrelon struktur. W szczeglnoci, kady plik rdowy skada si z dwch czci: preambuy oraz czci
gwnej. Preambua powinna si rozpoczyna od instrukcji \documentclass:
\documentclass{...}
Instrukcja ta okrela rodzaj tworzonego dokumentu. Po niej mona umieci
polecenia dotyczce stylu caego dokumentu oraz doczy pakiety poszerzajce moliwoci LATEXa. Pakiety docza si poleceniem\usepackage:
\usepackage{...}

1.5. Typowa sesja pracy z LATEXem

Cz gwna dokumentu zaczyna si od instrukcji \begin{document}.


Za ni znajduje si tekst dokumentu, wzbogacony o LATEXowe polecenia sterujce wygldem. Na kocu dokumentu musi wystpowa polecenie
\end{document}. Tekst znajdujcy si za tym poleceniem jest przez LATEXa
ignorowany.
Rysunek 1.1 pokazuje zawarto minimalnego dokumentu LATEXowego.
Uyte w nim instrukcje \usepackage{...}, niezbdne do skadania w jzyku polskim, omawiamy w punkcie 2.5.
\documentclass{article}
\usepackage[MeX]{polski}
% kodowanie: latin2, utf8 lub cp1250
\usepackage[latin2]{inputenc}
\begin{document}
Mae jest pikne.
\end{document}

Rysunek 1.1: Zawarto minimalnego pliku rdowego


Rysunek 1.2 przedstawia nieco bardziej rozbudowany plik rdowy.

1.5. Typowa sesja pracy z LATEXem


Na pewno chciaby ju sprawdzi, jak bdzie wyglda na papierze dokument z przykadu 1.1. Szczegowy sposb uruchomienia LATEXa zaley od
systemu operacyjnego, wersji i upodoba uytkownika4 . LATEX jako taki
nie jest wyposaony w zintegrowane rodowisko graficzne (ide). Praca z takim systemem polega na wydawaniu odpowiednich polece z wiersza polece
systemu operacyjnego. Oczywicie posugiwanie si LATEXem w ten sposb
jest na dusz met niewygodne, niemniej do stworzenia pierwszego dokumentu nic wicej nie potrzeba. Dziki temu bdziesz te wiedzia, co kryje si
za guzikami, gdy pniej zainstalujesz jedno z istniejcych zintegrowanych
rodowisk graficznych do pracy z LATEXem.
1. Uruchom edytor i wpisz tekst z przykadu 1.1. Zapisz dokument
jako tekstowy plik ascii. W systemach typu Unix moesz do tego
uy praktycznie dowolnego edytora. W systemie MS Windows musisz zapisa plik jako Zwyky tekst, Dokument tekstowy lub wybra
Wszystkie pliki jako typ dokumentu. W rnych systemach obowizuj rne warianty kodowania polskich znakw. Najpopularniejsze
z tych wariantw, to: kodowanie wielobajtowe Unicode (MS Windows,
4

O tym, jak zainstalowa LATEXa, mona przeczyta na http://www.gust.org.pl.

Podstawy, ktre warto zna

\documentclass[a4paper,11pt]{article}
\usepackage{latexsym}
\usepackage[MeX]{polski}
\usepackage[latin2]{inputenc}% ew. utf8 lub cp1250
% Zdefiniowanie autora i~tytuu:
\author{H.~Szczeglny}
\title{Minimalizm}
\frenchspacing
\begin{document}
% Wstawienie autora i~tytuu do skadu:
\maketitle
% Wstawienie spisu treci:
\tableofcontents
\section{Kilka spostrzee na wstpie}
Wanie tu zaczyna si mj cudowny artyku.
\section{Na poegnanie}
\ldots{} A~tu si on koczy.
\end{document}

Rysunek 1.2: Przykad artykuu do czasopisma. Uyte w nim polecenia


zostan objanione w dalszej czci.
nowe dystrybucje Linuksa), kodowanie cp 1250 (MS Windows) lub
iso 8859-2 (Linux) albo jeszcze co innego (np. Mac). Dokadna posta
wiersza \usepackage[...]{inputenc} zaley od wybranego kodowania; wewntrz nawiasw kwadratowych naley wpisa albo utf8 jeeli
uywamy Unicode 5 , albo latin2 jeeli korzystamy z iso 8859-2 lub te
cp1250 jeeli uywamy cp 12506 . Wicej informacji na temat kodowania znajdziesz w punkcie 2.5. Nie uywaj odstpw w nazwie pliku,
przynajmniej na pocztku swojej przygody z LATEXem, bo moe ci to
skomplikowa ycie. Wybierajc nazw dla pliku, podaj jako jej rozszerzenie .tex. Poprawn nazw byoby na przykad foo.tex.
2. Uruchom program latex na pliku utworzonym w punkcie 1, wpisujc
w wierszu polece7 :
latex foo.tex
5

Uwaga: LATEX potrafi przetwarza dokumenty Unicodowe w ograniczonym zakresie,


wystarczajcym dla tekstw w jzykach europejskich, ale dalekim od kompletnoci.
6
Wybierz kodowanie ansi aby zapisa dokument w standardzie cp 1250.
7
Poniewa ten sposb pracy jest zwykle nieznany uytkownikom systemu MS Windows, przypominamy, e wiersz polece moemy uruchomi na przykad tak: wywoujemy
Start/Uruchom, wpisujemy cmd lub command i naciskamy klawisz Enter.

1.6. Ukad graficzny dokumentu

W wypadku sukcesu zakoczy si to utworzeniem pliku o rozszerzeniu


.dvi8 . Polecenie trzeba powtrzy kilka razy, by LATEX mg utworzy
spis treci i/lub odsyacze do pozycji bibliograficznych, rysunkw, wzorw matematycznych i rdtytuw. Napotkawszy bd w dokumencie,
LATEX zakoczy jego przetwarzanie i przejdzie do trybu dialogu z uytkownikiem. Wpisanie Ctrl-D (lub Ctrl-Z w MS Windows) w tym
trybie powoduje powrt na poziom wiersza polece.
3. Teraz moesz obejrze plik dvi. Jest na to kilka sposobw. W systemie
typu Unix wyposaonym w rodowisko graficzne X Windows moesz
wywoa:
xdvi foo.dvi &
W systemie MS Windows moesz skorzysta z programu yap bd innej
przegldarki plikw dvi. Moesz te przetworzy plik dvi do formatu
Postscript:
dvips -Pcmz foo.dvi -o foo.ps
Pliki w formacie Postscript mona oglda i drukowa za pomoc
programu ghostscript.
Jeli twoja dystrybucja LATEXa zawiera program dvipdf do konwersji
plikw dvi na format pdf, to sprbuj go wywoa, wpisujc:
dvipdf foo.dvi
Pliki pdf mona oglda i drukowa, korzystajc z programu Acrobat
lub wspomnianego ju ghostscripta.

1.6. Ukad graficzny dokumentu


1.6.1. Klasy dokumentw
Na samym pocztku przetwarzania pliku rdowego LATEX musi si dowiedzie, jakiego typu dokument autor chce uzyska. Okrelone jest to
w instrukcji \documentclass:
\documentclass[opcje]{klasa}

gdzie klasa oznacza typ dokumentu. W niniejszym wprowadzeniu opisano


nastpujce klasy ze standardowej dystrybucji LATEX 2 9 :
article artykuy, krtkie opracowania. . .
8

W wikszoci wspczesnych dystrybucji systemu TEX dostpne jest polecenie pdflatex


do generowania dokumentu w formacie pdf. Wicej na ten temat w punkcie 4.7.
9
W dystrybucji LATEX 2 znajduj si take inne, rzadziej wykorzystywane klasy, np.
slides do przygotowywania przeroczy. Zamiast klasy standardowej mona do tworzenia slajdw zastosowa pakiet foiltex, dostpny pod adresem CTAN://macros/latex/
packages/supported/foiltex, bd pakiet beamer, spod adresu CTAN://macros/latex/
contrib/beamer (krtkie wprowadzenie do pakietu beamer zawiera punkt 4.8).

10

Podstawy, ktre warto zna

report dusze opracowania, dysertacje magisterskie i doktorskie. . .


book ksiki.
letter listy.
Opcje pozwalaj zmienia sposb dziaania klas. Poszczeglne opcje rozdziela si przecinkami. Najczciej wykorzystywane opcje dla klas standardowych to:
10pt, 11pt, 12pt
Ustalenie stopnia pisma dla tekstu zasadniczego dokumentu. Domyln wartoci jest 10 punktw.
a4paper, letterpaper, . . .
Ustalenie wymiarw papieru. Wartoci domyln jest letterpaper. Inne dopuszczalne wartoci to: a5paper,
b5paper, executivepaper i legalpaper.
fleqn
Skadanie wyeksponowanych wzorw matematycznych od lewego
marginesu zamiast domylnego centrowania.
leqno
Umieszczanie numerw wzorw matematycznych na lewym marginesie zamiast domylnie na prawym.
titlepage, notitlepage
Pierwsza z opcji powoduje, e LATEX skada
tytu (instrukcja maketitle) oraz streszczenie (instrukcja abstract)
na odzielnej stronie, druga e skad tekstu zaczyna si na stronie
tytuowej. W klasie article tytu i streszczenie nie s domylnie
skadane na oddzielnych stronach, podczas gdy w stylach report
i book s.
onecolumn, twocolumn
Skad jedno- lub dwuamowy (dwukolumnowy).
oneside, twoside Druk na jednej lub na dwch stronach kartki papieru.
W klasach article i report domyln opcj jest oneside, natomiast
w klasie book twoside. Wczenie opcji oneside powoduje przy okazji, e LATEX nie wyrwnuje wysokoci kolejnych stron, dopuszczajc
pewn ich zmienno.
openright, openany Wybranie pierwszej opcji powoduje, e tytuy rozdziaw bd umieszczane na stronach nieparzystych. W klasie article
opcja nie ma znaczenia, gdy w tej klasie nie jest zdefiniowane pojcie
rozdziau. W klasie report domyln wartoci jest openany, a w klasie book openright.
Przykad. Plik rdowy moe si rozpoczyna od nastpujcej instrukcji:
\documentclass[11pt,twoside,a4paper]{article}
W tym wypadku dokument zostanie zoony w klasie article, pismem w stopniu 11 punktw, i zostanie przygotowany do wydruku po dwch stronach
kartki papieru formatu A4.

1.6.2. Pakiety
Pakiety rozszerzaj moliwoci LATEXa. Sam LATEX nie ma na przykad
instrukcji do doczania grafiki, kolorowania tekstu, amania duych tabel

1.6. Ukad graficzny dokumentu

itp. Do wykonywania tych zada su wanie pakiety. Docza si je


poleceniem:
\usepackage[opcje]{pakiet}

gdzie pakiet oznacza nazw pakietu, a opcje list rozdzielonych przecinkami opcji. Cz pakietw znajduje si w podstawowej dystrybucji LATEX 2
(zobacz tabela 1.1), kolejnych kilkanacie, m.in. tak uyteczne jak babel
czy graphicx, jest do niej obowizkowo dodawanych; pozostae s rozpowszechniane oddzielnie. Gdy uywamy LATEXa w systemie, ktrym zarzdza
(dobry) administrator, to informacja o dostpnych pakietach powinna si
znajdowa w [16]. Podstawowym rdem informacji o LATEXu jest [6]. Zawiera on opis setek pakietw, a take informuje, jak mona pisa wasne
rozszerzenia LATEXa.
Wartociowym rdem informacji o istniejcych pakietach LATEXa jest
TEX Catalogue Online Grahama Williamsa [27], dostpny niestety tylko
w jzyku angielskim. Uytkownikom polskojzycznym polecamy Wirtualn
Akademi Wodzimierza Macewicza [18].

1.6.3. Style strony


Typowa strona skada si z trzech podstawowych czci. Powyej kolumny
tekstu gwnego znajduje si pagina grna (gwka), ktra moe zawiera
numer strony, tytu rozdziau czy punktu. Poniej kolumny tekstu znajduje
si pagina dolna (stopka). W niniejszym wprowadzeniu pagina dolna jest
pusta, grna natomiast zawiera numer strony oraz tytu rozdziau na stronicach parzystych, a tytu punktu na nieparzystych10 .
LATEX pozwala wybra jeden z trzech sposobw skadania pagin. Suy
do tego instrukcja:
\pagestyle{styl }

Dopuszczalne wartoci argumentu styl s nastpujce:


plain pagina grna jest pusta, a pagina dolna zawiera wycentrowany numer
strony. Ten styl jest domylny;
headings pagina grna zawiera numer strony oraz tytu, pagina dolna jest
pusta;
empty pagina grna i dolna s puste.
Moliwa jest take zmiana stylu biecej strony. Suy do tego polecenie:
\thispagestyle{styl }
10

Pagin zawierajc oprcz kolejnego numeru kolumny (strony) take informacj dotyczc treci tej kolumny drukarze nazywaj yw pagin.

11

12

Podstawy, ktre warto zna

Tabela 1.1: Wybrane pakiety z podstawowej dystrybucji LATEXa


doc Suy do drukowania dokumentacji pakietw oraz innych czci skadowych LATEXa. Opis znajduje si w pliku doc.dtxa .
exscale Umoliwia skalowanie fontw matematycznych, tak by
optycznie byy zgodne z otaczajcym tekstem, np. w tytuach rozdziaw. Opis w ltexscale.dtx.
fontenc Definiuje ukad znakw, ktrego ma uywa LATEX. Opis
w punkcie 2.5 i w ltoutenc.dtx.
ifthen Umoliwia korzystanie z polece typu if... then do...
otherwise do. Opis w ifthen.dtx i [6].
latexsym Udostpnia specjalny font symboliczny (fonty lasy).
Opis w latexsym.dtx i [6].
makeidx Udostpnia polecenia do przygotowywania skorowidzw.
Opis w punkcie 4.3 i [6].
syntonly Powoduje, e dokument jest przetwarzany bez skadania
czegokolwiek. Przydatny do szybkiego sprawdzenia, czy dokument nie zawiera bdw. Opis w syntonly.dtx i [6].
inputenc Definiuje ukad znakw w pliku rdowym, jak: ascii,
iso Latin-1, iso Latin-2, 437/850 ibm, Apple Macintosh,
Next, ansi-Windows, itd. Opis w inputenc.dtx.
a

Plik ten powinien by zainstalowany w twoim systemie. Aby otrzyma


z niego plik dvi, wystarczy w katalogu z prawem do zapisu napisa latex
doc.dtx. To samo stosuje si do innych pakietw z tej tabeli.

Punkt 4.4 na stronie 71 niniejszego Wprowadzenia oraz podrcznik [6]


w punkcie 4.4 na stronie 54 zawieraj wicej informacji o paginach, w szczeglnoci o sposobach samodzielnego definiowania ich wygldu.

1.7. Nazwy plikw zwizanych z LATEXem


Pracujc z LATEXem, szybko zauwaysz, e na dysku pojawia si mnstwo
plikw o rnych rozszerzeniach nazwy, a ty nie wiesz, co to za jedne.
W poniszym wykazie objaniono rozmaite typy plikw, z ktrymi moesz
si zetkn. Wykaz ten nie pretenduje do kompletnego, dlatego napisz do
nas, gdy napotkasz jakie nowe rozszerzenie, ktre uznasz za warte opisania.
.tex Plik rdowy z dokumentem w notacji LATEXa bd zwykego TEXa.
Mona go kompilowa programem latex bd, odpowiednio, tex.
.sty Pakiet makr LATEXowych. Plik tego typu mona docza do dokumentu LATEXowego, uywajc do tego celu instrukcji \usepackage.

1.7. Nazwy plikw zwizanych z LATEXem

.dtx Udokumentowany TEX. Jest to podstawowy format, w jakim dystrybuowane s style LATEXa. Skutkiem kompilacji pliku tego typu jest
broszurka z udokumentowanymi makrami.
.ins Instalator dla plikw .dtx. cigajc z sieci pakiet LATEXowy, otrzymasz na og pliki .dtx i .ins. Uruchomienie LATEXa na pliku .ins
powoduje rozpakowanie pliku .dtx.
.cls Plik z klas LATEXa definiujc wygld skadanych w LATEXu dokumentw. Wanie do tych plikw odnosi si wystpujca na pocztku
dokumentu instrukcja \documentclass.
.fd Definicja niektrych waciwoci fontw LATEXa.
W wyniku kompilacji dokumentu powstaj nastpujce pliki:
.dvi Device Independent File (plik niezaleny od urzdzenia), bdcy wynikiem kompilacji pliku rdowego przez tradycyjnego LATEXa11 .
Zawarto plikw dvi moesz zobaczy w przegldarce plikw dvi
albo posa na drukark, korzystajc z programu dvips albo innego
programu o podobnych funkcjach.
.pdf Portable Document Format (przenony format dokumentw). Zagadnienie generowania plikw w formacie pdf jest omawiane w punkcie
4.7, zaczynajcym si na stronie 74.
.log Zawiera szczegowy raport z tego, co si wydarzyo podczas kompilacji: ktre pliki byy przetwarzane, co szczeglnego i ewentualnie jakie
bdy LATEX w nich znalaz, a take jakie pliki powstay w wyniku
kompilacji.
.toc Zawiera nagwki rozdziaw i punktw dokumentu. Jest czytany
przez LATEXa w nastpnym przebiegu kompilacji, w celu wygenerowania spisu treci.
.lof Podobny do pliku .toc, z tym e zawiera wykaz ilustracji.
.lot Tak samo, lecz dotyczy wykazu tabel.
.aux Inny plik pomocniczy, przenoszcy informacj z jednego przebiegu
kompilacji do nastpnego. Jest uywany midzy innymi do magazynowania informacji zwizanej z odsyaczami wystpujcymi w dokumencie.
.idx Jeli dokument zawiera skorowidz, to w tym pliku LATEX zapisze
wszystkie jego hasa. Do przetworzenia tego pliku suy program makeindex (lub plmindex, w przypadku jzyka polskiego). Wicej o tworzeniu skorowidzw przeczytasz w punkcie 4.3 na stronie 69.
.ind Przetworzony plik .idx, gotowy do wczenia do dokumentu w nastpnym cyklu kompilacji.
.ilg Sprawozdanie z tego, co zrobi program makeindex.
11

W nowych wersjach systemu, LATEX potrafi take generowa dokumenty bezporednio


w formacie pdf. Wicej informacji na ten temat zawiera punkt 4.7.

13

14

Podstawy, ktre warto zna

1.8. Due dokumenty


Pracujc nad duym dokumentem, wygodnie jest podzieli plik rdowy
na mniejsze czci. W LATEXu mamy dwie instrukcje uatwiajce prac z tak
podzielonymi dokumentami. Pierwsz z nich jest:
\include{plik }

Wcza ona do dokumentu zawarto innego pliku. Przed przetworzeniem,


a take po przetworzeniu zawartoci wczanego pliku LATEX rozpoczyna
now stron.
Drugiej instrukcji uywa si w preambule. Pozwala ona wstawia do
tekstu jedynie wybrane pliki.
\includeonly{plik1,plik2,...}

Spord instrukcji \include zostan wykonane tylko te, ktre dotycz plikw wymienionych w argumencie \includeonly. Uwaga: w wykazie plikw
nie wolno uywa odstpw; poszczeglne pliki nalezy oddziela wycznie
przecinkiem!
Polecenie \include rozpoczyna skad doczanego tekstu od nowej
strony. W poczeniu z poleceniem \includeonly w preambule instrukcja
\include umoliwia przetwarzanie wybranych plikw bez zmiany miejsc amania poszczeglnych stron i z zachowaniem prawidowej numeracji stron,
rozdziaw, tabel itp. Czasami jednak rozpoczynanie skadu od nowej strony
nie jest podane. W takiej sytuacji zamiast \include naley posuy si
instrukcj:
\input{plik }

Wstawia ona zawarto podanego pliku ju bez adnych dodatkowych efektw.


Argument polece \input i \include moe zawiera pen ciek do
pliku, ale w imi wygody i przenonoci nie naley uywa cieek bezwzgldnych. Na przykad:
\include{C:\Documents and Settings\elka\Moje dokumenty\r2.tex}
jest koszmarnym bdem w wikszoci dystrybucji LATEXa. Nawet jeeli
nasz LATEX wie, co oznacza specyficzny dla MS Windows zapis C:\, oraz
poradzi sobie z odstpami w nazwach katalogw i ze znakami \ (ktre w tym
wypadku nie s pocztkiem adnego polecenia), to taki dokument przesany
komu, kto bdzie go kompilowa w systemie Linux, sprawi mu mnstwo
problemw. Pamitajmy: bez wzgldu na to, jakiego systemu operacyjnego
uywamy, katalogi powinnimy oddziela znakiem /.

Rozdzia 2

Skadanie tekstu
Po lekturze poprzedniego rozdziau znasz ju podstawowe pojcia zwizane z systemem LATEX 2 . W tym rozdziale Twoja wiedza wzbogaci si o informacje niezbdne
do tworzenia prawdziwych dokumentw.

2.1. Struktura tekstu i jzyka


Hanspeter Schmid <hanspi@schmid-werren.ch>

Gwnym zadaniem sowa pisanego jest przekaz myli, informacji lub wiedzy. Nadanie zapisowi odpowiedniej struktury pomaga czytelnikowi lepiej
zrozumie przekazywane treci. Skad typograficzny moe czytelnikowi t
logiczn i semantyczn struktur tekstu przybliy.
LATEX tym si rni od innych systemw skadu, e do zoenia tekstu
wystarcza mu znajomo logicznej i semantycznej struktury tekstu. Posta
typograficzna jest wyprowadzana na podstawie regu zawartych w klasie
dokumentu i plikach z makroinstrukcjami.
Najwaniejsz jednostk podziau tekstu w LATEXu (a take w typografii) jest akapit. Jest to jednostka podziau gwnie dlatego, e wedug
wszelkich kanonw sztuki typograficznej tre akapitu powinna by powicona jednej spjnej myli lub pojciu. Tak wic, gdy zaczyna si nowa myl,
powinien si zacz nowy akapit. Kontynuacja dotychczasowej myli w nowym akapicie jest bdem. Niezgodne z reguami sztuki jest te pojawienie
si w tym samym akapicie cakowicie nowej myli. W nastpnym punkcie
omwimy instrukcje nakazujce LATEXowi zamanie linii bez rozpoczynania
nowego akapitu, na przykad poleceniem \\, a take sposb rozpoczcia nowego akapitu, na przykad przez umieszczenie w kodzie rdowym pustej
linii.
Wikszo ludzi cakowicie lekceway znaczenie waciwej organizacji
akapitw. Co wicej, wiele osb nawet nie zdaje sobie sprawy, czym akapit naprawd jest, i (szczeglnie w LATEXu) koczy akapit, nawet o tym
nie wiedzc. Bd taki atwo popeni zwaszcza w tekcie z rwnaniami.

16

Skadanie tekstu

Zobaczmy, dlaczego w poniszych przykadach w jednej z takich sytuacji


naley przej do nowego akapitu, a w innej nie. Czytelnik, ktry nie zna
jeszcze wszystkich polece uytych w tych przykadach, powinien dokadnie przeczyta ten i nastpny rozdzia, a nastpnie wrci do tego punktu
i przeczyta go jeszcze raz.
% Przykad 1
\ldots Synne rwnanie Einsteina
\begin{equation}
e = m \cdot c^2 \; ,
\end{equation}
jest najbardziej znanym, ale te
najmniej rozumianym rwnaniem w~fizyce.
% Przykad 2
\ldots ktrego wynikiem jest prdowe prawo Kirchhoffa:
\begin{equation}
\sum_{k=1}{n} I_k = 0 \; .
\end{equation}
Napiciowe prawo Kirchhoffa ma za swj pocztek w\ldots
% Przykad 3
\ldots co ma okrelone zalety.
\begin{equation}
I_D = I_F - I_R
\end{equation}
jest rdzeniem innego modelu tranzystora. \ldots
Mniejsz od akapitu jednostk podziau tekstu jest zdanie. W tekstach
angielskojzycznych odstp po kropce koczcej zdanie jest wikszy od
odstpu po kropce oznaczajcej skrt. Zalenie od kontekstu LATEX stara
si uy krtszego lub duszego odstpu. W razie pomyek z jego strony
powinnimy mu wskaza nasze intencje. Jak to zrobi, wyjaniamy w dalszej
czci tego rozdziau.
Waciwa organizacja tekstu dotyczy nawet fragmentw zda. Wiele
jzykw ma bardzo skomplikowan interpunkcj, ale w wikszoci wypadkw
(wliczajc angielski i niemiecki) stawiajc przecinek w okrelonym miejscu
w zdaniu, nie popenimy na og bdu, pamitajc o zasadzie, e przecinek
oznacza krtk przerw w wypowiedzi. Dlatego jeli nie jestemy pewni,
gdzie w zdaniu naley go postawi przeczytajmy zdanie na gos i postawmy
przecinki wszdzie tam, gdzie zrobilimy krtk przerw na wdech. Ale
nie sugerujmy si wycznie tym! Jeli w danym miejscu przecinek nie
wyglda najlepiej, to go usumy; jeli w innym miejscu odczuwamy potrzeb

2.2. Skadanie akapitw i amanie stron

wzicia powietrza do puc (lub zrobienia krtkiej przerwy), to postawmy


tam przecinek. A najlepiej w celu rozwiania wtpliwoci sign do sownika
ortograficzno-interpunkcyjnego, ktry zreszt zawsze warto mie pod rk.
I na koniec: akapit nie jest najwiksz logiczn jednostk podziau
tekstu. Mona jeszcze wspomnie o rozdziaach, punktach, podpunktach
itd. Jednake od strony typograficznej ju same nazwy polece w rodzaju
\section{Struktura tekstu i jzyka} s na tyle oczywiste (dla znajcych jzyk angielski), e sposb ich uycia jest atwo zrozumiay.

2.2. Skadanie akapitw i amanie stron


2.2.1. Skadanie akapitw
Ksiki najczciej skada si tak, e wszystkie wiersze w akapitach s tej samej dugoci. Dc do optymalnej prezentacji akapitu, LATEX ustala miejsca
zama linii oraz wielko odstpw midzy sowami. W razie potrzeby przenosi wyrazy, ktrych nie jest w stanie zmieci w wierszu. Sposb skadania
akapitw zaley od uytej klasy dokumentu. Najczciej pierwszy wiersz akapitu jest wcity, a midzy akapitami nie ma dodatkowych odstpw. Wicej
na ten temat mona przeczyta w punkcie 6.3.2.
Zgodnie z anglo-amerykaskimi zwyczajami typograficznymi LATEX nie
wstawia wcicia akapitowego bezporednio po tytuach rozdziaw, punktw
itd. Polskie zwyczaje nakazuj jednak rozpoczynanie take pocztkowych
akapitw wciciem. Efekt ten mona osign przez doczenie w preambule
pakietu indentfirst. W niniejszym tumaczeniu nie stosujemy wci w pocztkowych akapitach, gdy akurat pod tym wzgldem bardziej nam si
podobaj zwyczaje anglosaskie.
Czasami przydaje si instrukcja nakazujca LATEXowi zamanie linii.
Polecenie:
\\ lub \newline

rozpoczyna now lini bez rozpoczynania nowego akapitu.


Natomiast instrukcja:
\\*

zakazuje dodatkowo zamania strony (w miejscu zamania linii). Z kolei


instrukcja:
\newpage

rozpoczyna now stron.


Instrukcje:
\linebreak[n], \nolinebreak[n], \pagebreak[n] oraz \nopagebreak[n]

17

18

Skadanie tekstu

oznaczaj, odpowiednio: zacht do zamania wiersza, niezgod na zamanie


wiersza, zacht do zamania strony i niezgod na zamanie strony (w miejscu ich wystpienia w dokumencie). Opcjonalny argument n, o dopuszczalnej
wartoci od 0 do 4, okrela stopie tej zachty (niezgody). Domylna warto 4 to bezwarunkowy zakaz lub nakaz zamania linii/strony. Warto
mniejsza od 4 pozostawia LATEX-owi swobod zignorowania instrukcji, jeeli skad otrzymany w jej rezultacie byby kiepskiej jakoci.
Polece z grupy break nie naley myli z tymi z grupy new. Mimo otrzymania polecenia typu break LATEX stara si wyrwna wiersz do prawego
marginesu czy te wypeni stron do caej jej wysokoci. Nietrudno zgadn, jakiej instrukcji naley uy, gdy naprawd zaley nam na rozpoczciu
nowego wiersza1 .
Jeeli w wierszu zakoczonym instrukcj \newline jest zbyt mao tekstu,
to LATEX nie wyrwna tego wiersza do prawego marginesu, lecz wstawi po
tekcie odpowiedni odstp. Jeeli zamiast \newline uyjemy \linebreak, to
LATEX postara si wyrwna zawarto koczonej linijki do prawego marginesu. Zbyt mae wypenienie wiersza tekstem zmusi LATEXa do umieszczenia
midzy wyrazami zbyt duych odstpw. Efekt ten LATEX sygnalizuje podczas przetwarzania dokumentu, wywietlajc komunikat:
Underfull \hbox (badness 10000) in paragraph at lines 4--5
Liczba po sowie badness w tym komunikacie wskazuje, jak bardzo LATEXowi
nie podoba si zoony wiersz. Tutaj jest to maksymalna negatywna ocena
10000. Liczby na kocu komunikatu to numery pierwszej i ostatniej linii
akapitu, w ktrym LATEX musia zoy wiersz z nadmiernymi odstpami
midzy wyrazami. Chocia wielu uytkownikw LATEXa nie zwraca uwagi na
podobne ostrzeenia, warto sobie zdawa spraw, co one oznaczaj.
Oprcz wyej wymienionych istniej jeszcze w LATEXu instrukcje:
\clearpage, \cleardoublepage

Obydwie rozpoczynaj skad nowej strony. Instrukcja \cleardoublepage


dziaa tak jak \clearpage, z tym e rozpoczynana strona ma numer nieparzysty; w razie potrzeby tworzona jest strona pusta (wakatowa)2 . W trybie
skadu dwuamowego (opcja twocolumn) instrukcja \newpage koczy am,
natomiast \clearpage oraz \cleardoublepage kocz stron, pozostawiajc w razie potrzeby pusty prawy am.
Jeeli na stronie zakoczonej instrukcj \newpage albo \clearpage jest
zbyt mao tekstu, to LATEX wstawia odpowiedni odstp u dou strony, wypeniajcy pozosta cze kolumny. W wypadku polecenia \pagebreak
LATEX wyrwnuje zawarto kolumny do dolnego brzegu, wstawiajc odstpy
1

Zagadka ta jest atwa dla znajcych jzyk angielski jest to polecenie \newline.
Mwic precyzyjnie zaley to od stanu opcji openright/openany, w szczeglnoci
w klasie article \cleardoublepage domylnie dziaa tak jak \clearpage.
2

2.2. Skadanie akapitw i amanie stron

pomidzy akapitami lub innymi elementami na stronie. Jeeli wstawione odstpy okazuj si za due, co zdarza si do czsto, to podczas przetwarzania
dokumentu generowane jest odpowiednie ostrzeenie, na przykad:
Underfull \vbox (badness 10000) has occurred
while \output is active [7]
W powyszym komunikacie (z uwagi na wsko szpalty przeamanym na
dwie linijki) liczba po sowie badness wskazuje, jak bardzo LATEXowi nie podoba si zoona strona. Tutaj jest to 10000 maksymalna w TEXu ujemna
ocena jakoci skadu. Liczba w nawiasach prostoktnych na kocu komunikatu oznacza numer strony, podczas skadania ktrej wystpi problem.
LATEX zawsze stara si znale najlepszy podzia akapitu na wiersze.
Kiedy nie potrafi znale podziau, ktry spenia jego wysokie wymagania
jakociowe, wtedy niektre wyrazy wystaj na prawy margines. Sytuacja
taka jest sygnalizowana komunikatem podobnym do nastpujcego:
Overfull \hbox (5.5452pt too wide) in paragraph at lines 79--83
W komunikacie tym liczba w nawiasie okrgym oznacza, e pewien fragment
tekstu wystaje o 5,5452 punktw drukarskich na prawy margines. Problem
wystpi w akapicie, ktry w pliku rdowym jest w wierszach od 79 do 83.
Podobne ostrzeenia pojawiaj si najczciej wwczas, gdy LATEX nie potrafi
przenie wyrazw w akapicie zgodnie z zadanymi wzorcami przenoszenia
tak, by nie popsu jakoci skadu. Komunikat typu overfull hbox nie wystarcza na og do dokadnego ustalenia przyczyny jego wystpienia. Mona
wtedy jako argumentu polecenia \documentclass uy opcji draft, na skutek czego LATEX oznaczy wystajce wiersze ma czarn sztabk na prawym
marginesie szpalty.
Deklaracja \sloppy nakazuje LATEXowi nieco obniy jego domylnie wysokie standardy. Zapobiega to w wikszoci wypadkw wystpowaniu
zbyt dugich linijek, kosztem jednak zwikszenia odstpw midzywyrazowych, czyli pogorszenia jakoci skadu. Mog si pojawia ostrzeenia typu
underfull hbox, co w wikszoci wypadkw (zwaszcza gdy podana miara
kiepskoci jest powyej 5000) oznacza, e skad nie jest zbyt udany. Instrukcja \fussy dziaa w odwrotnym kierunku, to znaczy przywraca domylne,
wysokie standardy LATEXa.

2.2.2. Przenoszenie wyrazw


W razie potrzeby LATEX przenosi (dzieli) wyrazy. Jeeli algorytm podziau
przenis jaki wyraz bdnie, to waciwe miejsca przenoszenia mona zada
instrukcj:
\hyphenation{sowo1 sowo2 sowo3...}

Sowa z listy argumentw mona dzieli wycznie w miejscach oznaczonych


znakiem -. Instrukcji tej wolno uy jedynie w preambule dokumentu,

19

20

Skadanie tekstu

a wyrazy-argumenty mog zawiera (oprcz znaku -) wycznie litery. Nie


ma natomiast znaczenia, czy w tych wyrazach uywa si liter wielkich czy
maych. Instrukcja \hyphenation z przykadu poniej pozwala podzieli
sowo wier-li-trwka jedynie w dwch zaznaczonych miejscach i w ogle
zabrania dzieli sowa szczypce. Wyrazy z listy argumentw nie mog
zawiera adnych znakw specjalnych ani symboli. Przykad:
\hyphenation{wier-li-trwka szczypce}
W jzykach fleksyjnych, do jakich naley polski, instrukcja \hyphenation
jest duo mniej przydatna ni w angielskim. Aby dany wyraz zawsze by
dobrze przenoszony, naleaoby wypisa wszystkie jego formy. Opracowane
przez Hann Koodziejsk, Bogusawa L. Jackowskiego i Marka Ryko
wzorce przenoszenia wyrazw dla jzyka polskiego sprawdzaj si w tak
znacznej wikszoci wypadkw, e praktycznie nie ma potrzeby stosowania
tej konkretnej instrukcji. Co wicej, prba uycia polecenia \hyphenation
w wypadku stosowania rwnie pakietu inputenc (por. punkt 2.5) zakoczy
si bdem w czasie przetwarzania dokumentu.
Instrukcja \- wskazuje, w ktrych miejscach wolno LATEXowi przenie
wyraz do nowego wiersza; LATEX nie podzieli tego wyrazu w adnym oprcz
wskazanych miejsc. Instrukcja odnosi si do konkretnego wystpienia sowa
w dokumencie i nie wpywa na miejsca podziau w innych jego wystpieniach. Przydaje si ona szczeglnie w wypadku wyrazw ze znakami
specjalnymi, na przykad akcentowanymi, gdy automatycznie LATEX dzieli
jedynie wyrazy zoone z samych liter.
Nie\-bie\-sko\-bia\-o\-zie\-lo\-%
no\-nie\-bie\-ski

Niebieskobiaozielononiebieski

Tekst bdcy argumentem polecenia:


\mbox{tekst}

nigdy nie zostanie przeniesiony.


Numer mojego telefonu wkrtce
si zmieni na \mbox{0116 291 2319}.
Parametr \mbox{\emph{nazwa}} to
nazwa pliku.

Numer mojego telefonu wkrtce si zmieni na


0116 291 2319.
Parametr nazwa to nazwa pliku.

Polecenie \fbox jest podobne do \mbox, z tym e dodatkowo dookoa


argumentu rysuje ramk (por. punkt 6.6).

2.3. Kilka gotowych oznacze napisw


W przykadach na poprzednich stronach pojawio si kilka prostych instrukcji LATEXa do skadania krtkich napisw.

2.4. Znaki specjalne i symbole

Instrukcja
\today
\TeX
\LaTeX
\LaTeXe

Przykad
15 stycznia 2007
TEX
LATEX
LATEX 2

21

Opis
Bieca data
Twj ulubiony system skadu
Nazwa tej gry
Obecne jej wcielenie

2.4. Znaki specjalne i symbole


2.4.1. Cudzysowy
Znaku cudzysowu " uywa si inaczej ni na maszynie do pisania. W publikacjach drukowanych rnie oznacza si pocztek i koniec cudzysowu.
Wystpuj take rnice w sposobach oznaczania cudzysoww w rnych
jzykach. Dwa apostrofy otwieraj, a dwa apostrofy zamykaj LATEXowy
cudzysw wedug regu jzyka angielskiego:
Please press the x key.

Please press the x key.

W jzyku polskim cudzysw otwierajcy oznacza si dwoma przecinkami ,, , natomiast zamykajcy dwoma apostrofami 3 . Gdy zachodzi
konieczno uycia cudzysowu w tekcie ju objtym cudzysowem, to stosuje si cudzysowy francuskie, oznaczane w pliku rdowym znakami,
odpowiednio, mniejszoci << i wikszoci >>.
,,Przechod tylko po <<zebrach>>!

Przechod tylko po zebrach!

2.4.2. Pauzy i mylniki


Zwyczajne maszyny do pisania posiadaj tylko jeden znak w ksztacie poziomej kreski -. W skadzie drukarskim wystpuj a cztery rodzaje kresek
poziomych. S to: cznik, mylnik, ppauza i minus, uywany we wzorach
matematycznych.
cznik (dywiz) jest najkrtsz z kresek. Stosuje si go do dzielenia i przenoszenia wyrazw oraz do czenia wyrazw wieloczonowych
(np. niebiesko-czarny). Zgodnie z polskimi reguami wyraz wieloczonowy
mona podzieli i przenie albo w obrbie wyrazw skadowych, albo na
czniku. W drugim z tych przypadkw cznik naley powtrzy, to znaczy
powinien si on znale zarwno na kocu pierwszego wiersza, jak te na
pocztku drugiego. Oto moliwe miejsca podziau wyrazu niebiesko-czarny:
3

Porwnaj uwagi o tym sposobie oznaczania cudzysoww z punktu 2.5 w czci


dotyczcej fontw i ich kodowania (str. 27). Dotyczy to rwnie cudzysoww francuskich.

22

Skadanie tekstu

niebiesko-czarny

niebiesko-czarny

niebiesko-czarny

niebiesko-czarny

Standardowy LATEX nie zna polskich norm i dlatego dzieli wyrazy wieloczonowe w miejscu poczenia, bez powielania cznika. Jeeli do skadu
w jzyku polskim korzystamy z zestawu platex, to w pliku rdowym w miejsce cznika w wyrazach wieloczonowych powinnimy zastosowa instrukcj
\dywiz (np. niebiesko{\dywiz}czarny).
W pewnych sytuacjach lepiej nie dzieli wyrazw poczonych cznikiem. Jeeli na przykad mwimy o wydziale K-2, kodzie pocztowym czy
numerze telefonu, to w takich wypadkach cznik zapisujemy w pliku rdowym jako pojedyncz kresk - .
Znaku cznika uywa si rwnie do przenoszenia wyrazw. Jednak
A
w L TEXu odbywa si to automatycznie i nie wymaga rcznych ingerencji
uytkownika.
Ppauza to kreska o poow krtsza od mylnika. Stosuje si j przede
wszystkim w zapisie zakresw liczbowych, np. str. 1113, czy w latach
19601963. Przed i po ppauzie nie dodaje si odstpw. Odstpy takie
musz si pojawi w sytuacjach takich jak: 11 padziernika 13 listopada.
Ppauz zapisuje si za pomoc dwch nastpujcych po sobie minusw --.
Mylnik to dusza kreska, uywana jako znak przestankowy. Zapisujemy go za pomoc trzech nastpujcych po sobie znakw -, czyli --- .
W jzyku polskim naley przed i po mylniku umieci odstp, inaczej ni
w krajach anglosaskich, gdzie nie otacza si mylnika odstpami. Wiele osb
uwaa konstrukcj zoon z odstpu, mylnika i kolejnego odstpu za zbyt
wybijajc si w skadzie. Z tyche estetycznych powodw czsto w roli
mylnika uywa si dwukreskowej ppauzy, i takie wanie podejcie zastosowano w niniejszym tumaczeniu.
We wzorach matematycznych, czyli wewntrz trybu matematycznego,
znak minusa uzyskujemy, piszc zwyczajnie - . Przykadowo, zapis $-2$
daje w skadzie 2, podczas gdy -2 daje -2.

2.4.3. Odstpy nieamliwe


Polskie zasady typograficzne nie pozwalaj ama akapitw z pozostawianiem na kocu wierszy jednoliterowych spjnikw bd przyimkw. Przykadowo, w zdaniu Jan Kochanowski urodzi si w Czernolesie nieadnie
na kocu wiersza wygldaby przyimek w.
Odstpy, na ktrych nie wolno zama wiersza, zaznacza si w pliku
rdowym znakiem tyldy ~ zamiast zwykym odstpem. Na przykad,
aby w powyszej sytuacji zapobiec przeniesieniu skadu do nowego wiersza,
powinnimy zapisa w pliku rdowym: w~Czarnolesie.
Jest wiele sytuacji, w ktrych zwizek fragmentw zdania jest tak silny,
e wewntrz nich nie naley ama na wiersze. Nie zawsze decyzja jest tak
prosta jak w wypadku wspomnianych spjnikw. Oto gar przykadw:

2.4. Znaki specjalne i symbole

23

godz.~17.00; od~15 do 40~osb; na str.~2 napisano; rozdz.~2;


2~rozdziay; p.~Jan Nowak; p.~J.~Nowak; I~cz IX~Symfonii.
Ze wzgldu na zaleno od kontekstu obowizek decydowania o uyciu tyldy
spada na uytkownika LATEXa.

2.4.4. Tylda ()
W adresach internetowych czsto wystpuje znak tyldy. W LATEXu mona
by do jego uzyskania uy instrukcji \~, ale wynik: nie jest chyba tym,
czego oczekujemy. Lepiej zrobi tak:
http://www.rich.edu/\~{}bush \\
http://www.clever.edu/$\sim$demo

http://www.rich.edu/bush
http://www.clever.edu/demo

A jeszcze lepiej doczy do preambuy dokumentu pakiet url i korzysta


z polecenia \url{...}.

2.4.5. Oznaczenie stopni ()


Poniszy przykad ilustruje, jak w LATEXu uzyskuje si symbol stopni:
Jest $-30\,^{\circ}\mathrm{C}$.
Niedugo zaczn nadprzewodzi.

Jest 30 C. Niedugo zaczn nadprzewodzi.

Pakiet textcomp udostpnia symbol stopni take jako \textcelsius.

2.4.6. Symbol waluty euro (e)


Piszc dzi o pienidzach, nie mona si obej bez symbolu euro. Znak ten
wystpuje w wielu wspczesnych fontach. Po zaadowaniu pakietu textcomp
w preambule:
\usepackage{textcomp}

mona do uzyskania symbolu euro uy oznaczenia:


\texteuro

Jeli uywany font nie zawiera wasnego symbolu euro albo nam si on nie
podoba, to mamy dwie dodatkowe moliwoci: Pierwsz jest pakiet eurosym.
Udostpnia on oficjalny znak euro:
\usepackage[official ]{eurosym}

Jeli wolimy znak euro zgodny optycznie z fontem, to zastpmy opcj


official opcj gen.

24

Skadanie tekstu

Pakiet marvosym dostarcza wielu rnych symboli, w tym euro pod nazw
\EURtm. Jego wad jest to, e nie udostpnia wersji pochylonej i wytuszczonej euro.
Tabela 2.1: Torba pena symboli euro
lm+textcomp

\texteuro

eurosym

\euro

[gen]eurosym

\euro

marvosym

\EURtm

e
A
C
e

e
A
C
e

e
A
C
e

2.4.7. Wielokropek (. . . )
W typowym pimie maszynowym przecinek oraz kropka zajmuj tyle samo
miejsca co kady inny znak. W pimie drukarskim szeroko tych znakw jest
z reguy bardzo maa i dlatego, jeeli umiecimy je obok siebie, to odstpy
midzy nimi bd zbyt mae. Do uzyskiwania wielokropka (trzech kropek)
uywamy instrukcji \ldots. Przykad:
\ldots

Nie tak ..., lecz raczej tak:\\


Nowy Jork, Tokio, Budapeszt, \ldots

Nie tak ..., lecz raczej tak:


Nowy Jork, Tokio, Budapeszt, . . .

2.4.8. Ligatury
Ligatury (spjki) to znaki graficzne, w ktrych poczono dwie lub trzy
litery. W niektrych jzykach ligatury wystpuj jako waciwe danej ortografii znaki pisma, np. w jzyku francuskim. Wikszo ligatur tworzy si
ze wzgldw estetycznych lub zwyczajowych. LATEX zna pi nastpujcych
ligatur:
ff fi fl ffi ffl zamiast ff fi fl ffi ffl
TEX uywa ligatur automatycznie. Mona temu zapobiec, midzy znakami
tworzcymi ligatur wstawiajc instrukcj \mbox{}:
Jak lepiej: geografii czy
geograf\mbox{}ii?

Jak lepiej: geografii czy geografii?

2.5. LATEX wielojzyczny

25

2.4.9. Akcenty i znaki specjalne


W LATEXu istniej metody wstawiania znakw akcentowanych oraz spotykanych w rnych jzykach znakw specjalnych. W tabeli 2.2 zestawiono
instrukcje akcentw. Uyto ich do litery o, ale mona je rwnie stosowa
do dowolnej innej litery.
W wypadku akcentw nad literami i oraz j naley znad tych liter
usun kropk. Su do tego instrukcje \i i \j, wstawiajce do skadu
specjalne wersje liter oraz .
H\^otel, na\"\i ve, \el\eve,\\
sm\o rrebr\o d, !Se\~norita!,\\
Sch\"onbrunner Schlo\ss{}
Stra\ss e

Hotel, nave, el`eve,


smrrebrd, Se
norita!,
Schonbrunner Schlo Strae

Tabela 2.2: Akcenty i znaki specjalne


o`
-o

\o
\=o

\o
\.o

o
o

\^o
\"o

\~o

o
o.

\u o
\d o

\v o
\b o

o
oo
!

\H o
\t oo

\c o

\oe
\aa

o
o

\OE
\AA

\ae
\k{a}

\AE

\o
\i

\O
\j

\l
!

\L
?

2.5. LATEX wielojzyczny


Jeeli LATEX ma skada tekst w jzykach innych ni angielski, to zasadniczo
naley go dostosowa w trzech nastpujcych obszarach:
1. LATEX musi pozna reguy dzielenia wyrazw dla danego jzyka, co
wie si z koniecznoci stworzenia tak zwanego formatu LATEXa
z nowymi wbudowanymi we reguami. Nie jest to zbyt trudne zadanie,
ale szczegowy sposb postpowania zaley od uywanej dystrybucji.
Wicej informacji na ten temat mona znale w tej czci dokumentacji kadej dystrybucji LATEXa, ktra dotyczy instalowania systemu.
2. Wszystkie teksty generowane przez LATEXa automatycznie trzeba przystosowa do danego jzyka. Dotyczy to: tytuw rozdziaw, spisu
treci, spisu rysunkw, tabel, dat, itp. Zmiany te umoliwia pakiet
babel Johannesa Braamsa.

26

Skadanie tekstu

3. Naley wczy specyficzne dla danego jzyka reguy typograficzne. Na


przykad w jzyku francuskim kady dwukropek i wykrzyknik trzeba
poprzedzi odstpem, a w jzyku polskim po numerach w tytuach
rozdziaw i punktw stawia si kropk.
Jeeli dysponujemy dobrze skonfigurowanym LATEXem, czyli LATEXem z wygenerowanym formatem zawierajcym odpowiednie reguy przenoszenia wyrazw, to reszt zada polonizacyjnych zaatwi pakiet babel. Wystarczy
w tym celu do preambuy dokumentu wpisa instrukcj:
\usepackage{polish}
Jej ogln postaci jest:
\usepackage[lista-jzykw ]{babel}

Argument lista-jzykw to oddzielone przecinkami nazwy jzykw, ktre obsuguje zainstalowana wersja LATEXa. Ostatni na licie jest jzykiem domylnym. Do przeczenia si w treci dokumentu na inny jzyk suy polecenie:
\selectlanguage{jzyk }

Jeli uywana wersja LATEXa nie obsuguje jzyka z listy, to babel zadziaa
z wyczonym przenoszeniem wyrazw, co znacznie pogorszy jako skadu.
Pakiet babel dla kadego jzyka definiuje elementy wpisywane automatycznie przez program (np. dla jzyka polskiego Spis treci zamiast Table
of contents) oraz udostpnia polecenia uatwiajce przygotowanie dokumentw w tym jzyku.
Dla niektrych jzykw babel udostpnia specjalne instrukcje, uatwiajce wprowadzanie znakw diakrytycznych i specjalnych. Teksty w jzyku
niemieckim zawieraj na przykad sporo liter z umlautami: (
aou
). Wykorzystujc pakiet babel, mona wprowadzi liter o, wpisujc "o zamiast \"o.
W wikszoci systemw komputerowych znaki akcentowane i specjalne
(czyli znaki o kodach ascii wikszych ni 127) mona wprowadza bezporednio z klawiatury. Przykadowo, polskie znaki diakrytyczne mona
wprowadza, naciskajc klawisz prawy-Alt i jednoczenie klawisz z odpowiedni liter. LATEX radzi sobie z takimi znakami. Poczwszy od grudnia
1994 r. dystrybucje LATEXa zawieraj pakiet inputenc, pozwalajcy kodowa
znaki diakrytyczne w rnych wariantach. Przykadowo, jeli dokument jest
kodowany w standardzie iso 8859-2 (system operacyjny Unix/Linux), to
pakiet inputenc naley doczy do dokumentu w nastpujcy sposb:
\usepackage[latin2]{inputenc}
W wypadku dokumentu kodowanego w standardzie cp 1250 (system operacyjny MS Windows) powinnimy zamiast opcji latin2 wpisa cp1250. Dla
dokumentw unikodowych naley uy opcji utf8.
Chocia pakiety babel oraz inputenc umoliwiaj skad dokumentw w jzyku polskim, to nie s pozbawione wad. Kopoty mog sprawia dokumenty

2.5. LATEX wielojzyczny

o rozbudowanej strukturze, na przykad zawierajce skorowidze. Inne podejcie do sprawy jzyka polskiego w LATEXu jest przedstawione w punkcie 2.5.1.
Kodowanie znakw ma znaczenie nie tylko w pliku rdowym. Drug
stron medalu jest ukad znakw w foncie, czyli kodowanie fontu. Okrela
ono, w ktrych miejscach fontu znajduj si poszczeglne znaki. Standardowo LATEX uywa kodowania o nazwie OT1, przyjtego dla oryginalnych
TEXowych fontw Computer Modern (cm). S to fonty jedynie 128-znakowe,
nie zawieraj na przykad charakterystycznych polskich liter. Znak diakrytyczny mona w nich skonstruowa metod naoenia dwch innych: litery
i odpowiedniego akcentu. Ta metoda ma wady, bo TEX nie moe poprawnie
przenosi wyrazw zawierajcych tak zapisane znaki diakrytyczne, kiepska
jest te jako typograficzna takich diakrytykw.
Na szczcie wszystkie wspczesne dystrybucje TEXa zawieraj komplet
fontw European Computer Modern (ec). S to fonty zawierajce do 256
znakw w kodowaniu T1. Pierwszych 128 znakw fontu ec jest (prawie)
identycznych jak w odpowiadajcym mu foncie cm. Pozostae 128 znakw
to znaki diakrytyczne wystpujce w rnych jzykach europejskich, w tym
te komplet znakw niezbdnych do skadania tekstw polskich. Fonty ec
umoliwiaj poprawne przenoszenie wyrazw, znacznie lepsza jest te jako
typograficzna znakw diakrytycznych.
Polscy uytkownicy mog te korzysta z rodziny fontw pl (autorzy
B. Jackowski, M. Ryko, J. Nowacki) oraz nowszych fontw lm (autorzy
B. Jackowski i J. Nowacki). W zakresie objtym przez rodzin cm fonty
pl/lm s cakowicie z ni zgodne, a dodatkowo zawieraj wszystkie polskie
znaki diakrytyczne. Polskie diakrytyki w fontach ec s kopi odpowiednich
znakw z fontw pl, czyli ogonki wygldaj tak samo, niezalenie od tego,
z ktrej z rodzin korzystamy.
W fontach ec, pl i lm dostpne s ponadto znaki cudzysoww francuskich i polskiego otwierajcego, ktrych nie ma w fontach cm. Opisany
w punkcie 2.4.1 sposb wprowadzania tych znakw za pomoc par ,, , <<
i >> dziaa jedynie wwczas, gdy uywamy fontw ec, pl bd lm.
Aby przeczy si na fonty ec lub pl, trzeba do preambuy dokumentu
doczy pakiet fontenc:
\usepackage[T1]{fontenc} lub \usepackage[OT4]{fontenc}

Argument T1, okrelajcy kodowanie, jest odpowiedzialny za przeczenie


si na fonty ec. Podobnie Argument OT4 wcza fonty pl.
Uwaga: Powysze doczenie pakietu fontenc jest jedynie deklaracj.
Jeeli twoja dystrybucja LATEXa nie zawiera fontw, ktre chcesz wczy,
to powysze polecenia nie zostan wykonane, a LATEX przeczy si na font
domylny, zwykle nie zawierajcy polskich znakw.
Reasumujc, oto przykadowa preambua artykuu skadanego w jzyku
polskim przy wykorzystaniu pakietw babel, inputenc oraz fontenc:

27

28

Skadanie tekstu

\documenclass{article}
\usepackage[polish]{babel}
\usepackage[cp1250]{inputenc}
\usepackage[OT4]{fontenc} %% lub [T1]
Lepszy sposb polonizacji LATEXa opisano w nastpnym punkcie.
Rodzina fontw lh zawiera litery potrzebne do skadania dokumentw
w cyrylicy. Ze wzgldu na du liczb znakw w rnych pismach cyrylickich
s one zgrupowane w czterech rnych kodowaniach: T2A, T2B, T2C, i X24 .
Rodzina cb, w kodowaniu LGR, zawiera fonty do skadu greki.

2.5.1. Jzyk polski w dokumentach


Jak wspomniano w punkcie 2.5, poprawny skad w jzyku polskim wymaga
trzech rzeczy: LATEXa z wbudowanymi w format polskimi reguami przenoszenia wyrazw, fontw zawierajcych polskie znaki diakrytyczne oraz
dodatkowego pakietu obsugujcego specyficzne dla jzyka polskiego reguy
typograficzne. W tym punkcie zakadamy, e udao ci si skonfigurowa
LATEXa pod ktem pierwszych dwch punktw, tj. wygenerowania formatu
i zainstalowania fontw pl lub ec, i koncentrujemy si na szczegowym
opisie ostatniego aspektu polonizacji.
W kadej dystrybucji LATEXa znajduje si wspomniany w punkcie 2.5
pakiet babel. Mimo wystpujcych w nim niedocigni mona go poleci,
szczeglnie pocztkujcym. Bardziej wymagajcy uytkownicy piszcy po
polsku powinni korzysta z opisanego dalej zestawu polonizacyjnego platex.
W wypadku jzyka polskiego wiele kopotw sprawia kodowanie znakw
diakrytycznych. Wynika to przede wszystkim z braku standardu: rne
platformy systemowe promuj w tym zakresie rne rozwizania5 . Mona
wyrni dwa sposoby zapisu diakrytykw w LATEXu: polecenia standardowe
(opisane w punkcie 2.4.9 oraz poniej) i notacj bezporedni, posugujc
si znakami o kodach wikszych od 1276 .
Standardowe polecenia akcentowe LATEXa umoliwiaj zapis wszystkich
polskich znakw diakrytycznych w nastpujcej postaci7 :
4

List jzykw obsugiwanych w tych kodowaniach mona znale w [26].


Lekarstwem na t bolczk moe by kodowanie wielobajtowe, tj. standard Unicode
(utf). Wprawdzie LATEX potrafi przetwarza dokumenty unikodowe jedynie w ograniczonym zakresie, ale jest on wystarczajcy dla tekstw w jzykach europejskich. Specjalna
wersja TEXa, XeTeX autorstwa Jonathana Kew, potrafi przetwarza dokumenty zakodowane w unikodzie, a take generowa skad z uyciem unikodowych fontw OpenType.
6
Jest jeszcze trzeci sposb: tak zwana notacja prefiksowa (/a , /n , /S
itp.). Metoda ta wysza ju w zasadzie z uytku, gdy powszechnie dostpna jest metoda
bezporedniego wprowadzania znakw z polskimi ogonkami z klawiatury.
7
Z notacj t wie si jednak pewien problem: otoczenie tabbing zmienia lokalnie
definicj kilku makr, w tym \. Dlatego w jego obrbie do uzyskiwania znakw z akcentem
acute trzeba uywa notacji typu \ao. Konsekwencj jest to, e zarwno w implementacji
notacji prefiksowej, jak i stron kodowych pakietu inputenc trzeba si do akcentu acute
dostawa nieco naokoo.
5

2.5. LATEX wielojzyczny

\k{a} \c \k{e} \l{} \n \o \s


\z \.z \k{A} \C \k{E} \L{} \N
\O \S \Z \.Z

29

Posugiwanie si powyszymi poleceniami do pisania tekstw po polsku


jest uciliwe, ale przydaje si na przykad do wstawienia niewielkich fragmentw do dokumentu, ktry bdzie przetwarzany przez kogo, kto jzyka
polskiego nie zna i nie ma dobrze skonfigurowanej pod tym ktem instalacji
(np. polskie wstawki w artykule konferencyjnym pisanym po angielsku).
Bezporednie wprowadzanie polskich znakw umoliwia mechanizm przekodowywania, uruchamiany przez umieszczenie komentarza strukturalnego
w pierwszym wierszu pliku8 :
%& --translate-file=cp1250pl
Wpis taki bdzie poprawny w wypadku redagowania plikw w systemie
ms Windows i stosowania domylnego w nim kodowania cp 1250. W wypadku systemu Unix/Linux naley zamiast cp1250pl wpisa il2-pl (przy
zaoeniu, e posugujemy si kodowaniem iso 8859-2).
Komentarz strukturalny jest alternatyw dla pakietu inputenc, opisanego
w punkcie 2.59 Mechanizm komentarza strukturalnego nie umoliwia poprawnego przetwarzania dokumentw unikodowych. Jeeli upierasz si przy
unikodzie to pozostaje ci tylko pakiet inputenc.
Zamiast pakietu babel mona zastosowa pakiet polski z zestawu platex
(autorzy Mariusz Olko i Marcin Woliski). Jego niewtpliw zalet jest
staranniejsza polonizacja, np. pakiet polski domylnie przecza si na fonty
pl bez potrzeby doczania pakietu fontenc. W wypadku przejcia z pakietu
babel na polski dokumenty nie wymagaj modyfikacji, oprcz oczywistej
wymiany nazwy adowanego pakietu w preambule.
Pakiet polski doczamy w preambule dokumentu poleceniem:
\usepackage[opcje]{polski}

Lista waniejszych opcji obejmuje:


OT4 wybranie kodowania OT4 fontw, co w praktyce oznacza skad fontami pl;
T1 wybranie kodowania T1 fontw, co oznacza skad fontami ec;
OT1 wybranie kodowania OT1 fontw, co oznacza skad fontami cm (niezalecane);
plmath wczenie polskich oznacze dla standardowych polece trygonometrycznych oraz symboli relacji mniejszy-lub-rwny i wikszy-lub-rwny (zalecane);
8
Komentarz ten naley umieci w pierwszym wierszu pliku, czyli jeszcze przed wierszem z \documentclass, a znak % musi by pierwszym znakiem tego wiersza.
9
Oznacza to, e jednoczesne uycie komentarza strukturalnego translate-file i doczanie pakietu inputenc jest bdem

30

Skadanie tekstu

nomathsymbols blokada zmiany znaczenia standardowych polece trygonometrycznych oraz symboli relacji mniejszy-lub-rwny i wikszy-lub-rwny (por. punkt 3.10, str. 59);
MeX tryb penej polonizacji (zalecane).
Jeeli opcj ukadu kodowania w foncie pominito, to pakiet polski uywa
fontw pl (w wypadku ich braku LATEX bdzie sygnalizowa bdy). Dotyczy
to zarwno fontw tekstowych, jak i zawierajcych znaki matematyczne.
W instalacji zawierajcej fonty pl doczenie pakietu polski bez opcji jest
rwnowane poleceniu:
\usepackage[OT4,plmath]{polski}
Polecenie \selecthyphenation pozwala przeczy si na dany zestaw wzorcw dzielenia wyrazw. Jest to odpowiednik polecenia \selectlanguage
z pakietu babel. Argumentem jest nazwa jzyka.
Polonizacyjnym uzupenieniem pakietu polski jest zestaw klas Marcina
Woliskiego mwart, mwrep i mwbook, dostpny pod adresem http://www.
mimuw.edu.pl/~wolinski/mwcls.html. W klasach tych zostay uwzgldnione m.in. takie zwyczaje jak: umieszczanie kropek po numerach rdtytuw, sposb formatowania przypisw oraz pagin, zakaz przenoszenia sw
w rdtytuach, reguy umieszczania/pomijania paginacji. Uzyskano to za
cen znacznej ingerencji w sposb dziaania klas standardowych, czego skutkiem jest niekompatybilno z czci pakietw LATEXa.
Oto przykadowa preambua artykuu skadanego w klasie mwart:
%& --translate-file=cp1250pl
\documentclass{mwart}
\usepackage[MeX]{polski}
\begin{document} ...
Jest to zalecany sposb rozpoczynania dokumentw w jzyku polskim.
Warto z niego korzysta, zaopatrzywszy si w niezbdne elementy: fonty
pl, pakiet polski i klasy Marcina Woliskiego. W standardowej dystrybucji
LATEXa, w ktrej na og znajduj si obecnie fonty pl, zadziaa natomiast
taka preambua:
%& --translate-file=cp1250pl
\documentclass{article}
\usepackage{polski}

2.6. Odstpy midzy wyrazami


Aby wyrwna prawy margines, LATEX wstawia midzy sowami odstpy
rnej wielkoci. Odstp wstawiany na kocu zdania jest troch wikszy,
poniewa tak skada si ksiki w krajach anglosaskich. LATEX zakada, e
zdania mog si koczy kropk, znakiem zapytania lub wykrzyknikiem.

2.7. Tytuy, rdtytuy i punkty

31

Jeeli bezporednio przed kropk znajduje si dua litera, to LATEX nie


traktuje takiego miejsca jako koca zdania, lecz jako kropk po skrcie.
Wyjtki od powyszych zasad trzeba wyranie zaznaczy w tekcie. Znak
\ poprzedzajcy spacj oznacza odstp normalnej wielkoci. Tylda ~ rwnie
wstawia taki odstp, z tym e LATEXowi nie wolno na nim zama wiersza.
Umieszczenie instrukcji \@ przed kropk jest dla LATEXa wskazwk, e ta
kropka koczy zdanie, nawet jeli nastpuje po duej literze.
Pan~Kowalski ucieszy si\\
na jej widok (zob.~Rys.~5).\\
Podoba mi si JAVA\@. A~tobie?

Pan Kowalski ucieszy si


na jej widok (zob. Rys. 5).
Podoba mi si JAVA. A tobie?

Jak wspomniano, wstawianie wikszych odstpw na kocu zda to zwyczaj


anglosaski. W Europie kontynentalnej tradycyjnie si tego nie robi. Wstawianie wikszych odstpw na kocu zda mona wyczy poleceniem:
\frenchspacing

Pakiet polski domylnie wykonuje instrukcj \frenchspacing za nas,


czyli wcza odstpy kontynentalne.

2.7. Tytuy, rdtytuy i punkty


Podzielenie dokumentu na rozdziay, punkty, podpunkty itd. pomaga czytelnikom lepiej orientowa si w tekcie. Do dzielenia dokumentu na hierarchiczne czci su odpowiednie instrukcje LATEXowe. Do autora naley
uywanie tych polece w odpowiednim porzdku.
W klasie article mamy do dyspozycji nastpujce instrukcje podziau
hierarchicznego:
\section{...}
\paragraph{...}
\subsection{...}
\subparagraph{...}
\subsubsection{...}
\appendix
W klasach report (raport) i book (ksika) mog wystpowa rozdziay:
\chapter{...}
Jeli raport bd ksik trzeba podzieli na czci bez naruszania numeracji
punktw i rozdziaw, to mona uy polecenia:
\part{...}

Poniewa w klasie article najwysz jednostk w hierarchii podziau


jest \section (czyli punkt), atwo tworzy si ksiki (klasa book), w ktrych
rozdziaami s poszczeglne artykuy. LATEX dobierze za nas odpowiednie
odstpy midzy rozdziaami oraz wielko i krj pisma w rdtytuach.
Dwie z wymienionych instrukcji dziaaj nieco inaczej ni pozostae:

32

Skadanie tekstu

instrukcja \part nie ma wpywu na numeracj rozdziaw;


instrukcja \appendix nie ma argumentw. Jest to deklaracja zmieniajca sposb numerowania z cyfr na litery. Dotyczy to rozdziaw
w klasach book i report, a punktw w klasie article.
Argumentu instrukcji podziau dokumentu LATEX uywa do przygotowania
spisu treci. Instrukcja:
\tableofcontents

wstawia spis treci w miejscu jej uycia. Aby w spisie treci otrzyma poprawne numery stron, trzeba dokument przetworzy (zlatechowa) dwukrotnie. Czasami niezbdna jest nawet trzecia kompilacja. Kolejny przebieg
jest potrzebny, gdy pod koniec przetwarzania dokumentu LATEX pokazuje
komunikat:
LaTeX Warning: Label(s) may have changed.
Rerun to get cross-references right.
LATEX przetwarza dokument strona po stronie i w pojedynczym przebiegu nie moe wstawi spisu treci na pocztku dokumentu, poniewa nie
jest jeszcze znana jego tre ani numeracja stron. Podobnie ma si sprawa
ze spisami tabel czy rysunkw. Rozwizanie tego problemu jest tyle proste
co skuteczne. Podczas przetwarzania dokumentu LATEX zapisuje odpowiednie informacje do plikw pomocniczych w celu ich wykorzystania podczas
kolejnych przebiegw.
Przeznaczenie danego pliku pomocniczego jest sygnalizowane przez rozszerzenie jego nazwy. I tak: plik o rozszerzeniu .toc zawiera spis treci,
plik .lot spis tabel, plik .lof spis rysunkw, .aux informacje o odsyaczach wewntrz dokumentu (odsyacze omawiamy w punkcie 2.8). Peniejszy
wykaz nazw plikw LATEXowych podano w punkcie 1.7 na stronie 12.
Wymienione wyej instrukcje podziau hierarchicznego posiadaj take
wersje z gwiazdk. Nazwa instrukcji w wersji z gwiazdk skada si
z normalnej nazwy, po ktrej wystpuje znak *. W wyniku dziaania
takiej instrukcji tytu rozdziau lub punktu zostanie umieszczony w dokumencie, ale nie w spisie treci; tytu nie zostanie te objty numeracj. Przykadowo, wersj z gwiazdk instrukcji \section{Pomoc} jest
\section*{Pomoc}.
Zwyczajem angielskim jest nieumieszczanie nienumerowanych rdtytuw w spisie treci. Polscy redaktorzy czsto si domagaj, by na przykad Wstp by rdtytuem nienumerowanym, a jednoczenie wystpowa
w spisie. Ten problem rozwizujemy za pomoc polecenia:
\addcontentsline{spis}{poziom}{rdtytu }

gdzie: spis to rozszerzenie nazwy pliku, w ktrym ma zosta zapisana informacja, poziom to chapter, section bd inna nazwa polecenia hierarchicznego, a rdtytu to sam rdtytu. Przykad:

2.7. Tytuy, rdtytuy i punkty

\chapter*{Wstp}
\addcontentsline{toc}{chapter}{Wstp}
Najczciej hasa w spisie treci pokrywaj si z tytuami rozdziaw
czy punktw. Czasami jednak nie jest to podane, na przykad wwczas,
gdy tekst hasa jest zbyt dugi. W takich wypadkach haso do spisu treci
mona poda jako opcjonalny argument instrukcji podziau hierarchicznego,
na przykad tak:
\chapter[Krtki i~ekscytujcy rozdzia]{To jest
bardzo dugi i~wyjtkowo nudny rozdzia}
W wyniku wykonania tej instrukcji w spisie treci pojawi si Krtki i ekscytujcy rozdzia, natomiast w tytule rozdziau To jest bardzo dugi
i wyjtkowo nudny rozdzia.
LATEX skada cz tytuow dokumentu, napotkawszy instrukcj:
\maketitle

Naley j umieci po \begin{document}, czyli nie w preambule.


Zawarto czci tytuowej ustalaj polecenia:
\title{...}, \author{...} oraz opcjonalnie \date{...}

Naley je umieci w preambule. Jeeli dokument ma kilku autorw, to ich


nazwiska i imiona rozdzielamy instrukcj \and. Sposb uycia powyszych
instrukcji demonstruje rysunek 1.2 ze strony 8.
W LATEX 2 istniej trzy dodatkowe instrukcje dotyczce struktury dokumentu, dostpne jednak wycznie w klasie book. Oto ich nazwy, sposb
uycia i przeznaczenie:
\frontmatter powinna by pierwsz instrukcj w treci dokumentu, czyli
powinna wystpi tu po \begin{document}. Wcza ona rzymski
zapis numerw stron, wyczajc jednoczenie numerowanie punktw
podziau. To tak, jakby si uywao instrukcji gwiazdkowanych,
w rodzaju \chapter*{Preface}. Punkty podziau trafi jednak do
spisu treci.
\mainmatter naley umieci tu przed pierwszym rozdziaem ksiki. Przecza ona sposb oznaczania numerw stron na arabski, zerujc zarazem licznik stron.
\backmatter powinna wystpi przed ostatnimi fragmentami ksiki, takim jak spis literatury albo skorowidz.
Powysze instrukcje przydaj si do podzielenia ksiki na cz wstpn
(obejmujc tytulatur, spisy treci, tabel, wstpy itd.), gwn i zakoczenie (zaczniki, skorowidze, kolofon itd.). W czci wstpnej tytuy rozdziaw s skadane mniejszym stopniem pisma (czego naley oczekiwa),
a numery stron s w notacji rzymskiej (co raczej odbiega od polskich zwyczajw typograficznych).

33

34

Skadanie tekstu

2.8. Odsyacze
Ksiki, raporty i artykuy czsto zawieraj odsyacze do rysunkw, tabel
i innych fragmentw tekstu. Z odsyaczami zwizane s w LATEXu nastpujce trzy instrukcje:
\label{etykieta}, \ref{etykieta} i \pageref{etykieta}

Argument etykieta jest cigiem liter, cyfr lub znakw interpunkcyjnych. Nazwy etykiet ustala sam autor. LATEX zamienia \ref{etykieta} na numer
tego rozdziau, punktu, rysunku, tabeli czy te rwnania matematycznego,
bezporednio za ktrym umieszczona zostaa instrukcja \label zawierajca
identyczn etykiet. Instrukcja \pageref{etykieta} dziaa identycznie jak
\ref, z tym e wstawia numer strony, na ktrej znajduje si element oznaczony etykiet10 . Oto przykad:
Odsyacz do tego punktu
\label{sec:this} wyglda tak:
,,patrz punkt~\ref{sec:this} na
stronie~\pageref{sec:this}.

Odsyacz do tego punktu wyglda tak: patrz


punkt 2.8 na stronie 34.

Podobnie jak w wypadku spisw treci, tabel czy rysunkw, do ustalenia


waciwej numeracji odsyaczy potrzebne s co najmniej dwie, a z reguy
trzy kompilacje dokumentu. Podczas pierwszej LATEX wysya do pliku pomocniczego z rozszerzeniem .aux (zob. punkt 1.7) informacje o odsyaczach,
ktre wykorzystuje podczas kolejnych kompilacji.

2.9. Przypisy
Do skadania przypisw u dou strony suy instrukcja:
\footnote{tekst przypisu}

Naley j wstawi bezporednio po sowie lub zdaniu, do ktrego si odnosi.


W krajach anglosaskich przypisy odnoszce si do caego zdania lub jego
czci umieszcza si natychmiast po kropce lub przecinku. W Polsce najczciej umieszcza si je przed znakiem przestankowym (zasad t stosujemy
w niniejszym tumaczeniu).
LATEX numeruje przypisy automatycznie. Sposb ich numerowania zaley
od uywanej klasy. W klasie article numeracja jest ciga, w klasach
report i book przypisy s numerowane w ramach rozdziaw.
10

Warto pamita, e te instrukcje nie wiedz, do czego tak naprawd si odnosz.


Zadaniem instrukcji \label jest przechowanie zwizku wygenerowanej automatycznie
liczby z miejscem w tekcie.

2.10. Wyrnienia

35

Przypisy\footnote{To jest wanie


przypis.} s czsto
stosowane przez
uytkownikw {\LaTeX}a

Przypisya s czsto stosowane przez uytkownikw LATEXa


a

To jest wanie przypis.

2.10. Wyrnienia
W tekstach pisanych na maszynie fragmenty, ktre maj zosta wyrnione,
podkrela si. W dokumentach drukowanych wyrnienie fragmentu odbywa
si przez zoenie go kursyw. Suy do tego LATEXowa instrukcja:
\emph{tekst}

Argumentem tej instrukcji jest tekst, ktry ma zosta wyrniony.


\emph{\emph{Wyrnienia} w~tekcie
ju wyrnionym s skadane
\emph{zwykym} krojem pisma.}

Wyrnienia w tekcie ju wyrnionym s


skadane zwykym krojem pisma.

Zwrmy uwag, e istnieje rnica midzy wyrnieniem czci tekstu


a zoeniem go inn czcionk:
\textit{Tekst mona \emph{wyrni},
skadajc go kursyw,}
\textsf{czcionk \emph{szeryfow},}
\texttt{a nawet \emph{maszynowo}.}

Tekst mona wyrni, skadajc go kursyw,


czcionk szeryfow, a nawet maszynowo.

2.11. Otoczenia
Do instrukcji formatujcych zaliczaj si otoczenia (zwane te rodowiskami ), czyli instrukcje postaci:
\begin{nazwa} tekst

\end{nazwa}

gdzie nazwa jest nazw otoczenia, a tekst jest fragmentem dokumentu, ktry
ma zosta zoony inaczej ni poza otoczeniem.
Otoczenia mona zagnieda jedne w drugich:
\begin{aaa}...\begin{bbb}...\end{bbb}...\end{aaa}
Niedopuszczalne jest natomiast przeplatanie otocze:
\begin{aaa}...\begin{bbb}...\end{aaa}...\end{bbb}
Wiele standardowych polece LATEXa mona zapisa w formie otoczeniowej. W takich wypadkach nazwa polecenia (bez w-ty-ciacha) jest nazw
otoczenia. Na przykad, zamiast polecenia \em, wczajcego wyrniajcy
krj pisma, moemy zastosowa otoczenie \begin{em}...\end{em}.
W kolejnych punktach przedstawiamy czciej uywane otoczenia.

36

Skadanie tekstu

2.11.1. Otoczenia itemize, enumerate i description


Otoczenia itemize oraz description su do tworzenia wyszczeglnie,
za enumerate do tworzenia wylicze. W kadym z nich element wyliczenia
zaczyna si od instrukcji \item.
\begin{enumerate}
\item Taka lista:
\begin{itemize}
\item wyglda
\item[--] miesznie.
\end{itemize}
\item Pamitaj:
\begin{description}
\item[Gupoty] nie stan si
mdrociami, gdy si je wyliczy.
\item[Mdroci] mona elegancko
zestawia w~wyliczeniach.
\end{description}
\end{enumerate}

1. Taka lista:
wyglda
miesznie.
2. Pamitaj:
Gupoty nie stan si mdrociami,
gdy si je wyliczy.
Mdroci mona elegancko zestawia
w wyliczeniach.

2.11.2. Otoczenia flushleft, flushright i center


W otoczeniach flushleft i flushright akapity s skadane z wyrwnaniem, odpowiednio, do lewego bd prawego marginesu. Wewntrz otoczenia
center kady wiersz akapitu jest wyrodkowany w osi szpalty. Tak jak
zawsze, LATEX dzieli akapity na wiersze automatycznie, mona jednak w obrbie powyszych otocze wymusi zmian wiersza poleceniem \\.
\begin{flushleft}
To jest tekst\\ wyrwnany do lewej.
{\LaTeX} nie skada tu wierszy\\
z~zachowaniem jednakowej dugoci.
\end{flushleft}
\begin{flushright}
To jest tekst\\ wyrwnany do prawej.
{\LaTeX} nie skada tu wierszy\\
z~zachowaniem jednakowej dugoci.
\end{flushright}
\begin{center}
To jest tekst\\wyrodkowany.
\end{center}

To jest tekst
wyrwnany do lewej. LATEX nie skada tu
wierszy
z zachowaniem jednakowej dugoci.

To jest tekst
wyrwnany do prawej. LATEX nie skada tu
wierszy
z zachowaniem jednakowej dugoci.

To jest tekst
wyrodkowany.

2.11. Otoczenia

37

2.11.3. Otoczenia quote, quotation i verse


Otoczenie quote przydaje si do skadania cytatw oraz przykadw:
Jeeli chodzi o~dugo wierszy,
to regu kciuka jest, e:
\begin{quote}
Przecitnie wiersz nie powinien
zawiera wicej ni 66 znakw.
Dlatego w~{\LaTeX}u standardowe
strony maj szerokie marginesy.
\end{quote}
Dlatego te w~gazetach stosuje
si druk wieloamowy.

Jeeli chodzi o dugo wierszy, to regu


kciuka jest, e:
Przecitnie wiersz nie powinien
zawiera wicej ni 66 znakw.
Dlatego w LATEXu standardowe
strony maj szerokie marginesy.
Dlatego te w gazetach stosuje si druk wieloamowy.

Istniej ponadto dwa otoczenia o podobnym zastosowaniu: quotation oraz


verse. Pierwsze z nich przydaje si do formatowania cytatw duszych ni
jeden akapit. W przeciwiestwie do otoczenia quote, wewntrz quotation
LATEX rozpoczyna poszczeglne akapity od wcicia akapitowego. Otoczenie
verse suy do skadania wierszy. Poszczeglne linijki zwrotek naley koczy instrukcj \\, poszczeglne za zwrotki oddziela pust lini.
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 Kings horses and all
the Kings men\\
Couldnt put Humpty together again.
\end{verse}
\end{flushleft}

Na pami znam tylko jeden angielski wiersz.


Ten o Humptym Dumptym.
Humpty Dumpty sat on a wall:
Humpty Dumpty had a great
fall.
All the Kings horses and all the
Kings men
Couldnt put Humpty together
again.

2.11.4. Streszczenie
Publikacje naukowe zaczynaj si zazwyczaj od streszczenia przegldu
tego, co czytelnik napotka w dalszej czci. W LATEXu do wyrniania
streszcze suy otoczenie abstract. Uywa si go na og w dokumentach
klasy article.
\begin{abstract}
Streszczenie streszczenia.
\end{abstract}

Streszczenie streszczenia.

38

Skadanie tekstu

2.11.5. Symulacja maszynopisu


Tekst zawarty midzy \begin{verbatim} a \end{verbatim} jest przez
LATEXa skadany dosownie, czyli tak, by wyglda jak napisany na maszynie,
z zachowaniem zmian wiersza i odstpw z pliku rdowego.
Aby uzyska ten efekt, krj pisma zmienia si na imitujcy pismo maszynowe (grotesk). Wszystkie znaki w tym kroju, wczajc spacj, maj
jednakow szeroko. Zakoczenie linii wewntrz otoczenia verbatim prowadzi do rozpoczcia nowego wiersza w wydruku, a kada spacja zamienia
si na odstp. Wewntrz otoczenia verbatim nie s wykonywane instrukcje.
Wewntrz akapitw imitacj maszynopisu uzyskuje si za pomoc instrukcji:
\verb+tekst+

Znak + ogranicza tekst, ktry ma zosta wydrukowany dosownie. Zamiast +


mona uy innego znaku, byle to nie bya litera, gwiazdka, spacja ani aden
znak, ktry wystpuje w tekcie. Instrukcj \verb oraz otoczenie verbatim
wykorzystujemy czsto w tej ksice do skadania przykadw LATEXowych.
Rozwamy przykad\ldots
\begin{verbatim}
{ for (i=1;i<=NF;i++) {l[$i]++; }
END {for (i in l) {print l[i]}
\end{verbatim}

Rozwamy przykad. . .
{ for (i=1;i<=NF;i++) {l[$i]++; }
END {for (i in l) {print l[i]}

Otoczenie verbatim oraz instrukcja \verb maj take wersje z gwiazdk,


w ktrych spacja z pliku rdowego jest zamieniana na znak ). Jest to
jedyna rnica dziaania w porwnaniu do wersji bezgwiazdkowych:
\begin{verbatim*}
gwiazdkowa wersja
otoczenia verbatim
wyrnia spacje
w tekcie
\end{verbatim*}

gwiazdkowa)wersja
otoczenia)verbatim
wyrnia)spacje
w)tekcie

Otoczenia verbatim ani instrukcji \verb nie wolno uywa wewntrz argumentw innych instrukcji (wicej na ten temat w punkcie 2.13).

2.11.6. Otoczenie tabular


Do skadania tabel suy otoczenie tabular. LATEX automatycznie ustala
szeroko poszczeglnych rubryk tabeli. Otoczenie ma jeden parametr obowizkowy, spec-kolumn, ktry okrela liczb kolumn tabeli oraz sposb ich
justowania:
\begin{tabular}{spec-kolumn}

2.11. Otoczenia

39

Dla kadej kolumny naley w argumencie wstawi jedn z liter: l, r lub


c, okrelajc w ten sposb justowania zawartoci kolumny. Dosunicie zawartoci kolumny do lewej oznaczamy liter l, do prawej znakiem r,
a wyrodkowanie znakiem c. Zapisu p{szer-kolumn} mona uy do zaznaczenia, e kolumna ma mie szeroko szer-kolumn. Wewntrz takiej
kolumny tekst jest skadany w prostokt o zadanej szerokoci, z wyrwnywaniem obu marginesw. Znak | instruuje LATEXa, by kolumny tabeli rozdzieli
pionow kresk.
Wewntrz otoczenia tabular poszczeglne wiersze oddzielamy instrukcj \\, a rubryki w wierszu znakiem &. Instrukcja \hline wstawia poziom
kresk na ca szeroko tabeli.
\begin{tabular}{|r|l|} \hline
7C0 & heksadecymalnie \\
3700 & oktalnie \\
11111000000 & binarnie \\
\hline \hline
1984 & dziesitnie \\ \hline
\end{tabular}
\begin{tabular}{|p{4.7cm}|} \hline
Ten akapit jest wewntrz pudeka.
Mamy nadziej, e uzyskany
efekt si podoba.\\ \hline
\end{tabular}

7C0
3700
11111000000
1984

heksadecymalnie
oktalnie
binarnie
dziesitnie

Ten akapit jest wewntrz pudeka. Mamy nadziej, e uzyskany efekt si podoba.

Instrukcj @{...} okrelamy odstp midzy kolumnami. Zastpuje ona domylny odstp midzykolumnowy treci umieszczon midzy { a }. Stosuje
si j czsto do wyrwnywania zestawie liczbowych wedug cyfr znaczcych.
Mona j take wykorzysta do usunicia odstpw w pierwszej i ostatniej
kolumnie tabeli, co ilustruje poniszy przykad:
\begin{tabular}{@{} l @{}} \hline
bez odstpw na brzegach\\ \hline
\end{tabular}
\begin{tabular}{l} \hline
odstpy na brzegach tabeli\\ \hline
\end{tabular}

bez odstpw na brzegach

odstpy na brzegach tabeli

W LATEXu nie ma mechanizmu pozwalajcego wyrwnywa zestawienia liczbowe wedug cyfr znaczcych11 , ale efekt ten mona uzyska, skadajc liczb
w dwch kolumnach: cz cakowit w kolumnie wyrwnywanej do prawego
brzegu i cz dziesitn w kolumnie wyrwnanej do lewego. Za pomoc instrukcji @{,} zastpujemy przecinkiem odstp wstawiany normalnie midzy
kolumnami. Trzeba jednak pamita o koniecznoci wpisywania znaku & zamiast przecinkw w liczbach. Rubryki rozcigajce si na kilka kolumn, jak
nagwek w poniszym przykadzie, tworzymy poleceniem \multicolumn:
11

Do wyrwnywania cyfr mona skorzysta z pakietu dcolumn z zestawu tools.

40

Skadanie tekstu

\begin{tabular}{c r @{,} l}
Wyraenie &
\multicolumn{2}{c}{Warto}\\\hline
$\pi$ & 3&1416 \\
$\pi^{\pi}$ & 36&46 \\
$(\pi^{\pi})^{\pi}$ & 80662&7 \\
\end{tabular}

Wyraenie

( )

Warto
3,1416
36,46
80662,7

Polecenie \cline{m-n} wstawia poziom kresk cignc si od kolumy


m do kolumny n:
\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}

1
1
1

0
2
2

3
3

4
4

5
5

W punkcie 6.8 opisano, jak sobie radzi ze skadem bardziej skomplikowanych tabel.

2.12. Wstawki
Wspczesne publikacje zawieraj duo rysunkw i tabel. Elementw tych
nie naley dzieli midzy strony i dlatego wymagaj specjalnego potraktowania. W sytuacji gdy nie mieszcz si one na biecej stronie, na og przenosi
si je i wstawia na pocztku strony nastpnej. W wypadku przeniesienia rysunku lub tabeli miejsce pozostae na stronie wypeniane jest tekstem. Tego
typu elementy bdziemy nazywa wstawkami .
Aby w peni skorzysta z LATEXowego mechanizmu wstawek, trzeba
choby powierzchownie rozumie, jak LATEX manipuluje takimi obiektami.
W przeciwnym razie wstawki mog si sta rdem irytacji, gdy LATEX
bdzie je umieszcza wszdzie, tylko nie w miejscach, w ktrym bymy sobie
tego yczyli.
Do tworzenia wstawek mamy w LATEXu dwa otoczenia. Otoczenie figure
suy do tworzenia rysunkw, a otoczenie table do tabel. Oba maj jeden
parametr opcjonalny:
\begin{figure}[miejsce] albo \begin{table}[miejsce]

Argument miejsce okrela, gdzie na stronie mona umieci wstawk. Powinna to by sekwencja od jednego do piciu znakw: h, t, b, p oraz !.
Kady znak okrela dopuszczalny sposb umieszczenia wstawki; szczegowe
informacje na ten temat zestawiono w tabeli 2.3.
Przykadowa tabela moe si zaczyna tak:
\begin{table}[!hbp]

2.12. Wstawki

Tabela 2.3: Opcjonalny argument otocze table i figure


Znak
h
t
b
p
!

Dopuszczalne miejsce umieszczenia wstawki


bez przemieszczenia, dokadnie w miejscu uycia
na grze strony
na dole strony
na stronie zawierajcej wycznie wstawki
ignorujc wikszo parametrw kontrolujcych umieszczanie wstaweka , przekroczenie wartoci, ktre mog nie pozwoli na umieszczanie nastpnych wstawek na stronie.

S to parametry takie jak np. maksymalna dopuszczalna liczba wstawek na stronie

Argument [!hbp] oznacza, e tabel mona umieci w miejscu, w ktrym


pojawia si w pliku rdowym (h), albo na dole strony (b), albo wreszcie na
osobnej stronie zawierajcej wycznie wstawki (p). Ponadto ! oznacza,
e LATEX ma pomin wikszo parametrw sterujcych umieszczaniem
wstawek. Jeeli otoczenia table uyto bez opcjonalnego argumentu, to jego
domylnymi wartociami s [tbp].
LATEX umieszcza kad wstawk zgodnie ze specyfikacj autora podan
w argumencie miejsce. Jeeli nie moe umieci wstawki na biecej stronie,
to docza j albo do kolejki rysunkw, albo do kolejki tabel 12 . Na pocztku
skadania nowej strony LATEX sprawdza, czy mona j zapeni wstawkami
czekajcymi w kolejce. Jeli nie jest to moliwe, to pierwsza wstawka kadej z kolejek traktowana jest tak, jak gdyby wanie pojawia si w tekcie:
LATEX stara si j umieci zgodnie z wartociami parametru miejsce (za
wyjtkiem h, gdy nie jest to ju oczywicie moliwe). Nowe wstawki doczane s na koniec odpowiednich kolejek. LATEX dba o waciwy porzdek
wstawek kadego typu. Moe si zdarzy, e pojedynczy rysunek, ktrego
z jakich wzgldw nie mona poprawnie wstawi, cignie za sob wszystkie pniejsze rysunki, nawet a na koniec dokumentu. Dlatego:
Jeeli LATEX nie umieszcza wstawek zgodnie z oczekiwaniami, to
z reguy ktra z nich blokuje ca kolejk, a by moe nawet
wszystkie kolejki wstawek.
Wyjaniwszy w cokolwiek zawiy problem umieszczania wstawek, przejdmy do omwienia kilku pozostaych spraw z nimi zwizanych. Poleceniem:
\caption{tekst}

wstawiamy tytu rysunku lub tabeli. Kolejny numer rysunku bd tabeli oraz
sowo Rysunek bd Tabela (lub Tablica zalenie od uywanego
pakietu polonizacyjnego) zostan wstawione automatycznie.
12

S to kolejki typu fifo (pierwsze weszo pierwsze wyjdzie).

41

42

Skadanie tekstu

Nastpujce instrukcje:
\listoffigures oraz \listoftables

dziaaj analogicznie do instrukcji \tableofcontents, wstawiajc do dokumentu, odpowiednio, spis rysunkw oraz spis tabel. Poszczeglnymi pozycjami tych spisw bd tytuy rysunkw bd tabel bdce argumentami
instrukcji \caption. Jeeli tytu jest dugi, to do spisu mona przesa jego
wersj skrcon, podan jako opcjonalny argument instrukcji \caption:
\caption[Short]{LLLLLoooooonnnnnggggg}
Za pomoc instrukcji \label oraz \ref mona tworzy odsyacze do tabel
i rysunkw.
Polecenie \label naley umieszcza bezporednio za instrukcj \caption.
Dobrym pomysem jest te umieszczenie jej wewntrz argumentu instrukcji \caption (na przykad na kocu tytuu rysunku czy tabeli). Niektrzy
uytkownicy bdnie sdz, e wystarczy umieci instrukcj \label wewntrz otoczenia figure czy table, gdy tymczasem umieszczenie jej przed
poleceniem \caption prowadzi do bdw w numerach odsyaczy.
W poniszym przykadzie wstawka zawiera prostokt o wymiarach 5 cm
5 cm. Ten sposb postpowania mona wykorzysta w celu zarezerwowania miejsca na rysunki, ktre zostan wklejone pniej do gotowego,
wydrukowanego dokumentu.
Rysunek~\ref{white} jest przykadem Pop-Artu.
\begin{figure}[!htp]
\makebox[\textwidth]{\framebox[5cm]{\rule{0pt}{5cm}}}
\caption{Pi na pi centymetrw\label{white} }
\end{figure}
Zakadajc w tym przykadzie, e kolejka rysunkw jest pusta, LATEX najpierw sprbuje umieci rysunek bez przesuwania go dokdkolwiek (h). Jeeli
okae si to niemoliwe, to sprbuje go umieci na grze strony (t). Jeeli
i to okae si niewykonalne, to bdzie si stara umieci rysunek na stronie zawierajcej wycznie wstawki (p). Jeeli w kolejkach rysunkw i tabel
nie ma wstawek pozwalajcych wypeni stron, to LATEX rozpocznie now
stron i sprbuje umieci na niej rysunek, traktujc go znowu tak, jakby
wanie pojawi si w tekcie.
Czasami moe wystpi konieczno wykonania instrukcji:
\clearpage albo nawet \cleardoublepage

W wyniku jej zadziaania LATEX umieszcza w dokumencie wszystkie oczekujce w kolejkach wstawki, a nastpnie rozpoczyna skad od nowej strony.
W wypadku uycia instrukcji \cleardoublepage LATEX rozpoczyna skad
od strony nieparzystej (por. przypis 2 na str. 18).
W dalszej czci ksiki przedstawimy, jak mona do dokumentu docza rysunki w formacie Postscript (por. 4.1).

2.13. Ochrona polece kruchych

43

2.13. Ochrona polece kruchych


Niektrych polece nie mona umieszcza wewntrz argumentw innych
polece, na przykad polecenie \footnote albo \verb nie moe si pojawi
w argumencie polecenia \section czy \caption. Kompilacja dokumentu
zakoczy si w takiej sytuacji bdem, a takie polecenia nazywamy kruchymi
(ang. fragile command ).
Polecenia kruche wymagaj ochrony. Moemy je chroni, umieszczajc przed nimi polecenie \protect. Polecenie \protect odnosi si wycznie
do instrukcji znajdujcej si tu za nim, nie obejmuje swym dziaaniem nawet argumentw tej instrukcji. W wikszoci wypadkw nadmiarowe uycie
\protect nie powoduje szkd.
\section{Jestem przezorny%
\protect\footnote{i~chroni przypisy}}
Uwaga: wiele osb lubi dodawa przypisy do rdtytuw. Naszym zdaniem
jest to zy i komplikujcy ycie zwyczaj; ostatecznie zawsze mona umieci
przypis w pierwszym akapicie pod rdtytuem. Rb jak uwaasz, ale czy
wiesz, jak usun numer przypisu ze spisu treci?

2.14. Listy
Do pisania listw mona uy klasy letter. Struktura pliku rdowego tej
klasy rni si od dokumentw z klasy article czy book. Klas letter zaprojektowano tak, by bezproblemowo dao si napisa zarwno pojedynczy
list do przysowiowej cioci, jak te setki listw do rnych osb (korespondencja seryjna).
Jeli imi, nazwisko i adres nadawcy maj by identyczne we wszystkich
listach, to deklarujemy je poleceniem:
\address{imi\\nazwisko\\ adres. . . }
Uycie instrukcji \\ w adresie powoduje zamanie wiersza.
Polecenie \signature suy do zadeklarowania podpisu pod listem. Wewntrz argumentu tego polecenia instrukcja \\ suy do rozpoczcia nowego
wiersza, przykadowo:
Dyr. E.~K.~Tor,\\ Przewodniczcy
Zastpcy

Dyr. E. K. Tor,
Przewodniczcy Zastpcy

Do nagwka listu automatycznie wstawiana jest bieca data. Aby wstawi


inn, naley zastosowa deklaracj \date:
\date{16 Czerwca 1963~r.}

44

Skadanie tekstu

Deklaracje \address, \signature oraz \date umieszcza si zwykle w preambule, chocia mog one wystpi rwnie w czci zasadniczej pliku
rdowego.
Tre listu powinnimy wpisa wewntrz otoczenia letter. Otoczenie
to ma jeden argument, ktrym jest adres osoby, do ktrej piszemy. Wewntrz otoczenia letter mona stosowa kilka prostych polece sucych
do umieszczania w odpowiednim miejscu elementw typowego listu13 . Do
zoenia nagwka listu uywamy polecenia \opening, a do zakoczenia
\closing. Ponadto s polecenia: \ps do wstawienia post scriptum oraz \cc
do zdefiniowania wykazu osb, ktre maj otrzyma kopi listu. Oto peny
przykad listu:
%& --translate-file=il2-pl
\documentclass{letter}
\usepackage{polski}
\address{Dyr. E.~K.~Tor,\\ Przewodniczcy Zastpcy\\
Firma z~o.o.\\ w/m}
\signature{E.~.K.~Thor}
\begin{document}
% pierwszy list
\begin{letter}{Henryk Potrykus\\ul.~Krtka\\Puck}
\opening{Szanowny Panie}
Z~przykroci zawiadamiam, e Paskie podanie
zostao...
\closing{Z~powaaniem}
\cc{cc: Jzef Wujke}
\end{letter}
% drugi list
\begin{letter}{Zofia Potrykus\\ul.~Szkolna\\Reda}
\opening{Szanowna Pani}
Odpowiadajc na Pani pismo...
...
\end{letter}
\end{document}

13

Elementy nietypowe zawsze mona umieci, korzystajc z innych polece poznanych


w tym rozdziale.

Rozdzia 3

Wyraenia matematyczne
Nareszcie! W tym rozdziale poznasz najlepsz stron TEXa, czyli skad wzorw matematycznych. Ostrzegamy jednak, e przedstawimy tu jedynie absolutne podstawy.
Chocia wystarczaj one wikszoci uytkownikw, to nie zaamuj rk, jeli nie poradzisz sobie z jakim skomplikowanym wzorem, lecz zapoznaj si z moliwociami
AMS-LATEXa lub innego wyspecjalizowanego pakietu1 .

3.1. Wstp
Do skadu wyrae matematycznych mamy w LATEXu specjalny tryb matematyczny. Wzory wpisuje si midzy znakami $ i $, midzy parami znakw
\( i \) albo midzy \begin{math} oraz \end{math}.
$a$ do kwadratu plus~$b$
do kwadratu rwna si~$c$
do kwadratu. Albo, stosujc
bardziej matematyczne
podejcie: $c^{2}=a^{2}+b^{2}$.
{\TeX} naley wymawia jako
$\tau\epsilon\chi$.\\[6pt]
100~m$^{3}$ wody. \\[6pt]
To pynie z~mojego~$\heartsuit$.

a do kwadratu plus b do kwadratu rwna


si c do kwadratu. Albo, stosujc bardziej
matematyczne podejcie: c2 = a2 + b2 .

TEX naley wymawia jako $.


100 m3 wody.
To pynie z mojego .

Skadajc wiksze wzory, powinnimy je eksponowa, to znaczy wstawia


midzy akapitami, w osobnym wierszu. Takie wzory umieszcza si albo
midzy parami znakw \[ i \], albo wewntrz otoczenia displaymath. Ta
ostatnia konstrukcja dotyczy tworzenia wzorw bez numeracji:
1
Pod egid Amerykaskiego Towarzystwa Matematycznego (American Mathematical
Society) powstao istotne rozszerzenie LATEXa. Wiele przykadw w tym rozdziale korzysta
z tego rozszerzenia, ktre jest doczane do wszystkich wspczesnych dystrybucji TEXa.
Jeli w twojej go nie ma, to znajdziesz je pod adresem CTAN://macros/latex/packages/
amslatex.

46

Wyraenia matematyczne

$a$ do kwadratu plus~$b$


do kwadratu rwna si~$c$
do kwadratu. Albo,
bardziej matematycznie:
\begin{displaymath}
c^{2}=a^{2}+b^{2}
\end{displaymath}
Pierwszy wiersz po wzorze.

a do kwadratu plus b do kwadratu rwna si c


do kwadratu. Albo, bardziej matematycznie:
c2 = a2 + b2
Pierwszy wiersz po wzorze.

Do uzyskiwania wzorw numerowanych stosujemy otoczenie equation. Instrukcji \label moemy wwczas uy do zapamitania numeru wzoru,
a polecenia \ref albo pochodzcego z pakietu amsmath \eqref do przywoania w dokumencie tego numeru:
\begin{equation}
\epsilon > 0 \label{eq:eps}
\end{equation}
Ze wzoru (\ref{eq:eps})
otrzymujemy \ldots

$>0
Ze wzoru (3.1) otrzymujemy . . .

(3.1)

Zwrmy uwag na rnic w wygldzie wzorw zoonych wewntrz akapitu


i w wersji eksponowanej:
$\lim_{n \to \infty}
\sum_{k=1}^n \frac{1}{k^2}
= \frac{\pi^2}{6}$
\begin{displaymath}
\lim_{n \to \infty}
\sum_{k=1}^n \frac{1}{k^2}
= \frac{\pi^2}{6}
\end{displaymath}

limn

!n

1
k=1 k2

2
6

n
"
1
2
=
lim
n
k2
6
k=1

Midzy trybem matematycznym LATEXa a trybem tekstowym istniej znaczne


rnice. Na przykad, w trybie matematycznym:
1. LATEX ignoruje prawie wszystkie odstpy oraz znaki koca linii; wszystkie odstpy we wzorach wynikaj bd z kontekstu, bd z uycia specjalnych polece, takich jak: \, lub \quad (por. punkt 6.3.3, str. 110).
2. Puste linie s niedozwolone. Nie ma czego takiego, jak podzia wzorw
na akapity.
3. Litery we wzorach su do oznaczania nazw zmiennych; zmienne
skadamy inaczej ni zwyky tekst. Jeeli czci wzoru ma by zwyky
tekst, to naley si posuy instrukcj \textrm{...}.
\begin{equation}
\forall x \in \mathbf{R}\colon
\qquad x^{2} \geq 0
\end{equation}

x R :

x2 ( 0

(3.2)

3.2. Grupowanie

\begin{equation}
x^{2} \geq 0\qquad
\textrm{dla kadego }x\in\mathbf{R}
\end{equation}

47

x2 ( 0

dla kadego x R

(3.3)

Matematycy potrafi by niezwykle staranni w doborze symboli. Na przykad we wzorach, w ktrych wystpuj oznaczenia zbiorw (jak powyszy),
czsto stosuje si krj, w ktrym te oznaczenia przypominaj odmian
grub, pisan kred na tablicy (A, B, C . . . ). Symbole takie wstawiamy do
wzoru poleceniem \mathbb z pakietu amsfonts lub amssymb. Ostatni przykad wyglda wtedy nastpujco:
\begin{displaymath}
x^{2} \geq 0\qquad
\textrm{dla kadego }x\in\mathbb{R}
\end{displaymath}

x2 ( 0

dla kadego x R

3.2. Grupowanie
Argumentem wikszoci instrukcji do skadu matematyki jest tylko jeden
znak ten, ktry nastpuje tu po instrukcji. Jeeli polecenie ma dotyczy
grupy znakw, to naley je umieci wewntrz pary nawiasw klamrowych
{...}:
\begin{equation}
a^x+y \neq a^{x+y}
\end{equation}

ax + y )= ax+y

3.3. Czci skadowe wyrae matematycznych


W tym podrozdziale opiszemy waniejsze instrukcje do skadu wyrae.
Zestawienie wszystkich dostpnych symboli i znakw znajduje si w punkcie 3.10 na stronie 58.
Mae litery alfabetu greckiego wprowadzamy, uywajc instrukcji
typu: \alpha, \beta, \gamma itd., a due2 : \Delta, \Gamma itd.:
$\lambda,\xi,\pi,\mu,\Phi,\Omega$

, , , , ,

Indeksy grne i wykadniki otrzymujemy za pomoc znaku ^, a dolne


stosujc podkrelenie _:
2

Obecnie brakuje duej litery Alpha i wyglda ona identycznie jak pierwsza litera
A alfabetu aciskiego. Sytuacja ta ma si zmieni po wprowadzeniu nowego sposobu
kodowania symboli matematycznych.

(3.4)

48

Wyraenia matematyczne

$a_{1} x^{2} e^{-\alpha t}


a^{3}_{ij} e^{x^2} \neq {e^x}^2$

a1 x2 et a3ij ex )= ex 2

Pierwiastek kwadratowy skadamy poleceniem \sqrt. Wielko znaku


pierwiastka jest przez LATEXa ustalana automatycznie. Zapis samego znaku
pierwiastka umoliwia instrukcja \surd3 , natomiast pierwiastek stopnia n
skadamy konstrukcj \sqrt[n]:
$\sqrt{x} \sqrt{ x^{2}+\sqrt{y}}
\sqrt[3]{2} \surd[x^2 + y^2]$

# 2

x x + y 3 2 [x2 + y 2 ]

Polecenia \overline oraz \underline umieszczaj nad i pod wyraeniami


poziome kreski:
$\overline{m+n} \underline{x+y}$

m + nx + y

Instrukcje \overbrace oraz \underbrace umieszczaj nad i pod wyraeniami poziome klamry:
$\underbrace{ a+b+\cdots+z }_{26}$

a + b + + z
$
%&
'
26

Akcenty matematyczne, takie jak daszki czy tyldy nad zmiennymi, umieszczamy we wzorze poleceniami z tabeli 3.1. Szerokie daszki i tyldy, obejmujce
wiele symboli, wstawiamy za pomoc instrukcji \widetilde oraz \widehat.
Znakiem oznaczamy symbol prim:
\begin{displaymath}
\hat y=x^{2}\quad y=2x
\end{displaymath}

y = x2

y % = 2x%%%

Wektory oznacza si niekiedy akcentem w postaci strzaki nad nazw


zmiennej. Suy do tego polecenie \vec. Natomiast do oznaczenia wektora od punktu A do punktu B korzystamy z polece \overrightarrow
oraz \overleftarrow:
\begin{displaymath}
\vec a\quad\overrightarrow{AB}
\end{displaymath}

(a AB

Nazwy funkcji typu logarytm naley skada odmian prost, nie za


kursyw, zarezerwowan dla nazw zmiennych. Oto lista polece LATEXa
sucych do skadu rozmaitych funkcji matematycznych:
3

Taki zapis jest wykorzystywany raczej w literaturze anglosaskiej.

3.3. Czci skadowe wyrae matematycznych

49

\arccos \cos \csc \exp \ker \limsup \min \sinh


\arcsin \cosh \deg \gcd \lg \ln \Pr \sup
\arctan \cot \det \hom \lim \log \sec \tan
\arg \coth \dim \inf \liminf \max \sin \tanh
\[\lim_{x \rightarrow 0}
\frac{\sin x}{x}=1\]

lim

x0

sin x
=1
x

W Polsce nazwy niektrych funkcji trygonometrycznych rni si od


anglosaskich. Pakiet polski po doczeniu do dokumentu zmienia na yczenie standardowe funkcje LATEXa na zgodne ze zwyczajami polskimi. Oto
angielskie oryginay: tan, coth, tanh, arccos, arcsin i ich polskie odpowiedniki: tg, ctgh, tgh, arc cos, arc sin.
Dla funkcji typu modulo istniej dwie instrukcje: \bmod dla binarnego operatora a mod b oraz \pmod do skadu takich wyrae jak x a (mod b).
$a\bmod b$\\
$x\equiv a \pmod{b}$

a mod b
x a (mod b)

Uamki pitrowe skada si poleceniem \frac{...}{...}. Do uamkw


zwykych czasami lepiej stosowa kresk ukon, zwaszcza w wypadku
niewielkich porcji materiau uamkowego, jak 1/2:
$1\frac{1}{2}$~godziny
\begin{displaymath}
\frac{ x^{2} }{ k+1 }\quad
x^{ \frac{2}{k+1} }\quad x^{ 1/2 }
\end{displaymath}

1 21 godziny
x2
k+1

x k+1

x1/2

Do skadu dwumianw lub podobnych konstrukcji moemy uy polecenia


{... \choose ...} albo {... \atop ...}. Instrukcja \atop daje efekt
taki jak \choose, tyle e bez nawiasw:
\begin{displaymath}
{n \choose k}\qquad {x \atop y+2}
\end{displaymath}

( )
n
k

x
y+2

W pakiecie amsmath do skadu dwumianu Newtona dostpne jest polecenie \binom:


\begin{displaymath}
\binom{n}{k}\qquad\mathrm{C}_n^k
\end{displaymath}

( )
n
k

Ckn

50

Wyraenia matematyczne

Do uzyskiwania symboli relacji binarnych moe si przyda instrukcja


\stackrel. Skada ona swj pierwszy argument czcionk pomniejszon,
jaka stosowana jest do indeksw, i umieszcza go nad drugim argumentem,
zoonym czcionk normalnej wielkoci:
\begin{displaymath}
\int f_N(x) \stackrel{!}{=} 1
\end{displaymath}

fN (x) = 1

Znak caki skadamy poleceniem \int, znak sumowania instrukcj \sum,


za operator iloczynu za pomoc instrukcji \prod. Grne granice cakowania i sumowania okrelamy za pomoc ^, a dolne znakiem _, czyli podobnie
jak w wypadku indeksw grnych i dolnych4 :
\begin{displaymath}
\sum_{i=1}^{n} \quad
\int_{0}^{\frac{\pi}{2}}\qquad
\prod_\epsilon
\end{displaymath}

n
"
i=1

+
#

Pakiet amsmath zawiera dwa dodatkowe narzdzia do sterowania pooeniem indeksw w zoonych wyraeniach: instrukcj \substack i otoczenie
subarray:
\begin{displaymath}
\sum_{\substack{0<i<n \\ 1<j<m}}
P(i,j) =
\sum_{\begin{subarray}{l}
i\in I\\
1<j<m
\end{subarray}}
Q(i,j)
\end{displaymath}

"

0<i<n
1<j<m

P (i, j) =

"

Q(i, j)

iI
1<j<m

Do skadu nawiasw i innych ogranicznikw typu ( [ - . / mamy rozmaito symboli. Nawiasy okrge i kwadratowe wstawiamy bezporednio z klawiatury. Do nawiasw klamrowych stosujemy \{ oraz \}. Wszystkie inne
ograniczniki wstawiamy, uywajc specjalnych polece, np. \updownarrow.
Zestawienie dostpnych ogranicznikw znajduje si w tabeli 3.7 na stronie 61.
\begin{displaymath}
{a,b,c}\neq\{a,b,c\}
\end{displaymath}

a, b, c )= {a, b, c}

Poprzedzenie otwierajcego ogranicznika poleceniem \left, a zamykajcego


poleceniem \right powoduje automatyczne ustalenie jego rozmiaru w zalenoci od wielkoci zawartego midzy nimi wyraenia. Uwaga: kade uycie
4

AMS-LATEX ma dodatkowo wielolinijkowe indeksy dolne i grne.

3.4. Odstpy w trybie matematycznym

51

\left oraz ogranicznika wymaga nawiasu zamykajcego poprzedzonego poleceniem \right. Gdy ogranicznik ma si pojawi tylko po jednej stronie,
wwczas po drugiej naley uy konstrukcji z kropk: \left. po lewej albo
\right. po prawej:
\begin{displaymath}
1 + \left( \frac{1}{ 1-x^{2} }
\right) ^3
\end{displaymath}

1+

1
1 x2

)3

W pewnych sytuacjach trzeba samemu okreli waciw wielko ogranicznika. Do tego celu su instrukcje \big, \Big, \bigg oraz \Bigg, poprzedzajce odpowiedni ogranicznik5 :
$\Big( (x+1) (x-1) \Big) ^{2}$\\
$\big(\Big(\bigg(\Bigg($\quad
$\big\}\Big\}\bigg\}\Bigg\}$\quad
$\big\|\Big\|\bigg\|\Bigg\|$

-2
(x + 1)(x 1)
44
(/
23
44
44
.,
01
4
4444
44
4

Wielokropek w wyraeniach matematycznych wprowadzamy poleceniem


\ldots. Kropki pojawiaj si wtedy na linii podstawowej, to znaczy na
jednakowej wysokoci z przecinkiem czy kropk. Instrukcja \cdots wstawia
natomiast inny rodzaj wielokropka, w ktrym kropki znajduj si w osi
znakw +, , =:
\begin{displaymath}
x_{1},\ldots,x_{n} \qquad
x_{1}+\cdots+x_{n}
\end{displaymath}

x1 , . . . , xn

x1 + + xn

S jeszcze instrukcje \vdots oraz \ddots. Pierwsza z nich generuje wielokropek pionowy, a druga skony (zobacz przykad w punkcie 3.5).

3.4. Odstpy w trybie matematycznym


Zdarzaj si sytuacje, kiedy wielko odstpw wewntrz wyrae matematycznych jest niepoprawna. Mona je skorygowa odpowiednimi instrukcjami. Do wprowadzania niewielkich odstpw suy kilka polece: \, wsta4
3
em6 ( ), \: pozwala uzyska odstp rwny 18
em ( ) a \;
wia odstp rwny 18
5
odstp rwny 18 em ( ). Uycie instrukcji \) (spacja po znaku \) prowadzi
5
Polecenia te nie dziaaj zgodnie z oczekiwaniami, gdy uprzednio zmieniono stopie
pisma, na przykad uyto opcji 11pt lub 12pt. W takiej sytuacji naley skorzysta
z pakietu exscale albo pakietu amsmath.
6
W programach komputerowych przyjo si stosowanie jednostki em rwnej szerokoci
litery M w biecym kroju pisma. Por. te [20].

52

Wyraenia matematyczne

do utworzenia zwykego odstpu midzywyrazowego; \quad odstpu rw). Instrukcja \! wstawia odstp
nego 1 em ( ), a \qquad dwm em (
ujemny, to znaczy zamiast zwiksza, zmniejsza odstp midzy znakami.
3
Wielko tego odstpu wynosi 18
em ( ):
\newcommand{\ud}{\mathrm{d}}
\begin{displaymath}
\int\!\!\!\int_{D} g(x,y)
\, \ud x\, \ud y
\end{displaymath}
%
zamiast
\begin{displaymath}
\int\int_{D} g(x,y)\ud x \ud y
\end{displaymath}

**

g(x, y) dx dy

zamiast

* *

g(x, y)dxdy

Zwrmy uwag, e litera d w symbolu rniczki jest zoona odmian


prost pisma7 .
Dziki zdefiniowanym w pakiecie AMS-LATEX8 takim instrukcjom jak:
\iint, \iiint, \iiiint oraz \idotsint powyszy przykad mona zoy
duo prociej:
\newcommand{\ud}{\mathrm{d}}
\begin{displaymath}
\iint_{D} \, \ud x \, \ud y
\end{displaymath}

**

dx dy

Wicej wiadomoci na ten temat znajdziemy w pliku testmath.tex, ktry


jest czci pakietu AMS-LATEX lub w rozdziale smym podrcznika [6].

3.5. Wyrwnywanie w pionie


Do skadania macierzy uywa si otoczenia array. Dziaa ono podobnie do
wczeniej omwionego otoczenia tabular. Uywane w przykadzie polecenie \\ oznacza przejcie do nowego wiersza macierzy:
\begin{displaymath}
\mathbf{X} =
\left( \begin{array}{ccc}
x_{11} & x_{12} & \ldots \\
x_{21} & x_{22} & \ldots \\
\vdots & \vdots & \ddots
\end{array} \right)
\end{displaymath}
7
8

x11
x21
X=
..
.

x12
x22
..
.

...
...

..
.

W Polsce do skadu litery d w rniczkach stosuje si kursyw matematyczn.


cilej mwic, w pakiecie amsmath.

3.5. Wyrwnywanie w pionie

53

Otoczeniem array moemy si posuy take do skadania wyrae zawierajcych tylko jeden ogranicznik, po prawej lub po lewej stronie, stosujc
konstrukcj z kropk \right. lub \left.:
\begin{displaymath}
y = \left\{ \begin{array}{ll}
a & \textrm{jeeli $d>c$}\\
b+x & \textrm{rano}\\
l & \textrm{w~cigu dnia}
\end{array} \right.
\end{displaymath}

jeeli d > c
a
b + x rano
y=

l
w cigu dnia

Podobnie jak w wypadku otoczenia tabular, take w otoczeniu array


mona wstawia pionowe i poziome kreski, np. oddzielajce poszczeglne
rubryki macierzy:
\begin{displaymath}
\left(\begin{array}{c|c}
1 & 2 \\ \hline
3 & 4
\end{array}\right)
\end{displaymath}

1
3

2
4

Do skadu wyrae wielowierszowych mona uy zamiast otoczenia


equation otocze eqnarray lub eqnarray*. W otoczeniu eqnarray kady
wiersz zawartego w nim wyraenia otrzymuje osobny numer; w otoczeniu
eqnarray* wiersze nie s numerowane. Otoczenia eqnarray oraz eqnarray*
dziaaj jak trjkolumnowa tabela w ukadzie {rcl}. W takiej tabeli w rodkowej kolumnie wstawiamy zwykle znaki rwnoci lub nierwnoci. Poleceniem \\ amiemy zawarto otoczenia na wiersze:
\begin{eqnarray}
f(x) & = & \cos x \\
f(x) & = & -\sin x \\
\int_{0}^{x} f(y)dy &
= & \sin x
\end{eqnarray}

f (x)
f % (x)
x

f (y)dy

= cos x
= sin x

(3.5)
(3.6)

= sin x

(3.7)

Zwrmy uwag, e odstp po obu stronach znaku rwnoci jest do duy.


Mona go zmniejszy poleceniem \setlength\arraycolsep{2pt}, ktre
najlepiej jest umieci w preambule dokumentu.
LATEX nie dzieli automatycznie dugich wyrae, niemieszczcych si
w jednym wierszu. Musimy to zrobi sami. Najczciej stosuje si takie
sposoby:

54

Wyraenia matematyczne

{\setlength\arraycolsep{2pt}
\begin{eqnarray}
\sin x & = & x -\frac{x^{3}}{3!}
+\frac{x^{5}}{5!}-{}
\nonumber\\
& & {}-\frac{x^{7}}{7!}+{}\cdots
\end{eqnarray}}
\begin{eqnarray}
\lefteqn{ \cos x = 1
-\frac{x^{2}}{2!} +{} }
\nonumber\\
& & {}+\frac{x^{4}}{4!}
-\frac{x^{6}}{6!}+{}\cdots
\end{eqnarray}

x3
x5
+

3!
5!
x7
+

7!

sin x = x

x2
+
2!
6
4
x
x
+

+
4!
6!

(3.8)

cos x = 1

(3.9)

LATEX nie generuje numeru w tym wierszu wyraenia, w ktrym pojawia si


polecenie \nonumber.
Zoenie w ten sposb duych i skomplikowanych wyrae moe si
jednak okaza do trudne. Lepiej wtedy uy pakietu amsmath, w ktrym
mamy do dyspozycji otoczenia align, flalign, gather, multline i split.

3.6. Fantomy
Fantomw nie mona zobaczy, mimo to zajmuj one w naszych umysach
troch miejsca. Nie inaczej jest w LATEXu, co pozwala robi z odstpami
rne sztuczki.
Podczas wyrwnywania w pionie tekstu z indeksami ^ bd _ LATEX
bywa nadgorliwy. Polecenie \phantom pozwala rezerwowa miejsce na znaki,
ktre nie maj si pojawi w ostatecznym wydruku. Najatwiej to zrozumie,
analizujc przykad:
\begin{displaymath}
{}^{12}_{\phantom{1}6}\textrm{C}
\qquad \textrm{versus} \qquad
{}^{12}_{6}\textrm{C}
\end{displaymath}
\begin{displaymath}
\Gamma_{ij}^{\phantom{ij}k}
\qquad \textrm{versus} \qquad
\Gamma_{ij}^{k}
\end{displaymath}

12
6C

ij k

versus

versus

12
6 C

kij

3.7. Stopie pisma

55

3.7. Stopie pisma


W trybie matematycznym stopie pisma dobierany jest automatycznie, zalenie od kontekstu. Indeksy grne LATEX skada na przykad mniejsz
czcionk. Gdy wewntrz wyraenia matematycznego zachodzi potrzeba zoenia fragmentu normalnego tekstu, a uyjemy polecenia \textrm, to nie
zadziaa mechanizm przeczania stopni pisma. Bdzie tak, poniewa polecenie \textrm powoduje tymczasowe przejcie do trybu tekstowego.
Zamiast \textrm mona uy polecenia \mathrm, ktre zachowuje mechanizm zmiany stopnia pisma. Pamitajmy jednak, e dziaa ono poprawnie
w zasadzie tylko dla pojedynczych wyrazw, poniewa znaki odstpw s
ignorowane. Ponadto nie dziaa zgodnie z oczekiwaniami mechanizm akcentowania9 :
\begin{equation}
2^{\textrm{nd rd}^\textrm{th}} \quad
2^{\mathrm{nd rd}^\mathrm{th}}
\end{equation}

th
2nd rd

2ndrd

th

(3.10)

Czasami musimy wyranie okreli stopie pisma, jakim chcemy si posuy. W trybie matematycznym moemy do tego stosowa cztery nastpujce
polecenia:
\displaystyle (123), \textstyle (123), \scriptstyle (123) oraz
\scriptscriptstyle (123).
Zmiana stylu dotyczy take sposobu skadania indeksw grnych i dolnych,
jak granice sumowania czy cakowania:
\begin{displaymath}
\mathop{\mathrm{cov}}(X,Y)=
\frac{\displaystyle
\sum_{i=1}^n(x_i-\overline x)
(y_i-\overline y)}
{\displaystyle\biggl[
\sum_{i=1}^n(x_i-\overline x)^2
\sum_{i=1}^n(y_i-\overline y)^2
\biggr]^{1/2}}
\end{displaymath}

cov(X, Y ) = > n
"
i=1

n
"
i=1

(xi x)(yi y)
2

(xi x)

n
"
i=1

(yi y)

Powyszy przykad ilustruje sytuacj, w ktrej naley zastosowa polecenie \biggl bd \biggr, poniewa nawiasy pochodzce z konstrukcji
\left[ oraz \right] byyby zbyt mae.
9
W pakiecie AMS-LATEX polecenie \textrm zostao poprawione i umoliwia automatyczn zmian stopnia pisma zalenie od kontekstu. Pakiet ten nie tylko poprawia dziaanie
\textrm, ale te definiuje instrukcj \text do wstawiania fragmentw normalnego tekstu
wewntrz wzorw.

?1/2

56

Wyraenia matematyczne

3.8. Twierdzenia, definicje, itp.


W pracach matematycznych wystpuje potrzeba wyrniania w skadzie
zapisu lematw, definicji, aksjomatw i tym podobnych elementw. Do
zdefiniowania nowego typu elementu suy polecenie:
\newtheorem{nazwa}[nazwa ]{tekst}[punkt]

Argument nazwa oznacza nazw otoczenia, za tekst jest napisem, ktry


zostanie wydrukowany; moe to by Twierdzenie, Definicja itp. Argumenty w nawiasach kwadratowych s nieobowizkowe. Za ich pomoc
okrelamy sposb numerowania twierdze. Opcjonalny argument nazwa
to nazwa elementu uprzednio zdefiniowanego poleceniem \newtheorem. Jeli ten argument podano, to otoczenia nazwa oraz nazwa bd posiaday
wspln numeracj. Argument punkt okrela sposb numerowania twierdze: jeeli umiecimy tam na przykad chapter, to elementy bd numerowane w obrbie rozdziaw. Domylnie otoczenia definiowane za pomoc
\newtheorem s numerowane w sposb cigy w obrbie caego dokumentu.
Po umieszczeniu instrukcji \newtheorem{nazwa}... w preambule mona
otoczenie nazwa stosowa w nastpujcy sposb:
\begin{nazwa}[tekst]
Oto moje interesujce twierdzenie
\end{nazwa}
Instrukcja \newtheoremstyle{style} z pakietu amsthm pozwala okreli
sposb formatowania twierdzenia przez wybr spord trzech predefiniowanych stylw: definition (wytuszczony tytu, tre zoona pismem
prostym), plain (wytuszczony tytu, tre zapisana kursyw) oraz remark
(tytu zapisany kursyw, tre pismem prostym).
Tyle teoria. Ponisze przykady usun, miejmy nadziej, wszelkie wtpliwoci i jednoczenie uwiadomi, e dziaanie otoczenia \newtheorem
nieatwo zrozumie:
% definicje w~preambule
\newtheorem{twr}{Twierdzenie}
\newtheorem{lem}[twr]{Lemat}
% po \begin{document}
\begin{lem} Pierszy
lemat\dots\label{lem:1} \end{lem}
\begin{twr}[Dyzma]
Przyjmujc w~lemacie~\ref{lem:1},
e $\epsilon=0$\dots \end{twr}
\begin{lem}Trzeci lemat\end{lem}

Lemat 1. Pierszy lemat. . .


Twierdzenie 2 (Dyzma). Przyjmujc w lemacie 1, e $ = 0. . .
Lemat 3. Trzeci lemat

Elementy Twierdzenie i Lemat uywaj tego samego licznika. Argument


nieobowizkowy (wewntrz nawiasw kwadratowych) suy do umieszczenia
komentarza, w postaci nazwiska twrcy itp.

3.9. Symbole pgrube

\newtheorem{mur}{Murphy}[section]
\begin{mur} Jeeli co mona
wykona na dwa lub wicej sposobw,
przy czym jeden z~nich prowadzi do
katastrofy, to sposb ten zostanie
przez kogo wybrany.\end{mur}

57

Murphy 3.8.1. Jeeli co mona wykona


na dwa lub wicej sposobw, przy czym jeden
z nich prowadzi do katastrofy, to sposb ten
zostanie przez kogo wybrany.

Numeracja twierdzenia Murphyego jest tu powizana z numeracj kolejnych punktw. Mona te do numerowania twierdze stosowa inne jednostki
podziau dokumentu, jak rozdziay czy podpunkty.
W pakiecie amsthm znajduje si te otoczenie proof do zapisywania
dowodw:
\begin{proof}
Banalne. Uyj \[E=mc^2\]
\end{proof}

Dowd. Banalne. Uyj


E = mc2

Polecenie \qedhere pozwala wstawi symbol koca dowodu w okrelonym


miejscu zamiast domylnego umieszczania go w oddzielnym wierszu:
\begin{proof}
Banalne. Uyj \[E=mc^2 \qedhere\]
\end{proof}

Dowd. Banalne. Uyj


E = mc2

3.9. Symbole pgrube


Wstawianie symboli pgrubych jest w LATEXu zadaniem do trudnym. By
moe jest tak celowo, poniewa skadacze-amatorzy maj skonno do ich
naduywania. Poleceniem \mathbf uzyskamy odmian pgrub. Nie bdzie
to niestety pgruba kursywa, jak zwykle skadane s symbole matematyczne. Istnieje co prawda polecenie \boldmath, ale mona go uy jedynie
poza trybem matematycznym. Jego dziaanie obejmuje rwnie symbole.
\begin{displaymath}
\mu, M \qquad \mathbf{M} \qquad
\mbox{\boldmath $\mu, M$}
\end{displaymath}

, M

, M

Zauwamy, e przecinek te zosta zoony w odmianie pgrubej, co z reguy


jest niepodanym efektem.
Pakiet amsbsy, doczany przez amsmath, czyni zadanie duo atwiejszym. W pakiecie tym dostpne s polecenia \boldsymbol oraz \pmb.
Instrukcja pmb imituje znak pgruby przez wydrukowanie dwch nakadajcych si na siebie znakw, zoonych w odmianie normalnej. Mona tym

58

Wyraenia matematyczne

sposobem uzyska symbole pgrube nawet wtedy, gdy w systemie brak odpowiednich fontw.
\begin{displaymath} \mu, M \quad
\boldsymbol{\mu},\boldsymbol{M}\quad
\pmb{\mu}, \pmb{M} \end{displaymath}

, M

, M

, M

3.10. Zestawienie symboli matematycznych


W poniszych tabelach zestawiono wszystkie symbole standardowo dostpne
w trybie matematycznym. Symbole w tabelach 3.113.1510 s dostpne, jeeli
mamy zainstalowane dodatkowe fonty matematyczne (ams math fonts) i do
dokumentu doczymy pakiet amssymb. W razie braku fontw lub pakietu
mona je odnale w CTAN://macros/latex/required/amslatex. Ponadto
duo bardziej kompletne zestawienie symboli matematycznych mona znale w CTAN://info/symbols/comprehensive.
Tabela 3.1: Akcenty matematyczne
a
\hat{a}
a
\check{a} a
\tilde{a}
a
\acute{a}
a
` \grave{a} a \dot{a}
a
\ddot{a}
a
\breve{a}
@
a
\bar{a}
(a \vec{a}
A \widehat{A} AA \widetilde{A}
Tabela 3.2: Litery alfabetu greckiego

\alpha
\beta
\gamma
\delta
\epsilon
\varepsilon
\zeta
\eta
\Gamma
\Delta
\Theta

\theta
\vartheta
\iota
\kappa
\lambda
\mu
\nu
\xi
\Lambda
\Xi
\Pi

o
\pi
\varpi
\rho
\varrho
\sigma
\varsigma
\tau
\Sigma
\Upsilon
\Phi

\upsilon
\phi
\varphi
\chi
\psi
\omega

\Psi
\Omega

W trybie matematycznym LATEX wstawia dodatkowy may odstp po


przecinku i redniku, natomiast w wypadku dwukropka wstawia odstp
10

Tabele przygotowano na podstawie pliku symbols.tex (David Carlisle), gruntownie


zmodyfikowanego zgodnie z sugestiami Josefa Tkadleca.

3.10. Zestawienie symboli matematycznych

59

Tabela 3.3: Symbole relacji


Odpowiednie symbole negacji mona utworzy, poprzedzajc kade z poniszych polece instrukcj \not.
<
0
1

!
=

A
|
@
:

<
\leq lub \le
\ll
\prec
\preceq
\subset
\subseteq
\sqsubseta
\sqsubseteq
\in
\vdash
\mid
\smile
:
a

>
(
2
4
6

"
>
?
B
.
A

>
\geq lub \ge
\gg
\succ
\succeq
\supset
\supseteq
\sqsupseta
\sqsupseteq
\ni, \owns
\dashv
\parallel
\frown
\notin

.
=

=
!
>?

|=

D
)=

=
\equiv
\doteq
\sim
\simeq
\approx
\cong
\Joina
\bowtie
\propto
\models
\perp
\asymp
\neq lub \ne

Dostpne po doczeniu pakietu latexsym.

przed i za znakiem, bo traktuje dwukropek jako znak relacji. Oto ilustracja


tej rnicy:
Nie $f:A\to B$,
lecz $f\colon A\to B$

Nie f : A B, lecz f : A B

Jeeli przecinek oddziela cz cakowit liczby od czci dziesitnej, to wskazane jest zakaza LATEX-owi wstawiania dodatkowego odstpu, co zwykle
robi w trybie matematycznym. Wystarczy w tym celu otoczy przecinek
par nawiasw klamrowych. Porwnajmy:
Zamiast $22,115$ lepiej $22{,}115$

Zamiast 22, 115 lepiej 22,115

Znaki mniejszy-lub-rwny i wikszy-lub-rwny maj ksztat rny od stosowanego w krajach anglosaskich. Po doczeniu pakietu polski standardowe
w LATEXu polecenia \leq oraz \geq generuj polskie wersje tych relacji, to
znaczy 0 i ( zamiast i .

60

Wyraenia matematyczne

Tabela 3.4: Symbole operacji dwuargumentowych


+

X
"
$

+
\pm
\cdot
\times
\cup
\sqcup
\vee, \lor
\oplus
\odot
\otimes
\bigtriangleup
\lhda
\unlhda

P
S
V
Y
#
%

\mp
\div
\setminus
\cap
\sqcap
\wedge, \land
\ominus
\oslash
\bigcirc
\bigtriangledown
\rhda
\unrhda

?
>
B

Q
T
W

\triangleleft
\triangleright
\star
\ast
\circ
\bullet
\diamond
\uplus
\amalg
\dagger
\ddagger
\wr

Tabela 3.5: Symbole zmiennej wielkoci


!
B
C
D
\sum
\bigcup
\bigvee
\bigoplus
E
F
G
H
\prod
\bigcap
\bigwedge
\bigotimes
I
J
K
\coprod
\bigsqcup
\bigodot
L
M
N

\int

\oint

\biguplus

Tabela 3.6: Strzaki

e
C
E
G
#

\leftarrow lub \gets


\rightarrow lub \to
\leftrightarrow
\Leftarrow
\Rightarrow
\Leftrightarrow
\mapsto
\hookleftarrow
\leftharpoonup
\leftharpoondown
\rightleftharpoons
a

=
=

e
D
F
H

\longleftarrow
\longrightarrow
\longleftrightarrow
\Longleftarrow
\Longrightarrow
\Longleftrightarrow
\longmapsto
\hookrightarrow
\rightharpoonup
\rightharpoondown
\iff

Dostpne po doczeniu pakietu latexsym.

d
f
g
h
i
&

\uparrow
\downarrow
\updownarrow
\Uparrow
\Downarrow
\Updownarrow
\nearrow
\searrow
\swarrow
\nwarrow
\leadstoa

3.10. Zestawienie symboli matematycznych

61

Tabela 3.7: Ograniczniki


(
[
{
]
}
/

(
[ lub \lbrack
\{ lub \lbrace
] lub \rbrack
\} lub \rbrace
/

)
j
k
l
\

)
\rangle
\langle
\rfloor
\lfloor
\backslash

/
|
m

\uparrow
\downarrow
\updownarrow
| lub \vert
\lceil

d
.
n

\Uparrow
\Downarrow
\Updownarrow
\| lub \Vert
\rceil

Tabela 3.8: Due ograniczniki

\lgroup

\arrowvert

\rgroup
R
R \Arrowvert

\lmoustache \rmoustache

\bracevert

Tabela 3.9: Rne symbole


...
!
o

\dots
\hbar
\Re
\forall

\nabla
\bot
\diamondsuit
\neg lub \lnot
a

s
X
w

\cdots
\imath
\Im
\exists
\prime
\triangle
\top
\heartsuit
\flat

..
.

"

'

..
. \ddots
\vdots
\jmath
J \ell
\aleph
\wp
a
\mho
\partial
\emptyset \infty
\Boxa
( \Diamonda

\angle
\surd
\clubsuit \spadesuit
\natural
O \sharp

Dostpne po doczeniu pakietu latexsym.

Tabela 3.10: Symbole niematematyczne


\dag \S \copyright \ddag \P \pounds
Polecenia te s dostpne rwnie w trybie tekstowym.

Tabela 3.11: Ograniczniki (pakiet AMS)


% \ulcorner & \urcorner ' \llcorner ( \lrcorner
Tabela 3.12: Symbole Greckie i Hebrajskie (pakiet AMS)
# \digamma \varkappa % \beth & \daleth \ gimel

62

Wyraenia matematyczne

Tabela 3.13: Symbole relacji (pakiet AMS)


(
*
0

6
9

?
A
C
E
H
L
O
!

0
V
Y
\

\lessdot
) \gtrdot
\leqslant
+ \geqslant
\eqslantless
. \eqslantgtr
\leqq
1 \geqq
\lll lub \llless \ggg lub \gggtr
\lesssim
7 \gtrsim
\lessapprox
: \gtrapprox
\lessgtr
\gtrless
\lesseqgtr
@ \gtreqless
\lesseqqgtr
B \gtreqqless
\preccurlyeq
D \succcurlyeq
\curlyeqprec
F \curlyeqsucc
\precsim
I \succsim
\precapprox
. \succapprox
\subseteqq
M \supseteqq
\Subset
P \Supset
\sqsubset
" \sqsupset
\therefore
\because
\shortmid
1 \shortparallel
\smallsmile
W \smallfrown
\vartriangleleft Z \vartriangleright
\trianglelefteq
] \trianglerighteq

)
,
/
2
5
8
;
>

,
G
J
K
N
Q
/

U
X
[
^

\doteqdot lub \Doteq


\risingdotseq
\fallingdotseq
\eqcirc
\circeq
\triangleq
\bumpeq
\Bumpeq
\thicksim
\thickapprox
\approxeq
\backsim
\backsimeq
\vDash
\Vdash
\Vvdash
\backepsilon
\varpropto
\between
\pitchfork
\blacktriangleleft
\blacktriangleright

Tabela 3.14: Strzaki (pakiet AMS)


_``

f
i
l
o
r
t
w
2
z

\dashleftarrow
\leftleftarrows
\leftrightarrows
\Lleftarrow
\twoheadleftarrow
\leftarrowtail
\leftrightharpoons
\leftrightsquigarrow
\looparrowleft
\curvearrowleft
\circlearrowleft

``a

g
j
m
p
#
u
x
3
{

\dashrightarrow
b \multimap
\rightrightarrows e \upuparrows
\rightleftarrows
h \downdownarrows
\Rrightarrow
k \upharpoonleft
\twoheadrightarrow n \upharpoonright
\rightarrowtail
q \downharpoonleft
\rightleftharpoons s \downharpoonright
\rightsquigarrow
v \Lsh
\looparrowright
y \Rsh
\curvearrowright
\circlearrowright

3.10. Zestawienie symboli matematycznych

63

Tabela 3.15: Negacje symbolw relacji i strzaek (pakiet AMS)

7
:
=
@
C
F
I
L

R
U
X
[
^
a
d
g

\nless
\lneq
\nleq
\nleqslant
\lneqq
\lvertneqq
\nleqq
\lnsim
\lnapprox
\nprec
\npreceq
\precneqq
\precnsim
\precnapprox
\subsetneq
\varsubsetneq
\nsubseteq
\subsetneqq

j \nleftarrow
m \nLeftarrow

8
;
>
A
D
G
J
M
P
S
V
Y
\
_
b
e
h

\ngtr
\gneq
\ngeq
\ngeqslant
\gneqq
\gvertneqq
\ngeqq
\gnsim
\gnapprox
\nsucc
\nsucceq
\succneqq
\succnsim
\succnapprox
\supsetneq
\varsupsetneq
\nsupseteq
\supsetneqq

k \nrightarrow
n \nRightarrow

6
9
<
?
B

H
K
N
Q
T
W
Z
]
`
c
f
i

\varsubsetneqq
\varsupsetneqq
\nsubseteqq
\nsupseteqq
\nmid
\nparallel
\nshortmid
\nshortparallel
\nsim
\ncong
\nvdash
\nvDash
\nVdash
\nVDash
\ntriangleleft
\ntriangleright
\ntrianglelefteq
\ntrianglerighteq

l \nleftrightarrow
o \nLeftrightarrow

Tabela 3.16: Relacje dwuargumentowe (pakiet AMS)


|
p


\dotplus
\ltimes
\Cup lub \doublecup
\Cap lub \doublecap
\boxplus
\boxtimes
\leftthreetimes
\rightthreetimes

}
q

\centerdot
\rtimes
\veebar
\barwedge
\boxminus
\boxdot
\curlyvee
\curlywedge

~
r
s

\intercal
\divideontimes
\smallsetminus
\doublebarwedge
\circleddash
\circledcirc
\circledast

64

Wyraenia matematyczne

Tabela 3.17: Rne symbole (pakiet AMS)


!

v
x

\hbar
\square
\vartriangle
\triangledown
\lozenge
\angle
\diagup
\nexists
\eth

w
y
"

\hslash
\blacksquare
\blacktriangle
\blacktriangledown
\blacklozenge
\measuredangle
\diagdown
\Finv
\mho

\Bbbk
\circledS
\complement
\Game
\bigstar
\sphericalangle
\backprime
\varnothing

Tabela 3.18: Kroje pisma dostpne w trybie matematycznym


Przykad
ABCdef
ABCdef
ABCdef
ABC
ABC

Polecenie
\mathrm{ABCdef}
\mathit{ABCdef}
\mathnormal{ABCdef}
\mathcal{ABC}
\mathcal{ABC}
\mathscr{ABC}
ABCdef \mathfrak{ABCdef}
ABC
\mathbb{ABC}

Wymagany pakiet

eucal z opcj mathcal lub


eucal z opcj mathscr
eufrak
amsfonts lub amssymb

Rozdzia 4

Rysunki, skorowidze,
generowanie plikw PDF. . .
Kolej teraz na opis moliwoci LATEXa przydatnych w pracy nad wikszymi dokumentami, takich jak: doczania rysunkw w dokumencie, tworzenie skorowidzw
i spisw literatury. Bardziej szczegowy opis tych i pokrewnych zagadnie mona
znale w [12] oraz [6]. Pod koniec niniejszego rozdziau jest te mowa o tym, jak
LATEX moe generowa pliki pdf.

4.1. Wczanie grafiki w formacie EPS


Najprociej przygotowa ilustracj w wyspecjalizowanym programie graficznym w rodzaju xfig, CorelDraw!, Freehand, gnuplot, itp., a pniej wczy
gotowy rysunek do dokumentu. Chocia mona to zrobi na wiele sposobw, tutaj przedstawimy jedynie sposb na doczanie grafiki w formacie
eps (Encapsulated PostScript), jako e jest to technika prosta i szeroko stosowana1 . Do pracy z grafik w formacie eps potrzebujemy albo drukarki
wyposaonej w jzyk Postscript, albo programu ghostscript, dostpnego na
przykad pod adresem http://www.cs.wisc.edu/~ghost/. Program ghostscript oraz uatwiajce posugiwanie si nim graficzne nakadki, takie jak:
ghostview, gv czy gsview s dostpne (pod wyej wymienionym adresem)
na wszystkie popularne platformy systemowe.
Wielu polece przydatnych do wczania rysunkw dostarcza pakiet graphicx (autor: D. P. Carlisle), bdcy czci zestawu o nazwie graphics2 .
Wczenie grafiki do dokumentu za jego pomoc moemy przedstawi w nastpujcy sposb:
1

Uytkownicy programw typu Office, ktrzy w tym momencie by moe po raz


pierwszy usyszeli, e istnieje co takiego jak jzyk Postscript i jego wariant eps, mog
by tym stwierdzeniem zdziwieni. Tak jednak jest w istocie: inne standardy obowizuj
w biurze, a inne w przemyle poligraficznym. Wicej na temat grafiki mona znale w [19].
2
Zestaw graphics jest obowizkow (ang. required ) czci kadej dystrybucji LATEXa,
mona go te znale w katalogu CTAN://macros/latex/required/graphics.

66

Rysunki, skorowidze, generowanie plikw PDF. . .

1. W programie graficznym zachowujemy rysunek w formacie eps3 lub


konwertujemy rysunek na format eps, jeeli dysponujemy ju gotow
grafik ale w innym formacie4 .
2. Doczamy pakiet graphicx do preambuy dokumentu:
\usepackage[dvi-ps]{graphicx}

gdzie dvi-ps oznacza nazw programu do konwersji pliku wyjciowego


.dvi na plik postscriptowy. Najczciej uywanym do tego celu programem jest dvips. Nazwa sterownika jest tu konieczna, gdy brakuje
standardu dotyczcego doczania grafiki postscriptowej w dokumentach TEXowych. Kierujc si nazw sterownika, pakiet graphicx potrafi
do wynikowego pliku .dvi wczy informacj potrzebn do tego, by
interpreter Postscriptu (w drukarce bd w komputerze) poprawnie
umieci rysunek na wydruku.
3. Instrukcj:
\includegraphics[klucz =warto, . . . ]{plik }

wczamy plik do dokumentu. Parametr opcjonalny jest list oddzielonych przecinkami kluczy, o okrelonych przez nas wartociach. Klucze
wykorzystujemy do zmiany parametrw doczanego rysunku, takich
jak szeroko, wysoko czy kt obrotu. W tabeli 4.1 zamieszczono
najwaniejsze klucze.
Tabela 4.1: Znaczenie waniejszych kluczy polecenia \includegraphics
width=w
height=h
angle=a
scale=s

skalowanie rysunku do podanej szerokoci w


skalowanie rysunku do podanej wysokoci h
obrt o kt a (przeciwnie do ruchu wskazwek zegara)
rwnomierne przeskalowanie w skali s

Poniszy przykad pomoe zrozumie ca ide:


3
Jeeli uywany przez nas program graficzny na to nie pozwala, to sprbujmy zainstalowa sterownik do drukarki postscriptowej, jak Apple Laser Writer, i drukowa tym
sterownikiem do pliku. Przy odrobinie szczcia otrzymamy dokument w formacie eps. Pamitajmy, e plik eps moe zawiera tylko jedn stron. Sterowniki niektrych drukarek
mona jawnie ustawi do tworzenia plikw wyjciowych wanie w tym formacie.
4
W wypadku grafiki obwiedniowej i rastrowej, mona do tego celu uy programu ImageMagick (http://www.imagemagick.org/). Dobrym programem do konwersji, ale tylko
grafiki rastrowej, jest gimp (http://www.gimp.org). Do konwersji zdj albo innych grafik
w formacie jpg wygodnym narzdziem jest jpeg2ps http://gnuwin32.sourceforge.net/
packages/jpeg2ps.htm. Niestety konwersja plikw zapisanych w promowanym przez firm
Microsoft formacie wmf/emf (MS Visio, MS Office, itp.) czsto daje opakane rezultaty,
ale to ju jest wina wspomnianej firmy i stosowanej przez ni strategii biznesowej. . .

4.1. Wczanie grafiki w formacie EPS

\begin{figure}
%\begin{center} zamiast \begin{center} uyj lepiej
\centering % bo \centering nie wstawia dodatkowego odstpu
\includegraphics[angle=90,width=0.5\textwidth]{sowauszata.eps}
\end{figure}
W powyszym przykadzie do dokumentu jest doczany rysunek z pliku
sowauszata.eps. Rysunek najpierw obracamy o 90o w kierunku przeciwnym do ruchu wskazwek zegara, a nastpnie przeskalowujemy tak, by nada
mu szeroko rwn poowie szerokoci szpalty. Skalowanie grafiki jest rwnomierne z uwagi na brak klucza height. Szeroko i wysoko rysunku
moemy te okreli w jednostkach bezwzgldnych, takich jak punkty czy
centymetry. W tabeli 6.5 zestawiono jednostki miar w LATEXu. Wicej informacji na temat powyszych zagadnie znajdziemy w [2] i [22].
Z powodw opisanych w punkcie 4.7.3, zaleca si podawa nazw doczanego pliku graficznego bez rozszerzenia, to znaczy lepiej zapisa powysze
polecenie \includegraphics nastpujco:
\includegraphics[angle=90,width=0.5\textwidth]{sowauszata}
W takiej sytuacji LATEX bdzie szuka pliku sowauszata o rozszerzeniu adekwatnym do moliwoci zadeklarowanego w poleceniu \usepackage sterownika. Przykadowo, jeeli graphicx byo wywoane z opcj dvips, to szukany
bdzie plik sowauszata.eps, jeeli za uyjemy opcji pdftex, to bd szukane pliki o rozszerzeniach .pdf, .jpg i .png, a pierwszy znaleziony zostanie
doczony.
Rysunki najlepiej jest umieszcza w oddzielnym katalogu, bdcym podkatalogiem tego, w ktrym jest dokument LATEXa. Bez wzgldu na uywany
system operacyjny katalogi w ciece dostpu naley odziela znakiem /5 :
\includegraphics[width=0.5\textwidth]{rys/sowy/sowauszata}
Czasami wewntrz jednego otoczenia figure chcemy umieci kilka plikw
graficznych. W tym celu wystarczy, e umiecimy je obok siebie i w miar
potrzeby odpowiednio przeskalujemy:
\begin{figure}
\centering
%% http://pl.wikipedia.org/wiki/Ptaki_Polski
\includegraphics[width=.3\textwidth]{sowauszata}
\includegraphics[width=.3\textwidth]{puszczykmszarny}
\includegraphics[width=.3\textwidth]{bubobubo}%puchacz
\end{figure}
W powyszym przykadzie trzy rysunki zostan umieszczone jeden obok
drugiego. Ich czna szeroko wyniesie 3 0,3 = 0,9 szerokoci kolumny
5

Wszystkie uwagi dotyczce nazw plikw opisane w punkcie 1.8 dla polecenia \include
dotycz take polecenia \includegraphics.

67

68

Rysunki, skorowidze, generowanie plikw PDF. . .

(\textwidth w jzyku LATEXa), midzy rysunkami wstawiony zostanie odstp wielkoci zwykej spacji, co wynika z zasady LATEXa, e pojedyncza
zmiana wiersza jest traktowana jak odstp. Cao zostanie wyrodkowana
w osi szpalty. Pamitajmy, eby do tego stosowa polecenie \centering
a nie otoczenie center, gdy to drugie wstawia dodatkowy a zbdny odstp
pionowy.
Aby efekt kocowy na wydruku by zadowalajcy, rysunki powinny
mie identyczne wymiary. Inaczej, albo poszczeglne obrazki bd optycznie
niezgodnie (np. sowa uszata bdzie 3 razy wiksza od puchacza), albo te
poszczeglne rysunki skadowe bd miay rne wymiary (rysunek z sow
uszat bdzie dwa razy mniejszy ni rysunek z puchaczem).
Czasami rysunki czy tabele zmieciyby si na stronie, gdyby obrci
je o 90o . W tym celu mona skorzysta z pakietu rotating. Do obracania
dowolnego fragmentu tekstu, pudeka (por. punkt 6.6), tabeli itp. naley
uywa otoczenia rotate:
\begin{rotate}{kt} ... \end{rotate}
Do obrcenia obiektu o kt 90o naley uy otoczenia sideways:
\begin{sideways} ... \end{sideways}
Do obrcenia tabeli cznie z podpisem pod tabel naley zastosowa otoczenie sidewaystable (uwaga: tabela jest umieszczana na osobnej stronie):
\begin{sidewaystable} ... \end{sidewaystable}
Do obrcenia rysunku cznie z podpisem pod rysunkiem naley uy otoczenia sidewaysfigure (uwaga: rysunek jest umieszczany na osobnej stronie):
\begin{sidewayfigure} ... \end{sidewaysfigure}

4.2. Spis literatury


Do przygotowania spisu literatury suy otoczenie thebibliography. Kada
pozycja w tym otoczeniu ma posta polecenia:
\bibitem{etykieta}

Etykiety mona nastpnie uy do zacytowania w dokumencie tej pozycji,


czyli ksiki, artykuu bd pracy konferencyjnej:
\cite{etykieta}

Numerowanie pozycji literaturowych jest automatyczne (polecenia \bibitem


i \cite dziaaj podobnie jak opisane ju instrukcje \label i \ref). Otoczenie thebibliography ma jeden parametr, ktry powinien zawiera tekst
przynajmniej tak szeroki jak najszersza etykieta ze spisu. W poniszym
przykadzie zapis 99 oznacza, e numery pozycji w spisie bd co najwyej dwucyfrowe.

69

Partl~\cite{pa} zaproponowa,
eby \ldots
\begin{thebibliography}{99}
\bibitem{pa} H.~Partl:
\emph{German \TeX},
TUGboat Vol.~9, No.~1 (88)
\end{thebibliography}

Partl [1] zaproponowa, eby . . .

Bibliografia
[1] H. Partl: German TEX, TUGboat Vol. 9,
No. 1 (88)

Do wikszych projektw przydaje si program o nazwie BibTEX. Program


ten znajduje si w kadej wspczesnej dystrybucji TEXa. BibTEX korzysta
z bazy bibliograficznej (biblioteki), z ktrej wybiera tylko te pozycje literaturowe, ktre byy cytowane w dokumencie. Sposb formatowania spisw
literatury jest sterowany za pomoc specjalnych szablonw, ktrych modyfikacja umoliwia zmian ukadu graficznego spisu.
Po przetworzeniu pliku, na podstawie zawartoci etykiet zapisanych
przez LATEXa do pliku .aux, BibTEX tworzy spis literatury obejmujcy tylko
te pozycje z biblioteki, ktre cytowano w dokumencie. Zwykle plik ten ma
rozszerzenie .bib. Format spisu zaley od specyfikacji szablonu znajdujcej
si w pliku o rozszerzeniu .bst, a jest zapisywany do pliku o rozszerzeniu .bbl. Do poprawnego sformatowania bibliografii i cytowa konieczne
jest przynajmniej trzykrotne przetworzenie dokumentu LATEXem. Wicej informacji na temat przygotowywania spisu literatury za pomoc BibTEXa
zawiera [1].

4.3. Skorowidze
Niezwykle uytecznym elementem wielu ksiek jest skorowidz. Mona go
utworzy stosunkowo atwo za pomoc LATEXa oraz programu narzdziowego
o nazwie makeindex6 . W tym wprowadzeniu omwimy jedynie podstawowe
polecenia dotyczce skorowidzw. Jak zawsze, wicej informacji znajdziemy
w [6].
Generowa hasa do skorowidza mona dopiero po zaadowaniu w preambule dokumentu pakietu o nazwie makeidx:
\usepackage{makeidx}

oraz wstawieniu (take w obrbie preambuy) instrukcji:


\makeindex
6

Albo makeidx, jeli nasz system operacyjny nie pozwala uywa nazw duszych ni
8 znakw.

70

Rysunki, skorowidze. . .

Haso wstawiamy do skorowidza poleceniem:


\index{haso}

gdzie haso oznacza pozycj w skorowidzu. Polecenie \index{haso} umieszczamy w pliku rdowym bezporednio w miejscu zwizanym z okrelonym
hasem. W tabeli 4.2 przedstawiono przykady uycia hase.
Tabela 4.2: Przykady skadni polecenia \index
Przykad
\index{kot}
\index{kot!rudy}
\index{Sam@\textsl{Sam}}
\index{Lin@\textbf{Lin}}
\index{Cadiz@C\adiz}
\index{Jenny|textbf}
\index{Joe|textit}
\index{kot|see{felis}}

Haso
kot, 1
rudy, 3
Sam, 2
Lin, 7
Cadiz, 77
Jenny, 3
Joe, 5
kot, zob. felis

Uwagi
haso pierwszego stopnia
haso drugiego stopnia
haso sformatowane
haso sformatowane
poprawne sortowanie
formatowanie numeru strony
formatowanie numeru strony
relacja pomidzy hasami

Aby wstawi do skorowidza literalnie znak !, @ albo | naley poprzedzi go znakiem ".

Podczas przetwarzania pliku rdowego przez LATEXa kada instrukcja


\index powoduje, e do pliku pomocniczego zostaje zapisana odpowiednia
pozycja skorowidza wraz z biecym numerem strony. Plik pomocniczy nosi
t sam nazw co gwny plik rdowy, ma jednak rozszerzenie .idx. Trzeba
go nastpnie przetworzy programem makeindex, w taki oto sposb:
makeindex plik

W rezultacie program makeindex tworzy posortowany skorowidz i zapisuje


go do pliku o nazwie identycznej z nazw gwnego pliku rdowego i o rozszerzeniu .ind. Jeeli jeszcze raz przetworzymy plik rdowy, to tym razem
skorowidz zostanie wczony w miejscu wystpienia polecenia:
\printindex

Pakiet showidx, wchodzcy w skad standardowej dystrybucji LATEX 2 , drukuje pozycje skorowidza na lewym marginesie szpalty. Jest on do przydatny do sprawdzania i korygowania skorowidza.
Reguy sortowania skorowidza zale oczywicie od jzyka, w ktrym piszemy dokument. Pod tym wzgldem program makeindex jest nieprzydatny
dla dokumentw polskojzycznych, gdy sortuje hasa jedynie wedug zasad
jzyka angielskiego. Wersj programu makeindex przystosowan do polskich
regu sortowania wyrazw jest plmindex (autor: Wodzimierz Macewicz).

4.4. Paginy grne i dolne

71

Potrafi on tworzy skorowidz wedug regu angielskich jak i polskich. Program ten jest dostpny na przykad pod adresem http://www.ia.pw.edu.
pl/~wujek/tex/idx/plmindex.zip. Wicej informacji na temat polskich
zasad tworzenia skorowidzw mona znale w [17].
Umieszczajc w dokumencie polecenie \index, powinnimy zwrci
uwag na odstpy. Oto przykad, jak moe to wpyn na skad:
Moje sowo \index{sowo}. Inaczej
ni sowo\index{sowo}. Zwrmy
uwag na pozycj kropki.

Moje sowo . Inaczej ni sowo. Zwrmy


uwag na pozycj kropki.

4.4. Paginy grne i dolne


Pakiet fancyhdr (autor Piet van Oostrum), ktry mona znale w katalogu:
CTAN://macros/latex/contrib/fancyhdr/, udostpnia polecenia do definiowania zawartoci pagin. Zwrmy uwag na rnice w wygldzie pagin
na stronach: biecej i poprzedniej. Oprcz numeru strony, w paginie grnej
na stronie parzystej znajduje si tytu rozdziau, a na stronie nieparzystej
dodatkowo tytu punktu. Pagin, ktrej zawarto poda za treci dokumentu, nazywa si fachowo yw pagin.
\documentclass{book}
\usepackage{fancyhdr}
\pagestyle{fancy}
% zmiana liter w~ywej paginie na mae
\renewcommand{\chaptermark}[1]{\markboth{#1}{}}
\renewcommand{\sectionmark}[1]{\markright{\thesection\ #1}}
\fancyhf{} % usu biece ustawienia pagin
\fancyhead[LE,RO]{\small\bfseries\thepage}
\fancyhead[LO]{\small\bfseries\rightmark}
\fancyhead[RE]{\small\bfseries\leftmark}
\renewcommand{\headrulewidth}{0.5pt}
\renewcommand{\footrulewidth}{0pt}
\addtolength{\headheight}{0.5pt} % pionowy odstp na kresk
\fancypagestyle{plain}{%
\fancyhead{} % usu p. grne na stronach pozbawionych
% numeracji (plain)
\renewcommand{\headrulewidth}{0pt} % pozioma kreska
}

Rysunek 4.1: Przykad wykorzystania pakietu fancyhdr

72

Rysunki, skorowidze. . .

Za pomoc LATEXa mona sobie atwo poradzi z automatycznym umieszczaniem odpowiedniej informacji w ywej paginie. Rozwizanie jest nastpujce. W definicjach polece skadajcych paginy wykonanie instrukcji
\rightmark oraz \leftmark wstawia odpowiedni tytu rozdziau, punktu
lub cokolwiek innego. Poleceniom \rightmark i \leftmark jest nadawane
nowe znaczenie (nowe wartoci) za kadym wykonaniem instrukcji skadania
tytuu rozdziau i punktu (\chapter, \section).
W rzeczywistoci, \chapter oraz inne polecenia podziau logicznego
dokumentu nie zmieniaj znaczenia polece \rightmark i \leftmark. Odwouj si one natomiast do polece \chaptermark, \sectionmark oraz
\subsectionmark. Dopiero uycie tych instrukcji powoduje zmian definicji
polece \rightmark i \leftmark.
Do zmiany postaci tytuu rozdziau w paginie wystarczy modyfikacja
polecenia \chaptermark. Rysunek 4.1 przedstawia takie wykorzystanie pakietu, e paginy grne bd wyglda mniej wicej tak jak w tym podrczniku. Kompletny opis pakietu znajduje si w jego dokumentacji.

4.5. Pakiet verbatim


Pakiet verbatim udostpnia poprawion wersj standardowego otoczenia
verbatim (opisanego na stronie 38). Oprcz wielu drobnych, chocia istotnych ulepsze pakiet udostpnia polecenie:
\verbatiminput{plik }

ktre docza do dokumentu plik tekstowy tak, jakby jego zawarto znajdowaa si wewntrz otoczenia verbatim.
Pakiet verbatim jest czci grupy pakietw o nazwie tools. Wchodz
one w skad standardowej dystrybucji LATEXa. Wicej szczegw znajdziemy w [25].

4.6. Instalowanie dodatkowych pakietw


Ten punkt jest adresowany raczej do tych czytelnikw, ktrzy maj ju dowiadczenie w LATEXu, do skadania dokumentw uywaj wasnych polece
i otocze, a odczuwaj potrzeb uporzdkowania sobie rodowiska pracy
bd udostpnienia go innym. Czytelnicy pocztkujcy mog bez wielkiej
straty pomin ten punkt i kontynuowa czytanie od nastpnego punktu.
W wikszo instalacji LATEXa wbudowany jest bogaty zestaw pakietw
dodatkowych, jeszcze ich wicej mona znale w sieci. Gwnym miejscem,
gdzie mona je znale, jest archiwum ctan (http://www.ctan.org/).
Pakiety takie jak geometry albo hyphenat, a take wiele innych, skadaj si na og z dwch plikw: jednego o rozszerzeniu .ins i drugiego

4.6. Instalowanie dodatkowych pakietw

o rozszerzeniu .dtx. Czsto jest te doczany plik readme.txt z krtkim


opisem pakietu. Ma si rozumie, zawsze warto zaczyna od przeczytania
tego wanie pliku.
Po skopiowaniu plikw pakietu na nasz komputer trzeba je w ten czy
inny sposb przetworzy, aby po pierwsze wprowadzi do dystrybucji TEXa
informacj o nowym pakiecie, a po drugie uzyska dokumentacj. Oto, jak
osiga si pierwszy z tych celw:
1. Uruchamiamy LATEXa na pliku.ins. To powoduje wygenerowanie pliku
.sty.
2. Plik .sty kopiujemy w miejsce, w ktrym nasza dystrybucja TEXa
potrafi go odnale. Zazwyczaj jest to katalog o nazwie
.../localtexmf /tex/latex
(uytkownicy systemw MS Windows oraz os/2 wiedz, e w ich
systemie trzeba uywa znaku ukonika pochylonego przeciwnie).
3. Odwieamy zawart w dystrybucji baz danych nazw plikw. Odpowiednie polecenie zaley od dystrybucji TEXa: w teTEXu i fpTEXu jest
to maktexlsr; a w MikTEXu initexmf -update-fndb. W dystrybucjach wyposaonych w rodowisko graficzne (np. MikTEX) do odwieenia bazy nazw wystarczy wybra odpowiedni pozycj z menu.
Mona teraz wygenerowa dokumentacj z pliku .dtx:
1. Uruchamiamy LATEXa na pliku .dtx, w wyniku czego powstanie plik
.dvi. Niewykluczone, e zanim w dokumentacji uporzdkuj si numery odsyaczy, bdziemy musieli uruchomi LATEXa kilka razy.
2. Sprawdzamy, czy wrd wielu plikw, ktre wygenerowa LATEX, jest
plik .idx. Jeli go nie wida, to moemy przej do kroku 5.
3. Aby wygenerowa skorowidz, piszemy linijk rozkazow:
makeindex -s gind.ist nazwa

gdzie nazwa oznacza nazw gwnego spord przetwarzanych plikw,


bez rozszerzenia.
4. Ponownie uruchamiamy LATEXa na pliku .dtx.
5. Na koniec co rwnie wanego: aby uprzyjemni sobie czytanie, tworzymy plik .ps albo .pdf.
Czasami wrd wygenerowanych plikw znajdziemy jeszcze plik .glo. W takiej sytuacji midzy krokami 4 i 5 powinnimy wykona:
makeindex -s gglo.ist -o name.gls name.glo

Zawsze przed przejciem do kroku 5 musimy mie pewno, e w poprzednim


kroku uruchomilimy LATEXa na pliku .dtx.

73

74

Rysunki, skorowidze. . .

4.7. Tworzenie plikw PDF: pdfLATEX i hyperref


pdf (Portable Document Format) to format hipertekstowy. Podobnie jak na
stronie internetowej, niektre sowa s w dokumencie zaznaczone jako hipercza. cz one miejsce w dokumencie z innymi jego miejscami bd nawet
z innymi dokumentami; gdy klikamy w takie hipercze, jestemy przenoszeni do miejsca docelowego. W kontekcie LATEXa oznacza to, e wszystkie
wystpienia polece \ref i \pageref staj si hiperczami. Na dodatek spis
treci, skorowidz i wszystkie podobne struktury staj si zestawami czy.
Wiekszo spotykanych dzi w Internecie stron jest napisana w jzyku
html (HyperText Markup Language). Kiedy przychodzi do pisania pracy
naukowej, format ten ma dwie wady:
1. Nie ma dobrej metody wczania wzorw matematycznych. Chocia
zosta zdefiniowany odpowiedni standard, to jednak wikszo przegldarek go nie obsuguje, brakuje te w komputerach odpowiednich
fontw.
2. Dokumenty html mona co prawda drukowa, ale wydruki wygldaj
rnie w rnych przegldarkach, a take na rnych platformach. Od
jakoci, do ktrej przyzwyczaja nas LATEX, wydruki te dzieli przepa.
Prbowano ju na wiele sposobw napisa program tumaczcy jzyk LATEXa
na html. Niektre z tych programw daj nawet nieze wyniki w tym
sensie, e s w stanie ze rda w standardowym LATEXu wygenerowa czytelny dokument html. Wszystkim jednak zawsze czego brakuje. Gdy tylko
zachodzi konieczno uycia bardziej wyrafinowanych moliwoci LATEXa
bd jego pakietw zewntrznych, jako spada. Autorom, ktrym zaley na
publikowaniu w sieci www, a jednoczenie chc utrzyma wysok jako typograficzn, pozostaje w zasadzie wycznie pdf. Wikszo wspczesnych
przegldarek sieciowych potrafi wywietla dokumenty w tym formacie.
Chocia przegldarki do plikw w formatch dvi i ps s dostpne na
prawie kadej platformie, to jeszcze powszechniej spotyka si przegldarki
do plikw pdf, takie jak Acrobat Reader i xpdf. Tak wic, jeli nasz prac
udostpnimy w postaci pdf, to stanie si ona atwiej dostpna dla grona
potencjalnych czytelnikw.

4.7.1. Tworzenie dokumentw PDF w LATEXu


S dwa sposoby7 zamiany plikw rdowych LATEXa na dokument pdf.
Pierwszy z nich polega na zamianie pliku dvi na dokument ps (zwykle za
pomoc programu dvips), ktry nastpnie jest transformowany do formatu
pdf bd programem ghostscript, bd z uyciem komercyjnego narzdzia
Acrobat Distiller, firmy Adobe. Drugi sposb to bezporednie generowanie
7

Tych sposobw jest wicej, ale przedstawione dwa s zdecydowanie najczciej uywane.

4.7. Tworzenie plikw PDF: pdfLATEX i hyperref

dokumentu pdf za pomoc programu pdfTEX. Pierwszy z wymienionych


sposobw, mimo e na pierwszy rzut oka wydaje si bardziej pracochonny,
ma t przewag nad drugim, e umoliwia wykorzystanie wielu wartociowych pakietw stosujcych jzyk Postscript, choby takich jak rotate czy
pstricks. Z kolei utworzenie pliku pdf bezporednio z pliku rdowego, za
pomoc programu pdfTEX, jest prostsze. Ktrkolwiek z metod wybierzesz,
w wikszoci przypadkw efekt kocowy bdzie identyczny.
e Th`
Program pdfTEX, opracowany przez H`an Th
anha, generuje dokument pdf na podobnej zasadzie, jak TEX produkuje plik dvi. Istnieje te
pdfLATEX, ktry tworzy pliki pdf ze rde LATEXowych. Zarwno pdfTEX,
jak i pdfLATEX wchodz w skad wszystkich wspczesnych dystrybucji TEXa,
takich jak: teTEX, fpTEX, MikTEX, TEXLive czy CMacTEX.
Do wygenerowania pliku pdf zamiast dvi wystarcza zastpi polecenie
latex file.tex instrukcj pdflatex file.tex. W zintegrowanym rodowisku graficznym, takim jak TeXnicCenter czy Kile, uruchomienie obu
programw polega na wybraniu odpowiedniego przycisku z menu.
Tworzenie dobrej jakoci dokumentw pdf wymaga: uycia odpowiednich
fontw, doczenia grafiki we waciwym formacie oraz zdefiniowania hiperczy dla elementw takich jak odsyacze, spisy czy skorowidze. W kolejnych
punktach omwimy te zagadnienia szczegowo. Jeszcze bardziej detaliczny
opis mona znale w [24].

4.7.2. Fonty bitmapowe i obwiedniowe


Fonty s bardzo wan czci kadego systemu skadu. Font to w istocie program komputerowy, zawierajcy opisy znakw oraz dodatkowe informacje
okrelajce sposb ich drukowania i pozycjonowania na stronie. Wikszo
fontw jest komercyjna i nie moe by swobodnie rozpowszechniana. Z tego
powodu system TEX nie uywa fontw systemowych, na przykad fontw
dostpnych w systemie MS Windows, lecz wykorzystuje alternatywne kroje
pisma o statusie Oprogramowania Otwartego. Inaczej, dokumentu przygotowanego na przykad w systemie MS Windows nie mona by poprawnie
przetworzy w systemie Linux albo, jeeli nawet daoby si go przetworzy,
to otrzymalibymy dokument wygldajcy inaczej8 .
Z punktu widzenia technologii komputerowej fonty dzielimy na bitmapowe i obwiedniowe, przy czym te pierwsze za wyjtkiem systemu TEX
maj znaczenie historyczne. Istnieje kilka standardw tworzenia fontw obwiedniowych: fonty postscriptowe (tzw. fonty Type 1 albo typu pierwszego),
fonty TrueType oraz najnowsze OpenType. Klasyczne bitmapowe fonty
TEXa okrela si akronimem pk.
8
Inne na przykad byoby amanie wierszy i podzia na strony. W edytorze MS Word
nie jest to zreszt uwaane za bd, bo w tamtym programie dokument jest przenony, ale
tylko razem z komputerem, bo przesanie dokumentu na inny komputer z reguy powoduje,
e jest on zoony inaczej.

75

76

Rysunki, skorowidze. . .

LATEX umie korzysta zarwno z fontw pk, jak i z fontw Type 1,


za pdfLATEX potrafi dodatkowo uywa fontw TrueType i OpenType.
Jednake dokument z tradycyjnymi fontami pk bardzo le wyglda w przegldarce Acrobat Reader. Najlepiej uywa wycznie fontw Type 1, bo
wwczas dokumenty zawsze wywietlaj si poprawnie. Wspczesne instalacje TEXa s domylnie skonfigurowane tak, by uywane byy fonty Type 19 .
W zalenoci od sposobu polonizacji dokumentu (por. punkt 2.5.1) LATEX
albo wykorzysta obwiedniowe wersje fontw pl, albo przeczy si na fonty
z pakietu cm-super, ktre s implementacj fontw ec w technologii Type 1.
Ostatnio dostpna staa si wysokiej jakoci rodzina fontw obwiedniowych lm (Latin Modern). Jeli dysponujemy wieej daty instalacj TEXa,
to jest cakiem moliwe, e zawiera ona ju t rodzin. Wystarczy w takim
wypadku doda do preambuy:
\usepackage{lmodern}
\usepackage[T1]{fontenc}
Uwaga! Rodzina lm nie zawiera na razie fontw matematycznych, dlatego
do skadu formu i tak potrzebne s albo fonty pl, albo oryginalne fonty
LATEXowe.
Uwaga! Jeli w pliku o rozszerzeniu .log, zawierajcym raport z kompilacji,
pojawi si komunikaty w rodzaju:
Warning: pdftex (file eurmo10): Font eur... not found
to oznacza, e ktry z fontw potrzebnych do przetworzenia dokumentu
nie zosta odnaleziony. Problem taki wymaga rzetelnej naprawy, gdy przegldarka plikw pdf w ogle nie wywietli stron ze znakami z brakujcego
fontu.

4.7.3. Doczanie grafiki


Do wczania grafiki najlepiej korzysta z pakietu graphicx (zobacz str. 65).
Po wpisaniu pdftex jako opcji sterownik pakiet zadziaa te w pdfLATEXu:
\usepackage[pdftex]{color,graphicx}
W tym przykadzie pojawia si rwnie pakiet color, jako e stosowanie
kolorw w sieci jest naturalne.
Tyle dobrych wieci. Ze s takie, e grafika w formacie eps nie dziaa
w pdfLATEXu. Jeli w argumencie instrukcji \includegraphics pominiemy
rozszerzenie nazwy pliku, to pakiet graphicx bdzie szuka pliku w formacie
zalenym od opcji sterownik. W programie pdfTEX dopuszczalny jest jeden
z formatw: .png, .pdf, .jpg, .mps (METAPOST), ale nie .eps.
9
Aby si przekona, czy tak jest w wypadku twojej instalacji, utwrz plik pdf (na
przykad za pomoc pdfLATEX) i wywietl go w oknie przegldarki Acrobat Reader. Jeeli
fonty na ekranie s nieczytelne i maj poszarpane brzegi, to masz problem. W nowych
dystrybucjach LATEXa problem ten nie powinien wystpi, wic jeeli go napotkae, to
przypuszczalnie masz zainstalowan zbyt okrojon wersj systemu TEX.

4.7. Tworzenie plikw PDF: pdfLATEX i hyperref

Prostym sposobem wyjcia z tej sytuacji jest konwersja plikw eps na


format pdf programem epstopdf, dostpnym na wielu platformach. Dla
grafiki wektorowej (rysunkw) jest to wspaniae rozwizanie. Dla mapek
bitowych (zdjcia, skany) nie jest ono idealne, bo format pdf z natury
obsuguje wczanie obrazw w formatach png i jpeg. Format png jest
dobry do zdj z ekranw i innych obrazw z niewielk liczb kolorw.
Format jpeg jest wietny do zdj, jako e zuywa na nie mao pamici.
Niekiedy zamiast rysowania figur geometrycznych korzystniejsze jest
opisywanie ich w wyspecjalizowanym jzyku polece, na przykad takim,
jaki jest stosowany w programie METAPOST, ktry wraz z obszernym
podrcznikiem wchodzi w skad wikszoci dystrybucji TEXa.

4.7.4. cza hipertekstowe


O kierowanie wewntrznych odsyaczy we waciwe miejsca dokumentu zadba pakiet hyperref. Aby zadziaa poprawnie, zaleca si umieci polecenie
\usepackage{hyperref} jako ostatnie w preambule dokumentu. Sposobem
dziaania pakietu hyperref mona sterowa za pomoc wielu opcji, ktre podajemy bd tradycyjne, czyli jako list rozdzielonych przecinkami opcji
po \usepackage, wewntrz nawiasw kwadratowych, bd jako argument
polecenia \hypersetup{opcje}.
Opcje pdftex i dvips s kluczowe, bo okrelaj metod generowania
dokumentu pdf: bezporednio za pomoc programu pdfTEX albo porednio
poprzez zamian wynikowego pliku dvi na ps, a potem pdf.
W poniszym wykazie wartoci domylne s podane pismem prostym.
bookmarks (=true,false ) w trakcie wywietlania dokumentu Acrobatem
poka bd ukryj pasek zakadek;
unicode (=false,true ) pozwl w zakadkach Acrobata uywa znakw
z alfabetw nieaciskich;
pdftoolbar (=true,false ) poka bd ukryj pasek narzdziowy Acrobata;
pdfmenubar (=true,false ) poka bd ukryj menu Acrobata;
pdffitwindow (=true,false ) dostosuj wielko wywietlanego pdf-a do
wielkoci okna;
pdftitle (={napis}) tytu dokumentu;
pdfauthor (={napis}) nazwisko autora;
pdfnewwindow (=true,false ) okrela, czy w wypadku gdy cze prowadzi
poza dokument, ma by otwierane nowe okna;
colorlinks (=false,true ) okrela, czy otoczy hipercza kolorowymi
ramkami (false) czy kolorowa same hipercza (true). Kolory mona
konfigurowa za pomoc nastpujcych opcji (w nawiasach kolory
domylne):
linkcolor (=red) kolor czy wewntrznych (rozdziaw, punktw,
stron itp.),

77

78

Rysunki, skorowidze. . .

citecolor (=green) kolor cytowa, czyli odsyaczy do bibliografii,


filecolor (=magenta) kolor odsyaczy do plikw,
urlcolor (=cyan) kolor czy typu url (adresy poczty elektronicznej bd sieciowe).
Jeli zadowalaj nas ustawienia domylne, to wpisujemy:
\usepackage[pdftex]{hyperref} %ew. dvips zamiast pdftex
Jeli przegldarka ma pokaza list zakadek, a cza maj by kolorowane
(wartoci domylnych =true nie trzeba podawa), to:
\usepackage[pdftex,bookmarks,colorlinks]{hyperref}
Gdy tworzymy dokumenty pdf przeznaczone do druku czarno-biaego, to
kolorowanie czy nie jest najlepszym pomysem, bo w wydrukach wychodz
one szare, co utrudnia czytanie. Zamiast tego moemy uy kolorowych
ramek, ktre nie s drukowane:
\usepackage{hyperref}
\hypersetup{colorlinks=false}
albo dla czy uywa koloru czarnego:
\usepackage{hyperref}
\hypersetup{colorlinks,citecolor=black,%
filecolor=black,linkcolor=black,urlcolor=black,pdftex}
Jeli chcemy doda informacji o dokumencie pdf, ktre Acrobat wywietla
w oknie Document Properties:
\usepackage[pdfauthor={P. Desproges},pdftitle={Des femmes
qui tombent},pdftex]{hyperref}
Oprcz hiperczy tworzonych automatycznie moemy umieszcza wasne:
\href{url }{text}

Przykadowo, w wyniku wykonania nastpujcego fragmentu:


Na stronie \href{http://www.ctan.org}{CTAN}.
zostanie wydrukowane sowo CTAN, kliknicie w to sowo przeniesie nas
na internetow stron ctan-u.
Jeli docelowe miejsce cza nie jest url-em, lecz plikiem lokalnym, to
moemy uy polecenia \href w nastpujcej postaci:
Peny dokument jest w~\href{manual.pdf}{pliku}.
Generuje to tekst Peny dokument jest w pliku. Klikajc w sowo pliku,
otworzymy plik manual.pdf. (Nazwa pliku jest interpretowana wzgldem
pooenia dokumentu pdf).
Autorka dokumentu moe zachci czytelnikw do korespondencji elektronicznej, wpisujc instrukcj \href jako fragment polecenia \author na
stronie tytuowej dokumentu:

4.7. Tworzenie plikw PDF: pdfLATEX i hyperref

\author{Maria Oetiker $<$\href{mailto:mary@oetiker.ch}%


{mary@oetiker.ch}$>$
Zauwamy, e cze zapisano tu tak, i adres elektroniczny pojawia si
zarwno w czu, jak i na stronie. Gdyby poda go tak:
\href{mailto:mary@oetiker.ch}{Maria Oetiker}
to cze dziaaoby w programie Acrobat, lecz adres nie byby widoczny
w wydruku.

4.7.5. Problemy z czami


Ukazaniu si komunikatu w rodzaju:
! pdfTeX warning (ext4): destination with the same
identifier (name{page.1}) has been already used,
duplicate ignored
towarzyszy reinicjalizacja licznika, na przykad w wyniku uycia polecenia
\mainmatter, dostpnego w klasie dokumentw book. Ustala ono warto
licznika stron na 1 tu przed pierwszym rozdziaem ksiki. Ale poniewa
rwnie i wstp do ksiki zawiera stron 1, to odsyacz page.1 staje si
niejednoznaczny, std notka duplicate ignored.
Moemy temu przeciwdziaa, dodajc opcj plainpages=false. Pomaga to niestety tylko w odniesieniu do licznika stron. Radykalniejszym
rozwizaniem jest opcja hypertexnames=false, ktra jednak powoduje, e
przestaj dziaa odsyacze do stron w skorowidzu.

4.7.6. Problemy z zakadkami


Tekst na zakadkach nie zawsze wyglda zgodnie z naszymi oczekiwaniami.
Poniewa zakadki s traktowane jako czysto tekstowe, moe w nich
wystpi mniejszy zakres znakw ni w normalnym tekcie LATEXowym.
Pakiet hyperref zauway tego typu problem i zasygnalizuje go komunikatem:
Package hyperref Warning:
Token not allowed in a PDFDocEncoded string:
Moemy ten problem obej, podajc napis przeznaczony na zakadk, ktry
ma zastpi wywoujcy trudno tekst:
\texorpdfstring{TEX tekst}{Napis na zakadk}

Podstawowym kandydatem do zastosowania takiego postpowania s wzory


matematyczne:
\section{\texorpdfstring{$E=mc^2$}{E=mc^2}}
rdtytu E=mc^2 przeksztaca si na zakadce w E=mc2.
Take zmiany kolorw nie przenosz si dobrze na zakadki:
\section{\textcolor{czerwony}{Czerwony !}}

79

80

Rysunki, skorowidze. . .

Na zakadce otrzymamy redRed!. Polecenie \textcolor jest tu ignorowane, chocia wywietlany jest jego argument (na czerwono). Lepszy wynik
uzyskamy, wpisujc:
\section{\texorpdfstring{\textcolor{red}{Red !}}{Red\ !}}
Jeli w dokumencie uywamy unikodu, a pakietowi hyperref podamy opcj
unicode, to na zakadkach bd mogy wystapi znaki unikodowe. Poszerza
to zakres znakw, ktre mona przekaza w poleceniu \texorpdfstring.

4.7.7. Interpretacja pliku rdowego przez LATEXa i pdfLATEXa


W idealnych warunkach dokument powinien si rwnie dobrze kompilowa
tak w LATEXu, jak i w pdfLATEXu. Problemy w tym wzgldzie mog wynika
przede wszystkim z wczania grafiki. Prostym sposobem jest systematyczne
opuszczanie rozszerze nazw plikw w poleceniu \includegraphics. Powoduje to wyszukiwanie plikw w formacie waciwym dla sposobu kompilacji.
Reszta sprowadza si do wygenerowania odpowiednich wersji plikw graficznych. LATEX poszuka plikw .eps, podczas gdy pdfLATEX sprbuje wczy
plik o jednym z rozszerze .png, .pdf, .jpg lub .mps (w podanej kolejnoci).
Jeli w pdfTEXowej wersji dokumentu chcemy uy innego kodu ni
w LATEXowej, to do preambuy moemy doda pakiet ifpdf 10 . W pakiecie
zdefiniowana jest instrukcja \ifpdf, ktra uatwia pisanie kodu warunkowego. W poniszym przykadzie wersja do druku, w formacie ps, ma by
czarno-biaa, co obniy koszty w drukarni, podczas gdy wersja pdf, przeznaczona do wywietlania na ekranie, ma by kolorowa:
%& --translate-file=il2-pl
\RequirePackage{ifpdf}
% Sprawdzamy, czy dziaa pdfTeX:
\ifpdf \documentclass[a4paper,12pt,pdftex]{book}
\else \documentclass[a4paper,12pt,dvips]{book} \fi
\ifpdf \usepackage{lmodern} \fi
% dodajemy hipercza
\usepackage[bookmarks,colorlinks,plainpages=false]{hyperref}
\usepackage{polski}
...
Pakiet hyperref jest tu wczany take w wersji ps. Dziki temu polecenie
\href zadziaa take w wypadku kompilacji zwykym LATEXem.
Warto odnotowa, e w niektrych wspczesnych dystrybucjach TEXa
podstawowym programem uywanym do kompilacji dokumentw jest wanie pdftex. Przecza si on na generowanie plikw pdf albo dvi, zalenie
10

Peniejsze wyjanienie, kiedy ten pakiet si przydaje, mona znale w TEXowym


faq-u, w punkcie http://www.tex.ac.uk/cgi-bin/texfaq2html?label=ifpdf.

4.8. Tworzenie prezentacji

od ustawie podanych wraz z klas dokumentu. Kod podany powyej pozwala uy zarwno instrukcji pdflatex do wygenerowania pdf-a, jak i latex
do uzyskania pliku dvi.

4.7.8. Wymiary kartki papieru


W LATEXu rozmiar papieru zadaje si w opcjonalnym argumencie polecenia \documentclass, na przykad a4paper albo letterpaper. Opcje te
dziaaj rwnie w wypadku generowania dokumentu pdf, tyle e ich wykonanie nie wystarcza do stworzenia poprawnego pliku pdf. Jeli korzystamy
z pakietu hyperref, to niezbdne polecenia zostan wykonane automatycznie.
W przeciwnym razie musimy to zrobi rcznie, umieszczajc w preambule
dokumentu nastpujcy fragment:
\ifpdf %% dziaa tylko z pdftex:
\pdfpagewidth=\paperwidth \pdfpageheight=\paperheight
%% dziala z programami latex+dvips:
\else \special{papersize=\paperwidth,\pageheight} \fi

4.8. Tworzenie prezentacji


Daniel Flipo <Daniel.Flipo@univ-lille1.fr>

Wyniki naszej pracy naukowej moemy przedstawia kred na tablicy, za


pomoc rzutnika i przeroczy (slajdw) bd posugujc si odpowiednim
oprogramowaniem bezporednio z laptopa.
Program pdfLATEX w poczeniu z klas beamer suy do tworzenia prezentacji w formacie pdf. Wygldaj one tak, jak gdybymy je wygenerowali
majc dobry dzie i sporo szczcia za pomoc PowerPointa, ale s
bardziej przenone, bo Acrobat Reader jest dostpny w wikszej liczbie systemw.
Klasa beamer uywa pakietw graphicx, color oraz hyperref z opcjami
zaadaptowanymi do prezentacji ekranowych.
Kompilujc pdfLATEXem kod z rysunku 4.2, otrzymamy plik pdf ze
stron tytuow oraz jeszcze jedn stron, zawierajc kilka punktw, ktre
maj si odsania w miar, jak podczas prezentacji bdziemy przechodzili
do kolejnych jej krokw.
Jedn z zalet klasy beamer jest to, e generuje ona gotowy do uycia
plik pdf, bez koniecznoci przechodzenia przez faz postscriptow, jak to
jest w wypadku pakietu prosper albo wymagajcego dodatkowego przetworzenia pakietu ppower4. Korzystajc z klasy beamer, moemy z tego samego
pliku rdowego generowa kilka wersji prezentacji, tak zwanych trybw.
Plik rdowy moe w nawiasach ktowych zawiera instrukcje przeznaczone do rnych trybw. Dostpne s nastpujce tryby: beamer dla
omwionych wyej prezentacji pdf, trans do slajdw, oraz handout
do wydruku. Domylnym jest beamer, a inny tryb moemy zada jako opcj

81

82

Rysunki, skorowidze. . .

%& --translate-file=il2-pl
\documentclass[10pt]{beamer}
\mode<beamer>{\usetheme[hideothersubsections,%
right,width=22mm]{Goettingen} }
\usepackage{polski}
\title{Prosta prezentacja}
\author[K. Wielki]{Karol Wielki}
\institute{Uniwersytet Karola Wielkiego}
%\titlegraphic{\includegraphics[width=20mm]{USTL}}
\date{2005}
\begin{document}
\begin{frame}<handout:0>
\titlepage \end{frame}
\section{Przykad}
\begin{frame}
\frametitle{Co robi w~niedzielne popoudnie?}
\begin{block}{Mona:}
\begin{itemize}
\item pj na spacer z~psem\pause
\item przeczyta ksik\pause
\item pobawi si z~kotem\pause
\end{itemize}
\end{block}
i~robi wiele innych rzeczy.
\end{frame}
\end{document}
Rysunek 4.2: Prosty kod dla klasy beamer
globaln, wpisujc na przykad \documentclass[10pt,handout]{beamer}
w celu wydrukowania materiaw do rozdania.
Wygld ekranu prezentacji zaley od wybranego tematu. Moemy wskaza jeden z tematw dostarczanych wraz z klas albo stworzy nasz wasny.
Wicej informacji na ten temat mona znale w opisie klasy zawartym
w pliku beameruserguide.pdf.
Przyjrzyjmy si bliej kodowi z rysunku 4.2. Do wersji ekranowej prezentacji wybrano dla trybu \mode<beamer> temat Goettingen, w ktrym
spisowi treci towarzyszy panel do nawigacji. Opcje tematu pozwalaj okreli rozmiar panelu (w tym wypadku 22 mm) oraz jego pozycj (z prawej
strony gwnego tekstu). Opcja hideothersubsections nakazuje pokazywa
tytuy punktw, jednak tylko te, ktre pochodz z biecego rozdziau. Dla

4.9. Pakiet pdfscreen

trybw \mode<trans> i \mode<handout> nie zadano adnej opcji; maj si


ukazywa w swoim ukadzie domylnym.
Polecenia \title, \author, \institute, oraz \titlegraphic okrelaj zawarto strony tytuowej. Opcjonalne argumenty instrukcji \title
i \author pozwalaj poda specjaln wersj tytuu oraz autora do wywietlenia w panelu tematu Goettingen. Tytuy oraz podtytuy na panelu s
tworzone przez zwyke polecenia \section i \subsection, umieszczone poza
otoczeniem frame.
Malekie ikonki u dou ekranu su do nawigowania po dokumencie.
Mona ich ukazywanie si zablokowa poleceniem:
\setbeamertemplate{navigation symbols}{}
Zawarto kadego slajdu oraz ekranu naley umieci w otoczeniu
frame. W nawiasach ktowych < i > mona poda opcjonalny argument,
ktry pozwala ukry slajd w jednym z trybw prezentacyjnych. W powyszym przykadzie pierwsza strona nie ukae si w trybie materiaw do rozdania, gdy w argumencie otoczenia frame podano argument <handout:0>.
Warto zatytuowa kady ze slajdw, nie za jedynie slajd tytuowy. Zauwamy, e polecenia \section i \subsection nie su do tytuowania
slajdw; suy do tego instrukcja \frametitle. Gdyby potrzebny by podtytu, to jak pokazano w przykadzie mona uy otoczenia block.
Uycie polecenia \pause w otoczeniu itemize pozwala rozwija punkty
jeden po drugim, w miar postpw prezentacji. Dodatkowe efekty prezentacyjne mona osign za pomoc instrukcji: \only, \uncover, \alt oraz
\temporal. Do dalszego sterowania prezentacj su dopuszczalne w wielu
miejscach opcje, podawane w nawiasach ktowych.
Cokolwiek mwi, aby uzyska peny obraz wszystkich dostpnych parametrw, trzeba przeczyta dokumentacj beameruserguide.pdf klasy beamer. Pakiet ten jest cigle rozwijany, dlatego warto po nowoci zajrze na
stron http://latex-beamer.sourceforge.net/.

4.9. Pakiet pdfscreen


Pakiet pdfscreen, opracowany przez C.V. Radhakrishnana, pozwala tworzy
dokumenty pdf zorientowane ekranowo, to znaczy takie, ktre bdzie si
wygodnie czytao z ekranu monitora (inne wymiary kolumny tekstu, wikszy
krj pisma). Takie dokumenty mog te zawiera rne elementy nawigacyjne przeznaczone do poruszania si po dokumencie. Efektowne przykady
dokumentw przygotowanych za pomoc pakietu pdfscreen mona znale
pod adresem http://www.tug.org.in/tutorial/. Szczegowy polski opis
pakietu zawiera [24].

83

Rozdzia 5

Tworzenie grafiki
matematycznej
Wikszo ludzi uywa LATEXa do skadania tekstw. Poniewa jednak podejcie
strukturalno-logiczne do tworzenia dokumentw jest tak wygodne, LATEX oferuje
pewn fakt, e obarczon ograniczeniami moliwo generowania grafiki z opisw tekstowych w pliku rdowym. Co wicej, powstao sporo rozszerze LATEXa
przeamujcych wspomniane ograniczenia. W tym rozdziale dowiesz si o kilku
z tych rozszerze.

5.1. Przegld
Otoczenie picture pozwala programowa rysunki bezporednio w LATEXu.
Szczegowy jego opis mona znale w [12]. Metoda ta ma jednak ograniczenia, ktre wynikaj z tego, e zarwno nachylenia odcinkw, jak i rednice
okrgw mona wybiera jedynie spord niewielkiej liczby wartoci. Z drugiej strony w wersji LATEX 2 mona w otoczeniu picture uywa polecenia
\qbezier, gdzie q oznacza drugiego stopnia (ang. quadratic). Wiele czsto uywanych krzywych, jak: okrgi, elipsy albo krzywe acuchowe mona
niekiedy z odrobin wysiku matematycznego zadowalajco przyblia
krzywymi Beziera1 . Jeli na dodatek do generowania LATEXowych blokw
\qbezier uyje si jzyka programowania, na przykad Javy, to otoczenie
picture ujawni cakiem pokan moc.
Chocia programowanie rysunkw w LATEXu wie si z ograniczeniami
i jest niekiedy nuce, to jednak s powody, by z tej moliwoci korzysta.
Dokumenty wytworzone w ten sposb s mae w sensie liczby bajtw
zajmowanych przez wynikowe pliki pdf lub dvi a na dodatek nie trzeba
do nich wczytywa dodatkowych plikw graficznych.
1

W ciekawym artykule [10] B.L. Jackowski zwraca uwag, e krzywe Beziera s krzywymi gitymi stopnia trzeciego, nie za jak sugeruje nazewnictwo LATEXowe stopnia
drugiego.

5.2. Otoczenie picture

Pakiety takie jak: epic i eepic (opisane na przykad w [6]) bd pstricks


pomagaj pokonywa ograniczenia krpujce oryginalne otoczenie picture
i znacznie rozszerzaj graficzn moc LATEXa.
O ile pierwsze dwa z tych pakietw jedynie rozszerzaj otoczenie picture,
to pakiet pstricks zawiera wasne otoczenie rysujce pspicture. Moc
pakietu pstricks bierze si z tego, e istotnie wykorzystuje on moliwoci
Postscriptu.
Na dodatek napisano wiele pakietw realizujcych konkretne cele. Jednym z nich jest XY-pic, opisany na kocu tego rozdziau. Znaczn liczb tych
pakietw opisano w [7] (nie naley myli z [6]).
Spord narzdzi graficznych zwizanych z LATEXem najwiksze chyba
moliwoci posiada METAPOST, autorstwa Johna D. Hobby, bdcy wariantem programu METAFONT, ktrego autorem jest z kolei Donald E. Knuth.
METAPOST jest wyposaony w solidny i matematycznie wyrafinowany jzyk
programowania METAFONTa. Inaczej jednak ni METAFONT, ktry generuje
mapy bitowe, METAPOST generuje pliki Postscriptowe, ktre mona importowa do LATEXa. Za wprowadzenie moe posuy [8], a za podrcznik
[21]. Dostpne jest take wprowadzenie do programu METAPOST w jzyku
polskim [8]2 .
Obszerne omwienie zagadnie zwizanych z wykorzystaniem grafiki
(oraz fontw) w LATEXu i TEXu mona znale w [9].

5.2. Otoczenie picture


Urs Oswald <osurs@bluewin.ch>

5.2.1. Podstawowe polecenia


Otoczenie picture3 mona tworzy poleceniem:
\begin{picture}(x, y). . . \end{picture}

lub
\begin{picture}(x, y)(x0 , y0 ). . . \end{picture}

Liczby x, y, x0 , y0 odnosz si do wielkoci \unitlength, ktr mona


zmienia w dowolnym momencie (jednak nie wewntrz otoczenia picture)
poleceniem takim jak:
\setlength{\unitlength}{1.2cm}
2

Nie ma co ukrywa, e posugiwanie si METAPOSTem wymaga posiadania przynajmniej minimum umiejtnoci programistycznych. Dla uytkownikw ktrzy nie programuj przydatny moe by program MetaGraf, ktry jest okienkow nakadk do programu
METAPOST, por. http://w3.mecanica.upm.es/metapost/.
3
Otoczenie picture dziaa w standardowym LATEX 2 ; nie trzeba adowa adnych
dodatkowych pakietw.

85

86

Tworzenie grafiki matematycznej

Wartoci domyln \unitlength jest 1pt. Pierwsza para, (x, y), to


wymiary rezerwowanego wewntrz dokumentu prostoktnego obszaru na rysunek. Opcjonalna druga para, (x0 , y0 ), to wsprzdne przypisane dolnemu
lewemu naronikowi zarezerwowanego prostokta.
Wikszo polece rysujcych ma jedn z dwch postaci:
\put(x, y){object}

lub
\multiput(x, y)(x, y){n}{object}

Wyjtkiem s krzywe Beziera, gdy rysuje si je poleceniem:


\qbezier(x1 , y1 )(x2 , y2 )(x3 , y3 )

5.2.2. Odcinki
\setlength{\unitlength}{5cm}
\begin{picture}(1,1)
\put(0,0){\line(0,1){1}}
\put(0,0){\line(1,0){1}}
\put(0,0){\line(1,1){1}}
\put(0,0){\line(1,2){.5}}
\put(0,0){\line(1,3){.3333}}
\put(0,0){\line(1,4){.25}}
\put(0,0){\line(1,5){.2}}
\put(0,0){\line(1,6){.1667}}
\put(0,0){\line(2,1){1}}
\put(0,0){\line(2,3){.6667}}
\put(0,0){\line(2,5){.4}}
\put(0,0){\line(3,1){1}}
\put(0,0){\line(3,2){1}}
\put(0,0){\line(3,4){.75}}
\put(0,0){\line(3,5){.6}}
\put(0,0){\line(4,1){1}}
\put(0,0){\line(4,3){1}}
\put(0,0){\line(4,5){.8}}
\put(0,0){\line(5,1){1}}
\put(0,0){\line(5,2){1}}
\put(0,0){\line(5,3){1}}
\put(0,0){\line(5,4){1}}
\put(0,0){\line(5,6){.8333}}
\put(0,0){\line(6,1){1}}
\put(0,0){\line(6,5){1}}
\end{picture}

(,
!
,0
0
5 !
&& %% $$ ## )) "" -- (
5
& % $ # ) " - ( ,05 !
7
& % $ # ) " - ( ,05 ! 7
4
4
& % $ # ) " - ( ,05 ! 7
/
/
4
& % $ # ) " -( ,05 ! 7
/+
+
4
7/+ 3
& % $ # ) " -(,0
5 !7/
4
+33
5 !74
& % $ # ) " -(,0
/
+
'
4+33''
& % $ # ) " -(,0
5 !4
7/
'
3
+
2
&% $ #) "-(,0
5!4
7/
3 ' 22
+
*
3''22**
7/
&%$ #)"-(,
5!4
+
0
/
2** .
+3
7
.
4
!+
&%$#)"-(,
''
*...1
57
0
/3
22
*.
1
'2
4
3
1
*
/
1
6
.11
!
&%$#)"-(
'
+
*.1
54
,
2
0
66 6
3
*
7
6
2
'
/
.
6
1
+
*
6
.6
3
16
&%$#)"'2
(
*.
5
,
0
1
!
7
4
2
16
/
.
*
+
6
3
1
.
'
2
66
.1
1
6
%$&#"!*
(
'
)*
+
5
3
4
,
2
6
0
1
/
.
7

5.2. Otoczenie picture

87

Do rysowania odcinkw suy polecenie:


\put(x, y){\line(x1 , y1 ){length}}

Ma ono ma dwa argumenty: wektor kierunku i dugo.


Jako skadnikw wektora kierunku mona uy jedynie liczb cakowitych:
6, 5, . . . , 5, 6,
Musz one na dodatek by liczbami wzgldnie pierwszymi (jedynym ich
wsplnym dzielnikiem moe by 1). Powyszy rysunek ilustruje wszystkie
moliwe wartoci nachylenia w pierwszej wiartce paszczyzny. Dugo jest
podawana w jednostkach \unitlength. Argument dugoci oznacza wsprzdn pionow w wypadku odcinka pionowego, za wsprzdn poziom
we wszystkich pozostaych przypadkach.

5.2.3. Strzaki
\setlength{\unitlength}{0.75mm}
\begin{picture}(60,40)
\put(30,20){\vector(1,0){30}}
\put(30,20){\vector(4,1){20}}
\put(30,20){\vector(3,1){25}}
\put(30,20){\vector(2,1){30}}
\put(30,20){\vector(1,2){10}}
\thicklines
\put(30,20){\vector(-4,1){30}}
\put(30,20){\vector(-1,4){5}}
\thinlines
\put(30,20){\vector(-1,-1){5}}
\put(30,20){\vector(-1,-4){5}}
\end{picture}

$##

""<
'
;
'
" ''
:
*
"
!
*
!!!
# " '
*
9
.
!!!#.
'*
..
.
" *
*
'
8
=$
!
$
$
$>$
#

Strzaki rysuje si poleceniem:


\put(x, y){\vector(x1 , y1 ){length}}

W wypadku strzaek na skadniki wektora kierunku naoone s jeszcze wiksze ograniczenia ni dla odcinkw, bo jedynymi dopuszczalnymi liczbami
cakowitymi s:
4, 3, . . . , 3, 4.
Wartoci skadnikw i tu musz by liczbami wzgldnie pierwszymi (jedynym wsplnym dzielnikiem moe by 1). Zauwa efekt dziaania polecenia
\thicklines na dwie strzaki skierowane w stron lewego grnego naronika
oraz \thinlines na strzaki w stron naronika prawego grnego.

88

Tworzenie grafiki matematycznej

5.2.4. Okrgi
\setlength{\unitlength}{1mm}
\begin{picture}(60, 40)
\put(20,30){\circle{1}}
\put(20,30){\circle{2}}
\put(20,30){\circle{4}}
\put(20,30){\circle{8}}
\put(20,30){\circle{16}}
\put(20,30){\circle{32}}
\put(40,30){\circle{1}}
\put(40,30){\circle{2}}
\put(40,30){\circle{3}}
\put(40,30){\circle{4}}
\put(40,30){\circle{5}}
\put(40,30){\circle{6}}
\put(40,30){\circle{7}}
\put(40,30){\circle{8}}
\put(40,30){\circle{9}}
\put(40,30){\circle{10}}
\put(40,30){\circle{11}}
\put(40,30){\circle{12}}
\put(40,30){\circle{13}}
\put(40,30){\circle{14}}

*+
*+
@A
89
&' <=
&'
45
01
!"
#
!"
#
,
./
23
$% :;
$%
67
>?
()
()
B

C D EF

\put(15,10){\circle*{1}}
\put(20,10){\circle*{2}}
\put(25,10){\circle*{3}}
\put(30,10){\circle*{4}}
\put(35,10){\circle*{5}}
\end{picture}

Polecenie:
\put(x, y){\circle{diam}}

rysuje okrg o rodku (x, y) i rednicy (nie promieniu) rwnym diam. Otoczenie picture dopuszcza rednice co najwyej rzdu 14 mm, na dodatek
nie wszystkie dugoci rednic s dozwolone. Polecenie \circle* generuje
koa (wypenione okrgi).
Podobnie jak w wypadku odcinkw, mona si uciec do dodatkowych
pakietw, takich jak eepic bd pstricks. Obszerny opis tych pakietw mona
znale w [7].
Otoczenie picture oferuje jeszcze jedn opcj. Jeli nie boisz si wykonania niezbdnych oblicze (by moe nawet za pomoc programu), to okrgi
oraz elipsy moesz zata z krzywych Beziera drugiego stopnia. Przykady
oraz rdowe pliki w Javie mona znale w [21].

5.2. Otoczenie picture

89

5.2.5. Tekst i wzory


\setlength{\unitlength}{0.8cm}
\begin{picture}(6,5)
\thicklines
\put(1,0.5){\line(2,1){3}}
\put(4,2){\line(-2,1){2}}
\put(2,3){\line(-2,-5){1}}
\put(0.65,0.3){$A$}
\put(4.05,1.9){$B$}
\put(1.65,2.95){$C$}
\put(3.1,2.5){$a$}
\put(1.3,1.7){$b$}
\put(2.5,1.05){$c$}
\put(0.3,4){$F=
\sqrt{s(s-a)(s-b)(s-c)}$}
\put(3.5,0.4){$\displaystyle
s:=\frac{a+b+c}{2}$}
\end{picture}

F =

#
s(s a)(s b)(s c)

C&
' &&a
&
'
&B
%
b'
%
%
'
%
c
' %%
a+b+c
'
%
s :=
A
2

Jak wida w powyszym przykadzie, tekst oraz wzory mona atwo


wprowadza do otoczenia picture poleceniem \put.

5.2.6. Polecenia \multiput i \linethickness


\setlength{\unitlength}{2mm}
\begin{picture}(30,20)
\linethickness{0.075mm}
\multiput(0,0)(1,0){26}%
{\line(0,1){20}}
\multiput(0,0)(0,1){21}%
{\line(1,0){25}}
\linethickness{0.15mm}
\multiput(0,0)(5,0){6}%
{\line(0,1){20}}
\multiput(0,0)(0,5){5}%
{\line(1,0){25}}
\linethickness{0.3mm}
\multiput(5,0)(10,0){2}%
{\line(0,1){20}}
\multiput(0,5)(0,10){2}%
{\line(1,0){25}}
\end{picture}

Polecenie:
\multiput(x, y)(x, y){n}{object}

ma cztery argumenty: punkt pocztkowy, wektor przesunicia z jednego


obiektu do kolejnego, liczb obiektw oraz rysowany obiekt. Instrukcja

90

Tworzenie grafiki matematycznej

\linethickness odnosi si do odcinkw poziomych oraz pionowych, jednake nie do odcinkw ukonych ani nie do okrgw. Stosuje si ona jednak
rwnie do krzywych Beziera drugiego stopnia.

5.2.7. Owale
\setlength{\unitlength}{0.75cm}
\begin{picture}(6,4)
\linethickness{0.075mm}
\multiput(0,0)(1,0){7}%
{\line(0,1){4}}
\multiput(0,0)(0,1){5}%
{\line(1,0){6}}
\thicklines
\put(2,3){\oval(3,1.8)}
\thinlines
\put(3,2){\oval(3,1.8)}
\thicklines
\put(2,1){\oval(3,1.8)[tl]}
\put(4,1){\oval(3,1.8)[b]}
\put(4,3){\oval(3,1.8)[r]}
\put(3,1.5){\oval(1.8,0.4)}
\end{picture}

# #
A

"
$ $
!%
'
&
( ?
>
"

Polecenie:
\put(x, y){\oval(w, h)}

jak te:
\put(x, y){\oval(w, h)[pozycja]}

generuje owal o rodku (x, y), szerokoci w i wysokoci h. Opcjonalne argumenty pozycji : b, t, l i r oznaczaj odpowiednio: top (gra), bottom
(d), left (lewo) i right (prawo). Jak pokazuje przykad, mona take
uywa ich kombinacji.
Gruboci linii mona sterowa na dwa sposoby, z jednej strony poleceniem:
\linethickness{length}

z drugiej za pomoc \thinlines i \thicklines. O ile pierwszy ze sposobw odnosi si jedynie do linii poziomych oraz pionowych, a take do
krzywych Beziera drugiego stopnia, o tyle \thinlines i \thicklines stosuj si do odcinkw ukonych, jak te do okrgw i owali.

5.2. Otoczenie picture

91

5.2.8. Wielokrotne uycie pudeek z rysunkami


\setlength{\unitlength}{0.5mm}
\begin{picture}(120,168)
\newsavebox{\foldera}
\savebox{\foldera}
(40,32)[bl]{% definition
\multiput(0,0)(0,28){2}
{\line(1,0){40}}
\multiput(0,0)(40,0){2}
{\line(0,1){28}}
\put(1,28){\oval(2,2)[tl]}
\put(1,29){\line(1,0){5}}
\put(9,29){\oval(6,6)[tl]}
\put(9,32){\line(1,0){8}}
\put(17,29){\oval(6,6)[tr]}
\put(20,29){\line(1,0){19}}
\put(39,28){\oval(2,2)[tr]}
}
\newsavebox{\folderb}
\savebox{\folderb}
(40,32)[l]{%
definition
\put(0,14){\line(1,0){8}}
\put(8,0){\usebox{\foldera}}
}
\put(34,26){\line(0,1){102}}
\put(14,128){\usebox{\foldera}}
\multiput(34,86)(0,-37){3}
{\usebox{\folderb}}
\end{picture}

G H

J
G H

G H

G H

Pudeko rysunku mona zadeklarowa instrukcj:


\newsavebox{nazwa}

nastpnie zachowa poleceniem:


\savebox{nazwa}(szeroko,wysoko)[pozycja]{tre}

i ostatecznie dowolnie czsto rysowa, wywoujc:


\put(x, y)\usebox{nazwa}

Opcjonalny parametr pozycja definiuje punkt zaczepienia zachowywanego pudeka (savebox). W przykadzie nadano mu warto bl, co oznacza
umieszczenie punktu zaczepienia w dolnym lewym naroniku pudeka. Pozycje mona te oznacza literami t (gra) i r (prawo).

92

Tworzenie grafiki matematycznej

Argument nazwa odnosi si do LATEXowego magazynu polece i dlatego


ma natur instrukcji (co w powyszym przykadzie objawia si choby uyciem znakw \). Rysunki przechowywane w pudekach mona zagnieda.
W powyszym przykadzie wewntrz definicji \folderb uyto \foldera.
Trzeba byo uy polecenia \oval, poniewa instrukcja \line nie dziaa,
gdy dugo odcinka wynosi mniej ni okoo 3 mm.

5.2.9. Krzywe B
eziera drugiego stopnia
\setlength{\unitlength}{0.8cm}
\begin{picture}(6,4)
\linethickness{0.075mm}
\multiput(0,0)(1,0){7}
{\line(0,1){4}}
\multiput(0,0)(0,1){5}
{\line(1,0){6}}
\thicklines
\put(0.5,0.5){\line(1,5){0.5}}
\put(1,3){\line(4,1){2}}
\qbezier(0.5,0.5)(1,3)(3,3.5)
\thinlines
\put(2.5,2){\line(2,-1){3}}
\put(5.5,0.5){\line(-1,5){0.5}}
\linethickness{1mm}
\qbezier(2.5,2)(5.5,0.5)(5,3)
\thinlines
\qbezier(4,2)(4,3)(3,3)
\qbezier(3,3)(2,3)(2,2)
\qbezier(2,2)(2,1)(3,1)
\qbezier(3,1)(4,1)(4,2)
\end{picture}

(
(

(
(
(

))
)))

@
@
@

?
??
@
?
?? @
?@

Jak wida w przykadzie, podzielenie okrgu na cztery krzywe Beziera drugiego stopnia nie daje zadowalajcego efektu; lepsze przyblienie daoby
osiem. Przykad ponownie ilustruje wpyw instrukcji \linethickness na
linie poziome i pionowe oraz polece \thinlines i \thicklines na odcinki pochye. Pokazuje on rwnie, e oba te rodzaje polece oddziauj na
krzywe Beziera i e kolejne uycie ktregokolwiek z nich przesania poprzednie.
Niech symbole P1 = (x1 , y1 ), P2 = (x2 , y2 ) oznaczaj punkty kocowe,
za m1 , m2 odpowiednie nachylenia krzywej Beziera drugiego stopnia.
Poredni punkt kontrolny S = (x, y) jest zatem opisany rwnaniami:

x =

m2 x2 m1 x1 (y2 y1 )
,
m2 m1
y = yi + mi (x xi )
(i = 1, 2).

(5.1)

5.2. Otoczenie picture

93

W [21] mona znale program w Javie, ktry generuje odpowiedni lini


polecenia \qbezier.

5.2.10. Krzywe acuchowe


\setlength{\unitlength}{1cm}
\begin{picture}(4.3,3.6)(-2.5,-0.25)
\put(-2,0){\vector(1,0){4.4}}
\put(2.45,-.05){$x$}
\put(0,0){\vector(0,1){3.2}}
\put(0,3.35){\makebox(0,0){$y$}}
\qbezier(0.0,0.0)(1.2384,0.0)
(2.0,2.7622)
\qbezier(0.0,0.0)(-1.2384,0.0)
(-2.0,2.7622)
\linethickness{.075mm}
\multiput(-2,0)(1,0){5}
{\line(0,1){3}}
\multiput(-2,0)(0,1){4}
{\line(1,0){4}}
\linethickness{.2mm}
\put( .3,.12763){\line(1,0){.4}}
\put(.5,-.07237){\line(0,1){.4}}
\put(-.7,.12763){\line(1,0){.4}}
\put(-.5,-.07237){\line(0,1){.4}}
\put(.8,.54308){\line(1,0){.4}}
\put(1,.34308){\line(0,1){.4}}
\put(-1.2,.54308){\line(1,0){.4}}
\put(-1,.34308){\line(0,1){.4}}
\put(1.3,1.35241){\line(1,0){.4}}
\put(1.5,1.15241){\line(0,1){.4}}
\put(-1.7,1.35241){\line(1,0){.4}}
\put(-1.5,1.15241){\line(0,1){.4}}
\put(-2.5,-0.25){\circle*{0.2}}
\end{picture}

y
A

8x

Kad z symetrycznych powek wykresu cosinusa hiperbolicznego y =


cosh x 1 przybliono na rysunku krzyw Beziera. Prawa powka krzywej koczy si w punkcie (2, 2.7622), w ktrym nachylenie ma warto
m = 3.6269. Uywajc ponownie rwnania (5.1), moemy wyliczy porednie
punkty kontrolne. Okazuje si, e s to: (1.2384, 0) i (1.2384, 0). Krzyykami zostaa zaznaczona prawdziwa krzywa. Bd jest ledwie zauwaalny,
bo wynosi mniej ni jeden procent.
Ten przykad ilustruje te uycie opcjonalnego argumentu otoczenia
\begin{picture}. Rysunek zdefiniowano w terminach wygodnych wsprzdnych matematycznych, podczas gdy poleceniem:
\begin{picture}(4.3,3.6)(-2.5,-0.25)

94

Tworzenie grafiki matematycznej

jego lewemu dolnemu naronikowi (oznaczonemu czarnym keczkiem) przypisano wsprzdne (2.5, 0.25).

5.2.11. Prdko w Szczeglnej Teorii Wzgldnoci


\setlength{\unitlength}{0.8cm}
\begin{picture}(6,4)(-3,-2)
\put(-2.5,0){\vector(1,0){5}}
\put(2.7,-0.1){$\chi$}
\put(0,-1.5){\vector(0,1){3}}
\multiput(-2.5,1)(0.4,0){13}
{\line(1,0){0.2}}
\multiput(-2.5,-1)(0.4,0){13}
{\line(1,0){0.2}}
\put(0.2,1.4)
{$\beta=v/c=\tanh\chi$}
\qbezier(0,0)(0.8853,0.8853)
(2,0.9640)
\qbezier(0,0)(-0.8853,-0.8853)
(-2,-0.9640)
\put(-3,-2){\circle*{0.2}}
\end{picture}

= v/c = tgh
A
8
K

Punkty kontrolne dwch krzywych Beziera wyliczono ze wzorw (5.1).


Ga dodatnia jest okrelona wartociami P1 = (0, 0), m1 = 1 oraz
P2 = (2, tgh 2), m2 = 1/ cosh2 2. I znowu rysunek wyraono w wygodnych
matematycznie wsprzdnych, a lewemu dolnemu naronikowi przypisano
wsprzdne (3, 2) (czarne keczko).

5.3. XY-pic
Alberto Manuel Brand
ao Sim
oes <albie@alfarrabio.di.uminho.pt>

Pakiet XY-pic suy do rysowania grafw. Aby uzyska dostp do jego funkcji,
umieszczamy w preambule dokumentu wiersz:
\usepackage[opcje]{xy}

Parametr opcje jest list funkcji pakietu XY-pic, ktre maj zosta zaadowane. Opcje te przydaj si midzy innymi do szukania bdw w pakiecie.
Zaleca si przekazywa opcj all, nakazujc LATEXowi zaadowa wszystkie
polecenia pakietu.
Graf rysuje si w XY-pic na ptnie o strukturze macierzy, a kady element
grafu jest umieszczony w komrce tej macierzy:

5.3. XY-pic

\begin{displaymath}
\xymatrix{A & B \\
C & D }
\end{displaymath}

95

Polecenia \xymatrix mona uy jedynie w trybie matematycznym. Powyej


zadano dwa wiersze i dwie kolumny. Aby przeksztaci t macierz w graf,
posugujemy si dodajcym strzaki poleceniem \ar4 :
\begin{displaymath}
\xymatrix{ A \ar[r] & B \ar[d] \\
D \ar[u] & C \ar[l] }
\end{displaymath}

A#

!B

D$

"
C

Polecenie \ar umieszczamy w komrce, w ktrej strzaka ma si zaczyna.


Argument oznacza kierunek strzaki (u gra, d d, r prawo i l lewo):
\begin{displaymath}
\xymatrix{
A \ar[d] \ar[dr] \ar[r] & B \\
D
& C }
\end{displaymath}

!B
A!
!!
!!
!!
"
%
D
C

Aby uzyska przektne, uywamy po prostu wicej ni jednego kierunku.


Powtarzajc kierunek, wyduamy w istocie strzak:
\begin{displaymath}
\xymatrix{
A \ar[d] \ar[dr] \ar[drr] & & \\
B
& C & D }
\end{displaymath}

A !"""
!! """
!! """
!! """
""'
"
&
B
C
D

Uzupeniajc strzaki o etykiety, moemy uzyska jeszcze ciekawsze grafy.


Uywamy do tego zwyczajnych operatorw indeksw grnych i dolnych:
4

Pakiety XY-pic oraz polski s w konflikcie, bo oba definiuj polecenie \ar. Jeeli
polecenie \ar ma dziaa tak, jak zdefiniowano to w pakiecie XY-pic, to trzeba xy doczy
po pakiecie polski. Oczywicie nie ma wtedy dostpu do polecenia \ar z pakietu polski.

96

Tworzenie grafiki matematycznej

\begin{displaymath}
\xymatrix{
A \ar[r]^f \ar[d]_g &
B \ar[d]^{g} \\
D \ar[r]_{f}
& C }
\end{displaymath}

!B
g!

"
D

f!

"
!C

Jak wida, operatorw tych uywa si tak samo jak w trybie matematycznym. Jedyn rnic jest to, e indeks grny oznacza nad, za dolny
pod strzak. Istnieje jeszcze trzeci operator pionowej kreski |. Umieszcza
on tekst na strzace:
\begin{displaymath}
\xymatrix{
A \ar[r]|f \ar[d]|g &
B \ar[d]|{g} \\
D \ar[r]|{f}
& C }
\end{displaymath}

g!

"
D

!B

f!

"
!C

Aby narysowa strzak z dziurk w rodku, moemy uy polecenia


\ar[...]|\hole.
W niektrych sytuacjach trzeba uywa rnych typw strzaek. Mona
je w tym celu oznacza rnymi etykietami bd nadawa im rny wygld:
\begin{displaymath}
\xymatrix{
\bullet\ar@{->}[rr] && \bullet\\
\bullet\ar@{.<}[rr] && \bullet\\
\bullet\ar@{~)}[rr] && \bullet\\
\bullet\ar@{=(}[rr] && \bullet\\
\bullet\ar@{~/}[rr] && \bullet\\
\bullet\ar@{^{(}->}[rr] &&
\bullet\\
\bullet\ar@2{->}[rr] && \bullet\\
\bullet\ar@3{->}[rr] && \bullet\\
\bullet\ar@{=+}[rr] && \bullet
}
\end{displaymath}

#$ #$ #$ #$ #$ #$ #$ " !
% &

#$ #$ #$ #$ #$ #$ #$ #
%

&

$))

$%

Zauwa rnic midzy nastpujcymi dwoma grafami:

5.3. XY-pic

\begin{displaymath}
\xymatrix{
\bullet \ar[r]
\ar@{.>}[r] &
\bullet
}
\end{displaymath}
\begin{displaymath}
\xymatrix{
\bullet \ar@/^/[r]
\ar@/_/@{.>}[r] &
\bullet
}
\end{displaymath}

97

Symbole midzy ukonikami okrelaj tu sposb rysowania krzywych.


Pakiet XY-pic oferuje wiele metod wpywania na sposb rysowania krzywych. Wicej na ten temat mona przeczyta w dokumentacji pakietu [23].

Rozdzia 6

Adaptowanie LATEXa
Dokumenty skadane za pomoc poznanych do tej pory polece bd si zapewne
podobay zdecydowanej wikszoci czytelnikw. Chocia ich wygld nie bdzie moe
wyrafinowany, z pewnoci jednak speni one podstawowe zasady skadu, dziki
czemu bdzie si je czytao atwo i przyjemnie.
W niektrych wypadkach moe si jednak okaza, e brakuje polecenia czy
otoczenia, za pomoc ktrego moglibymy zoy dany fragment tekstu w sposb
odpowiadajcy potrzebom, albo te e sposb dziaania dostpnej w LATEXu instrukcji nie spenia naszych wymaga.
W tym rozdziale przedstawimy, jak nauczy LATEXa formatowa dokumenty tak,
aby wyglday inaczej ni w wypadku korzystania jedynie ze standardowych klas
i pakietw.

6.1. Definiowane instrukcji i otocze


Czytelnicy zauwayli zapewne, e nowo wprowadzane w tej ksice polecenia
ukazuj si w ramkach oraz e znajduj si one w skorowidzu. Aby to
osign, nie korzystalimy za kadym razem z wbudowanych w LATEXa
instrukcji, lecz utworzylimy wasny pakiet, w ktrym zawarlimy nowe,
potrzebne nam polecenia i otoczenia. Dysponujc takim pakietem, wystarczy
po prostu napisa:
\begin{command}
\ci{polecenie}
\end{command}

\polecenie

W tym przykadzie uylimy zarwno nowego otoczenia o nazwie command,


odpowiedzialnego za rysowanie ramek dookoa instrukcji, jak te nowego
polecenia \ci, sucego do skadu nazw polece i wprowadzania ich do
skorowidza. Proponujemy Czytelnikom odszukanie hasa \polecenie w skorowidzu; przy hale powinny by podane numery stron, na ktrych ta instrukcja wystpuje w ksice.

6.1. Definiowane instrukcji i otocze

99

Gdy zdecydujemy si zaprzesta otacza polecenia ramkami, to do


zmiany wygldu wystarczy, e zmienimy definicj otoczenia command. Jest to
znacznie atwiejsze od przebiegnicia przez cay dokument w celu wyapania
w nim wszystkich standardowych polece LATEX, ktre su do rysowania
ramek wok sw.
We wstpie do tego opracowania wspomnielimy, e w LATEXu moemy si
skupi na logicznej strukturze dokumentw. Wskazane jest rozrni w tekcie rdowym wszystkie elementy logiczne dokumentu, nawet jeeli ich
formatowanie jest identyczne. Nierzadko bowiem to, co dzisiaj formatujemy
w taki sam sposb, w przyszoci moemy chcie rozrni.
Zwyko si na przykad skada adresy internetowe imitacj kroju maszynowego. Poniewa w adresach mog wystpi znaki specjalne LATEXa,
to mona by do tego celu stosowa instrukcj \verb. Lepiej jednak uy
specjalnej instrukcji, np. \url. W dokumencie papierowym nie ma to znaczenia, znakowanie logiczne pozwala jednak przedstawi dokument zarwno
w formie drukowanej, jak i hipertekstowej, w formacie html lub pdf.

6.1.1. Instrukcje definiowane przez uytkownika


Do definiowania potrzebnych nam nowych polece moemy uy instrukcji:
\newcommand{nazwa}[num]{tekst}

Wymaga ona podania dwch argumentw. Pierwszy z nich, nazwa, oznacza


nazw nowej instrukcji, natomiast tekst to jej znaczenie, czyli tekst, ktry ma
zosta wstawiony do skadu w momencie wykonania instrukcji. Podawany
w nawiasach kwadratowych argument num powinien by cyfr od 1 do 9,
okrelajc liczb (obowizkowych) argumentw instrukcji. Argument num
jest opcjonalny, a jego pominicie oznacza, e definiowana instrukcja jest
bezargumentowa.
W czci tekst wolno uywa zarwno standardowych instrukcji LATEXa,
jak te zdefiniowanych przez uytkownika. Nie wolno jednak korzysta
z tych instrukcji, ktre same definiuj inne polecenia, jak \newcommand,
\newenvironment itp. Niedozwolona jest rekursja, nie wolno te w nazwach
instrukcji umieszcza polskich liter diakrytycznych.
Nastpujce przykady pomog lepiej zrozumie zagadnienie. W pierwszym z nich definiujemy instrukcj o nazwie \kwle, majc by skrtem dla
sw Krtkie wprowadzenie do systemu LATEX 2 . Takie polecenie mogoby
si przyda, gdyby tytu ksiki mia w niej wystpowa wielokrotnie.
\newcommand{\kwle}{Krtkie
wprowadzenie do systemu \LaTeXe}
% nastpnie po \begin{document}:
\kwle; \emph{\kwle}

Krtkie wprowadzenie do systemu LATEX 2 ;


Krtkie wprowadzenie do systemu LATEX 2

100

Adaptowanie LATEXa

Nastpny przykad ilustruje sposb wykorzystania opcjonalnego argumentu


num. Znacznik #1 oznacza pierwszy parametr formalny (#2 oznaczaby
drugi, #3 trzeci itd.). W trakcie wykonywania treci instrukcji w miejsce
parametrw formalnych TEX wstawia argumenty podane w jej wywoaniu
(parametry aktualne).
Instrukcja w poniszym przykadzie ma jeden parametr:
\newcommand{\wle}[1]
{\emph{#1} wprowadzenie
do systemu \LaTeXe}
% nastpnie po \begin{document}:
\wle{Krtkie}; \wle{Dugie}

Krtkie wprowadzenie do systemu LATEX 2 ;


Dugie wprowadzenie do systemu LATEX 2

LATEX nie pozwala zdefiniowa instrukcji nazwanej tak samo jak wczeniej
zdefiniowane polecenie. W wypadku gdy chcemy zmieni znaczenie ju istniejcej instrukcji, powinnimy uy polecenia \renewcommand. Za wyjtkiem
nazwy ma ono skadni identyczn jak \newcommand.
Czasami moe si te przyda polecenie \providecommand. Dziaa ono
jak \newcommand, z tym e jeli istnieje ju komenda o takiej samej nazwie,
to nie zastpuje ono starej, zwyczajnie ignorujc now.
Nieco uwagi naley powici temu, jaki skutek ma umieszczenie odstpu
po komendzie LATEXa. Informacje na ten temat mona znale na stronie 5.

6.1.2. Otoczenia definiowane przez uytkownika


Odpowiednikiem definiujcej nowe polecenie instrukcji \newcommand jest dla
otocze instrukcja \newenvironment. Ma ona nastpujc skadni:
\newenvironment{nazwa}[num]{pocztek }{koniec}

Podobnie jak w wypadku \newcommand, mona instrukcji \newenvironment


uy z argumentem opcjonalnym albo bez niego. LATEX wstawia tekst pocztek, gdy w dokumencie napotyka napis \begin{nazwa}, a zawarto
argumentu koniec po napotkaniu napisu \end{nazwa}.
Poniszy przykad ilustruje sposb uycia instrukcji \newenvironment.
\newenvironment{zrodlo}
{rdo: }{\par}
% nastpnie po \begin{document}:
\begin{zrodlo} Rocznik Statystyczny
GUS. \end{zrodlo}

rdo: Rocznik Statystyczny GUS.

Znaczenie argumentu num jest takie samo jak w instrukcji \newcommand.


LATEX nie pozwala zdefiniowa otoczenia o ju istniejcej nazwie. W razie
potrzeby zastpienia ju istniejcego otoczenia powinnimy uy polecenia
\renewenvironment, o skadni takiej samej jak \newenvironment.

6.1. Definiowane instrukcji i otocze

101

6.1.3. Nadmiarowe odstpy


Gdy tworzymy nowe otoczenie, problemem mog by zbdne odstpy, ktre
LATEX wstawia do skadu. Rozwamy przykad otoczenia, ktre ma si rozpoczyna od akapitu bez wcicia, ponadto pierwszy akapit po otoczeniu
take nie ma mie wcicia. Polecenie \ignorespaces, umieszczone jako
ostatnie polecenie bloku begin otoczenia, spowoduje zignorowanie wszystkich
odstpw wystpujcych przed pierwszym akapitem otoczenia. Usunicie
drugiego wcicia przez umieszczenie w bloku kocowym \ignorespaces
jest niemoliwe, gdy zawsze ostatnim poleceniem bdzie \end{otoczenie},
ktre anuluje dziaanie \ignorespaces. W takiej sytuacji trzeba skorzysta z polecenia \ignorespacesafterend. Napotkawszy je, LATEX wstawi
\ignorespaces dopiero po wykonaniu zamykajcego \end{otoczenie}.
\newenvironment{proste}%
{\noindent}%
{\par\noindent}
\begin{proste}
Zobacz odstp\\z~lewej strony.
\end{proste}
Tak samo\\tutaj.
\newenvironment{poprawne}%
{\noindent\ignorespaces}%
{\par\noindent%
\ignorespacesafterend}

Zobacz odstp
z lewej strony.
Tak samo
tutaj.

Bez odstpu
z lewej strony.
Tak samo
tutaj.

\begin{poprawne}
Bez odstpu\\z lewej strony.
\end{poprawne}
Tak samo\\tutaj.

6.1.4. Wasne pakiety


W wypadku definiowania wielu nowych polece i otocze preambua dokumentu moe si znacznie wyduy. Dobrze w takiej sytuacji stworzy
pakiet zawierajcy definicje tych instrukcji i otocze. Taki pakiet mona
pniej doczy do dokumentu poleceniem \usepackage.
Tworzenie pakietu polega na skopiowaniu polece z preambuy do oddzielnego pliku o rozszerzeniu .sty. Na pocztku pakietu naley wpisa
polecenie:
\ProvidesPackage{nazwa}

Dziki instrukcji \ProvidesPackage LATEX poznaje nazw pakietu, a to


pozwala mu na przykad ostrzec uytkownika w wypadku powtrnego do-

102

Adaptowanie LATEXa

% Przykadowy pakiet ***


\ProvidesPackage{demopack}
\newcommand{\kwle}{Krtkie wprowadzenie do systemu \LaTeXe}
\newcommand{\wle}[1]{\emph{#1} wprowadzenie
do systemu \LaTeXe}
\newenvironment{zrodlo}{rdo: }{\par}

Rysunek 6.1: Przykadowy pakiet


czenia pakietu do dokumentu. Rysunek 6.1 przedstawia niewielki pakiet
z instrukcjami z powyszych przykadw.

6.2. Fonty
6.2.1. Instrukcje przeczajce stopie pisma
LATEX automatycznie dobiera krj, odmian i stopie pisma1 dla rnych
elementw dokumentu (tytuw rozdziaw, punktw, przypisw itp.). Czasami zachodzi jednak potrzeba rcznego przeczenia kroju bd stopnia
pisma. Mona do tego uy polece zestawionych w tabelach 6.1 i 6.2. Stopie pisma jest kwesti ukadu graficznego dokumentu i zaley od wybranej
klasy dokumentu oraz ustawienia odpowiednich opcji. W tabeli 6.3 zestawiono stopnie pisma w jednostkach absolutnych dla polece zmieniajcych
wielko kroju w standardowych klasach dokumentw.
{\small Nieliczni lecz
\textbf{odwani} Rzymianie rzdzili}
{\Large wielk \textit{Itali}.}

Nieliczni lecz odwani Rzymianie rzdzili

wielk Itali.

Biecy font jest w LATEXu scharakteryzowany przez pi elementw: ukad


(zestaw znakw), krj (rodzin), grubo i szeroko, odmian oraz stopie
1

Pismo drukarskie to pismo utrwalone na noniku, tj. materiale, na ktrym umieszczono negatywy lub pozytywy znakw pisma. Krj pisma to obraz pisma drukarskiego
o jednolitych cechach graficznych, niezalenych od stopnia i odmiany pisma. Kady krj
pisma posiada swoj nazw (na przykad Times New Roman, Computer Modern czy
Garamond). Odmiana kroju pisma rnicuje pisma jednego kroju ze wzgldu na grubo,
szeroko i pochylenie. Stopie pisma okrela z kolei wielko znakw. Zestawy metalowych
czcionek , czyli kawakw metalu, w ktrych utrwalano znaki pisma, drukarze przechowywali w kasztach. Angielsk, a waciwie amerykask nazw zestawu czcionek jednego
kroju i wielkoci, powszechnie dzi uywan w terminologii komputerowej, jest font (zobacz te [3]).
Fonty LATEXa, takie jak pl, ec czy lm, s optycznie identyczne, bo wszystkie s
replikami kroju Computer Modern, rni si jednak od najczciej uywanego w edytorach
biurowych, takich jak MS Word, kroju Times New Roman.

6.2. Fonty

103

i interlini. Kady z nich mona dobra niezalenie od ustawienia pozostaych. Oznacza to na przykad, e zmiana stopnia pisma nie powoduje zmiany
jego kroju ani odmiany.
Tabela 6.1: Polecenia wyboru krojw i odmian
\textrm{...} krj szeryfowy
\textsf{...} krj bezszeryfowy
\texttt{...} grotesk, tj. pismo o jednakowej szerokoci znakw
\textmd{...} pismo jasne

\textbf{...} pismo grube

\textup{...} odmiana prosta


\textit{...} kursywa
\textsl{...} odmiana pochya \textsc{...} kapitaliki
\emph{...} wyrnienie
\textnormal{...} gwny font dokumentu

Tabela 6.2: Polecenia jednoczesnego wyboru stopnia pisma i interlinii


\tiny
\scriptsize
\footnotesize
\small
\normalsize
\large

mikroskopijny

bardzo may

mniejszy

may

\Large

wikszy

\LARGE

bardzo duy

\huge

normalny

duy

\Huge

ogromny

najwikszy

Przy okazji omawiania polece dotyczcych fontw trzeba wspomnie


o koncepcji grupowania. Grupa zaczyna si od znaku {, a koczy znakiem }.
Grupy su do ograniczania zasigu dziaania polece LATEXa. Przyjrzyjmy
si nastpujcemu przykadowi:
Lubi {\LARGE due oraz
{\small mae} litery} i~cyfry.

Lubi

due oraz mae litery i cyfry.

Pierwszy nawias klamrowy rozpoczyna grup, potem polecenie \LARGE


zmienia stopie pisma na bardzo duy, w ktrym zostanie zoony napis
due oraz. Kolejny otwierajcy nawias klamrowy zaczyna nastpn grup.
W jej obrbie polecenie \small zmienia stopie pisma na may. Do zoenia w tym stopniu przewidziano jedynie sowo mae, bo nawias } za tym
sowem zamyka grup. Po zamkniciu grupy nastpuje powrt do stopnia
pisma aktualnego przed jej rozpoczciem, czyli \LARGE. W nim zostanie zoone sowo litery. Zamknicie tej grupy powoduje, e reszt tekstu LATEX

104

Adaptowanie LATEXa

Tabela 6.3: Wielko stopnia pisma w klasach standardowych


Stopie

10pt

opcja 11pt

opcja 12pt

\tiny
\scriptsize
\footnotesize
\small
\normalsize
\large
\Large
\LARGE
\huge
\Huge

5pt
7pt
8pt
9pt
10pt
12pt
14pt
17pt
20pt
25pt

6pt
8pt
9pt
10pt
11pt
12pt
14pt
17pt
20pt
25pt

6pt
8pt
10pt
11pt
12pt
14pt
17pt
20pt
25pt
25pt

zoy w wyjciowym stopniu pisma. Jak wida, grupy mona zagnieda,


nawet wielokrotnie.
Polecenia zmieniajce stopie pisma zmieniaj take interlini. Dzieje si tak
jednak tylko wtedy, gdy przed zamkniciem odpowiedniej grupy koczony
jest akapit przez wstawienie pustego wiersza lub polecenia \par. Zwrmy
uwag na miejsce, w ktrym umieszczono instrukcj \par w poniszych
dwch przykadach.
{\Large Zdanie, ktre ma wicej
ni pi sw, nie ma sensu!\par}

{\Large Zdanie, ktre ma wicej


ni pi sw, nie ma sensu!}\par

Zdanie, ktre ma wicej ni pi


sw, nie ma sensu!
Zdanie, ktre ma wicej ni pi
sw, nie ma sensu!

Jeli zachodzi konieczno zmiany stopnia pisma dla caego akapitu lub
jeszcze duszego tekstu, to moemy skorzysta ze skadni przyjtej dla
otocze:
\begin{Large} Zdanie, ktre ma
wicej ni pi sw, nie ma sensu!
\end{Large}

Zdanie, ktre ma wicej ni pi


sw, nie ma sensu!

Zapis taki pozwala unika atwych do popenienia bdw, wynikajcych


z opuszczania nawiasw otwierajcych lub zamykajcych grupy.
W trybie matematycznym w celu zoenia fragmentu wzoru innym ni
pochye krojem pisma mona zastosowa polecenia zestawione w tabeli 6.4.

6.2. Fonty

105

Tabela 6.4: Polecenia wyboru fontw w trybie matematycznym


Polecenie
\mathcal{...}
\mathrm{...}
\mathbf{...}
\mathsf{...}
\mathtt{...}
\mathnormal{...}
\mathit{...}

Przykad
$\mathcal{B}=c$
$\mathrm{K}_2$
$\sum x=\mathbf{v}$
$\mathsf{G\times R}$
$\mathtt{L}(b,c)$
$\mathnormal{R_{19}}\neq R_{19}$
$\mathit{ffi}\neq ffi$

Wynik
B=c
K2
!
x=v
GR
L(b, c)
R )= R19
ffi )= f f i

6.2.2. Uwaga, niebezpieczestwo!


Jak zaznaczylimy na pocztku rozdziau, nie naley instrukcji zmiany fontu
wstawia explicite do pliku rdowego. Byoby to niezgodne z podstawow
ide LATEXa, jak jest oddzielenie formy od treci dokumentu i posugiwanie
si formatowaniem logicznym, a nie wizualnym. Jeeli fragment tekstu ma
zosta wyrniony przez zoenie go innym krojem lub stopniem pisma,
to naley zdefiniowa odpowiednie polecenie i potem wanie jego uywa
w treci dokumentu.
% w~preambule albo pakiecie
\newcommand{\uwaga}[1]{\textbf{#1}}
% po \begin{document}
\uwaga{Baczno!} Przewody sieci
trakcyjnej s pod napiciem.
Dotknicie grozi \uwaga{mierci}.

Baczno! Przewody sieci trakcyjnej s pod


napiciem. Dotknicie grozi mierci.

Niewtpliw zalet tego podejcia jest to, e kiedy pniej bdziemy chcieli
wyrni wszystkie elementy, na ktre czytelnik powinien zwrci szczegln
uwag, w sposb inny ni skadajc je pismem pgrubym, to nie musimy
przeglda caego pliku w celu sprawdzenia, czy dane wystpienie \textbf
dotyczy tekstu, na ktry ma zosta zwrcona szczeglna uwaga, czy te
wstawione zostao w zupenie innym celu.
Na zakoczenie rada z gatunku estetycznych: nie naley przesadza
ze stosowaniem wielu rnych krojw pisma w jednym dokumencie.

6.2.3. Uycie alternatywnych krojw pisma


Wikszo dokumentw jest skadanych w LATEXu z uyciem domylnego
kroju, bdcego replik Computer Modern. Jeeli wygld znakw z rodziny
cm nam si znuy, to moemy zoy dokument innym krojem. Musimy
jednak pamita, e na og alternatywne kroje nie s tak kompletne jak

106

Adaptowanie LATEXa

rodzina Computer Modern, czsto na przykad brakuje w nich kompletu


symboli matematycznych, znakw z alfabetw nieaciskich, takich jak greka
lub alfabet cyrylicki, albo niektrych odmian, jak na przykad kapitalikw.
Z drugiej strony krj cm ma te wady: kreski znakw s ciesze, a
wzgldna wysoko maych liter2 jest mniejsza ni w wielu innych krojach.
Te cechy kroju cm powoduj, e jest mniej czytelny w wypadku, gdy jest
reprodukowany na noniku o niskiej rozdzielczoci, lub mwic wprost
nie najlepiej si nadaje do dokumentw, ktre bd wywietlane na ekranach
komputerw, np. dokumentw w formacie pdf.
Pakiet qtimes umoliwia skad dokumentu w kroju QTimes, ktry jest
klonem znanego kroju Times New Roman autorstwa Stanleya Morisona.
Jeeli dokument zawiera wzory matematyczne, to aby znaki w formuach
byy optycznie zgodne z otaczajcym je tekstem, naley take doczy
pakiety txfonts oraz qtxmath:
%& --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} ...
Z kolei pakiet qpalatin wraz z pakietami qpxmath oraz pxfonts umoliwia
skad dokumentu krojem QPalatino (cznie ze wzorami matematycznymi),
ktry jest klonem znanego kroju Palatino autorstwa Hermanna Zapfa:
%& --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} ...
W powyszych przykadach doczono take pakiety qswiss, sfheaders oraz
qcourier. Pakiet qswiss przestawia domyl odmian bezszeryfow na krj
Helvetica, a sfheaders przedefiniowuje rdtytuy tak, e skadane s krojem
bezszeryfowym. Z kolei qcourier zamienia domylny krj o staej szerokoci
znakw na QCourier. W rezultacie pierwszy z dokumentw bdzie podobny
2

Wzgldna w porwnaniu do nominalnego stopnia pisma; wysoko ta wynosi dla kroju


cm 43%, a dla kroju Palatino 46%; dla duych liter z tych krojw jest to odpowiednio:
68,9% i 68,5%.

6.3. Odstpy

107

do typowego dokumentu skadanego na przykad edytorem MS Word; drugi


z kolei bdzie si doskonale nadawa do dokumentu pdf, ktry chcemy
umieci w sieci www, z uwagi na to, e krj Palatino reprodukowany
w niskiej rozdzielczoci jest duo bardziej czytelny ni cm, a nawet Times
New Roman. Uwaga: aby powysze deklaracje zadziaay, instalacja LATEXa
musi zawiera ww. fonty3 .

6.3. Odstpy
6.3.1. Zmiana wielkoci interlinii
Wielko odstpw midzy wierszami dokumentu mona zmieni, umieszczajc w preambule polecenie \linespread, postaci:
\linespread{czynnik }

Parametr czynnik okrela powikszenie odstpu midzy wierszami. Znany


z maszyn do pisania efekt podwjnej interlinii, czyli podwojenie odstpu,
uzyskamy za pomoc \linespread{1.6}. Aby otrzyma odstp wielkoci
1,5, powinnimy wpisa \linespread{1.3}. Pojedynczemu i zarazem domylnemu odstpowi odpowiada warto 1.
Polecenie \linespread wpywa na odstpy midzywierszowe w caym
dokumencie. Jeli s wyrane powody do zmiany odstpu tylko w pewnym
fragmencie dokumentu, to lepsza moe si okaza instrukcja:
\setlength{\baselineskip}{1.5\baselineskip}

Poniszy przykad ilustruje wykorzystanie \baselineskip:


{\setlength{\baselineskip}%
{1.5\baselineskip}
Ten akapit jest skadany
z~\ci{baselineskip} ustawionym
na 1,5 dotychczasowej wartoci.
Zwrmy uwag na wystpienie
\ci{par} na kocu akapitu.\par}
Przeznaczenie tego akapitu
jest jasne. Ilustruje on,
e po zamykajcym nawiasie
klamrowym nastpuje powrt
do normalnego skadu.
3

Ten akapit jest skadany z \baselineskip


ustawionym na 1,5 dotychczasowej wartoci. Zwrmy uwag na wystpienie \par na
kocu akapitu.
Przeznaczenie tego akapitu jest jasne. Ilustruje on, e po zamykajcym nawiasie klamrowym nastpuje powrt do normalnego
skadu.

Wchodz one w skad wspczesnych dystrybucji LATEXa. Jeeli ich nie masz, to
powiniene je doinstalowa. W dokumentacji dystrybucji powinno by opisane, jak si
to robi.

108

Adaptowanie LATEXa

6.3.2. Odstpy wok akapitw


Dwa dodatkowe parametry okrelaj w LATEXu wielko, odpowiednio, wcicia akapitowego oraz odstpu midzy akapitami. Wpisujc na przykad do
preambuy dokumentu:
\setlength{\parindent}{0pt}
\setlength{\parskip}{1ex plus 0.5ex minus 0.2ex}
ustalamy wielko wcicia akapitowego na 0 pt (co powoduje, e akapity
bd si zaczyna bez wci), a odstp midzy akapitami ustalamy na 1 ex
plus 0,5 ex minus 0,2 ex. Drugi zapis oznacza, e normalny odstp midzy
akapitami, wynoszcy 1,0 ex (jednostki miary w LATEXu podaje tabela 6.5
na stronie 109), moe si zwikszy do 1,0 + 0,5 = 1,5 ex lub zmniejszy
do 1,9 0,2 = 0,8 ex. W Europie kontynentalnej akapity skada si czasami
bez wcicia akapitowego, a jedynie z dodatkowym odstpem midzy nimi.
Ale uwaga! Ten efekt pojawi si take w spisie treci, tabel i rysunkw, gdzie
poszczeglne pozycje spisu bd od siebie bardziej oddalone (w spisach wikszo akapitw jest jednowierszowa). Aby unikn tego troch miesznego
efektu, naley usun powysze instrukcje \setlength z preambuy dokumentu i wstawi je w czci gwnej, po poleceniach \tableofcontents itp.
Najlepiej jednak wcale nie korzysta z tego sposobu, gdy znakomita wikszo ksiek jest skadana z wciciem akapitowym, a nie z dodatkowymi
odstpami midzy akapitami4 .
Wcicie akapitowe na pocztku akapitu wstawiamy poleceniem5 :
\indent

Wstawienie \indent, kiedy warto \parindent wynosi zero, nie przyniesie


oczywicie adnego efektu.
Aby uzyska akapit bez wcicia, naley przed nim umieci polecenie:
\noindent

6.3.3. Odstpy poziome


Wielko odstpw midzy sowami oraz midzy zdaniami LATEX ustala automatycznie. Dodatkowy odstp poziomy (przez odstp poziomy rozumiemy
odstp midzy wyrazami, przez odstp pionowy odstp midzy wierszami
i akapitami) moemy wstawi poleceniem:
\hspace{odlego}
4
Jednoczesne uycie wci i powikszonych odstpw midzy akapitami uwaa si
w Polsce za powany bd typograficzny.
5
Dla uzyskania efektu wcicia w pierwszym akapicie po tytule rozdziau, punktu itd.
naley doczy do dokumentu pakiet indentfirst z zestawu pakietw tools.

6.3. Odstpy

109

Jeeli taki odstp, w wyniku zamania akapitu na wiersze, wypadnie na


pocztku lub na kocu wiersza, to zostanie on usunity aby zapobiec justowaniu akapitu w chorgiewk. Jeeli LATEX ma wstawi odstp take
na pocztku lub na kocu wiersza, to zamiast \hspace naley uy gwiazdkowej wersji \hspace*. Argument odlego oznacza wymiar LATEXowy.
W najprostszej postaci jest to liczba wraz z jednostk odlegoci. Wykaz
waniejszych spord dostpnych w LATEXu jednostek odlegoci znajduje
si w tabeli 6.5.
To jest \hspace{1.5cm}odstp
rwny 1,5~cm.

To jest

odstp rwny 1,5 cm.

Tabela 6.5: LATEXowe jednostki miary


mm
cm
in
pt
em
ex

milimetr 1/25 cala


centymetr = 10 mm
cal = 25,4 mm
punkt 1/72 cala 31 mm
w przyblieniu szeroko M w biecym foncie
w przyblieniu wysoko x w biecym foncie

Czsto wygodnie jest uy odlegoci elastycznej, zostawiajc LATEXowi


nieco swobody doboru takiej odlegoci, jak uzna za najlepsz z punktu
widzenia jakoci skadu. Tak elastyczn odlego zapisujemy nastpujco:
n plus p minus m. Czci plus p i minus m s opcjonalne (kad z nich
mona pomin). Tego typu odlegoci maj naturaln wielko n i mog
si kurczy lub rozciga w zakresie od n m do n + p.
Omawiany wczeniej odstp midzy akapitami (\parskip) jest przykadem LATEXowego wymiaru o zmiennej wielkoci. Cz wymiarw moe mie
wartoci zmienne, cz jednak musi mie warto sta. Powinno by na
przykad zrozumiae, e wcicie akapitowe musi by wielkoci sta, podobnie jak szeroko i wysoko amu.
Polecenie:
\stretch{n}

wstawia specjalny rozcigliwy odstp, ktry potrafi wypeni ca woln


przestrze w pionie lub w poziomie. Jeeli na przykad wstawimy w wierszu
dwa lub wicej polece \hspace{\stretch{n}}, to odstpy dziki nim
uzyskane bd miay wielko wedug proporcji zadanych przez argument n.
W poniszym przykadzie odstp midzy x a y jest trzy razy mniejszy od
odstpu midzy y a z.

110

Adaptowanie LATEXa

x\hspace{\stretch{1}}
y\hspace{\stretch{3}}z

Wielko odstpw towarzyszcych tekstowi warto dostosowa do aktualnego rozmiaru czcionki. Mona do tego uy wzgldnych jednostek miary
em oraz ex:
{\Large{}big\hspace{1em}y} \quad
{\tiny{}tin\hspace{1em}y}

big y

tin

Przypominamy, e polecenia \quad i \qquad wstawiaj odstp poziomy


o szerokoci, odpowiednio, 1 em oraz 2 em.

6.3.4. Odstpy pionowe


Odstpy pionowe midzy akapitami, rozdziaami, punktami itp. LATEX wstawia automatycznie. Jeli zachodzi potrzeba wstawienia dodatkowego odstpu pionowego, to naley zastosowa polecenie:
\vspace{odlego}

Polecenie to naley oddzieli pustymi liniami od otaczajcego je tekstu.


Jeeli w wyniku zamania strony odstp taki znajdzie si na pocztku
lub na kocu strony (bdzie zaczyna lub te koczy kolumn tekstu), to
zostanie on usunity. Jeeli ma zosta wstawiony take na pocztku lub
kocu strony, to naley uy wersji gwiazdkowej \vspace*6 . Argument
odlego oznacza LATEXowy wymiar.
Do rozmieszczania tekstu kolumny w pionie mona uywa polecenia
\stretch, cznie z \pagebreak. W poniszym przykadzie tekst zostanie
rozmieszczony tak, e odstp u dou bdzie dwa razy mniejszy od odstpu
u gry strony:
\vspace{\stretch{1}}
Tytu i~autor
\vspace{\stretch{2}}\pagebreak
Dodatkowy odstp midzy dwoma wierszami tego samego akapitu lub midzy wierszami tabeli moemy uzyska poleceniem:
\\[odlego]

Polecenia \bigskip, \medskip i \smallskip wstawiaj odpowiednio odstpy elastyczne o nastpujcych wielkociach: 12pt 4pt, 6pt 2pt
oraz 3pt 1pt7 .
6
Zwrmy uwag, e w takim wypadku wysoko kolumny tekstu na ssiednich stronach
nie bdzie jednakowa, stosujmy zatem polecenie \vspace* z pewn ostronoci.
7
Nie s to wielkoci przypadkowe: 12 punktw to typowa odlego midzy liniami
podstawowymi wierszy przy skadzie pismem w stopniu 10 punktw.

6.4. Ukad graficzny strony

6.4. Ukad graficzny strony


Wymiary papieru mona poda jako argumenty instrukcji \documentclass.
Na podstawie zadeklarowanych wymiarw LATEX oblicza szeroko i wysoko kolumny, marginesy i inne parametry. Na rysunku 6.2 przedstawiono
dostpne parametry graficznego ukadu strony. Do przygotowania rysunku
uylimy pakietu layout z zestawu tools8 . Jeeli obliczone przez LATEXa
wartoci s z pewnych wzgldw nieodpowiednie, to mona je zmieni.
Zanim jednak zaczniemy eksperymentowa, zwikszajc na przykad
szeroko szpalty, chwil pomylmy. Jak dla wikszoci rzeczy w LATEXu,
istniej wane powody, dlaczego szeroko szpalty jest taka a nie inna.
Z pewnoci w porwnaniu z wydrukiem przygotowanym za pomoc
wieo kupionego programu MS Word strona LATEXowa ma denerwujco
wsk szpalt. Ale spjrzmy na ksik z renomowanego wydawnictwa i policzmy na niej liczb znakw w przecitnym wierszu. Okae si, e wynosi
ona okoo 66. Jeli porwnamy j z wydrukiem zoonym przez LATEXa, to
zapewne i tym razem bdzie ona zbliona do 66. Z dowiadcze wynika
bowiem, e w miar wzrostu liczby znakw w wierszu czytanie staje si mczce. Dzieje si tak, gdy przy dugich wierszach naszym oczom trudniej
jest przenosi wzrok z koca jednego wiersza na pocztek nastpnego. Jest
to jedna z przyczyn stosowania skadu wieloamowego w gazetach i czasopismach.
Tak wic, jeli zwikszamy szeroko kolumny, to pamitajmy, e moe
to utrudni odbiorcom czytanie naszej pracy. No, ale do ju kaza. Obiecalimy przecie wyjani, jak mona te rzeczy robi. . .
W LATEXu mamy dwie instrukcje do zmiany wielkoci wymiarw, uywane zazwyczaj w obrbie preambuy dokumentu. Pierwsza z nich nadaje
parametrowi okrelon wielko:
\setlength{parametr }{wielko}

Drugie polecenie zwiksza warto parametru o okrelon wielko:


\addtolength{parametr }{wielko}

Z tej pary czciej stosowana jest druga instrukcja, poniewa pozwala zmienia wymiary. Przykadowo, aby zwikszy szeroko szpalty o jeden centymetr, umieszczamy w preambule dokumentu nastpujce polecenia:
\addtolength{\hoffset}{-0.5cm}
\addtolength{\textwidth}{1cm}
Zmian parametrw ukadu graficznego strony uatwia pakiet geometry.
W wykonywaniu operacji arytmetycznych na wymiarach pomaga pakiet calc.
8

CTAN://macros/latex/packages/tools.

111

112

Adaptowanie LATEXa

C
A

C
A

A
L

Pagina
Grna
C

Kolumna tekstu

L8

1
3
5
7
9
11

Marginalia

8 B 9L
B 10L 8

B
B 1L8

C
A
L
11

Pagina dolna

1 cal+ \hoffset
\oddsidemargin = 22pt
\headheight = 12pt
\textheight = 595pt
\marginparsep = 7pt
\footskip = 27pt
\hoffset = 0pt
\paperwidth = 597pt

2
4
6
8
10

1 cal+ \voffset
\topmargin = 22pt
\headsep = 19pt
\textwidth = 360pt
\marginparwidth = 106pt
\marginparpush = 5pt (nie pokazane)
\voffset = 0pt
\paperheight = 845pt

Rysunek 6.2: Parametry ukadu graficznego strony

6.5. Wicej o odlegociach

113

6.5. Wicej o odlegociach


Kiedy to tylko moliwe, unikajmy stosowania wymiarw zdefiniowanych
w jednostkach absolutnych, takich jak punkty czy milimetry. Starajmy si
raczej odnosi wymiary do ju istniejcych, takich jak wysoko czy szeroko kolumny. W poniszym przykadzie szeroko rysunku jest definiowana
jako poowa szerokoci biecej szpalty:
\includegraphics[width=0.5\textwidth]{sowauszata.eps}
Nastpujce trzy polecenia pozwalaj okreli szeroko, wysoko i gboko tekstu:
\settoheight{nazwa}{tekst}
\settodepth{nazwa}{tekst}
\settowidth{nazwa}{tekst}

Oto przykad ilustrujcy zastosowanie tych polece:


\newenvironment{vardesc}[1]{%
\settowidth{\parindent}{#1:\ }
\makebox[0pt][r]{#1:\ }}{}
\begin{displaymath} a^2+b^2=c^2
\end{displaymath}

a2 + b2 = c2
gdzie: a, b przyprostoktne,
c przeciwprostoktna.

\begin{vardesc}{gdzie}%
$a$, $b$ -- przyprostoktne, \par
$c$ -- przeciwprostoktna.
\end{vardesc}

6.6. Pudeka
Kad stron LATEX tworzy z pudeek, ktre odpowiednio skleja. Elementarnymi pudekami s litery, z ktrych sklejane s sowa. Sowa s nastpnie
czone w wiersze, a wiersze w akapity. Do czenia uywany jest specjalny
klej, ktry dziki elastycznoci pozwala wyrazy cisn lub rozcign tak,
by dokadnie wypeniay wiersze na stronie.
Trzeba przyzna, e takie ujcie jest mocno uproszczon wersj tego, co
si naprawd dzieje, chocia zasadniczo biorc, dziaanie TEXa mona jednak
wyjani wanie w terminach pudeek oraz kleju (odstpu wstawianego
midzy pudekami). Pudekami s nie tylko litery. Do pudeka mona woy
praktycznie wszystko, take inne pudeka. Kade pudeko LATEX traktuje jak
pojedyncz liter.
Chocia nie mwilimy o tym wprost, pudeka pojawiay si ju w poprzednich rozdziaach. Na przykad polecenie \includegraphics albo otoczenie tabular tworz pudeka. Dziki temu dwa rysunki albo tabele mona

114

Adaptowanie LATEXa

atwo zestawi obok siebie. Trzeba jedynie zadba o to, by czna szeroko
poczonych obiektw nie przekraczaa szerokoci szpalty.
To samo odnosi si do akapitw, ktre jeli tego potrzebujemy
moemy skada w pudeka o zadanej szerokoci:
\parbox[pos]{szeroko}{tekst}

Do tego samego celu mona wykorzysta otoczenie:


\begin{minipage}[pos]{szeroko} tekst \end{minipage}

Argument szeroko to wymiar okrelajcy szeroko pudeka. Argument pos


jest jednoliterowy i moe przyjmowa jedn z wartoci: c, t lub b. Wartoci
te okrelaj, jak LATEX ma umieci pudeko wzgldem otaczajcego tekstu.
Warto c oznacza umieszczenie rodka wysokoci pudeka na linii podstawowej, t umieszczenie linii podstawowej pierwszego wiersza w pudeku
na linii podstawowej otaczajcego tekstu, natomiast b umieszczenie dolnej krawdzi pudeka na linii podstawowej. Wynik zastosowania parametrw
ilustruje poniszy przykad (lini podstawow oznaczono kresk):
\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}

8 8 8
8 8 8
5 5 5
5 5 56 6 6888
555 6 6 6
666

Polecenie \parbox skada tekst w pudeku, w razie potrzeby dzielc tekst


na linijki. Inaczej jest z pudekami uzyskiwanymi poleceniem \mbox, ktrych zawarto nigdy nie jest dzielona na wiersze. Polecenia tego uywamy,
gdy trzeba zapobiec dzieleniu wyrazu lub sekwencji wyrazw na wiersze.
Polecenie \mbox jest uproszczon wersj instrukcji \makebox, o skadni:
\makebox[szeroko][pos]{tekst}

W opcjonalnym argumencie szeroko moemy zada szeroko pudeka.


Moe si ona rni od naturalnej szerokoci tekstu w pudeku; moe wynosi zero, a nawet by wielkoci ujemn! W obrbie argumentu szeroko
moemy si te posugiwa wielkociami \width (szeroko), \height (wysoko), \depth (gboko) oraz \totalheight (suma wysokoci i gbokoci). Ponadto argument pos okrela sposb umieszczenia tekstu. Litera
c oznacza wyrodkowanie, l dosunicie do lewej, r dosunicie do prawej,
a s wyspacjowanie zawartoci.
Poniszy przykad ilustruje uycie polecenia \width w obrbie argumentu szeroko. Pierwsze pudeko ma szeroko rwn poowie naturalnej
szerokoci tekstu:

6.7. Kreski i podpory

115

\makebox[.5\width][l]{oooooooo}%
\makebox{xxxxxxxx}

oooooooo
xxxxxxxx

Polecenie \framebox dziaa dokadnie jak \makebox, z tym e naokoo


pudeka krelona jest ramka.
Oto przykad zastosowania polece \makebox i \framebox:
\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?

porodku
o z s t r z e l
Teraz jestem obramowany!

Troch tu jest za szeroko


Nie maDa
sprawy
si to czyta?

Pudeka mona te przesuwa w pionie. Suy do tego polecenie:


\raisebox{przesunicie}[wysoko][gboko]{tekst}

Argument przesunicie okrela wielko przesunicia w gr (lub w d, jeeli


wielko przesunicia jest ujemna). Ponadto za pomoc parametrw opcjonalnych wysoko oraz gboko mona zada nominaln wysoko oraz
gboko pudeka (LATEX bdzie traktowa pudeko tak, jakby miao zadane wymiary, bez wzgldu na wymiary naturalne). Wewntrz parametrw
mona skorzysta z wielkoci \width, \height, \depth oraz \totalheight.
\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}}}
Krzyczaa, ale nikt nie zauway,
e co si jej przytrafio.

Aaaaaaa
Krzyczaa, ale nikt nie zauway, e corsi
g jej przytrafio.
h

6.7. Kreski i podpory


W wyniku wykonania polecenia \rule, postaci:
\rule[przesunicie]{szeroko}{wysoko}

116

Adaptowanie LATEXa

otrzymujemy w skadzie czarny prostokt:


\rule{3mm}{.1pt}%
\rule[-1mm]{5mm}{1cm}%
\rule{3mm}{.1pt}%
\rule[1mm]{1cm}{5mm}%
\rule{3mm}{.1pt}

Polecenie \rule suy zwykle do rysowania kresek pionowych i poziomych.


Na przykad gruba czarna krecha na stronie tytuowej niniejszego Wprowadzenia to wynik zadziaania instrukcji:
\rule[-1ex]{\textwidth}{5pt}
Parametr przesunicie okrela, jak wysoko przesun kresk ponad lini podstawow (lub opuci poniej linii podstawowej, jeli parametr jest ujemny).
Specjalnym przypadkiem jest kreska o zerowej szerokoci, lecz o niezerowej wysokoci. Tak kresk nazywamy podpor (strut). Podpora to czsto
stosowana metoda nadawania wszystkim elementom jednakowej wysokoci.
Spjrzmy na poniszy przykad. Dziki wstawieniu podpory drugi wiersz
ma t sam wysoko co pierwszy. Zawarto wiersza trzeciego jest identyczna jak drugiego, ale w drugim wystpuje niewidoczna podpora. Gdyby
jej brakowao, to wysoko drugiego wiersza byaby mniejsza.
\begin{tabular}{|c|} \hline
\rule{1pt}{4ex}Pittprop \ldots\\
\hline
\rule{0pt}{4ex}Strut\\ \hline
Strut\\ \hline
\end{tabular}

Pittprop . . .
Strut
Strut

6.8. Wicej o skadaniu tabel


6.8.1. Tabele o zadanej szerokoci
W otoczeniu tabular szeroko poszczeglnych kolumn tabeli jest ustalana
automatycznie, a szeroko tabeli jest sum szerokoci kolumn i odstpw
midzykolumnowych. Czasami jednak trzeba zoy tabel o z gry zadanej szerokoci; jest to potrzebne przykadowo wtedy, gdy wszystkie tabele
w dokumencie maj mie t sam szeroko.
Do tego celu mona uy albo otoczenia tabular*, albo otoczenia
tabularx z pakietu o tej samej nazwie. Niestety kady z tych sposobw ma
powane ograniczenia funkcjonalne. Rozpocznijmy od otoczenia tabular*,
ktre rni si od tabular tylko jednym dodatkowym parametrem obowizkowym, okrelajcym szeroko tabeli:
\begin{tabular*}{szeroko}{spec-kolumn}

6.8. Wicej o skadaniu tabel

117

Rozwamy przykad tabeli zawierajcej najwaniejsze parametry synnych wzniesie i przeczy:


\begin{tabular}{|l|r|r|r|r|r|}\hline
Nazwa
& \multicolumn{2}{|c|}{Wys. w~m~n.p.m.} &
Dugo & \multicolumn{2}{|c|}{Nachylenie \%}\\
\cline{2-3} \cline{5-6}% \cline mona wstawia wielokrotnie
& pocztek & koniec & w~km & r. & max
\\ \hline
Col du Galibier & 1401 & 2646 & 18,1 & 6,9\% & 14,5 \\
Alpe DHuez
& 724 & 1815 & 14,2 & 7,7\% & 15,0 \\
Passo Gavia
& 1734 & 2618 & 13,5 & 6,5\% & 20,0 \\ \hline
\end{tabular}
Zoone tabele wygldaj nastpujco:
Nazwa
Col du Galibier
Alpe DHuez
Passo Gavia

Wys. w m n.p.m.
pocztek koniec
1401
2646
724
1815
1734
2618

Dugo
w km
18,1
14,2
13,5

Nachylenie %
r.
max
6,9%
14,5
7,7%
15,0
6,5%
20,0

Jeeli tabela ma by zoona na przykad na szeroko amu, to zastpujemy


tabular jego wersj z gwiazdk oraz modyfikujemy preambu tabeli:
\begin{tabular*}{\textwidth}%
{@{\extracolsep{\stretch{1}}}|l|r|r|r|r|r|}\hline ...
\end{tabular}
Zoona tabela wyglda nastpujco:
Nazwa
Col du Galibier
Alpe DHuez
Passo Gavia

Wys. w m n.p.m.
pocztek
koniec
1401
2646
724
1815
1734
2618

Dugo
w km
18,1
14,2
13,5

Nachylenie %
r.
max
6,9%
14,5
7,7%
15,0
6,5%
20,0

Wewntrz otoczenia tabular LATEX odziela poszczeglne kolumny staym


odstpem rwnym \tabcolsep. Do skadania tabel o okrelonej szerokoci
naley ten odstp zamieni na taki, ktrego wielko moe si zmienia
(por. punkt 6.3.3). Do tego celu naley uy wspomnianej w punkcie 2.11.6
(s. 39) instrukcji @. Ponadto polecenie \extracolsep, umieszczone wewntrz
instrukcji @{...}, wstawia dodatkowy odstp midzy kolejnymi kolumnami
do odwoania poleceniem \extracolsep albo a do koca tabeli.
W powyszym przykadzie polecenie @{...} usuwa domylny odstp
midzykolumnowy, zastpujc go specjalnym odstpem o zmiennej wielkoci (taki odstp wstawia polecenie \stretch). Manipulujc odstpem
midzykolumnowym, LATEX dopasowuje szeroko tabeli do danej wielkoci. Otoczenie tabular* powinno zawiera w specyfikacji formatu kolumn co
najmniej jedn konstrukcj @{\extracolsep{\stretch{1}}}. Uwany czytelnik dostrzee jednak, e kreski poziome pod pierwszym wierszem midzy

118

Adaptowanie LATEXa

kolumnami 23 oraz 56 nie s docignite do lewego brzegu. Niestety


nie da si tego naprawi przynajmniej nie w prosty sposb. Otoczenie
tabular* nadaje si do skadania tabel, ale tylko wtedy, gdy nie korzystamy
zbyt czsto z polecenia \cline.
Sprbujmy teraz zastosowa otoczenie tabularx. W tym celu najpierw
do preambuy dokumentu doczamy pakiet tabularx. Nastpnie zmieniamy
tabel w taki sposb (kolumny, ktrych szeroko ma by wyznaczona automatycznie, oznaczamy symbolem X):
\begin{tabularx}{\textwidth}{|X|X|X|X|X|X|}\hline
...
\end{tabularx}
Zoona tabela wyglda nastpujco:
Nazwa
Col
du
Galibier
Alpe
DHuez
Passo Gavia

Wys. w m n.p.m.
pocztek
koniec
1401
2646

Dugo
w km
18,1

Nachylenie %
r.
max
6,9%
14,5

724

1815

14,2

7,7%

15,0

1734

2618

13,5

6,5%

20,0

Teraz wprawdzie wszystkie kreski s elegancko docignite, ale jest problem


z pierwsz kolumn: jest ona zbyt wska, a przez to zawarto rubryk ju si
nie mieci i musi zosta przeniesiona9 . Otoczenie tabularx automatycznie
dzieli bowiem tabel wycznie na kolumny o rwnej szerokoci. Jest to jego
najwiksze ograniczenie funkcjonalne.
Specyfikacja kolumn tabeli oprcz X moe zawiera take wartoci tradycyjne, takie jak: l, r lub c. Odpowiadajcym tym specyfikacjom kolumny
maj naturaln szeroko. Przykadowo:
\begin{tabularx}{\textwidth}{|l|X|X|X|X|X|}\hline
...
\end{tabularx}
Akurat w naszym przykadzie osignelimy zadowalajcy rezultat, gotowa
tabela wyglda bowiem nastpujco:
Nazwa
Col du Galibier
Alpe DHuez
Passo Gavia
9

Wys. w m n.p.m.
pocztek koniec
1401
2646
724
1815
1734
2618

Dugo
w km
18,1
14,2
13,5

Nachylenie %
r.
max
6,9%
14,5
7,7%
15,0
6,5%
20,0

Ponadto lepiej, by kolumny 26 byy wyrwnane do prawego, a nie do lewego brzegu


rubryki.

6.8. Wicej o skadaniu tabel

119

Tabele zoone z uyciem otoczenia tabular nie s automatycznie dzielone midzy stronami. Do skadu tabel, ktre nie mieszcz si na pojedynczej
stronie, suy pakiet longtable, opisany w nastpnym punkcie.

6.8.2. Pakiet longtable


Pakiet definiuje otoczenie longtable, pozwalajce skada tabele cignce
si przez wiele kolejnych stron dokumentu. Aby zapewni jednakowe szerokoci rubryk na wszystkich stronach, wymagana jest dwukrotna kompilacja
dokumentu. Oto przykad:
\begin{longtable}{|l|r|r|r|}
\caption{Tytu tabeli}\\\hline
\multicolumn{4}{|c|}{To jest nagwek pierwszej strony}\\\hline
nazwa & wysoko & dugo & nachylenie \\ \hline
k-1 & k-2 & k-3 & k-4 \\ \hline
\endfirsthead
\hline
\multicolumn{4}{|c|}{To jest nagwek nastpnych 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 pominitych wierszy ...
La Bola del Mundo & 2257 & 21,8 & 6,2\% \\
\end{longtable}
Po zoeniu efekt jest nastpujcy10 :
Tabela 6.6: Tytu tabeli
To jest nagwek pierwszej strony
nazwa
wysoko dugo
k-1
k-2
k-3
Col du Telegraphe
1,566
12,0
Col du Galibier
2,646
18,1
Col de la Madeleine
2,000
25,4
Stopka tabeli
10

Dane z tabeli pochodz z katalogu http://www.salite.ch.

nachylenie
k-4
6,7%
6,9%
6,1%

120

Adaptowanie LATEXa

To jest nagwek nastpnych stron


k-1
k-2
k-3
Alpe DHuez
1815
14,2
Col de la Croix de Fer
2067
22,0
Col de Portet dAspet
1069
4,4
Mont Ventoux
1912
21,0
Col de lIzoard
2361
15.9
Passo dello Stelvio
2758
24.3
Col du Trebuchet
1143
14.6
Passo Gavia
2618
13.5
Col du Grand Colombier
1505
15.9
Col de lIseran
2770
48,0
Courchevel
2000
21,7
Col de lAspin
1489
12,0
Col de la Croix de lHomme Mort
1163
18,0
Col de Notre Dame des Abeilles
1000
13,9
Paso del Morredero
1872
25,0
Collado de la Caballar
1308
14,5
Capilla de la Magdalena
1137
11,0
La Bola del Mundo
2257
21,8
Stopka na ostatniej stronie

k-4
7,7%
7,0%
9,6%
7,6%
6,9%
7.4%
4.3%
6.5%
7.8%
4.1%
6,5%
6,5%
4,3%
5,1%
5,4%
7,5%
5,5%
6,2%

6.8.3. Pakiet array


Do skadu tabel o bardziej skomplikowanym ukadzie graficznym lepiej
uywa pakietu array. Pakiet ten nie wprowadza adnego nowego otoczenia,
redefiniuje jedynie i rozszerza standardowe otoczenie tabular.
W standardowym otoczeniu tabular konstrukcja p{szer-kolumn} deklaruje kolumn, w ktrej zawarto kadej rubryki bdzie skadana w prostokt o zadanej szerokoci, z wyrwnywaniem obu marginesw (odpowiednik \parbox[t]{szer}). Pakiet array wprowadza ponadto b{szer} odpowiednik \parbox[b]{szer} oraz m{szer} odpowiednik \parbox{szer}.
Przykad:
\begin{tabular}{|p{8mm}|p{8mm}|p{8mm}|}
x y z x y z x y z x y z x y z & x y z x
1 1 1 1 1 \\ \hline \end{tabular}
\begin{tabular}{|m{8mm}|m{8mm}|m{8mm}|}
x y z x y z x y z x y z x y z & x y z x
2 2 2 2 2 \\ \hline \end{tabular}
\begin{tabular}{|b{8mm}|b{8mm}|b{8mm}|}
x y z x y z x y z x y z x y z & x y z x
3 3 3 3 3 \\ \hline
\end{tabular}

\hline
y z x y y&
\hline
y z x y y&
\hline
y z x y y&

6.8. Wicej o skadaniu tabel

121

Zoone tabele wygldaj nastpujco:


xyz
xyz
xyz
xyz
xyz

xyz
xyz
xyy

111
11

xyz
xyz
xyz
xyz
xyz

xyz
xyz
xyy

222
22

xyz
xyz
xyz
xyz
xyz

xyz
xyz
xyy

333
33

Kolejnym uytecznym rozszerzeniem zdefiniowanym w array jest moliwo


bardziej szczegowego okrelenia sposobu formatowania rubryk tabeli, ni
ma to miejsce w standardowym otoczeniu tabular, gdzie w zasadzie moemy jedynie okreli sposb justowania zawartoci rubryk w poszczeglnych
kolumnach. Wracajc do przykadu tabeli zawierajcej rne parametry
dotyczce przeczy i wniesie, zamy, e nazw wzniesienia chcemy zoy kursyw, a dugo odmian pgrub. Mona to oczywicie osign,
wstawiajc odpowiednie polecenia do kadej rubryki danej kolumny, ale
sprawniej bdzie zastosowa zdefinowane w pakiecie array konstrukcje:
>{polecenia} lub <{polecenia}

Konstrukcji >{polecenia} mona uy w preambule przed c, l, r, p oraz m


i b. Jej dziaanie polega na wstawieniu polece na pocztku kadej rubryki
w tej kolumnie. Podobnie, <{polecenia} mona uy po c, l, r, p, m i b.
W rezultacie polecenia zostan wstawione na kocu kadej rubryki w tej
kolumnie.
Wracajc do przykadu, oto preambua tabeli wykorzystujca omawiane
konstrukcje pakietu array:
\begin{tabular}{|>{\itshape}l|r|r|>{\bfseries}r|r|r|}\hline
Nazwa
& \multicolumn{2}{|c|}{Wys. w~m~n.p.m.} &
Dugo & \multicolumn{2}{|c|}{Nachylenie \%}\\
...
Wynik jest nastpujcy:
Nazwa
Col du Galibier
Alpe DHuez
Passo Gavia

Wys. w m n.p.m.
pocztek koniec
1401
2646
724
1815
1734
2618

Dugo
w km
18,1
13,5
13,5

Nachylenie %
r.
max
6,9%
14,5
7,7%
15,0
6,5%
20,0

Do zmiany gbokoci konkretnego wiersza suy opcjonalny argument polecenia \\, np. \\[2pt]. Wysoko i gboko wiersza mona zmieni za
pomoc niewidzialnej kreski, np. \rule[-3mm]{0mm}{8mm}. Przykadowo,
w powyszym przykadzie tabela bdzie wygldaa lepiej, jeeli dodamy do
pierwszego wiersza:
Col du Galibier\rule[-3.5pt]{0pt}{15pt}
Spowoduje to wstawienie dodatkowego odstpu midzy kresk nad pierwszym wierszem tabeli a zawartoci wiersza.

122

Adaptowanie LATEXa

6.8.4. Pakiet tap


Pakiet tap (autorzy: Bogusaw Jackowski, Piotr Pianowski i Piotr Strzelczyk) pozwala na eleganckie skadanie nawet najbardziej ekstrawaganckich
(jednostronicowych) tabel, z tym e stosuje niestandardowy zapis11 , co moe
powodowa problemy w integracji z innymi pakietami LATEXa, np. pakietem
colortbl, sucym do kolorowania rubryk w tabelach. Oto przykad:
\input{tap.tex} %% <- doczenie pakietu
\desiredwidth=\textwidth %% skad na szeroko amu
\begintable
\begintableformat \left " &\right \endtableformat
\=
\B!^ | @2\center{Wys. w~m~n.p.m.} | Dugo |
@2\center{Nachylenie \%} \E!
\B"- \center{Nazwa} " @2\- " " @2\- \E"
\B"_
| pocztek | koniec | w~km | r.
| max \E!
\B! Col du Galibier | -- | 2645 | 17,5 | 6,9\% | 14,5 \E!
\B! Alpe DHuez
| -- | 1839 | 13,0 | 8,5\% | 15,0 \E!
\B! Passo Gavia
| -- | 2621 | 17,3 | 7,9\% | 20,0 \E!
\=
\endtable
Wynik jest imponujcy:
Nazwa
Col du Galibier
Alpe DHuez
Passo Gavia

Wys. w m n.p.m.
pocztek
koniec
1401
724
1734

2646
1815
2618

Dugo
w km
18,1
14,2
13,5

Nachylenie %
r.
max
6,9%
7,7%
6,5%

14,5
15,0
20,0

Wicej informacji mona odnale w (polskojzycznej) dokumentacji pakietu


(CTAN://macros/generic/tables/tap077.zip).
Na zakoczenie uwaga: skadanie tabel w LATEXu nie jest moe a tak proste
jak w edytorach wysiwyg, ale za to mona tworzy konstrukcje niezwykle
trudne lub wrcz niemoliwe do wykonania w innych programach. Ponadto
zadanie skadania tabel mona sobie znakomicie uatwi, stosujc skryptowe
jzyki programowania, w rodzaju Perla czy Pythona. Ju stosunkowo niewielka umiejtno programowania w wymienionych jzykach pozwala na
szybk konwersj generowanych przez zewntrzne aplikacje danych tabelarycznych do formatu LATEXa.

11

Tak naprawd, nie jest to nawet pakiet w rozumieniu LATEXa i zamiast poleceniem
\usepackage naley go docza poleceniem \input.

Bibliografia
[1] Borzyszkowski Andrzej: BibTEX narzdzie do przygotowania
bibliografii. Biuletyn gust 1999 (13), Dostpny take w http://www.
ipipan.gda.pl/~andrzej/papers/bibtex.pdf
[2] Carlisle David P.: Packages in the graphics bundle. Dokument
dostpny w zestawie pakietw graphics w pliku grfguide.tex.
[3] Chwaowski Robert: Typografia typowej ksiki, Helion 2001, isbn:
83-7197-545-7, Por. te http://www.typografia.ogme.pl/.
[4] Diller Antoni: LATEX wiersz po wierszu, tum. Jan Jeowicki, Helion,
Gliwice 2001, isbn: 83-7197-341-1.
[5] Eijkhout Victor: TEX by Topic, A TEXnicians Reference,
Addison-Wesley, Wokingham, England 1992 isbn: 0-201-56882-9
Dostpny w http://www.eijkhout.net/tbt/.
[6] Mittelbach Frank i inni: LATEX Companion, 2nd Edition,
Addison-Wesley, Reading 2004, isbn: 0201362996.
[7] Goossens Michel, Rahtz Sebastian, Mittelbach Frank: The LATEX
Graphics Companion. Addison-Wesley, Reading, Massachusetts, 1997,
isbn 0-201-85469-4.
[8] Hobby John D.: A Users Manual for MetaPost. Dostpny
w http://cm.bell-labs.com/who/hobby/. Polskie tumaczenie
Joanny Marszakowskiej jest dostpne w ftp://ftp.gust.org.pl/
pub/GUST/doc/mpint-pl.pdf.
[9] Hoenig Alan: TEX Unbound. Oxford University Press, 1998,
isbn0-19-509685-1+; 0-19-509686-X.
[10] Jackowski Bogusaw: Co ma Bezier do B-splinea? Biuletyn gust
2001 (17), ISSN: 1230-5650, Dostpny take w ftp://ftp.gust.org.
pl/pub/GUST/bulletin/17/jacko01.ps.gz.
[11] Knuth Donald E.: The TEXbook, Addison-Wesley Publishing Company
1984, isbn 0-201-13448-9.
[12] Lamport Leslie: LATEX: A Document Preparation System. 2nd
ed., Addison-Wesley, Reading 1994, isbn 0-201-52983-1. Polskie
tumaczenie Marii Woliskiej i Marcina Woliskiego LATEX System
opracowywania dokumentw. Podrcznik i przewodnik uytkownika,
wnt, Warszawa 2004, isbn 83-204-2878-5.
[13] LATEX3 Project Team: LATEX 2 for authors. Dokument dostpny
w pliku usrguide.tex w dystrybucji LATEX 2 .

124

Bibliografia

[14] LATEX3 Project Team: LATEX 2 for Class and Package writers.
Dokument dostpny w pliku clsguide.tex w dystrybucji LATEX 2 .
[15] LATEX3 Project Team: LATEX 2 Font selection. Dokument dostpny
w pliku fntguide.tex w dystrybucji LATEX 2 .
[16] LATEX Local Guide: Kada wielodostpna instalacja LATEX-owa
powinna zawiera LATEX Local Guide, w ktrym s opisane rzeczy
specyficzne dla danej lokalnej instalacji. Dokument ten powinien by
zawarty w pliku local.tex. W wielu wypadkach administratorzy nie
udostpniaj jednak uytkownikom takiego dokumentu. Pozostaje
wtedy zwrci si o pomoc do lokalnego LATEX-owego guru.
[17] Lichoski Bogusaw: TEX na indeksie. Biuletyn gust 1994 (3), ISSN:
1230-5650, Dostpny take w ftp://ftp.gust.org.pl/pub/GUST/
bulletin/03/02-bl.pdf.
[18] Macewicz Wodzimierz: Wirtualna Akademia TEXowa. Dostpna
w http://www.ia.pw.edu.pl/~wujek/tex/.
[19] Myszka Wojciech: Wczanie grafik do tekstw w LATEX 2 , Dostpny
w http://www.immt.pwr.wroc.pl/~myszka/grafika/grafika.pdf.
[20] Nowacki Janusz M.: TEXnologia a typografia. Biuletyn gust 1995 (6),
ISSN: 1230-5650, Dostpny take w ftp://ftp.gust.org.pl/pub/
GUST/bulletin/06/01-jmn.pdf.
[21] Oswald Urs: Graphics in LATEX 2 , containing some Java source
files for generating arbitrary circles and ellipses within the
picture environment, and MetaPost A Tutorial. Dostpne
w http://www.ursoswald.ch.
[22] Reckdahl Keith: Using EPS Graphics in LATEX 2 Documents.
Dostpny w CTAN://info/epslatex.ps.
[23] Rose Kristoffer H.: XY-pic Users Guide. Dostpne w ctan z pakietem
XY-pic.
[24] Sapijaszko Grzegorz: Tworzenie dokumentw pdf przy pomocy LATEXa,
Dostpny w http://www.sapijaszko.net/pedeefy.pdf.
[25] Sch
opf Rainer, Raichle Bernd, Rowley Chris: A New Implementation
of LATEXs verbatim Environments. Dokument dostpny w zestawie
pakietw tools w pliku verbatim.dtx.
[26] Volovich Vladimir, Lemberg Werner i LATEX3 Project Team: Cyrillic
languages support in LATEX. Rozpowszechniany w dystrybucji LATEX 2
w pliku cyrguide.tex.
[27] Williams Graham: The TEX Catalogue (katalog pakietw dla TEXa
oraz LATEXa). Dokument dostpny w CTAN://help/Catalogue/
catalogue.html.
[28] Woliski Marcin: mwcls Moje wasne klasy dokumentw dla
LATEX 2 . Podrcznik uytkownika. Dokument rozpowszechniany
razem z zestawem klas mwcls.zip, por. http://www.mimuw.edu.pl/
~wolinski/mwcls.html.

Skorowidz
Uwaga: hasa wyrnione imitacj pisma maszynowego, oznaczaj polecenia (jeeli s
poprzedzone znakiem w-ty-ciacha) lub otoczenia; wartoci opcji klas i pakietw oznaczono
odmian pochy imitacji pisma maszynowego; programy zostay wyrnione podkreleniem za hasa zoone krojem bezszeryfowym oznaczaj pakiety.
\!, 52
$, 45
\, 28
\(, 45
\), 45
\,, 46, 51
\-, 20
..., zob. wielokropek
\:, 51
\;, 51
\@, 31
\[, 45
%, 6
BibTEX, 69
\\, 17, 36, 37, 39, 43, 110
\\*, 17
wysiwyg, 2, 3
\], 45
^, 47
_, 47
~, 31
10pt , 10
11pt , 10, 51
12pt , 10, 51
\ao, 28
a4paper , 10, 81
a5paper , 10
abstract, 37
Acrobat, 78, 79
Acrobat Distiller, 74
Acrobat Reader, 74, 76, 81
acute, 25

\addcontentsline, 32
\address, 44
\addtolength, 111
, 25
akcenty, 25
> matematyczne, 48
align, 54
all , 94
\alt, 83
amsbsy, 57
amsfonts, 47, 64
amsmath, 46, 4952, 54, 57
amssymb, 47, 58, 64
amsthm, 56, 57
\and, 33
\appendix, 31, 32
\ar, 95
argument, 6
> opcjonalny, 6
array, 120, 121
array, 52, 53
arraycolsep, 53
\atop, 49
\author, 33, 78, 83
.aux (plik), 13, 32, 34, 69
b5paper , 10
babel, 11, 2529
\backmatter, 33
backslash, 5
\baselineskip, 107
.bbl (plik), 69
beamer, 9, 8183
.bib (plik), 69

\bibitem, 68
\big, 51
\Big, 51
\bigg, 51
\Bigg, 51
\biggl, 55
\biggr, 55
\bigskip, 110
\binom, 49
block, 83
\bmod, 49
\boldmath, 57
\boldsymbol, 57
Braams Johannes, 25
.bst (plik), 69
calc, 111
\caption, 4143
Carlisle David, 58, 65
Casartelli Fabio, 120
\cc, 44
\cdots, 51
center, 36, 68
\centering, 68
\chapter, 31, 72
\chaptermark, 72
\choose, 49
\circle, 88
\circle*, 88
\cite, 68
\cleardoublepage, 18, 42
\clearpage, 18, 42
\cline, 40, 118
\closing, 44

126

Skorowidz
.cls (plik), 13
cmd, 8
color, 76, 81
colortbl, 122
command, 8
CorelDraw!, 65
cp1250 , 8, 26
czcionka, zob. pismo
drukarskie
\date, 33, 43, 44
dcolumn, 39
\ddots, 51
\depth, 114, 115
description, 36
displaymath, 45
\displaystyle, 55
doc, 12
\documentclass, 6, 9, 10,
13, 19, 29, 81
draft , 19
.dtx (plik), 13, 73
.dvi (plik), 9, 13, 66, 73
dvipdf, 9
dvips , 67, 77
dvips, 9, 13, 66, 74
\dywiz, 22
eepic, 85, 88
\em, 35
\emph, 35, 103
enumerate, 36
epic, 85
.eps (plik), 76, 80
eps, 65, 66, 76
epstopdf, 77
eqnarray, 53
eqnarray*, 53
\eqref, 46
equation, 46, 53
eucal, 64
eufrak, 64
eurosym, 23
\EURtm, 24
executivepaper , 10
exscale, 12, 51
\extracolsep, 117
fancyhdr, 71
\fbox, 20
.fd (plik), 13

figure, 4042, 67
flalign, 54
fleqn , 10
flushleft, 36
flushright, 36
foiltex, 9
\foldera, 92
\folderb, 92
font, 102
fontenc, 12, 27, 29
fonty
> cm, 27
> cm-super, 76
> ec, 27, 76
> lm, 27, 76
> pl, 27, 76
\footnote, 34, 43
\footnotesize, 103
\footskip, 112
format, 25, 26, 28
formatowanie
> logiczne, 2
> wizualne, 2
\frac, 49
frame, 83
\framebox, 115
\frametitle, 83
Freehand, 65
\frenchspacing, 31
\frontmatter, 33
\fussy, 19
gather, 54
geometry, 72, 111
\geq, 59
ghostscript, 9, 65, 74
ghostview, 65
gimp, 66
.glo (plik), 73
gnuplot, 65
graphicx, 11, 65, 67, 76, 81
grave, 25
grupa, 103
gsview, 65
gv, 65
\headheight, 112
\headsep, 112
\height, 114, 115
hipercze, 74

hipertekst, 74
\hline, 39
Hobby John D., 85
\href, 78, 80
\hspace, 108
\hspace*, 109
html, 74
\huge, 103
\Huge, 103
hyperref, 77, 7981
hyphenat, 72
\hyphenation, 19, 20
(i bez kropki), 25
ide, 75
\idotsint, 52
.idx (plik), 13, 70, 73
ifpdf, 80
\ifpdf, 80
ifthen, 12
\ignorespaces, 101
\ignorespacesafterend,
101
\iiiint, 52
\iiint, 52
\iint, 52
.ilg (plik), 13
ImageMagick, 66
\include, 14, 67
\includegraphics, 66, 67,
76, 80, 113
\includeonly, 14
.ind (plik), 13, 70
indeks
> dolny, 47
> grny, 47
\indent, 108
indentfirst, 17, 108
\index, 70, 71
\input, 14, 122
inputenc, 12, 20, 2629
.ins (plik), 13, 72, 73
\institute, 83
\int, 50
interlinia, 107
> podwjna, 107
\item, 36
itemize, 36, 83
( j bez kropki), 25

Skorowidz
Jackowski Bogusaw, 20, 27, \leq, 59
84, 122
leqno , 10
letter, 44
jednostki miary, 109
letterpaper , 10, 81
jpeg2ps, 66
LGR , 28
.jpg (plik), 67, 76, 80
ligatura, zob. spjka
kaszta, 102
\line, 87, 92
Kew Jonathan, 28
\linebreak, 17, 18
Kile, 75
\linespread, 107
klasa
\linethickness, 90, 92
> article, 9
linia podstawowa, 51, 114,
> book, 10
116
> letter, 10
\listoffigures, 42
> mwart, 30
\listoftables, 42
> mwbook, 30
.lof (plik), 13, 32
> mwrep, 30
.log (plik), 13, 76
> report, 10
longtable, 119
> slides, 9
longtable, 119
klej, 113
.lot (plik), 13, 32
Knuth Donald E., 1, 85
Macewicz Wodzimierz, 11,
kodowanie
70
> LGR , 28
\mainmatter, 33, 79
> OT1 , 27
\makebox, 114, 115
> OT4 , 27
makeidx, 12, 69
> T1 , 27
\makeindex, 69
> T2A , 28
makeindex, 13, 69, 70
> T2B , 28
\maketitle, 33
> T2C , 28
maktexlsr, 73
> X2 , 28
\marginparpush, 112
Koodziejska Hanna, 20
\marginparsep, 112
komentarz, 6
\marginparwidth, 112
kropka, 24
Marszakowska Joanna, 123
\label, 34, 42, 46, 68
marvosym, 24
Lamport Leslie, 2
math, 45
\large, 103
\mathbb, 47
\Large, 103
\mathbf, 57, 105
\LARGE, 103
mathcal , 64
\LaTeX, 21
\mathcal, 105
LATEX2.09, 2
\mathit, 105
LATEX 2 , 2
\mathnormal, 105
LATEX3, 2, 4
\mathrm, 55, 105
\LaTeXe, 21
mathscr , 64
latexsym, 12
\mathsf, 105
latin2 , 8, 26
\mathtt, 105
layout, 111
\mbox, 20, 24, 114
\ldots, 24, 51
\medskip, 110
\left, 50, 51
METAPOST, 76, 77
\leftmark, 72
MeX , 30
legalpaper , 10
minipage, 114

127
Mittelbach Frank, 2
modulo, 49
Morison Stanley, 106
.mps (plik), 76, 80
MS Office, 66
MS Visio, 66
\multicolumn, 39
\multiput, 86, 89
multline, 54
nawias, 50
\newcommand, 99
\newenvironment, 99, 100
\newline, 17, 18
\newpage, 17, 18
\newsavebox, 91
\newtheorem, 56
\newtheoremstyle, 56
\noindent, 108
\nolinebreak, 17
nomathsymbols , 30
\nonumber, 54
\nopagebreak, 17
\normalsize, 103
\not, 59
notitlepage , 10
Nowacki Janusz, 27
obracanie
> rysunku, 68
> tabeli, 68
\oddsidemargin, 112
odstp, 4
> na pocztku wiersza, 4
> po instrukcji, 5
> podwjny, 107
> poziomy, 108
> w trybie matematycznym,
51
, 25
ogranicznik, 50
Olko Mariusz, 29
onecolumn , 10
oneside , 10
\only, 83
Oostrum Piet van, 71
opcje, 10
openany , 10, 18
\opening, 44
openright , 10, 18
OpenType, 28

128

Skorowidz
operator
> iloczynu, 50
> sumowania, 50
OT1 , 27, 29
OT4 , 27, 29
otoczenie, 35
\oval, 90, 92
\overbrace, 48
overfull hbox, 19
\overleftarrow, 48
\overline, 48
\overrightarrow, 48
\pagebreak, 17, 18, 110
\pageref, 34, 74
\pagestyle, 11
pakiet, 10
\paperheight, 112
\paperwidth, 112
\par, 104, 107
\paragraph, 31
\parbox, 114
\parindent, 108
\parskip, 108
\part, 31, 32
\pause, 83
.pdf (plik), 13, 67, 73, 76, 80
pdf, 74, 75, 78
pdfLATEX, 75, 76, 81
pdfscreen, 83
pdftex , 67, 76, 77
pdfTEX, 75
\phantom, 54
Pianowski Piotr, 122
picture, 84, 85, 88, 89
pierwiastek kwadratowy, 48
pismo
> drukarskie, 102
> krj, 102
> odmiana, 102
> stopie, 102
platex, 22, 28, 29
plmath , 29
plmindex, 13, 70
\pmb, 57
\pmod, 49
.png (plik), 67, 76, 80
podpis, 68
polecenie, 5
> kruche, 43

\polecenie, 98
polski, 2931, 49, 59, 95
PostScript, 9, 42, 75, 85
ppower4, 81
preambua, 6
prim, 48
\printindex, 70
\prod, 50
proof, 57
prosper, 81
\protect, 43
\providecommand, 100
\ProvidesPackage, 101
przecinek, 24
.ps (plik), 73
\ps, 44
pspicture, 85
pstricks, 75, 85, 88
pudeko, 68, 113
\put, 8691
pxfonts, 106
\qbezier, 84, 86, 93
qcourier, 106
\qedhere, 57
qpalatin, 106
qpxmath, 106
\qquad, 52, 110
qswiss, 106
qtimes, 106
qtxmath, 106
\quad, 46, 52, 110
quotation, 37
quote, 37
Radhakrishnana C.V., 83
\raisebox, 115
\ref, 34, 42, 46, 68, 74
\renewcommand, 100
\renewenvironment, 100
\right, 50, 51
\rightmark, 72
rotate, 75
rotate, 68
rotating, 68
\rule, 115, 116
Ryko Marek, 20, 27
\savebox, 91
\scriptscriptstyle, 55
\scriptsize, 103

\scriptstyle, 55
\section, 31, 43, 72, 83
\sectionmark, 72
\selecthyphenation, 30
\selectlanguage, 30
\setlength, 85, 108, 111
\settodepth, 113
\settoheight, 113
\settowidth, 113
sfheaders, 106
showidx, 70
sideways, 68
sidewaysfigure, 68
sidewaystable, 68
\signature, 43, 44
Simpson Tom, 120
\sloppy, 19
sowo, 71
\small, 103
\smallskip, 110
split, 54
spjka, 24
\sqrt, 48
\stackrel, 50
stopie pisma, 103
\stretch, 109, 110, 117
Strzelczyk Piotr, 122
.sty (plik), 12, 73, 101
subarray, 50
\subparagraph, 31
\subsection, 31, 83
\subsectionmark, 72
\substack, 50
\subsubsection, 31
\sum, 50
\surd, 48
symbol
> koca dowodu, 57
syntonly, 12
rodowisko, zob. otoczenie
T1 , 27, 29
T2A , 28
T2B , 28
T2C , 28
tabbing, 28
\tabcolsep, 117
table, 4042
\tableofcontents, 32, 42

Skorowidz
tabular, 38, 39, 53, 113,
116, 117, 119121
tabular*, 116118
tabularx, 118
tabularx, 116, 118
tap, 122
\temporal, 83
.tex (plik), 8, 12
\TeX, 21
TeXnicCenter, 75
\texorpdfstring, 79, 80
\text, 55
\textbf, 103, 105
\textcelsius, 23
textcomp, 23
\texteuro, 23
\textheight, 112
\textit, 103
\textmd, 103
\textnormal, 103
\textrm, 55, 103
\textsc, 103
\textsf, 103
\textsl, 103
\textstyle, 55
\texttt, 103
\textup, 103
\textwidth, 68, 112
e, 75
Th`anh H`
an Th
thebibliography, 68
\thicklines, 87, 90, 92
\thinlines, 87, 90, 92
\thispagestyle, 11
tilde, 23
\tiny, 103

129
\title, 33, 83
\titlegraphic, 83
titlepage , 10
Tkadlec Josef, 58
.toc (plik), 13, 32
\today, 21
\topmargin, 112
\totalheight, 114, 115
tryb matematyczny, 45
twocolumn , 10, 18
twoside , 10
txfonts, 106
tylda (~), 31
uamek
> pitrowy, 49
> zwyky, 49
umlaut, 25
\uncover, 83
\underbrace, 48
underfull hbox, 19
\underline, 48
unicode , 80
Unicode, 8, 26, 28, 29, 77,
80
\unitlength, 8587
\updownarrow, 50
url, 23
\url, 99
url, 23
\usebox, 91
\usepackage, 6, 11, 12, 23,
26, 67, 77, 101, 122
utf8 , 8, 26
\vdots, 51

\vec, 48
\vector, 87
\verb, 38, 43, 99
verbatim, 38, 72
verbatim, 38, 72
\verbatiminput, 72
verse, 37
\vspace, 110
\vspace*, 110
w-ty-ciach, 5
wektor, 48
\widehat, 48
\widetilde, 48
\width, 114, 115
wielokropek, 24, 51
Williams Graham, 11
Woliski Marcin, 29, 30
wstawka, 40
www, 23
wzorce podziau, 25
X2 , 28
XeTeX, 28
xfig, 65
xpdf, 74
xy, 95
\xymatrix, 95
yap, 9
zalety LATEXa, 3
Zapf Hermann, 106
znak
> caki, 50
> sumowania, 50
ywa pagina, 11, 71

You might also like