% volaný soubor (z původního souboru intro.tex).

\section{Všechny velké a~malé znaky}

\subsection{Všechny znaky jsou významné, ale některé \notocont{\\}
jsou významnější}

V~předcházející části jsme viděli, že většinou text vložíme
z~klávesnice ve formě vět složených
z~obyčejných slov tak,
jak se to dělá na psacím stroji. Viděli jsme ještě i~to, že
např. zpětné lomítko se dá použít nejméně pro dva rozdílné
účely. Můžeme ho použít
k~tomu, abychom vytiskli na
výstupu něco, co nemáme na klávesnici  ---   píšeme např.
{\tt \\TeX},
abychom dostali \TeX{}. Dá se také použít
k~tomu, abychom
předali \TeX{}u zvláštní pokyny: napíšeme-li {\tt \\bye},
říkáme tím, že vstupní soubor končí. Obecně každá
řídicí sekvence, která musí začínat
zpětným lomítkem, bude při zpracování \TeX{}em
chápána jako něco, co vyžaduje speciální zacházení. Existuje
několik set řídicích slov, kterým \TeX{} rozumí, a~to ještě můžete
sami definovat další  ---   proto jsou zpětná lomítka velice
důležitá. Vyžádá si to hodně času, než se postupně naučíme
některá tato slova, naštěstí se jich však při běžném
používání potřebuje většinou poměrně málo.

Pokud jste začínali se Spectrem, mohlo by se vám nyní začít
stýskat po možnosti psát řídicí slova stiskem jedné nebo
kombinace několika kláves. Časem se seznámíte
i~s~možností,
jak nahradit dlouhá řídicí slova kratšími a~tak je
předefinovat. Při všech těchto \uv{tricích} hraje
prominentní roli zejména zpětné lomítko, ale nejen ono.

V~principu by bylo možné nahradit všechna anglická řídicí slova
českými, bylo by to však krajně neúčelné. Jedna z~velkých
předností \TeX u~spočívá v~tom, že se stal uznávaným
mezinárodním standardem. Proto je dobré ve složitějších \TeX
ových dokumentech vznikajících u~nás užívat k~popisu angličtiny,
aby je mohli využívat uživatelé \TeX u~i~v~zahraničí.

Existují symboly, které se jako již zmíněné zpětné lomítko
užívají
v~\TeX{}u pro speciální věci. Nyní si
o~všech něco
řekneme.%
\TeXref{37--38}
Může nás i~napadnout, jak se vysází zpětné
lomítko, když to budeme potřebovat.
S~tím vším na mysli
si položíme následující otázky:

\item{(1)} Které jsou všechny další speciální znaky?
\item{(2)} Jak sázíme, resp. vytváříme na výstupu tyto
speciální znaky
v~případě, že je potřebujeme použít?

\smallskip
Nemá smysl se hned začít učit zpaměti
k~čemu
se používají  ---   zatím je
potřeba vědět, že takové znaky mají speciální význam
a~že
s~nimi nelze zacházet jako
s~normálními písmeny.
Jak se
s~nimi zachází bude vysvětleno později.

V~tabulce jsou uvedeny všechny speciální \TeX ové znaky
spolu
s~jejich použitím
a~s~popisem toho, jak se dají
v~případě potřeby vysázet (v~tom případě mluvíme
o~doslovném
(literal) výstupu):

\setbox1=\vbox{
\halign{
\strut \hfil#\hfil & \quad # \hfil & \quad\tt # \hfil\cr
\bf Znak & \bf Použití & \bf Vstup pro doslovný výstup \cr
\noalign{\hrule}
$\backslash$   & Pro speciální znaky/instrukce & \$\\backslash\$   \cr
$\{$ & Počátek skupiny                  & \$\\\lb\$                \cr
$\}$ & Konec skupiny                    & \$\\\rb\$                \cr
\%   & Komentáře                        & \\\%                     \cr
\&   & Tabulky a~srovnávání             & \\\&                     \cr
\~{} & Mezera, kde se nedělí            & \\\~{}\lb\rb             \cr
\$   & Vstup/výstup
z~matematiky        & \\\$                     \cr
\^{} & Exponenty
v~matematice           & \\\^{}\lb\rb             \cr
\_{} & Indexy
v~matematice              & \\\_{}\lb\rb             \cr
\#   & Definice parametrů (náhrad)      & \\\#                     \cr
       }
}
$$\vbox{
\hbox to \wd1{\bf \hfil Znaky vyžadující speciální vstup \hfil}
\vskip12pt
\box1
}$$

\toindex{\lb{}}
\toindex{\rb{}}
\toindex{\%}
\toindex{\&}
\toindex{\~{}}
\toindex{\$}
\toindex{\^{}}
\toindex{\_{}}
\toindex{\#}

\subsection{Sazba s~akcentem\notocont{${}^1$}}

\footnote{}{\llap{$^1$\enspace}Jde o~slovní hříčku,
neboť může být chápáno jako \uv{se (špatným) přízvukem}.
Půjde ale o~diakritická znaménka.}


Nyní začneme používat některých \TeX{}ových lahůdek: zatím
jsme používali jen toho, že nám \TeX{} pomáhá dostat
atraktivně vypadající výstupy, ale nyní začneme
s~věcmi,
které se např. na psacím stroji dají dělat těžko nebo se
nedají udělat vůbec. Zejména si všimneme akcentů
(= accents). Jak se dají vytvořit akcenty, resp. diakritická
znaménka, která se na klávesnici nevyskytují?
Je to stejné jako se symbolem \TeX{}; musíme vložit do
vstupního souboru určité řídicí slovo. Zdánlivě je tato
partie zbytečná, protože háčky, čárky a~kroužky potřebné
pro psaní českých textů jsou u~zčeštěné verze přístupné
pohodlně prostřednictvím změny klávesnice; určitě se
však někdy dostanete do situace, kdy např.~v~anglickém
textu budete nuceni použít české jméno s~akcentovanými
hláskami, v~českém textu německé či francouzské termíny
apod.

Např. pro slovo \uv{premi\`ere}, je zapotřebí
z~klávesnice
vložit {\tt premi\\\`{}ere} (může se stát, že budete trochu
slídit mezi klávesami, než najdete tu, na které je
\uv{levý (obrácený) apostrof}. Taková klávesa by tam
někde {\it měla\/} být; \TeX\ však zvládá i~ten případ, kdy na
vaší klávesnici tento znak nebo i~jiné znaky chybějí). Obecně
pro připojení akcentu k~písmenu použijeme řídicí sekvenci (pro
některý akcent je to řídicí slovo, pro jiný řídicí znak)
před tímto písmenem. Uvedeme pár příkladů:

$$\vbox{

\halign{
\strut \hfil\tt # & \quad # \hfil\cr
\bf \TeX{}ový vstup & \bf \TeX{}ový výstup \cr
\noalign{\hrule}
\\\`{}a la mode          & \`a la mode \cr
r\\\'{}esum\\\'{}e          & r\'esum\'e  \cr
soup\\c{\sp}con   & soup\c con  \cr
No\\"el               & No\"el      \cr
na\\"\\i{\sp}ve    & na\"\i ve   \cr
\\v re\\v richa    & \v re\v richa  \cr
d\\accent23um      & d\accent23um   \cr
}
}$$

Na těchto příkladech vidíme několik věcí; většina akcentů
se získá pomocí řídicích symbolů podobného tvaru. Některé se
vytvářejí pomocí řídicích slov složených
z~jediného
písmene. Někdy si to vyžádá určitou péči, protože řídicí
slovo se musí ukončit např. mezerou;
\TeXref{52--53}
pokud např. ve vstupním souboru budete mít {\tt \\TeXový}
místo {\tt \\TeX ový}, bude se
\TeX{} snažit nalézt řídicí slovo {\tt \\TeXový} a~ne
{\tt \\TeX} (u~nové osmibitové verze \TeX u~mohou
řídicí slova obsahovat i~hlásky s~akcenty). Za zmínku stojí
(a~pro češtinu je to důležité), že existuje řídicí slovo {\tt
\\i}.
To vytvoří \uv{i} bez tečky nad písmenem, tj.~\uv{\i}
(analogicky existuje i~řídicí slovo
s~\uv{j} se stejným
použitím) --- pozor na \uv{zrůdy} typu \uv{m\'is\'ic\'i automat}.
V~tabulkách {\bf nepočešťujeme} označení některých akcentů
(jiné názvy lze nalézt
v~případě potřeby
v~některých
slovnících).

\setbox1=\vbox{
\halign{
\strut \hfil # & \quad \hfil \tt # \hfil & \hfil \quad # \hfil\cr
\bf Jméno & \bf \TeX{}ový vstup & \bf \TeX{}ový výstup \cr
\noalign{\hrule}
přízvuk ostrý (čárka)        & \\\'{}o & \'o \cr
přízvuk tupý (zpětná čárka)  & \\\`{}o & \`o \cr
přízvuk složený (stříška)    & \\\^{}o & \^o \cr
přehláska/umlaut/dieresis    & \\"{}o  & \"o \cr
vlnka/tilda                  & \\\~{}o & \~o \cr
pruh nad/macron              & \\={}o  & \=o \cr
tečka nad/dot                & \\\char'056{}o    & \.o \cr
kroužek nad                  & \\accent23o   & \accent23o \cr
}
}

$$\vbox{
\hbox to \wd1{\bf \hfil Akcentování bez mezer\hfil}
\vskip 12pt
\box1
}$$

\toindex{\`@`}
\toindex{\'@'}
\toindex{\^{}}
\toindex{\"@"}
\toindex{i}
\toindex{j}
\toindex{\=@=}
\toindex{\.@.}
%\toindex{$\mathaccent23{}$}

(Zde je třeba doplnit text poznámkou: prvá tři pravopisná
znaménka se užívají ve francouzštině a~nazývají se
accent aigu, accent grave a~accent circonflex; písmena
s~přehláskou se
užívají
v~němčině i~ve francouzštině, tilda se vyskytuje mj. ve španělštině.
I~když lze pomocí ostrého přízvuku, háčku (viz níže)
a~kroužku tvořit česká písmena, je to pouze řešení
z~nouze. Používáme ho např.~při vkládání krátkých
jinojazyčných textů apod.). Vloudí-li se vám mezi
sekvenci pro akcent a~písmeno mezera, nic se
nestane; porovnejte výsledky:\hfil\break
\verb|nap\' \i nav\' a m\'\i \v cov\'a hra|

\noindent
dává nap\' \i nav\' a~m\'\i \v cov\'a hra.


\setbox1=\vbox{
\parskip=0pt
\halign{
\strut \hfil #  & \quad \hfil \tt # \hfil & \hfil \quad # \hfil\cr
\bf Jméno & \bf \TeX{}ový vstup & \bf \TeX{}ový výstup \cr
\noalign{\hrule}
cedilla         & \\c
o~& \c{o} \cr
tečka pod       & \\d
o~& {\lineskiplimit=0pt\d{o}} \cr
pruh pod        & \\b
o~& {\lineskiplimit=0pt\b{o}} \cr
h\'a\v{c}ek     & \\v
o~& \v{o} \cr
oblouček nad/breve           & \\u
o~& \u{o} \cr
oblouček nad/tie             & \\t \lb oo\rb  & \t{oo} \cr
maďarská přehláska           & \\H \lb o\rb  & \H{o} \cr
}
}

$$\vbox{
\hbox to \wd1{\bf \hfil  Akcentování s mezerami\hfil}
\vskip 12pt
\box1
}$$

\toindex{c}
\toindex{d}
\toindex{b}
\toindex{v}
\toindex{u}
\toindex{t}
\toindex{H}

\noindent
V~tomto případě je vynechání mezery před mezi
řídicím slovem pro akcent a~akcentovaným písmenem závažnou
chybou, která se projeví chybovým hlášením. Standardní
\TeX{} umožňuje i~sazbu písmen
z~mnoha jiných jazyků než
z~angličtiny. Uvedeme opět nějaké příklady:

\setbox1=\vbox{
\halign{
\strut \hfil \tt # \hfil & \quad \hfil # \hfil & \quad # \hfil\cr
\bf \TeX{}ový vstup & \bf \TeX{}ový výstup & Příklad použití\cr
\noalign{\hrule}
\\AE, \\ae    & \AE, \ae & \AE gean, \ae sthetics \cr
\\OE \\oe     & \OE, \oe & \OE uvres, hors d'\oe uvre\cr
\\AA, \\aa    & \AA, \aa & \AA ngstrom \cr
\\O, \\o      & \O, \o   & \O re, K\o benhavn  \cr
\\L, \\l      & \L, \l   & \L odz, \l\'odka \cr
\\ss          & \ss      & nu\ss \cr
{!}{\`{}}     & !`       & !`HOLA!        \cr
{?}{\`{}}     & ?`       & ?`Con qu\'e sue\~na? \cr
\lb\\it\\\$\rb & {\it\$} & 1 {\it\$} = 52 Kč \cr
}
}

$$\vbox{
\hbox to \wd1{\bf \hfil Znaky
z~některých neanglických
jazyků\hfil}
\vskip 12pt
\box1
}$$

\toindex{AE}
\toindex{ae}
\toindex{OE}
\toindex{oe}
\toindex{AA}
\toindex{aa}
\toindex{O}
\toindex{o}
\toindex{L}
\toindex{l}
\toindex{ss}

\noindent Vysázejte všechny příklady
z~následujících cvičení:
{\parskip = 3 pt
\exercise Rozumí \AE schylus  \OE dipovi?

\exercise Nejmenší vnitřní jednotka délky
v~\TeX{}u je asi 53.63\AA.

%\exercise Plus \c ca change, plus \c ca la m\^eme chose.

\exercise \'El\`eves,\footnote{$^1$}{Francouzi ovšem akcenty nad
velkými písmeny ve skutečnosti nepíší.}  r\'efusez vos le\c
cons! Jetez vos cha\^\i nes!

\exercise Za\v sto tako polako pijete \v caj?

\exercise Ich mu\ss\ hei\ss en Tee abk\"uhlen.

\exercise Maar die \"ys is lekker.

\exercise Peut-\^etre il pr\'ef\`ere le caf\'e glac\'e.

\exercise Lze jet trajektem
z~\"Olandu do \AA landu?
}


\def\bdots{$\textfont0=\tenbf \ldots$} %%% boldface version of \ldots



\subsection{Tečky, pomlčky, uvozovky, \,.\,.\,.}

Psaní na stroji bylo odjakživa kompromisem; malé množství
kláves ve srovnání
s~množstvím potřebných symbolů si
vynucovalo při psaní zpravidla změny. Když však text
připravujeme
pomocí \TeX{}u, nemusíme se nijak omezovat.
V~této části se
seznámíme
s~některými rozdíly mezi psaním na stroji
a~používáním \TeX u.

Existují čtyři druhy pomlček, které se běžně používají.
Krátká pomlčka, resp. spojovník či rozdělovník (hyphen) se
užívá ke spojování (je-li, Hahn-Banach, \dots) nebo
k~dělení
slov na konci řádku.%
\TeXref{3--5}
Pomlčka (en-dash, kde \uv{en} souvisí se
šířkou písmene $n$) se užívá při výčtech (např.: str. 54--58),
dlouhá pomlčka (em-dash, kde \uv{em} indikuje šířku písmene
$M$) je
v~podstatě gramatickým symbolem užívaným někdy pro  ---
jsou-li nezbytně nutné  ---   vsuvky, atp. Konečně užíváme
znamení \uv{minus}
v~matematických textech; příklady udává
tabulka.


\setbox1=\vbox{
\halign{
\strut \hfil # &\ \hfil \tt # \hfil & \hfil # \hfil
                     &  # \hfil\cr
\bf Jméno& \bf \TeX{}ový vstup & \bf \TeX{}ový výstup & \bf
Příklad \cr
\noalign{\hrule}
rozdělovník       & -         & -   & Prostor je 3-rozměrný. \cr
pomlka          & {-}{-}    & --  & Viz. stránky 3--4. \cr
dlouhá pomlka   & {-}{-}{-} & --- & Vidím je --- jsou živí! \cr
minus  & \$-\$     & $-$ & Teplota byla
                  $-$3 stupně. \cr
}
}

$$\vbox{
\hbox to \wd1{\bf \hfil Různé typy pomlček\hfil}
\vskip 12pt
\box1
}$$

(Poznámka: Zde je třeba se při sazbě přidržet norem pro
tisk, a~ne norem pro psaní strojem, kde se
--- vynuceně --- všechny pomlčky píší stejně.
Na rozdíl od angličtiny necháváme ale mezeru po obou stranách
\uv{ --- {}}.)
Dlouhá pomlka \uv{---} se u~nás běžně užívala v~klasické sazbě
knihtiskové, i~když samozřejmě její délka není ve všech písmech
stejná. S~příchodem fotosazby se ovšem začaly vytrácet i~běžné
ligatury fi, ff, fl, které většina moderních sázecích systémů už vůbec
nezná. Podobně většina uživatelů ventur a~pagemakerů vystačí
s~rozdělovníkem místo pomlčky, jak se můžeme denně přesvědčovat
v~řadě našich deníků. \TeX\ je od verze 3.0 mimo jiné schopen
v~jednom řezu písma pracovat s~více než 30\,000 ligaturami,
přičemž se nemusí jednat o~jednoduché záměny dvojic znaků jiným
znakem. Ligaturní mechanismus \TeX u~se např. využívá
v~azbukových písmech \AMSTeX u, kde po použití obvyklé
mezinárodní transkripce dostanete na výstupu správný text v~azbuce.

U~každé ukázky ve cvičeních
z~této sekce napište text, který
je nutno vložit do vstupního souboru, aby výsledný text na
výstupu byl stejný jako text ve cvičení.

\exercise Zpívala-li tra-la-la, ráda
k~tomu --- poněkud
neobratně --- poskakovala.



\exercise Zima 1942--1943 byla nejhorší --- mnoho lidí
nepřežilo.


Další rozdíl mezi psaním na stroji a~psaním pomocí \TeX{}u je
v~užívání uvozovek. \TeX\ je vytváří
z~levých a~pravých apostrofů:
na začátku použijeme \`{}\`{}, na konci \'{}\'{}, což by dalo bez
dalšího zásahu uvozovky dle amerického stylu (obojí
nahoře). Stejně lze psát i~jednoduché uvozovky, které se
u~nás neužívají.
V~českých textech se užije makro {\tt czech.sty}, které
upraví ``anglosaské'' uvozovky na  \uv{české} (též upraví
mezerování mezi větami a~další věci). Užijeme-li normální
uvozovky {\tt <">}
z~klávesnice, dostaneme zpravidla uvozovky koncové, tj.~''.
Jejich výlučné užívání nedoporučujeme; nelze na to
ostatně zcela spoléhat, někdy to tak nevyjde.
Pokud jste vynechali kapitolu o~zčeštěném \TeX u, vraťte se
k~ní, seznámíte se s~dalšími možnostmi.

\exercise \uv{Jeho jasnost,} ohlásil komoří.


\exercise Jaroslav vyhrkl: \uv{Opravdu je taková, že neumí
říci {\clq ne\crq}?}


Někdy užíváme skupinu tří teček
k~označení místa, kde došlo
k~vypuštění části textu, nebo pro označení běhu času apod.
Tři tečky vložené
z~klávesnice dají na výstupu též tři
tečky, ale velmi blízko
u~sebe. Trojici teček
s~\uv{dobrými}
mezerami dostaneme
v~tomto případě pomocí řídicího slova
{\tt \\dots}, které vložíme do vstupního
souboru.%
\TeXref{173}
\toindex{dots}

\exercise Jistě si vzpomenete na heslo, které na nás
hlásalo z~poutačů \uv{\dots až na věky \dots a~nikdy jinak.}

V~anglickém textu (zejména v~americké angličtině) je mezera za
tečkou na konci věty větší
než mezera mezi slovy (při psaní českého textu se pomocí souboru
{\tt czech.sty} automaticky vkládá řídicí slovo
{\tt \\frenchspacing}, které tuto zvláštnost potlačí).
Proto je třeba \TeX{} informovat
o~tom, že například tečka
za zkratkou, která končí malým písmenem,
{\it není\/} na konci věty. To lze udělat dvěma
způsoby: za tečkou lze napsat {\tt\\\sp} nebo {\tt\~{}},
čímž se mezerování změní.%
\TeXref{91--92}
Druhá varianta dává mezeru,
v~níž nelze dělit
řádek; je např. použitelná pro vstup {\tt Prof.\~{}Knuth.}
Je vhodné ji užívat
s~tituly, se zkratkami křestních jmen,
atp. Všimněte si, že se
v~tomto případě
v~kombinaci
s~{\tt\~{}}
neužívá zpětného lomítka.

\exercise Mr.~J.~B.~Smith
z~Washingtonu, D.~C., přijede
z~U.~S.~A. do \v CSFR\footnote{${}^1$}{V případě změny
názvu nebo neexistence vhodně upravte.}
v~pátek 13.~8.
v~9.30.


\exercise Nezkracujte pravou délku úsečky následovně:
pr.~d.~úsečky; raději pište pr.~dél. úsečky nebo ještě
lépe pr.~délka úsečky. (Prof.~K.~Havlíček.)

\subsection{Různá písma}

Nejvíce patrný rozdíl mezi strojopisem a~produktem \TeX{}u
je bezpochyby
v~různorodosti typů písma (písmena jednoho
typu tvoří písmo, nebo-li font) a~různých symbolů. Když
\TeX{} začíná pracovat, má
k~dispozici šestnáct písem  ---
jejich úplný seznam je obsažen
v~Appendixu F Knuthovy knihy
\TeX{}book.
\TeXref{427--432}
Většina
z~nich se užívá automaticky;
v~matematickém textu se index či exponent tiskne menším typem
písma bez dalšího zásahu uživatele.

Následující tabulka podává přehled nejčastěji užívaných
písem (ukázku a~některé názvy nepřekládáme):

\setbox1=\vbox{
\halign{
\strut \hfil # & \quad \hfil \tt # \hfil & \hfil \quad # \hfil\cr
\bf Jméno písma & \bf \TeX{}ový přepínač & \bf Vzorek písma \cr
\noalign{\hrule}
Antikva/Roman       & \\rm  & \rm This is roman type. \cr
Polotučně
/Boldface    & \\bf  & \bf This is boldface type.\rm {${}^1$} \cr
Kurzíva/Italic      & \\it  & \it This is italic type. \cr
Skloněné/Slanted     & \\sl  & \sl This is slanted type. \cr
Stroj/Typewriter  & \\tt  & \tt This is typewriter type. \cr
Matematické symboly & \\cal & $\cal
SCRIPT\hbox{\quad}LETTERS$.\rm{${}^2$} \cr
}
}


\nobreak
$$\vbox{
\hbox to \wd1{\bf \hfil Ukázky písem \hfil}
\vskip 12pt
\box1
}$$


\toindex{it}
\toindex{rm}
\toindex{bf}
\toindex{sl}
\toindex{tt}
\toindex{cal}

\footnote{}{\llap{${}^1$\enspace}Významový posuv
u~překladu
lépe odpovídá československým zvyklostem.}
\footnote{}{\llap{${}^2$\enspace}Tento příklad je drobný podvod,
protože pro jeho vytvoření je třeba něco vědět
o~vkládání matematických textů,
chtěl jsem ho však stejně uvést. Až se seznámíte
s~používáním matematických symbolů, budete
umět použít i~toto písmo. Konečně ani vkládání poznámek pod čarou
do tabulek není tak docela jednoduché.}

Chceme-li změnit obvyklé stojaté písmo (u~nás se zpravidla
nazývá {\it antikva}, roman
v~anglických textech) např. na
{\it kurzívu\/} (italic), použijeme
řídicího slova {\tt \\it}. Zpět
k~antikvě se vrátíme pomocí
{\tt\\rm}. Chceme-li například napsat větu ``Začneme
s~antikvou, \it teď přejdeme na kurzívu\/ \rm a~nyní opět
k~antikvě'', stačí
k~tomu napsat pro vstup {\tt ``Začneme
s~antikvou, \\it teď přejdeme na kurzívu\\/ \\rm a~nyní opět
k~antikvě''}.\footnote{$^3$}{Záleží na použitém zobrazovači,
jestli se vám na monitoru objeví {\tt ť}, {\tt ď}, anebo {\tt \v
t}, {\tt \v d} --- u~zobrazovače pro VGA dodávaného \CSTUG em
nastane ten druhý případ.}

Šikmé písmo (slanted) a~kurzíva se obvykle na první pohled výrazně
neliší (porovnejte ale šikmé {\sl a\/}
s~kurzívním {\it a\/}).
Když se mění typ písma ze šikmého nebo
z~kurzívy na stojatou
antikvu (či jiné podobné písmo), poslední šikmé písmeno se
naklání
k~prvnímu stojatému. Nevypadá to hezky a~je potřeba
zkrácení mezery kompenzovat přidáním další menší mezery pro
přesah  ---    nazývá se to {\it kurzívní korekce\/} (italic
correction). Provádí se pomocí řídicího symbolu {\tt \\/}.
\TeXref{7--8}
\toindex{\/@/}
V~následující větě pro srovnání {\it není\/}
po prvním použití kurzívy užito kurzívní korekce, ale po druhém
ano: {\it Pif} koupil koně a~{\it Paf\/} koupil sedlo.
Podíváte-li se pozorněji, jsou
v~prvém případě písmena  \uv{$f$}
a~\uv{k} příliš blízko sebe;
s~korekcí je sazba hezčí.

V~\TeX{}u se dají definovat nová písma samozřejmě jen
tehdy, jsou-li ve vašem systému instalována. Různé
velikosti písma se dají užívat pomocí řídicího slova  {\tt
\\magstep}. Pro definici nového písma je třeba znát jeho
označení ve vašem počítači. Například obvyklé stojaté
písmo (roman) se ve
většině systémů i~na osobních počítačích jmenuje \uv{\tt cmr10}.
Máte-li ve vstupním souboru řádek {\tt \\font\\bigrm = cmr10
scaled \\magstep 1},
můžete pak používat řídicí slovo {\tt\\bigrm} stejným
způsobem jako užíváte {\tt\\it} a~{\tt\\rm}.
\TeXref{13--17}
\toindex{magstep}
\toindex{font}
\toindex{scaled}

Přepnutím pomocí {\tt\\bigrm} dostanete antikvu zvětšenou
o~20\,\% oproti normální. Definujete-li {\tt
\\font\\bigbigrm = cmr10 scaled \\magstep~2}, dostanete
písmo
o~44\,\% větší než normální antikva. Dají se použít
velikosti od {\tt \\magstep 0} až po {\tt\\magstep~5}. Na
většině počítačů je
k~dispozici i~{\tt \\magstephalf};
pomocí tohoto řídicího slova dostaneme zvětšení
o~9,5\,\%.
Uveďme si vzorky téhož písma
v~různých velikostech:

\vskip \baselineskip
{\lineskiplimit0pt
\centerline{\rm Toto je vzorek
s~magstep 0, což je obvyklá
velikost.}
\centerline{\brm  Toto je vzorek
s~magstep 1.}
\centerline{\bbrm Toto je vzorek
s~magstep 2.}
\centerline{\bbbrm Toto je vzorek
s~magstep 3.}
\centerline{\bbbbrm Toto je vzorek
s~magstep 4.}
\centerline{\bbbbbrm Toto je vzorek
s~magstep 5.}}


Je dokonce možné definovat zcela nová písma. Závisí to
ovšem opět na tom, zda jsou
v~systému instalována (zde
nejde
o~tvorbu zcela nových písem pomocí speciálního
softwaru, ale
o~užití již hotových písem, kterých se
v~závislosti na zakoupeném programovém vybavení vyskytuje
mnoho). Tak např.
v~mnoha instalacích lze nalézt soubor
označený {\tt cmss10}, což je označení pro bezpatkové písmo (sans
serif). Použijeme-li definice písma {\tt \\font\\sf =
cmss10}, lze pak psát řídicí slovo {\tt\\sf}
k~přepnutí do
tohoto písma stejně jako
u~{\tt\\bf}, které přepíná do
polotučného písma (boldface). Jestliže použijeme zmíněnou
definici, pak vložením
\displaytext{\tt \\sf Toto je ukázka našeho
bezpatkového (Sans Serif) písma.}
dostaneme
\displaytext{\sf Toto je ukázka našeho
bezpatkového (Sans Serif) písma.}
\toindex{sf}

Existuje mnoho dalších použitelných typů písem. Písma uvedená
v~následující tabulce patří
k~nejběžnějším.

{\def\*{{\rm~*}}
\setbox1=\vbox{
\halign{
\strut \tt # \hfil & \hskip2mm\tt # \hfil & \hskip2mm\tt # \hfil
                   & \hskip2mm\tt # \hfil & \hskip2mm\tt # \hfil
                   & \hskip2mm\tt # \hfil  \cr
\noalign{\hrule} \noalign{\smallskip}
CMBSY10\* &CMBXSL10  &CMBXTI10  &CMBX10    &CMBX12    &CMBX5      \cr
CMBX6     &CMBX7     &CMBX8     &CMBX9     &CMB10     &CMCSC10    \cr
CMDUNH10  &CMEX10\*  &CMFF10    &CMFIB8    &CMFI10    &CMITT10    \cr
CMMIB10\* &CMMI10\*  &CMMI12\*  &CMMI5\*   &CMMI6\*   &CMMI7\*    \cr
CMMI8\*   &CMMI9\*   &CMR10     &CMR12     &CMR17     &CMR5       \cr
CMR6      &CMR7      &CMR8      &CMR9      &CMSLTT10  &CMSL10     \cr
CMSL12    &CMSL8     &CMSL9     &CMSSBX10  &CMSSDC10  &CMSSI10    \cr
CMSSI12   &CMSSI17   &CMSSI8    &CMSSI9    &CMSSQI8   &CMSSQ8     \cr
CMSS10    &CMSS12    &CMSS17    &CMSS8     &CMSS9     &CMSY10\*   \cr
CMSY5\*   &CMSY6\*   &CMSY7\*   &CMSY8\*   &CMSY9\*   &CMTCSC10   \cr
CMTEX10\* &CMTEX8\*  &CMTEX9\*  &CMTI10    &CMTI12    &CMTI7      \cr
CMTI8     &CMTI9     &CMTT10    &CMTT12    &CMTT8     &CMTT9      \cr
CMU10     &CMVTT10                                                \cr
}
}
\footnote{}{\hbox to 0pt{\hss ${}^1$ }V~\CSTeX{}u je nutné při použití
přímých akcentů zavést místo fontu {\tt cm* }font {\tt cs*} (tedy například
místo fontu {\tt cmr10} píšete {\tt csr10}). Vyjímku tvoří fonty
matematické (v~tabulce označené hvězdičkou), pro něž alternativa {\tt cs*}
neexistuje.}
\nobreak\medskip
$$\vbox{
\hbox to \wd1{\bf \hfil Názvy externích druhů písma${}^1$ \hfil}
\vskip 12pt
\box1
}$$
}


Řekněme si něco
o~těchto názvech. Prvá dvě písmena CM znamenají Computer
Modern; tento název pro celou rodinu písem zavedl jejich tvůrce
D. Knuth. Číslo na konci udává velikost písma
v~bodech:
10\,bodové písmo má obvyklou velikost, 7\,bodová velikost
je běžná pro indexy a~5\,bodová velikost je velikost písma pro
indexy druhé úrovně; písmo 12\,bodové je o~20\,\% větší
než 10\,bodové atd. Následuje-li po písmenech CM písmeno B (od
boldface), jde
o~polotučné písmo. Podobně R indikuje
antikvu (roman), I~kurzívu (italic). Další běžné označení CSC
se užívá pro kapitálky (nesouvisí
s~hodností CSc., ale
s~názvem \uv{small caps}),
SL pro skloněné písmo (slanted), SS pro bezpatkové
písmo (sans serif), SY pro symboly a~TT pro písmo typu psacího
stroje.
%\toindex{CM}
%\toindex{pt}
%\toindex{CMB}
%\toindex{CMR}
%\toindex{CMI}
%\toindex{CSC}
%\toindex{CMSL}
%\toindex{CMSY}
%\toindex{CMTT}
\exercise Nalezněte všechny druhy písma, které máte na
počítači, a~v~několika z~nich vytiskněte všechna písmena
a~číslice.

\exercise Písmo {\tt CMR12} je
o~20 \% větší než {\tt CMR10}.
Také {\tt \\magstep~1} zvětšuje písmo
o~20 \%. Vezměte si nějaký text
a~vytiskněte jej pomocí {\tt CMR12} a~potom pomocí {\tt CMR10} zvětšeného
pomocí {\tt \\magstep~1}. Výsledky se zcela liší!




\section{Úprava věcí příštích}


V~této části chceme ukázat, jak vytvořit {\it text\/} různých
tvarů či velikostí. Budeme tak moci tvůrčím způsobem mnohem více
ovládat tvar vytvářeného dokumentu. Lze však samozřejmě
používat \TeX{} s~již
předdefinovanými (default) velikostmi tak, jak jsme to dělali
dosud.
Popisujeme-li velikosti různých částí stránky textu,
můžeme užívat několika různých délkových jednotek.

\subsection{Jednotky, jednotky, jednotky}

\TeX{} může užívat mnoho typů délkových jednotek.
Nejobvyklejší jsou centimetr, palec (inch), tiskařský bod
a~pica. Užívané zkratky dle uvedeného pořadí jsou
{\tt cm}, {\tt in}, {\tt pt} a~{\tt pc}. (Nejsou to všechny
jednotky, které \TeX{} zná, stejně tak rozumí i~zkratce
{\tt mm}, nicméně nejbližší jsou
mu~palce ---
předdefinované rozměry jsou zpravidla udávány
v~{\tt in}.)
Bod (tiskařský dále vynecháváme) je definován rovností 1\,in
= 72,27\,pt, pica se definuje pomocí vztahu 1\,pc = 12\,pt.
Bod je tedy dosti malá míra --- následující tabulka dává
rozumnou představu
o~uvedených mírách. V~evropské typografii se ovšem používají
trochu odlišné míry: 1 bod (Didotův, {\tt dd}) je o~malinko větší než
americký bod (je 1\,dd = $1238\over1157$\,pt) a~cicero ({\tt cc}) je
definováno podobně jako pica vztahem 1\,cc = 12\,dd.
\TeXref{57}

\def\pip{\vrule height 4 true pt }
%$$ \hbox{1 palec (in): } \hbox to 1 true in{\pip\hrulefill\pip}$$
%$$ \hbox{1 centimetr (cm): }\hbox to 1 true cm{\pip\hrulefill\pip}$$
%$$ \hbox{20 bodů (pt): }\hbox to 20 true pt{\pip\hrulefill\pip}$$
%$$ \hbox{1 pica (pc): } \hbox to 1 true pc{\pip\hrulefill\pip}$$
%$$ \hbox{1 milimetr (mm):   } \hbox to 1 true mm{\pip\hrulefill\pip}$$

$$\eqalign{
\hbox{1 palec (in)}&: \ \hbox to 1in{\pip\hrulefill\pip}\cr
\hbox{1 centimetr (cm)}&: \ \hbox to 1cm{\pip\hrulefill\pip} \cr
\hbox{20 bodů (pt)}&: \ \hbox to 20 pt{\pip\hrulefill\pip}\cr
\hbox{20 bodů (dd)}&: \ \hbox to 20 dd{\pip\hrulefill\pip}\cr
\hbox{1 pica (pc)}&: \ \hbox to 1 pc{\pip\hrulefill\pip}\cr
\hbox{1 pica (cc)}&: \ \hbox to 1 cc{\pip\hrulefill\pip}\cr
\hbox{1 milimetr (mm)}&: \ \hbox to 1 mm{\pip\hrulefill\pip} \cr
}$$
%\toindex{in}
%\toindex{cm}
%\toindex{mm}
%\toindex{pt}
%\toindex{dd}
%\toindex{pc}
%\toindex{cc}

Bodů se tedy používá
k~provádění jemných změn; pica je cca
vzdálenost mezi základnami (jde
o~\uv{linky}, na něž se
písmena umisťují, i~když některá písmena jako $p$, $g$
apod. tuto linku směrem dolů přesahují) dvou po sobě
následujících řádků (nezvětšeného) normálního textu. \TeX{}
je velmi přesný; jeho nejmenší vnitřní jednotka délky je
menší než čtyřmilióntina palce (mimochodem: umíte si
představit,
s~jakými rezervami vzhledem
k~budoucímu vývoji
je \TeX{} koncipován?).
S~ohledem na tento fakt je to pouze
rozlišovací schopnost výstupní tiskárny, která určuje možnou
přesnost výstupu.



Někdy je užitečné používat ještě další dvě jednotky, jejichž
velikost {\it se~mění\/}
s~velikostí užívaného písma, kterým
v~daném okamžiku píšeme. Jednotka {\tt ex} je cca výška
malého \uv{x} a~{\tt em} je trošku menší než šířka velkého
\uv{M}. \TeXref{60}


Forma výstupu je obecně určena užitými řídicími slovy.
Těchto slov je spousta, proto je možné výstup
v~tištěné
formě ovládat velice jemným způsobem. Zároveň je však
zřejmé, že pro běžnou
práci jich většinou stačí pouze malé množství.

\subsection{Úprava stránky}

Stránka textu má tři základní části. Nad hlavním textem bývá
obvykle {\it záhlaví\/} (headline). Záhlaví zpravidla obsahuje
např. název kapitoly, název jejího oddílu (section) nebo
číslo stránky; může se lišit
u~levých a~pravých stránek.
Pod záhlavím je hlavní text, který obsahuje i~poznámky
(někdy mluvíme
o~\uv{poznámkách pod čarou}). Pod ním
následuje poslední část stránky (footline), obsahující
eventuálně (ne nutně)  číslo stránky apod.

V~příkladech,
s~nimiž jsme se až dosud seznámili, bylo
záhlaví prázdné; také třetí část strany kromě čísla stránky
uprostřed neobsahovala nic ---
v~případě, že jsme užili řídicího slova
{\tt\\nopagenumbers}, potlačujícího tisk čísel
stránek, byla i~tato část prázdná.
O~první
a~poslední části stránky bude později ještě řeč, teď se
však soustředíme na hlavní text.
\toindex{nopagenumbers}

Pro přechod na novou stránku (z~jakékoli pozice na stránce)
můžeme použít řídících slov {\tt \\vfill \\eject}. Řídicí slovo {\tt
\\eject} si vynucuje přechod na další stranu, zatímco {\tt
\\vfill} vyplní prázdným místem zbytek aktuální strany na
jejím spodním konci (můžete zkusit pokusně vynechat
{\tt \\vfill}; uvidíte, jak pracuje vertikální obdoba
zarovnávání pravého okraje řádků).
\toindex{vfill}
\toindex{eject}

{\hsize=4in
Aktuální užitá vodorovná šířka textu na stránce je popsána
pomocí řídicího slova {\tt \\hsize}. Dá se ale kdykoli změnit např.
na 4 palce použitím řídicího slova {\tt \\hsize = 4 in}.
Jak lze vidět na tomto odstavci šířka
textu se dá rovněž změnit (v~tomto případě také na 4 palce)
i~v~rámci
jediného odstavce. Protože tato označuje novou šířku odstavce ve
vodorovném směru, dává výraz typu {\tt \\hsize = .75\\hsize}
změnu na novou hodnotu vztaženou
k~předcházející,
v~našem případě
od 4\,in na 3\,in. \par}
\toindex{hsize}

Svislá (vertikální) obdoba řídicího slova {\tt \\hsize} je
{\tt \\vsize}. Přiřazenou hodnotu lze
měnit stejně jako
v~předcházejícím
případě. Tak např. {\tt \\vsize = 8 in} (ale
i~{\tt \\vsize=8in} nebo {\tt \\vsize8in})  lze užít ke změně
svislého rozměru hlavního textu. Připomínáme, že {\tt \\vsize}
je rozměr textu {\it kromě\/} záhlaví a~místa pod
patou stránky, kde je obecně místo pro footline.
\toindex{vsize}
Text se dá též po stránce posunovat. Horní levý roh textu
je vzdálen
o~1\,in (\.= 25\,mm) od levého a~horního okraje
papíru. Řídicí slovo {\tt \\hoffset} a~{\tt \\voffset}
slouží
k~posunutí textu ve vodorovném, resp. svislém směru.
Tak např.  {\tt \\hoffset = 10\,mm} a~{\tt \\voffset = -.2~in}
posunou text
o~dalších 10\,mm vpravo a~cca 5\,mm nahoru;
můžeme užívat najednou více jednotek, \TeX{} si je lehce
přepočítá.
\TeXref{251}

\toindex{hoffset}
\toindex{voffset}

\setbox1=\vbox{
\halign{
\strut \hfil # &
\quad \hfil \tt # \hfil & \hfil \quad # \hfil\cr
\bf Jméno & \bf Řídicí slovo
v~\TeX{}u & \bf
v~\TeX{}u
předdefinováno \cr
\noalign{\hrule}
šířka textu  & \\hsize   & 6,5 in \cr
výška textu  & \\vsize   & 8,9 in \cr
levý okraj   & \\hoffset & 0 in \cr
horní okraj  & \\voffset & 0 in \cr
}
}


\nobreak
$$\vbox{
\hbox to \wd1{\bf \hfil Řídicí slova pro rozměry stránky \hfil}
\vskip 12pt
\box1
}$$

\noindent Připomínáme, že text je automaticky orientován
vzhledem
k~bodu, který je vzdálen 1\,in dolů a~1\,in doprava od levého
horního rohu stránky; např.~vložení
instrukce {\tt \\hoffset = 5 mm} způsobí, že text bude
umístěn asi 30\,mm od levého okraje stránky,
{\tt \\hoffset = -5 mm} posune text asi na 20\,mm od levého
okraje stránky. Zde si uvědomte, že při psaní českého textu
zpravidla rozměr stránky měníme, např. použitím {\tt \\input
plaina4}. (Tato změna je již v \CSTeX{}u v zahrnuta do formátu csplain).

\exercise Napište jeden odstavec textu a~pak ho několikrát
za sebou okopírujte. Vložte na začátek {\tt \\hsize = 5
in} a~za první odstavec {\tt \\hsize = 10 cm}. Zkuste totéž
s~jinými hodnotami pro {\tt \\hsize}.


\exercise Vložte do vytvořeného souboru z~předešlého cvičení na začátek
{\tt \\hoffset = .5 in} a~{\tt \\voffset = 1~in}. Zkuste
{\tt \\hoffset.5in} a~{\tt \\voffset1in}.


\exercise Vložte ještě do souboru z~předešlého cvičení před první
odstavec {\tt \\vsize = 2 in} a znovu ho zpracujte.


V~předešlé části jsme viděli, že lze použít písma
s~větší
velikostí pomocí řídicího slova {\tt \\magstep}.
Dá se však zvětšit celý dokument najednou? Položíte-li {\tt
\\magnification = \\magstep 1} na začátek souboru, pak se
celý váš dokument zvětší asi
o~20\,\%. Jiné hodnoty pro
{\tt \\magstep} jsou také přípustné. {\bf Pozor,
{\tt \\magnification} se dá užít pouze před vytištěním třeba jen
jediného písmene!} Zvětšování přináší
s~sebou problém
jednotek. Jestliže je ve vstupním souboru předepsáno
{\tt \\hsize = 5 in}, je při 20\,\% zvětšení nový rozměr 6 palců?
Pokud nepodnikneme nic dalšího, je to tak: {\tt \\hsize}
bude při výstupu rovno 6 palcům; všechny rozměry se
stejnoměrně zvětší, užijeme-li {\tt \\magnification}.
Jsou ale speciální situace, kdy je nežádoucí, aby něco
podobného nastalo: potřebujete například vynechat přesně 10
cm pro obrázek.
V~takovém případě lze kteroukoli jednotku
modifikovat pomocí {\tt true}. Tak např. {\tt \\hsize =
5 true in} dá  za všech okolností délku řádků 5 palců, bez
ohledu na použité zvětšení.
\TeXref{59--60}
\toindex{magnification}


\exercise Vložte {\tt \\magnification = \\magstep 1} na
první řádek do některého souboru
z~minulých cvičení
a~srovnejte, co se změní na výstupu.



\subsection{Úprava odstavce}


Když \TeX{} čte ze vstupního souboru text, který má být vytištěn, čte
jej po odstavcích. Prakticky to znamená, že lze značně
ovlivňovat tvar odstavce, ale je zapotřebí určité
opatrnosti. Již jsme viděli, že {\tt \\hsize} se dá použít
k~řízení šířky odstavce. Předpokládejme ale, že ve
vašem souboru by bylo použito

\verb|
\hsize = 5 in
Za devatero horami a~devatero řekami...
$\vdots$
... byla krásná jako obrázek.
\hsize = 6.5 in|

Jaká bude výsledná šířka odstavce? Parametr {\tt \\hsize}
byl změněn na začátku odstavce a~potom ještě na konci.
Protože nebyl odstavec ještě dokončen (užitím prázdného
řádku nebo {\tt \\par}), bude vytištěn se šířkou 6,5 palce.
Kdyby mezi oba údaje
o~{\tt \\hsize} byl vložen např.
prázdný řádek, pak by byl odstavec až
k~tomuto řádku
vytištěn se šířkou 5 palců. Obecně při tvorbě odstavce
hodnoty parametrů těsně před jeho dokončením určují jeho
skutečný tvar.

Následující tabulka obsahuje některé parametry, kterými se
ovládá tvar odstavce:

\setbox1=\vbox{
\halign{
\strut \hfil # & \quad \hfil \tt # \hfil & \hfil \quad # \hfil\cr
\bf Funkce & \bf Řídicí slovo
v~\TeX{}u& \bf
Předdefinováno\cr
\noalign{\hrule}
šířka odstavce & \\hsize & 6,5 in \cr
odsazení prvého řádku odstavce & \\parindent & 20 pt\cr
vzdálenost mezi řádky      & \\baselineskip & 12 pt\cr
vzdálenost mezi  odstavci & \\parskip & 0 pt \cr
}
}
$$\vbox{
\hbox to \wd1{\bf \hfil Některé parametry tvaru odstavce \hfil}
\vskip 12pt
\box1
}$$
\toindex{parindent}
\toindex{parskip}
\toindex{baselineskip}

Řídicí slovo {\tt \\noindent} lze použít na začátku
odstavce pro potlačení dříve definovaného (resp.
předdefinovaného) odsazení
v~prvním řádku odstavce. Taková
úprava ovlivní právě jeden odstavec; je samozřejmé,
že stejného efektu docílíme
pomocí {\tt \\parindent = 0~pt}
pro všechny následující odstavce.
\toindex{noindent}

Řídicí slovo {\tt \\vskip} lze použít
k~vložení místa
mezi odstavce. Když mezi dva odstavce vložíme  {\tt \\vskip 1~in},
vytvoříme volný prostor
o~výšce 1~palec. {\bf
Pozor, prostor není vložen, přecházíme-li mezi odstavci na
novou stránku!} Objeví-li se {\tt \\vskip 1~in} na
začátku nové stránky, bude výsledek stejný, jako kdyby toto
řídicí slovo bylo vypuštěno. Pro řadu situací, kdy
pracujeme
s~volným místem, je to vcelku výhodné. Např.
volné místo před začátkem nové části, sekce, odstavce
apod. by nemělo začínat, ani pokračovat na nové
stránce.

Jak to ale zařídíme, chceme-li opravdu mít volné
místo na začátku stránky např.
u~titulní strany či
u~první
strany kapitoly? Stránku lze začít např. řídicím symbolem
{\tt \\\sp }, ale pak je ve skutečnosti na začátku strany
prázdný řádek. Pokud není dále něco tištěno,  přidá použití
řídicích slov {\tt \\baselineskip} a~{\tt \\parskip}, {\it
další\/} volný prostor. Nejjednodušší je použít místo {\tt
\\vskip} řídicí slovo {\tt \\vglue}, které bude mít
potřebný účinek.
\TeXref{352}
Tak např. {\tt \\vglue 1~in} vynechá
volné místo
o~výšce 1~palec i~na začátku stránky.

Jiná metoda spočívá
v~použití řídicích slov {\tt \\topinsert} a~{\tt
\\endinsert}. Je-li použita konstrukce {\tt \\topinsert
$\ldots$ \\endinsert}, pak se text mezi {\tt
\\topinsert} a~{\tt \\endinsert}
objeví  na stránce nahoře.
V~tomto případě se {\tt \\vskip}
nepotlačí, tj.~vynechání se provede. Je to zejména užitečné
při vynechávání místa pro obrázky.
\TeXref{115}
\toindex{vglue}
\toindex{topinsert}
\toindex{endinsert}

Existují i~určitá řídicí slova, která vytvářejí volný
prostor
o~předepsané (malé) výšce. Jsou to  {\tt \\smallskip},
{\tt \\medskip} a~{\tt \\bigskip}. Jejich velikosti se dají lehce
znázornit vzdálenostmi vodorovných linek v~následujícím
schématu:
\vskip5mm
\def\hrl{\hrule width .5 in}

\centerline{{\tt \\smallskip}: \vbox{\hrl \smallskip \hrl} \quad
            {\tt \\medskip}: \vbox{\hrl \medskip \hrl} \quad
            {\tt \\bigskip}: \vbox{\hrl \bigskip \hrl}
            }
\toindex{smallskip}
\toindex{medskip}
\toindex{bigskip}
\vskip5mm
{\narrower
Pružnější řízení šířky odstavce nebo celého textu je možné pomocí
řídicích slov {\tt \\rightskip} a~{\tt \\leftskip}.
Položíme-li {\tt \\leftskip = 20 pt}, pak bude levý okraj
odstavce posunut
o~dalších dvacet bodů doprava. Lze použít
i~záporné hodnoty pro {\tt \\leftskip}; ty způsobí posun
levého okraje odstavce \uv{ven} doleva. Řídicí slovo
{\tt \\rightskip} způsobuje obdobné úpravy na pravém okraji
odstavce. Uvedeme-li tyto instrukce kdekoliv
v~průběhu psaní
odstavce, provedou se od začátku tohoto
odstavce. Také každý následující odstavec
bude sázen
s~těmito hodnotami pro {\tt \\leftskip}
a~{\tt \\rightskip}. Chceme-li takto upravit pouze jeden
odstavec, je nutno
v~dalším odstavci použít stejné
konstrukce
s~opačnou hodnotou nebo využít možnosti
\uv{lokalizace} změny,
o~které se dočtete
v~následující
kapitole. Řídicí slovo {\tt \\narrower} je ekvivalentní
současnému použití obou slov {\tt \\leftskip} a~{\tt \\rightskip}
s~hodnotou, která je rovna aktuální hodnotě {\tt \\parindent}. Je to
velmi výhodné např. pro dlouhé citace  ---   tento odstavec
je příkladem využití řídicího slova {\tt \\narrower}. Dvojí
použití za sebou zúží odstavec
o~dvojnásobek aktuální
hodnoty {\tt \\parindent}. Změna platí
i~v~následujících
odstavcích;
o~lokálním použití se dočtete dále.
\TeXref{100}

}
\toindex{leftskip}
\toindex{rightskip}
\toindex{narrower}

\exercise Vytvořte dva odstavce podle následujících
instrukcí: levý okraj obou odstavců je posunut vpravo
o~1,5 palce, pravý je posunut vlevo
o~0,75 palce a~mezi oběma
odstavci je vynechán prostor právě
o~výšce 1~palec.

\hangafter=6 \hangindent=1.75in
I~v~rámci jednoho odstavce lze měnit jeho tvar pomocí jednoho
z~řídicích slov {\tt \\hangindent} anebo {\tt \\hangafter}.
Velikost zkrácení řádků je řízena {\tt \\hangindent};
pokud je přiřazená hodnota kladná, řádky se zkracují
zleva,
a~pokud je záporná, řádky se zkracují zprava (\uv{vykousnuté
místo} je tedy buď vlevo, nebo vpravo).
O~tom, které řádky
budou kratší, rozhoduje hodnota proměnné {\tt
\\hangafter} na začátku odstavce. Je-li {\tt \\hangafter}
kladné (celé) číslo,
potom určuje počet řádků plné (normální) délky. Jsou-li
{\tt \\hangindent = 1.75 in} a~{\tt \\hangafter = 6}
parametry pro tento odstavec, pak prvních šest řádků bude
mít plnou délku a~zbývající řádky odstavce budou zleva
zkráceny
o~1,75 palce. Zvolíme-li {\tt \\hangindent = -1.75 in}
a~{\tt \\hangafter = -6}, potom prvních šest
řádků bude zkráceno zprava
o~1,75 palce a~zbývající budou
mít plnou délku. Po každém odstavci \TeX{} automaticky
nastavuje předdefinované hodnoty {\tt \\hangindent=0 pt}
a~{\tt \\hangafter = 1}. Tato řídicí slova se hodí pro
\uv{odskoky
v~rámci odstavce}, resp. pro obtečení prázdného
místa (např. pro obrázek) odstavcem.\TeXref{355}
Řídící slovo {\tt\\hang} na začátku
odstavce dosadí {\tt\\hangafter=1}; proto
bude mít první řádek odstavce obvyklou délku
a~další se zkrátí o~hodnotu {\tt \\parindent}, tj.
{\tt \\hangindent} se položí roven hodnotě {\tt
\\parindent}.
\TeXref{102}
\toindex{hangindent}
\toindex{hangafter}

Zopakujeme text právě přečteného odstavce, přičemž položíme
{\tt \\hangafter = -6} a~{\tt \\hangindent = -1.75}.

\hangafter=-6 \hangindent=-1.75in
I~v~rámci jednoho odstavce lze měnit jeho tvar pomocí
řídicích slov {\tt \\hangindent} a~{\tt \\hangafter}.
Velikost zkrácení řádků je ovládána {\tt \\hangindent};
pokud je přiřazená hodnota kladná, řádky se zkracují zleva
a~pokud je záporná, řádky se zkracují zprava (\uv{vykousnuté
místo} je tedy buď vlevo, nebo vpravo).
O~tom, které řádky
budou kratší, rozhoduje hodnota proměnné {\tt
\\hangafter} na začátku odstavce. Je-li {\tt \\hangafter}
kladné (celé) číslo,
potom určuje počet řádků plné (normální) délky. Jsou-li
{\tt \\hangindent = 1.75 in} a~{\tt \\hangafter = 6}
parametry pro tento odstavec, pak prvních šest řádků bude
mít plnou délku a~zbývající řádky odstavce budou zleva
zkráceny
o~1,75 palce. Jestliže zvolíme {\tt \\hangindent =
-1.75 in} a~{\tt \\hangafter = -6}, potom prvních šest
řádků bude zkráceno zprava
o~1,75 palce a~zbývající budou
mít plnou délku. Po každém odstavci si \TeX{} automaticky
nastavuje předdefinované hodnoty {\tt \\hangindent = 0 pt}
a~{\tt \\hangafter = 1}. Tato řídicí slova se hodí pro
\uv{odskoky
v~rámci odstavce}, resp. pro obtečení prázdného
místa (např. pro obrázek) odstavcem.\TeXref{355}
Řídící slovo {\tt\\hang} na začátku
odstavce dosadí {\tt\\hangafter = 1};
proto bude mít první řádek odstavce obvyklou délku
a~další se zkrátí o~{\tt \\parindent}, tj.
{\tt \\hangindent} se položí roven hodnotě {\tt
\\parindent}.
\TeXref{102}
\toindex{hang}

K~vytvoření odstavců
rozmanitých tvarů lze užít řídicí slovo {\tt \\parshape}.
\TeXref{101}
\toindex{parshape}

Další užitečné řídicí slovo
k~úpravě odstavců je {\tt
\\item}. Používá se dle vzoru {\tt \\item\lb$\ldots$\rb}.
Vytváří se jím odstavec,
v~němž je každý řádek zkrácen
o~{\tt \\parindent}; první řádek je označen zleva tím, co
jsme dali mezi složené závorky. Obvykle se ho užívá
v~kombinaci s~řídicím slovem {\tt \\parskip = 0~pt},
abychom nedostali příliš velké mezery
mezi řádky. Řídicí slovo {\tt \\itemitem} je stejné jako
{\tt \\item}, jediný rozdíl je ve zkrácení řádků
o~dvojnásobek hodnoty {\tt \\parindent}.
\TeXref{102}
Vše nejlépe vysvětlí následující příklad: po vložení do
vstupního souboru obdržíme
z~následující konstrukce
\toindex{item}
\toindex{itemitem}

\verb|
\parskip = 0 pt \parindent = 30 pt \noindent
Vyřešte následující úkoly:
\item {(1)} Připravte se a~maximálně se soustřeďte.
Cesta k~řešení úkolů je někdy namáhavá a~svízelná. Najděte
nejprve odpověď na otázku (2)!
\item {(2)} Najděte odpověď na otázku (3)!
\item {(3)} Najděte odpověď na otázku (3a)!
\itemitem {(3a)} Nejste-li unaveni, pokračujte až do
úplného vyřešení všech úkolů. Nyní najděte odpověď na otázku (3b)!
\itemitem {(3b)} Najděte odpověď na otázku (1)!|


\noindent
tento text

\vskip\parskip
{\parskip = 0 pt \parindent = 30 pt \noindent
Vyřešte následující úkoly:
\item {(1)} Připravte se a~maximálně se soustřeďte.
Cesta k~řešení úkolů je někdy namáhavá a~svízelná. Najděte
nejprve odpověď na otázku (2)!
\item {(2)} Najděte odpověď na otázku (3)!
\item {(3)} Najděte odpověď na otázku (3a)!
\itemitem {(3a)} Nejste-li unaveni, pokračujte až do
úplného vyřešení všech úkolů. Nyní najděte odpověď na otázku (3b)!
\itemitem {(3b)} Najděte odpověď na otázku (1)!
\par
}

{\let\filbreak\relax
\subsection{Úprava řádku}}

Většinou \TeX{} při lámání odstavce pracuje spolehlivě.
Někdy je však nutné přidat další instrukce. Vynutit si přechod na nový
řádek je možné vložením {\tt \\hfil \\break} do
vstupního souboru.
V~případě potřeby lze umístit určitý
text na samostatný řádek pomocí řídicího slova
{\tt \\line\lb $\ldots$\rb}; pak se text umístěný mezi
složené závorky vytiskne na jediný řádek (i když výsledek
může být někdy hrozný). Řídicí slova {\tt \\leftline\lb $\ldots$\rb},
{\tt \\rightline\lb $\ldots$\rb}, a~{\tt \\centerline\lb $\ldots$\rb}
umístí text
v~závorce na jeden řádek. Přitom text bude
v~prvém případě umístěn
k~levému okraji řádku, ve druhém
k~pravému a~ve třetím bude umístěn doprostřed řádku. Tedy
následující text ve vstupním souboru
\toindex{hfil}
\toindex{break}
\toindex{centerline}
\toindex{leftline}
\toindex{rightline}
\toindex{line}

\nointerlineskip
{\hbadness = 10000
\beginuser
\\leftline\lb Teď jsem vlevo nahoře.\rb
\\centerline\lb Teď jsem uprostřed.\rb
\\rightline\lb Teď jsem vpravo.\rb
\\line\lb A~teď jsem roztažen po celém řádku.\rb
\enduser}

\noindent
vytvoří čtyři řádky
{\vskip\parskip
\hbadness = 10000

\leftline{Teď jsem vlevo nahoře.}

\centerline{Teď jsem uprostřed.}

\rightline{Teď jsem vpravo.}

\line{A teď jsem roztažen po celém řádku.}
}

Jiný typ umísťování mezer obdržíme pomocí řídicího slova
{\tt \\hfil}.%
\toindex{hfil}
To způsobí, že všechno zbývající volné místo
na řádku se shromáždí na to místo, kam jsme {\tt \\hfil}
umístili. Jestliže změníme náš poslední příklad na
{\tt \\line\lb A~teď jsem roztažen \\hfil po celém
řádku.\rb},
obdržíme
\medskip
{\hbadness = 10000
\line{A teď jsem roztažen \hfil po celém řádku.}}
\medskip

Jestliže použijeme {\tt \\hfil} vícekrát, rozdělí se
zbývající místo na odpovídající pozice stejným dílem. Tedy
{\tt \\line\lb A~teď   \\hfil jsem roztažen \\hfil po celém
řádku.\rb}
dá ve vstupním souboru
{\hbadness = 10000
\medskip
\line{A teď  \hfil jsem roztažen \hfil po celém řádku.}
\medskip}

\exercise Vysázejte následující řádek:
\smallskip
\line{levé křídlo \hfil levý útočník \hfil střední útočník \hfil
pravý útočník \hfil pravé křídlo}

\exercise Vysázejte následující řádek
\smallskip
\line{0 \hfil \hfil \hfil 3/5 \hfil 4/5 \hfil 1}

Pomocí řídicího slova {\tt \\hskip} můžeme provádět ve
vodorovném směru obdobné úpravy jako ty, které se realizují
užitím {\tt \\vskip} ve svislém směru.
\toindex{hskip}

\exercise Co se stane, jestliže vstupní soubor bude
obsahovat:
\smallskip\leftline
{\tt \\line\lb\\hskip 1~in JEDNA \\hfil DVA \\hfil TŘI\rb}

Zarovnávání pravého okraje lze zrušit pomocí řídicího slova
{\tt \\raggedright}. Později si ukážeme, jak to lze udělat
jen
v~části sázeného textu.
\toindex{raggedright}




\subsection{Poznámky pod čarou}

Obecný vzor pro vytváření poznámek pomocí \TeX
u~je {\tt
\\footnote\lb$\ldots$\rb\lb$\ldots$\rb}. Znak
k~označení
poznámky se umísťuje do první dvojice závorek. Některé ze
znaků jsou {\tt \\dag} (\dag), {\tt \\ddag} (\ddag),
{\tt \\S} (\S) a~{\tt \\P} (\P). Text poznámky píšeme do
druhé dvojice závorek. Označení poznámek čísly
je trochu složitější. Poznámka\footnote{${}^{21}$}{Toto je
poznámka umístěná na konci
této stránky jako poznámka 21.}
umístěná na konci
této strany pod číslem 21 byla vytvořena pomocí

\noindent
\verb|\footnote{${}^{21}$}{Toto je poznámka umístěná na konci této
stránky jako poznámka 21.}|

\noindent přičemž řídicí slovo {\tt \\footnote} a~celý
text poznámky byl umístěn bezprostředně
za slovo \uv{Poznámka}.
Tato konstrukce je opravdu poněkud komplikovaná. Později
uvidíme, proč se to tak dělá.
K~tomu však budeme muset vědět
něco o~sazbě matematiky.
V~tomto okamžiku jsme si jen
ukázali, jak se to dělá.
\TeXref{117}
\toindex{footnote}
\toindex{ddag}
\toindex{dag}
\toindex{S}
\toindex{P}


\exercise Vytvořte stránku textu
s~relativně dlouhou
poznámkou pod čarou tak, aby obsahovala několik řádků.


\exercise Vytvořte stránku textu se dvěma různými
poznámkami.



\subsection{V záhlaví a~pod textem}


Řádky pro název a~čísla stránek, které se umisťují nad
a~pod hlavním textem, se vytvářejí pomocí řídicích slov
{\tt \\headline=\lb$\dots$\rb}
a~{\tt \\footline=\lb$\dots$\rb}.
\TeXref{252--253}
Používají se stejně jako řídicí slovo {\tt \\line\lb$\dots$\rb}
v~obvyklém textu na stránce. Velmi užitečné řídicí slovo je
{\tt \\pageno}, které reprezentuje aktuální číslo stránky.
Tak například {\tt \\headline=\lb\\hfil \\tenrm Strana
\\the\\pageno\rb} způsobí, že se číslo stránky objeví
v~pravém horním rohu spolu se slovem \uv{Strana} (podívejte se
na pravý horní roh této stránky).
\toindex{headline}
\toindex{footline}
\toindex{pageno}
\toindex{the}
\toindex{tenrm}

{\headline={\hfil \tenrm Strana \the\pageno} %example for this section
Řídicím slovem {\tt \\pageno} můžete přiřadit vhodné
hodnoty, pokud chcete vytvářený dokument číslovat jinou
posloupností čísel nežli obvyklou: např. číslování pomocí
římských číslic lze vytvářet užitím záporných čísel ({\tt
\\pageno = -1} na začátku dokumentu způsobí číslování
římskými číslicemi).
\TeXref{252}


Různá záhlaví lze vytvořit pro sudé a~liché stránky pomocí:

\noindent
{\tt
\\headline=\lb\\ifodd \\pageno \lb$\dots$\rb \\else \lb$\dots$\rb
\\fi\rb}

\noindent kde text
v~první složené závorce je
určen pro stránky vpravo a~ve druhé závorce
umístěný text se bude tisknout na levé stránky.
\toindex{ifodd}
\toindex{else}

\exercise Vytvořte konstrukci pro číslování stránek dole ve
středu stránky, přičemž číslo je po obou stranách obklopeno
pomlčkami (em-dash).


\subsection{Přeplněné a~nenaplněné rámečky}

Jedno
z~největších zklamání zažívá \uv{čerstvý} uživatel
\TeX{}u při setkání
s~přeplněnými a~nenaplněnými rámečky
(box). I~když je rámeček vcelku hezké české slovo,
přimlouváme se za zavedení alternativního termínu \uv{box}
i~do češtiny  ---   budeme ho
v~tomto textu dále běžně užívat. Je velmi únavné se
hlášeními
o~přeplněných (overfull) a~nenaplněných
(underfull) boxech probírat ve vytvořeném
souboru {\tt $*\,.\,$log}. Při interaktivním zpracování jsou
hlášeny průběžně i~na obrazovce. Přeplněné
boxy jsou na výstupu značeny černými obdélníčky (anglicky slug,
což je slimák nebo plž, vypadá takto: \vrule width
\overfullrule)
na pravém okraji textu. Pro slug se užívají zhusta různá
obscénní jména. Je to proto, že se tito \uv{slimáci}
objevují dokonce i~v~případě, že je vstupní
soubor v~naprostém pořádku. Vysvětlíme si, proč se objevují
a~co lze s~nimi dělat.

Existují boxy dvojího typu: hboxy a~vboxy.
Povětšině odpovídají uspořádání vodorovného textu do řádků
a~odstavců do formátů stránek. Připomínáme, že \TeX{}
čte celý odstavec před rozhodováním, jak má být rozdělen na
řádky (řádkový zlom). Je to lepší, než když se pracuje \uv{po
řádcích} (tradiční způsob sázení
z~období \uv{horké
sazby}), neboť nepatrné vylepšení jednoho řádku
v~odstavci
může mít za následek úplnou katastrofu při sazbě
některého
z~následujících. Tato výhoda má ale i~svůj rub:
s~každou
opravou se může měnit vše
v~sazbě odstavce a~někdy i~více.
Když uspořádáme slova do řádku,
je nutné vložit na správná místa mezery pro zarovnání
pravého okraje. Velmi rozměrné mezery mezi slovy jsou
zřejmě nežádoucí; závadnost (badness) je míra ošklivosti vzhledu
mezer, které jsme byli nuceni použít.
Přesněji: \uv{badness}
libovolného řádku je nějaké číslo mezi 0 (dokonalý
řádek) a~10\,000 (katastrofa!). Existuje parametr nazvaný
{\tt \\hbadness}, jehož předdefinovaná hodnota  je 1\,000.
Každý řádek, jehož chyba je větší než {\tt \\hbadness}
je ohlášen jako \uv{špatný} (underfull nebo overfull hbox).
Zvětšíme-li hodnotu parametru {\tt \\hbadness}, počet
hlášených nenaplněných nebo přeplněných boxů se zmenší. Položíme-li
{\tt \\hbadness = 10000}, nebudou nenaplněné či přeplněné hboxy vůbec
hlášeny. Přeplněné boxy jsou kromě zápisu
v~chybovém hlášení
vyznačovány i~do textu slugem, protože i~relativně větší
přeplnění lze lehce přehlédnout. Pokročilejší uživatel
zvládne opravu zpravidla jen na základě chybového hlášení
(velikost přeplnění je hlášena), začátečník se zpravidla
snaží zorientovat podle zmíněných optických značek
v~textu
 ---   již jste se rozhodli, jak jim budete říkat?
\toindex{hbadness}

} % this comes from the example of a~different headline

S~přeplněním pracuje \TeX\ podobně: někdy je tolerantní a~dovolí, aby
byl řádek nepatrně delší, než je {\tt \\hsize}, a~tak dosáhne
lepšího vzhledu celého odstavce (řádky budou naplněny
vyváženěji). Řídicí slovo {\tt \\tolerance} určuje, kdy
tato situace nastane. Je-li řádek závadný, porovnává se
přiřazená hodnota
s~hodnotou parametru {\tt \\tolerance}
a~\TeX{} přidá slovo do řádky i~tehdy, překročí-li se {\tt
 \\hsize}. Jestliže je pak řádek trochu (ale ne
o~mnoho)
delší, vysadí se bez ohlašování. Řídicí slovo {\tt \\hfuzz}
určuje, jak velké překročení délky řádku je povoleno;
předdefinovaná hodnota je {\tt \\hfuzz = 0.1 pt}. Každý
řádek, který je jen
o~málo delší, než je {\tt \\hsize},
je zřejmě vážným problémem; \TeX{} umístí na pravý okraj
řádku znamení \vrule width \overfullrule\thinspace, které je velmi
výrazné. Opět se lze od hlášení přeplněných boxů
osvobodit zvětšením hodnoty parametru {\tt \\tolerance}. %
S~hodnotou {\tt \\tolerance = 10000} se přeplněné boxy
a~\dots\ ( ---   cenzurou zabaveno, čtenář si doplní sám
podle vlastního uvážení a~nálady) neobjeví. Předdefinovaná
hodnota je {\tt \\tolerance = 200}.
\TeXref{29}
\toindex{hfuzz}
\toindex{tolerance}

Šířka znaku \vrule width \overfullrule\  je určena pomocí
řídicího slova {\tt \\overfullrule}.  Včleníte-li do
vstupního souboru {\tt \\overfullrule = 0 pt}, nebudou
znamení vůbec tištěna. Samozřejmě přeplněné boxy
v~textu
eventuálně budou, ale nebudou tak nápadné.
\toindex{overfullrule}

Zvětšení parametru {\tt\\tolerance} můžeme ve verzi \TeX u~3.x
kombinovat ještě s~parametrem {\tt\\emergencystretch}.
Kladná hodnota tohoto parametru (v~jednotkách cm, mm, pt, \dots)
způsobí, že v~případě, kdy \TeX\ není schopen vysadit daný
odstavec bez překročení dané tolerance, zkusí to ještě jednou
s~možností zvětšit mezery mezi slovy právě o~hodnotu parametru
{\tt\\emergencystretch}. Díky tomu se případná \uv{špatnost}, ke
které by určitě vedlo ruční odstranění přeplněného hboxu,
rozloží do všech řádků odstavce.
\toindex{emergencystretch}

Nyní již víme, proč jsou hlášeny nenaplněné a~přeplněné
boxy. Umíme i~změnit četnost těchto hlášení změnou hodnot
{\tt \\hbadness}, {\tt \\hfuzz} a~{\tt \\tolerance}.
Navíc je vcelku zřejmé, že malá hodnota {\tt \\hsize}
pro šířku textu činí zlom řádků mnohem obtížnějším
a~zvětšuje počet hlášení. Jsou to ale hlášení informativní,
která můžete ignorovat (na vlastní riziko).

Poněkud stranou byla ponechána otázka dělení slov  ---   ve
skutečnosti při hledání vhodného řádkového zlomu odstavce
pracuje \TeX{} ještě
s~dělicím algoritmem. Dodáme-li další
možnosti pro dělení slova do souboru nebo dokonce do
příslušné části programu, můžeme se zbavit hlášeného
přeplnění. \TeX{} totiž pracuje při lámání řádků
s~automatickým dělením slov
v~češtině nebo v~angličtině ---   i~pro řadu dalších jazyků existují
dělicí algoritmy
s~relativně vysokou spolehlivostí  ---
a~to mu pomáhá nalézt vhodná místa pro dělení. Např.
standardní (neobohacené) anglické dělení však nerozdělí slovo
\uv{database}. Je-li ve vstupním souboru {\tt data\\-base},
povoluje se toto slovo rozdělit na vyznačeném místě za
druhým písmenem \uv{a}. \TeXref{28}
Vyskytuje-li se takové slovo ve vstupním souboru vícekrát,
lze na začátek souboru napsat
{\tt \\hyphenation\lb data-base\rb} a~pak bude povoleno
stejným způsobem dělit toto slovo
v~celém souboru. (I~když
je algoritmus pro {\it angličtinu\/} poměrně dokonalý, nedělí
slova na všech možných místech;
existují seznamy některých takových slov
a~v~případě
potřeby lze modifikovat i~\uv{dělicí vzorník} tak, že se
častěji užívané slovo se správným dělením do předpisu pro
dělení přidá.)
\toindex{hyphenation}
V~souboru s~hlášeními o~zpracování souboru \TeX em jsou
uváděny přeplněné řádky
i~s~možnostmi dělení tak, jak je
dává příslušný algoritmus; někdy je však nejlepším řešením
pro odstranění nenaplněných a~přeplněných boxů drobná
úprava textu vstupního souboru.\TeXref{449}
Pro češtinu existují dva soubory dělících vzorů. Ten, který je
šířen v~\CSTeX u, pochází od Ladislava Lhotky. Jiný soubor,
který vytvořil Petr Novák, byl přislíben k~šíření v~rámci \CSTUG
u.
Zájemce o~technické detaily dělení slov odkazujeme na Appendix H:
Hyphenation Knuthovy knihy {\bf The \TeX book}).

Vcelku podrobně jsme se zabývali problematikou řádkového
zlomu, tedy horizontální strukturou stránky. Existuje
i~analogická \uv{vertikální problematika}. Nenaplnění
(underfull) a~přeplnění (overfull) hboxů indikuje, jak dobře
je text uspořádán
v~řádcích. Nenaplnění a~přeplnění vboxů
je hlášeno při stránkovém zlomu, tj.~tehdy, když se
z~odstavců vytvářejí stránky. Tak např. veliká tabulka,
kterou nelze
v~půli rozdělit, vytvoří hlášení
o~nenaplněném
vboxu
v~okamžiku, kdy se dokončuje sazba stránky; toto
hlášení je opět uloženo do souboru {$*\,.\,$\tt log}. Řídicí slovo
{\tt \\vbadness} se používá analogickým způsobem jako
{\tt \\hbadness}, přičemž jeho hodnota ovlivňuje hlášení
o~stránkovém zlomu.
\toindex{vbadness}

\exercise Vezměte soubor
s~několika odstavci a~zpracujte ho
užitím různých (malých) hodnot {\tt \\hsize}. Sledujte
hlášení
o~přeplněných boxech.
Potom vše zopakujte
s~různými hodnotami {\tt \\hbadness},
{\tt \\hfuzz} a~{\tt \\tolerance}.


\section{$\Bigl\{$Skupiny, $\bigl\{$skupiny,
        $\{$a ještě skupiny$\}\bigr\}\Bigr\}$}

Možnost členění textu do skupin (groups) umožňuje obrovské
zjednodušení vstupních souborů. Každá nová skupina začíná
symbolem {\tt\lb} a~je ukončena pomocí symbolu {\tt \rb}.
Změny, které uděláme uvnitř takové skupiny, ztrácejí
platnost po opuštění skupiny. Tak např., jestliže ve
vstupním souboru bude napsáno {\tt \lb \\bf čtyři tučně
tištěná slova\rb}, levá složená závorka vymezuje začátek
skupiny, řídicí slovo {\tt \\bf} provede změnu písma
a~pravá složená závorka ukončí platnost této změny. V~tomto
případě dostaneme {\bf čtyři tučně
tištěná slova}. Po
ukončení práce se skupinou bude použito opět písma, kterého
jsme užili naposled před vstupem do skupiny. Toto je
(nejjednodušší) způsob vysázení několika slov odlišným
písmem. Je dokonce možné skupiny zařazovat \uv{do sebe}.


Jako další příklad si ukážeme dočasnou změnu rozměru textu.
Např.

\beginuser

\lb
\\hsize = 4 in
\\parindent = 0 pt
\\leftskip = 1~in
vytvoří odstavec, který je čtyři palce
$\vdots$
(taková chyba se udělá velmi lehce).
\\par
\rb

\enduser

{\hsize = 4 in
\parindent = 0 pt
\leftskip = 1 in
vytvoří odstavec, který je čtyři palce široký,
s~levým
okrajem vzdáleným
o~další palec od levého okraje ke středu
stránky. Tato změna je dočasná, pouze tento odstavec bude
upraven tímto způsobem. Po ukončení práce se skupinou se
\TeX{} vrátí
k~původnímu způsobu sazby. Je nutné si
uvědomit, že jak {\tt \\par}, tak i~prázdný řádek ukončí
odstavec a~je nutné jednu
z~těchto možností použít před
ukončením skupiny. Kdybychom to neudělali, \TeX{} by se
vrátil
k~původním parametrům užívaným bezprostředně před
tímto odstavcem (taková chyba se udělá velmi lehce).
\par}

V~minulé kapitole jsme se setkali
s~použitím řídicího
slova {\tt \\narrower}, ale nevysvětlili jsme, jak se dá
zúžit text jen jednoho nebo několika odstavců. Podle
předcházejícího vzoru to nyní jistě hravě zvládnete.
Jestliže užijeme vhodné řídicí slovo (jako je např.
{\tt \\centerline}), text mezi složenými
závorkami za ním tvoří automaticky skupinu. Je-li ve vstupním
souboru

\noindent
{\tt \\centerline\lb\\bf Tučný titulek \rb},

\noindent obdržíme tučně napsaný text

\centerline{\bf Tučný titulek}

\noindent
umístěný uprostřed řádku bez
ohledu na to, jakého písma jsme užívali bezprostředně před
použitím {\tt \\centerline}. Nemusíme přidávat další
závorky, tj.~psát

\noindent
{\tt \\centerline\lb\lb\\bf Tučný titulek \rb\rb}.

Prázdná skupina {\tt\lb\rb} je velmi užitečná. Umožňuje
mj. psaní akcentů bez vytištění akcentovaných písmen. Tak
např. {\tt \\\~{}\lb\rb} dá na výstupu vlnku (tildu) bez
jakéhokoli písmene pod ní. Prázdné skupiny lze i~využít
k~tomu, abychom zastavili \TeX{}
v~\uv{požírání}
mezer:\ \ Tedy {\tt Používám \\TeX\lb\rb{} často
a~velmi rád}\ \ dá na výstupu mezeru za symbolem (logem)
\uv{\TeX}, zatímco i~10 obyčejných mezer na tomtéž místě
logo \TeX\ od následujícího textu neoddělí.
\TeXref{19--21}

\exercise Změňte rozměry právě jednoho odstavce na stránce
použitím konstrukce se skupinami.

\exercise
V~matematické angličtině se někdy používá slova
\uv{i{f}f} jako zkratky pro \uv{if and only if} (právě když,
neboli slovensky \uv{akk}).
V~tomto případě je lépe, když druhé
písmeno \uv{f} {\it není\/} spojeno
s~předcházejícím
ligaturou. Jak se to dá udělat? (Existuje několik řešení.)


Velmi jednoduše lze zapomenout jednu
ze~složených závorek,
které vymezují skupinu. To může mít {\it nedozírné\/} následky.
Jestliže se vám např. stane to, že na výstupu obdržíte
dokument, ve kterém se náhle změní písmo na kurzívu,
pravděpodobně jste zapomněli uzavřít některou skupinu.
Máte-li nepárovou složenou závorku {\tt \lb}, \TeX{}
vás na to upozorní
v~chybovým hlášením: {\tt (\\end occurred inside
a~group at level 1)}. Nepárová pravá složená závorka
{\tt\rb} je ohlášena jako \hbox{\tt! Too many \rb's.}

Jak se dají sledovat závorky
u~složitých kombinací skupin?
Pro větší přehlednost zkuste umístit levou složenou
závorku na samostatný řádek a~totéž udělejte
s~odpovídající
pravou složenou závorkou. Je-li závorek víc a~jsou do sebe
vloženy, udělejte
s~vnitřními totéž, ale posuňte je obě
o~několik mezer doprava. Posuňte
o~stejný počet mezer vpravo
i~text mezi závorkami  ---   nebude to mít na výsledný text vliv,
\TeX\ mezery na začátku řádku bude ignorovat. Pozor, někdy je
třeba \uv{ohlídat} mezery za závorkami.
V~takto
upraveném vstupním textu jsou odpovídající složené závorky
umístěny velmi přehledně a~snadno se nalézají a~kontrolují.
S~dobrým editorem vložíte nejprve najednou dvojici řádek
s~oběma odpovídajícími závorkami a~pak se stejným
automaticky řízeným posuvem vpravo vkládáte příslušný text.

\exercise
K~napsání věty ``Začneme
s~antikvou, \it teď přejdeme na kurzívu\/ \rm a~nyní opět
k~antikvě''\  jsme
v~Kapitole 2 použili pro vstup {\tt ``Začneme
s~antikvou, \\it teď přejdeme na kurzívu\\/ \\rm a~nyní opět
k~antikvě''}. Použijte nyní konstrukce
s~využitím skupin.

K~nesporným výhodám \TeX u~patří i~možnost členit vstupní \TeX t
(to je schválnost, ale v~zahranicí je tento druh humoru mezi
přívrženci \TeX u~oblíben) tak, že je velmi přehledný. Přitom
toto členění neovlivní výslednou sazbu. Příklad: text z~ukázky
o~používání řídicího slova {\tt\\item} lze upravit ve vstupním
souboru takto

\verb|
\parskip = 0 pt
\parindent = 30 pt
\noindent
Vyřešte následující úkoly:
\item {(1)} Připravte se a~maximálně se soustřeďte.
            Cesta k~řešení úkolů je někdy namáhavá a~svízelná.
            Najděte nejprve odpověď na otázku (2)!
\item {(2)} Najděte odpověď na otázku (3)!
\item {(3)} Najděte odpověď na otázku (3a)!
            \itemitem {(3a)} Nejste-li unaveni, pokračujte až do
                             úplného vyřešení všech úkolů.
                             Nyní najděte odpověď na otázku (3b)!
            \itemitem {(3b)} Najděte odpověď na otázku (1)!|


\noindent
Přitom opět dostanete
\vskip\parskip
{\parskip = 0 pt \parindent = 30 pt \noindent
Vyřešte následující úkoly:
\item {(1)} Připravte se a~maximálně se soustřeďte.
Cesta k~řešení úkolů je někdy namáhavá a~svízelná. Najděte
nejprve odpověď na otázku (2)!
\item {(2)} Najděte odpověď na otázku (3)!
\item {(3)} Najděte odpověď na otázku (3a)!
\itemitem {(3a)} Nejste-li unaveni, pokračujte až do
úplného vyřešení všech úkolů. Nyní najděte odpověď na otázku (3b)!
\itemitem {(3b)} Najděte odpověď na otázku (1)!
\par
}


\section{Žádný strach
z~matematiky!}

Když se sází matematika, je \TeX{} ve svém živlu. Pravidla
pro její sázení jsou složitá, ale schopnost \TeX{}u
je brát všechny
v~úvahu dává možnost vytvářet krásné
a~vysoce kvalitní matematické dokumenty.
Hodláte-li psát texty obsahující matematické symboly,
naleznete
v~této části veškeré základní informace
o~vytváření atraktivního matematického výstupu
téměř jakéhokoli typu.
\TeX{} lze samozřejmě užívat i~bez matematiky  ---   pokud je
to váš případ  ---   postačí vám pravděpodobně seznámit se
jen se dvěma následujícími částmi kapitoly.

\subsection{Mnoho nových symbolů}

Matematický text se vkládá do normálního textu
dvěma možnými způsoby: může být začleněn
{\it do řádků\/}, tj.~tvořit část obyčejného textu,
nebo jsou formulky umisťovány na samostatné
řádky vždy doprostřed (centrovány).
V~obou
případech se výsledek pro tutéž formuli
může lišit ve velikosti mezer mezi symboly,
a~případně
i~v~umístění.
V~řádku umístěná
rovnost
$\sum_{k=1}^{\infty} {1\over k^2} = {\pi^2\over6}$
se zřejmě liší od stejné rovnosti, pokud je na samostatném
řádku:

$$\sum_{k=1}^{\infty} {1\over k^2} = {\pi^2\over6}.$$

Poznamenáváme, že u~nás platná pravidla matematické sazby
zakazují použití vodorovných zlomkových čar v~textových
řádcích a~doporučují sazbu na samostatný řádek nebo náhradu
zlomkových čar šikmými lomítky s~použitím záporných
exponentů. Proto by v~textu měla formule z~předcházejícího
příkladu mít tvar $\sum_{k=1}^{\infty} (1/k^2) = \pi^2/6$
nebo tvar
$\sum_{k=1}^{\infty}  k^{-2} = \pi^2/6$. Výjimku tvoří
sazba číselných zlomků, nejlépe je však zjistit např.~mínění
redaktora odpovědného za sazbu textu apod.



Protože jsou velikosti mezer i~symboly pro psaní
matematiky zcela odlišné od normálního textu, musíme
\TeX{} informovat
o~tom, kdy začínáme sázet matematiku a~kdy
jde
o~normální text. To se dělá pomocí symbolu
{\tt\$}. Přesněji, do textu (ne na samostatný řádek)
se matematika sází mezi dva znaky
pro US dolar ({\tt \$$\ldots$\$}) a~to, co má být
na samostatném řádku, se umisťuje mezi \uv{dvojité
dolary}: {\tt \$\$$\ldots$\$\$} (sazba
matematiky je drahá!). Proto tedy {\tt \$x~=~y+1\$}
dává $x=y+1$
v~řádku, zatímco {\tt \$\$x = y+1\$\$}
vytvoří
$$x=y+1$$
\noindent na samostatném řádku (display math mode).

Velikost mezer je
v~obou případech zcela řízena \TeX{}em.
Přidávání mezer do vstupního souboru ve vzorcích
neovlivní nijak výsledek na výstupu.
Když budete potřebovat vytvořit si trochu místa
nebo umístit nějaký text přímo do matematické
formulky, lze to udělat jeho umístěním do hboxu
(zatím nemusíte vědět, proč se to tak dělá):
{\tt \\hbox\lb$\ldots$\rb}. Je to však velmi
užitečné zejména při sázení vzorců
na samostatný řádek.

Nebývá to sice zpravidla potřeba nebo alespoň ne příliš často,
přece jen je ale vhodné  seznámit se
s~některými
řídicími slovy, která se při vkládání mezer používají.
Jsou podle velikosti seřazena
v~následující tabulce:

\setbox1=\vbox{
\halign{
\strut \hfil # & \quad \hfil\tt# \hfil \quad
 & \hbox to 2cm{\hrulefill\vrule height 8pt#\vrule height 8pt\hrulefill} \cr
Jméno & \rm Řídicí
posloupnost & \hfil{}$\gets$Velikost$\to$\cr
\noalign{\hrule}
Dvojitý (double) quad         & \\qquad &\qquad \cr
Quad                          & \\quad  &\quad \cr
Mezera (space)                & \\\sp   &\ \cr
Velká (thick) mezera          & \\;     &$\;$\cr
Střední (medium) mezera       & \\>     &$\>$\cr
Malá (thin) mezera            & \\,     &$\,$\cr
Záporná malá mezera           & \\!     &$\!$\cr
       }
}
$$\vbox{
\hbox to \wd1{\bf \hfil Přidávání mezer do matematického
textu  \hfil}
\vskip 12pt
\box1
}$$
\toindex{quad}
\toindex{qquad}
\toindex{\ @\sp}
\toindex{\;@;}
\toindex{\>@>}
\toindex{\,@,}
\toindex{\!@!}

Když si prohlédnete, jak vypadá záporná malá mezera
(negative thin space), všimnete si, že se obě
vymezující značky překrývají. Ostatní
řídicí sekvence do sazby místo
přidávají, kdežto záporná malá mezera ho ubírá.
Dokonce lze dosáhnout i~toho, že se symboly budou
překrývat.


\exercise Vysázejte tento vzoreček: $C(n,r) = n!/r!\,(n-r)!$.
Všimněte si pečlivě, jak vypadají mezery ve jmenovateli.

Mezi dolary by se neměl vyskytnout žádný prázdný
řádek, protože \TeX{} předpokládá, že celý matematický
text je
v~jednom odstavci. Když to nevědomky uděláte,
objeví se chybové hlášení.
Vzhledem
k~okolnosti, že zapomenout nějaký
ten dolar (přesněji: zapomenout ukončit matematický
režim)
je velmi lehké a~jistě se vám to stane, je tato úprava
docela rozumná
 ---   uchrání vás od toho, že by zbytek vašeho textu byl
vysázen tak, jako se sází matematika.

Většina matematického textu se vkládá stejně pro umístění
do textu i~pro umístění na zvláštní řádek (samozřejmě až na počet
znaků pro dolar na začátku a~na konci). Výjimky si
vysvětlíme později (číslování rovnic vpravo nebo vlevo,
vertikální zarovnávání více rovnic podle rovnítka aj.).

Při sázení matematiky se vyskytuje mnoho dalších nových
symbolů. Většina
z~nich se nalézá na klávesnici
počítače a~lze jich použít přímo. Jsou to symboly
{\tt + - / * = ' | < > ( )}; svislá čára na
klávesnici bývá přerušena a~začátečníci si ji
pletou
s~dvojtečkou. Po vytištění
v~matematickém textu vypadají tyto symboly takto:
$ + - / * = \> '\> | <\> >\> ( \> ) $.

\exercise Vysázejte rovnici $a+b=c-d=xy=w/z$  do textu
a~pak ještě jednou na samostatný řádek.

\exercise Udělejte totéž
s~rovnicí $ f(x,y) = x' + x(x+y) $.


Mnoho dalších symbolů se podle očekávání vkládá pomocí
řídicích slov. Jsou
k~dispozici všechna řecká písmena  ---
přehled těch nejčastěji používaných podává následující tabulka
(některá velká řecká písmena jsou shodná s~latinkovými,  např.
A, B aj.).
\TeXref{434}

\setbox1=\vbox{
\halign{
\strut \hfil $#$ & \quad \tt# \hfil \quad &\hfil$#$ & \quad \tt# \hfil \quad
      &\hfil$#$ & \quad \tt# \hfil \quad &\hfil$#$ & \quad \tt# \hfil \cr
\noalign{\hrule}
\alpha & \\alpha &\beta & \\beta &\gamma & \\gamma &\delta & \\delta \cr
\epsilon & \\epsilon & \varepsilon & \\varepsilon & \zeta &\\zeta &
\eta & \\eta \cr
\theta & \\theta & \vartheta & \\vartheta & \iota & \\iota & \kappa &
\\kappa \cr
\lambda & \\lambda & \mu & \\mu & \nu & \\nu & \xi & \\xi \cr
o& o& \pi & \\pi & \rho & \\rho & \varrho & \\varrho \cr
\sigma & \\sigma & \varsigma & \\varsigma & \tau & \\tau & \upsilon &
\\upsilon \cr
\phi & \\phi & \varphi & \\varphi & \chi & \\chi & \psi & \\psi \cr
\omega & \\omega & \Gamma & \\Gamma & \Delta & \\Delta & \Theta &
\\Theta \cr
\Lambda & \\Lambda & \Xi & \\Xi & \Pi & \\Pi & \Sigma & \\Sigma \cr
\Upsilon & \\Upsilon & \Phi & \\Phi & \Psi & \\Psi & \Omega & \\Omega \cr
       }
}
$$\vbox{
\hbox to \wd1{\bf \hfil Řecká písmena  \hfil}
\vskip 8pt
\box1
}$$


\toindex{alpha}
\toindex{beta}
\toindex{gamma}
\toindex{delta}
\toindex{epsilon}
\toindex{varepsilon}
\toindex{zeta}
\toindex{eta}
\toindex{theta}
\toindex{vartheta}
\toindex{iota}
\toindex{kappa}
\toindex{lambda}
\toindex{mu}
\toindex{nu}
\toindex{xi}
\toindex{pi}
\toindex{rho}
\toindex{varrho}
\toindex{sigma}
\toindex{varsigma}
\toindex{tau}
\toindex{upsilon}
\toindex{phi}
\toindex{varphi}
\toindex{chi}
\toindex{psi}
\toindex{omega}
\toindex{Gamma}
\toindex{Delta}
\toindex{Theta}
\toindex{Lambda}
\toindex{Xi}
\toindex{Pi}
\toindex{Sigma}
\toindex{Upsilon}
\toindex{Phi}
\toindex{Psi}
\toindex{Omega}


\exercise Vysázejte
v~textu $\alpha\beta=\gamma+\delta$
a~pak totéž na samostatný řádek.

\exercise Vysázejte
v~textu $\Gamma(n) = (n-1)!$
a~pak totéž na samostatný řádek.

Někdy je zapotřebí umístit nad a~pod symboly další znaky.
V~matematickém módu se pro to užívají jiná řídicí slova než
v~nematematické části textu. Řídicí slova
z~normálního
textu nelze užívat pro sázení matematiky
a~obráceně. Následující tabulku nepřekládáme, nemělo by to
rozumný smysl (používáme poněkud nepřesného označení slovem
akcent kvůli analogii
s~anglickým \uv{math accent}):
\TeXref{135--136}

\toindex{hat}
\toindex{check}
\toindex{tilde}
\toindex{acute}
\toindex{grave}
\toindex{dot}
\toindex{ddot}
\toindex{breve}
\toindex{bar}
\toindex{vec}
\toindex{widehat}
\toindex{widetilde}

\setbox1=\vbox{
\halign{
\strut \hfil$#$ & \quad \tt# \hfil \quad &\hfil$#$ & \quad \tt# \hfil \quad
      &\hfil$#$ & \quad \tt# \hfil \quad  \cr
\noalign{\hrule}
\hat
o~& \\hat
o~& \check
o~& \\check
o~& \tilde
o~& \\tilde
o~\cr
\acute
o~& \\acute
o~& \grave
o~& \\grave
o~& \dot
o~& \\dot
o~\cr
\ddot
o~& \\ddot
o~&\breve
o~& \\breve
o~& \bar
o~& \\bar
o~\cr
\vec
o~& \\vec
o~& \widehat {abc} & \\widehat \lb abc\rb
                    & \widetilde {abc} & \\widetilde \lb abc\rb\cr
       }
}
$$\vbox{
\hbox to \wd1{\bf \hfil Matematické akcenty \hfil}
\vskip 12pt
\box1
}$$


Symboly pro binární operace kombinují dva matematické
objekty a~vytvářejí nový matematický objekt.
Obyčejné sčítání a~násobení např. kombinují dvě čísla
a~výsledkem je zase číslo  ---   jsou to příklady binárních
operací.
Sázíme-li binární operátory jako $+$ a~$\times$,
\TeX\ automaticky upravuje správné mezerování po
jejich stranách. Následující tabulka dává přehled
binárních operátorů:
\TeXref{436}

\setbox1=\vbox{
\halign{
\strut \hfil$#$ & \quad \tt# \hfil \qquad &\hfil$#$ & \quad \tt# \hfil \qquad
      &\hfil$#$ & \quad \tt# \hfil \qquad &\hfil$#$ & \quad \tt# \hfil \cr
\noalign{\hrule}
\cdot & \\cdot &\times & \\times &\ast & \\ast &\star & \\star \cr
\circ & \\circ & \bullet & \\bullet & \div & \\div & \diamond & \\diamond \cr
\cap & \\cap & \cup & \\cup & \vee & \\vee & \wedge & \\wedge \cr
\oplus & \\oplus &\ominus & \\ominus & \otimes &\\otimes &\odot &\\odot \cr
       }
}
$$\vbox{
\hbox to \wd1{\bf \hfil Binární operátory \hfil}
\vskip 12pt
\box1
}$$

\toindex{cdot}
\toindex{times}
\toindex{ast}
\toindex{star}
\toindex{circ}
\toindex{bullet}
\toindex{div}
\toindex{diamond}
\toindex{cap}
\toindex{cup}
\toindex{vee}
\toindex{wedge}
\toindex{oplus}
\toindex{ominus}
\toindex{otimes}
\toindex{odot}


Relace vypovídá něco
o~vlastnosti (dvou) matematických
objektů. Již víme, jak se vyjádří, že jsou si dva objekty
rovny a~jak se to vysází. Stejně umíme vysázet i~srovnání
pomocí znamének pro \uv{je větší} a~\uv{je menší},
protože příslušné znaky jsou téměř na všech klávesnicích.
K~negování relace se používá řídicí slovo
{\tt \\not}, které se klade před označení relace.
V~následující tabulce jsou některé relace:
\TeXref{436}
\toindex{not}

\setbox1=\vbox{
\halign{
\strut \hfil$#$ & \quad \tt# \hfil \quad &\hfil$#$ & \quad \tt# \hfil \quad
      &\hfil$#$ & \quad \tt# \hfil \quad &\hfil$#$ &  \tt# \hfil \cr
\noalign{\hrule}
\leq  & \\leq  &\not\leq & \\not \\leq
       & \geq & \\geq & \not\geq & \\not \\geq \cr
\equiv & \\equiv & \not\equiv & \\not \\equiv
       & \sim & \\sim & \not\sim & \\not \\sim \cr
\simeq & \\simeq & \not\simeq & \\not \\simeq
       & \not\approx & \\not \\approx & \approx & \\approx \cr
\subset & \\subset & \subseteq & \\subseteq
        & \supset & \\supset & \supseteq & \\supseteq \cr
\in & \\in & \ni & \\ni & \parallel & \\parallel & \perp & \\perp \cr
       }
}
$$\vbox{
\hbox to \wd1{\bf \hfil Relace \hfil}
\vskip 12pt
\box1
}$$

\toindex{leq}
\toindex{geq}
\toindex{equiv}
\toindex{sim}
\toindex{simeq}
\toindex{approx}
\toindex{subset}
\toindex{subseteq}
\toindex{supset}
\toindex{supseteq}
\toindex{in}
\toindex{ni}
\toindex{parallel}
\toindex{perp}


\exercise Vysázejte: $\vec x\cdot \vec y  = \langle \vec x,
\vec y \rangle = 0$,
právě když $\vec x \perp \vec y$.

\exercise Vysázejte: $\vec x\cdot \vec y  = \langle \vec x, \vec y \rangle
\not= 0$, právě když $\vec x \not\perp \vec y$.


V~další tabulce jsou uvedeny některé matematické symboly:\TeXref{435}

\setbox1=\vbox{
\halign{
\strut \hfil$#$ & \quad \tt# \hfil \quad &\hfil$#$ & \quad \tt# \hfil \quad
      &\hfil$#$ & \quad \tt# \hfil \quad &\hfil$#$ & \quad \tt# \hfil \cr
\noalign{\hrule}
\aleph & \\aleph & \ell & \\ell & \Re & \\Re & \Im & \\Im \cr
\partial & \\partial & \infty & \\infty & \| & \\| & \angle & \\angle \cr
\nabla & \\nabla & \backslash &\\backslash & \forall & \\forall
              & \exists & \\exists \cr
\neg & \\neg & \flat & \\flat & \natural & \\natural& \sharp & \\sharp  \cr
          }
}

$$\vbox{
\hbox to \wd1{\bf \hfil Různé symboly \hfil}
\vskip 12pt
\box1
}$$

\toindex{aleph}
\toindex{ell}
\toindex{Re}
\toindex{Im}
\toindex{partial}
\toindex{infty}
\toindex{\|@|}
\toindex{angle}
\toindex{nabla}
\toindex{backslash}
\toindex{forall}
\toindex{exists}
\toindex{neg}
\toindex{flat}
\toindex{sharp}
\toindex{natural}

\exercise Vysázejte: $(\forall x\in \Re)(\exists y\in\Re)$ $y>x$.




\subsection{Zlomky}

Číselný zlomek lze vysázet dvojím způsobem: lze to udělat buď ve
tvaru $1/2$ nebo ve tvaru ${1\over2}$\null.
V~prvním případě nepoužíváme žádnou řídicí posloupnost
a~napíšeme jednoduše {\tt \$1/2\$}\null.  Ve druhém případě se
použije řídicí slovo {\tt \\over} podle vzoru: {\tt \lb
<čitatel> \\over <jmenovatel>\rb}\null. Tedy {\tt \$\$\lb a+b
\\over c+d\rb.\$\$} dává $${a+b\over c+d}.$$
\TeXref{139--140}
\toindex{over}

\exercise Vysázejte: ${a+b\over c}\quad {a\over b+c}
\quad {1\over a+b+c} \not= {1\over a}+{1\over b}+{1\over c}$.

\exercise Vysázejte: Najděte body, ve kterých platí
$${\partial \over \partial x} f(x,y) = {\partial \over \partial y}
f(x,y) = 0$$




\subsection{Indexy horní a~dolní}

Vysázet
v~\TeX
u~dolní a~horní indexy je velmi jednoduché.
K~vyznačení
toho, že následující znak je dolním, resp. horním indexem, se používá
řídicích znaků {\tt \char95}, resp. {\tt \char94}. Tak např. {\tt
\$x\^{}2\$} dává $x^2$ a~{\tt \$x\_{}2\$} dává $x_2$. Má-li být dolním
nebo horním indexem více znaků, vložíme je do složených závorek.
Abychom tedy dostali $x^{21}$, resp. $x_{21}$, použijeme {\tt
\$x\^{}\lb 21\rb\$}, resp. {\tt \$x\_{}\lb 21\rb\$}.
Poznamenejme, že horní a~dolní indexy jsou automaticky vytištěny
v~menší velikosti. Situace je však poněkud složitější pro horní a~dolní
indexy druhé úrovně. {\it Nelze\/} užít {\tt \$x\_{}2\_{}3\$}, protože
by to mohlo mít dvě interpretace: {\tt \$x\_{}\lb 2\_{}3\rb\$}
a~{\tt \$\lb x\_{}2\rb\_{}3\$}; dostáváme pak dva různé výsledky: $x_{2_3}$
a~${x_2}_3$,
z~nichž pouze první odpovídá obvyklému použití dolních
indexů
v~matematice.  Musíme proto vícenásobné úrovně
dolních a~horních indexů popsat pomocí složených závorek. Horní
a~dolní indexy lze používat do libovolné úrovně.
\TeXref{128--130}


Při použití horních a~dolních indexů
u~téhož symbolu lze
psát {\tt \char95} a~{\tt \char94}
v~libovolném pořadí.
Jak {\tt \$x\_{}2\^{}1\$}, tak
i~{\tt\$x\^{}1\_{}2\$} dávají $x_2^1$.


\exercise Vysázejte: $e^x \quad e^{-x} \quad
e^{i\pi}+1=0 \quad x_0 \quad x_0^2 \quad {x_0}^2 \quad 2^{x^x}$.

\exercise Vysázejte:
$\nabla^2 f(x,y) = {\partial^2 f \over\partial x^2}
+ {\partial^2 f \over\partial y^2}$.

Řady a~integrály se sázejí podobným způsobem. Použijeme-li
{\tt \$\\sum\_{}\lb k=1\rb\^{}n k\^{}2\$}, dostaneme
$\sum_{k=1}^n k^2$; použití {\tt \$\\int\_{}0\^{}x f(t) dt\$}
dává
$\int_0^x f(t) dt$.
\TeXref{144--145}
\toindex{sum}
\toindex{int}


Tento způsob sazby se objevuje i~ve výrazech
obsahujících limity. Po vložení
{\tt \$\\lim\_{}\lb x \\to 0\rb x\^{}x=1\$}
do vstupního souboru dostanete $\lim_{x\to 0}x^x=1$.

\toindex{lim}
\toindex{to}
\exercise Vysázejte následující výraz: $\lim_{x\to 0}(1+x)^{1\over x}=e$.

\exercise Vysázejte následující text: Mohutnost množiny
$(-\infty, \infty)$ je $\aleph_1$.

Je vhodné uvést návod, jak zajistit, aby integrály
vypadaly ještě trochu lépe. Podívejte se na rozdíl mezi $\int_0^x f(t) dt$
a~$\int_0^x f(t)\, dt$. Ve druhém případě následuje po
$f(t)$ malá dodatečná mezera a~vzhled po vytištění je lepší;
k~vytvoření
této dodatečné mezery jsme použili řídicí symbol {\tt \\,}.
\toindex{\,@,}


\exercise Vysázejte následující integrál: $\int_0^1 3x^2\,dx = 1$.


V~české matematické sazbě je zvykem (a~patrně i~normou), že
písmena d (diferenciál), e (Eulerovo číslo) a~i (imaginární
jednotka) se (vcelku logicky) sázejí ve vzorcích antikvou,
protože kurzíva
je vyhrazena pro matematické proměnné. Anglosasové si s~tím
tolik hlavu nelámou, protože z~kontextu se většinou velice
snadno pozná, jde-li o~proměnnou či nikoli.




\subsection{Odmocniny, druhé mocniny a~vůbec}

K~vysázení druhé odmocniny stačí použít konstrukci\par
\noindent{\tt \\sqrt\lb$\ldots$\rb},\par
\noindent takže {\tt \$\\sqrt\lb x\^{}2+y\^{}2\rb\$} ve vstupním
souboru dává $\sqrt{x^2+y^2}$.
Všimněte si, že \TeX\ se stará nejen
o~umístění symbolů,
ale
i~o~výšku a~délku znamení odmocniny.
K~vysázení třetích nebo jiných odmocnin se
používají řídicí slova {\tt \\root} a~{\tt \\of}.
Použitím {\tt \$\\root n \\of \lb1+x\^{}n\rb\$}
dostanete $\root n \of {1+x^n}$.
\TeXref{130--131}
\toindex{root}
\toindex{sqroot}
\toindex{of}

Jinou možností je užití řídicího slova {\tt \\surd}; pomocí
{\tt \$\\surd 2\$} dostaneme na výstupu $\surd 2$.
\toindex{surd}

\exercise Vysázejte: $\sqrt2 \quad \sqrt {x+y\over x-y} \quad \root 3 \of
{10}$ \quad $e^{\sqrt x}$.

\exercise Vysázejte: $\|x\| = \sqrt{x\cdot x}$.


\subsection{Linky --- nad i~pod}

K~umístění vodorovné linky nad nebo pod matematickými výrazy
(tedy \uv{nadtržení} a~podtržení) se používá konstrukcí
{\tt \\overline\lb$\ldots$\rb} a~{\tt \\underline\lb$\ldots$\rb}.
Užijeme-li tedy konstrukce
{\tt \$\\overline\lb x+y\rb=\\overline x + \\overline y\$}, %\break
dostaneme $\overline{x+y}=\overline x + \overline y$.
Upozorňujeme však na to, že linky nad písmeny jsou
v~různých
výškách, a~proto je opatrnost namístě. Konstrukce
{\tt \\overline\lb\\strut x\rb} výšku linky nad $x$ trochu zvětší.
\TeXref{130--131}
\toindex{overline}
\toindex{underline}


K~podtržení nematematického textu se používá {\tt \\underbar\lb$\dots$\rb}.
\toindex{underbar}

\exercise Vysázejte: $\underline x \quad \overline y \quad
\underline{\overline{x+y}}$.




\subsection{Oddělovače velké a~malé}

Nejužívanější matematické oddělovače jsou závorky (kulaté,
hranaté a~složené). Jak jsme již viděli, lze je vysázet
např.~pomocí {\tt ( ) [ ] \\\lb\ \\\rb}
(což dává $(\>)\>[\>]\>\{\>\}\>$).
Větší oddělovače někdy zpřehlední
matematické výrazy jako např.~v~následující formuli
$$\bigl(a\times(b+c)\bigr) \bigl((a\times b)+c\bigr).$$
Ke zvětšení levých oddělovačů se před nimi použijí řídicí
slova {\tt \\bigl}, {\tt \\Bigl}, {\tt \\biggl} nebo {\tt
\\Biggl}; podobně {\tt \\bigr},
{\tt \\Bigr}, {\tt \\biggr} a~{\tt \\Biggr} se používají
pro zvětšení pravých oddělovačů. Užitím
{\tt \$\\Bigl[\$} a~{\tt \$\\Bigr]\$}
tedy dostaneme $\Bigl[$ a~$\Bigr]$.
\TeXref{145--147}
\toindex{bigl}
\toindex{Bigl}
\toindex{biggl}
\toindex{Biggl}
\toindex{bigr}
\toindex{Bigr}
\toindex{biggr}
\toindex{Biggr}

Následující tabulka umožňuje porovnat velikost některých
oddělovačů.

\setbox1=\vbox{
\halign{
\strut \hfil$#$ & \quad \tt# \hfil \quad\quad
      &\hfil$#$ & \quad \tt# \hfil \quad\quad
      &\hfil$#$ & \quad \tt# \hfil \quad\quad
      &\hfil$#$ & \quad \tt# \hfil \cr
\noalign{\hrule}
\{ & \\\lb & \} & \\\rb & ( & ( & ) & )\cr
\bigl\{ & \\bigl\lb & \bigr\} & \\bigr\rb & \bigl( & \\bigl( & \bigr) &
\\bigr)\cr
\Bigl\{ & \\Bigl\lb & \Bigr\} & \\Bigr\rb & \Bigl( & \\Bigl( & \Bigr) &
\\Bigr)\cr
\biggl\{ & \\biggl\lb & \biggr\} & \\biggr\rb & \biggl(
         & \\biggl( & \biggr) & \\biggr) \cr
\Biggl\{ & \\Biggl\lb & \Biggr\} & \\Biggr\rb & \Biggl(
         & \\Biggl( & \Biggr) & \\Biggr)\cr
       }
}
$$\vbox{
\hbox to \wd1{\bf \hfil Oddělovače různých velikostí  \hfil}
\vskip 12pt
\box1
}$$

Chcete-li, můžete \TeX{} nechat vybrat velikost oddělovačů
automaticky umístěním řídicích slov {\tt \\left}
a~{\tt \\right} před
příslušné oddělovače.
\TeXref{148}
Použití konstrukce {\tt \\left[$\ldots$\\right]} tedy způsobí, že text bude
vložen do hranatých závorek vhodné velikosti. {\bf Upozornění:}
každému oddělovači
s~{\tt \\left} bezpodmínečně {\bf musí} odpovídat
oddělovač
s~{\tt \\right} (a~to i~uvnitř každé grupy).
Konstrukce pro absolutní hodnotu zlomku vypadá např. takto:

\noindent{\tt \$\$\\left|\lb a+b \\over c+d\rb\\right|.\$\$}

\noindent Na výstupu dává
$$\left|{a+b \over c+d}\right|.$$

Přehled užívaných oddělovačů podává tabulka:

\setbox1=\vbox{
\halign{
\strut \hfill$#$ && \quad \tt # \quad\quad & \hfill$#$ \cr
\noalign{\hrule}
(       & (       & )       & )       & [       & [    \cr
]       & ]       &\{       & \\\lb     & \}      & \\\rb  \cr
\lfloor & \\lfloor &\rfloor  &\\rfloor & \lceil  & \\lceil\cr
\rceil  & \\rceil &\langle  & \\langle & \rangle & \\rangle \cr
/       & /       & \backslash & \\backslash &|  & |        \cr
\|      & \\|     &\uparrow    & \\uparrow   & \Uparrow & \\Uparrow \cr
\downarrow & \\downarrow & \Downarrow & \\Downarrow
                        & \updownarrow & \\updownarrow \cr
\Updownarrow & \\Updownarrow \cr
       }
}
$$\vbox{
\hbox to \wd1{\bf \hfil Matematické oddělovače  \hfil}
\nobreak
\vskip 12pt
\box1
}$$

\toindex{lfloor}
\toindex{rfloor}
\toindex{lceil}
\toindex{rceil}
\toindex{langle}
\toindex{rangle}
\toindex{\|@|}
\toindex{uparrow}
\toindex{Uparrow}
\toindex{downarrow}
\toindex{Downarrow}
\toindex{updownarrow}
\toindex{Updownarrow}

\exercise Vysázejte $\lfloor\lceil x\rceil-1\rfloor < x$.

\subsection{Ach, ty speciální funkce}

Existuje několik funkcí, jejichž označení se často vyskytuje
v~matematických textech.
V~rovnici typu $\sin^2x + \cos^2x =
1$ jsou goniometrické funkce sin a~cos vysázeny obyčejným
písmem (na rozdíl od kurzívy používané
v~matematickém módu). To je
obvyklá matematická konvence, jak vyznačit, že se jedná
o~funkci a~nikoli
o~součin tří veličin. Uveďme tabulku
řídicích slov pro psaní některých speciálních funkcí:
\TeXref{162}


\setbox1=\vbox{
\halign{
\strut \tt {\\}#\hfil && \tt {\\}#\hfil \cr
\noalign{\hrule}
sin    & cos    & tan  & cot  & sec  & csc & arcsin & arccos \cr
arctan & sinh   & cosh & tanh & coth & lim & sup    & inf    \cr
limsup & liminf & log  & ln   & lg   & exp & det    & deg    \cr
dim    & hom    & ker  & max  & min  & arg & gcd    & Pr     \cr
       }
}
$$\vbox{
\hbox to \wd1{\bf \hfil Speciální matematické funkce  \hfil}
\vskip 12pt
\box1
}$$

\toindex{sin}
\toindex{cos}
\toindex{tan}
\toindex{cot}
\toindex{sec}
\toindex{csc}
\toindex{arcsin}
\toindex{arccos}
\toindex{arctan}
\toindex{sinh}
\toindex{cosh}
\toindex{tanh}
\toindex{coth}
\toindex{lim}
\toindex{sup}
\toindex{inf}
\toindex{limsup}
\toindex{liminf}
\toindex{log}
\toindex{ln}
\toindex{lg}
\toindex{exp}
\toindex{det}
\toindex{deg}
\toindex{dim}
\toindex{hom}
\toindex{ker}
\toindex{max}
\toindex{min}
\toindex{arg}
\toindex{gcd}
\toindex{Pr}



Pokud potřebujeme ve vzorcích jiné podobné výrazy, na které
autor \TeX{}u těžko mohl pamatovat, máme k~dispozici konstrukci
{\tt\\def\\meno\lb\\mathop\lb\\rm meno\rb\\nolimits\rb}. Na
rozdíl od {\tt\\hbox\lb meno\rb} zaručuje předchozí konstrukce
vhodné mezery podle místa použití. Vynecháme-li příkaz
{\tt\\nolimits}, budou případné indexy či exponenty ve vzorcích
na samostatném řádku vysazeny pod, resp. nad jménem takto
definovaného \uv{operátoru}. Při psaní české matematiky můžeme
takto definovat tg, cotg, arctg a~další matematické funkce,
jejichž jména se v~češtině liší od anglických názvů.
\toindex{mathop}


\exercise Vysázejte: $\sin(2\theta) = 2\sin\theta\cos\theta \quad
\cos(2\theta) = 2\cos^2\theta - 1  $.

\exercise Vysázejte: $$\int \csc^2x\, dx = -\cot x+ C
\qquad \lim_{\alpha\to 0} {\sin\alpha \over \alpha} = 1
\qquad \lim_{\alpha\to \infty} {\sin\alpha \over \alpha} = 0.$$

\exercise Vysázejte: $$\tan(2\theta) = {2\tan\theta \over
1-\tan^2\theta}.$$



\subsection{Na vědomost se dává!}

Existuje speciální makro, které se užívá téměř
v~každém
matematickém článku a~které je natolik zvláštní, že vyžaduje
i~zvláštní vysvětlení. Jedná se
o~makro {\tt \\proclaim}.
Používá se ho při sazbě vět, důsledků, tvrzení a~podobně.
Odstavec následující po {\tt \\proclaim} se rozdělí na dvě
části: první částí je text od začátku odstavce až po první
tečku včetně a~druhou část tvoří zbytek.\TeXref{202-203}
Základní myšlenkou je, aby první
část byla něco jako \uv{Věta 1.} nebo \uv{Důsledek B.} Tvrzení
věty nebo důsledku tvoří druhou část. Ukažme si to na
příkladu:
\toindex{proclaim}

\beginuser
\\proclaim Věta 1. Mezi slepými je jednooký králem.
\enduser

\noindent dává

\proclaim Věta 1. Mezi slepými je jednooký králem.

Tvrzení věty může samozřejmě obsahovat i~matematické výrazy
(také může být složeno
z~více gramatických vět).

\exercise Vysázejte:

\proclaim Tvrzení 1.
$\sum_{i<j}^n |X_i-X_j| = 0$, právě když $X_1=\cdots=X_n$.




\subsection{Matice}

Matice se sázejí pomocí kombinací zarovnávacího
symbolu {\tt \&}
a~řídicího slova {\tt \\cr}, sloužícího
k~vyznačení konce
řádku. Konstrukce má tvar {\tt \$\$\\pmatrix\lb$\dots$\rb\$\$}. Mezi
složené závorky se vypisují jednotlivé řádky matice, přičemž každý
řádek je zakončen {\tt \\cr}. Prvky matice jsou odděleny
pomocí {\tt \&}. Například: použijeme-li ve vstupním textu
\TeXref{176--178}
{\beginliteral
$$\pmatrix{
a~& b & c & d \cr
b & a~& c+d & c-d \cr
0 & 0 & a+b & a-b \cr
0 & 0 & ab  & cd \cr
}$$
@endliteral
}

\noindent
dostaneme
$$\pmatrix{
a~& b & c & d \cr
b & a~& c+d & c-d \cr
0 & 0 & a+b & a-b \cr
0 & 0 & ab  & cd \cr
}$$
\toindex{pmatrix}
\toindex{cr}


\exercise Vysázejte

$$ I_4 = \pmatrix{ 1 &0 &0 &0 \cr
                   0 &1 &0 &0 \cr
                   0 &0 &1 &0 \cr
                   0 &0 &0 &1 \cr}$$


Je možné též pracovat
i~s~maticemi omezenými jinými
oddělovači. Když použijeme
{\tt \\matrix} místo {\tt \\pmatrix}, závorky budou
vynechány, takže musíme použít explicitně oddělovače {\tt
\\left} a~{\tt \\right}. Ukažme si, jak lze změnit matici
z~posledního příkladu. Vložením do vstupního souboru (píšeme
nyní vstup do řádku, což je nepřehledné, ale
z~hlediska
úspory místa vhodné)
\toindex{matrix}
\toindex{left}
\toindex{right}

\beginliteral
$$ \left |
\matrix{a & b & c & d \cr b & a~& c+d & c-d \cr
0 & 0 & a+b & a-b \cr 0 & 0 & ab  & cd \cr}
\right | $$
@endliteral

\noindent
dostaneme na výstupu

$$ \left |
\matrix{
a~& b & c & d \cr
b & a~& c+d & c-d \cr
0 & 0 & a+b & a-b \cr
0 & 0 & ab  & cd \cr
}
\right | $$

Vynechání \uv{otevírajícího} a~\uv{uzavírajícího}
oddělovače je také možné;
k~tomu stačí použít {\tt \\left.}
a~{\tt \\right.} (upozorňujeme na použití tečky). Např.~pro
vytvoření formulky

$$  F(x) = \left\{ \matrix { {\sin x \over x}, &x \not = 0
\cr 1, &x = 0  \cr} \right. $$


\noindent použijeme konstrukce

\beginuser \obeyspaces
\$\$ F(x) = \\left\\\lb \\matrix\lb
\                 \lb\\sin x \\over x\rb, \& x \\not = 0 \\cr
\                 1,\                \& x = 0      \\cr\rb
\\right. \$\$
\enduser

\exercise Vysázejte $$ |x| = \left\{ \matrix{ x, & x \ge 0 \cr
                         -x, & x \le 0 \cr} \right.$$
Toto cvičení lze také vysázet pomocí makra {\tt
\\cases}.\TeXref{175}


Matice lze také sázet
i~v~řádcích textu, vypadá
to však značně ošklivě,
pokud počet řádků matice není malý.




\subsection{Samostatné rovnice}

Všechny zatím uvažované matematické části
textu vypadaly téměř stejně,
ať jsme je vysázeli do řádku nebo samostatně (na
zvláštní řádek). Nyní si všimneme
situací, které jsou typické pouze pro
samostatné rovnice (displayed equations).

První se týká zarovnávání víceřádkových rovnic nebo
několika rovnic ve více řádcích. To se provádí
pomocí zarovnávacího symbolu {\tt \&} a~řídicích slov {\tt
\\cr} a~{\tt \$\\eqalign\lb$\dots$\rb\$}.
Začneme řídicím slovem {\tt \\eqalign},
potom píšeme rovnice, které mají být zarovnány,
a~každou
z~nich ukončíme {\tt \\cr}.
V~každé rovnici musí
být jeden zarovnávací symbol {\tt \&}
k~vyznačení místa,
podle kterého se zarovnává. Obvykle se zarovnává podle
znaků rovnosti, i~když to není nutné. Například
\TeXref{190--192}
\toindex{eqalign}

\vfil\eject
\beginliteral
$$\eqalign{a + b &= c + d \cr
           x &= w + y + z~\cr
           m + n + o~+ p &= q \cr
           }$$
@endliteral


\noindent
dává po vytištění
$$\eqalign{
a+b &= c+d \cr
x &= w + y + z~\cr
m + n + o~+ p &= q \cr
}$$


Samostatné rovnice lze číslovat buď na pravém nebo levém
okraji textu. Vyskytne-li se
u~samostatné rovnice řídicí slovo
{\tt \\eqno}, potom se všechno, co po něm následuje, umístí
na pravý okraj. Například {\tt \$\$ x+y=z. \\eqno (1)\$\$}
dává $$ x+y=z. \eqno (1)$$
K~očíslování rovnice na levém okraji se místo {\tt \\eqno}
použije {\tt \\leqno}.
\toindex{eqno}
\toindex{leqno}

Nakonec předpokládejme, že je nějaký text nutno umístit
někam do samostatné rovnice (nebo vzorce).
To lze udělat pomocí boxu
typu hbox. Například
{\tt \$\$X=Y, \\hbox\lb{} právě když \rb x=y.\$\$} dává
$$X=Y, \hbox{ právě když } x=y.$$

\exercise Vyřešte několik velmi zajímavých problémů, které
naleznete na str.
180 a~181 knihy {\TeX book}.


\section{Všechno v~jednom řádku}

Přání umístit doprostřed
do nějakého textu tabulku není nic neobvyklého. Naštěstí to \TeX{}
umí jednoduše zařídit. Existují
dvě různé metody zarovnávání textu. První
z~nich používá
tabelační prostředky a~podobá se nastavení tabelačních
zarážek na psacím stroji. Každý řádek se vyplňuje zvlášť
podle nastavených tabelačních sloupců, ale
s~větší
flexibilitou než na psacím stroji. Druhou metodou je metoda
horizontálního zarovnávání, při které se celá tabulka
vysází najednou pomocí předepsaného vzoru.



\subsection{Tab, tab, tabulka}


K~zarovnání údajů pomocí tabelačních prostředků je třeba
nejprve nastavit tabelační pozice pomocí řídicího slova
{\tt \\settabs}. Potom se řádek tabulky
s~těmito
tabelačními zarážkami uvádí řídicím symbolem {\tt \\+}
a~ukončuje {\tt \\cr} (připomeňme, že skutečný počet
mezer v~řádku při jeho sazbě není rozhodující).
\toindex{settabs}
\toindex{cr}
\toindex{\*@+}
Nejjednodušší způsob použití řídicího slova {\tt \\settabs}
spočívá
v~umístění textu do stejných sloupců.\TeXref{231}
Po {\tt \\settabs 4 \\columns} se tabelační zarážky nastaví
tak, že vzniknou čtyři stejné sloupce. Tabelace se potom
provádí pomocí zarovnávacího znaku {\tt \&}, po kterém
dojde
k~posunutí
k~další tabelační zarážce. Tak například
\toindex{columns}

\beginliteral
\settabs 3 \columns
\+ British Columbia & Alberta & Saskatchewan \cr
\+ Manitoba & Ontario & Quebec \cr
\+ New Brunswick & Nova Scotia & Prince Edward Island \cr
\+ && Newfoundland \cr
@endliteral


\noindent
vytvoří tabulku kanadských provincií
\medskip
\settabs 3 \columns
\+ British Columbia & Alberta & Saskatchewan \cr
\+ Manitoba & Ontario & Quebec \cr
\+ New Brunswick & Nova Scotia & Prince Edward Island \cr
\+ && Newfoundland \cr
\medskip
Poznamenejme, že některé tabelační zarážky je možné
přeskočit a~že není nutné v~jednom řádku využívat všech
tabelačních zarážek.
K~vytvoření stejné tabulky se čtyřmi sloupci
stačí použít {\tt \\settabs 4 \\columns}
k~novému nastavení
tabelačních zarážek. Řádky
z~předchozího příkladu
dají

\medskip\vfill\eject
\settabs 4 \columns
\+ British Columbia & Alberta & Saskatchewan \cr
\+ Manitoba & Ontario & Quebec \cr
\+ New Brunswick & Nova Scotia & Prince Edward Island \cr
\+ && Newfoundland \cr
\medskip
V~tomto příkladu jsou sloupce samozřejmě užší. Při dalším
experimentu
s~šesti sloupci dostaneme

\medskip
\settabs 6 \columns
\+ British Columbia & Alberta & Saskatchewan \cr
\+ Manitoba & Ontario & Quebec \cr
\+ New Brunswick & Nova Scotia & Prince Edward Island \cr
\+ && Newfoundland \cr


Prvky
v~tabulce se již překrývají. Je to proto, že \TeX{}
přejde
k~následující tabelační zarážce, i~když to znamená
(na rozdíl od psacího stroje) vrátit se na řádku zpět.

Mezi seskupováním a~tabelací je zajímavý vztah. Tabelační
hodnoty nastavené pomocí {\tt \\settabs} platí, jak lze
ostatně čekat, pouze
v~té skupině, ve které byly
definovány. Nastavení tabelace lze tedy dočasně změnit
seskupením do složených závorek. Navíc každá položka tabulky
je vlastním seskupením. Můžeme tedy jednu položku vysázet
tučně, např. pomocí {\tt \\bf} bez použití složených závorek.
Dokonce je možné umístit položku ve sloupci
doprostřed,
vlevo nebo vpravo, anebo vyplnit sloupec linkou nebo
tečkami. Každá položka má na svém konci implicitní {\tt
\\hfil}, takže se ve sloupci vytiskne vlevo. Přidáme-li
{\tt \\hfil} na začátek položky, potom se položka vytiskne
uprostřed sloupce, stejně jako je tomu
s~řídicím
slovem {\tt \\line}. Přidáme-li {\tt \\hfill} na začátek,
položky se posunou vpravo ({\tt \\hfill} má podobnou funkci
jako {\tt \\hfil}, absorbuje totiž nadměrné mezery; {\tt
\\hfilll} lze také použít; řídicí slovo, které má více
písmen {\tt l}, má \uv{přednost}).
\toindex{hfill}
\toindex{hfilll}
Ve vstupním souboru umístěný text

\noindent
\verb|\settabs 4 \columns
\+\hfil British Columbia & \hfill Alberta \qquad &
        \hskip0.1in \bf Saskatchewan & Manitoba \cr
\+\hfil Ontario & \hfill Quebec \qquad &
        \hskip0.1in \bf New Brunswick & Nova Scotia \cr
\+\hfil ---  & \hfill * \qquad &
        \hskip0.1in \bf Newfoundland & Prince Edward Island \cr
\+ \dotfill && \hrulefill & \cr|

\noindent
vytvoří tabulku,
v~níž je první sloupec vystředěn
(centrován), druhý
sloupec je zarovnán vpravo
s~následnou mezerou vytvořenou
pomocí {\tt \\qquad} a~třetí sloupec je vytištěn tučně
s~posunutím {\tt 0.1 in}\ doprava. Čtvrtý sloupec je zarovnán
vlevo.
Řídicí slova {\tt \\dotfill} a~{\tt \\hrulefill} vyplní dvě
položky
v~posledním řádku. Dostáváme tedy
\toindex{dotfill}
\toindex{hrulefill}

\vskip\parskip
\vfil\eject
\settabs 4 \columns
\+\hfil British Columbia & \hfill Alberta \qquad &
        \hskip0.1in \bf Saskatchewan & Manitoba \cr
\+\hfil Ontario & \hfill Quebec \qquad &
        \hskip0.1in \bf New Brunswick & Nova Scotia \cr
\+\hfil ---  & \hfill * \qquad &
        \hskip0.1in \bf Newfoundland & Prince Edward Island \cr
\+ \dotfill && \hrulefill & \cr

Kdybychom volili umístění a~sazbu rozmanitější pomocí

\noindent
\verb|\settabs 4 \columns
\+\hfil British Columbia & \hfill Alberta \qquad &
        \hskip 5mm \bf Saskatchewan & Manitoba \cr
\+\hfill Ontario & \hfil Quebec \hfil \qquad &
        \hskip 3mm New Brunswick & Nova Scotia \cr
\+\ ---  & \hfill * \qquad &
        \hskip 1mm \bf Newfoundland & Prince Edward Island \cr
\+ \dotfill && \hrulefill & \cr|

\noindent dostali bychom tabulku sice rozmanitou, avšak
dosti ošklivou; přesto stojí za to si ji prohlédnout
a~uvědomit si význam jednotlivých položek

\medskip
\settabs 4 \columns
\+\hfil British Columbia & \hfill Alberta \qquad &
        \hskip 5mm \bf Saskatchewan & Manitoba \cr
\+\hfill Ontario & \hfil Quebec \hfil \qquad &
        \hskip 3mm New Brunswick & Nova Scotia \cr
\+\ ---  & \hfill * \qquad &
        \hskip 1mm \bf Newfoundland & Prince Edward Island \cr
\+ \dotfill && \hrulefill & \cr

\exercise
V~tabulce kanadských provincií všechny
položky ve sloupcích umístěte na střed sloupce.

Nastavení tabelačních zarážek lze provést mnohem rozmanitěji
než jen pro stále stejně široké sloupce. Obecným vzorem je použití
\uv{vzorového řádku} tvaru

\noindent
{\tt \\settabs \\+ $\ldots$ \& $\ldots$ \& $\ldots$ \\cr}.

Velikost zadaných mezer mezi zarovnávacími symboly {\tt \&} určuje
polohu tabelačních zarážek. Například\par

\noindent
\verb|\settabs \+ \hskip 1 in & \hskip 2 in & \hskip 1.5 in & \cr|
\par

\noindent nastaví první zarážku jeden palec od levého okraje, druhou
zarážku ještě
o~dva palce vpravo a~třetí zarážku
o~dalších
1,5 palce vpravo. Zkuste provést experiment s~takto zadaným
řídicím řádkem.

K~vymezení vzdáleností mezi tabelačními
zarážkami lze také použít text. Uveďme následující
příklad vzorového řádku:\par

\noindent
\verb|\settabs \+ \quad Provincie \quad & \quad Populace \quad
          & \quad Rozloha \quad & \cr|



Sloupce
v~tabulce potom budou dostatečně široké, aby se do
nich vešla záhlaví tabulky i~s~mezerami na obou stranách
(zatím však text určuje pouze rozměry sloupců). Následuje
trochu úplnější příklad:

\noindent
\verb|\settabs
\+ Rok  \quad  & Cena \qquad  & Dividendy & \cr
\+ \hfill Rok  & \hfil Cena   & \hfil Dividendy & \cr
\+ \hfill 1971 & \hfil 41--54 & \hfil \$2.60 & \cr
\+ \hfill 2    & \hfil 41--54 & \hfil \$2.70 & \cr
\+ \hfill 3    & \hfil 46--55 & \hfil \$2.87 & \cr
\+ \hfill 4    & \hfil 40--53 & \hfil \$3.24 & \cr
\+ \hfill 5    & \hfil 45--52 & \hfil \$3.40 & \cr|

\noindent
dává na výstupu \TeXref{247}

\noindent
\settabs
\+ Rok  \quad  & Cena \qquad  & Dividendy & \cr
\+ \hfill Rok  & \hfil Cena   & \hfil Dividendy & \cr
\+ \hfill 1971 & \hfil 41--54 & \hfil \$2.60 & \cr
\+ \hfill 2    & \hfil 41--54 & \hfil \$2.70 & \cr
\+ \hfill 3    & \hfil 46--55 & \hfil \$2.87 & \cr
\+ \hfill 4    & \hfil 40--53 & \hfil \$3.24 & \cr
\+ \hfill 5    & \hfil 45--52 & \hfil \$3.40 & \cr
\vskip\parskip

Pár poznámek nakonec: tvorba tabulek pomocí {\tt \\settabs},
{\tt \\+}\ a~{\tt \\cr}\ je velmi jednoduchá. Používá se
v~ní konstrukce s~řídicím slovem {\tt \\halign}, se kterým se
seznámíme blíže v~následující části. Každý řádek tabulky je
ve skutečnosti samostatnou tabulkou a~nedáte-li celou
tabulku do {\tt \\vbox$\{$...$\}$}, láme se při přechodu na
další stránku po řádcích stejně jako text. Do tabulek
nelze shora popsaným způsobem umisťovat poznámky pomocí
{\tt \\footnote}. Zapomenete-li na {\tt \\cr}, dostanete
velmi komplikované chybové hlášení; chyba bývá hlášena na
některém z~následujících řádků, což může ztížit její
hledání.

\exercise Tabulku
z~posledního příkladu
umístěte více ke středu stránky.

\exercise Jednou
z~možností, jak vystředit několik řádků,
je použít řídicí sekvence {\tt \$\$\\vbox\lb$\ldots$\rb\$\$}. Vystřeďte
tímto způsobem výše uvedenou tabulku. Je nutné vložit řádek {\tt
\\settabs} do {\tt \\vbox} ?

\exercise Vylepšete svůj poslední výsledek přidáním řádku
pod záhlaví tabulky. Řídicí slovo {\tt \\hrule} doplní
vodorovnou linku, pokud se uvede mezi dvěma řádky tabulky.
Totéž zopakujte
s~řídicím slovem {\tt \\strut} po {\tt \\+}
v~řádku obsahujícím záhlaví sloupců; ({\tt \\strut} trochu
zvětší mezery mezi řádky).\TeXref{82}
Všimněte si dodatečné mezery, která vznikne.
\toindex{strut}

\exercise Vytvořte následující tabulku
s~dekadickým
zarovnáním, t.j.
s~desetinnými čárkami pod sebou:
\smallskip
{\interlinepenalty 10000
\settabs \+ \hskip 2 in & \hskip .75in & \hskip 1cm& \cr
\+ &Švestky &\hfill 8&,00 Kč \cr
\+ &Káva &\hfill 12&,00 Kč\cr
\+ &Žvýkačka &\hfill 10&,00 Kč\cr
\+ &Houby &\hfill 16&,50 Kč\cr
\+ &{Utopenec} &\hfill 12&,00 Kč\cr
\+ &{Pomeranče} &\hfill 16&,40 Kč\cr
\+ &Slivovice &\hfill 80&,00 Kč\cr
\+ &Rohlík &\hfill 0&,30 Kč\cr
\+ &Cigarety &\hfill 90&,00 Kč\cr
\+ &{Uzený bůček} &\hfill 18&,60 Kč\cr
\+ &Pivo &\hfill\underbar{\ \ 35}&\underbar{,00 Kč}  \cr
\+ &Celkem &\hfill 298&,80 Kč\cr}



\exercise Navrhněte vytvoření jednoduché tabulky
typu obsahu knížky
s~použitím
{\tt \\settabs}
a~s~položkami, které vypadají přibližně takto:
\medskip
\hbox to \hsize{Začínáme\dotfill 1}
\hbox to \hsize{Všechny velké a~malé znaky\dotfill 9}

\subsection{Vodorovné zarovnání s~rafinovaným vzorem}

Použití\ \ {\tt \\settabs}\ \ není nikterak složité a~jakmile je
vzor jednou nastaven, lze ho kdykoli použít
v~různých
částech následujícího textu. Má však některé nedostatky.
Především velikost sloupců musí být nastavena dříve, než
jsou známy položky. A~navíc, kdybychom chtěli vytisknout
jeden sloupec tučně, museli bychom to vyznačit
v~každém
řádku. Tyto potíže lze zmenšit použitím
řídicího slova {\tt \\halign}.
\TeXref{235--238}
\toindex{halign}

Srovnejte vstupní data a~výslednou tabulku s~podobnou
tabulkou vytvořenou pomocí {\tt \\settabs} z~předcházející
části:

\noindent
\verb|\halign{\hfil # & \hfill # \quad & \hskip3mm \bf # &
        \hfil # \hfil \cr
British Columbia & Alberta & Saskatchewan  & Manitoba    \cr
Ontario          & Quebec  & New Brunswick & Nova Scotia \cr
---              & *       & Newfoundland  &Prince Edward Island\cr
\dotfill         &         & \hrulefill    & \cr}|

\noindent dává po zpracování \TeX em

\vskip\parskip
\halign{\hfil # & \hfill # \quad & \hskip3mm \bf # &
\hfil # \hfil \cr
British Columbia & Alberta & Saskatchewan  & Manitoba    \cr
Ontario          & Quebec  & New Brunswick & Nova Scotia \cr
---              & *       & Newfoundland  & Prince Edward Island \cr
\dotfill         &         & \hrulefill    & \cr}

K~sazbě hodně komplikovaných tabulek v~\TeX u~existují daleko
silnější prostředky, zde se zabýváme jen základními postupy.
Uveďme obecný vzor pro použití {\tt \\halign}:\par
\beginuser
\\halign\lb{} <vzorový řádek> \\cr
<první samostatný řádek> \\cr
<druhý samostatný řádek> \\cr
$\vdots$
<poslední samostatný řádek> \\cr
\rb
\enduser

Vzorový řádek i~samostatné řádky jsou rozděleny na sekce
(části)
pomocí zarovnávacího symbolu {\tt \&}. Ve vzorovém řádku se
v~každé sekci používá řídicích slov stejným způsobem jako
u~řídicího slova {\tt \\line\lb\rb}. Tak například řídicí
slovo {\tt \\hfil} lze použít
k~zarovnání vlevo, vpravo
nebo
k~vystředění. Fonty lze změnit pomocí {\tt \\bf},
{\tt \\it} atp. Také text lze použít přímo ve vzorovém
řádku. Dodejme, že
v~každé sekci se musí
použít speciální symbol {\tt \#}, a~to právě jednou.
Každý samostatný řádek tabulky je
potom nastaven tak, že každá jeho sekce se dosadí
do příslušné sekce vzorového řádku
v~místě, kde se nachází
řídicí symbol {\tt \#}. Použití ilustruje následující
velmi jednoduchý příklad: zadáme-li ve vstupním souboru

\noindent
\verb|\halign{\hfill #\quad & \hfill #\quad & \hfill #\quad\cr
Volský Žab     & Vožábinka & Radka Kvačka \cr
Velká Žbluňka  & Žblabuňka & Bill Drmla   \cr
Franta Kníkal  & Kvákule   & Brek         \cr}|

\noindent dostaneme posléze na výstupu

\noindent
\halign{\hfill #\quad & \hfill #\quad & \hfill #\quad\cr
Volský Žab & Vožábinka & Radka Kvačka  \cr
Velká Žbluňka    & Žblabuňka & Bill Drmla  \cr
Franta Kníkal     & Kvákule   & Brek  \cr}

Předveďme si trochu komplexnější a~serióznější příklad;
nechť je ve vstupním souboru zakódována tabulka následujícím
způsobem:
\beginuser
\\halign\lb\\hskip 20mm \$\#\$ \& \\hfil \\quad \# \\hfil \& \\qquad \$\#\$
       \hskip 3in \& \\hfil \\quad \# \\hfil \\cr
\\alpha   \& alfa   \& \\beta  \& beta  \\cr
\\gamma   \& gama   \& \\delta \& delta \\cr
\\epsilon \& epsilon \& \\zeta  \& dzeta  \\cr
\rb
\enduser

\noindent
Ve vzorovém řádku se říká, že první sekce vytištěného textu
bude dvacet milimetrů od levého okraje a~zároveň
v~matematickém
módu. Druhá sekce bude vystředěna po přidání mezery zleva
pomocí {\tt \\quad}. Podobně je tomu
s~třetí a~čtvrtou
sekcí. Výsledek potom vypadá takto:

\medskip
\halign{\hskip 20mm $#$ & \hfil\quad # \hfil & \qquad $#$
                       & \hfil\quad # \hfil\cr
\alpha   & alfa   & \beta  & beta \cr
\gamma   & gama   & \delta & delta \cr
\epsilon & epsilon & \zeta  & dzeta \cr
}

V~tomto případě se první samostatný řádek vytvoří tak, že
se ve vzorovém řádku dosadí {\tt \\alpha} místo prvního
{\tt \#}, {\tt alfa} místo druhého {\tt \#}, {\tt \\beta}
místo třetího {\tt \#} a~{\tt beta} místo čtvrtého {\tt
\#}. Celý řádek se potom uschová pro konečné nastavení.
Tímto způsobem se zpracují všechny řádky a~teprve potom
jsou nastaveny tak, aby byl každý sloupec dostatečně široký
a~vešly se do něj všechny jeho položky (důsledkem tohoto procesu je
to, že tabulka
s~příliš mnoha položkami může způsobit, že
\TeX{}u bude chybět paměť; je proto lépe dělat jen
tabulky, které se vejdou přibližně na jednu stránku).
Vzorový řádek tedy určuje vzor každé položky tabulky
a~samostatné řádky dosazují jednotlivé položky.

K~oddělení položek tabulky se někdy používají vodorovné
a~svislé linky.
K~vložení vodorovných linek se používá {\tt
\\hrule}, podobně jako
v~prostředí {\tt \\settabs}. Protože
však nechceme zarovnat linku podle vytvořeného vzoru, použijeme
řídicího slova {\tt \\noalign}. Vodorovné linky se tedy
vkládají pomocí {\tt \\noalign\lb\\hrule\rb}; svislé linky
se vkládají pomocí {\tt \\vrule} buď ve vzorovém, nebo
v~samostatném řádku. Není to ale zcela jednoduché, musíme
ještě něco dodat.
Uvažujme náš poslední příklad a~změňme vzorový řádek
tak, aby vkládal svislé a~vodorovné linky  ---   provedeme
to následujícím způsobem:
\toindex{vrule}
\toindex{hrule}
\beginuser
\\halign\lb\\hskip 20mm\\vrule\\quad \$\#\$\\quad \& \\vrule \\hfil\\quad %
\# \\hfil
\hskip 2 in \& \\quad \\vrule \\quad \$\#\$ \\quad \\vrule
\hskip 2 in \& \\hfil \\quad \# \\quad \\hfil \\vrule \\cr
\\noalign\lb\\hrule\rb
\\alpha   \& alfa   \& \\beta  \& beta \\cr
\\noalign\lb\\hrule\rb
\\gamma   \& gama   \& \\delta \& delta \\cr
\\noalign\lb\\hrule\rb
\\epsilon \& epsilon \& \\zeta  \& dzeta \\cr
\\noalign\lb\\hrule\rb
\rb
\enduser

\noindent
Snadno nahlédneme, že konstrukce nedává zrovna
právě to, co bychom chtěli:

\noindent
\halign{\hskip 20mm\vrule\quad $#$\quad & \vrule \hfil\quad # \hfil
& \quad \vrule \quad $#$ \quad \vrule & \hfil\quad # \quad \hfil
\vrule \cr
\noalign{\hrule}
\alpha   & alfa   & \beta  & beta \cr
\noalign{\hrule}
\gamma   & gama   & \delta & delta \cr
\noalign{\hrule}
\epsilon & epsilon & \zeta  & dzeta \cr
\noalign{\hrule}
}

Má to celou řadu nedostatků: jsou to
samozřejmě nejen protažené
vodorovné linky, ale i~text je příliš
v~boxech
namačkán. Stejně jako
v~prostředí {\tt
\\settabs} lze řádky udělat trochu vyšší vložením
řídicího slova {\tt \\strut} do vzorového řádku.
\TeXref{82} Další potíž může nastat, když
se sestavuje stránka, protože \TeX{} může řádky
od sebe trochu vzdálit, aby stránka vypadala
lépe. To ale způsobí mezery ve
svislých linkách. Bráníme se tomu tak, že
v~prostředí {\tt
\\halign} použijeme řídicí slovo {\tt \\offinterlineskip}.
Konečně se zbavíme linek trčících vlevo tím, že ve
vzorovém řádku vynecháme {\tt \\hskip 2 in}. Výsledek tedy
bude lepší, jestliže použijeme:
\toindex{offinterlineskip}
\toindex{moveright}
\beginuser
\\moveright 20mm
\\vbox\lb\\offinterlineskip
\\halign\lb\\strut\\vrule\\quad \$\#\$
\\quad \& \\vrule \\hfil\\quad \# \\hfil
\& \\quad \\vrule \\quad \$\#\$
\\quad \\vrule \& \\hfil\\quad %
\# \\quad \\hfil \\vrule \\cr
\\noalign\lb\\hrule\rb
\\alpha   \& alfa   \& \\beta  \& beta \\cr
\\noalign\lb\\hrule\rb
\\gamma   \& gama   \& \\delta \& delta \\cr
\\noalign\lb\\hrule\rb
\\epsilon \& epsilon \& \\zeta  \& dzeta \\cr
\\noalign\lb\\hrule\rb
\rb\rb
\enduser

\noindent
což dává
\medskip
\moveright 20mm
\vbox{\offinterlineskip
\halign{\strut\vrule\quad $#$\quad & \vrule \hfil\quad # \hfil
& \quad \vrule \quad $#$ \quad \vrule & \hfil\quad # \quad \hfil
\vrule \cr
\noalign{\hrule}
\alpha   & alfa   & \beta  & beta \cr
\noalign{\hrule}
\gamma   & gama   & \delta & delta \cr
\noalign{\hrule}
\epsilon & epsilon & \zeta  & dzeta \cr
\noalign{\hrule}
}
}

Chceme-li sestrojit tabulku
s~položkami
v~rámečcích,
která bude na stránce vystředěna, provedeme to vložením
{\tt \\vbox} do {\tt \\centerline\lb\rb}. Ukažme si jeden
trik, který dává krásný výsledek. Vložíme-li {\tt \\vbox}
mezi dvojité znaky pro dolar, tabulka bude vytištěna jako
samostatný matematický text. Samozřejmě se nejedná
o~žádný
matematický text, ale \TeX{} přidá nad tabulkou i~pod ní
trochu místa a~po vytištění to vypadá lépe. Vystředěnou
tabulku
s~tímto příjemným přidáním mezer lze tedy vytvořit
podle schematu, které lze popsat stručně
v~následujících čtyřech krocích:

{\parskip = 4 pt
\item{$\bullet$} vlož {\tt \\vbox} mezi dva znaky dolaru;
\item{$\bullet$} vlož {\tt \\offinterlineskip} a~{\tt \\halign} do {\tt \\vbox};
\item{$\bullet$} do {\tt \\halign} vlož vzorový
řádek
se {\tt \\strut} na začátku a~{\tt \\vrule} kolem každé položky;
\item{$\bullet$} před každým řádkem tabulky i~po
něm by mělo být {\tt \\noalign\lb\\hrule\rb}.
}
\noindent A~tady je vzor:
\vfil\eject
\beginuser
\$\$
\\vbox\lb\\offinterlineskip
\\halign\lb
\\strut \\vrule \# \& \\vrule \# \& ... \& \\vrule \# \\vrule \\cr
\\noalign\lb\\hrule\rb
[položka 1. sloupce] \& [položka 2. sloupce] \& ...
\hskip50mm \& [položka posledního sloupce] \\cr
\\noalign\lb\\hrule\rb
...
\\noalign\lb\\hrule\rb
[položka 1. sloupce] \& [položka 2. sloupce] \& ...
\hskip50mm \& [položka posledního sloupce] \\cr
\\noalign\lb\\hrule\rb
\rb\rb
\$\$
\enduser




\section{Dál válejte sami}

V~této kapitole se naučíme vytvářet nová řídicí slova.
Vytváření takových nových definic nazývaných makra je
jedním
z~nejmocnějších prostředků, kterými \TeX\ disponuje.
Jako první aplikaci si ukažme, jak nová definice nahrazením
dlouhých řetězců krátkými může ušetřit spoustu psaní.



\subsection{Zkrátka a~dobře}

K~definování nových řídicích slov se používá řídicího slova
{\tt \\def}. Nejjednodušeji se to dělá takto: {\tt
\\def\\jinejmeno\lb$\ldots$\rb}. Kdykoli se potom řídicí
slovo {\tt \\jinejmeno} objeví
ve vašem zdrojovém souboru, bude
nahrazeno tím, co je mezi složenými závorkami
v~definici.
Řídicí slovo {\tt \\jinejmeno} musí samozřejmě
vyhovovat konvenci
o~jménech řídicích slov, tj.~musí to být řídicí slovo
(samá písmena) nebo řídicí symbol (právě jedno \uv{nepísmeno}).
Předpokládejme například, že píšeme dokument, ve kterém se
mnohokrát vyskytuje slovní spojení \uv{Univerzita Karlova}.
Pomocí {\tt \\def\\uk\lb Univerzita Karlova \rb}
definujeme novou
řídicí sekvenci {\tt \\uk} a~tu lze potom kdykoli použít.
Věta, vložená pomocí {\tt \\uk je nejstarší univerzita ve
střední Evropě.},
bude mít smysl. Jestliže takové řídicí slovo již existuje, nová
definice ho nahradí (to se týká i~řídicích slov
předdefinovaných \TeX em, takže jistá opatrnost při volbě jmen
je nezbytná). Každá definice má však jen lokální platnost
(pouze ve skupině, ve které byla zavedena). Například
\toindex{def}
\beginuser
\\def\\uk\lb Univerzita Karlova \rb
\\uk je nejstarší univerzita ve střední Evropě.
\lb \\def\\uk\lb Univerzita Komenského \rb
\\uk je v~Bratislavě. \rb
Proto je \\uk starší než Univerzita Komenského.
\enduser

\noindent dává

\def\uk{Univerzita Karlova }
\uk je nejstarší univerzita ve střední Evropě.
{
\def\uk{Univerzita Komenského }
\uk je
v~Bratislavě.
}
Proto je \uk starší než Univerzita
Komenského.\footnote{$^1$}{Cvičení: prostudujte pečlivě vstupní
text, jestli zjistíte, proč je za první i~druhou větou
dvojnásobná mezera. S~{\tt \\nonfrenchspacing} to nemá nic
společného!}

Jakmile je řídicí sekvence definována, může být použita
v~nových definicích. To je jedna
z~možností, jak vytvářet
jednoduché vzory dopisů. Definujme:
\beginuser
\\def\\dopis\lb
\\hrule
\\medskip
\\leftline\lb Vážený pan\rb
\\leftline\lb \\jmeno.\rb
\\line\lb\\hfil
V~tomto krátkém dopise Vám oznamuji,
že se jmenujete \\jmeno.\\hfil\rb
\\line \lb \\hskip 2 in Se srdečným pozdravem,\\hfil\rb
\\line \lb \\hskip 2 in Byrokrat v.r.\\hfil\rb
\\medskip
\\hrule
\rb
\enduser


Tento dopis používá řídicí slovo {\tt \\jmeno}, které zatím
nebylo ještě definováno. Použijeme-li {\tt \\dopis},
v~dopise se objeví stávající hodnota pro {\tt \\jmeno}. Proto
\def\jmeno{xyz}
\def\dopis{
\hrule
\medskip
\leftline{Vážený pan}
\leftline{\jmeno.}
\line{\hfil
V~tomto krátkém dopise Vám oznamuji,
že se jmenujete \jmeno.\hfil}
\line{\hskip 2 in Se srdečným pozdravem,\hfil}
\line{\hskip 2 in Byrokrat v.r.\hfil}
\medskip
\hrule
}
\beginuser
\\def\\jmeno\lb Jan Werich\rb
\\dopis
\\medskip
\\def\\jmeno\lb Jiří Suchý\rb
\\dopis
\enduser

\noindent vytvoří dvě kopie dopisu, každou se správným
jménem:\par
\medskip
\def\jmeno{Jan Werich}
\dopis
\medskip
\def\jmeno{Jiří Suchý}
\dopis

Do složených závorek
v~{\tt \\def\\jmeno\lb$\ldots$\rb}
bychom mohli vložit cokoli; třeba několik odstavců a~mohli
bychom použít i~další řídicí sekvence (i když
v~tomto
případě by to bylo poněkud podivné).
Jako součást definice řídicího slova {\tt \\dopis} můžeme samozřejmě
použít i~{\tt \\vfill \\eject}, což způsobí \uv{vyjetí} stránky.

\exercise Navrhněte vzor dopisu, který používá řídicí slova
{\tt \\jmeno}, {\tt \\ulice}, {\tt \\mesto}, {\tt \\okres}
a~{\tt \\psc}.


\exercise Předpokládejme, že se chystáte upravit několik
odstavců svého článku pomocí {\tt \\hangindent = 30 pt},
{\tt \\hangafter = 4} a~{\tt \\filbreak} (nedělejte si
zatím žádné starosti
s~tím, co tyto řídicí sekvence vlastně
znamenají;
v~tuto chvíli je podstatné pouze to, že jakmile
byly nastaveny, platí pouze
v~jednom odstavci). Definujte
jedinou řídicí sekvenci {\tt \\nastavodst}, kterou lze
vložit před každý odstavec, který má být upraven.



\subsection{Vyplňování s~parametry}

Makra lze obecně používat
i~s~parametry. Základní myšlenka
je podobná jako
u~vzorového řádku
v~prostředí {\tt
\\halign}. Podívejme se nejprve na případ s~jedním
parametrem.
V~tomto případě je řídicí sekvence definována
tímto způsobem: {\tt \\def\\noveslovo\#1\lb$\ldots$\rb}. Symbol {\tt
\#1} se může vyskytnout (třeba i~několikrát) ve složených
závorkách
v~definici {\tt \\noveslovo}. To, co je ve
složených závorkách, je vlastně vzor. Objeví-li se {\tt
\\noveslovo\lb$\ldots$\rb}
v~textu, potom se použije
definice {\tt \\noveslovo}
s~novým obsahem ve složených
závorkách vloženým do vzoru
v~místě každého výskytu
{\tt \#1}
v~původní definici. Velmi důležité jsou
mezery
v~původní definici; před otevřením složených závorek
nepoužijte žádnou mezeru.

Jako příklad můžeme použít např.~dopis
z~předcházející
sekce upravený takto:
\beginuser
\\def
\\dopis\#1\lb \\hrule
\\medskip
\\leftline\lb Vážený pan\rb
\\leftline\lb \\bf\#1.\rb
\\line\lb \\hfil
V~tomto krátkém dopise Vám oznamuji,
že se jmenujete \#1.\\hfil \rb
\\line\lb \\hskip 2 in Se srdečným pozdravem,\\hfil \rb
\\line\lb \\hskip 2 in Byrokrat v.r.\\hfil \rb
\\medskip
\\hrule \rb
\enduser

Nyní můžeme psát dopisy ještě efektivněji. Stačí napsat pouze
\def\dopis#1{
\hrule
\medskip
\leftline{Vážený pan}
\leftline{\bf#1.}
\line{\hfil
V~tomto krátkém dopise Vám oznamuji,
že se jmenujete #1.\hfil}
\line{\hskip 2 in Se srdečným pozdravem,\hfil}
\line{\hskip 2 in Byrokrat v.r.\hfil}
\medskip
\hrule
}
\beginuser
\\dopis\lb Jan Werich \rb
\\medskip
\\dopis\lb Jiří Suchý \rb
\enduser

\noindent a~dostaneme \medskip

\dopis{Jan Werich}
\medskip
\dopis{Jiří Suchý}

\def\tisktext#1{$$\vbox{#1}$$}
\bigskip
\tisktext{\hsize = 11 cm
Nyní definujme nové makro
{\tt\\def\\tisktext\#1\lb \$\$\\vbox\lb\#1\rb\$\$\rb}
k~tištění textu.
Potom {\tt \\tisktext\lb$\ldots$\rb} zařídí, že všechno
mezi složenými závorkami se vloží do vlastního odstavce,
odstavec se vystředí a~přidá se vhodná mezera nahoře
i~dole, aby to po vytištění vypadalo pěkně. Tento odstavec
(s~{\tt \\hsize = 11 cm}) byl upraven právě pomocí makra
{\tt \\tisktext}.
}

Parametr makra nemůže být delší než jeden odstavec.
Jestliže se odstavec objeví jako část parametru, vznikne
chyba. Na druhé straně náhodné vynechání uzavírací složené
závorky má za následek, že celý zbytek souboru se vloží do
parametru.

\exercise Definujte makro {\tt \\uspesnost} tak, aby se po
vložení {\tt \\uspesnost\lb89\rb} do zdrojového souboru vytiskla
následující věta: Vaše
úspěšnost je 89\,\%.

Použití více parametrů není
ve skutečnosti vůbec složitější. Obecný
vzor pro definici nového řídicího slova se dvěma parametry je
{\tt \\def\\noveslovo\#1\#2\lb$\ldots$\rb}. V~definici mezi
složenými závorkami se mohou vyskytnout {\tt \#1} i~{\tt
\#2}, třeba i~několikrát. Objeví-li se
v~textu
{\tt \\noveslovo\lb$\ldots$\rb\lb$\ldots$\rb}, potom se
v~definici nahradí {\tt \#1} tím, co je v~první složené závorce,
a~{\tt \#2} tím, co je ve druhé
složené závorce. Zde je příklad a~jeho výsledek:
\beginuser
\\def\\hovor\#1\#2\lb \#1 hovoří
s~\#2.\rb
\\hovor\lb Jan\rb\lb Janou\rb
\\hovor\lb Jana\rb\lb Janem\rb
\\hovor\lb Jiří\rb\lb tebou\rb
\\hovor\lb Kdosi\rb\lb Janou\rb
\enduser

\noindent dává

\vskip\parskip
\def\hovor#1#2{#1 hovoří
s~#2.}
\hovor{Jan}{Janou}
\hovor{Jana}{Janem}
\hovor{Jiří}{tebou}
\hovor{Kdosi}{Janou}

\exercise Podobně jako
v~předcházejícím cvičení definujte
makro {\tt \\uspesnost} tak, aby se po {\tt
\\uspesnost\lb89\rb\lb85\rb} vytiskla následující věta:
Tvoje úspěšnost v~prvním testu byla 89\,\% a~ve druhém 85\,\%.

Zdůrazněme, že před první složenou závorkou a~mezi {\tt \#1}
a~{\tt \#2}
v~definici
nebyla žádná žádná mezera. Uděláte-li ji, \TeX\ bude
interpretovat definici jinak, než bylo popsáno. Mezeru nebo jiné
znaky vložené mezi či za parametry {\tt\#1} a~{\tt\#2} bude
\TeX\ chápat jako jakési oddělovače, které vymezují, kde jeden
parametr končí a~jiný začíná. To je ale složitější záležitost,
kterou vám přenecháme k~případným experimentům.
Definice pro více než dva parametry je podobná. Řídicí
slovo se třemi parametry se definuje takto:
{\tt \\def\\noveslovo\#1\#2\#3\lb$\ldots$\rb}.
Potom se může mezi složenými závorkami vyskytnout
{\tt \#1},  {\tt \#2} i~{\tt \#3}. Vyskytne-li se
v~textu
{\tt \\noveslovo\lb$\ldots$\rb\lb$\ldots$\rb\lb$\ldots$\rb},
potom to, co je mezi dvojicí
složených závorek, nahradí příslušný symbol
v~definici řídicího slova. Použitých parametrů může
být nejvíce devět
({\tt \#1} $\ldots$ {\tt \#9}).



\subsection{Kterýmkoli jiným jménem}

Někdy je výhodné dát řídicímu slovu ještě jiné jméno. Např.
místo řídicího slova {\tt \\centerline} bychom rádi
používali {\tt \\stredlin}. To se dá zařídit pomocí
řídicího slova {\tt \\let}. Po {\tt \\let \\stredlin =
\\centerline} máme možnost používat nové (ale i~původní)
řídicí slovo. To je možné
i~u~matematických jmen, např. {\tt
\\tensor = \\otimes}. Potom můžeme psát
\TeXref{206--207}
\toindex{let}
\toindex{stredlin}
\toindex{tensor}
\let\tensor=\otimes
\beginuser
\$\$ (A~\\tensor B) (C \\tensor D) = AC \\tensor BD. \$\$
\enduser

\noindent Tak obdržíme
$$ (A~\tensor B) (C \tensor D) = AC \tensor BD. $$

\exercise Definujte řídicí slova {\tt \\ll}, {\tt \\cl}
a~{\tt \\rl} tak, aby byla ekvivalentní
s~řídicími slovy {\tt \\leftline}, {\tt
\\centerline} a~{\tt \\rightline}.

Řídicí slovo {\tt \\let} umožňuje uživateli nově pojmenovat
řídicí sekvence a~vytvořit si tak svou vlastní sadu řídicích
sekvencí, kterou může používat místo původních řídicích
slov, která jsou
v~\TeX{}u předdefinována.




\section{Chybovat je lidské}

V~jistém ohledu není \TeX\ žádný zázrak. Na chybu ve
vstupu reaguje chybovým hlášením na obrazovku (užíváte-li
jej interaktivně) a~také zápisem chyby do
stejnojmenného souboru
s~extenzí {\tt.log} (log file).
Protože je \TeX{} velmi složitý, skutečný výskyt
nalezené a~ohlášené chyby může být
ukryt hluboko
v~programu; proto úplná
chybová zpráva může být i~velmi dlouhá a~složitá. Nejen to,
\TeX{} se pokusí chyby napravit a~podá
o~tom zprávu.
Z~tohoto důvodu může být čtení chybových hlášení pro
začátečníka poněkud složité. Rozhodující je jen vědět, co
je pro nás důležité a~co lze klidně ignorovat. Podívejme se
nyní na typické chyby a~hlášení, která vytvářejí.



\subsection{Zapomenuté konce}

První chyba, na kterou se podíváme, je chyba, kterou někdy
udělá každý. Je to totiž vynechání {\tt \\bye} nebo {\tt\\end}
na konci
souboru. Používáte-li \TeX{} interaktivně, na obrazovce se
objeví \hfill\break
\leftline{\tt *}
a~dál se nebude dít nic, protože jste neřekli, že se má
skončit; \TeX{} bude čekat na vstup
z~klávesnice.

Cokoli napíšete, bude připojeno
k~tomu, co již bylo načteno
z~vašeho
souboru. Obvykle se odpovídá tak, že se
z~klávesnice
zadá  {\tt
\\bye <CR>}\footnote{${}^1$}{{\tt <CR>} je klávesa sloužící
k~ukončení zadávání řádku. Mohli bychom ji nazvat návrat
vozíku (carriage return nebo enter). Někdy je označena
velkou šipkou vlevo.}, protože tak se obvykle zpracovávání
ukončí. Někdy se ovšem může přihodit, že vám chybí nějaká pravá
závorka {\tt\rb}, takže \TeX\ odmítá i~nadále skončit. V~každém
případě pomůže současné stisknutí kláves {\tt CTRL+Z}.



\subsection{Překroucená a~neznámá řídicí slova}

Toto je také častá chyba. Je-li \TeX{} spuštěn
v~dávkovém
zpracování (batch mode), chybové hlášení se zobrazí na
obrazovce a~(chybná) řídicí sekvence je ignorována.
Pracuje-li \TeX{} interaktivně, je možné chyby napravit (to
samozřejmě nemění původní vstupní soubor a~opravu
v~něm je
nutno provést až po skončení práce).

Mějme v~\TeX{}u následující jednoduchý vstupní
soubor, který se sestává ze dvou řádků:
\beginuser
\\line\lb Levá strana \\hfli pravá strana\rb
\\bye
\enduser

Samozřejmě, že správné řídicí slovo mělo být {\tt \\hfil}.
Na vaší obrazovce by se mělo objevit zhruba toto hlášení:
\beginuser
\obeyspaces
! Undefined control sequence.
l.1 \\line\lb The left side \\hfli
\                                the right side\rb
?
\enduser

\noindent neboli
\beginuser
\obeyspaces
! Nedefinovaná řídicí sekvence.
l.1 \\line\lb Levá strana \\hfli
\                             pravá strana\rb
?
\enduser

První řádek začíná vykřičníkem {\tt !} a~obsahuje chybové
hlášení. Potom následuje číslo řádku, ve kterém se chyba
objevila, a~ta část řádku, která byla přečtena úspěšně.
Následující řádek je pokračováním řádku po chybě.

Označení chyby vykřičníkem a~údaj o~čísle řádku, kde se chyba
vyskytla, má samozřejmě význam pro opravu chyb v~souboru.
S~dobrým editorem nám to dokonce opravu
jednotlivých chyb velmi usnadní. Malý pascalovský editor {\tt
te.exe}, který je dodáván v~instalaci \CSTeX u, možná nevyhoví
každému při psaní zdrojového textu, ale pokud váš soubor není
příliš rozsáhlý (tj. není větší než 64\,kB), umožňuje jednak
současnou práci s~oběma soubory {\tt mujtext.tex} a~{\tt
mujtext.log} a~jednoduchý pohyb v~obou  oknech, ale hlavně
stiskem jediné klávesy {\tt <F8>} skok na řádku s~chybou ve
zdrojovém souboru, zatímco v~druhém okně se objeví příslušná
chybová hláška. Tato vlastnost je nakonfigurována i pro ostatní dva
editory, které najdete v~nabídce \CS\TeX{}u (jedná se o~Qedit a \CS ED).

Nakonec se
objeví otazník {\tt ?}, který při zastavení programu znamená, že
\TeX{} čeká na odpověď. Existuje několik vhodných odpovědí:

\setbox1=\vbox{
\halign{
\strut \hfil # & \hfil \tt # \hfil & # \hfil\cr
\bf Možná odpověď & \bf Vstup
v~\TeX{}u & \bf \hfil Výsledek\cr
\noalign{\hrule}
Help (Pomoc)    & h <CR>& Důvody zastavení jsou vypisovány \cr
                &       & na obrazovku. \cr
Insert (Vlož)   & i~<CR>& Následuje vložení opravy, která umožní \cr
                &       & další zpracování, ale neopravuje se \cr
                &       & vstupní soubor. \cr
Exit (Ukončení) & x <CR>& Odchod
z~\TeX{}u. Úplné ukončené strán- \cr
                &       & ky se uloží do souboru
s~extenzí {\tt dvi}.\cr
Scroll (Roluj)  &
s~<CR>& Výpis hlášení a~pokračování \cr
                &       & po malých chybách.\cr
Run (Běh)       & r <CR>& Výpis hlášení a~pokračování\cr
                &       & po každé chybě.\cr
Quiet (Tiše)    & q <CR>& Potlačení všech výpisů chyb\cr
                &       & na obrazovku.\cr
Carry on (Pokračuj) & <CR> & \TeX{} pokračuje automaticky,\cr
                &       & jak nejlépe umí.\cr
}
}

$$\vbox{
\hbox to \wd1{\bf \hfil Odpovědi na chybová hlášení \TeX{}u \hfil}
\nobreak
\vskip 12pt
\box1
}$$

\noindent
V~našem příkladu by rozumnou odpovědí mohlo být

\noindent{\tt h <CR>}

\noindent a~pomocí ní bychom dostali pomocné hlášení. Potom bychom
vložili

\noindent{\tt i~<CR>}

\noindent kvůli úpravě textu. Na tomto místě \TeX{} bude reagovat
tím, že se na obrazovce objeví

\noindent{\tt insert>}

\noindent a~my provedeme opravu špatně zadaného řídicího slova
na {\tt \\hfil} a~odešleme pomocí
{\tt<CR>}). A~zde je výsledek: na obrazovce se
postupně objeví
\beginuser
? h
The control sequence at the end of the top line
of your error message was never \\def'ed. If you have
misspelled it (e.g., `\\hobx'), type `I' and the correct
spelling (e.g., `I\\hbox'). Otherwise just continue,
and I'll forget about whatever was undefined.
~
? i~insert>\\hfil
[1]
\enduser

\noindent neboli
\beginuser
? h
Řídicí sekvence na konci horního řádku
chybového hlášení nebyla nikdy \\def'ována. Jestliže jsi
ji zkomolil (např. `\\hobx'), stiskni `I'
a~napiš ji správně (např. `I~\\hbox'). Jinak pokračuj
a~já zapomenu na to, co bylo nedefinováno.
~
? i~insert>\\hfil
[1]
\enduser


Symbol {\tt [1]} na konci znamená, že první
(a jediná) stránka byla
dokončena a~odeslána do souboru {$*\,.\,$\tt dvi}.  Původní vstupní
soubor je samozřejmě třeba ještě opravit.




\subsection{Špatně pojmenované písmo}

Tato chyba je podobná zkomolení řídicí sekvence. Chybové
hlášení je ale jiné a~zpočátku trochu matoucí. Předpokládejme
například, že ve vstupním souboru máte:

\leftline{\tt \\font\\sf = cmss01}

V~tomto případě jsou prohozeny číslice. Chybové a~pomocné
hlášení vypadají takto:
\beginuser \obeyspaces
! Font \\sf=cmss01 not loadable: Metric (TFM) file not found.
<to be read again>
\                   \\par
\\bye ->\\par
\            \\vfill \\supereject \\end
l.2 \\bye
~
? h
I~wasn't able to read the size data for this font,
so I~will ignore the font specification.
[Wizards can fix TFM files using TFtoPL/PLtoTF.]
You might try inserting a~different font spec;
e.g., type `I\\font<same font id>=<substitute font name>'.
\enduser \par

\noindent neboli
\beginuser \obeyspaces
! Font \\sf=cmss01 nelze načíst: Metrický soubor (TFM) nenalezen.
<nutno přečíst znovu>
\                   \\par
\\bye ->\\par
\            \\vfill \\supereject \\end
l.2 \\bye
~
? h
Nebyl jsem schopen přečíst rozměrová data pro tento font,
takže budu ignorovat specifikaci fontu.
[Čarodějové mohou vyrobit soubory typu TFM pomocí TFtoPL/PLtoTF.]
Měl bys zkusit zadat jinou specifikaci fontu;
např., napsat `I\\font<tentýž font>=<náhradní jméno fontu>'.
\enduser \par


Soubor
s~extenzí {\tt tfm} (metrický soubor \TeX{}u) je pomocný
soubor, který \TeX{} využívá. Toto podivné hlášení vám tedy
říká, že definovaný font ve vašem počítači není dosažitelný.
Vás už musí napadnout, jak chybu jednoduše opravit.





\subsection{Popletená matematika}

Jinou častou chybou je to, že se na začátek matematického
výrazu napíše {\tt \$} nebo {\tt \$\$}, ale pak se
zapomene
totéž napsat na konec výrazu. Text, který potom následuje, je
chápán jako matematika; co je však ještě horší je to, že
pokud začne další matematický text novým {\tt \$}
nebo {\tt \$\$}, bude chápán jako normální text. Rozumí se,
že vznikne spousta chybových hlášení.  \TeX{} se pokusí
vyřešit tento problém vložením nového {\tt \$} nebo {\tt
\$\$};
v~každém případě problém je vyřešen na konci
odstavce, protože nový odstavec začíná automaticky jako
obyčejný text.

Uvažujme následující správný vstupní text:
\beginuser
Protože \$f(x) > 0\$, \$a<b\$ a~funkce \$f(x)\$ je spojitá, platí
\$\\int\_{}a\^{}b f(x)\\,dx >0\$.
\enduser

\noindent Na výstupu obdržíme


Protože $f(x) > 0$, $a<b$  a~funkce $f(x)$ je spojitá, platí
$\int_a^b f(x)\,dx >0$.

Vynecháme-li
v~{\tt \$f(x)\$} druhý znak dolaru, dostaneme
takovéto chybové a~pomocné hlášení:
\beginuser \obeyspaces
! Missing \$ inserted.
<inserted text>
\               \$
<to be read again>
\                  \\intop
\\int ->\\intop
\             \\nolimits
l.2 \$\\int
\          \_{}a\^{}b f(x)\\,dx >0\$.
? h
I've inserted a~begin-math/end-math symbol since I~think
you left one out. Proceed, with fingers crossed.
~
?
\enduser
\par\noindent neboli
\beginuser \obeyspaces
! Chybějící \$ doplněn.
<vložený text>
\               \$
<nutno číst znovu>
\                  \\intop
\\int ->\\intop
\             \\nolimits
l.2 \$\\int
\          \_{}a\^{}b f(x)\\,dx >0\$.
? h
{\hbadness=10000
Doplnil jsem symbol začátku/konce matematického textu, protože si
myslím, že jsi jeden vynechal. Pokračuj a~doufej, že to dobře
dopadne.}
~
?
\enduser


Řádek začínající {\tt !} říká, co se stalo. Řádek začínající
{\tt l.2} ukazuje, na kterém místě ve vstupním souboru se
chyba objevila. Jak jsme již viděli
v~jiných příkladech, ta
část řádku, která byla přečtena úspěšně, tj.~až po {\tt
\\int}, je na jednom řádku a~zbytek pokračuje na dalším řádku.
Konec hlášení se může zdát nejasný. Tato dílčí hlášení
říkají, co se dělo ve střevech programu \TeX{}, když se
objevila chyba. Začátečník je může ignorovat.
A~tady je výsledek po pokusu \TeX{}u chybu napravit:

Protože $f(x) > 0$, $a<b$ a~funkce $f(x) je spojit\acute
a, plat\acute\subset
\int_a^b f(x)\,dx >0$.

\noindent Je to sražený text tištěný kurzívou a~bez mezer. To je typické pro
normální text, je-li chápán jako text matematický; jestliže
uvidíte něco takového na výstupu, je skoro jisté, že jste
vynechali {\tt \$} nebo {\tt \$\$}.




\subsection{Nesprávné závorkování}

Při vytváření skupin snadno zapomeneme na uzavírací
závorky nebo se nám popletou. Výsledkem může být zcela nepatrná
chyba, ale někdy je situace katastrofální. Předpokládejme
například, že
v~textu máme {\tt \lb \\bf Tučný titulek },
a~že jsme tedy omylem vynechali uzavírací složenou závorku. Výsledek
bude stejný, jako by tam žádná otvírací složená
závorka nebyla; jinými slovy, celý zbytek článku bude
vytištěn tučně, nebudou-li již následovat žádné jiné změny
fontu. Na konci souboru dostanete následující
hlášení:

\noindent{\tt (\\end occurred inside a~group at level 1)}
\par\noindent neboli \par

\noindent{\tt (\\end se vyskytl ve skupině 1. úrovně)}


Uděláte-li stejnou chybu dvakrát, pak bude
o~dvě otevírací
složené závorky více než uzavíracích a~měli byste dostat
toto hlášení:

\noindent{\tt (\\end occurred inside a~group at level 2)}
\par\noindent neboli \par

\noindent{\tt (\\end se vyskytl ve skupině 2. úrovně)}

\TeX{} neví, že chybí uzavírací složená závorka do té
doby, dokud nedojde na konec souboru. Hlášení vám tedy
neřekne, kde jste udělali chybu. Není-li nalezení místa
chybějící závorky snadné, je kdykoli možné vložit {\tt
\\bye} doprostřed dokumentu. Spustíte-li \TeX{} znovu, bude
se zpracovávat jen první polovina dokumentu, a~jestliže
chybová hlášení zůstanou stejná, potom víte, že chyba je
v~první
polovině dokumentu. Přesouváním {\tt \\bye} na různá místa
lze chybu lokalizovat. Podíváte-li se tedy na výstup
několikrát, nakonec odhalíte, co a~kde se stalo.

Chybějící otvírací složená závorka se rozpozná mnohem
snadněji. Uveďme dvouřádkový vstupní soubor a~výsledné
chybové a~pomocné hlášení:
\beginuser
\\bf Každý začátek \rb má svůj konec.
\\bye
\enduser

\noindent
V~hlášení se objeví
\beginuser \obeyspaces
! Too many \rb's.
l.1 \\bf Každý začátek\rb
\                          má svůj konec.
~
? h
You've closed more groups than you opened.
Such booboos are generally harmless, so keep going.
\enduser
\par\noindent neboli
\beginuser \obeyspaces
! Příliš mnoho \rb.
l.1 \\bf Každý začátek\rb
\                          má svůj konec.
~
? h
Uzavřel jsi více skupin než kolik jsi jich otevřel.
Taková bububu jsou obvykle neškodná, pokračuj tedy dál.
\enduser

Samozřejmě se může stát, že chybějící levá složená závorka
nebude na řádku, na kterém \TeX{} chybu zachytil.

Popletená složená závorka
v~definici nového řídicího slova
může způsobit velkou chybu. Protože taková definice může
obsahovat několik odstavců, nemusí být zachycena na
konci odstavce
a~v~neukončené definici se bude hromadit čím
dál tím více textu. Může se dokonce stát, že se \TeX{}u
nebude dostávat paměti, protože přidává další a~další text.
Tomu budeme říkat ujetá definice (runaway definition)  ---   dobře
to vystihuje situaci, i~když to zní poněkud hovorově.
\TeXref{206}
Uveďme si dvouřádkový vstupní soubor
s~ujetou definicí:
\beginuser
\\def\\noveslovo\lb def
\\bye
\enduser

\noindent Výsledné chybové a~pomocné hlášení je toto:
\beginuser \obeyspaces
Runaway definition?
->the def
! Forbidden control sequence found while scanning
definition of \\noveslovo.
<inserted text>
\                \rb
<to be read again>
\                   \\bye
l.2 \\bye
~
? h
I~suspect you have forgotten a~`\rb', causing me
to read past where you wanted me to stop.
I'll try to recover; but if the error is serious,
you'd better type `E' or `X' now and fix your file.
~
?
No pages of output.
\enduser
\par\noindent neboli
\beginuser \obeyspaces
Ujetá definice?
->the def
! Nalezena zakázaná řídicí sekvence při procházení definice
\\noveslovo.
<vložený text>
\                \rb
<nutno přečíst znovu>
\                   \\bye
l.2 \\bye
~
? h
Předpokládám, že jsi zapomněl na `\rb', takže jsem
přečetl více, než jsi zamýšlel.
Zkusím to napravit; je-li však chyba vážná,
bude lepší, když teď stiskneš `E' nebo `X' a~soubor upravíš.
~
?
Žádná stránka na výstupu.
\enduser

To je samozřejmě závažná chyba. Objeví-li se na začátku
souboru (jako
v~předchozím příkladu), nedostaneme na výstupu
vůbec nic!

Vynechá-li se uzavírací složená závorka při použití makra
s~parametry, ujetá definice se ukončí na konci
odstavce. Bylo-li definováno {\tt \\def\\noveslovo\#1\lb$\ldots$\rb}
a~použijete-li {\tt \\noveslovo\lb$\dots$} bez uzavírací
závorky, pak se zničí nejvýše jeden odstavec.
\TeXref{205}


Zkrátka a~dobře: vyskytne-li se chyba, podívejte se na řádek
začínající vykřičníkem a~popisující chybu, potom se
podívejte na řádek začínající číslem řádku, abyste se
dozvěděli, kolik už bylo přečteno vstupního souboru \TeX{}u.
Je-li chyba stále ještě nejasná, zeptejte se \TeX{}u pomocí
\noindent{\tt h <CR>}
\noindent na další informace.






\section{Kutání trochu hlouběji}

V~této kapitole se podíváme na několik prostředků, které
umožňují používat \TeX{} pružněji nebo  účinněji. Protože
délka vytvářených dokumentů narůstá, je vhodné uvažovat
o~způsobech, jak jejich vytváření usnadnit.



\subsection{Velké soubory, malé soubory}

\TeX{} může číst a~zapisovat soubory přímo za chodu. To
umožňuje pracovat se soubory, které jsou menší, a~proto je
manipulace
s~nimi příjemnější. Například tento dokument
se sestává
z~deseti kapitol a~úvodu. Navíc existují makra,
která se používají ve všech kapitolách. Tato makra lze
uložit např. do souboru {\tt makra.tex}, úvod do souboru
{\tt uvod.tex} a~každou kapitolu do samostatného souboru.
Řídicí slovo {\tt \\input} potom zajistí načtení souboru.
Obecně {\tt \\input jmenosbr} zajistí, že soubor {\tt
jmenosbr.tex} se načte a~bude zpracováván ihned, stejně
jako by text souboru {\tt jmenosbr.tex} byl částí souboru,
ve kterém byl načten.
V~tomto souboru se mohou načítat
další soubory. Často je výhodné vytvořit samostatný soubor,
který se čte postupně po malých částech, např.
\toindex{input}
\beginuser
\\input makra
\\input uvod
\\input kap1
\\input kap2
\\input kap3
\\input kap4
\\input kap5
\\input kap6
\\input kap7
\\input kap8
\\input kap9
\\input kap10
\enduser

Je-li editace textu stále ještě obtížná, je možné
zpracovávat jen některé soubory: stačí vložit {\tt \%} na
začátek každého řádku souboru, který má být
přeskočen.

Řídicí slovo {\tt \\input} také umožňuje používat
předdefinovaná makra. Je obtížné definovat, co to
vlastně makro je. Zhruba řečeno, je to soubor
definic, nastavení proměnných, instrukcí pro úpravu
tisku atp. Makro pro psaní protokolů {\tt
proto.tex} by mohlo nastavit
{\tt \\hsize}, {\tt \\vsize} a~další parametry a~také
zajistit vytištění data a~časových údajů. Jakmile by toto
bylo provedeno, každý protokol by mohl začínat řádkem
{\tt \\input proto}, aby byl vytištěn
v~jednotně užívaném
formátu.

\exercise Vytvořte
v~\TeX{}u vstupní soubor {\tt a.tex},
který bude načten
v~jiném souboru {\tt b.tex}. Zkuste
v~souboru
{\tt b.tex} načíst soubor {\tt a.tex} dvakrát pomocí
dvojnásobného použití řídicího slova {\tt \\input}.

\subsection{Větší makra}

Navrhování maker, která lze použít při vytváření mnoha
druhů dokumentů, je samozřejmě užitečné. Většina
institucí a~vysokých
škol má požadavky na zvláštní a~často komplikovaný formát
pro vytváření preprintů nebo doktorských prací apod.
Návrh kolekce maker, tj.~balíku
maker, která by splňovala všechny tyto požadavky, může
být poněkud časově náročný. Můžete ho pak ale použít třeba
i~s~jinými makry pomocí příkazu {\tt \\input}. Použití větších
balíků maker umožňuje \TeX{}  velmi snadným způsobem.

Balík maker lze uložit ve zvláštním tvaru, který \TeX{}
dokáže rychle přečíst. Jsou to tzv. {\it formátové soubory}
(format files), které mají extenzi {\tt fmt}
a~jejichž přesný tvar je jen technickou
záležitostí. Důležité je to, že umožňují, aby \TeX{} mohl
pracovat
s~mnoha předem definovanými řídicími sekvencemi. Vždyť
i~standardní \TeX{} používá formátový soubor, který
se nazývá {\tt plain.fmt}.

Velmi je rozšířen balík maker \LaTeX{}. Tento
balík umožňuje uživateli automaticky vytvořit
rejstřík, obsah a~seznam
literatury. Zároveň umožňuje vkládání některých
elementárních grafických obrazů jako jsou kružnice, ovály,
přímky a~šipky. \LaTeX{} také používá soubory stylů (style
formats)
k~nastavení zvláštních parametrů stránky.
K~dispozici je řada různých souborů stylů; některé časopisy
přijímají pro přímé
zpracování příspěvky na magnetických médiích, jsou-li
připraveny pomocí \LaTeX{}u a~doporučeného stylu.
Přejít od \TeX{}u
k~\LaTeX{}u není těžké.
K~dispozici je
{\bf \LaTeX{}}: A~document preparation
system.\footnote{$^1$}{Addison-Wesley Reading, Massachusetts,
1986,
ISBN 0-201-15790-X.}
Je to uživatelský manuál pro \LaTeX{}, který napsal
autor tohoto makra Leslie Lamport.

Americká matematická společnost používá pro vydávání svých
časopisů balík maker \AMSTeX{}. Snadno ho lze od této
společnosti získat a~zasílat
v~\AMSTeX{}u připravené
příspěvky do jejích časopisů na magnetických médiích.
Manuál pro psaní {\bf The Joy of \TeX{}} od Michaela Spivaka lze
získat také
u~Americké matematické společnosti.

Existují i~jiné balíky maker a~nepochybně budou vyvinuty
další. Obvykle nestojí mnoho a~za jistých okolností jsou
velmi efektivní. Sdružení uživatelů \TeX{}u (\TeX{} Users
Group) uveřejňuje ve svých publikacích informace
o~nových
balících maker.




\subsection{Vodorovné a~svislé linky}

Kreslení vodorovných a~svislých linek pomocí \TeX{}u je
snadné. Napíšeme-li
v~textu {\tt \\hrule}, potom se
stávající odstavec ukončí, nakreslí se vodorovná linka
s~běžně nastavenou délkou ({\tt hsize}) a~pak se pokračuje
novým odstavcem. Délku linky je možné nastavit,
např. pomocí {\tt \\hrule width 5 cm};
zvětšení mezer nad linkou nebo pod ní
lze zajistit pomocí {\tt \\vskip} nebo {\tt \\bigskip}. Např.
\toindex{vskip}
\toindex{hrule}
\toindex{hsize}
\beginuser
\\parindent = 0 pt \\parskip = 12 pt
Tento text je nad vodorovnou linkou (hrule)
\\bigskip
\\hrule width 3 in
a~toto je text pod linkou.
\enduser

\noindent dává

{
\parindent = 0 pt
Tento text je nad vodorovnou linkou (hrule)
\bigskip
\hrule width 3 in
a~toto je text pod linkou.
}

Tato linka má ve skutečnosti nejen délku tří palců, ale
současně i~výšku (výšku nad základní linkou, na kterou je
nastavena sazba) 0,4 bodu a~hloubku (pod základní linkou) 0
bodů. Každý
z~těchto parametrů lze nastavit
zvlášť. Změníme-li  čtvrtý řádek našeho příkladu takto:
{\tt \\hrule width 3 in height 2 pt depth 3 pt}, dostaneme

{
\parindent = 0 pt
Tento text je nad vodorovnou linkou (hrule)
\bigskip
\hrule width 3 in height 2 pt depth 3 pt
a~toto je text pod linkou.
}

Parametry {\tt width} (délka), {\tt height} (výška) a~{\tt
depth} (hloubka) lze vypsat
v~libovolném pořadí.

Svislou linku lze definovat zcela podobně jako vodorovnou linku
(zadáním parametrů {\tt width}, {\tt height} a~{\tt depth},
chcete-li). Avšak na rozdíl od vodorovné linky, svislá
linka nezačíná
v~novém odstavci. Implicitní nastavení šířky
je 0,4 bodu a~výška linky je stejná jako výška řádku, do
kterého se vysazuje text. Po zpracování textu
\beginuser
Tento text je před svislou linkou (vrule)
\\vrule\\
a~toto je až za ní.
\enduser

\noindent dostanete

Tento text je před svislou linkou (vrule)
\vrule\
a~toto je až za ní.

\exercise Vysázejte tři vodorovné linky, které jsou od sebe
vzdáleny 15~bodů, jsou 3~palce dlouhé a~jsou umístěny
jeden palec od levého okraje.

Ačkoliv si hrule (vodorovnou linku) a~vrule (svislou linku)
obvykle představujeme jako vodorovnou nebo svislou přímku,
není nutné ji používat
v~tomto smyslu. Například
\beginuser
\\noindent
%Name: \\vrule height .4pt depth 0 pt width 3 in
Jméno: \\vrule height .4pt depth 0 pt width 3 in
\enduser

\noindent dává

\noindent
Jméno: \vrule height .4pt depth 0 pt width 3 in

\exercise Vysázejte následující mřížku (každý čtvereček má
délku strany 1\,cm):
\medskip
\settabs \+ \hskip 1cm&\hskip 1 cm&\hskip 1 cm& \cr
\moveright 2 in
\vbox{
\hrule width 3 cm
\+  \vrule height 1 cm & \vrule height 1 cm & \vrule height 1 cm
  & \vrule height 1 cm \cr
\hrule width 3 cm
\+  \vrule height 1 cm & \vrule height 1 cm & \vrule height 1 cm
  & \vrule height 1 cm \cr
\hrule width 3 cm
\+  \vrule height 1 cm & \vrule height 1 cm & \vrule height 1 cm
  & \vrule height 1 cm \cr
\hrule width 3 cm
}





\subsection{Rámečky v~rámečku}

Jak jsme už viděli
v~diskusi
o~tvarech linek, svislé
a~vodorovné boxy\footnote{$^1$}{Omlouváme se Karlu
Palovi za zavedení těchto alternativních termínů; po
přečtení této sekce bude snad zřejmé, že je to téměř nutné.}
(vbox, hbox) jsou objekty, které mohou
být přeplněny nebo nenaplněny.
V~této sekci se budeme
zabývat boxy trochu podrobněji. Pomocí boxů lze text
umístit kdekoli na stránce.

Vodorovný box (hbox) se tvoří pomocí {\tt \\hbox\lb
$\ldots$\rb}. Jestliže to, co je mezi složenými závorkami,
bylo vloženo do vodorovného boxu, potom je to stmeleno
a~nelze to dále dělit (jinými slovy, vloží-li se
něco, co má být na jednom řádku, do vodorovného boxu,
bude to tvořit celek). Rozměry vodorovného boxu
lze předepsat. Např. {\tt \\hbox to 5 cm\lb obsah rámečku\rb}
dává box široký právě 5 cm a~obsahující text \uv{obsah
rámečku}. Tímto způsobem lze ale snadno vyrobit přeplněné
a~nenaplněné boxy. Nejsou-li však rozměry boxu zadány, je
hbox právě tak velký, aby se do něj jím
zarámovaný text vešel.
\toindex{hbox}

Svislé boxy (vbox) se tvoří podobně pomocí
{\tt \\vbox\lb $\ldots$\rb}. Tyto boxy jsou zajímavé
díky následující vlastnosti. Obsahuje-li vbox
hboxy, potom se vodorovné řadí jeden pod druhým
a~tvoří jediný celek. Podobně hbox může
obsahovat vboxy a~ty se potom umístí do řádku  ---
zarovnávají se podle základen.
Vezmeme tři hboxy a~vložíme je do vboxu:
\toindex{vbox}
\beginuser \obeyspaces
\\vbox\lb
\      \\hbox\lb{}Obsah rámečku č. 1\rb
\      \\hbox\lb{}Obsah rámečku č. 2\rb
\      \\hbox\lb{}Obsah rámečku č. 3\rb
\      \rb\enduser

\noindent (je vhodné si zvyknout tvořit vstupní text
v~co
nejpřehlednější formě). Dostaneme tak

\vskip \baselineskip
\vbox{
       \hbox{Obsah rámečku č. 1}
       \hbox{Obsah rámečku č. 2}
       \hbox{Obsah rámečku č. 3}
      }

\noindent Nyní vytvoříme další vbox:
\beginuser \obeyspaces
\\vbox\lb
\      \\hbox\lb{}Obsah rámečku č. 4\rb
\      \\hbox\lb{}Obsah rámečku č. 5\rb
\      \rb\enduser

\noindent Oba vboxy lze vložit do hboxu,
v~němž
budou vedle sebe. Dostaneme tak konstrukci:
\beginuser \obeyspaces
\\hbox\lb
\     \\vbox\lb
\           \\hbox\lb{}Obsah rámečku č. 1\rb
\           \\hbox\lb{}Obsah rámečku č. 2\rb
\           \\hbox\lb{}Obsah rámečku č. 3\rb
\           \rb
\     \\vbox\lb
\           \\hbox\lb{}Obsah rámečku č. 4\rb
\           \\hbox\lb{}Obsah rámečku č. 5\rb
\           \rb
\     \rb\enduser

\noindent Po zpracování \TeX em dostaneme
\vskip \baselineskip
\hbox{
     \vbox{
           \hbox{Obsah rámečku č. 1}
           \hbox{Obsah rámečku č. 2}
           \hbox{Obsah rámečku č. 3}
           }
     \vbox{
           \hbox{Obsah rámečku č. 4}
           \hbox{Obsah rámečku č. 5}
          }
     }

Všimněte si, že vboxy jsou opravdu zarovnány tak, aby
jejich základny byly na stejné lince. Mezi oběma
vboxy je jen jedna mezera. Mezeru lze zvětšit např.
o~1\,cm
vložením {\tt \\hskip 1 cm} mezi oba vboxy. Oba
boxy lze také zarovnat podle jejich horních stran a~to
tak, že řídicí slovo {\tt \\vbox} nahradíme řídicím slovem {\tt \\vtop}.
Po těchto dvou změnách obdržíme následující výsledek
\toindex{vtop}
\vskip \baselineskip
\hbox{
     \vtop{
           \hbox{Obsah rámečku č. 1}
           \hbox{Obsah rámečku č. 2}
           \hbox{Obsah rámečku č. 3}
           }
     \hskip 1 cm
     \vtop{
           \hbox{Obsah rámečku č. 4}
           \hbox{Obsah rámečku č. 5}
          }
     }


Vboxy, hboxy a~linky můžeme kombinovat tak,
abychom dostali zarámovaný text. Jak se to dělá? Jednou
z~možností je umístit text, který  má být zarámován, mezi svislé
linky, výsledek umístit do hboxu, umístit nad
něj i~pod něj vodorovnou linku a~to všechno vložit do
vboxu. Vypadá to takto:
\beginuser \obeyspaces
\\vbox \lb
\      \\hrule
\      \\hbox\lb\\vrule{} Text, který má být zarámován \\vrule \rb
\      \\hrule
\      \rb
\enduser

\noindent Po zpracování dostaneme
\vskip \baselineskip
\vbox{
      \hrule
      \hbox{\vrule{} Text, který má být zarámován \vrule}
      \hrule
     }

Dostali jsme sice zarámovaný text, ale zcela bez mezer
kolem a~to vypadá velmi křečovitě (\TeX{} ovšem
zplodil právě jen to, co jsme mu řekli). Situaci můžeme
zlepšit, vložíme-li {\tt \\strut} na začátek hboxu,
čímž se trochu zvětší. Tak dostaneme:

\vskip \baselineskip
\vbox{
      \hrule
      \hbox{\strut \vrule{} Text, který má být zarámován \vrule}
      \hrule
     }

\def\boxtext#1{%
\vbox{%
      \hrule
      \hbox{\strut \vrule{} #1 \vrule}%
      \hrule
     }%
}

\exercise Pomocí metody zarámování umístěte text doprostřed
boxu, který je široký přes celou stránku.

\exercise Vytvořte následující magický čtverec:

\nobreak\vskip\baselineskip
\moveright 2 in \vbox{\offinterlineskip
\hbox{\boxtext 6\boxtext 1\boxtext 8}
\hbox{\boxtext 7\boxtext 5\boxtext 3}
\hbox{\boxtext 2\boxtext 9\boxtext 4}
}

\def\boxtext#1 {%
\vbox{%
      \hrule
      \hbox{\strut \vrule #1\vrule}%
      \hrule
     }
}

\exercise Navrhněte makro
{\tt \\boxtext\#1\lb$\ldots$\rb}, které zarámuje
text mezi složenými závorkami. Vyzkoušejte
si své makro na větě
s~každým druhým slovem
zarámovaným:
\toindex{boxtext}
Nejsem \boxtext si  zcela \boxtext jist,
že \boxtext by tohle \boxtext chtěl někdo
\boxtext dělat , protože \boxtext nakonec se \boxtext
nedostane žádná \boxtext lahůdka.

Všimněte si, jak jsou
zarovnány základní linky řádků a~základny rámečků.

\def\boxtext#1 {%
\lower 3.5pt \hbox{%
    \vbox{%
         \hrule
         \hbox{\strut \vrule #1\vrule}%
         \hrule
        }
    }
}

Je docela snadné pohybovat rámečky na stránce nahoru, dolů, vlevo
a~vpravo.  Posunout vbox
o~jeden palec
vpravo lze pomocí {\tt \\moveright 1~in \\vbox\lb\dots\rb}.
K~posunutí vlevo se použije {\tt \\moveleft}. Podobně lze
posunout hbox nahoru nebo dolů pomocí
řídicích slov {\tt \\raise} a~{\tt
\\lower}.
\toindex{moveright}
\toindex{moveleft}
\toindex{raise}
\toindex{lower}

\exercise Makro {\tt \\boxtext}
z~předcházejícího cvičení
přepište tak, aby byl celý text zarovnán (implicitní
nastavení hloubky {\tt \\strut} je 3,5 bodu). Měli byste
dostat zhruba takovouto větu:

Nejsem \boxtext si  zcela \boxtext jist,
že \boxtext by tohle \boxtext chtěl někdo
\boxtext dělat, protože \boxtext nakonec se \boxtext
nedostane žádná \boxtext lahůdka.

\noindent Všimněte si, jak jsou
zarovnány základní linky řádků a~základny boxů.

Box lze vyplnit vodorovnými linkami nebo tečkami.
Základní myšlenka spočívá
v~použití řídicích slov {\tt \\hrulefill} nebo
{\tt \\dotfill}
v~boxu. Napišme do vstupního souboru

\beginuser
\\hbox to 4.5 in\lb Začínáme\\hrulefill 1\rb
\\hbox to 4.5 in\lb Všechny velké a~malé znaky\\hrulefill 9\rb
\\hbox to 4.5 in\lb Úprava věcí příštích\\hrulefill 17\rb
\\hbox to 4.5 in\lb Žádný strach z~matematiky!\\hrulefill 30\rb
\enduser

\noindent Po zpracování dostaneme

\vskip \baselineskip

\hbox to 4.5 in{Začínáme\hrulefill 1}
\hbox to 4.5 in{Všechny velké a~malé znaky\hrulefill 9}
\hbox to 4.5 in{Úprava věcí příštích\hrulefill 17}
\hbox to 4.5 in{Žádný strach z~matematiky!\hrulefill 30}

Zaměníme-li {\tt \\hrulefill} řídicím slovem {\tt
\\dotfill}, dostaneme

\vskip \baselineskip

\hbox to 4.5 in{Začínáme\dotfill 1}
\hbox to 4.5 in{Všechny velké a~malé znaky\dotfill 9}
\hbox to 4.5 in{Úprava věcí příštích\dotfill 17}
\hbox to 4.5 in{Žádný strach z~matematiky!\dotfill 30}

Nakonec ještě jednu poznámku: přečetli jste si úvodní text
o~používání \TeX u. Pro běžné použití to možná bude stačit,
ale zdaleka
o~něm nevíte vše. Tvorbou nových maker se \TeX\
učí dělat stále komplikovanější věci. Již dnes jsou
v~Praze,
Brně a~Bratislavě (ale i~leckde jinde) lidé, kteří se \TeX em intenzívně
zabývají. Najdete je vcelku snadno a~většina vám ráda pomůže,
budete-li mít nějaké problémy.
V~době dokončování překladu
této knížky se začali českoslovenští uživatelé \TeX
u~sdružovat při Jednotě československých matematiků a~fyziků.
Jak to dopadlo, je zřejmé z~přidané kapitoly~11.

% END of intro.ori


