diff options
Diffstat (limited to 'Master/texmf-dist/doc/cslatex/base/prvni.tex')
-rw-r--r-- | Master/texmf-dist/doc/cslatex/base/prvni.tex | 1554 |
1 files changed, 0 insertions, 1554 deletions
diff --git a/Master/texmf-dist/doc/cslatex/base/prvni.tex b/Master/texmf-dist/doc/cslatex/base/prvni.tex deleted file mode 100644 index fabbc439a20..00000000000 --- a/Master/texmf-dist/doc/cslatex/base/prvni.tex +++ /dev/null @@ -1,1554 +0,0 @@ - -% První setkání s TeXem -%%%%%%%%%%%%%%%%%%%%%%%% -% (C) 1999 Petr Olšák - -% format: csplain, kódování ISO-8859-2 - -% Tento dokument můžete vytisknout pro vlastní potřeby nebo jej -% elektronicky dále šířit v nezměněné podobě jako soubory prvni.tex, -% prvni.ps a prvni.pdf - -\chyph -\magnification\magstep1 -\advance\vsize by\baselineskip - -%% Varianta pro pdftex -\ifx\pdfoutput\undefined - \def\zalozka#1{} -\else - \def\zalozka#1{% - \advance\secnum by1 - \pdfdest num\secnum fitbh - {\let~=\space \def\TeX{TeX}% - \pdfoutline goto num\secnum count 0 {#1}}} - \pdfinfo{ - /Author (Petr Olsak) - /CreationDate (D:19990328) - /ModDate (D:19990328) - /Creator (TeX) - /Producer (pdfTeX) - /Title (Prvni setkani s TeXem) - /Subject (manual) - /Keywords (TeX) } - \pdfcatalog{/PageMode /UseOutlines} - \pdfcompresslevel=9 -\fi - -%% Vzhled dokumentu -\parindent=11pt -\lineskiplimit=-4pt -\emergencystretch=2em -\raggedbottom - -%% Deklarace registrů -\newcount\bibnum -\newcount\footnum -\newcount\secnum - -% Fonty -\input cpalatin -\font\tentt=cstt10 \hyphenchar\tentt=-1 -\font\cmit=csti10 -\font\mflogo=logo10 -\font\showtt=cstt9 -\font\tencsr=csr10 -\font\titulfont=\fontname\tenbf\space scaled\magstep2 -\font\bigfont=\fontname\tenbf\space scaled\magstep5 -\font\scriptm=\fontname\tenrm\space at7pt -\scriptfont0=\scriptm - -%% Základní makra -\def\sekce #1\par{\removelastskip\bigskip - \zalozka{#1} - \noindent{\titulfont #1}\par\nobreak\medskip} -\def\bod{\item{$\triangleright$}} -\def\bib{\parindent=22pt\global\advance\bibnum by1 - \par\hang\indent\llap{[\the\bibnum]\hskip11pt}\ignorespaces} - -%% Čárka místo tečky v matematice: -\mathcode`\.="013B -\def\doteq{\buildrel\hbox{.}\over=} - -%% Verbatim prostředí \begtt...\endtt, "...". -{\obeyspaces \gdef\activespace{\obeyspaces\let =\ }} -\def\setverb{\def\do##1{\catcode`##1=12}\dospecials} -\def\begtt{\medskip\hbox\bgroup\vrule\vbox\bgroup\hrule - \smallskip\bgroup \setverb \catcode`\"=12 \activespace - \baselineskip=.9\baselineskip - \def\par{\leavevmode\strut\endgraf} - \obeylines \startverb} -{\obeylines \catcode`\|=0 \catcode`\\=12 - |gdef|startverb#1^^M#2\endtt{% - |showtt#2|egroup|smallskip|hrule|egroup|vrule|egroup|medskip}} -\def\"{"} \catcode`\"=13 -\def"{\leavevmode\hbox\bgroup\let"=\egroup\setverb\obeyspaces\tt} - -%% Prostředí ukázek -\def\beguk{\medskip\hbox\bgroup\vrule\vbox\bgroup\hrule\medskip - \leftskip=\parindent \rightskip=\parindent \relax} -\def\enduk{\medskip\hrule\egroup\vrule\egroup\medskip} - -%% Tabulky -\def\begtable{$$\vbox\bgroup - \let\par=\cr \obeylines \halign\bgroup &##\hfil\qquad\cr} -\def\endtable{\egroup\egroup$$} -\abovedisplayskip=\abovedisplayshortskip -\def\tabline{\noalign{\smallskip\hrule}} -\def\.{\hphantom{0}} - -%% Výčtová prostředí -\def\begitems{\medskip\bgroup} -\def\enditems{\par\egroup\medskip} - -%% Loga -\def\LaTeX{L\kern-.36em\raise.5ex\hbox{\sevenrm A}\kern-.12em\TeX} -\def\CS{$\cal C\kern-.1667em\lower.5ex\hbox{$\cal S$}\kern-.075em $} -\def\mf{{\mflogo META}\-{\mflogo FONT}} -\def\AMS{$\cal A\kern-.166em\lower.5ex\hbox{$\cal M$}\kern-.075em S$} -\def\twoe{$2_{\textstyle\varepsilon}$} - -%% Poznámky pod čarou -\let\orifootnote=\footnote -\def\footnote{\global\advance\footnum by1\orifootnote{$^{\the\footnum}$}} - -%% Pomocné -\def\url#1{{\tt #1}} -\let\pp=\noindent -\let\,=\thinspace - -%% Titulní strana -\bgroup \nopagenumbers \pageno=0 -\null\vfill -{\baselineskip=40pt -\centerline{\bigfont První setkání s~\TeX{}em} -\centerline{\bigfont Petr Olšák} -} -\vskip 0pt plus2fill\break -\parindent=0pt \parskip=\bigskipamount -\null\vfil -Autor programu \TeX{} je profesor Donald Knuth. -\par -\TeX{} je ochranná známka American Mathematical Society. -\par -Ostatní v manuálu použité názvy programových produktů, firem -apod. mohou být ochrannými známkami nebo registrovanými ochrannými -známkami příslušných vlastníků. -\vfill -Copyright $\copyright$ RNDr. Petr Olšák, 1999 -\par -Tento text si můžete vytisknout pro vlastní potřeby. Je k~dispozici -společně s~balíkem \CS\TeX{} na -\url{ftp://math.feld.cvut.cz/pub/cstex/doc} -ve zdrojovém textu ({\tt prvni.tex}), PostScriptu ({\tt prvni.ps}) a ve -formátu PDF ({\tt prvni.pdf}). Můžete jej také distribuovat, ale pouze -v~nezměněné elektronické podobě. -\bigskip\break -\egroup -\pageno=1 - - - -\sekce Úvod -%%%%%%%%%%% - -Tento manuál je koncipován jako \uv{první seznámení s~programem \TeX{}% - \footnote{Název \TeX{} se čte \uv{tech}, nikoli \uv{teks}.} -na jeden večer}. Měl by umožnit začátečníkovi porozumět -základním principům \TeX{}u. Manuál obsahuje ukázku jednoduchého dokumentu, -který by si měl čtenář sám přepsat do svého počítače a na něm \TeX{} -vyzkoušet. Je to dobrý první krok do pestrého světa tohoto programu plného -zajímavých možností. Ukázka by měla též naznačit užitečnost dobrého návrhu -značkování vstupního textu tak, aby byl oddělen obsah dokumentu od jeho -formy. Předvedená ukázka také ilustruje základní principy rozšíření \TeX{}u -(plain nebo \LaTeX). Tím může uživatel hned na prvním dokumentu rozhodnout, -které \TeX{}ové rozšíření je bližší jeho srdci a podle toho vybrat další -literaturu pro doplňující studium. - -Předpokládáme, že čtenář má určité důvody proč použít \TeX{}, takže se zde -nebudeme zdržovat výčtem jeho výhod, rozepisovat obšírně jeho historii a -nebudeme polemizovat o~užitečnosti či neužitečnosti dávkového či -interaktivního systému na přípravu sazby. - - -\sekce \TeX\ a jeho okolí -%%%%%%%%%%%%%%%%%%%%%%%%% - -\TeX{} je formátor. Je to program, kterému předložíme vstupní text -dokumentu v~\uv{holé} textové podobě doplněný textovými -značkami, které vymezují strukturu dokumentu nebo dávají \TeX{}u pokyny -o~způsobu formátování dokumentu. Bývá obvyklé (ale není to nutné) -pojmenovat tento soubor s~použitím přípony {\tt.tex}, například -\hbox{\tt dokument.tex}. Na výstupu pak po zpracování \TeX{}em dostaneme -tzv.~{\tt dvi} soubor%, - \footnote{odvozeno z~anglického \uv{device independent}~-- na - zařízení nezávislý}, -který obsahuje definitivní informace o~použitých fontech a o~umístění -jednotlivých znaků na stránce. Tento soubor má název odvozený od názvu -vstupního souboru, ale má příponu {\tt.dvi}. Lze jej prostřednictvím -vhodného programu prohlédnout na obrazovce (vidíme, jak bude dokument -skutečně vypadat), nebo jej vytisknout na tiskárně. - -\TeX{} tedy čte na svém vstupu soubor s~dobře definovanou syntaxí jazyka -značek a na výstupu je rovněž soubor s~úplným popisem sazby. \TeX{} -jako takový je nezávislý na operačním systému. Vývoj samotného \TeX{}u -je zastaven, takže pro uživatele nehrozí nebezpečí vzniku dalších -nekompatibilních verzí. Další programy \uv{okolo \TeX{}u} tvoří -dohromady tzv.~implementaci \TeX{}u a umožní s~\TeX{}em rozumným -způsobem pracovat. - -Začínající uživatel se samozřejmě hlavně ptá po způsobu, jak může -v~konkrétním operačním systému s~konkrétní \TeX{}ovou implementací -s~tímto programem pracovat, jak jej spustit, jakými tlačítky se ovládá -textový editor, jaké nabídky jsou k~dispozici, co nad kterým obrázkem udělá -myš. Ptá se tedy po uživatelském rozhraní. Jednotlivé manuály o~\TeX{}u -tradičně odkazují na tzv.~\uv{místní příručku} (Local Guide), která by -měla toto rozhraní popisovat. Tato příručka je závislá na použitém -operačním systému, na použité implementaci \TeX{}u, na vybraném textovém -editoru a někdy též na administrátorovi systému, který konfiguruje některé -věci specificky pro větší pohodlí uživatelů. Ani v~tomto manuálu nejsou -uvedeny podrobnosti o~uživatelském rozhraní. - -V~graficky orientovaných operačních systémech je většinou možné otevřít -současně v~jednom okénku textový editor, ve kterém uživatel píše nebo -modifikuje vstupní text a ve vedlejším okénku prohlížeč výstupního -{\tt dvi} souboru. Po modifikaci vstupního textu a spuštění \TeX{}u -(nejlépe klávesovou zkratkou přímo z~editoru) se během pár sekund -projeví změna v~prohlížeči výsledného dokumentu. - -Textový editor, ve kterém připravujeme nebo modifikujeme vstupní texty -dokumentů, nesmí ukládat na disk žádné skryté formátovací informace -implementované jen pro tento editor (jako například změna fontu, měkké -konce řádku apod.). To dělají tzv.~textové procesory, na které v~případě -práce s~\TeX{}em většinou nepoužíváme. - -Zvyklosti ve značkování dokumentu jsou vesměs závislé na použitém {\it -formátu} \TeX{}u, který modifikuje jeho chování. Říkáme, že je -dokument napsán ve formátu {\it \LaTeX}, pokud je někde na začátku -vstupního textu dokumentu uvedena značka "\documentclass" nebo -"\documentstyle". Pokud tam tuto značku nenajdeme, můžeme -předpokládat, že je dokument napsán ve formátu {\it plain}, v~případě -česky psaného dokumentu pak ve formátu {\it csplain}. Tento manuál je -například napsán ve formátu csplain a je uložen v~souboru -{\tt prvni.tex}. Může se stát, že nějaký dokument je napsán ve formátu -\AMS\TeX{} nebo v~jiném méně používaném formátu. Tím se ale zde nebudeme -zabývat. Rozdíl mezi plainem a \LaTeX{}em a smysl použití formátů vyplyne -až z~dalšího textu. - -Následující tabulka předpokládá, že pracujeme -v~operačním systému, který umožňuje uživateli zadávat pokyny z~příkazového -řádku. Tím nevylučujeme, že nelze některé popisované činnosti implementovat -do nějaké uživatelské nabídky konkrétního uživatelského rozhraní. -Předpokládáme, že jsme připravili vstupní text dokumentu do souboru -{\tt dokument.tex}. - -\begtable - příkazový řádek & komentář - \tabline - "tex dokument" & anglický dokument, formát plain - "csplain dokument" & český nebo slovenský dokument, formát csplain - "latex dokument" & formát \LaTeX, jazyk je deklarován v~dokumentu - "cslatex dokument" & modifikovaný \LaTeX{} pro češtinu a slovenštinu -\endtable - -Všimneme si, že v~příkazovém řádku píšeme za jméno formátu název vstupního -souboru a že příponu {\tt.tex} nemusíme psát. Dobře instalovaná -implementace \TeX{}u by měla podle jména formátu spustit \TeX{} modifikovaný -právě tímto formátem. - -Pokud nemáte ve své implementaci \TeX{}u formát csplain, je to špatné -znamení. Nebudete totiž schopni zpracovat ani tento manuál ani -ukázku, která je v~něm obsažena. V~takovém případě doporučujeme -poohlédnout se po \CS\TeX{}u, který najdete například na -\url{http://math.feld.cvut.cz/olsak/cstex}. - -K~prohlédnutí dokumentu se používají různé programy (tzv.~dvi~prohlížeče). -Volba prohlížeče závisí na použitém operačním systému a na implementaci -\TeX{}u. V~UNIXu je nejčastější program {\tt xdvi} (stačí napsat -"xdvi dokument"). V~MS Windows se používá {\tt windvi}, {\tt dviwin} -nebo {\tt yapp}. V~DOSu se stekáme nejčastěji s~programem {\tt dviscr} -z~implementace em\TeX{}. Pro OS/2 má em\TeX{} \uv{okenní} variantu -prohlížeče {\tt dvipm}. - -Na PostScriptovou tiskárnu vytiskneme dokument programam {\tt dvips}, -příkazový řádek: "dvips -Ptiskarna dokument". Nemáme-li PostScriptovou -tiskárnu, většinou před ní předřadíme Ghostscript, což je volně -dostupný konvertor z~PostScriptu. Někdy lze též najít ovladač pro -tiskárnu přímo v~příslušné \TeX{}ové implementaci. - - -\sekce Jdeme na to -%%%%%%%%%%%%%%%%%% - -Nejprve zkusíme v~nějakém textovém editoru vytvořit soubor {\tt pokus.tex}, -který obsahuje zkušební větu: - -\begtt %-------------------------------------------------------------- -Ahoj světe! -\bye -\endtt %-------------------------------------------------------------- - -Pokud zpracujeme tento soubor \TeX{}em s~formátem csplain -(připomínáme, že je možné použít povel {\tt csplain pokus}), -dostaneme výstupní soubor {\tt pokus.dvi}. Navíc -\TeX{} uloží informaci o~zpracování do souboru {\tt pokus.log}. Výsledný -{\tt dvi} soubor si můžeme prohlédnout prohlížečem. Dostaneme -očekávaný výsledek: - -\beguk %------------------------------------------------------------- -\tencsr Ahoj světe! -\enduk %------------------------------------------------------------- - -\pp Přitom dole na stránce je ještě vytištěno číslo strany:~1. - -Pokud zkusíme tentýž soubor zpracovat \TeX{}em s~formátem plain -(příkazový řádek {\tt tex pokus}), výstup bude zmršený: \uv{Ahoj svte!}. -Vidíme, že textový soubor s~akcenty nelze jednoduše vnutit originálnímu -americkému \TeX{}u, ale místo formátu plain je potřeba použít modifikovaný -csplain. - -Kdybychom chtěli tentýž soubor zpracovat \TeX{}em s~formátem \LaTeX{} -(krátce říkáme, že soubor zpracováváme \LaTeX{}em), obdržíme chybové -hlášení: - -\begtt %-------------------------------------------------------------- -! LaTeX Error: Missing \begin{document}. - -See the LaTeX manual or LaTeX Companion for explanation. -Type H <return> for immediate help. - ... - -l.1 A - hoj světe! -? -\endtt %-------------------------------------------------------------- - -Vidíme tedy, že soubor není vhodně připraven ke zpracování \LaTeX{}em. -Chybí mu "\begin{document}". Později ukážeme, že mu chybí více věcí, ale -v~tuto chvíli raději zůstaneme u~csplainu. Komunikaci s~\TeX{}em při -chybovém hlášení ukončíme odesláním znaku {\tt x}. Chceme-li, aby -\TeX{} chybu ignoroval a pokračoval ve zpracování dokumentu, stačí na -otazník odpovědět \uv{Enter} (v~tomto příkladě, kdy dokument vhodný -pro csplain chceme zpracovat \LaTeX{}em, se pouze dočkáme další -zavlečené chyby). - -Zkusíme si nyní přepsat do počítače následující poněkud rozsáhlejší -dokument. Soubor nazveme třeba {\tt mujprvni.tex} a vytvoříme jej -libovolným textovým editorem. Pokud je čtenář od přírody \uv{lenivý}, může -se místo zdlouhavého přepisování pokusit najít text ukázky ve vstupním -souboru {\tt prvni.tex} tohoto manuálu a přenést jej do svého souboru -{\tt mujprvni.tex} jako blok v~textovém editoru. - -Možná nám může připadat část označená jako \uv{oblast definic} hodně -nepochopitelná, skoro jako porucha na lince. Přesto se zatím pokusíme -překonat odpor k~této poruše a důsledně všechny znaky přepíšeme. -\TeX{} se nám za to odvděčí silnými možnostmi, které budeme postupně -odhalovat. - -Nemusíme se obtěžovat přepisováním textů, schovaných za znakem "%", protože -tímto znakem je zahájen komentář, který končí koncem řádku a který je při -zpracování \TeX{}em ignorován. V~každém případě ale nevynechávejme prázdné -řádky v~ukázce a věnujme pozornost obsahu části označené jako \uv{vlastní -text}, kde jsou vyjmenovány základní jevy, se kterými se při pořizování -textů pro \TeX{} budeme neustále setkávat. - -\begtt %============================================================= -%%%%%%%% Zde začíná "oblast definic" pro tento dokument %%%%%%%%%%% - -\chyph % inicializace českého dělení slov v csplainu -\font\titulfont=\fontname\tenbf\space scaled \magstep2 % větší font -\def\bod{\item{$\bullet$}} % definice zkratky \bod pro výčet -\def\nadpis#1\par{ % definice nadpisu: - \removelastskip\bigskip % odmaže poslední vert. mezeru a přidá vlastní - \indent{\titulfont #1} % odsazený text nadpisu větším fontem - \par\nobreak\medskip} % konec řádku, zakázaný zlom, menší mezera -\let\itemskip=\medskip % kolem výčtu prvků bude menší mezera \medskip - -%%%%%%%% Zde začíná "vlastní text" dokumentu %%%%%%%%%%%%%%%%%%%%%%%% - -\nadpis Můj první dokument - -Zkouším napsat první text v~\TeX u. Tento odstavec musí být -tak dlouhý, aby bylo vidět, že se rozlomil aspoň na dva řádky. - -Jednotlivé odstavce oddělujeme od sebe prázdným řádkem. Prázdnými řádky -vůbec nešetříme, protože zvyšují přehlednost zdrojového textu. -Vyzkoušíme si nyní několik věcí. - -\itemskip -\bod Budeme používat české \uv{uvozovky}, které se liší od ``anglických''. - Uvědomíme si, že použití "těchto znaků" je úplně špatně! -\bod Rozlišujme mezi spojovníkem (je-li), pomlčkou ve větě~-- - a dlouhou pomlčkou---ta se používá v~anglických dokumentech. -\bod Předpokládáme, že každý dokáže rozeznat 1 (jedničku) od l - (písmene el) a 0 (nulu) od O~(písmene~O). -\bod Zkusíme přepnout do {\bf polotučného písma}, nebo do - {\it kurzívy}. Také vyzkoušíme {\tt strojopis}. -\bod Všimneme si, že ve slovech grafika, firma, apod. se písmena - f a i automaticky proměnila v~jediný znak fi (srovnáme to - s~nesprávným f\/i). -\bod Mezery mezi písmeny jsou automaticky vyrovnávány podle tvaru písmen. - Ve slově \uv{Tento} je například písmeno~e těsněji přisazeno - k~písmenu~T, aby se mezery mezi písmeny opticky jevily stejnoměrné. -\bod Vypravíme se na malou exkurzi do matematiky: $a^2 + b^2 = c^2$. - Zjistíme, že číslo -1 je zde napsáno špatně (prokletý spojovník), - zatímco správně má být $-1$. -\bod Protože \% uvozuje komentář a \$ přepíná do matematické sazby, - musíme před ně napsat zpětné lomítko, chceme-li ji dostat do dokumentu. -\itemskip - -\nadpis Závěr - -To by pro začátek stačilo. Příkazem {\tt\char`\\bye} ukončíme naše pokusy. -\bye -\endtt %============================================================= - -Po zpracování tohoto dokumentu formátem csplain si můžeme prohlédnout -prohlížečem {\tt dvi} souboru následující výsledek: - -\beguk %============================================================= -\parindent=20truept -\baselineskip=12truept -\font\tenbf=csbx10 at10truept \font\tenit=csti10 at10truept -\font\tentt=cstt10 at10truept -\font\tenrm=csr10 at10truept \tenrm -\font\symbol=cmsy10 at10truept -\font\mmi=cmmi10 at10truept \font\sevenrm=csr7 at7truept -\textfont0=\tenrm \scriptfont0=\sevenrm -\textfont1=\mmi \textfont2=\symbol -\font\titulfont=csbx10 scaled\magstep1 % větší font -\def\bod{\item{$\bullet$}} % definice zkratky \bod pro výčet -\def\nadpis#1\par{ % definice nadpisu: - \removelastskip\bigskip % odmaže poslední vert. mezeru a přidá vlastní - \indent{\titulfont #1} % odsazený text nadpisu větším fontem - \par\nobreak\medskip} % konec řádku, zakázaný zlom, menší mezera -\bigskipamount=12truept \medskipamount=6truept -\let\itemskip=\medskip % kolem výčtu prvků bude menší mezera \medskip - -\nadpis Můj první dokument - -Zkouším napsat první text v~\TeX u. Tento odstavec musí být -tak dlouhý, aby bylo vidět, že se rozlomil aspoň na dva řádky. - -Jednotlivé odstavce oddělujeme od sebe prázdným řádkem. Prázdnými řádky -vůbec nešetříme, protože zvyšují přehlednost zdrojového textu. -Vyzkoušíme si nyní několik věcí. - -\itemskip -\bod Budeme používat české \uv{uvozovky}, které se liší od ``anglických''. - Uvědomíme si, že použití \"těchto znaků\" je úplně špatně! -\bod Rozlišujme mezi spojovníkem (je-li), pomlčkou ve větě~-- - a dlouhou pomlčkou---ta se používá v~anglických dokumentech. -\bod Předpokládáme, že každý dokáže rozeznat 1 (jedničku) od l - (písmene el) a 0 (nulu) od O~(písmene~O). -\bod Zkusíme přepnout do {\bf polotučného písma}, nebo do - {\it kurzívy}. Také vyzkoušíme {\tt strojopis}. -\bod Všimneme si, že ve slovech grafika, firma, apod. se písmena - f a i automaticky proměnila v~jediný znak fi (srovnáme to - s~nesprávným f\/i). -\bod Mezery mezi písmeny jsou automaticky vyrovnávány podle tvaru písmen. - Ve slově \uv{Tento} je například písmeno~e těsněji přisazeno - k~písmenu~T, aby se mezery mezi písmeny opticky jevily stejnoměrné. -\bod Vypravíme se na malou exkurzi do matematiky: $a^2 + b^2 = c^2$. - Zjistíme, že číslo -1 je zde napsáno špatně (prokletý spojovník), - zatímco správně má být $-1$. -\bod Protože \% uvozuje komentář a \$ přepíná do matematické sazby, - musíme před ně napsat zpětné lomítko, chceme-li ji dostat do dokumentu. -\itemskip - -\nadpis Závěr - -To by pro začátek stačilo. Příkazem {\tt\char`\\bye} ukončíme naše pokusy. -\enduk %============================================================= - -Všimněme si, že v~příkladu je důsledně oddělena forma od obsahu dokumentu. -V~části označené \uv{vlastní text} jsou použity značky "\nadpis", -"\bod" a "\itemskip", které ohraničují logické části dokumentu (vymezení -nadpisu, uvedení další položky ve výčtu prvků, obklopení skupiny výčtu prvků) -a nepopisují žádné konkrétní formátovací informace (volba fontu, velikost -fontu, velikost mezer nad a pod nadpisem, tvar puntíku ve výčtu prvků -apod.). - -Značky vymezující strukturu dokumentu jsou definovány v~části \uv{oblast -definic}. Zde je řečeno, jaký bude mít nadpis font, jak bude -v~textu umístěn a jak bude vypadat formátování výčtu prvků. Podrobnější -rozbor těchto definic uvedeme za chvíli. - -Toto oddělení formy od obsahu se v~mnoha případech začátečníkům nedaří. -Přímo v~textu jejich dokumentů se vyskytují značky jako "\vskip12mm" -(vertikální mezera 12\,mm), "\vfill\break" (vynucené ukončení strany) a mnoho -dalších nešvarů. My se pokusíme hned z~počátku se takovým věcem pokud možno -vyhnout. V~sekci \uv{změna vzhledu dokumentu} uvidíme, že se nám to bohatě -vyplatí. - - -\sekce Vysvětlení použitých značek v~příkladu -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -Jednotlivé značky, které řídí formátování a vymezují strukturu dokumentu -jsou vesměs ve tvaru "\slovo". Tyto značky se nazývají -{\it řídicí sekvence\/} a někdy též budeme hovořit o~{\it příkazech}, -protože jimi přikazujeme, aby \TeX{} něco vykonal. - -Řídicí sekvence v~příkladu rozdělíme na dvě skupiny. 1.~ty, co jsou -definovány v~samotném \TeX{}u nebo v~použitém formátu (v~našem případě -ve formátu {\tt csplain}). 2.~řídicí sekvence, které jsme definovali sami. - -Začneme rozborem druhé skupiny řídicích sekvencí: - -\begitems -\bod "\nadpis" je sekvence, která očekává za sebou text nadpisu a pak - prázdný řádek. -\bod "\titulfont" je přepínač pro větší velikost fontu pro nadpis. - Je definován na řádku začínajícím příkazem "\font" a použit v~definici - řídicí sekvence "\nadpis". -\bod "\bod" je sekvence, která uvozuje položku ve výčtu prvků. Promění se - v~nějakou grafickou realizaci zarážky (zde puntík) a způsobí odsazení - textu položky. -\bod "\itemskip" vytvoří vertikální mezeru, která oddělí výčet prvků - od ostatního textu. Použije se na začátku i na konci výčtu. -\enditems - -Ostatní řídicí sekvence jsou definovány v~použitém formátu nebo přímo -zabudovány v~\TeX{}u. Uživatel se s~nimi bude postupně seznamovat -studiem vhodné literatury. Zde uvedeme velmi stručně jen ty nejdůležitější -řídicí sekvence, abychom usnadnili pochopení příkladu. - -\begitems -\bod "\chyph". Tato řídicí sekvence inicializuje české vzory dělení slov a - je definována pouze ve formátu csplain. V~případě českých textů - bychom ji nikdy neměli vynechat! Analogicky "\shyph" inicializuje - slovenské vzory dělení slov. Bez těchto příkazů \TeX{} pracuje - implicitně s~anglickými vzory dělení. -\bod "\font" zavede z~instalace \TeX{}u do dokumentu další font. - Struktura parametrů příkazu bude vysvětlena v~sekci o~fontech. -\bod "\def" definuje novou řídicí sekvenci (zde "\bod" a "\nadpis"). - Za řídicí sekvencí může následovat formální popis parametrů nové - sekvence a pak následuje ve složených závorkách tělo definice. - V~ní je popsáno, co se při použití nové řídicí sekvence má vykonat. -\bod "\item" zahájí výčtovou položku (odsazením textu) a převezme - za sebou ve složených závorkách parametr, který popisuje vzhled puntíku. -\bod "\bullet" vytvoří v~matematickém módu černý puntík: $\bullet$. -\bod "\bigskip" vytvoří vertikální mezeru velikosti jednoho řádku a - "\medskip" velikosti poloviny řádku. "\indent" odsadí další text - o~velikost odstavcové zarážky. -\bod Řídicí sekvence "\par" je explicitní ukončení odstavce. \TeX{} ji - interně vytváří v~místě každého prázdného řádku. Ve formálním popisu - parametru za "\def\nadpis" má ale "\par" pouze vymezovací - účinek. Formální popis parametru v~našem příkladě čteme takto: - nově definovaná řídicí sekvence "\nadpis" převezme za sebou text - až po první výskyt "\par" (tedy až po první výskyt prázdného řádku) - a uloží jej do \uv{proměnné} s~označením "#1". -\bod "\let" čteme česky nechť. Tento příkaz ztotožní význam nové - řídicí sekvence (v~našem příkladě "\itemskip") s~předlohou (v~tomto - příkladě "\medskip"). -\enditems - -V~naší ukázce jsme použili též některé speciální \TeX{}ovské znaky. -Vysvětlíme si nyní stručně jejich význam. - -\begitems -\bod Znak "~" znamená nedělitelnou mezeru. Je zde použita za neslabičnými - předložkami a před jednopísmennými ukázkami, aby se v~těchto místech - nerozdělil řádek. Při pořizování textu nemusíme psát za neslabičnými - předložkami vlnku \uv{ručně}. Vlnky tam lze doplnit později jednoduchými - programy, které bývají součástí \TeX{}ovských instalací. -\bod Znaky "{ }" mají v~\TeX{}u tři mírně odlišné významy. -\itemitem{1.} Obklopují těla definic za příkazem "\def", jak již bylo řečeno. -\itemitem{2.} Obklopují parametry některých řídicích sekvencí (viz - například text {\tt uvozovky}, který je parametrem řídicí sekvence - "\uv", nebo text "$\bullet$", který je parametrem řídicí sekvence - "\item". -\itemitem{3.} Samotné znaky "{ }" vymezují jisté skupiny, ve kterých je - veškeré přiřazení a nastavení lokální. Skupiny se často používají pro - vymezení platnosti přepínačů písma (viz "\bf", "\it", "\tt" a - "\titulfont"). -\item{} Závorky "{ }" musí vzájemně párovat, což je důležité zejména ve - vymezovacích významech~(ad~1 a~2). Proto třeba tělo definice - "\bod" obsahuje text "\item{$\bullet$}" a je ukončeno až druhou - závorkou~"}". -\bod Znak "%" uvozuje komentář až do konce řádku. -\bod Znak "$" přepíná do {\it matematického módu} a zpět. V matematickém - módu \TeX{} sestavuje sazbu poněkud odlišným způsobem (všimneme - si, že například proměnné $a$, $b$ jsou v matematickém módu - automaticky sázeny kurzívou). -\bod Znak "^" v~matematickém módu uvozuje horní index (exponent). -\enditems - -\sekce Změna vzhledu dokumentu -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -Předvedeme, v~čem spočívá výhoda oddělení obsahu -dokumentu od formy. Předpokládejme, že nám nějaký zkušenější kolega -pomůže s~přípravou definic pro náš dokument. Předpokládejme dále, že onen -kolega má na věc poněkud jiný typografický názor a začne věci předělávat. -V~editoru modifikuje definice a ve vedlejším okénku v~prohlížeči se průběžně -mění náš první dokument skoro k~nepoznání. Přitom kolega -{\it vůbec nemusí\/} zasáhnout do vlastního textu dokumentu. - -Především se mu nelíbí rodina fontů Computer Modern, která je -v~\TeX{}u implicitně nastavena. Mnoho instalací \TeX{}u obsahuje -nástroje pro práci s~dalšími, zejména PostScriptovými, fonty. Máme-li -takovou instalaci, můžeme napsat na začátek dokumentu třeba -"\input cbookman" a máme celý dokument v~rodině Bookman. Příkaz "\input" -zavádí do dokumentu externí soubor definic, zde soubor s~názvem {\tt -cbookman.tex}. Tento soubor obsahuje příkazy "\font" na zavedení -skupiny fontů Bookman a nastaví je jako implicitní. - -Kolega se dále rozhodl vkládat mezi každý odstavec drobnou vertikální mezeru -a místo puntíků pro výčty chce použít čtverečky, které ve větší velikosti -zařadí i do nadpisů. Konečně velikost fontu pro nadpis se mu zdá příliš -velká (místo "\magstep2" v~řádku "\font" použije \uv{menší} "\magstep1"). -Výsledek jeho snažení v~\uv{oblasti definic} dopadne třeba takto: - -\begtt %============================================================= -\chyph % inicializace českého dělení slov v csplainu -\magnification\magstep1 % celý dokument bude 1,2 krát větší -\input cbookman \setsimplemath % použité písmo: Bookman i v matematice -\font\titulfont=\fontname\tenbf\space scaled \magstep1 % větší font -\newdimen\indskip \indskip=15pt % výčty budou odsazeny 15pt -\def\ctverecek#1{\noindent % čtvereček proměnné velikosti v místě \indskip - \hbox to\indskip{\vrule height#1pt depth0pt width#1pt\hss}} -\def\bod{\par\hangindent=\indskip \ctverecek{4}} % definice zkratky \bod -\def\nadpis#1\par{ % definice nadpisu: - \removelastskip\bigskip % odmaže poslední vert.mezeru a přidá vlastní - \ctverecek{7}{\titulfont #1} % nadpis odsazený čtverečkem - \par\nobreak} % konec řádku, zakázaný zlom, žádná mezera -\parskip=\medskipamount % mezi odstavci bude mezera jako \medskip -\parindent=0pt % odstavce nebudou odsazeny zarážkou -\let\itemskip=\relax % žádné další mezery mezi výčty -\endtt %============================================================= - -Náš dokument vypadá pak následovně: - -\beguk %============================================================= -\input cbookman % použité písmo: Bookman -\font\mmi=\fontname\tenit -\font\sevenrm=\fontname\tenrm\space at 7pt -\textfont0=\tenrm \scriptfont0=\sevenrm -\textfont1=\mmi - -\font\titulfont=\fontname\tenbf\space scaled \magstep1 % větší font -\newdimen\indskip \indskip=15pt % výčty budou odsazeny 15pt -\def\ctverecek#1{\noindent % čtvereček o proměnné velikosti v místě \indskip - \hbox to\indskip{\vrule height#1pt depth0pt width#1pt\hss}} -\def\bod{\par\hangindent=\indskip \ctverecek{4}} % definice zkratky \bod -\def\nadpis#1\par{ % definice nadpisu: - \removelastskip\bigskip % odmaže poslední vert. mezeru a přidá vlastní - \ctverecek{7}{\titulfont #1} % nadpis odsazený čtverečkem - \par\nobreak} % konec řádku, zakázaný zlom, žádná mezera -\parskip=\medskipamount % mezi odstavci bude mezera jako \medskip -\parindent=0pt % odstavce nebudou odsazeny zarážkou -\let\itemskip=\relax % žádné další mezery mezi výčty - -\nadpis Můj první dokument - -Zkouším napsat první text v~\TeX u. Tento odstavec musí být -tak dlouhý, aby bylo vidět, že se rozlomil aspoň na dva řádky. - -Jednotlivé odstavce oddělujeme od sebe prázdným řádkem. Prázdnými řádky -vůbec nešetříme, protože zvyšují přehlednost zdrojového textu. -Vyzkoušíme si nyní několik věcí. - -\itemskip -\bod Budeme používat české \uv{uvozovky}, které se liší od ``anglických''. - Uvědomíme si, že použití \"těchto znaků\" je úplně špatně! -\bod Rozlišujme mezi spojovníkem (je-li), pomlčkou ve větě~-- - a dlouhou pomlčkou---ta se používá v~anglických dokumentech. -\bod Předpokládáme, že každý dokáže rozeznat 1 (jedničku) od l - (písmene el) a 0 (nulu) od O~(písmene~O). -\bod Zkusíme přepnout do {\bf polotučného písma}, nebo do - {\it kurzívy}. Také vyzkoušíme {\tt strojopis}. -\bod Všimneme si, že ve slovech grafika, firma, apod. se písmena - f a i automaticky proměnila v~jediný znak fi (srovnáme to - s~nesprávným f\/i). -\bod Mezery mezi písmeny jsou automaticky vyrovnávány podle tvaru písmen. - Ve slově \uv{Tento} je například písmeno~e těsněji přisazeno - k~písmenu~T, aby se mezery mezi písmeny opticky jevily stejnoměrné. -\bod Vypravíme se na malou exkurzi do matematiky: $a^2 + b^2 = c^2$. - Zjistíme, že číslo -1 je zde napsáno špatně (prokletý spojovník), - zatímco správně má být $-1$. -\bod Protože \% uvozuje komentář a \$ přepíná do matematické sazby, - musíme před ně napsat zpětné lomítko, chceme-li ji dostat do dokumentu. -\itemskip - -\nadpis Závěr - -To by pro začátek stačilo. Příkazem {\tt\char`\\bye} ukončíme naše pokusy. -\enduk %============================================================== - -Kdyby náš kolega chtěl, implementoval by třeba automatické číslování -položek, automatické číslování nadpisů, generování obsahu a další věci. -Vysvětlení nových řídicích sekvencí, které kolega použil, bohužel -překračuje rámec tohoto úvodního dokumentu. - -Definice lze umístit do jiného souboru než vlastní text dokumentu. -Na začátku dokumentu pak soubor definic načteme příkazem "\input". -Nebo naopak, hlavní bude soubor definic, ze kterého se příkazem "\input" -postupně načítají jednotlivé kapitoly rozsáhlejšího díla. - - -\sekce Stojíme na křižovatce -%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -V~předchozím příkladě jsme ilustrovali důležitou vlastnost \TeX{}u~-- -schopnost měnit vzhled dokumentu jen výměnou některých definic. Kromě toho -ale tyto definice také musejí navazovat na úmluvu, jakými značkami bude -autor vymezovat strukturu svého dokumentu. Kdyby autor použil místo značky -"\nadpis" značku "\section", \TeX{} by nám při zpracování dokumentu vynadal: - -\begtt %-------------------------------------------------------------- -! Undefined control sequence. -l.14 \section - Můj první dokument -? -\endtt %-------------------------------------------------------------- - -\pp tedy: nedefinovaná řídicí sekvence. Odpovíme-li na otazník pouhým -stiskem klávesy Enter, \TeX{} tuto sekvenci zcela ignoruje a pracuje dál. -Žádného zvýraznění nadpisu bychom se nedočkali. Je tedy vidět, -že je hodně důležité ujasnit si, jaké značkování struktury dokumentu -použijeme. - -V~této souvislosti si musíme odpovědět jednu důležitou otázku. Chceme se -naučit jazyk definic \TeX{}u na takové úrovni, jako náš imaginární kolega -z~předchozího příkladu? Budeme raději sami kontrolovat každý detail vzhledu -dokumentu prostřednictvím vlastních definic, než abychom přebírali hotová -řešení odjinud? Pokud na tyto otázky odpovíme \uv{ano}, pak je pro nás -výhodné použít formát plain (pro české a slovenské dokumenty jen mírně -modifikovaný formát csplain), který definuje jen minimum základních -řídicích sekvencí. O~další řídicí sekvence stejně jako o~modifikaci -vzhledu dokumentu podle našich představ se musíme postarat sami. -V~takovém případě si můžeme sami rozhodnout, jaké značky pro vymezení -struktury dokumentu použijeme, protože si pro ně nakonec uděláme vlastní -definice. - -Na druhé straně, pokud rádi přebíráme hotová řešení, pokud nechceme -zbytečně pronikat do problematiky jazyka definic \TeX{}u, pokud se -spokojíme s~už připravenými šablonami vzhledu dokumentu (tzv. styly), -pokud jsme ochotni se místo tří set základních příkazů \TeX{}u učit -zhruba tisíc uživatelských značek pro \LaTeX, bude pro nás -výhodné použít raději formát \LaTeX{}. - -\LaTeX{} doporučuje určité značkování struktury dokumentu. Například se -předpokládá členění na kapitoly (značka "\chapter") a na sekce (značka -"\section"). Každý dokument by měl začít záhlavím uvozeným sekvencí -"\documentclass" (u~staré verze \LaTeX{}u se můžeme setkat ještě se -sekvencí "\documentstyle"). Parametrem této sekvence by měl být název -základního stylového souboru (souboru definic upravujících vzhled -dokumentu). Nejčastěji bývá tímto parametrem "book" (formát knihy) -nebo "article" (formát článku). Doplňkové stylové soubory se načítají pomocí -sekvence "\usepackage". Vlastní text dokumentu musí být uzavřen mezi -značkami "\begin{document}" a "\end{document}". Často se vyskytují další -značky "\begin" a "\end" vymezující v~\LaTeX{}u jistá prostředí (například -prostředí pro výčtové položky). - -Vraťme se k~našemu příkladu a přepišme jej do značkování podle \LaTeX{}u. - -\begtt %============================================================= -\documentclass{article} % základní styl bude "odborný článek" -\usepackage{czech} % doplňkový soubor definic pro český jazyk -\begin{document} % povinné - -\section{Můj první dokument} - -Zkouším napsat první text v~\TeX u. Tento odstavec musí být -tak dlouhý, aby bylo vidět, že se rozlomil aspoň na dva řádky. - -Jednotlivé odstavce oddělujeme od sebe prázdným řádkem. Prázdnými řádky -vůbec nešetříme, protože zvyšují přehlednost zdrojového textu. -Vyzkoušíme si nyní několik věcí. - -\begin{itemize} -\item Budeme používat české \uv{uvozovky}, které se liší od ``anglických''. - Uvědomíme si, že použití "těchto znaků" je úplně špatně! -\item Rozlišujme mezi spojovníkem (je-li), pomlčkou ve větě~-- - a dlouhou pomlčkou---ta se používá v~anglických dokumentech. -\item Předpokládáme, že každý dokáže rozeznat 1 (jedničku) od l - (písmene el) a 0 (nulu) od O~(písmene~O). -\item Zkusíme přepnout do {\bf polotučného písma}, nebo do - {\it kurzívy}. Také vyzkoušíme {\tt strojopis}. -\item Všimneme si, že ve slovech grafika, firma, apod. se písmena - f a i automaticky proměnila v~jediný znak fi (srovnáme to - s~nesprávným f\/i). -\item Mezery mezi písmeny jsou automaticky vyrovnávány podle tvaru písmen. - Ve slově \uv{Tento} je například písmeno~e těsněji přisazeno - k~písmenu~T, aby se mezery mezi písmeny opticky jevily stejnoměrné. -\item Vypravíme se na malou exkurzi do matematiky: $a^2 + b^2 = c^2$. - Zjistíme, že číslo -1 je zde napsáno špatně (prokletý spojovník), - zatímco správně má být $-1$. -\item Protože \% uvozuje komentář a \$ přepíná do matematické sazby, - musíme před ně napsat zpětné lomítko, chceme-li ji dostat do dokumentu. -\end{itemize} - -\section{Závěr} - -To by pro začátek stačilo. Příkazem \verb|\bye| ukončíme naše pokusy. -\end{document} -\endtt %-------------------------------------------------------------- - -Poznamenejme, že zavedení doplňkového stylu {\tt czech} způsobí aktivaci -českých vzorů dělení slov a písma s~českými znaky. Bez použití tohoto stylu -pracuje \LaTeX{} implicitně s~anglickými vzory dělení slov a s~písmy, která -neobsahují háčkovaná a čárkovaná písmena. - -Upozorňujeme, že v~současné době je \LaTeX{}ů několik druhů. Už -zmíněný \uv{starý \LaTeX} (tzv.~verze 2.09), ve kterém se -struktura záhlaví dokumentu mírně lišila. Dále je pro potřeby -českých dokumentů nutné rozlišovat mezi tzv.~\uv{babelizovaným -\LaTeX{}em} a \CS\LaTeX{}em. Babelizovaný \LaTeX{} implementuje -český a slovenský jazyk pomocí balíku maker \uv{Babel}, který k~nám -byl importován ze zahraničí. Babelizovaný \LaTeX{} implicitně -neobsahuje české ani slovenské vzory dělení slov a při instalaci je -potřeba tyto vzory dělení do něj zavést. Na druhé straně \CS\LaTeX{} je -modifikace \LaTeX{}u pro potřeby českých a slovenských -dokumentů a vzory dělení češtiny i slovenštiny jsou v~něm implicitně -obsaženy. Výše uvedená ukázka je použitelná pro \CS\LaTeX. V~případě -dobře instalovaného babelizovaného \LaTeX{}u by záhlaví dokumentu -mohlo vypadat asi takto: - -\begtt -\documentclass{article} % základní styl bude "odborný článek" -\usepackage[cp1250]{inputenc} % je nutno specifikovat kódování dokumentu -\usepackage[T1]{fontenc} % požadujeme LaTeXovské fonty s akcenty -\usepackage[czech]{babel} % voláme styl czech z Babelu -\begin{document} -\endtt - -Výsledek po zpracování našeho dokumentu \LaTeX{}em v~tomto manuálu -pro stručnost neuvádíme. Kdo chce, může si sám \LaTeX{} -vyzkoušet. Nelíbí se nám, že za čísly v~nadpisech nejsou tečky? -Zavedeme do dokumentu prostřednictvím "\usepackage" další doplňkový -styl, který toto výchozí chování základního stylu {\tt article} -upraví. Nelíbí se nám, že jsou mezi jednotlivými položkami ve výčtu -velké mezery a položky jsou až příliš odsazeny? Použijeme v~dokumentu -další doplňkový styl. Nelíbí se nám, že je použito písmo Computer -Modern? Napišme třeba "\usepackage{times}". - -Otázka ale je, kdo pro nás tyto doplňkové styly (neboli doplňující sady -definic pro \TeX) bude připravovat. Velké množství stylů na všechno možné -lze nalézt ve veřejných archivech \TeX{}ovského softwaru. \LaTeX{} nám tedy -při jednoduchých šablonovitých požadavcích na vzhled dokumentu umožňuje -zůstat v~roli autora, který pořizuje text. Nemusíme umět poměrně složitý -jazyk definic \TeX{}u. - -Pokud nám žádná z~možností nabízených stylů nevyhovuje, musíme se pokusit -tyto styly modifikovat podle své potřeby. To ale může být už hodně -komplikované. Záleží znovu na nás, zda rádi modifikujeme zdrojové kódy -cizích programů nebo si raději napíšeme programy vlastní. Pokud píšeme -raději programy vlastní, asi nám bude spíše vyhovovat jednodušší výchozí -formát plain (csplain). - -Jestliže jsme se rozhodli pracovat raději v~plainu, pak lze k~dalšímu -studiu doporučit následující literaturu: - -\begitems -\bib Michael Doob. {\it Jemný úvod do \TeX{}u}. Třetí vydání českého - překladu, \CS{}TUG 1993. Knížka je rovněž volně k~dispozici ve - zdrojových textech jako {\tt jemny.tex} v~archivu - {\tt ftp://math.feld.cvut.cz/pub/cstex/doc/jemny.tar.gz}. - Anglický originál je volně šířen jako {\tt gentle.tex}. -\bib Petr Olšák. {\it \TeX{}book naruby}. Konvoj 1997. Celý text knihy je - volně k~dispozici ve formátu {\tt pdf} - na \url{http://math.feld.cvut.cz/olsak/tbn.html}. -\enditems - -Vyhovuje-li nám více \LaTeX, pak je možné sáhnout po těchto manuálech: - -\begitems -\bib Jiří Rybička. {\it \LaTeX{} pro začátečníky}. Druhé, upravené vydání, - Konvoj 1999. -\bib Tobias Oetiker. {\it Ne příliš stručný úvod do systému - \LaTeX{} \twoe}. Text je šířen volně včetně zdrojových textů a je - přeložen do mnoha jazyků. Do češtiny přeložil Michal Kočer. - {\tt ftp://math.feld.cvut.cz/pub/cstex/doc/lshort2e.tar.gz} -\bib Leslie Lamport. {\it\LaTeX---A Document Preparation System---User's - Guide and Reference Manual}. Ad\-di\-son-Wes\-ley, Reading, MA, - USA, 2nd ed. 1994. -\bib Michel Goossens, Frank Mittelbach, Alexander Samarin. - {\it The \LaTeX{} Companion}. Druhé vydání, Addisson Wesley 1994. -\bib Michel Goossens, Sebastian Rahtz, Frank Mittelbach. - {\it The \LaTeX{} Graphics Companion: Illustrating Documents with - \TeX{} and PostScript}. Addisson Wesley 1997. -\enditems - -Pokud budeme používat \LaTeX{} a budeme chtít rozumět použitým stylovým -souborům, můžeme použít knihu [2]. Popisuje totiž vnitřní algoritmy -\TeX{}u, což jsou informace, které využijeme jak v~plainu tak v~\LaTeX{}u. - -Pro úplnost ještě citujme dva tituly. První z~nich je základní biblí -k~\TeX{}u od samotného autora \TeX{}u (česká alternativa [2] ji poměrně -dobře nahrazuje) a druhý titul obsahuje informace o~\TeX{}ových -souvislostech, tj. popis spolupracujících programů v~běžných distribucích, -implementace fontů, vkládání obrázků apod. - -\begitems -\bib Donald E. Knuth. {\it The \TeX{}book}. Mnohonásobné vydání. Addison - Wesley, 1986--{\tt*}. Díl~A~z~pětidílné monografie k~\TeX{}u a \mf{}u - \uv{Computers \& Typesetting}. -\bib Petr Olšák. {\it Typografický systém \TeX}. \CS{}TUG 1995. -\enditems - -Další text v~tomto manuálu se věnuje základům \TeX{}u, které bývají -shodné při použití většiny formátů. Ukázky budeme pro jednoduchost -nadále zkoušet ve formátu csplain, protože jinak bychom museli kolem -vlastního textu ukázky přidat zmíněné \uv{obkladové řádky} závislé na -použitém \uv{druhu} \LaTeX{}u. - - -\sekce Technické pozadí formátů -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -V~předchozím textu jsme na mnoha místech hovořili o~formátech \TeX{}u -(plain, \LaTeX{}, csplain), ale zatím jsme pořádně neřekli, co to je. - -Formát je binární soubor (v~\TeX{}ové implementaci má příponu {\tt.fmt}), -který zahrnuje: - -\begitems -\bod výchozí sadu definic, která rozšiřuje vestavěné řídicí sekvence - o~další, pro uživatele většinou snadněji použitelné, -\bod výchozí nastavení vnitřních parametrů \TeX{}u (například šířka - odstavce nebo velikost odstavcové zarážky), -\bod výchozí fonty, které budou v~dokumentu použity, pokud uživatel - nespecifikuje jiné, -\bod vzory dělení vybraných jazyků, podle kterých \TeX{} dělí slova při - zalamování odstavce. -\enditems - -Až na vzory dělení lze vše ostatní ve vlastním dokumentu pomocí -\TeX{}ových definic dodatečně měnit. Pro načtení vzorů dělení -jednotlivých jazyků má \TeX{} speciální řídicí sekvenci "\patterns", -která funguje jen při vytváření formátu. Existuje ještě jedna řídicí -sekvence, která má smysl pouze při generování formátu: "\dump". Tento -příkaz způsobí uložení \uv{nabytých vědomostí} -\TeX{}u z~jeho vnitřní paměti do binárního formátového souboru {\tt *.fmt} -a ukončí činnost \TeX{}u. Tento soubor se může později při startu -\TeX{}u načíst, a \TeX{} tím začíná se svými znalostmi z~místa, kde -naposledy načítání definic skončil v~době příkazu "\dump". - -Příkazy "\patterns" a "\dump" umí speciální varianta \TeX{}u zvaná -ini\TeX{}. V~nových implementacích \TeX{}u není tato varianta -reprezentována samostatným programem, ale vyvolá se prostřednictvím -přepínače {\tt -i} nebo {\tt -ini}. Například k~vygenerování formátu -plain lze postupovat takto: - -\begtt -> tex -ini plain -* \dump -\endtt - -\TeX{} zde ve variantě ini\TeX{} načetl soubor definic plain.tex a uložil -nabyté vědomosti do souboru {\tt plain.fmt}. Nyní lze formátový soubor -použít: - -\begtt -> tex &plain document -\endtt - -V~běžných \TeX{}ových distribucích je implementována nějakým způsobem -zkratka, která uživateli umožní místo {\tt tex \&plain} psát pouze -{\tt tex} a třeba místo {\tt tex \&latex} psát pouze {\tt latex}. - - -\sekce Rozměrové jednotky používané v~\TeX u a typografii -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -Z~historických důvodů v~typografii stále přežívají měrné jednoty -rozdílné od soustavy SI. Základní měrnou jednotkou, která se používá -v~anglosaských zemích, je jednotka point ({\tt pt}), která má rozměr -asi třetinu milimetru. Dvanáctinásobek je pica (čteme pajka, {\tt -pc}). Jednotkou, která se používala v~Evropě, je \uv{Didotův bod} -({\tt dd}), který je větší než point, ale zhruba taky měří třetinu -milimetru. Dvanáctinásobek tohoto bodu je cicero ({\tt cc}). -V~počítačových programech pro sazbu se používá počítačový bod -({\tt bp}), který je jen velmi nepatrně větší. 72 počítačových bodů se -přesně vejde do jednoho palce ({\tt in}, inch používaný především -v~Americe). - -Všechny tyto jednotky je možné použít v~\TeX{}u jako dvoupísmenové zkratky, -jak ukazuje následující tabulka. Navíc lze použít jednotky odvozené -z~metru. - -\begtable - "pt" & monotypový bod & $1\,{\tt pt} = 1/72.27\,{\tt in} \doteq % - 0.35146\,{\tt mm}$ - "pc" & pica & $1\,{\tt pc} = 12\,{\tt pt}$ - "bp" & počítačový bod & $1\,{\tt bp} = 1/72\,{\tt in}$ - "dd" & Didotův bod & $1\,{\tt dd} = 1238/1157\,{\tt pt}$ - "cc" & cicero & $1\,{\tt cc} = 12\,{\tt dd}$ - "in" & palec (inch, coul) & $1\,{\tt in} = 25.4\,{\tt mm}$ - "cm" & centimetr & $1\,{\tt cm} = 10\,{\tt mm}$ - "mm" & milimetr & $1\,{\tt mm} \doteq 2.84528\,{\tt pt}$ - "sp" & jednotka \TeX{}u & $1\,{\tt sp} = 1/65536\,{\tt pt}$ - "em" & velikost písma & závislé na aktuálním písmu - "ex" & výška malého x & závislé na aktuálním písmu -\endtable - -Velikost písma se měří zhruba jako celková výška řádku, který obsahuje -všechny znaky písma (mimo akcentované verzálky, tj. neuvažujeme v~takovém -řádku háčky a čárky nad velkými písmeny). Zhruba to také odpovídá -šířce velkého písmene M (odtud jednotka {\tt em}). Bohužel, na jednotlivých -písmech není nic společného, co by se dalo vždy jednoduše změřit a přesně -říci, že právě to je ona velikost písma. - - -\sekce Práce s~fonty -%%%%%%%%%%%%%%%%%%%% - -Implicitní fonty, které jsou v~každé implementaci \TeX{}u k~dispozici -a které jsou nezávislé na použitém operačním systému, jsou fonty -rodiny Computer Modern. Běžná antikva v~této rodině má název {\tt -cmr10}. To je zkratka pro \uv{Computer Modern Roman ve velikosti 10pt}. -Fonty Computer Modern bývají už načteny ve formátu a pro -jednotlivé varianty (antikva, kurzíva, polotučné, strojopis) bývají -připraveny přepínače "\rm", "\it", "\bf", "\tt". - -Fonty Computer Modern neobsahují akcentovaná písmena (s~háčky a čárkami). -Proto jsou ve formátu csplain místo nich implicitně načteny tak zvané -\CS{}fonty, které rozšiřují Computer Modern fonty o~písmena s~akcenty -z~české a slovenské abecedy. Běžná antikva v~této rodině má název -{\tt csr10}. \LaTeX{} také implicitně pracuje s~rodinou Computer Modern a -\CS\LaTeX{} navíc po zavedení stylu {\tt czech.sty} (příkazem -"\usepackage{czech}") přepíná na implicitní použití \CS{}fontů. Pak je tedy -možné psát český text. - -Kromě toho \LaTeX{} může pracovat s~jiným rozšířením Computer Modern -fontů, s~tzv. DC nebo EC fonty. Tyto fonty mají specifické kódování -(v~\LaTeX{}u označované jako T1) a obsahují všechny znaky abeced latinkou -píšících evropských zemí. - -Ve všech formátech ale můžete zavést nový přepínač pro nové písmo -pomocí příkazu "\font". Ten má následující syntaxi: - -\begtt -\font\přepínač=název-fontu nepovinné parametry zvětšení -\endtt - -Například - -\begtt -\font\titulfont=csr10 scaled \magstep2 -\endtt - -\pp zavede do \TeX{}u font csr10 (tedy běžnou počeštěnou antikvu -odvozenou z~Computer Modern) ve zvětšení $1.44$ krát normální -velikost, která je 10 bodů. Tento font se pak v~textu aktivuje -přepínačem "\titulfont". Proč zrovna koeficient $1.44$? To je -koeficient, pro který byla v~\TeX{}u vytvořena zkratka -"\magstep2". Následující tabulka shrnuje všechny zkratky typu -"\magstep", které jsou definovány ve všech běžně používaných -formátech. - -\begtable - sekvence & koeficient & implementováno jako - \tabline - "\magstep0" & 1:1 (žádné zvětšení) & 1000 - "\magstep1" & $1.2$ & 1200 - "\magstep2" & $1.2^2 = 1.44$ & 1440 - "\magstep3" & $1.2^3 = 1.728$ & 1728 - "\magstep4" & $1.2^4 = 2.0736$ & 2074 - "\magstep5" & $1.2^5 = 2.48832$ & 2488 - "\magstephalf" & $\sqrt{1.2}\doteq1.095445$ & 1095 -\endtable - -Odstupňování jednotlivých velikostí písma pomocí mocnin čísla $1.2$ bývá -v~typografii dobrým zvykem. - -Ve sloupci \uv{implementováno jako} vidíme, že koeficient se za slovem -{\tt magstep} (stejně jako na mnoha dalších místech v~\TeX{}u) zadává jako -celé číslo odpovídající tisícinásobku uvažované hodnoty. Chceme-li tedy -použít font dvojnásobně velký, použijeme {\tt scaled~2000} a při požadavku -na poloviční velikost píšeme {\tt scaled~500}. - -Kromě koeficientu zvětšení (slovo {\tt scaled}) můžeme chtít zvětšit -font bez ohledu na jeho původní velikost do námi požadované velikosti. -K~tomu se používá slovo {\tt at}, například: - -\begtt %-------------------------------------------------------------- -\font\prvni=csr10 at 20pt -\font\druhy=csr10 scaled 2000 -\endtt %-------------------------------------------------------------- - -Oba řádky této ukázky zavádějí stejný font ve stejném zvětšení. - -Rodina písma Computer Modern (a jeho odvozeniny, například \CS{}fonty) -obsahuje různé velikosti stejné varianty písma, přitom tyto -alternativy nejsou jen stejnoměrným násobením všech rozměrů. -Doporučuje se, zvláště v~menších velikostech písma, používat -implicitní velikost písma a dále ji nezmenšovat ani nezvětšovat. -Implicitní velikost písma je označena číslem v~názvu -fontu, tj. například {\tt csr10} má implicitní velikost 10\,pt a -{\tt csr5} má velikost 5\,pt. Srovnáme výsledek tohoto příkladu: - -\begtt %-------------------------------------------------------------- -\font\zvetseny=csr5 at10pt -\font\normalni=csr10 -\normalni Tady je přirozená velikost písma 10 bodů -\zvetseny a tady je písmo navržené pro pět bodů zvětšeno na 10 bodů. -\endtt %-------------------------------------------------------------- - -Na výstupu dostaneme: - -\beguk %-------------------------------------------------------------- -\font\zvetseny=csr5 at10truept -\font\normalni=csr10 at10truept -\baselineskip=12truept -\normalni Tady je přirozená velikost 10 bodů -\zvetseny a tady je písmo navržené pro pět bodů zvětšeno na 10 bodů. -\enduk %-------------------------------------------------------------- - -Přepnout písmo dokumentu do jiné rodiny fontů znamená postarat se o~změnu -významu všech přepínačů jednotlivých variant písma ("\rm", "\bf", "\it" a -"\tt") a nezapomenout na vhodnou změnu fontu též v~nadpisech a v~dalších -velikostech písma, které jsou v~dokumentu použity. Jednoduché definice -alternativních přepínačů najdeme pro csplain v~následujících souborech: - -\begtable - soubor & Rodina fontů - \tabline - "cavantga.tex" & Avantgarde Book - "cbookman.tex" & Bookman - "chelvet.tex" & Helvetica - "cncent.tex" & New Century - "cpalatin.tex" & Palatino - "ctimes.tex" & Times Roman -\endtable - -Tyto rodiny fontů jsou instalovány v~každém výstupním PostScriptovém -zařízení, takže s~těmito fonty můžeme v~\TeX{}u pracovat, aniž bychom je -museli mít zakoupené. \TeX{} samotný totiž pracuje pouze s~metrickými -informacemi k~fontům a do výstupu vkládá pouze odkazy na fonty. Metrické -informace jsou obvykle k~dispozici zdarma. Pokud budeme tisknout na -PostScriptovém zařízení, pak jsme s~cenou PostScriptového modulu tyto fonty -vlastně koupili a můžeme v~nich tisknout \TeX{}ové dokumenty. Pokud budeme -tisknout na zařízení bez PostScriptu, pak je vhodné PostScriptový kód -zpracovat volně dostupným programem Ghostscript, který má v~sobě zahrnuty -volně dostupné alternativy k~uvedeným základním fontům. Rozdíl mezi -alternativou a draze koupeným fontem přitom ani moc nepoznáme. - -Chceme-li například přepnout do písma Bookman, stačí napsat do dokumentu -"\input bookman". Takovou věc jsme už ilustrovali na našem příkladě -v~předchozím textu. - -Podíváme-li se do souborů {\tt cbookman.tex} a dalších, které najdeme -v~instalaci \TeX{}u někde v~adresáři {\tt csplain}, zjistíme, že zde nejsou -předefinovány přímo přepínače "\rm", "\bf", "\it" a "\tt", ale že se zde -místo nich pracuje s~přepínači "\tenrm", "\tenbf", "\tenit" a "\tentt". -To jsou totiž v~plainu (i csplainu) skutečné přepínače \uv{nejnižší -úrovně}. Pro uživatele se pak definují značky "\rm", "\bf", "\it" a "\tt" -s~dalším přihlédnutím na chování těchto značek v~matematickém módu. -Například "\bf" je definováno takto: - -\begtt %-------------------------------------------------------------- -\def\bf{\tenbf \fam\bffam} -\endtt %-------------------------------------------------------------- - -Je-li tedy předefinován přepínač "\tenbf", bude se od této chvíle chovat -jinak i značka "\bf". Kód "\fam\bffam" zde nebudeme rozebírat, protože -překračuje rámec tohoto úvodního textu. Spokojíme se s~tím, že v~textovém -módu nemá tento kód žádný vliv a v~matematickém módu cosi udělá. - -Příkaz "\fontname\přepínač\space" se promění zpět v~původní název -fontu ukončený mezerou. Tato vlastnost byla použita v~našem příkladu, -kde jsme zaváděli větší font pomocí této konstrukce: - -\begtt %--------------------------------------------------------------- -\font\titulfont=\fontname\tenbf\space scaled \magstep2 % větší font -\endtt %--------------------------------------------------------------- - -Výhodou tohoto zápisu je fakt, že nemusíme znát název fontu, stačí si -zapamatovat základní přepínače "\tenrm", "\tenbf", "\tenit" a "\tentt". -Názvy fontů se nejenom těžko pamatují, ale také se mohou změnit, -pokud před takovou konstrukcí použijeme "\input cbookman" nebo něco -podobného. - -V~\LaTeX{}u asi takové obraty nebudeme potřebovat, protože o~zavedení -potřebných fontů pro různé velikosti se \LaTeX{} stará sám. Pro -přepínání mezi rodinami fontů používáme v~\LaTeX{}u příkaz -"\usepackage" a následuje ve složených závorkách jedno ze slov -{\tt avantgar}, {\tt bookman}, {\tt helvet}, {\tt newcent}, -{\tt palatino}, {\tt times}. Písmeno {\tt c} na začátku názvu rodiny -fontů (na rozdíl od csplainu) nepíšeme. - -Možná nás začne zajímat, jaké fonty máme v~\TeX{}ové instalaci -připraveny k~použití. Stačí udělat menší průzkum v~adresáři {\tt tfm} -(odvozeno od zkratky \TeX{} font metrics) a podívat se do jednotlivých -podadresářů na názvy přítomných souborů. To jsou současně názvy fontů, -které jsou použitelné v~příkaze "\font". Chceme rychle vědět, jak který -font vypadá? Napišme na příkazový řádek - -\begtt %----------------------------------------------------------------- -tex testfont -\endtt %----------------------------------------------------------------- - -\TeX{} se nás vyptá na název fontu, který zadáme bez přípony -{\tt.tfm}. Pak nás požádá o~instrukci, co s~načteným fontem má dělat. -Nejlépe je odpovědět "\table\end" a podívat se na tabulku znaků -testovaného fontu třeba pomocí "xdvi testfont". - - -\sekce Speciální znaky -%%%%%%%%%%%%%%%%%%%%%% - -V~této sekci popíšeme chování speciálních vstupních znaků, které -nejsou \TeX{}em většinou slepě přepisovány do výstupu, ale \TeX{} na -ně určitým způsobem zareaguje. - -Jedním takovým speciálním znakem je "\" (zpětné lomítko). Pokud za ním -následuje písmeno, \TeX{} přečte řídicí sekvenci typu "\slovo" -ukončenou prvním znakem, který není písmeno (separátorem). Je-li -tímto separátorem mezera, pak se na výstupu neobjeví. Ostatní -separátory nejsou na rozdíl od mezery ignorovány. -Vyzkoušejte si: - -\begtt %---------------------------------------------------------- -Zkouším \TeX. % Tečka je separátor sekvence \TeX, který se vytiskne -Píšu v \TeX u % Separátorem je mezera před u, která se netiskne -\TeX je formátor. -\endtt %---------------------------------------------------------- - -Z~posledního řádku ukázky dostáváme nesprávný výsledek: \TeX je formátor. -Projevila se totiž další vlastnost \TeX{}u: jednu mezeru i více mezer -za sebou považuje za mezeru jedinou a ta v~našem příkladě funguje jako -separátor, který mizí. Proto se často používají \uv{zbytečné skupiny}, -jejichž závorky mají funkci separátoru řídicí sekvence: - -\begtt %----------------------------------------------------------- -Píšu v \TeX{}u. \TeX{} je formátor. -Nebo raději píšu v {\TeX}u a používám {\TeX} jako formátor. -\endtt %----------------------------------------------------------- - -Pokud za zpětným lomítkem následuje něco jiného, než písmeno -(například "\$"), je řídicí sekvence tvořena jen tímto znakem. -Mezery za takovými jednoznakovými sekvencemi zůstávají -zachovány: - -\begtt %----------------------------------------------------------- -Pracuji se 100\% nasazením. -\endtt %----------------------------------------------------------- - -Vidíme, že dalším speciálním znakem v~\TeX{}u je mezera. Jak jsme před -chvílí uvedli, více mezer za sebou se chová jako mezera jediná. - -Všechny mezery na začátku řádku jsou ignorovány až po první znak, který -není mezera. Toho můžeme využít pro zlepšení přehlednosti našich -vstupních textů (viz naše ukázka s~výčtem prvků). - -Konec řádku je v~\TeX{}u interpretován jako mezera, která se vytiskne, -pokud není separátorem řídicí sekvence. Pokud si mezeru z~konce -řádku nepřejeme, můžeme ji \uv{zamaskovat} komentářovým znakem: - -\begtt %----------------------------------------------------------- -Toto je - zvrácený -pří% -klad v~\TeX -u. -\endtt %----------------------------------------------------------- - -Prázdný řádek vytvoří interní příkaz "\par", který ukončuje -odstavec. Není-li co ukončovat, "\par" nedělá nic. Proto více -prázdných řádků pod sebou se chovají stejně jako jeden prázdný -řádek. I~toho lze využít pro zvýšení přehlednosti zdrojových textů. - -V~následující tabulce je přehled všech znaků, které bývají -nastaveny jako speciální: - -\begtable - "\" & uvozuje řídicí sekvenci - mezera & speciální vlastnosti popsány výše - konec řádku & speciální vlastnosti popsány výše - "{" & zahájení skupiny, parametru nebo definice - "}" & konec skupiny, parametru nebo definice - "$" & přepínač matematického módu - "&" & separátor používaný v tabulkách - "#" & označení parametru v definicích - "^" & konstruktor mocniny v matematickém módu - "_" & konstruktor indexu v matematickém módu - "~" & nedělitelná mezera - "%" & zahajuje na řádku komentář -\endtable - -Speciální význam každého znaku lze v~\TeX{}u nastavit pomocí určitých -definic. Výše uvedená tabulka tedy není v~ničem definitivní. -Uvedený seznam speciálních znaků bývá takto nastaven ve -formátech plain, csplain i \LaTeX. - -Pokud chceme vytisknout souvislejší část textu bez speciální -interpretace, musíme těmto znakům jejich speciální funkce odebrat. -V~\LaTeX{}u se pro tyto účely používá \LaTeX{}ové prostředí vymezené -příkazy "\begin{verbatim}" a "\end{verbatim}". Vše mezi těmito příkazy% - \footnote{s výjimkou sekvence čtrnácti znaků - \uv{{\tt \char`\\end\char`\{verbatim\char`\}}}} -se vytiskne tak, jak je napsáno ve vstupním textu. Uvedené prostředí -vždy ukončí odstavec a zahájí tisk textu bez speciální interpretace. -Pokud chceme mít bez speciální interpretace jen část textu uvnitř -odstavce, použijeme v~\LaTeX{}u příkaz "\verb|text bez svislé čáry|" -nebo třeba "\verb+text bez znaku plus+". - -V~plainu ani v~csplainu hotové řešení na vypnutí speciální -interpretace znaků nenajdeme. Můžeme se inspirovat dvojicí "\begtt" -a "\endtt" ve zdrojovém textu tohoto manuálu. - -Pokud chceme vytisknout jen jednotlivé speciální znaky, měli bychom -vědět, jakou sekvencí to zařídit. Pro znaky používané v~běžném textu -("$", "&", "#" a "_") jsou ve všech formátech připraveny řídicí -sekvence "\$", "\&", "\#" a "\_". Tím požadovaný znak vytiskneme -v~libovolném fontu. Výjimkou je znak \$, který se v~kurzívě -Computer Modern fontu mění v~libru: {\cmit\$}. Je to taková malá -kuriozita \TeX{}u. - -S~ostatními speciálními znaky to tak jednoduché není. V~implicitně -nastaveném fontu Computer Modern totiž tyto znaky vesměs nemají ve -fontu svůj odpovídající obraz. Například na pozici 92 bychom měli -najít podle normy ASCII znak~"\" (zpětné lomítko), ale místo něj tam -najdeme znak~`` (obrácené uvozovky). Nemile nás překvapí i jinak -obyčejný znak "<" (symbol pro relaci je menší), který nemá ve fontu -svůj obraz a místo něho dostaneme do výstupu < (obrácený -vykřičník). Pokud chceme, aby se do výstupu věrně dostal znak, který -známe z~tabulky ASCII, musíme použít variantu fontu "\tt" (strojopis), -nebo jinou rodinu fontu, která má fonty v~kódování přesně podle -ASCII. Následující tabulka ukazuje všechny běžné ASCII znaky, které -mají v~Computer Modern jiný obraz: - -\begtable - kód znaku & "\tt" (strojopis) & Computer Modern - \tabline - \.60 & "<" & \tencsr < - \.62 & ">" & \tencsr > - \.92 & "\" & \tencsr \char92 - 123 & "{" & \tencsr -- - 124 & "|" & \tencsr --- - 125 & "}" & \tencsr \char125 -\endtable - -Znak z~dané pozice ve fontu vytiskneme pomocí příkazu "\char kód". -Například "\char92" nám vytiskne ve strojopisu "\" a v~antikvě -Computer Modern {\tencsr\char92}. Pokud si nepamatujeme číselnou -hodnotu ASCII kódu nějakého znaku, můžeme místo ní použít konstrukci -"`\znak", takže například "`\\" vrátí číslo 92. Proto při tisku -zpětného lomítka píšeme "{\tt\char`\\}". - -Budeme-li chtít vytisknout některý ze znaků "< > \ { | }", musíme si -uvědomit, jaký význam daný znak reprezentuje. Většinou se jedná -o~matematické symboly, takže pro ně použijeme odpovídající řídicí -sekvence v~matematickém módu (mezi dvěma dolary). Relace \uv{je menší} -a \uv{je větší} lze dokonce v~matematickém módu napsat přímo, zatímco -v~textovém módu se promění ve španělskou interpunkci. Následující -tabulka udává doporučený způsob tisku příslušných znaků podle jejich -významu: - -$$\vbox{\let\par=\cr \obeylines \halign{&#\hfil\quad - význam znaku & jak jej zapsat & jak se vytiskne - \tabline - relace \uv{je menší} & "$a < b$" & $a < b$ - relace \uv{je větší} & "$a > b$" & $a > b$ - uzavřený interval & "$\langle a,b\rangle$" & $\langle a,b\rangle$ - ASCII znaky "< >" & "{\tt < >}" & "< >" - rozdíl množin & "$A\setminus B$" & $A\setminus B$ - ASCII znak "\" & "{\tt\char`\\}" & "\" - Množinové závorky & "$M = \{a,b,c\}$" & $M = \{a,b,c\}$ - ASCII znaky "{ }" & "{\tt\char`\{ \char`\}}" & "{ }" - Vlnka jako akcent & "\~a" & \~a - Samostatný akcent & "\~{}" & \~{} - ASCII znak "~" & "{\tt\char`\~}" & "~" - Stříška jako akcent & "\^a" & \^a - ASCII znak "^" & "{\tt\char`\^}" & "^" -}}$$ - -V~\LaTeX{}u lze místo konstrukcí "{\tt\char`\znak}" použít -jednoduššího "\verb|znak|". Ovšem příkaz "\verb", který odebírá znaku -jeho speciální funkci a zapíná tisk ve strojopisu, nemusí fungovat -všude. Například jej nelze použít jako argument jiného příkazu -("\section", "\uv", apod.). - - -\sekce Umístění sazby na papíře -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -Při poznávání \TeX{}u si jistě velmi brzo položíme otázku, jak je -možné změnit velikost okrajů, neboli jak umístit sazbu na papíře. - -V~plainu jsou implicitně nastaveny velikosti okrajů jeden palec -z~každé strany papíru amerického formátu Letter. Takové formáty papíru -u~nás většinou nerostou, takže plain nám na papíru A4 udělá jen levý a -horní okraj velikosti jeden palec a pravý okraj bude menší a spodní -větší. - -V~csplainu jsou implicitně nastaveny velikosti okrajů jeden palec -z~každé strany pro formát A4. Sazba je tedy v~csplainu mírně užší a -vyšší, než v~plainu. Sazbu přitom měříme bez případného záhlaví a bez -stránkových číslic. - -Umístění sazby měříme vzhledem k~počátku, který se nalézá na papíře -1~palec od levého okraje a 1~palec od horního okraje. Levý horní roh -sazby se kryje s~tímto počátkem, pokud jsou nastaveny registry -"\hoffset=0pt" a "\voffset=0pt". Levý horní roh sazby se posune -doprava o~hodnotu "\hoffset" a dolů o~hodnotu "\voffset". Při -záporných hodnotách těchto registrů se sazba posunuje samozřejmě doleva -respektive nahoru. - -Šířka sazby (přesněji šířka zpracovávaného odstavce) se nastaví pomocí -registru "\hsize". Výška sazby na stránce se nastaví pomocí "\vsize". -V~následující ukázce jsou uvedeny hodnoty, které nastavuje plain. - -\begtt -\voffset=0in % velikost horního okraje = \voffset + 1 palec -\hoffset=0in % velikost levého okraje = \hoffset + 1 palec -\hsize=6.5in % šířka řádku, 165.1mm -\vsize=8.9in % výška sazby, 266mm -\endtt - -Formát csplain má registry "\hoffset" a "\voffset" také nulové, ale -šířku a výšku sazby nastavuje odlišně: - -\begtt -\hsize= 159.2 mm % šířka řádku v csplainu (šířka A4 - 2in) -\vsize= 239.2 mm % výška sazby (výška A4 - 2in) -\endtt - -Pokud chceme nastavit vlastní velikosti, doporučujeme nejprve registry -"\hoffset" a "\voffset" nastavit na hodnotu $-1$\,in a pak k~nim přičíst -hodnoty požadovaných okrajů pomocí příkazu "\advance". Dále -doporučujeme výšku sazby přesně rozměřit na počet řádků. K~tomu -potřebujeme vědět, že vzdálenost dvou řádků se určí pomocí registru -"\baselineskip" (pozor: při větším písmu se toto řádkování může -rozhodit). Plain i csplain nastavují "\baselineskip" na 12\,pt. -Kromě toho je účaří prvního řádku od pomyslného horního okraje sazby -vzdáleno o~"\topskip", který má v~plainu i v~csplainu hodnotu 10\,pt. -Protože se výška sazby "\vsize" měří od horního pomyslného okraje po -účaří posledního řádku na stránce, vychází "\vsize" jako -\hbox{$"\topskip" + (n-1)\times "\baselineskip"$}, kde $n$ je počet řádků na -stránce. Nastavení velikosti sazby tedy můžeme udělat například takto: - -\begtt -\voffset=-1in -\advance\voffset by 2cm % velikost horního okraje bude 2cm -\hoffset=-1in -\advance\hoffset by 1.5cm % velikost pravého okraje bude 1.5cm -\hsize=10cm % šířka řádku bude 10 cm -\vsize=\topskip -\advance\vsize by 15\baselineskip % sazba bude mít 16 řádků na stránce -\endtt - -V~\LaTeX{}u se při nastavování rozměrů sazby používají registry -speciálně deklarované v~tomto formátu. Jedná se o~"\textheight" (výška -sazby), "\textwidth" (šířka sazby), "\oddsidemargin" (levý okraj na -lichých stránkách), "\evensidemargin" (levý okraj na sudých stránkách) -a "\topmargin" (horní okraj). \LaTeX{} pak sám podle hodnot těchto -registrů nastaví vnitřní registry \TeX{}u "\hoffset", "\voffset", -"\hsize" a "\vsize". Uživatel \LaTeX{}u by k~nim neměl přistupovat -přímo a navíc by měl s~registry zacházet \uv{\LaTeX{}ovsky}, což -prakticky znamená, že místo jednoduchého přiřazení nebo příkazu -"\advance" by měl zapisovat své požadavky zhruba takto: - -\begtt -\setlength\topmargin{-1in} -\addtolength\topmargin{2cm} % velikost horního okraje bude 2cm -\setlength\oddsidemargin{-1in} -\addtolength\oddsidemargin{1.5cm} % velikost pravého okraje bude 1.5cm -\setlength\evensidemargin{\oddsidemargin} -\setlength\textwidth{10cm} % šířka sazby bude 10cm -\setlength\textheight{\topskip} -\addtolength\textheight{15\baselineskip} % 16 řádků -\endtt - -\TeX{}em většinou nenastavujeme parametry pro archovou montáž sazby, -takže nám výše uvedené příklady pro nastavení velikosti sazby bohatě -stačí. Pokud bychom chtěli se sazbou dále manipulovat a umisťovat ji -na jednotlivé archy podle určitých požadavků, použijeme většinou -pomocné programy, které manipulují s~PostScriptovým výstupem. -Představme si, že chceme stránky tohoto manuálu zmenšit tak, aby se -vešly dvě vedle sebe na stranu A4. Dále chceme tyto stránky uspořádat -tak, abychom po oboustranném vytištění manuálu na šest archů A4 -dostali svazeček, který přeložíme v~půli a máme knížečku -s~24 na sebe navazujícími stránkami. Pro takový úkol se asi nejlépe hodí -programy z~volně šířeného balíčku psutils. Na příkazový řádek můžeme -postupně napsat tyto instrukce: - -\begtt -> csplain prvni -> dvips prvni -> psbook prvni.ps p0.ps -> pstops "4:0L@.7(21cm,.5cm)+1L@.7(21cm,14.4cm)" p0.ps p1.ps -> pstops "4:2L@.7(21cm,.5cm)+3L@.7(21cm,14.4cm)" p0.ps p2.ps -> lpr -Ptiskarna p1.ps -> lpr -Ptiskarna p2.ps -> rm prvni.ps p0.ps p1.ps p2.ps -\endtt - -Příkaz {\tt dvips} převede dokument do PostScriptu a {\tt psbook} -uspořádá stránky pro použití do \uv{svazečku}. První volání příkazu -{\tt pstops} vybere vždy dvě ze čtyř stránek, zmenší je na -$0.7$\,násobek původní velikosti ({\tt @.7}) a umístí je do archu -podle uvedených parametrů. Tím vzniká podklad pro tisk lícových stran -archů A4 ({\tt p1.ps}). Podobně druhé volání příkazu {\tt pstops} -vytvoří podklad pro rubovou stranu archů. Vlastní tisk ({\tt lpr}) -pak můžeme provést na tiskárně, která neumí oboustranný tisk, ve dvou -průchodech. Před druhým průchodem obrátíme vytištěné papíry a vložíme -je do zásobníku tiskárny znovu. - - -\sekce Overfull/Underfull box -%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -Při práci s~\TeX{}em narazíme postupně na celou řadu chybových -hlášení, při kterých se program většinou zastaví a vyzve nás k~nějaké -akci. Ačkoli třeba jen zmáčkneme klávesu Enter, uvědomíme si, že je -něco špatně a pokusíme se chybu řešit. - -Kromě toho \TeX{} vypisuje varování o~přetečených (overfull) a -nedoplněných (underfull) boxech. Protože se při těchto výpisech -nezastavuje, považují to mnozí začátečníci za menší zlo, kterého si -není nutné všímat. Není to tak docela pravda. - -Přetečené boxy (overfull) bychom měli rovněž zařadit do kategorie -chyb. \TeX{}u se totiž nepodařilo vměstnat sazbu do předepsané šířky -"\hsize". Prakticky to znamená, že sazba v~daném místě \uv{vyčnívá} -na pravé straně ven směrem do okraje. Hlášení obsahuje údaj, o~kolik -bodů sazba vyčnívá, číslo řádku ve zdrojovém kódu a kus textu, který určuje -problémové místo. Plain a csplain dále nastavuje registr -"\overfullrule" na 5\,pt, takže se v~sazbě na problémovém místě objeví -těžko přehlédnutelný černý obdélník. \LaTeX{} tento registr nuluje, -takže černé obdélníky nejsou vidět, což dává uživateli pocit, že je -všechno v~pořádku. - -Objeví-li se přetečený box v~odstavci, většinou stačí \uv{rozvolnit} -mezery. Mezery mezi slovy mají totiž pružnost (mohou se smršťovat -natahovat). Tato pružnost ale není neomezená, ale daná jistými -parametry podle použitého fontu. Chceme-li dát mezerám větší volnost -v~roztahování, než si přál autor fontu, pišme například -"\emergencystretch=2cm". \TeX{} má plno dalších vnitřních registrů, -jejichž nastavením ovlivníme algoritmy na sestavování -odstavce. Jejich popis ovšem překračuje rámec tohoto úvodního textu. - -Nedoplněné boxy (underfull) můžeme na rozdíl od přetečených boxů -považovat pouze za varování. \TeX{} nás informuje, že byl nucen -v~některém místě natáhnout mezery víc, než je esteticky zdrávo. Hodnota -{\tt badness}, která hlášení doprovází, udává zhruba stupeň estetické -vady v~takovém místě (nebo také velikost násilí provedené na -mezerách). Čím vyšší badness, tím horší výsledek. Maximální hodnota -badness je 1000, což značí, že některý řádek je úplně špatně. Stojí -zato se podívat do sazby na takto označená místa a zamyslet se, co by -se dalo změnit, aby se zlepšila estetická úroveň výsledku. - -\LaTeX{}oví uživatelé dosti často neopatrně pracují s~příkazem "\\", -který se v~různých \LaTeX{}ových prostředích chová jako ukončení -řádku. Někdy se dostane takový příkaz i na konec odstavce, což samo -o~sobě nemá logiku, protože na konci odstavce se samo sebou ukončí -řádek. Pokud se tak stane, \TeX{} na konci odstavce vytvoří ještě další -prázdný řádek, ve kterém nemá žádnou mezeru k~natažení na šířku -"\hsize" a oprávněně se rozčílí: {\tt Underfull hbox badness 1000}. -V~tomto případě vlastně \TeX{} křičí na uživatele, který nebyl schopen -opustit principy starodávného psacího stroje a potřebuje mít k~ruce tu -velikou páku, do které je občas potřeba praštit, aby se přešlo na nový -řádek. - - - -\end - - - - |