verze pro barevný tisk
Transkript
verze pro barevný tisk
about CAP adaptlayout Cap Caps comparepalet appendix chapter definecombinedlist define defineframed definelabel definelist defineprofile defineblank definemakeup definesectionblock definesorting definetextposition definetextvariable fillintext framedtext high from hl getbuffer in getmarking indentation interactionbar indenting interactionbuttons loadsorts loadsynonyms midaligned mirror MONTH nomorefiles nop nospace pagereference pagetype placeformula placelegend item lohi month moveongrid note paragraph placelist processblocks selectblocks resetmarking selectpaper setupblackrules setupcapitals selectversion setupblank setupcaption setupcomment setupdescriptions setupfloats setupfloatsplitting setupframed setupframedtexts setupclipping setupenumerations setupfooter setuphead publication placerule settextvariable romannumerals setupalign setupcolors setupcolors setupfield setupheadnumber section setupbackgrounds setupcombinations setupbuttons setupcombinedlist setupfillinrules setupfloat setupformulae setupframed setupforms setupheads register seeregister setupbuffer setupfillinlines setupfootnotes placetextvariable setupbackground setupcolumns placeongrid referraldate screen page placefootnotes placelogos setupbottomtexts setupfields setupheadertexts scale setuparranging setupbottom setupfootnotedefinition setupheader rotate packed placefloat referral mediaeval nomoreblocks overstrikes placesubformula reference listsymbol nomarking placelocalfootnotes ref installlanguage mathematics nolist framed hideblocks leftaligned placecombinedlist:2 ran fillinrules fraction inright overstrike placesidebyside quote setupbodyfontenvironment setupfootertexts overbars definetext headtext markversion noindenting placelistofsynonyms quotation setupexternalfigures setupheada overbar Romannumerals setupcolor language marking definesection fillinline headnumber labeltext placecombinedlist:1 placeregister:2 rightaligned setupbodyfont setupcaptions numbers definerule forceblocks inouter noheaderandfooterlines placelistofsorts settextcontent setupblock nocap head defineparagraphs determinelistcharacteristics inothermargin margintext defineinteractionmenu:2 fillinfield footnotetext hairline labels marginrule placebookmarks program resettextcontent inmargin nowhitespace placeregister:1 processpage inline labeling mar nextsection periods grid keepblocks placelistoffloats position reset name graycolor inleft mainlanguage footnote definefloat definetabulate determineheadnumber fieldstack definecolorgroup definepapersize defineregister copyfield currentheadnumber definecolor definetabletemplate field followversion gotobox its definesynonyms description convertnumber definefiguresymbol definepalet cap comparecolorgroup currentdate definebuffer definereferencelist bypassblocks comment defineinteractionmenu:1 defineoverlay externalfigure followprofileversion low part placereferencelist reservefloat enumeration notopandbottomlines placeontopofeachother positiontext defineversion items logfields defineoutput definetyping ininner crlf definefieldstack defineinteractionmenu:1 definesymbol inframed column coupleregister definefield button completeregister definebodyfontenvironment definereferenceformat goto color but Exkurze do ConTEXtu defineindenting godown bookmark clonefield couplepaper defineenumeration enableregime followprofile clip blank completelistofsynonyms definesubfield definetype emptylines fixedspaces definebodyfont definereference blackrules chem couplepage definemarking definestartstop donttest fitfield defineblock definerawfont Characters couplemarking definehead blackrule completelistofsorts definedescription definelogo disableinteractionmenu background characters coupledregister defineframedtext defineprogram atpage character defineconversion definefont at completelistoffloats coupledocument decouplemarking arg Character completecombinedlist correctwhitespace date adding setupheadtext setuphyphenmark setupindentations setupindenting setupinmargin setupinteraction setupinteraction setupinteractionbar setupinteractionscreen setupinterlinespace:1 setupinterlinespace:2 setuplines setupitemgroup setuplinewidth setupnumbering setuplist setupoppositeplacing setupparagraphnumbering setupreferencing setupoutput setuprule setupsynchronization setuptextposition česká setuptype setuptyping verze setuplabeltext setupmakeup setuppagenumber setuppositioning setuprotate setupsymbolset setupitems setuplistalternative setupparagraphs setupregister setupsubpagenumber setupitemize setuppagenumbering setupprofiles setupscreens setupsection setupsynchronizationbar setuptextrules setuptexttexts setuptop setuptoptexts setupunderbar setupurl showstruts showsymbolset startcombination startfloattext startlegend startformula startline startparagraph WEEKDAY startlinecorrection typ sub synchronize type synonym typebuffer whitespace startalignment startframedtext tab tex Word startenumeration startproduct startnarrower startprofile starttabulate subsubject subsubsection textbackground startenvironment underbars useblocks WORDS Words startlocalenvironment startopposite subsubsubject textrule usecommands usemodule switchtobodyfont usereferences writebetweenlist startfigure startitemize startoverview thinrules startmakeup startpacked startsymbolset startunpacked switchtorawfont useencoding usespecials writetolist startfact starttyping thinrule usedirectory startcolumns startregister starttextrule showsetups startcolor startitemgroup startoverlay textvariable showprint startlocalfootnotes startquotation starttextbackground setuptolerance showbodyfontenvironment showpalet startbuffer setupstrut setuptabulate setupthinrules startinteractionmenu startproject textreference useexternalsoundtrack wordright startlocal setupreferencelist setuptables showbodyfont showmakeup startbackground starthiding startlines startnamemakeup underbar useexternalfiles showlayout startdocument starthiding setupwhitespace setuppapersize setupspacing setuptab Ton Otten & Hans Hagen PRAGMA ADE starttabulate subsection typefile WORD splitfloat startdescription startnamemakeup subject space showgrid setupquote setupthinrules setupnarrower setuppaper setupsorting setupsystem setuptextvariable showframe startlinenumbering starttables useexternalfile weekday sort startpostponing starttable stretched useexternalfigure vl startframedtext startpositioning synchronizationbar somewhere showfields startcomponent startmarginrule startsynchronization translate someline startcomment startmarginblock startversion showexternalfigures setupsynonyms setuplinenumbering setupmarking setuppalet setuppublications setupsectionblock setupversions setuplegend setupmarginrules setuppagetransitions setupprograms setuptextbackground showcolorgroup setuplayout setupmarginblocks setuptext showcolor setuplanguage sym title symbol tooltip useexternaldocument usesymbols writetoreferencelist useURL version writetoregister Z anglického originálu ConTEXt an Excursion přeložili Vít Zýka, Ján Buša, Jiří Hrbek, Martina Plachá a Petr Tesařík. Překlad tohoto manuálu vznikl za podpory grantu Československého sdružení uživatelů TEXu (CSTUG, http: //www.cstug.cz). Kapitola věnovaná sazbě českých a slovenských textů a příloha Další informační zdroje je původní text překladatelů. Děkujeme správcům serveru https://foundry.supelec.fr za hostování zdrojových textů pomocí SVN. Tento dokument verze 6. prosince 2006 je generován pomocí nástrojů CONTEXT, TEXEDIT, TEXUTIL a Web2C PDFTEX. Je sázen písmem Palladio. K testování jsme používali GHOSTSCRIPT a Acrobat Reader. a AMS-TEX jsou obchodní značky American Mathematical Society; METAFONT je obchodní značka Addison-Wesley Publishing Company; PostScript, Portable Document Format a Acrobat jsou obchodní značky Adobe Systems Incorporated; DVIPSONE a DVIWINDO jsou obchodní značky Y&Y Incorporated; IBM je obchodní značka International Business Machines Corporation; MSDOS je obchodní značka MicroSoft Corporation; všechna další jména výrobků jsou obchodní značky jejich výrobců. TEX C 1991–2006 PRAGMA ADE, Ridderstraat 27, 8061GH Hasselt, Nizozemsko, www.pragma-ade.com Obsah 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 Jak vytvořit dokument Jak zpracovat vstupní soubor Zvláštní znaky Vymezení dokumentu Nadpisy Odrážky a výčty Sazba matematiky Příkazy v matematickém módu Jednotky Obrázky Tabulky Tabelace / formátování odstavce Sloupce Poznámky pod čarou Definice pojmů Číslované poznámky Orámování textu Orámování odstavce Marginálie Zalamování a číslování stránek Záhlaví a úpatí Obsah (seznamy) Rejstříky Synonyma Křížové odkazy 5 7 8 9 10 13 18 25 27 28 34 45 48 50 53 55 57 59 61 63 64 66 71 72 74 26 27 28 29 30 1 31 32 33 34 35 36 37 38 39 40 41 42 43 Barva Pozadí textu Pozadí stránky Zarovnání Interaktivní mód v elektronických dokumentech Písmo a přepínače fontů Složené znaky Formátování stránky Odsazení odstavců Nastavovací příkazy Definování příkazů / maker Nezařazené Externí moduly Grafické rozšíření / METAPOST Uživatelská nastavení Postup zpracování Pomocné soubory Sazba českých/slovenských textů 77 78 79 80 81 86 92 94 98 102 103 106 119 122 123 123 124 125 A B C D Další informační zdroje Definice příkazů Seznam příkazů Rejstřík 129 131 143 147 2 Úvod je inženýrský systém pro dokumentování založený na TEXu. TEX je sázecí systém a programovací jazyk zaměřený na sazbu a generování dokumentů. CONTEXT je snadno použitelný a umožňuje vytvářet složité tištěné i elektronické dokumenty. CONTEXT Tento manuál popisuje možnosti CONTEXTu, popisuje dostupné příkazy a jejich použití. 1 je vyvíjen na praktických aplikacích: sazba a generování dokumentů počínaje jednoduchými beletristickými knihami a konče složitými technickými manuály a odbornými publikacemi v tištěné i elektronické podobě. Tento začátečnický manuál popisuje funkcionalitu CONTEXTu nezbytnou k formátování základních textových elementů používaných v manuálech nebo příručkách. CONTEXT je však schopný vytvářet mnohem více a pro toho, kdo se nespokojí s těmito základními funkcemi, je připraveno mnoho dalších detailnějších manuálů a jiných informací, Viz přílohu A. CONTEXT CONTEXT má lokalizovatelné rozhraní umožňující uživatelům pracovat s CONTEXTem v jejich vlast- ním jazyze. V současné době existuje rozhraní holandské, německé, anglické, italské, francouské, rumunské a také české. Tento manuál je dostupný v holandštině, němčině, angličtině a češtině. 1 Všechny papírové a elektronické dokumenty o CONTEXTu jsou připraveny CONTEXTem. Všechny zdrojové texty těchto dokumentů jsou nebo budou elektronicky dostupné, aby umožnily vhled do práce s tímto systémem. 3 4 Jak vytvořit dokument 1 Jak vytvořit dokument 1 Řekněme, že chceme vytvořit jednoduchý dokument. Má nějakou strukturu a obsahuje titulní stranu, několik kapitol, sekcí a podsekcí. Přirozeně má také obsah a rejstřík. dokáže takový dokument vytvořit automaticky, když mu poskytneme správný vstup ve formě souboru. Nejprve tedy musíme vytvořit vstupní soubor. Úplný název vstupního souboru se skládá ze jména a přípony. Jméno můžeme zvolit libovolné, ale přípona musí být tex. Když vytvoříme soubor s názvem mujsoubor.tex, nebudeme mít s během CONTEXTu žádné potíže. CONTEXT Vstupní soubor může vypadat následovně: \starttext \startstandardmakeup \midaligned{Jak vytvořit dokument} \midaligned{Autor} \stopstandardmakeup \completecontent \chapter{Předmluva} ... vlastní text\index{prvek rejstříku} ... \chapter{První kapitola} \section[prvnisekce]{První sekce} ... vlastní text ... \section{Druhá sekce} \subsection{První podsekce} ... vlastní text\index{další prvek rejstříku} ... \subsection{Druhá podsekce} ... vlastní text ... \section{Třetí podsekce} ... vlastní text ... \chapter{Další kapitola} ... vlastní text ... \chapter[poslednikapitola]{Poslední kapitola} ... vlastní text ... \completeindex \stoptext 5 Jak vytvořit dokument očekává na vstupu prostý soubor v kódování ASCII. Můžeme samozřejmě používat libovolný textový editor nebo procesor, ale nesmíme zapomenout, že CONTEXT dokáže načíst jenom ASCII vstup. Většina editorů nebo textových procesorů umí exportovat soubory do prostého ASCII. CONTEXT 1 Vstupní soubor by měl obsahovat text, který chceme zpracovat programem CONTEXT, a příkazy CONTEXTu. Příkazy CONTEXTu začínají znakem \. Příkazem \starttext označujeme začátek textu. Oblast před příkazem \starttext se nazývá deklarační oblast a používá se k definování nových příkazů a nastavení vzhledu dokumentu. Za příkazem obvykle následuje dvojice hranatých závorek [] a/nebo levá a pravá složená závorka {}. V sekvenci \chapter[poslednikapitola]{Poslední kapitola} například povel \chapter po CONTEXTu požaduje, aby vykonal několik činností týkajících se úpravy, typografie a struktury. Těmito činnostmi může být: 1. 2. 3. 4. 5. 6. začátek nové strany, zvětšení počítadla kapitol o jednotku, umístění čísla kapitoly před její název, vynechání určitého vertikálního prostoru, použití většího písma nebo uložení názvu kapitoly (a čísla stránky) do obsahu. Tyto činnosti budou vykonány s argumentem zadaným mezi levou a pravou svorkou: Poslední kapitola. Dosud jsme se nezmínili o parametru [poslednikapitola] mezi hranatými závorkami. Je to návěští s referenčním jménem, které je možné použít pro odkaz na odpovídající kapitolu. Toho se docílí dalšími příkazy CONTEXTu: \in{kapitole}[poslednikapitola] vysází číslo kapitoly, zatímco \about[poslednikapitola] vrátí její název. Seznam činností tedy může být rozšířen o: 7. zavedení referenčního jména poslednikapitola, které reprezentuje číslo a název kapitoly (a uloží se pro pozdější použití). Dalším činnostem týkajícím se průběžných nadpisů, nastavení čítačů nebo interaktivních vlastností se nyní nebudeme věnovat. Když necháme CONTEXT zpracovat uvedený vzorový soubor, získáme velmi jednoduchý dokument s několika očíslovanými kapitolami a s hlavičkami oddílů. Během zpracování souboru se CONTEXT stará o spoustu věcí. Jednou z nich je například číslování stránek. Ovšem k vytvoření obsahu CONTEXT potřebuje znát čísla stránek, která mu při prvním průběhu zatím nejsou známá. Proto musíme tento soubor zpracovat dvakrát (dvojprůchodová úloha). K uložení těchto a podobných informací CONTEXT vytvoří několik pomocných souborů, které se pak zpracovávají programem TEXUTIL. V některých případech musíme vstupní soubor zpracovat třikrát (trojprůchodová úloha). Je také možné spouštět CONTEXT z příkazové řádky příkazem TEXEXEC. Tento skript, dříve napsaný v PERLu dnes v RUBY, se postará i o vícenásobné průchody. TEXEXEC je součástí standardní distribuce CONTEXTu. 6 Jak zpracovat vstupní soubor 2 Jak zpracovat vstupní soubor 2 Jestliže chceme zpracovat vstupní soubor CONTEXTu, můžeme na příkazové řádce napsat: context jmenosouboru Dostupnost dávkového příkazu context závisí na použitém systému. Na to, jakým příkazem se spouští CONTEXT, se zeptejte správce svého systému. Pokud se náš soubor jmenuje mujsoubor.tex, může to být: context mujsoubor nebo, když je řádně nainstalován TEXMFSTART a TEXEXEC: texmfstart texexec --pdf mujsoubor Příponu .tex není potřeba zadávat. Po stlačení klávesy Enter začne zpracovávání. CONTEXT vypisuje na obrazovku informace o průběhu zpracování. Když je soubor zpracován úspěšně, znovu se objeví výzva v příkazové řádce a CONTEXT vytvoří soubor dvi nebo pdf. Jestliže zpracování úspěšné není – například proto, že jsme napsali \stptext namísto \stoptext — CONTEXT na obrazovku vypíše znak ? a oznámí nám, že právě narazil na chybu. Poskytne nám základní informace o druhu chyby a číslo řádky, na kterém se chyba projevila. V okamžiku, kdy se objeví znak ? můžeme napsat: H I Q R X Enter pro nápovědu k chybě, pro vložení opraveného příkazu CONTEXTu, pro ignorování chyb bez výpisu, pro ignorování chyb s výpisem, pro ukončení běhu, nebo pro ignorování chyby. Nejčastěji stlačíme klávesu Enter a zpracování bude pokračovat. Pak můžeme editovat vstupní soubor a chybu odstranit. Některé chyby způsobí, že se na obrazovku vypíše znak * a současně se zpracování zastaví. To je důsledek závažné chyby ve vstupním souboru. Tuto chybu nemůžeme ignorovat a jedinou možností je napsat \stop nebo Ctrl Z. Program se ukončí a my můžeme chybu odstranit. Během zpracování vstupního souboru nás CONTEXT také informuje o činnostech, které na našem dokumentu provádí. Zobrazuje například čísla stránek a informace o jednotlivých krocích. Mimoto vypisuje varování. Ta se týkají typografie a oznamují nám neúspěšné zalomení řádku. Veškeré informace o zpracování se ukládají do záznamového souboru s příponou .log, kde lze přezkoumat varování i chyby a nalézt čísla příslušných řádek vstupního souboru. Při úspěšném zpracování CONTEXT vytvoří nový soubor s příponou .dvi nebo .pdf, v našem příkladu bude tedy vytvořen soubor mujsoubor.dvi nebo mujsoubor.pdf. Zkratka dvi znamená 7 Zvláštní znaky Device Indepent (nezávislý na zařízení). To znamená, že soubor může být dále převeden patřičným ovladačem PostScriptové (PS) tiskárny na soubor vhodný k tisku nebo k prohlížení. Zkratka PDF znamená Portable Document Format (přenosný formát dokumentu). Je to formát pro tisk a prohlížení, nezávislý na operačním systému. 3 3 Zvláštní znaky Už jsme si ukázali, že každý povel CONTEXTu je uvozen znakem \ (obrácené lomítko). To znamená, že \ má pro CONTEXT zvláštní význam. Kromě \ existují ještě další znaky, které vyžadují zvláštní pozornost, pokud je chceme použít v doslovném ‚verbatim‘ módu nebo v módu textovém. Tabulka 3.1 uvádí přehled těchto zvláštních znaků a povely potřebné k jejich vysázení. Zvláštní znak # $ & % Verbatim Text Vstup Vysází se Vstup Vysází se \type{#} \type{$} \type{&} \type{%} # $ & % \# \$ \& \% # Tabulka 3.1 $ & % Zvláštní znaky (1). Další znaky mají zvláštní význam při sázení matematických výrazů a některé lze použít jedině v matematickém módu (viz kapitolu 7). Zvláštní znak + = < > Verbatim Text Vstup Vysází se Vstup Vysází se \type{+} \type{-} \type{=} \type{<} \type{>} + = < > $+$ $-$ $=$ $<$ $>$ + Tabulka 3.2 Zvláštní znaky (2). 8 − = < > Vymezení dokumentu 4 Vymezení dokumentu 4 Každý dokument začíná povelem \starttext a je ukončen povelem \stoptext. Veškerý textový vstup je umístěn mezi tyto dva povely a jedině zde jej CONTEXT bude zpracovávat. Nastavení parametrů se umíst’uje do deklarační oblasti, která se nachází těsně před povelem \starttext. \setupbodyfont[12pt] \starttext Toto je jednořádkový dokument. \stoptext Uvnitř \starttext · · · \stoptext lze dokument rozdělit na čtyři hlavní úseky: 1. 2. 3. 4. úvodní část (angl. front matter) hlavní část (angl. body matter) závěrečná část (angl. back matter) přílohy (angl. appendices) Jednotlivé úseky se definují následovně: \startfrontmatter \startbodymatter \startbackmatter \startappendices ... ... ... ... \stopfrontmatter \stopbodymatter \stopbackmatter \stopappendices V úvodní a v závěrečné části vytváří povel \chapter nečíslovaná záhlaví v obsahu. Tyto úseky se používají nejčastěji pro obsah, seznam obrázků a tabulek, předmluvu, poděkování apod. Strany jsou zde často číslovány římskými číslicemi. Úsek příloh se používá – kdo by to byl řekl? – pro přílohy. Záhlaví zde mohou být sázena jiným způsobem, např. \chapter může místo čísel používat písmena abecedy. Styl sekcí lze nastavit pomocí: 1 \setupsectionblock [...] [..,.=2 .,..] 1 IDENTIFIER 2 number page before after = = = = yes no yes right COMMAND COMMAND 9 Nadpisy 5 Nadpisy 5 Struktura dokumentu je určena nadpisy. Nadpisy (záhlaví) se vytvářejí pomocí povelů uvedených v tabulce 5.1: Číslovaný nadpis Nečíslovaný nadpis \chapter \section \subsection \subsubsection \title \subject \subsubject \subsubsubject ··· ··· Tabulka 5.1 1 2 \chapter [...,...] {...} OPTIONAL 1 REFERENCE 2 TEXT 1 2 \section [...,...] {...} OPTIONAL 1 REFERENCE 2 TEXT 1 2 {...} \subsection [...,...] OPTIONAL 1 REFERENCE 2 TEXT 10 Nadpisy. Nadpisy 1 2 \title [...,...] {...} OPTIONAL 1 REFERENCE 2 TEXT 5 1 2 \subject [...,...] {...} OPTIONAL 1 REFERENCE 2 TEXT 1 2 \subsubject [...,...] {...} OPTIONAL 1 REFERENCE 2 TEXT Tyto povely vytvoří nadpis v předem dané velikosti a řezu písma a přidají vertikální mezeru před a za nadpis. Povelům pro nadpis je možné zadat několik parametrů, jako např.: \title[hasselt-v-noci]{Hasselt v noci} a \title{Hasselt v noci} Hranaté závorky jsou nepovinné a používají se pro odkazování uvnitř dokumentu. Pokud se chceme odkázat na tento nadpis, můžeme napsat např. \at{str.}[hasselt-v-noci]. Tyto nadpisy lze samozřejmě přizpůsobit našemu vkusu a dají se dokonce definovat vlastní nadpisy. To se dělá povelem \setuphead a \definehead. 11 Nadpisy 1 \setuphead [...,...] [..,.=2 .,..] 1 SECTION 2 style 5 = normal bold slanted boldslanted COMMAND textstyle = normal bold slanted boldslanted COMMAND numberstyle = normal bold slanted boldslanted COMMAND color = IDENTIFIER textcolor = IDENTIFIER numbercolor = IDENTIFIER number = yes no ownnumber = yes no page = left right yes continue = yes no header = none empty high nomarking text = none empty high nomarking footer = none empty high nomarking before = COMMAND inbetween = COMMAND after = COMMAND alternative = normal inmargin middle TEXT hang = none broad fit line NUMBER command = \...#1#2 numbercommand = \...#1 textcommand = \...#1 deepnumbercommand = \...#1 deeptextcommand = \...#1 prefix = + - TEXT placehead = yes no empty incrementnumber = yes no LIST FILE resetnumber = yes no file = IDENTIFIER expansion = yes no command margintext = yes no inherits from \setupheads 1 2 \definehead [...] [...] 1 IDENTIFIER 2 SECTION \definehead [mujnadpis] [section] \setuphead [mujnadpis] [numberstyle=bold, textstyle=bold, 12 type cap small... type cap small... type cap small... Odrážky a výčty before=\hairline\blank, after=\nowhitespace\hairline] \mujnadpis[nadpis]{Hasselt má velkou publicitu} Tím se definuje nový typ nadpisu \mujnadpis, který zdědí vlastnosti \section. Vypadal by nějak takto: 6 5.1 Hasselt má velkou publicitu Ještě o jednom povelu bysme měli vědět, a to o \setupheads. Používá se k nastavení číslování pro číslované nadpisy. Pokud napíšeme: \setupheads [alternative=inmargin, separator=--] pak se všechna čísla objeví na okraji. Sekce 1.1 by vypadala jako 1–1. Povely jako \setupheads se píšou do deklarační oblasti vstupního souboru. \setupheads [..,.=* .,..] * sectionnumber alternative separator stopper align aligntitle tolerance indentnext command margin = = = = = = = = = = yes NUMBER no normal margin middle TEXT paragraph TEXT TEXT inner outer left right middle normal yes float no verystrict strict tolerant verytolerant yes no \...#1#2 DIMENSION 6 no yes stretch Odrážky a výčty Jedním ze způsobů, jak rozčlenit text, je vyjmenování nebo shrnutí jednotlivých položek. Příkaz pro vytvoření seznamu vypadá takto: 13 Odrážky a výčty 1 \startitemize [...,...] [..,.=2 .,..] ... OPTIONAL 6 1 a A KA n N m stopper joinedup r R KR atmargin 2 inherits from \setupitemize \stopitemize OPTIONAL NUMBER continue standard broad serried packed inmargin intro columns text paragraph repeat Příklad: \startitemize[R,packed,broad] \item Hasselt byl založen ve 14.století. \item Hasselt je známý jako tzv. hanzovní město. \item Jméno Hasselt vychází z~názvu stromu. \stopitemize Uvnitř dvojice \startitemize · · · \stopitemize začínáme každou novou položku příkazem \item a za \item nezapomeňme na mezeru. V našem příkladu parametr R specifikuje římské číslování a packed minimální mezeru mezi řádky. Parametr broad zajistí rozumnou horizontální mezeru mezi značkou a textem. Náš příklad by vypadal: I. Hasselt byl založen ve 14.století. II. Hasselt je známý jako tzv. hanzovní město. III. Jméno Hasselt vychází z názvu stromu. Rozčlenění textu do položek je dvoufázový proces. To znamená, že pro získání optimálního rozložení budete muset svůj soubor překompilovat dvakrát. V závorkách je obsažena informace o symbolu odrážky a lokální nastavení proměnných. Argument Značka před položkou 1 • 2 − 3 .. . ? .. . n 1 2 3 4 ··· a a b c d ··· A A B C D ··· r i ii iii iv · · · R I II III IV · · · Tabulka 6.1 Nastavení formátu odrážek. Můžete také nadefinovat svoji vlastní značku pomocí příkazu \definesymbol. Vyzkoušejte například \definesymbol[5][$\clubsuit$] \startitemize[5,packed] \item Hasselt byl zbudován na písečném přesypu. 14 Odrážky a výčty \item Hasselt leží na soutoku dvou řek. \stopitemize Dostanete pak tento výstup: ♣ Hasselt byl zbudován na písečném přesypu. ♣ Hasselt leží na soutoku dvou řek. Někdy je potřeba mít jednotlivé položky nečíslované. V takovém případě použijte místo \item příkaz \head. Hasselt leží v~provincii Overijssel, pro kterou je typické množství různých zvyklostí. \startitemize \head kraamschudden \hfill (vítání novorozeněte) Po narození dítěte sousedé navštíví novopečené rodiče. Zatímco ženy přicházejí dítě obdivovat, muži jej (pokud je to chlapec) posoudí v ostatních ohledech. Je zvykem, že s sebou přinášejí {\em krentenwegge}, což je asi 1~\Meter\ dlouhý hrozinkový chléb. Nedílnou součástí oslav narození je samozřejmě tradiční alkoholický nápoj. \head nabuurschap (naberschop) \hfill (společenství) Prosperita malých komunit bývala velmi závislá na vzájemné pomoci jejích členů. Tito členové {\em nabuurschap}ů si pomáhali v~časích žní, pohřbů a~vůbec při všech těžkostech, které na komunitu doléhaly. \head Abraham \& Sarah \hfill (stáří) Když lidé v~Hasseltu dosáhnou padesáti let, říká se o~nich, že se vídají s~Abrahamem a~Sárou. Je zvykem dát jim tzv. {\em speculaas}, což je zvláštní druh kořeněných keksů. \stopitemize Způsob, jakým se příkaz \head vysází, může být ovlivněn pomocí \setupitemize. V případě zlomu stránky, se \head objeví vždy na nové stránce. (Příkaz \Meter bude vysvětlen v kapitole 9.) Příklad o starých zvycích vypadá takto: Hasselt leží v provincii Overijssel, pro kterou je typické množství různých zvyklostí. • kraamschudden (vítání novorozeněte) Po narození dítěte sousedé navštíví novopečené rodiče. Zatímco ženy přicházejí dítě obdivovat, muži jej (pokud je to chlapec) posoudí v ostatních ohledech. Je zvykem, že s sebou přinášejí krentenwegge, což je asi 1 m dlouhý hrozinkový chléb. Nedílnou součástí oslav narození je samozřejmě tradiční alkoholický nápoj. 15 6 Odrážky a výčty • nabuurschap (naberschop) (společenství) Prosperita malých komunit bývala velmi závislá na vzájemné pomoci jejích členů. Tito členové nabuurschap ů si pomáhali v časích žní, pohřbů a vůbec při všech těžkostech, které na komunitu doléhaly. • Abraham & Sarah 6 (stáří) Když lidé v Hasseltu dosáhnou padesáti let, říká se o nich, že se vídají s Abrahamem a Sárou. Je zvykem dát jim tzv. speculaas, což je zvláštní druh kořeněných keksů. Parametry pro nastavení způsobu zobrazení položek jsou uvedeny v tabulce 6.2. Parametr Význam standard standardní (globalní) nastavení packed bez vertikální mezery mezi položkami serried žádná horizontální mezera mezi značkou a textem joinedup žádné odsazení před a po bloku položek broad horizontální mezera mezi značkou a textem inmargin umístit značku položek do okraje atmargin umístit značku položek k okraji stopper umístí ukončení značky (implicitně ’.’) columns rozmístí položky do sloupců intro brání stránkovému zlomu mezi odrážkami a jejich uvozujícím odstavcem continue pokračování v předchozím číslování Tabulka 6.2 Parametry pro \startitemize. Způsob zobrazení položek je sice možné měnit u každého \startitemize, ale pro zachování jednotného vzhledu je vhodné jej nastavit pro celý dokument pomocí \setupitemize. Parameter columns se používá společně s označením počtu, například kód: \startitemize[n,columns,four] \item Achter ’t Werk . . \item Justitiebastion \stopitemize vysází: 1. Achter ’t Werk 2. Baangracht 3. Brouwersgracht 4. Eikenlaan 5. Eiland 6. Gasthuisstraat 7. Heerengracht 8. Hofstraat 9. Hoogstraat 10. Julianakade 11. Justitiebastion Někdy chceme po krátké přestávce v číslování položek pokračovat. Pak stačí napsat například \startitemize[continue,columns,three,broad] a číslování bude pokračovat ve formátu tří sloupců. 16 Odrážky a výčty 12. 13. 14. 15. 16. 17. Kaai Kalverstraat Kastanjelaan Keppelstraat Markt Meestersteeg 18. 19. 20. 21. 22. 23. Prinsengracht Raamstraat Ridderstraat Rosmolenstraat Royenplein Van Nahuijsweg 24. 25. 26. 27. 28. Vicariehof Vissteeg Watersteeg Wilhelminalaan Ziekenhuisstraat 6 1 2 \setupitemize [...] [...,...] [..,.=3 .,..] OPTIONAL OPTIONAL 1 NUMBER 2 standard broad serried autointro loose repeat 3 margin leftmargin rightmargin width distance factor items start before inbetween after left right beforehead afterhead headstyle marstyle symstyle stopper n symbol align indentnext OPTIONAL each = = = = = = = = = = = = = = = = = = = = = = = packed unpacked stopper joinedup SECTION paragraph intext random no standard DIMENSION no standard DIMENSION no standard DIMENSION DIMENSION DIMENSION NUMBER NUMBER NUMBER COMMAND COMMAND COMMAND TEXT TEXT COMMAND COMMAND normal bold slanted boldslanted type cap normal bold slanted boldslanted type cap normal bold slanted boldslanted type cap TEXT NUMBER NUMBER inner outer left right middle normal no yes no atmargin small... small... small... yes Vnořené položky se automaticky vysázejí správně. Pokud například napíšete: V Nizozemí mohou výši celé řady daní určovat města, takže životní náklady se město od města liší. Rozdíly dosahují až 50\,\% v~daních jako: \setupitemize[2][width=5em] \startitemize[n] \item Daň z~nemovitostí. Daně z~nemovitostí se dělí do dvou složek: \startitemize[a,packed] \item daň z~vlastnictví nemovitosti a \item daň z~nájmu. \stopitemize 17 inmargin COMMAND COMMAND COMMAND Sazba matematiky Pokud nemovitost není v~nájmu, platí obě složky vlastník. \item Poplatek za psa. Vlastník jednoho nebo více psů platí poplatek. Pokud pes zemře, nebo je prodán, je vlastník povinen nahlásit to na radnici. \stopitemize potom horizontální mezeru mezi značkou a textem vnořené položky lze nastavit pomocí: \setupitemize[2][width=5em]. 7 Náš příklad pak bude vypadat takto: V Nizozemí mohou výši celé řady daní určovat města, takže životní náklady se město od města liší. Rozdíly dosahují až 50 % v daních jako: 1. Daň z nemovitostí. Daně z nemovitostí se dělí do dvou složek: a. b. daň z vlastnictví nemovitosti a daň z nájmu. Pokud nemovitost není v nájmu, platí obě složky vlastník. 2. Poplatek za psa. Vlastník jednoho nebo více psů platí poplatek. Pokud pes zemře, nebo je prodán, je vlastník povinen nahlásit to na radnici. 7 Sazba matematiky 7.1 Úvod je především program pro sazbu matematiky. Přesto tato kapitola týkající se sazby matematiky není rozsáhlá, jak byste možná očekávali. Pokud potřebujete v TEXu sázet vzorce, doporučujeme vám ke studiu: 2 TEX • The TEXBook, autor: D. E. Knuth • The Beginners Book of TEX, autoři: S. Levy a R. Seroul Kromě toho o sazbě matematických rovnic pojednává CONTEXTový magazín ‚My Way: Using \startalign and friends‘ od Aditya Mahajana, viz přílohu A. 2 V tomto manuálu se při sazbě matematiky opíráme o knížku TEXniques, kterou napsal Arthur Samuel. 18 Sazba matematiky 7.2 Sazba matematiky Zvyklosti pro sazbu běžného a matematického textu se obvykle liší. TEX tyto zvyklosti ‚zná‘ a během vytváření dokumentu je přesně aplikuje. Pokud je požadována vysoká kvalita matematické sazby, můžeme se na TEX plně spolehnout. Několik zvyklostí pro sazbu matematiky: 1. 2. 3. 4. 5. 6. Znaky jsou sázeny v matematicke kurzive (neplést s běžnou kurzívou při použití fontů). Užívají se symboly jako řecké znaky (α, χ) a matematické značky (≤, ≥, ∈). Délky mezer jsou také jiné než v běžném textu. V matematických výrazech se také užívá jiný způsob zarovnání textu. Horní a dolní indexy jsou umístěny automaticky. Například: abc . Určité symboly mají různý vzhled podle toho, zda jsou uvedeny ve vnitřním nebo v display matematickém módu. Při sazbě matematiky musíte pracovat v tak zvaném matematickém módu, ve kterém jsou výrazy definovány pomocí příkazů plain TEXu. Matematický mód má dvě alternativy: vnitřní matematický mód a display matematický mód. Vnitřní matematický mód je ohraničen znaky $ a $, zatímco display mód je aktivován pomocí $$ a $$. Město Hasselt pokrývá plochu 42,05 \Square \Kilo \Meter. Pokud budeme uvažovat kruhovou oblast této velikosti s~hasseltským tržištěm v~geometrickém středu $T$, můžeme spočítat průměr této oblasti pomocí vzorce ${{1}\over{4}} \pi d^2$. Tento text bude vypadat po vysázení takto: Město Hasselt pokrývá plochu 42,05 km2 . Pokud budeme uvažovat kruhovou oblast této velikosti s hasseltským tržištěm v geometrickém středu T, můžeme spočítat průměr této oblasti pomocí vzorce 14 πd2 . Větší množství {} (složených závorek) ve výrazu 41 πd2 je potřeba pro určení priority jednotlivých operací. Pokud zapomeneme na vnější závorky a zapíšeme: ${1}\over{4} \pi d^2$, dostane1 me nežádoucí výsledek: 4πd 2. Písmena a číslice jsou sázena ve třech velikostech (stylech): velikost textu a + b, velikost indexu (script): a+b a velikost indexu v indexu (scriptscript) a+b. Velikost lze ovlivnit příkazy \scriptstyle a \scriptscriptstyle. R P Symboly jako a vypadají jinak ve vnitřním a jinak v display matematickém módu. Pokud R +∞ P napíšeme $\sum_{n=1}^{m}$ nebo $\int_{-\infty}^{+\infty}$, dostaneme m n=1 a −∞ . To samé v display módu: $$\sum_{n=1}^{m}$$ a $$\int_{-\infty}^{+\infty}$$ však bude vypadat takto: Z +∞ m X a −∞ n=1 Pomocí příkazů \nolimits a \limits můžeme ovlivnit vzhled symbolů \sum a \int: Z+∞ Xm a n=1 −∞ 19 7 Sazba matematiky Pro sazbu zlomků můžeme použít příkaz \over. V CONTEXTu můžeme používat také alternativu a \frac. Například pro vysázení 1+b + c stačí zapsat: $\frac{a}{1+b}+c$. Další příkazy pro umístění různých částí výrazu nad sebe: \atop \choose \brack \brace 7 a ${a} \atop {b}$ b n+1 ${n+1} \choose {k}$ k m ${m} \brack {n}$ n m ${m} \brace {n-1}$ n−1 může přizpůsobit velikost závorek jako ( ) a { } automaticky, pokud levou závorku předchází příkaz \left a podobně pravou \right. Například zápis $$1+\left(\frac{1}{1-x^{x2}}\right)^3$$ bude vypadat: 3 1 1+ 1 − xx−2 TEX Sazby horního a dolního indexu dosáhneme pomocí ‚_‘ a ‚^‘. Tyto značky mají vliv pouze na první následující znak, takže víceznakové indexy je nutné ohraničovat složenýma závorkama { }. V určitých situacích mohou být závorky zvětšeny pomocí příkazů \bigl, \Bigl, \biggl, \Biggl a jejich pravostranných ekvivalentů. Pokud to nestačí, tak ještě větších závorek můžeme dosáhnout spoluprací příkazů \left a \right s konstrukcí \vbox. Více než popis to objasní příklad, byt’ poněkud méně čitelný: $$\left(\vbox to 16pt{}x^{2^{2^{2^{2}}}}\right)$$ ! 22 22 x V display matematickém módu podléhají automatickému přizpůsobení velikosti následující symboly: \lfloor \rfloor \lceil \rceil b c d e \langle \rangle / \backslash h i / \ | k ↑ ⇑ \vert \Vert \uparrow \Uparrow \downarrow \Downarrow \updownarrow \Updownarrow ↓ ⇓ l m Pokud v display módu chceme použít složené zlomky, pak bychom měli zapsat běžným způsobem pouze ten vnější a pro ostatní by se měla zvolit forma a/b. Pro vysázení: a0 + a a1 + 1 a2 bychom neměli psát $$a_0 + {\frac{a}{a_1 + \frac{1}{a_2}}}$$ ale spíše $$a_0 + {\frac{a}{a_1 + 1/a_2}}$$, abychom dostali přehlednější a0 + a a1 + 1/a2 Mimoto lze použít příkaz \displaystyle. Pokud zapíšeme $$a_0 + {\frac{a}{a_1 + \frac{1}{\strut \displaystyle a_2}}}$$ , tak dostaneme: a0 + a a1 + a12 Níže ukážeme použití příkazů \matrix, \pmatrix, \ldots, \cdots a \cases bez dalšího vysvětlování. 20 Sazba matematiky $$ A=\left(\matrix{x-\lambda & 1 & 0 \cr 0 & x-\lambda & 1 \cr 0 & 0 & x-\lambda \cr}\right) $$ x − λ A = 0 0 1 x−λ 0 0 1 x−λ $$ A=\left|\matrix{x-\mu& 1 & 0 \cr 0 & x-\mu & 1 \cr 0 & 0 & x-\mu \cr}\right| $$ x − µ A = 0 0 1 x−µ 0 0 1 x − µ $$ A=\pmatrix{a_{11} a_{21} \vdots a_{m1} & & & & a_{12} a_{22} \vdots a_{m2} & & & & \ldots \ldots \ddots \ldots & & & & a_{1n} a_{2n} \vdots a_{mn} \cr \cr \cr \cr} a12 a22 .. . ... ... .. . a1n a2n .. . am2 ... amn $$ a 11 a 21 A = .. . am1 $$ |x|=\cases{\hphantom{-}x, & pokud $x\geq0$; \cr -x, & jinak. \cr} $$ ( |x| = x, −x, pokud x ≥ 0; jinak. Pokud chceme vysázet v matematickém výrazu běžný text, musíme uvážit dvě věci. Za prvé, mezera se v matematickém módu se nevysází běžným způsobem a je třeba ji vynutit pomocí \ (obráceného lomítka). Za druhé, je nutné změnit font, protože běžný text by se neměl sázet matematickou kurzivou, ale aktuálním fontem. x3 + termy nižších řádů 21 7 Sazba matematiky Matematické funkce jako sin a tan, které se musí vysázet aktuálním fontem, jsou v TEXu předdefinované: \arccos \arcsin \arctan \arg \cos \cosh \cot \coth \csc \deg \det \dim \exp \gcd \hom \inf \ker \lg \lim \liminf \limsup \ln \log \max \min \Pr \sec \sin \sinh \sup \tan \tanh Pokud zapíšeme funkci sinus $$\sin 2\theta=2\sin\theta\cos\theta$$ nebo limitu $$\lim_{x\to0}{\frac{\sin x}{x}}=1$$ dostaneme: 7 sin 2θ = 2 sin θ cos θ nebo lim x→0 sin x =1 x Zarovnání v matematických výrazech si zaslouží zvláštní pozornost. Ve víceřádkových výrazech někdy potřebujeme zarovnání podle znaménka ‚=‘. To se dělá pomocí příkazu \eqalign. Pokud zapíšeme: $$\eqalign{ ax^2+bx+c &= 0 \cr x &= \frac{-b \pm \sqrt{b^2-4ac}}{2a} \cr}$$ vysází se: ax2 + bx + c = 0 √ −b ± b2 − 4ac x= 2a Někdy je potřeba zarovnávat podle více různých míst. Jak lze tento požadavek uskutečnit, je vidět na druhém řádku následujícího příkladu: $$\eqalign{ ax+bx+\cdots+yx+zx & = x(a +b+ \cdots \cr &\phantom{= x(a~}+y+z) \cr & = y \cr}$$ Výsledkem pak je: ax + bx + · · · + yx + zx = x(a + b + · · · + y + z) =y Vedle příkazu \phantom je zde ještě \hphantom bez výšky a hloubky a \vphantom bez šířky. Na velikosti mezer v matematickém výrazu se většinou můžeme na TEX plně spolehnout. Nicméně v některých situacích se nám může hodit jejich velikost ovlivňovat. To se dělá pomocí: \! \, \> \; − 61 \quad 1 6 \quad 2 9 \quad 5 18 \quad Velikost těchto ‚mezer‘ je určena relativně k mezeře, kterou lze vyvolat příkazem \quad a která má šířku velkého písmene ‚M‘. 22 Sazba matematiky Užití příkazu \prime 3 hovoří sama za sebe. Pokud bychom například chtěli vysázet y01 + y00 , měli 2 bychom zapsat $y_1^\prime+y_2^{\prime\prime}$. p Výraz jako 3 x2 + y2 lze získat pomocí zápisu $\root 3 \of {x^2+y^2}$. Na konci této sekce si ukážeme použití příkazu \mathstrut, kterým můžeme dosáhnout vyrovnání velikostí, například symbolů odmocnin. Pomocí $\sqrt{\mathstrut a}+\sqrt{\mathstrut p p p d}+\sqrt{\mathstrut y}$ dostaneme a + d + y. Bez příkazu \mathstrut bychom dostali √ √ √ a + d + y. 7 7.3 Umístění matematických formulí Jednotlivé matematické vzorce můžeme číslovat pomocí: 1 2 3 \placeformula [...,...] {...} $$...$$ OPTIONAL 1 REFERENCE 2 TEXT OPTIONAL 3 \startformula ... \stopformula Dva příklady: \placeformula[formula:aformula] \startformula y=x^2 \stopformula \placeformula \startformula \int_0^1 x^2 dx \stopformula y = x2 (7.1) 1 Z x2 dx (7.2) 0 příkazy \startformula · · · \stopformula nahrazují počáteční a koncové $$. Když totiž napíšeme: CONTEXTové $$ \int_0^1 x^2 dx $$ 3 ‚prime‘ je anglický výraz pro čárku v indexu. Pozn. překl. 23 Sazba matematiky dostaneme výraz, který je sice zobrazen ve středu stránky, ale není tak dobře zarovnán jako v předcházejících příkladech. 1 Z x2 dx 0 Příkaz \placeformula zajistí mezeru okolo matematického vzorce a také její označení číslem. Hranaté závorky nejsou povinné a slouží pro uvedení referenčního jména pro odkazy, a také pro zapnutí a vypnutí číslování. 7 y = x2 (7.3) y = x3 (7.4) y = x4 (7.5) Rovnice 7.4 byla vysázena takto: \placeformula[rovnice:prostredni] \startformula y=x^3 \stopformula Nápis v hranaté závorce [rovnice:prostredni] slouží pro odvolání se na tuto rovnici v textu. Tuto referenci jsme provedli příkazem \in{Rovnice}[rovnice:prostredni]. Jestliže nevyžadujeme číslování, zapíšeme: \placeformula[-] Číslování rovnic se nastavuje pomocí \setupnumbering. V tomto manuálu je číslování nastaveno příkazem \setupnumbering[way=bychapter]. To znamená, že před číslem rovnice je uvedeno číslo kapitoly a v každé další kapitole je číslování opět vynulováno. Pro zachování jednotnosti jsou tabulky, obrázky apod. číslovány stejným způsobem. Proto se \setupnumbering používá v deklarační oblasti vstupního souboru. Rovnice mohou být nastaveny pomocí příkazu: 24 Příkazy v matematickém módu \setupformulae [..,.=* .,..] * location left right align option strut distance margin leftmargin rightmargin indentnext alternative spacebefore after separator conversion = = = = = = = = = = = = = = = = left right TEXT TEXT inner outer left middle yes no DIMENSION DIMENSION standard DIMENSION DIMENSION yes no IDENTIFIER DIMENSION DIMENSION TEXT numbers characters 8 right yes middle normal \alpha \beta \gamma \delta \epsilon \varepsilon \zeta \eta \theta \vartheta Λ Ξ Π ι κ λ µ ν ξ o π $ ρ 8 Characters romannumerals \aleph \hbar 0 ∅ Romannumerals TEXT Příkazy v matematickém módu \iota \kappa \lambda \mu \nu \xi o \pi \varpi \rho Σ Φ Ψ Ω % σ ς τ υ φ ϕ χ ψ ω 8.2 Zvláštní symboly ℵ ~ yes no 8.1 Řecká abeceda α β Γ γ ∆ δ ε ζ η Θ θ ϑ no \prime \emptyset ∀ ∃ \forall \exists 25 \varrho \sigma \varsigma \tau \upsilon \phi \varphi \chi \psi \omega Příkazy v matematickém módu ı ` ℘ < = ∂ ∞ 8 \imath \jmath \ell \wp \Re \Im \partial \infty ∇ √ \nabla \surd > \top ⊥ \bot k \Vert ∠ \angle 4 \triangle \ \backslash ¬ [ \ ] ♣ ♦ ♥ ♠ \neg \flat \natural \sharp \clubsuit \diamondsuit \heartsuit \spadesuit 8.3 Operátory doplňující +, − a ∗ ± ∓ \ · × ∗ ? ◦ • ÷ \pm \mp \setminus \cdot \times \ast \star \diamond \circ \bullet \div ∩ ∪ ] u t / . o 4 5 ∨ ∧ ⊕ ⊗ † ‡ q \cap \cup \uplus \sqcap \sqcup \triangleleft \triangleright \wr \bigcirc \bigtriangleup \bigtriangledown \vee \wedge \oplus \ominus \otimes \oslash \odot \dagger \ddagger \amalg 8.4 Operátory P R \sum \int S \bigcup V L \bigwedge \bigoplus Q H \prod \oint F J \bigsqcup \bigodot U \biguplus ` T W N \coprod \bigcap \bigvee \bigotimes 8.5 Relace doplňující >, < a = ≤ ≺ ⊂ ⊆ v ∈ ` _ ^ \leq \prec \preceq \ll \subset \subseteq \sqsubseteq \in \vdash \smile \frown ≥ ⊃ ⊇ w 3 a | k \geq \succ \succeq \gg \supset \supseteq \sqsupseteq \ni \dashv \mid \parallel ≡ ∼ ' ≈ ∼ = ./ ∝ |= . = ⊥ \equiv \sim \simeq \asymp \approx \cong \bowtie \propto \models \doteq \perp 26 Jednotky 8.6 Negované relace 6< 6≤ 6 ≺ 6 6 ⊂ 6 ⊆ 6 v 6> 6≥ 6 6 6⊃ 6⊇ 6w \not< \not\leq \not\prec \not\preceq \not\subset \not\subseteq \not\sqsubseteq \not> \not\geq \not\succ \not\succeq \not\supset \not\supseteq \not\sqsupseteq 6= 6≡ 6∼ 6' 6≈ ∼ 6 = 6 \not= \not\equiv \not\sim \not\simeq \not\approx \not\cong \not\asymp 9 8.7 Šipky ← ⇐ → ⇒ ↔ ⇔ 7 → & ←- ←− ⇐= −→ =⇒ ←→ ⇐⇒ 7−→ . ,→ \leftarrow \Leftarrow \rightarrow \Rightarrow \leftrightarrow \Leftrightarrow \mapsto \searrow \hookleftarrow \longleftarrow \Longleftarrow \Rightarrow \Longrightarrow \longleftrightarrow \Longleftrightarrow \longmapsto \swarrow \hookrightarrow ↑ ⇑ ↓ ⇓ l m % - \uparrow \Uparrow \downarrow \Downarrow \updownarrow \Updownarrow \nearrow \nwarrow 8.8 Alternativní příkazy 6= ≤ ≥ \ne \le \ge { } 3 { } \owns ∧ ∨ ¬ \land \lor \lnot → ← mediummedium \gets | k \vert \Vert 9 Jednotky Abychom se přiměli používat míry a jednotky v celém dokumentu jednotně, můžeme vytvořit vlastní seznam těchto jednotek a umístit ho do deklarační oblasti (před příkaz \starttext) vstupního souboru. V CONTEXTu je dostupný vnější modul, který obsahuje téměř všechny jednotky SI. Pokud se na tento modul odvoláme příkazem \usemodule[units], můžeme pak používat jednotky následujícím způsobem: 27 Obrázky \Meter \Per \Square \Meter \Cubic \Meter \Per \Sec \Square \Milli \Meter \Per \Inch \Centi \Liter \Per \Sec \Meter \Inverse \Sec \Newton \Per \Square \Inch \Newton \Times \Meter \Per \Square \Sec 10 Trocha více psaní je vyvážena zárukou jednotného přístupu v užívání jednotek. Příkaz \unit také zaručuje, že od sebe nebudou odděleny hodnota a její jednotka. Pokud se totiž hodnota nachází na konci řádku a následující řádek začíná měrnou jednotkou, má to k dokonalosti daleko. Náš předchozí příklad se vysází takto: m/m2 m3/s mm2/inch cl/s ms−1 N/inch2 N ·m/s2 Můžeme také nadefinovat své vlastní jednotky: \unit[Ounce]{oz}{} Později ve svém dokumentu můžeme napsat 15.6 \Ounce, což bude vysázeno jako 15.6 oz. Pro zapsání % a 0/00 jednotným způsobem slouží dva zvláštní příkazy: \percent \permille 10 Obrázky Obrázky a fotografie vložíme do dokumentu následujícím příkazem: \placefigure [][obr:kostel] {Kostel sv.~Štěpána} {\externalfigure[ma-cb-24][width=.4\textwidth]} Po zpracování se na první dostupné místo vysází obrázek 10.1 28 Obrázky 10 Obrázek 10.1 Kostel sv. Štěpána Příkaz \placefigure se postará o číslování a vertikální odsazení obrázku. Dále tento příkaz inicializuje mechanismus umístění plovoucích objektů, což znamená, že se CONTEXT podívá, zda je na dané stránce pro náš obrázek dostatek místa. Pokud není, bude obrázek umístěn na jiné vhodné místo. V takovém případě bude text pokračovat a obrázek bude proplouvat naším dokumentem, dokud pro něj nebude nalezeno optimální umístění. Tento mechanismus můžeme ovlivňit parametrem v první dvojicí závorek. Příkaz \placefigure je předdefinovanou instancí: 1 2 3 4 \placefloat [...] [...,...] {...} {...} OPTIONAL OPTIONAL 1 left right here top bottom inleft inright inmargin margin leftmargin rightmargin leftedge rightedge innermargin outermargin inneredge outeredge inner outer line high low fit page leftpage rightpage opposite always auto force tall reset line height depth split 2 REFERENCE 3 TEXT 4 TEXT Zde použitelné parametry jsou popsané v tabulce 10.1. Druhý pár hranatých závorek je určen pro referenční jméno odkazu. Na konkrétní obrázek se můžete odkázat příkazem: \in{obrázek}[obr:kostel] První pár složených závorek tohoto příkazu obsahuje popisek obrázku. Můžeme tam napsat libovolný text. Pokud si nepřejeme žádný popisek, ani číslování, můžeme použít {none}. Popisek je formátován pomocí \setupcaptions a nastavení (případně vynulování) číslování se řídí příkazem \setupnumbering (viz sekce 37.2). 29 Obrázky Parametr Vysvětlení here pokud je to možné, umísti obrázek na toto místo force vynut’ umístění obrázku na tomto místě page umísti obrázek na zvláštní stránku top umísti obrázek k hornímu okraji stránky bottom umísti obrázek k dolnímu okraji stránky left umísti obrázek k levému okraji right umísti obrázek k pravému okraji margin umísti obrázek do marginálie 10 Tabulka 10.1 Parametry v příkazu \placefigure. Druhý pár závorek je pro vložení vlastního obrázku. Nejčastěji zde uvádíme příkaz pro vložení externího souboru \externalfigure, viz níže. V následujícím příkladu vidíme použití funkce \placefigure{}{}. Všimněme si obsahu druhé závorky, nutné pro vysázení Hasselt . \placefigure {Orámovaný Hasselt} {\framed{\tfd Hasselt}} Tento příklad vysází: Hasselt Obrázek 10.2 Orámovaný Hasselt Obrázky nicméně často vytváříme v programech jako Corel Draw nebo Illustrator. Fotky – po oskenování – se obvykle upraví v GIMPu nebo PhotoShopu. Po této práci máme obrázky ve formě souborů. CONTEXT podporuje všechny formáty souborů, se kterými umí nakládat ovladač v pozadí CONTEXTu. Pokud používáme PDFTEX, můžeme vkládat JPG, PNG a jednotlivé stránky ze souborů PDF jakož i výstup METAPOSTu, (soubory typu MPS). Uživatelé obvykle mohou CONTEXTu důvěřovat, že nalezne nejlepší možný formát souboru. Na obrázku 10.3 vidíme fotografii a vektorovou grafiku kombinovanou do jednoho obrázku. Tento obrázek můžeme vysázet pomocí kódu podobného tomuto: \placefigure [here,force] [fig:canals] {Hasseltské kanály.} {\startcombination[2*1] {\externalfigure[ma-cb-03][width=.4\textwidth]} {oskenovaný obrázek} {\externalfigure[ma-cb-00][width=.4\textwidth]} {vektorová grafika} \stopcombination} 30 Obrázky oskenovaný obrázek vektorová grafika Obrázek 10.3 10 Hasseltské kanály. V tomto jednom plovoucím objektu jsou dva obrázky kombinovány pomocí: * \startcombination [...] ... * \stopcombination N*M Dvojice příkazů \startcombination · · · \stopcombination je užívána pro kombinaci dvou obrázků do jednoho plovoucího objektu. Pomocí hranatých závorek můžeme ovlivnit vysázení většího množství obrázků. Jeden obrázek pod druhým se vysází pomocí [1*2]. Můžeme si představit, co se stane, když zkombinujeme 6 obrázků pomocí [3*2] ([řádky*sloupce]). Uvedené příklady jsou dostačující pro vytváření ilustrovaných dokumentů. Nicméně někdy je potřeba více ovlivnit uspořádání obrázku a textu. Pro tento účel můžete použít: 1 \startframedtext [...] [..,.=2 .,..] OPTIONAL 1 left right middle 3 4 {...} {...} ... \stopframedtext OPTIONAL none 2 inherits from \setupframedtexts 3 TEXT 4 TEXT Místo slova framed můžeme použít dříve definovaný rámovaný objekt. Obrázek (figure) a tabulka (table) jsou již předdefinované, jak je vidět z následujícího příkladu kombinujícího obrázek s textem. \startfiguretext [left] [fig:citizens] {none} {\externalfigure[ma-cb-18][width=.5\makeupwidth]} Počet obyvatel Hasseltu se odjakživa měnil v~závislosti na ekonomických podmínkách. Příkladem může být kopání 31 Obrázky kanálu Dedemsvaart kolem roku 1810. Protože vedl přímo skrz Hasselt, obchod vzkvétal. To vedlo k růstu populace o~téměř 40\,\% během 10~let. V~současnosti již Dedemsvaart nemá obchodní význam; zdejší kanály se staly turistickou atrakcí. Ale upomínky na dřívější časy prosperujícího obchodu, mohou být vidět všude. \stopfiguretext Po vysázení uvidíme: Počet obyvatel Hasseltu se odjakživa měnil v závislosti na ekonomických podmínkách. Příkladem může být kopání kanálu Dedemsvaart kolem roku 1810. Protože vedl přímo skrz Hasselt, obchod vzkvétal. To vedlo k růstu populace o téměř 40 % během 10 let. V současnosti již Dedemsvaart nemá obchodní význam; zdejší kanály se staly turistickou atrakcí. Ale upomínky na dřívější časy prosperujícího obchodu, mohou být vidět všude. 10 Poslední pár složených závorek většinou obsahuje příkaz \externalfigure. 1 \externalfigure [...] [..,.=2 .,..] 1 FILE 2 inherits from \useexternalfigure Tento příkaz nám dává svobodu vysázet obrázek jakýmkoliv způsobem si budeme přát. \externalfigure obsahuje dva páry hranatých závorek. První se užívá pro přesný název souboru bez přípony, druhý pro požadované rozměry a ev. formát souboru. Není obtížné si představit co způsobí vysázení zdrojového textu: 4 \inmargin {\externalfigure [ma-cb-23] [width=\marginwidth]} Umístění a rozměry obrázku můžeme ovlivnit pomocí: 4 Viz stranu 61. 32 Obrázky \setupfloats [..,.=* .,..] * location = left right middle width = fit DIMENSION before = COMMAND after = COMMAND margin = DIMENSION spacebefore = small medium big spaceafter = small medium big sidespacebefore = small medium big sidespaceafter = small medium big indentnext = yes no ntop = NUMBER nbottom = NUMBER nlines = NUMBER default = IDENTIFIER tolerance = 0 1 2 leftmargindistance = DIMENSION rightmargindistance = DIMENSION sidealign = normal line numbering = yes nocheck inherits from \setupframed none none none none 10 Můžeme také nastavit číslování obrázků a jejich popisek: \setupcaptions [..,.=* .,..] * location width minwidth headstyle style number inbetween align conversion way separator stopper command distance = = = = = = = = = = = = = = top bottom none high low middle fit broad max DIMENSION fit DIMENSION normal bold slanted boldslanted type cap normal bold slanted boldslanted type cap yes no COMMAND inner outer left right middle normal no numbers characters Characters romannumerals bytext bycd:section TEXT TEXT COMMAND DIMENSION small... small... COMMAND COMMAND yes Romannumerals Následující příkazy patří do deklarační oblasti vstupního souboru a mají tedy vliv na všechny plovoucí objekty. \setupfloats [location=right] \setupcaptions [location=top, style=boldslanted] 33 Tabulky \placefigure {Typický obrázek Hasseltu.} {\externalfigure[ma-cb-12][width=8cm]} Obrázek 10.4 Typický obrázek Hasseltu. 11 11 Tabulky Tabulka se obecně skládá ze sloupců. Jejich obsah může být zarovnán vlevo, vpravo, na střed či k desetinné čárce. Záhlaví může zaujímat jeden nebo více sloupců. Buňky tabulky mohou obsahovat rovnice nebo několik řádků textu. Horizontální a vertikální linky mohou vést přes celou tabulku nebo jen přes její část. Toto napsal J. Wichura v předmluvě manuálu o TABLE (TABLE manual, 1988). Michael Wichura je také autorem jedné ze sady maker TABLE, kterou CONTEXT používá k sazbě tabulek. 5 34 Tabulky Do definic TABLE bylo oproti originálu přidáno několik maker zajišt’ujících konzistentnější řádkování a bylo zjednodušeno uživatelské rozhraní. 6 Tabulku umístíme příkazem \placetable. Definujeme ji pomocí * \starttable [...] ... * TEXT \stoptable IDENTIFIER Definice tabulky může vypadat následovně: \placetable[here][tab:ships]{Lodě kotvící v~Hasseltu.} \starttable[|c|c|] \HL \NC \bf Rok \NC \bf Počet lodí \NC\SR \HL \NC 1645 \NC 450 \NC\FR \NC 1671 \NC 480 \NC\MR \NC 1676 \NC 500 \NC\MR \NC 1695 \NC 930 \NC\LR \HL \stoptable Tato tabulka je vysázena jako tabulka 11.1. Rok Počet lodí 1645 450 1671 480 1676 500 1695 930 Tabulka 11.1 Lodě kotvící v Hasseltu. První příkaz \placetable má stejnou funkci jako \placefigure. Postará se o vertikální odsazení tabulky a o její číslo. Dále spustí mechanismus umístění plovoucího objektu a ten nalezne optimální polohu tabulky na stránce. Položky tabulky se zadávají dovnitř dvojice \starttable · · · \stoptable. Do hranatých závorek vkládáme značky pro formátování tabulky, viz tabulku 11.2. 5 6 nabízí ještě jiné sady. Velmi zajímavé jsou ‚přirozené tabulky‘ \bTABLE. Umožňují podobnou syntaxi jako HTML tabulky s velkou variabilitou sdružování buněk a bohatými grafickými možnostmi. Řádkování je však méně přirozené. Viz manuál http://www.pragma-ade.com/general/manuals/enattab.pdf a magazín http://www.pragma-ade.com/general /myway/NaturalTables.pdf. Pozn. překl. CONTEXT byl vyvinut (také) pro uživatele bez technického nadání v éře WYSIWIG. Proto bylo doplněno přívětivé uživatelské rozhraní se snadnou manipulací se soubory a byly vypuštěny kryptické příkazy a programové i logické konstrukce. CONTEXT 35 11 Tabulky Značka Význam | c l r s<n> w<rozměr> oddělovač sloupců sloupec se zarovnáním na střed sloupec se zarovnáním vlevo sloupec se zarovnáním vpravo mezisloupcová mezera o hodnotě n = 0, 1, 2 minimální šířka sloupce o dané hodnotě Značky pro formátování tabulky. Tabulka 11.2 11 Jak jsme již viděli, existují kromě formátovacích značek ještě formátovací příkazy. Vkládají se přímo do jednotlivých buněk. Ty základní ukazuje tabulka 11.3. Příkaz Význam \NR \FR \LR \MR \SR \VL \NC \HL \DL \DL[n] \DC \DR \LOW{text} \TWO, \THREE etc. další řádka udělěj řádku bez vertikálního vyrovnání první řádka udělěj řádku s horním vyrovnáním poslední řádka udělej řádku s dolním vyrovnáním prostřední řádka udělej řádku s horním i dolním vyrovnáním oddělovací řádka udělej řádku s horním i dolním vyrovnáním svislá linka nakresli svislou linku a jdi na další sloupec další sloupec jsi na další sloupec vodorovná linka nakresli vodorovnou linku oddělovací linka? nakresli linku přes následující sloupec oddělovací linka? nakresli odělovací linku přes n sloupců oddělovací linka? udělej mezeru přes následující sloupec oddělovací řádka? udělej řádku s horním i dolním vyrovnáním — napiš text níže — udělej mezeru přes dva, tři, . . . sloupce Příkazy ? \DL, \DC a \DR lze kombinovat. Tabulka 11.3 Příkazy pro formátování tabulky. V dalších příkladech uvidíme formátovací příkazy CONTEXTu. Jejich jména jsou delší a méně kryptická a řídí další formátovací funkce tabulek. V tabulce 11.4 je jejich přehled. Příkaz Význam \JustLeft \JustRight \JustCenter \SetTableToWidth{} \use{n} zarovnej vlevo a ignoruj formátování sloupce Tabulka 11.4 zarovnej vpravo a ignoruj formátování sloupce vycentruj a ignoruj formátování sloupce nastav pevnou šířku tabulky přeskoč příštích n sloupců CONTEXTové formátovací příkazy tabulky. Tabulky ukázané dále jsou uvedené se zdrojovými texty. Pro složitější ukázky si lze také přečíst TABLE manuál M. J. Wichury. 36 Tabulky \placetable [here,force] [tab:effects of commands] {Vliv formátovacích příkazů.} {\startcombination[2*1] {\starttable[|c|c|] \HL \VL \bf Rok \VL \bf Počet obyvatel \VL\SR \HL \VL 1675 \VL ~428 \VL\FR \VL 1795 \VL 1124 \VL\MR \VL 1880 \VL 2405 \VL\MR \VL 1995 \VL 7408 \VL\LR \HL \stoptable}{standardní} {\starttable[|c|c|] \HL \VL \bf Rok \VL \bf Počet obyvatel \VL\NR \HL \VL 1675 \VL ~428 \VL\NR \VL 1795 \VL 1124 \VL\NR \VL 1880 \VL 2405 \VL\NR \VL 1995 \VL 7408 \VL\NR \HL \stoptable}{pouze \type{\NR}} \stopcombination} Ve výše uvedeném příkladu jsou v první tabulce použity \SR, \FR, \MR a \LR. Tyto příkazy se starají o vkládání mezer uvnitř tabulky. Jak je vidět, příkaz \NR pouze začíná novou řádku. Rok Počet obyvatel 1675 428 1795 1124 1880 2405 1995 7408 Rok 1675 1795 1880 1995 standardní Tabulka 11.5 Počet obyvatel 428 1124 2405 7408 pouze \NR Vliv formátovacích příkazů. V dalším příkladě je ukázáno vyrovnání sloupců pomocí značek s0 a s1. \startbuffer[one] \starttable[|c|c|] \HL \VL \bf Rok \VL \bf Obyvatel \VL\SR \HL \VL 1675 \VL ~428 \VL\FR 37 11 Tabulky \VL 1795 \VL \VL 1880 \VL \VL 1995 \VL \HL \stoptable \stopbuffer 11 1124 \VL\MR 2405 \VL\MR 7408 \VL\LR \startbuffer[two] \starttable[s0 | c | c |] \HL \VL \bf Rok \VL \bf Obyvatel \VL\SR \HL \VL 1675 \VL ~428 \VL\FR \VL 1795 \VL 1124 \VL\MR \VL 1880 \VL 2405 \VL\MR \VL 1995 \VL 7408 \VL\LR \HL \stoptable \stopbuffer \startbuffer[three] \starttable[| s0 c | c |] \HL \VL \bf Rok \VL \bf Obyvatel \VL\SR \HL \VL 1675 \VL ~428 \VL\FR \VL 1795 \VL 1124 \VL\MR \VL 1880 \VL 2405 \VL\MR \VL 1995 \VL 7408 \VL\LR \HL \stoptable \stopbuffer \startbuffer[four] \starttable[| c | s0 c |] \HL \VL \bf Rok \VL \bf Obyvatel \VL\SR \HL \VL 1675 \VL ~428 \VL\FR \VL 1795 \VL 1124 \VL\MR \VL 1880 \VL 2405 \VL\MR \VL 1995 \VL 7408 \VL\LR \HL \stoptable \stopbuffer \startbuffer[five] \starttable[s1 | c | c |] \HL 38 Tabulky \VL \bf Rok \VL \bf Obyvatel \VL\SR \HL \VL 1675 \VL ~428 \VL\FR \VL 1795 \VL 1124 \VL\MR \VL 1880 \VL 2405 \VL\MR \VL 1995 \VL 7408 \VL\LR \HL \stoptable \stopbuffer \placetable [here,force] [tab:example-format-commands] {Vliv formátovacích značek.} {\startcombination[3*2] {\getbuffer[one]} {standardní} {\getbuffer[two]} {\type{s0}} {\getbuffer[three]} {\type{s0} ve sloupci~1} {\getbuffer[four]} {\type{s0} ve sloupci~2} {\getbuffer[five]} {\type{s1}} {} {} \stopcombination} 11 Po zpracování těchto příkladů dostaneme tabulku 11.6. Implicitní tabulka má mezerování sloupců pomocí značek s2. Rok Obyvatel RokObyvatel RokObyvatel 1675 428 1675 428 1675 428 1795 1124 1795 1124 1795 1124 1880 2405 1880 2405 1880 2405 1995 7408 1995 7408 1995 7408 standardní s0 ve sloupci 1 s0 Rok Obyvatel Rok Obyvatel 1675 428 1675 428 1795 1124 1795 1124 1880 2405 1880 2405 1995 7408 1995 7408 s0 ve sloupci 2 Tabulka 11.6 s1 Vliv formátovacích značek. Sloupce bývají občas odděleny svislými linkami | a řádky vodorovnými. \placetable [here,force] [tab:divisions] 39 Tabulky {Vyvolání dojmu volby.} \starttable[|c|c|c|] \NC Steenwijk \NC Zwartsluis \DC \DL \NC Zwartsluis \VL Hasselt \DC \DL \NC Hasselt \NC Steenwijk \stoptable 11 \NC Hasselt \NC\SR \DC \DR \VL Steenwijk \NC\SR \DC \DR \NC Zwartsluis \NC\SR Steenwijk Zwartsluis Hasselt Zwartsluis Hasselt Steenwijk Hasselt Steenwijk Zwartsluis Tabulka 11.7 Vyvolání dojmu volby. Praktičtější příklad je v tabulce 11.8. \placetable [here,force] [tab:example contextcommands] {Vliv formátovacích příkazů \CONTEXT{}u.} \starttable[|l|c|c|c|c|] \HL \VL \FIVE \JustCenter{Volby do městské rady v~roce 1994} \VL\SR \HL \VL \LOW{Strana} \VL \THREE{Okrsky} \VL \LOW{Celkem} \VL\SR \DC \DL[3] \DC \DR \VL \VL 1 \VL 2 \VL 3 \VL \VL\SR \HL \VL PvdA \VL 351 \VL 433 \VL 459 \VL 1243 \VL\FR \VL CDA \VL 346 \VL 350 \VL 285 \VL ~981 \VL\MR \VL VVD \VL 140 \VL 113 \VL 132 \VL ~385 \VL\MR \VL HKV/RPF/SGP \VL 348 \VL 261 \VL 158 \VL ~767 \VL\MR \VL GPV \VL 117 \VL 192 \VL 291 \VL ~600 \VL\LR \HL \stoptable V posledním sloupci je znak ~ použit k simulaci čtyřciferného čísla. Znak ~ má šířku cifry. Někdy se nám tabulka příliš rozroste. Abychom ji vysadili s textem, můžeme například zmenšit použité písmo. Pomocí příkazu 40 Tabulky Volby do městské rady v roce 1994 Okrsky Strana Celkem 1 2 3 PvdA 351 433 459 1243 CDA 346 350 285 981 VVD 140 113 132 385 HKV/RPF/SGP 348 261 158 767 GPV 117 192 291 600 Tabulka 11.8 Vliv formátovacích příkazů CONTEXTu. 11 * \setuptables [..,.=.,..] * distance bodyfont HL VL depth height rulethickness rulecolor align commands align background backgroundscreen backgroundcolor bodyfont = = = = = = = = = = = = = = = small medium 5pt ... 12pt NUMBER small NUMBER small NUMBER strut NUMBER strut DIMENSION IDENTIFIER inner outer COMMAND inner outer screen color NUMBER IDENTIFIER 5pt ... 12pt big small medium medium big big big none none left right middle normal no yes left none right middle normal no yes small big to uděláme takto: \placetable [here,force] [tab:setuptable] {Použití \type{\setuptables}.} {\startcombination[1*3] {\setuptables[bodyfont=10pt] \starttable[|c|c|c|c|c|c|] \HL \VL \use6 \JustCenter{Pokles bohatství v~holandských guldenech (Dfl)} \VL\SR \HL \VL Year \VL 1.000--2.000 \VL 2.000--3.000 \VL 3.000--5.000 41 Tabulky \VL 5.000--10.000 \VL přes 10.000 \VL\SR 11 \HL \VL 1675 \VL 22 \VL 7 \VL 5 \VL 4 \VL 5 \VL\FR \VL 1724 \VL ~4 \VL 4 \VL -- \VL 4 \VL 3 \VL\MR \VL 1750 \VL 12 \VL 3 \VL 2 \VL 2 \VL -- \VL\MR \VL 1808 \VL ~9 \VL 2 \VL -- \VL -- \VL -- \VL\LR \HL \stoptable}{\tt bodyfont=10pt} {\setuptables[bodyfont=8pt] \starttable[|c|c|c|c|c|c|] \HL \VL \use6 \JustCenter{Pokles bohatství v~holandských guldenech (Dfl)} \VL\SR \HL \VL Year \VL 1.000--2.000 \VL 2.000--3.000 \VL 3.000--5.000 \VL 5.000--10.000 \VL over 10.000 \VL\SR \HL \VL 1675 \VL 22 \VL 7 \VL 5 \VL 4 \VL 5 \VL\FR \VL 1724 \VL ~4 \VL 4 \VL -- \VL 4 \VL 3 \VL\MR \VL 1750 \VL 12 \VL 3 \VL 2 \VL 2 \VL -- \VL\MR \VL 1808 \VL ~9 \VL 2 \VL -- \VL -- \VL -- \VL\LR \HL \stoptable}{\tt bodyfont=8pt} {\setuptables[bodyfont=6pt,distance=small] \starttable[|c|c|c|c|c|c|] \HL \VL \use6 \JustCenter{Pokles bohatství v~holandských guldenech (Dfl)} \VL\SR \HL \VL Year \VL 1.000--2.000 \VL 2.000--3.000 \VL 3.000--5.000 \VL 5.000--10.000 \VL přes 10.000 \VL\SR \HL \VL 1675 \VL 22 \VL 7 \VL 5 \VL 4 \VL 5 \VL\FR \VL 1724 \VL ~4 \VL 4 \VL -- \VL 4 \VL 3 \VL\MR \VL 1750 \VL 12 \VL 3 \VL 2 \VL 2 \VL -- \VL\MR \VL 1808 \VL ~9 \VL 2 \VL -- \VL -- \VL -- \VL\LR \HL 42 Tabulky \stoptable}{\tt bodyfont=6pt,distance=small} \stopcombination} Pokles bohatství v holandských guldenech (Dfl) Year 1.000–2.000 2.000–3.000 3.000–5.000 5.000–10.000 přes 10.000 1675 22 7 5 4 5 1724 4 4 – 4 3 1750 12 3 2 2 – 1808 9 2 – – – bodyfont=10pt Pokles bohatství v holandských guldenech (Dfl) Year 1.000–2.000 2.000–3.000 3.000–5.000 5.000–10.000 over 10.000 1675 22 7 5 4 5 1724 4 4 – 4 3 1750 12 3 2 2 – 1808 9 2 – – – bodyfont=8pt Pokles bohatství v holandských guldenech (Dfl) Year 1.000–2.000 2.000–3.000 3.000–5.000 5.000–10.000 přes 10.000 1675 1724 1750 1808 22 4 12 9 7 4 3 2 5 – 2 – 4 4 2 – 5 3 – – bodyfont=6pt,distance=small Tabulka 11.9 Použití \setuptables. Nastavit umístění tabulek můžeme také pomocí již známého 43 11 Tabulky \setupfloats [..,.=* .,..] * 11 location = left right middle width = fit DIMENSION before = COMMAND after = COMMAND margin = DIMENSION spacebefore = small medium big spaceafter = small medium big sidespacebefore = small medium big sidespaceafter = small medium big indentnext = yes no ntop = NUMBER nbottom = NUMBER nlines = NUMBER default = IDENTIFIER tolerance = 0 1 2 leftmargindistance = DIMENSION rightmargindistance = DIMENSION sidealign = normal line numbering = yes nocheck inherits from \setupframed none none none none Číslování a popisky nastavíme příkazem \setupcaptions [..,.=* .,..] * location width minwidth headstyle style number inbetween align conversion way separator stopper command distance = = = = = = = = = = = = = = top bottom none high low middle fit broad max DIMENSION fit DIMENSION normal bold slanted boldslanted type cap normal bold slanted boldslanted type cap yes no COMMAND inner outer left right middle normal no numbers characters Characters romannumerals bytext bycd:section TEXT TEXT COMMAND DIMENSION small... small... COMMAND COMMAND yes Romannumerals Tyto příkazy používáme v deklarační oblasti našeho vstupního souboru a mají globální platnost. \setupfloats[location=left] \setupcaption[style=boldslanted] \placetable[here][tab:opening hours]{Otevírací hodiny knihovny.} \starttable[|l|c|c|] \HL \VL \bf Den \VL \use2 \bf Otevírací hodiny \VL\SR \HL 44 Tabelace / formátování odstavce \VL pondělí \VL úterý \VL středa \VL čtvrtek \VL pátek \VL sobota \HL \stoptable \VL \VL \VL \VL \VL \VL 14.00 – 17.30 \VL 18.30 – 20.30 \VL\FR \VL \VL\MR 10.00 – 12.00 \VL 14.00 – 17.30 \VL\MR 14.00 – 17.30 \VL 18.30 – 20.30 \VL\MR 14.00 – 17.30 \VL \VL\MR 10.00 -- 12.30 \VL \VL\LR Výsledek zobrazuje tabulka 11.10. Den Otevírací hodiny pondělí 14.00 – 17.30 18.30 – 20.30 středa 10.00 – 12.00 14.00 – 17.30 čtvrtek 14.00 – 17.30 18.30 – 20.30 pátek 14.00 – 17.30 sobota 10.00 – 12.30 úterý 12 Tabulka 11.10 Otevírací hodiny knihovny. 12 Tabelace / formátování odstavce Někdy chceme vysázet odstavce zformátované určitým přesně daným způsbem. Toho lze dosáhnout pomocí: 1 \starttabulate [...] OPTIONAL 1 TEXT 2 TEXT 2 [...] ... \stoptabulate OPTIONAL Technika tabelace je úzce svázána s technikou tvorby tabulek. Tabelaci lze využít v těch případech, kdy chcete do buňky tabulky vysázet kompletní odstavec. Tabelace funguje dobře i při stránkovém zlomu. Definice tabelace vypadá nějak takto: 45 Tabelace / formátování odstavce 12 \starttabulate[|w(1cm)B|p(.4\textwidth)|p|] \NC 1252 \NC Hasselt získává městská privilegia od biskupa Hendrika van Viandena. \NC Ostatní města na Hendrika van Viandena naléhala, aby tato privilegia neschvaloval. Hasseltu trvalo dlouho, než biskupa přesvědčil. Poté, co biskupovi poskytl pomoc v~konfliktu proti Drenthe, byla listina vydána. \NC\NR \NC 1350 \NC Hasselt se připojuje k~Hanze, aby tak ochránil svůj mezinárodní obchod. \NC Hanza měla pro obchodníky v~Hasseltu veliký význam. Ze zboží se tehdy platilo clo v~každém městě, na každé silnici nebo mostě. Poté, co se Hasselt stal členem Hanzy, byly mu k~dispozici nezpoplatněné cesty po celé Evropě. Přes tento veliký význam Hanzy zůstal Hasselt vždy jejím méně významným členem. \NC\NR \stoptabulate V tomto případě má první sloupec šířku 1 cm a je vysázen tučným řezem (B). Druhý sloupec má šířku 40 % šířky odstavce a je vysázen jako odstavec. Zbývající horizontální místo je využito posledním odstavcem. Uvedený příklad se vysází takto: 1252 Hasselt získává městská privilegia od biskupa Hendrika van Viandena. 1350 Hasselt se připojuje k Hanze, aby tak ochránil svůj mezinárodní obchod. Ostatní města na Hendrika van Viandena naléhala, aby tato privilegia neschvaloval. Hasseltu trvalo dlouho, než biskupa přesvědčil. Poté, co biskupovi poskytl pomoc v konfliktu proti Drenthe, byla listina vydána. Hanza měla pro obchodníky v Hasseltu veliký význam. Ze zboží se tehdy platilo clo v každém městě, na každé silnici nebo mostě. Poté, co se Hasselt stal členem Hanzy, byly mu k dispozici nezpoplatněné cesty po celé Evropě. Přes tento veliký význam Hanzy zůstal Hasselt vždy jejím méně významným členem. Stejně jako v tabulkách i zde je k dispozici mnoho formátovacích povelů a parametrů. Jejich seznam je uveden v tabulce 12.1. Jiný příklad formátování odstavce by mohl vypadat takto: \definetabulate[ChemOdstavec][|l|p|l|] \startChemOdstavec \NC Vápenky \NC Hasselt ma své vlastní vápenky, které byly vystavěny v~roce 1504 a pálené vápno se v~nich vyrábělo až do roku 1956. Dnes slouží jako turistická atrakce. 46 Tabelace / formátování odstavce zarovnání vlevo l c r in jn kn w(d) p(d) p B zarovnání na střed zarovnání vpravo odsazení vlevo odsazení vpravo mezera okolo 1 řádka, pevná šířka odstavec, pevná šířka odstavec, maximální šířka tučný řez I R S T m M f\command barg.. aarg.. h\command Tabulka 12.1 italika antikva skloněné psací stroj vnitřní matematický mód display matematický mód určení řezu písma umístit .. před položku umístit .. za položku aplikovat na položku \command Povely pro tabelaci. \NC \chemical{CaCO_3,~,GIVES,~,CaO,~,+,~,CO_2} \NC\NR \stopChemOdstavec Vysází se to následovně: Vápenky Hasselt ma své vlastní vápenky, které byly vystavěny v ro- CaCO3 −→ CaO + CO2 ce 1504 a pálené vápno se v nich vyrábělo až do roku 1956. Dnes slouží jako turistická atrakce. Modul pro chemickou sazbu je vysvětlen v jiném manuálu, protože ne každý se zajímá o chemii. Také jsme zde uvedli povel pro definici tabelačního schematu ChemOdstavec 1 2 3 \definetabulate [...] [...] [...] OPTIONAL 1 IDENTIFIER 2 IDENTIFIER 3 TEXT OPTIONAL a existuje také: 47 12 Sloupce 1 \setuptabulate [...] [..,.=2 .,..] OPTIONAL 1 IDENTIFIER 2 unit indenting = = before after inner EQ rulecolor align rulethickness distance bodyfont rule split = = = = = = = = = = = DIMENSION never none not no yes always first next small medium big normal odd even DIMENSION COMMAND COMMAND COMMAND TEXT IDENTIFIER inner outer left right middle normal no yes DIMENSION blank grid depth DIMENSION small medium big none 5pt ... 12pt small big normal line yes no 13 13 Sloupce Nepříliš složité dokumenty je možné sázet do sloupců. Jestliže kus textu zahájíme příkazem \startcolumns a ukončíme \stopcolumns, veškerý takto obklopený materiál bude formátován do sloupců. 7 \startcolumns [..,.=* .,..] ... \stopcolumns OPTIONAL * inherits from \setupcolumns \startcolumns[n=3,tolerance=verytolerant] Hasselt je staré hanzovní město, položené 12\,km severně od Zwolle na řece Zwartewater. Má bohatou historii, která se začíná kolem roku 1252, kdy Hasselt obdržel městská práva. Tuto historii můžeme rozkrývat pomocí velkého počtu památek v~centru města. 7 Složitější dokument, např. s plovoucími obrázky, je lépe sázet pomocí \startcolumnsets . . . \stopcolumnsets. Popis lze najít v manuálu http://www.pragma-ade.com/general/manuals/columns.pdf, viz přílohu A. Pozn. překl. 48 Sloupce Nalezneme zde pozdněgotický kostel Sv. Štěpána založený roku 1479 s~velkolepými varhanami. Budova bývalé radnice, která se nalézá na Tržním náměstí, byla postavena mezi roky 1500 a~1550 a dnes v~něm sídlí muzeum zbraní. Za zmínku stojí zejména sbírka děl na černý střelný prach (haakhussen), která se řadí k největším na světě. Dále je zde větrný mlýn \quote{De Zwaluw} (Vlaštovka) na mletí mouky z~roku 1748, unikátní nábřeží \quote{Stenendijk} a~v~Evropě poslední stará plně funkční vápenka. Centrum města s~kanály lemovanými lípami, oblast Van Stolkspark a dok plný ruchu a~hemžení jsou ideální místa k~procházkám. Okolí Hasseltu stojí ovšem též za zmínku. V~zimě hostí polder Mastenbroek velká stáda ovcí. V~létě tvoří vesničky Genne, Streukel a Celle\-mui\-den s~velice vzácnou květinou řebčíkem kostkovaným (lat. Fritillaria meleagris) výborné prostředí pro pěší i~cyklistické výlety. Hasselt je také velice důležité město vodních sportů. Jezera severozápadně od Overijssel, řeky IJssel, Overijsselse Vecht a Randmeren jsou snadno dosažitelné z~přístavu jachet \quote{De Molenwaard}. Mořeplavbu, rybolov, plavání a jízdu na kanoi si v~Hasseltu můžete vychutnat naplno. A~na závěr uvedeme jednu událost obzvláštního významu. Každoročně se na konci srpna v~Hasseltu slaví dožínky – \quote{Eui Festival}. \stopcolumns Výsledkem bude třísloupcový text. Hasselt je staré hanzovní město, položené 12 km severně od Zwolle na řece Zwartewater. Má bohatou historii, která se začíná kolem roku 1252, kdy Hasselt obdržel městská práva. Tuto historii můžeme rozkrývat pomocí velkého počtu památek v centru města. akhussen), která se řadí k největším na světě. Dále je zde větrný mlýn ‚De Zwaluw‘ (Vlaštovka) na mletí mouky z roku 1748, unikátní nábřeží ‚Stenendijk‘ a v Evropě poslední stará plně funkční vápenka. Centrum města s kanály lemovanými lípami, oblast Van Stolkspark Nalezneme zde pozdněgotický kos- a dok plný ruchu a hemžení jsou ideální místa k procházkám. tel Sv. Štěpána založený roku 1479 s velkolepými varhanami. Okolí Hasseltu stojí ovšem též za Budova bývalé radnice, která se zmínku. V zimě hostí polder Masnalézá na Tržním náměstí, byla tenbroek velká stáda ovcí. V létě postavena mezi roky 1500 a 1550 tvoří vesničky Genne, Streukel a dnes v něm sídlí muzeum zbraa Cellemuiden s velice vzácnou ní. Za zmínku stojí zejména sbírkvětinou řebčíkem kostkovaným ka děl na černý střelný prach (ha- 49 (lat. Fritillaria meleagris) výborné prostředí pro pěší i cyklistické výlety. Hasselt je také velice důležité město vodních sportů. Jezera severozápadně od Overijssel, řeky IJssel, Overijsselse Vecht a Randmeren jsou snadno dosažitelné z přístavu jachet ‚De Molenwaard‘. Mořeplavbu, rybolov, plavání a jízdu na kanoi si v Hasseltu můžete vychutnat naplno. A na závěr uvedeme jednu událost obzvláštního významu. Každoročně se na konci srpna v Hasseltu slaví dožínky – ‚Eui Festival‘. 13 Poznámky pod čarou Je-li to potřeba, pak přechod do nového sloupce může být vynucen pomocí \column. Sloupce nastavíme příkazem \setupcolumns [..,.=* .,..] * 14 n = ntop = rule = height = tolerance = distance = balance = align = blank = option = direction = inherits from NUMBER NUMBER on off DIMENSION verystrict strict tolerant verytolerant stretch DIMENSION yes no inner outer left right middle normal no yes fixed halfline line flexible big medium small background left right \setupframed Ve většině případů dosáhneme při sazbě do sloupců lepších výsledků, zapneme-li sazbu do řádkového rejstříku. To se nastavuje parametrem grid=yes v příkazu \setuplayout. 14 Poznámky pod čarou Pokud chceme opatřit text poznámkou, můžeme použít \footnote. Příkaz vypadá takto: 1 2 \footnote [...] {...} OPTIONAL 1 REFERENCE 2 TEXT Hranaté závorky jsou nepovinné a obsahují referenční jméno poznámky pod čarou. Složené závorky obsahují text, který chcete zobrazit pod čarou. Číslo poznámky pod čarou můžeme získat napsáním referenčního jména do 50 Poznámky pod čarou * \note [...] * REFERENCE Pokud napíšeme text Hanza byla pozdně středověká obchodní aliance měst v oblasti Severního a Baltského moře. Tento spolek byl sestaven na podporu a ochranu obchodování svých členů.\footnote[war]{Tento systém byl také zdrojem závisti a strachu mezi ostatními městy a zapříčinil mnohé válečné střety.} V~období hanzovního systému zde panoval čilý obchodní ruch s veškerým zbožím jako dřevo, vlna, kovy, látky, sůl, víno a~pivo.\note[war] Fungující obchod způsobil enormní růst prosperity a blahobytu v~hanzovních městech.\footnote{Jedním z těchto měst je Hasselt.} 14 pak bude vypadat takto: Hanza byla pozdně středověká obchodní aliance měst v oblasti Severního a Baltského moře. Tento spolek byl sestaven na podporu a ochranu obchodování svých členů. 8 V období hanzovního systému zde panoval čilý obchodní ruch s veškerým zbožím jako dřevo, vlna, kovy, látky, sůl, víno a pivo. 8 Fungující obchod způsobil enormní růst prosperity a blahobytu v hanzovních městech. 9 Číslování poznámek se provádí automaticky. Příkaz \setupfootnotes nám umožní ovlivnit vzhled poznámky. 8 9 Tento systém byl také zdrojem závisti a strachu mezi ostatními městy a zapříčinil mnohé válečné střety. Jedním z těchto měst je Hasselt. 51 Poznámky pod čarou \setupfootnotes [..,.=* .,..] * 14 conversion way location rule before after width height bodyfont style = = = = = = = = = = numbers characters Characters romannumerals Romannumerals bytext bycd:section page TEXT columns firstcolumn lastcolumn high none on off COMMAND COMMAND DIMENSION DIMENSION 5pt ... 12pt small big normal bold slanted boldslanted type cap small... COMMAND distance = DIMENSION columndistance = DIMENSION margindistance = DIMENSION n = NUMBER numbercommand = \...#1 textcommand = \...#1 split = tolerant strict verystrict NUMBER textstyle = normal bold slanted boldslanted type cap small... COMMAND textcolor = IDENTIFIER interaction = yes no factor = NUMBER inherits from \framed Poznámky mohou být umístěny ve spodní části stránky, ale také jinde, např. na konci kapitoly. To provádíme nastavením location=none a uvedením \placefootnotes na konci kapitoly. \placefootnotes [..,.=* .,..] OPTIONAL * inherits from \setupfootnotes Poznámka se také může přiřadit k tabulce. V takovém případě hovoříme o lokálních poznámkách. Pro tento účel existují následující příkazy: \startlocalfootnotes ... \stoplocalfootnotes \placelocalfootnotes [..,.=* .,..] OPTIONAL * inherits from \setupfootnotes Ilustrující příklad použití lokálních poznámek: 52 Definice pojmů \startlocalfootnotes[n=0] \placetable {Pokles produktivity Hasseltu.} {\starttable[|l|c|c|c|c|] \HL \NC \NC Kamnářství\footnote{Zdroj: Uit de geschiedenis van Hasselt.} \NC Kovárny \NC Pivovary \NC Keramické dílny \NC\SR \HL \NC 1682 \NC 15 \NC 9 \NC 3 \NC 2 \NC\FR \NC 1752 \NC ~6 \NC 4 \NC 0 \NC 0 \NC\LR \HL \stoptable \placelocalfootnotes} \stoplocalfootnotes 1 Kamnářství 1 Kovárny Pivovary Keramické dílny 1682 15 9 3 2 1752 6 4 0 0 15 Zdroj: Uit de geschiedenis van Hasselt. Pokles produktivity Hasseltu. Tabulka 14.1 15 Definice pojmů Pokud chceme poznámky, koncepty a myšlenky sázet jednotným způsobem, můžeme použít: 1 \definedescription [...] [..,.=2 .,..] OPTIONAL 1 IDENTIFIER 2 inherits from \setupdescriptions Příklad: \definedescription [concept] [location=serried,headstyle=bold,width=broad] 53 Definice pojmů \concept{Hasseltské juffers:} Druh sušenky, vyrobený z~nadýchaného těsta, sypaný cukrem. Je velmi sladký. \par bude vypadat takto: Hasseltské juffers: sladký. Druh sušenky, vyrobený z nadýchaného těsta, sypaný cukrem. Je velmi Můžeme také použít jiné formátování: Hasseltská hořká: Silný alkoholický nápoj (40 %) s přidanými bylinkami a velmi specifickou chutí. Prodává se v kameninových lahvičkách a podává se ijskoud (ledová). Euifeest: Dožínky, oslava sklizně a konce období lopotné práce. Tyto slavnosti se konají poslední týden v srpnu. Máme-li v takové definici více odstavců, použijeme dvojici \start...--\stop...: 15 \definedescription [concept] [location=right, headstyle=bold, width=broad] \startconcept{Euifeest:} Dožínky, oslava sklizně a konce období lopotné práce. Tato událost se koná na konci srpna a trvá přesně týden. Město je celé osvětlené a ulice ozdobené. Tento sváteční týden je zakončen {\em Braderií} (bazarem). \stopconcept Bude to vypadat následovně: Dožínky, oslava sklizně a konce období lopotné práce. Tato událost se koná na konci srpna a trvá přesně týden. Město je celé osvětlené a ulice ozdobené. Tento sváteční týden je zakončen Braderií (bazarem). Formátování je nastaveno druhou hranatou závorkou v \definedescription[][]. Po \definedescription[][] lze ještě změnit jeho formátování pomocí: 54 Euifeest: Číslované poznámky 1 \setupdescriptions [...,...] [..,.=2 .,..] OPTIONAL 1 IDENTIFIER 2 headstyle style color width distance sample text align margin location headcommand hang before inbetween after indentnext indenting = = = = = = = = = = = = = = = = = normal bold slanted boldslanted type cap small... COMMAND normal bold slanted boldslanted type cap small... COMMAND IDENTIFIER fit broad DIMENSION DIMENSION TEXT TEXT inner outer left right middle normal no yes standard yes no DIMENSION left right top serried inmargin inleft inright hanging COMMAND fit broad NUMBER COMMAND COMMAND COMMAND yes no never none not no yes always first next small medium big normal odd even DIMENSION 16 Číslované poznámky Užitím příkazu \defineenumeration můžeme očíslovat části textu, jako poznámky nebo otázky. Pokud chceme takovéto očíslované poznámky v dokumentu vytvořit, použijeme: 1 2 \defineenumeration [...,...] [...] [..,.=3 .,..] OPTIONAL 1 IDENTIFIER 2 IDENTIFIER 3 inherits from \setupenumerations OPTIONAL Například: \defineenumeration [remark] [location=top, 55 16 Číslované poznámky text=Poznámka, inbetween=\blank, after=\blank] Nyní jsou k dispozici příkazy \remark, \subremark, \resetremark a \nextremark, takže můžeme psát poznámky typu: \remark Na začátku středověku byl Hasselt poutním místem. Toto {\em Heilige Stede} (Posvátné místo) bylo strženo a zničeno během období reformace. V roce 1930 po 300 letech bylo {\em Heilige Stede} znovu vybudováno a otevřeno. \subremark Nyní je {\em Heilige Stede} opět uzavřeno, ale jednou ročně se na tomtéž místě koná bohoslužba pod širým nebem. \par Poznámka 1 16 Na začátku středověku byl Hasselt poutním místem. Toto Heilige Stede (Posvátné místo) bylo strženo a zničeno během období reformace. V roce 1930 po 300 letech bylo Heilige Stede znovu vybudováno a otevřeno. Poznámka 1.1 Nyní je Heilige Stede opět uzavřeno, ale jednou ročně se na tomtéž místě koná bohoslužba pod širým nebem. Pomocí \resetremark nebo \resetsubremark můžeme opět číslovat od začátku. Číslo zvýšíme pomocí \nextremark nebo \nextsubremark. Normálně se poznámky číslují automaticky po kapitolách nebo částech knihy. Úpravu \defineenumeration si můžeme nastavit takto: 1 \setupenumerations [...,...] [..,.=2 .,..] OPTIONAL 1 IDENTIFIER 2 inherits from \definedescription Úpravu Poznámky a ‚Podpoznámky‘ ve výše uvedeném příkladu nastavíme pomocí: \setupenumeration[remark][headstyle=bold] \setupenumeration[subremark][headstyle=slanted,text=Podpoznámka] Obsahuje-li poznámka více než jeden odstavec, musíme použít párový příkaz \startremark · · · \stopremark, se kterým lze pracovat po předchozím nadefinování Poznámky užitím \defineenumeration[remark]. Předchozí příklad bude vypadat takto: \startremark Na začátku středověku byl Hasselt poutním místem. Toto {\em Heilige Stede} (Posvátné místo) bylo strženo a zničeno během období reformace. 56 Orámování textu V roce 1930 po 300 letech bylo {\em Heilige Stede} znovu vybudováno a otevřeno. Nyní je {\em Heilige Stede} opět uzavřeno, ale jednou ročně se na tomtéž místě koná bohoslužba pod širým nebem. \stopremark Poznámka 1 Na začátku středověku byl Hasselt poutním místem. Toto Heilige Stede (Posvátné místo) bylo strženo a zničeno během období reformace. V roce 1930 po 300 letech bylo Heilige Stede znovu vybudováno a otevřeno. Nyní je Heilige Stede opět uzavřeno, ale jednou ročně se na tomtéž místě koná bohoslužba pod širým nebem. Pokud nechceme danou poznámku číslovat, použijeme: \remark[-] nebo \startremark[-] Například: \remark[-] Na začátku středověku byl Hasselt poutním místem. Toto {\em Heilige Stede} (Posvátné místo) bylo strženo a zničeno během období reformace.\par Poznámka Na začátku středověku byl Hasselt poutním místem. Toto Heilige Stede (Posvátné místo) bylo strženo a zničeno během období reformace. 17 Orámování textu Text můžeme orámovat užitím \framed. Příkaz vypadá takto: 2 \framed [..,.=1 .,..] {...} OPTIONAL 1 inherits from \setupframed 2 TEXT Hranaté závorky jsou nepovinné a obsahují nastavení parametrů orámování. Složené závorky obsahují text. Po pravdě řečeno, orámovaný text v posledním odstavci byl vytvořen příkazem \inframed, který se postará i o správné mezery mezi řádky. 57 17 Orámování textu \framed[height=3em,width=fit]{Hasselt potřebuje více prostoru} Tento zápis se zobrazí následujícím způsobem: Hasselt potřebuje více prostoru Další příklady \framed a nastavení jeho parametrů jsou ukázány dále. Tentokráte používáme alternativu \inframed. \leftaligned {\inframed[width=fit]{Historie Hasseltu}} \midaligned {\inframed[height=1.5cm,frame=off]{je}} \rightaligned {\inframed[background=screen]{barvitá.}} Takový zápis vytvoří: Historie Hasseltu 17 je barvitá. Příkaz \framed je velmi důmyslný a používá se uvnitř mnoha maker. Syntaxe parametrů orámování je následující: 58 Orámování odstavce \setupframed [..,.=* .,..] * height width autowidth offset location option strut align bottom top frame topframe bottomframe leftframe rightframe frameoffset framedepth framecorner frameradius framecolor rulethickness background backgroundscreen backgroundcolor backgroundoffset backgrounddepth backgroundcorner backgroundradius depth corner radius empty foregroundcolor foregroundstyle = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = fit broad DIMENSION fit broad fixed local DIMENSION yes no force none overlay default DIMENSION depth hanging high lohi low top middle bottom keep none empty yes no global local inner outer left right middle normal no yes COMMAND COMMAND on off none overlay on off on off on off on off DIMENSION DIMENSION round rectangular DIMENSION IDENTIFIER DIMENSION screen color none foreground IDENTIFIER NUMBER IDENTIFIER frame DIMENSION DIMENSION round rectangular DIMENSION DIMENSION round rectangular DIMENSION yes no IDENTIFIER normal bold slanted boldslanted type cap small... COMMAND 18 Celý odstavec můžeme orámovat pomocí: 59 Orámování odstavce 18 Orámování odstavce 1 \startframedtext [...] [..,.=2 .,..] OPTIONAL right middle 3 4 {...} {...} ... \stopframedtext OPTIONAL 1 left none 2 inherits from \setupframedtexts 3 TEXT 4 TEXT \definefloat[vsuvka] 18 \placevsuvka[here][block:bridge]{Příklad vsuvky.} \startframedtext[width=.8\makeupwidth] Pro město Hasselt bylo velmi důležité mít most přes řeku Zwarte. Biskup utrechtský dal Hasseltu svolení k jeho stavbě v roce 1486. \blank Ostatní města v okolí se však obávala poplatků, které by bylo nutné platit při přechodu přes tento most, a~tak mnoho let bránili jeho stavbě. \stopframedtext Tento příklad také ukazuje použití příkazu \definefloat. Více informací k tomuto příkazu najdete v sekci 37.2. Příkaz \blank vytvoří prázdný řádek. Pro město Hasselt bylo velmi důležité mít most přes řeku Zwarte. Biskup utrechtský dal Hasseltu svolení k jeho stavbě v roce 1486. Ostatní města v okolí se však obávala poplatků, které by bylo nutné platit při přechodu přes tento most, a tak mnoho let bránili jeho stavbě. Vsuvka 18.1 Příklad vsuvky. Orámování můžete nastavit pomocí 60 Marginálie \setupframedtexts [..,.=* .,..] * bodyfont style = = 5pt ... 12pt small big normal bold slanted boldslanted type COMMAND left = COMMAND right = COMMAND before = COMMAND after = COMMAND inner = COMMAND linecorrection = on off depthcorrection = on off margin = standard yes no location = left right middle none indenting = never none not no yes always first big normal odd even DIMENSION inherits from \setupframed cap small... next small medium 19 19 Marginálie Vložit text do marginálie (okraje stránky) je velmi snadné. Stačí použít \inmargin. 1 2 3 \inmargin [...] [...] {...} OPTIONAL 1 + - 2 REFERENCE 3 TEXT OPTIONAL low Připomeňme si jeden z předcházejících příkladů: \inmargin {\externalfigure [ma-cb-23] [width=\marginwidth]} Tato ukázka vysází obrázek do okraje. Jistě si umíme představit, že v některých dokumentech může tento efekt působit velice dobře, ale bud’me opatrní. Okraje jsou většinou velmi úzké a obrázky tak budou vskutku okrajové! 61 Marginálie Několik dalších příkladů je ukázáno v následujícím textu. "Ridderstraat" (Rytířská ulice) je název velmi výmluvný. Ve~14. a~15.století zde bydleli šlechtici a~prominentní obyvatelé. Z~některých jejich velkých domů se později\inright{chudobinec} staly chudobince a~starobince. Až do roku \inleft[low]{\tfc 1940}1940 se zde nacházela synagoga. Asi 40 židů se zde scházelo ke slavení svého šabatu. Během války byli všichni židé deportováni do Westborku a~pak do koncentračních táborů v~Německu a~Polsku. Žádná z~židovských rodin se již nevrátila a~synagoga byla zbořena v~roce 1958. Příkazy \inmargin, \inleft a \inright plní stejnou funkci. V oboustranně tištěném dokumentu bude příkaz \inmargin sázet vždy do správného okraje. Dvojité lomítko \\ způsobí zalomení řádky. Předchozí příklad by tedy vypadal takto: "Ridderstraat" (Rytířská ulice) je název velmi výmluvný. Ve 14. a 15.století zde bydleli šlechtici a prominentní obyvatelé. Z některých jejich velkých domů se pozdějistaly chudobince a starobince. 1940 19 Až do roku 1940 se zde nacházela synagoga. Asi 40 židů se zde scházelo ke slavení svého šabatu. Během války byli všichni židé deportováni do Westborku a pak do koncentračních táborů v Německu a Polsku. Žádná z židovských rodin se již nevrátila a synagoga byla zbořena v roce 1958. Nastavit text v okraji lze pomocí \setupinmargin. 1 \setupinmargin [...] [..,.=2 .,..] OPTIONAL 1 left right NUMBER 2 location = style = before = after = align = line = distance = separator = width = distance = stack = inherits from left right both normal bold slanted boldslanted type cap COMMAND COMMAND inner outer left right middle normal no NUMBER DIMENSION TEXT DIMENSION DIMENSION yes no \setupframed 62 small... yes COMMAND chudobinec Zalamování a číslování stránek 20 Zalamování a číslování stránek Zalomení stránky lze vynutit nebo potlačit příkazem: * \page [...,...] * yes makeup no preference bigpreference left even odd blank empty reset start stop right disable last quadruple Parametry se zadávají uvnitř hranatých závorek. Parametry a jejich smysl jsou uvedeny v tabulce 20.1. 20 Volba Význam yes makeup no preference bigpreference left right disable reset empty last quadruple začátek nové stránky začátek nové stránky bez plovoucích objektů potlačení stránkového zlomu na tomto místě upřednostňujeme novou stránku nová stránka má na tomto místě vysokou prioritu následující stránka je levá (sudá) následující stránka je pravá (lichá) následující příkazy nemají účinek následující příkazy se provedou vložení prázdné stránky vkládání stránek až do dosažení sudého čísla strany vkládání stránek až do dosažení násobku čtyř Tabulka 20.1 Volby příkazu \page. Číslování stránek je automatické, ale je možné ručně nastavit číslo stránky příkazem: \page[25] Někdy je lepší zadat číslo strany relativně, například [+2] nebo [-2]. Umístění čísla stránek na straně závisí na našich preferencích a na typu dokumentu (jednostranný nebo dvojstranný). Číslování stránek se nastavuje příkazem: 63 Záhlaví a úpatí \setuppagenumbering [..,.=* .,..] * 21 alternative location = = conversion style = = left right way text numberseparator textseparator cd:sectionnumber separator strut state width command = = = = = = = = = = = = singlesided doublesided header footer left right middle margin marginedge inleft inright numbers characters Characters romannumerals Romannumerals normal bold slanted boldslanted type cap small... COMMAND TEXT TEXT bytext bycd:section TEXT TEXT TEXT yes no TEXT yes no start stop DIMENSION \...#1 Parametry se umíst’ují do hranatých závorek. Někdy může být výhodné odložit nějaký materiál až na začátek další strany, tedy po provedení nejbližšího stránkového zlomu. To se provede příkazem: \startpostponing ... \stoppostponing \startpostponing \placefigure {Odložený obrázek.} {\externalfigure[ma-cb-16][width=\textwidth]} \stoppostponing Obrázek bude umístěn ve vrchní části následující strany, aby co nejméně narušoval průběžný text. 21 Záhlaví a úpatí Někdy chceme dokument opatřit záhlavím a úpatím. K tomu se používají následující příkazy: 64 Záhlaví a úpatí 21 Obrázek 21.1 Odložený obrázek. 1 2 3 \setupfootertexts [...] [...] [...] OPTIONAL OPTIONAL OPTIONAL 1 text margin edge 2 TEXT SECTION date MARK pagenumber 3 TEXT SECTION date MARK pagenumber 1 2 3 [...] \setupheadertexts [...] [...] OPTIONAL OPTIONAL OPTIONAL 1 text margin edge 2 TEXT SECTION date MARK pagenumber 3 TEXT SECTION date MARK pagenumber První dvojice závorek udává, kam se má záhlaví nebo úpatí umístit (text, margin=marginálie, edge=vnější okraj, viz obrázek 96). Úpatí a záhlaví jsou určeny druhou a třetí závorkou. V oboustranných dokumentech dodáme čtvrtou a pátou závorku pro nastavení záhlaví/úpatí levých 65 Obsah (seznamy) a pravých stránek odděleně. Ve většině případů však můžeme tyto poslední dvě závorky vynechat. \setupfootertexts[Manuál][section] V tomto případě se text Manuál objeví v levém dolním rohu stránky a jméno aktuální kapitoly bude vpravo. Čáru oddělující záhlaví a úpatí můžeme nastavit pomocí: 1 \setupheader [...] [..,.=2 .,..] OPTIONAL 1 TEXT 2 state strut style leftstyle rightstyle leftwidth rightwidth before after margin edge = = = = = = = = = normal stop start empty high none nomarking IDENTIFIER yes no normal bold slanted boldslanted type cap small... COMMAND normal bold slanted boldslanted type cap small... COMMAND normal bold slanted boldslanted type cap small... COMMAND DIMENSION DIMENSION COMMAND COMMAND 22 1 \setupfooter [...] [..,.=2 .,..] OPTIONAL 1 inherits from \setupheader 2 inherits from \setupheader Pokud chceme záhlaví a úpatí zcela vypustit, napíšeme: \noheaderandfooterlines 22 Obsah (seznamy) Obsah zahrnuje čísla kapitol, názvy kapitol a čísla stránek; může být rozšířen o sekce, podsekce atd. Obsah se generuje automaticky napsáním: \placecontent Jaký obsah se vytvoří, záleží na umístění tohoto příkazu v dokumentu. Na začátku dokumentu se vygeneruje seznam všech kapitol, sekcí atd. Ale umístěním na začátku jednotlivých kapitol, tj.: 66 Obsah (seznamy) \chapter{Hasselt v létě} \placecontent \section{Hasselt v červenci} \section{Hasselt v srpnu} se pouze vytvoří seznam názvů sekcí s odpovídajícím očíslováním a s čísly stránek. Příkaz \placecontent můžeme použít poté, co nadefinujeme nový seznam pomocí: 1 2 \definecombinedlist [...] [...,...] [..,.=3 .,..] OPTIONAL 1 IDENTIFIER 2 LIST 3 inherits from \setupcombinedlist Tento příkaz spolu s \definelist nám dovolí nadefinovat vlastní seznam, potřebný ke strukturování celého dokumentu. Použití tohoto a dalších příbuzných příkazů je ukázáno na následujícím příkladu: 22 \definelist[kapitola] \setuplist [kapitola] [before=\blank, after=\blank, style=bold] \definelist[podkapitola] \setuplist [podkapitola] [alternative=d] Nyní máme dva seznamy: seznam kapitol a seznam podkapitol. Oba budou sloučeny do jediného obsahu příkazem \definecombinedlist. \definecombinedlist [obsah] [kapitola,podkapitola] [level=subsection] Po tomto úkonu máme k dispozici dva další příkazy: \placeobsah a \completeobsah. Oba způsobí vysázení obsahu, ten druhý ještě přidá nadpis ‚Obsah‘. Vzhled seznamu lze nastavit parametrem alternative. Seznamy se nastavují pomocí: 67 Obsah (seznamy) Nastavení a b c d e f Formátování číslo – název – číslo stránky číslo – název – mezery – číslo stránky číslo – název – tečky – číslo stránky číslo – název – číslo stránky (v odstavci) rezervováno pro interaktivní účely rezervováno pro interaktivní účely Tabulka 22.1 Nastavení formátování seznamů. 22 68 Obsah (seznamy) 1 \setuplist [...,...] [..,.=2 .,..] 1 IDENTIFIER 2 state alternative coupling criterium pageboundaries style = = = = = = start stop a b c ... none command on off SECTION local previous current all LIST normal bold slanted boldslanted type COMMAND numberstyle = normal bold slanted boldslanted type COMMAND textstyle = normal bold slanted boldslanted type COMMAND pagestyle = normal bold slanted boldslanted type COMMAND color = IDENTIFIER command = \...#1#2#3 numbercommand = \...#1 textcommand = \...#1 pagecommand = \...#1 interaction = cd:sectionnumber TEXT pagenumber all before = COMMAND after = COMMAND inbetween = COMMAND left = TEXT right = TEXT label = yes no prefix = yes no none pagenumber = yes no headnumber = yes no cd:sectionnumber = yes no aligntitle = yes no margin = DIMENSION width = DIMENSION fit height = DIMENSION fit broad depth = DIMENSION fit broad distance = DIMENSION separator = TEXT stopper = TEXT symbol = none 1 2 3 ... expansion = yes no command maxwidth = DIMENSION inherits from \framed cap small... cap small... cap small... cap small... 1 \setupcombinedlist [...] [..,.=2 .,..] 1 IDENTIFIER 2 level = 1 2 3 4 SECTION inherits from \setuplist current Pokud chceme změnit vzhled generovaného obsahu, musíme pamatovat na to, že je to seznam. 69 22 Obsah (seznamy) \setupcombinedlist [obsah] [alternative=c, aligntitle=no, width=2.5cm] Od této chvíle se bude formátování obsahu lišit od jeho standardního nastavení. Seznamy se vyvolávají a umíst’ují pomocí: 1 \placelist [...,...] [..,.=2 .,..] OPTIONAL 1 IDENTIFIER 2 inherits from \setuplist Chceme-li tedy pouze část obsahu, napíšeme: \placecontent[level=section] nebo \completecontent[level=section] 22 a zobrazí se pouze kapitoly a sekce. To se může hodit, pokud máme složitý a strukturovaný obsah, který má spoustu pod pod a pod odstavců, které v celkovém obsahu nechceme vypisovat. Dlouhý seznam nebo obsah se nevejde na jednu stránku. Potřebujeme-li ve vhodném místě vynutit přechod na novou stránku, napíšeme: \completecontent[2.2,8.5,12.3.3] Zalomení stránky se objeví po sekci 2.2 a 8.5 a podsekci 12.3.3. V některých případech chceme v automaticky generovaném seznamu napsat vlastní text. Toho dosáhneme pomocí: 1 2 3 \writetolist [...] {...} {...} 1 SECTION 2 TEXT 3 TEXT IDENTIFIER 1 2 \writebetweenlist [...] {...} 1 SECTION 2 TEXT IDENTIFIER Například, chceme-li udělat poznámku v obsahu po sekci nazvané Hotely v Hasseltu, napíšeme: 70 Rejstříky \section{Hotely v Hasseltu} \writebetweenlist[section]{\blank} \writetolist[section]{}{---ve výstavbě–-} \writebetweenlist[section]{\blank} 23 Rejstříky V CONTEXTu je možné vytvořit jeden nebo více rejstříků. Implicitně je k dispozici příkaz \index. Jestliže chceme do rejstříku přidat nějaké slovo, napíšeme například: \index{radnice} Výraz radnice se objeví jako heslo rejstříku. Rejstřík je pomocným programem seřazen podle abecedy. Pokud je některé heslo třeba zatřídit mimo běžné abecední pořadí, například v případě symbolu, musí být doplněno o další třídící informaci: \index[mínus]{$-$} Někdy máme pod- nebo podpodhesla. Ty se zadávají následujícím způsobem: \index{radnice+poloha} \index{radnice+architektura} Rejstřík vygenerujeme příkazem \placeindex nebo \completeindex Příkaz \index je v CONTEXTu předdefinovaný, ale samozřejmě můžeme také definovat své vlastní rejstříky: 1 2 \defineregister [...] [...] 1 SINGULAR NAME 2 PLURAL NAME Chceme-li například vytvořit rejstřík ulic v Hasseltu, můžeme napsat: \defineregister[ulice][ulice] Nyní je k dispozici nový příkaz pro tvorbu rejstříku \ulice. Heslem tohoto nového rejstříku může být třeba \ulice{Ridderstraat}. Samotný seznam ulic nyní vytvoříme použitím příkazů: 71 23 Synonyma \placeulice \completeulice Vzhled rejstříků můžeme měnit příkazem: 1 2 \setupregister [...] [...] [..,.=3 .,..] OPTIONAL 24 1 SINGULAR NAME 2 IDENTIFIER 3 n balance align style = = = = pagestyle = textstyle = indicator coupling cd:sectionnumber criterium distance symbol interaction expansion referencing command location maxwidth unknownreference alternative prefix compress deeptextcommand = = = = = = = = = = = = = = = = = 24 NUMBER yes no inner outer left right middle normal no normal bold slanted boldslanted type cap COMMAND normal bold slanted boldslanted type cap COMMAND normal bold slanted boldslanted type cap COMMAND yes no yes no yes no SECTION local all DIMENSION 1 2 ... n a ... none pagenumber TEXT yes no command on off \...#1 left middle right DIMENSION empty none a b A B both first none no yes \...#1 yes small... small... small... Synonyma V mnoha případech chtějí autoři používat určitá slova shodně v celém dokumentu. K dosažení jednotnosti je k dispozici následující příkaz: 72 Synonyma 1 2 3 4 \definesynonyms [...] [...] [...] [...] OPTIONAL 1 SINGULAR NAME 2 PLURAL NAME 3 COMMAND 4 COMMAND První dvojice hranatých závorek obsahuje tvar synonyma v jednotném čísle a druhá dvojice obsahuje tvar množného čísla. Třetí dvojice hranatých závorek obsahuje povel. Například povel \abbreviation (zkratka) je definován následovně: \definesynonyms[abbreviation][abbreviations][\infull] \setupsynonyms[style=cap] Nyní je k dispozici příkaz \abbreviation a můžeme jím definovat své vlastní zkratky: \abbreviation{ANWB}{Holandská automobilová asociace} \abbreviation{VVV}{Úřad turistických informací} \abbreviation{NS}{Holandské dráhy} Jestliže napíšeme: Holandský \VVV\ (\infull{VVV}) nám může poskytnout turistické informace o~Hasseltu. Dostaneme něco jako: Holandský VVV (Úřad turistických informací) nám může poskytnout turistické informace o Hasseltu. Seznam synonym a zkratek je nejlepší definovat v deklarační oblasti našeho vstupního souboru z důvodu jeho jednoduché údržby. Tento typ informace můžeme také uložit do externího souboru (např. abbrev.tex) a tento načíst příkazem: \input abbrev.tex Když chcete do vašeho dokumentu umístit seznam zkratek, můžete napsat: \placelistofabbreviations nebo \completelistofabbreviations Vytvoří se tak úplný abecedně uspořádaný seznam zkratek a jejich významů. Sazba synonym se dá ovlivnit příkazem \setupsynonyms. 73 24 Křížové odkazy 1 \setupsynonyms [...] [..,.=2 .,..] 1 IDENTIFIER 2 textstyle synonymstyle location width state criterium conversion expansion command = = = = = = = = = normal bold slanted boldslanted normal bold slanted boldslanted left right top serried inmargin DIMENSION start stop all used yes no yes no command \...#1#2#3 type cap small... type cap small... inleft inright COMMAND COMMAND Další aplikace synonym je popsána v kapitole 9. 25 Křížové odkazy 25 Na vytvoření křížového odkazu z jednoho místa dokumentu na druhé použijeme příkaz: 1 2 3 \in {...} {...} [...] 1 TEXT 2 TEXT 3 REFERENCE Složené závorky mohou obsahovat text, který má být vysázen před nebo za odkazem. To je výhodné pro zvětšení klikatelné oblasti v interaktivních dokumentech. Hranaté závorky pak nesou referenční jméno. Když napíšeme název kapitoly následujícím způsobem \chapter[hotel]{Hotely v~Hasseltu} tak se na tuto kapitolu můžeme odkázat povelem v~\in{kapitole}[hotel] Po zpracování dostaneme číslo kapitoly a odkaz vypadá například takto: v kapitole 23. Příkaz \in můžeme použít s referenčním jménem libovolného textového prvku, například kapitoly, sekce, obrázku, tabulky, vzorce, apod. Další příklad: 74 Křížové odkazy V~Hasseltu můžeme dělat spoustu věcí: \startitemize[n,packed] \item plavat, \item plachtit, \item[tramp] trampovat, \item jezdit na kole. \stopitemize \in{Činnost}[tramp] popsaná na \at{straně}[tramp] je velmi namáhavá. Bude to vypadat takto: V Hasseltu můžeme dělat spoustu věcí: 1. 2. 3. 4. plavat, plachtit, trampovat, jezdit na kole. Činnost 3 popsaná na straně 75 je velmi namáhavá. Jak můžeme vidět, je také možné vytvořit odkaz na stránku. To se dělá příkazem: 1 2 3 \at {...} {...} [...] 1 TEXT 2 TEXT 3 REFERENCE 25 Tento příkaz lze kombinovat s povely: * \pagereference [...] * REFERENCE a 1 2 \textreference [...] {...} 1 REFERENCE 2 TEXT Když se chceme odkázat na kapitolu Hotely v Hasseltu, můžeme napsat: V~\in{kapitole}[hotel] na \at{straně}[hotel] nalezneme úplný přehled možností ubytování v~\pagereference[bydleni]Hasseltu. 75 Křížové odkazy Při zpracování zdrojového souboru bude vygenerováno číslo kapitoly a číslo strany. Na jiném místě dokumentu se můžeme odkázat na bydleni takto: na \at{straně}[bydleni]. Můžeme rovněž definovat několik návěští oddělených čárkami. \placefigure [here] [obr:kanaly,obr:cluny] {Typický obrázek Hasseltu.} {\externalfigure[ma-cb-08][width=10cm]} V~Hasseltu je mnoho kanálů (viz \in{obrázek}[obr:kanaly]). . . . V~hasseltských kanálech mohou kotvit čluny (viz \in{obrázek}[obr:cluny]). Výsledek může vypadat následovně: 25 Obrázek 25.1 Typický obrázek Hasseltu. V Hasseltu je mnoho kanálů (viz obrázek 25.1). . . . V hasseltských kanálech mohou kotvit čluny (viz obrázek 25.1). 76 Barva 26 Barva Text může být sázen barevně. \setupcolors [..,.=* .,..] * state conversion reduction rgb cmyk mpcmyk mpspot textcolor split criterium = = = = = = = = = = start stop global yes no always yes no yes no yes no yes no yes no IDENTIFIER c m y k p s no all none local IDENTIFIER Používání barev se musí zapnout povelem: 26 \setupcolors[state=start] Nyní máme k dispozici základní barvy (červenou – red, zelenou – green a modrou – blue). \startcolor[red] Hasselt je velice \color[green]{barevné} město. \stopcolor Hasselt je velice barevné město. Při použití černobílého tisku uvidíme jenom šedé odstíny. V elektronickém dokumentu barvy dopadnou podle očekávání. Můžete také definovat své vlastní barvy příkazem: 77 Pozadí textu 1 \definecolor [...] [..,.=2 .,..] 1 IDENTIFIER 2 r g b c m y k s h t a p e = = = = = = = = = = = = = TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT Například: \definecolor[temneruda] [r=.5,g=.0,b=.0] \definecolor[tmavezelena] [r=.0,g=.5,b=.0] Nyní jsou k dispozici barvy temneruda a tmavezelena. 27 27 Pozadí textu Ke zvýraznění kapitoly nebo několika odstavců můžeme použít pozadí. Takový text se vloží do prostředí \starttextbackground ... \stoptextbackground Použití ilustruje tento příklad: \setuptextbackground [frame=off,location=paragraph, leftoffset=.5\bodyfontsize,rightoffset=.5\bodyfontsize] \starttextbackground V~Hasseltu vyrůstalo několik významných lidí. Teprve nedávno se ukázalo, že Kilian van Rensselaer hrál významnou roli při~založení státu 78 Pozadí stránky New York. \stoptextbackground Výsledkem je: V Hasseltu vyrůstalo několik významných lidí. Teprve nedávno se ukázalo, že Kilian van Rensselaer hrál významnou roli při založení státu New York. Pozadí může zabírat několik stránek. Pomocí \setuptextbackground [..,.=* .,..] * leftoffset rightoffset topoffset bottomoffset before after state location alternative inherits from = DIMENSION = DIMENSION = DIMENSION = DIMENSION = COMMAND = COMMAND = start stop = text paragraph = 0 1 2 \setupframed none lze ovlivnit jeho formátování. 28 28 Pozadí stránky Pozadí stránky může být nastaveno pomocí: 1 2 [...,...] [..,.=3 .,..] \setupbackgrounds [...] OPTIONAL header TEXT footer OPTIONAL 1 top 2 leftedge 3 state = start stop cd:repeat inherits from \setupframed leftmargin TEXT bottom page rightmargin paper leftpage rightpage rightedge První dvě hranaté závorky definují část plochy stránky, které chceme nastavit pozadí. Poslední závorka obsahuje jeho parametry. 79 Zarovnání left left edge margin text right right margin edge top header text footer bottom Obrázek 28.1 Plochy stránky použitelné v \setupbackgrounds. Pokud např. chcete mít šedé pozadí jako na obrázku 28.1, napíšeme: \setupbackgrounds [header,text,footer] [leftmargin,text,rightmargin] [background=screen] 29 29 Zarovnání Horizontální a vertikální zarovnání textu se nastavuje pomocí * \setupalign [...] * width left right middle inner outer wide hanging nothanging hyphenated nothyphenated Pro zarovnání jedné řádky stačí uvést: \rightaligned{} \leftaligned{} \midaligned{} Např. 80 broad height bottom line reset Interaktivní mód v elektronických dokumentech \leftaligned {Hasselt byl vybudován na písečné hoře.} \midaligned {Hasselt byl vybudován na soutoku dvou řek.} \rightaligned {Hasselt byl pojmenován podle dřeva stromu ambroně (hazelwood).} Po zpracování bude tento příklad vypadat takto: Hasselt byl vybudován na písečné hoře. Hasselt byl vybudován na soutoku dvou řek. Hasselt byl pojmenován podle dřeva stromu ambroně (hazelwood). K zarovnání odstavce se použije: * \startalignment [...] ... \stopalignment OPTIONAL * inherits from \setupalign Zarovnání můžeme upřesnit zadáním směru (direction) a tolerance pružných výplňků (tolerance). Směr může být vertikální (vertical) a horizontální (horizontal). Tolerance je standardně velmi přísná (verystrict). Při sazbě do užších sloupců je užitečné povolit schovívavější přístup k zalamování odstavce (tolerant nebo verytolerant). Pro sazbu tohoto manuálu je tolerance nastavena takto: \setuptolerance[horizontal,verystrict] 30 30 Interaktivní mód v elektronických dokumentech 30.1 Úvod Dokumenty dnes mohou být zpřístupňovány elektronicky prostřednictvím obrazovky počítače. Po kliknutí myší na určitou plochu interaktivního dokumentu, se nám zobrazí jeho jiná část – ta, která byla odkazována. Příkladem může být kliknutí na číslo strany v rejstříku a následné zobrazení odpovídající stránky dokumentu. Interakce se týkají: • aktivních čísel kapitol v obsahu; • aktivních čísel stran v rejstříku; • aktivních čísel stran, čísel kapitol a čísel obrázků ve vnitřních odkazech na strany, kapitoly, obrázky ap.; 81 Interaktivní mód v elektronických dokumentech • aktivních názvů, čísel stran a čísel kapitol v externích referencích na jiné interaktivní dokumenty; • aktivní menu v navigačních panelech. Interaktivní chování do jisté míry závisí na programu, kterým dokument prohlížíme. Pokud předpokládáme, že použijeme PDFTEX pro přímé generování PDF dokumentu nebo použijeme Acrobat Distiller pro převedení POSTSCRIPTového souboru na soubor PDF, je pak zřejmé, že pro zobrazení použijeme PDF prohlížeč, například Acrobat Reader, Acrobat Exchange nebo GHOSTVIEW. CONTEXT je PDF. V této velmi mocný nástroj pro generování elektronických nebo interaktivních dokumentů kapitole je nicméně popsáno jenom pár standardních vlastností. Protože autoři tohoto manuálu chtějí všechny manuály věnované CONTEXTu zpřístupnit elektronicky včetně zdrojových textů, je jednou z možností, jak se důvěrně obeznámit se schopnostmi CONTEXTu, zpětné inženýrství. 10 30.2 Interaktivní mód Interaktivní mód se aktivuje pomocí: \setupinteraction [..,.=* .,..] * 30 state menu page click split display openaction closeaction openpageaction closepageaction calculate strut width height depth style = = = = = = = = = = = = = = = = color contrastcolor symbolset title subtitle author date keyword fieldlayer = = = = = = = = = start stop on off yes no yes no yes no new REFERENCE REFERENCE REFERENCE REFERENCE IDENTIFIER yes no DIMENSION DIMENSION DIMENSION normal bold slanted COMMAND IDENTIFIER IDENTIFIER IDENTIFIER TEXT TEXT TEXT TEXT TEXT auto IDENTIFIER boldslanted type cap small... Například: 10 Pozn. překl.: Interaktivitě je věnován manuál http://www.pragma-ade.com/general/manuals/mwidget.pdf, viz přílohu A. 82 Interaktivní mód v elektronických dokumentech \setupinteraction [state=start, color=green, style=bold] způsobí, že se začnou automaticky generovat hyperlinky a aktivní slova se zobrazí zeleně. Interaktivní dokumenty jsou podstatně větší (v MB) než jejich papíroví bratranci, protože hyperlinky zabírají nějaké místo. Také si všimněme, že zpracování dokumentu probíhá pomaleji. Proto je výhodné interaktivní mód během přípravných fází tvorby dokumentu deaktivovat. 30.3 Interaktivita v rámci jednoho dokumentu Již dříve jsme viděli, jak vytvořit odkaz pomocí \in a \at. Možná jste se divili, proč píšeme \in{kapitola}[chap:uvod]. Zaprvé se tak zamezí, aby slovo kapitola a korespondující číslo bylo rozděleno řádkovým zlomem. A zadruhé bude jak slovo kapitola, tak i její číslo sázeno v interaktivním módu aktivně. Díky tomu získá čtenář větší klikatelnou oblast. V interaktivním módu máme k dispozici jeden příkaz, který v papírové variantě dokumentu nemá příliš význam. Je jím 1 2 3 \goto {...} {...} [...,...] 1 TEXT 2 TEXT 3 REFERENCE 30 Složené závorky obsahují uvozující nebo ukončující text reference, hranaté odkaz (referenční jméno nebo pokyn). V~\goto{Hasseltu}[fig:cityplan] jsou všechny ulice vybudovány do kruhu. V interaktivním dokumentu bude slovo Hasseltu zelené a aktivní. Skočíte jím na obrázek s mapkou Hasseltu. 30.4 Interaktivita mezi dokumenty Je možné odkazovat z jednoho dokumentu na jiný. Nejdříve musíme registrovat vnější dokument. Dělá se to pomocí 1 2 3 \useexternaldocument [...] [...] [...] 1 IDENTIFIER 2 file 3 TEXT 83 Interaktivní mód v elektronických dokumentech První hranaté závorky musí obsahovat logické jméno dokumentu, druhý pár závorek obsahuje jméno souboru a poslední závorky obklopují pojmenování vnějšího dokumentu. Pro odkazování takto registrovaného dokumentu použijeme * \from [...] * REFERENCE Závorky obsahují logické jméno dokumentu. Podívejme se na následující příklad: \useexternaldocument[hia][hasbook][Hasselt v~srpnu] Většina turistických atrakcí je popsána v~knize \from[hia]. Podrobnosti o~Eui||feestu je možno nalézt v~knize \from[hia::euifeest]. Popis \goto{Eui||feestu}[hia::euifeest] je v~průvodci \from[hia]. Eui||feest je popsán na \at{straně}[hia::euifeest] v~materiálu \from[hia]. Viz další informace v~kapitole \in{kapitole}[hia::euifeest] knihy \from[hia]. Příkaz \useexternaldocument bývá použit v úvodní oblasti vstupního souboru. 30 Po zpracování našeho vstupního souboru (přinejmenším dvakrát, aby byly odkazy v pořádku) a souboru hasbook.tex, budeme mít dva PDF dokumenty. Výše uvedené odkazy mají následující význam: • \from[hia] vyrobí aktivní titulek, který jsme uvedli v třetím páru hranatých závorek příkazu \useexternaldocument a svázán bude s první stranou hasbook.pdf. • \from[hia::euifeest] vyrobí aktivní titulek a sváže jej se stranou, kde začíná kapitola Eui-feest. • \goto{Eui||feest}[hia::euifeest] vyrobí aktivní slovo Eui--feest a sváže jej se stranou, kde začíná kapitola Eui--feest. • \at{strana}[hia::euifeest] vyrobí aktivní slovo strana, připojí číslo strany a sváže je s touto stranou. • \in{kapitola}[hia::euifeest] vyrobí aktivní slovo kapitola, připojí číslo kapitoly a sváže je s příslušnou kapitolou. Jak jsme mohli vidět, :: odděluje (logické) jméno souboru a referenční jméno doskoku v tomto dokumentu. 30.5 Menu Definovat můžeme také navigační panel pomocí 84 Interaktivní mód v elektronických dokumentech 1 2 \defineinteractionmenu [...] [...,...] [..,.=3 .,..] OPTIONAL 1 IDENTIFIER 2 left 3 before after inbetween left right middle state style right top bottom IDENTIFIER = = = = = = = = COMMAND COMMAND COMMAND COMMAND COMMAND COMMAND start stop none local normal bold slanted boldslanted COMMAND color = IDENTIFIER distance = overlay DIMENSION samepage = yes empty no none unknownreference = yes empty no none leftoffset = DIMENSION rightoffset = DIMENSION topoffset = DIMENSION bottomoffset = DIMENSION position = yes no inherits from \setupframed type cap small... První pár závorek definuje referenční jméno, které může později být použito pro vyvolání menu. Druhé závorky určují polohu na obrazovce. Třetí nastavují menu. Typická definice menu vypadá takto: 30 \setupcolors [state=start] \setupinteraction [state=start, menu=on] \defineinteractionmenu [mymenu] [right] [state=start, align=middle, background=screen, frame=on, width=\marginwidth, style=smallbold, color=] \startinteractionmenu[mymenu] \but [content] Obsah \\ \but [index] Rejstřík \\ \vfill \\ 85 Písmo a přepínače fontů \but [ExitViewer] Konec \\ \stopinteractionmenu \setupheadertexts[{\interactionmenu[mymenu]}] Tato definice vytvoří na pravé straně každé strany menu. Tlačítka menu budou obsahovat texty Obsah, Rejstřík a Konec s odpovídajícími funkcemi, po řadě: skok na obsah, skok na rejstřík a ukončení prohlížeče. Návěští na obvyklé doskoky, jakými jsou např. content a index, jsou předdefinovány, pokud obsah a rejstřík vložíme pomocí \completecontent a \completeindex. Jiné předdefinované funkce jsou FirstPage (první strana), LastPage (poslední strana), NextPage (další strana) a PreviousPage (předchozí strana). O vložení menu se stará \interactionmenu. Akce typu ExitViewer (ukonči prohlížeč) je nezbytná, aby náš elektronický dokument byl samoobsažný. Jiné předdefinované akce, které můžeme použít jsou PrintDocument (tiskni), SearchDocument (prohledej dokument) a PreviousJump (skok na předchozí zobrazení). Menu jsou nastavována pomocí: * \startinteractionmenu [...] ... * 31 \stopinteractionmenu IDENTIFIER 31 Písmo a přepínače fontů 31.1 Úvod Implicitní font v CONTEXTu je Computer Modern Roman (cmr). Můžete také použít font Lucida Bright (lbr) a symboly American Mathematical Society (ams). Dostupné jsou PostScriptové fonty (pos) a mnohé další. 31.2 Řezy písma a jejich velikost Rodinu, řez a velikost fontu pro celý dokument vybereme pomocí: * \setupbodyfont [...,...] * IDENTIFIER serif regular roman sans support handwritten calligraphic 5pt ... 12pt 86 sansserif mono type teletype Písmo a přepínače fontů Pokud použijeme \setupbodyfont[cmr,sansserif,9pt] v úvodní deklarační oblasti vstupního souboru, text by měl vypadat asi takto. Pro změnu uprostřed dokumentu, nebo na úrovni sekce, bychom měli použít: * \switchtobodyfont [...,...] * 5pt ... 12pt small big global 10.\,listopadu (jeden den před dnem svatého Martina) chodí omladina města Hasselt dům od domu a zpívá zvláštní píseň určenou jen pro tuto příležitost. Svůj zpěv doprovází na nástroj {\em foekepot}. Neodejdou, dokud jim nedáte nějaké peníze, nebo sladkosti. Píseň zní asi takto: \startnarrower \switchtobodyfont[small] \startlines Foekepotterij, foekepotterij, Geef mij een centje dan ga’k voorbij. Geef mij een alfje dan blijf ik staan, ’k Zal nog liever naar m’n arrenmoeder gaan. Hier woont zo’n rieke man, die zo vulle g\egrave ven kan. G\egrave f wat, old wat, g\egrave f die arme stumpers wat, ’k Eb zo lange met de foekepot elopen. ’k Eb gien geld om brood te kopen. Foekepotterij, foekepotterij, Geef mij een centje dan ga’k voorbij. \stoplines \stopnarrower Poznamenejme ještě, že \startnarrower · · · \stopnarrower se také užívá jako začátek a konec přepnutí fontu. Funkce \startlines a \stoplines v tomto příkladu je zřejmá. 10. listopadu (jeden den před dnem svatého Martina) chodí omladina města Hasselt dům od domu a zpívá zvláštní píseň určenou jen pro tuto příležitost. Svůj zpěv doprovází na nástroj foekepot. Neodejdou, dokud jim nedáte nějaké peníze, nebo sladkosti. Píseň zní asi takto: Foekepotterij, foekepotterij, Geef mij een centje dan ga’k voorbij. Geef mij een alfje dan blijf ik staan, ’k Zal nog liever naar m’n arrenmoeder gaan. Hier woont zo’n rieke man, die zo vulle gèven kan. Gèf wat, old wat, gèf die arme stumpers wat, ’k Eb zo lange met de foekepot elopen. ’k Eb gien geld om brood te kopen. Foekepotterij, foekepotterij, Geef mij een centje dan ga’k voorbij. Pokud chceme získat přehled dostupných druhů fontu zvolené rodiny, zkusme vysázet: \showbodyfont[cmr] 87 31 Písmo a přepínače fontů \mr : Ag [modern] [cmr] \tf \sc \sl \it \bf \bs \bi \tfx \tfxx \tfa \tfb \tfc \tfd \rm Ag Ag Ag Ag Ag Ag Ag Ag Ag Ag \ss Ag Ag Ag Ag Ag Ag Ag Ag Ag Ag \tt Ag Ag Ag Ag Ag Ag Ag Ag Ag Ag Ag Ag Ag Ag Ag Ag Ag Ag Ag 31.3 Přepínače řezu a velikosti v parametrech příkazů V mnoha příkazech jeden z parametrů indikuje požadovaný styl sazby. Například: \setuphead[chapter][style=\tfd] V tomto případě je velikost písma nadpisu kapitol nastavena na \tfd. Místo takovéhoto příkazu bychom ale měli používat předdefinované volby, které se vztahují k aktuálnímu druhu fontu: normal bold slanted boldslanted type mediaeval small smallbold smallslanted smallboldslanted smalltype capital cap 31.4 Lokální řez písma a jeho velikost V běžném textu můžeme měnit styl písma na roman, bezpatkové a neproporcionální (strojopisné) pomocí příkazů \rm, \ss a \tt. Řez písma, jako kurzíva, skloněné nebo tučné, můžeme měnit pomocí \it, \sl a \bf. 31 Velikost písma lze měnit v rozmezí od 4pt do 12pt a nastavuje se pomocí \switchtobodyfont. Aktuální styl je v příkazu přednastaven pomocí \tf. Pokud chceme zvětšit velikost písma, použijeme \tfa, \tfb, \tfc a \tfd. Příponu a, b, c a d lze přidávat také k příkazům \it, \sl nebo \bf. {\tfc Ražba mincí} V období od roku {\tt 1404} do {\tt 1585} vlastnil Hasselt {\sl právo ražení mincí}. Proti této výsadě Hasseltu ostatní města protestovala, ale {\switchtobodyfont[7pt] biskup z Utrechtu} tyto protesty nevyslyšel. Složená závorka indikuje začátek a konec oblasti, která je ovlivněna přepínačem stylu nebo velikosti. Ražba mincí V období od roku 1404 do 1585 vlastnil Hasselt právo ražení mincí. Proti této výsadě Hasseltu ostatní města protestovala, ale biskup z Utrechtu tyto protesty nevyslyšel. 31.5 Předefinování velikosti fontu Ve zvláštních případech můžeme definovat svou vlastní velikost fontu. 88 Písmo a přepínače fontů 1 2 \definebodyfont [...,...] [...] [..,.=3 .,..] 1 5pt ... 12pt 2 rm ss tt 3 tf bf sl it bs bi sc ex mi sy ma mb mc = = = = = = = = = = = = = FILE FILE FILE FILE FILE FILE FILE FILE FILE FILE FILE FILE FILE mm default hw cg Tato definice by měla vypadat asi takto: \definebodyfont[10pt][rm][tfe=Regular at 36pt] {\tfe Hasselt!} Nyní příkaz \tfe vysází velikostí 36pt nápis: Hasselt! 31.6 Kapitálky Zkratky jako PDF (Portable Document Format) jsou tištěny pomocí malých kapitálek. Malé kapitálky jsou o něco menší, než počáteční písmena vět v aktuálním fontu a mohou být vysázeny pomocí: * \cap {...} * TEXT Pokud porovnáme PDF, \cap{PDF} a \sc pdf PDF, PDF a pdf PDF, PDF a pdf (Computer Modern Roman) můžeme vidět zřetelně rozdíl. Příkaz \sc vytváří skutečné kapitálky (musí existovat jako samostatný font), zatímco pseudokapitálky \cap jsou vytvořeny geometrickou deformací verzálek. 31.7 Zvýraznění Pro jednotné zvýraznění slov v dokumentu používáme příkaz: \em 89 31 Písmo a přepínače fontů Zvýrazněná slova se implicitně vysází skloněným stylem. Při procházce Hasseltem bychom měli {\bf \em dávat pozor} na {\em Amsterodamy}. Slovem {\em Amsterodamy} {\bf \em nejsou} míněni obyvatelé Amsterodamu, ale malé kamenné pilíře, oddělující chodník od silnice. Jsou zamýšleny jako ochrana chodců před projíždějícími auty, ale ve skutečnosti se lidé častěji zraní, když o~ně zakopnou. Při procházce Hasseltem bychom měli dávat pozor na Amsterodamy. Slovem Amsterodamy nejsou míněni obyvatelé Amsterodamu, ale malé kamenné pilíře, oddělující chodník od silnice. Jsou zamýšleny jako ochrana chodců před projíždějícími auty, ale ve skutečnosti se lidé častěji zraní, když o ně zakopnou. Pokud něco dvakrát zdůrazníme, vysází se to opět nezdůrazněně. 31.8 Strojopis alias režim verbatim Pokud si přejeme zobrazit text přesně tak, jak jsme ho uvedli do vstupního souboru, s ukončením řádek přesně tam, kde jste použili ENTER, použijeme: \starttyping ... \stoptyping V textu můžeme použít: * \type {...} 31 * TEXT Složené závorky ohraničují strojopisný text. Sestavujme jej opatrně, protože v něm již nefunguje běžný mechanismus zalamování řádků. Nastavení režimu verbatim můžeme provádět pomocí: 90 Písmo a přepínače fontů 1 \setuptyping [...] [..,.=2 .,..] OPTIONAL 1 file typing 2 space page option text icommand vcommand ccommand before after margin evenmargin oddmargin blank escape space tab page indentnext style color palet lines empty numbering = = = = = = = = = = = = = = = = = = = = = = = = IDENTIFIER on off yes no slanted normal commands color none yes no COMMAND COMMAND COMMAND COMMAND COMMAND DIMENSION standard yes no DIMENSION DIMENSION DIMENSION small medium big standard on off NUMBER yes no yes no yes no normal bold slanted IDENTIFIER IDENTIFIER yes no hyphenated yes all no line file no boldslanted halfline type cap line small... COMMAND \setuptype [..,.=* .,..] * space option style color = = = = on off slanted normal none normal bold slanted IDENTIFIER 31 boldslanted type cap small... COMMAND 31.9 Kódování znaků Každý font je připraven v jednom nebo více kódováních. Při zavedení fontu pomocí fontových definičních tabulek, tzv. typescriptů, je nutné toto kódování specifikovat. Pro kódování ec, používané v Evropě nejčastěji, vypadá načtení písma Computer Modern takto: \usetypescript[modern][ec] \setupbodyfont[modern,10pt,rm] Typ kódování fontu volíme podle toho, v jakém kódování máme vzory dělení slov v použitém jazyce. Toto kódování se dovíme zapsáním \showpatterns, viz tabulka 31.1. 91 Složené znaky language encoding mapping number left min right min en uk de de fr fr es pt pt it it nl nl cz cz sk sk pl pl pl ec ec texnansi ec texnansi ec ec texnansi ec texnansi ec texnansi ec il2 ec il2 ec pl0 ec qx ec ec texnansi ec texnansi ec ec texnansi ec texnansi ec texnansi ec il2 ec il2 ec pl0 ec qx 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 2 3 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 Tabulka 31.1 Výpis příkazu \showpatterns. Přípravu fontu se správným kódováním i s předgenerováním typescriptů lze svěřit prográmku texfont. 32 Pokud náš editor pracuje v jiném kódování, než je kód fontu, pak je nutné text překódovat. O to se postará CONTEXT, pokud vstupní kódování našeho dokumentu uvedeme v hranaté závorce příkazu: * \enableregime [...] * Latin1 Latin2 Latin7 Latin15 iso-8859-1 iso-8859-2 iso-8859-7 iso-8859-15 cp1250 cp1251 cp1252 cp1253 cp1254 cp1257 viscii cyr grk mac utf8 unicode 32 Složené znaky 92 Složené znaky 32.1 Úvod V kapitole 3 jste již viděli, že pro vysázení speciálních znaků jako # $ % & _ { a } musíme napsat více než jeden symbol. Akcentovaná písmena nebo cizokrajné symboly musí být složeny z více znaků, aby byl vytvořen správně vysázený znak. Nad rámec této příručky vychází problematika akcentovaných písmen v matematickém režimu. Informace o této problematice najdete v TEXBooku Donalda E. Knutha. 32.2 Akcenty Kromě přímého vstupu znaků s diakritikou pomocí vhodného kódování (viz kapitolu 31.9), můžeme v CONTEXTu akcentovaná písmena složit z jednoduchých znaků a diakritických znamének. Tabulka 32.1 ukazuje, jak kompozit vytvoříme. Písmeno u je uvedeno jenom jako příklad. Napíšeme Dostaneme Napíšeme Dostaneme \‘{u} \’{u} \^{u} \"{u} \~{u} \={u} \.{u} ù ŭ ü \u{u} \v{u} \H{u} \b{u} \d{u} \c{u} \k{u} \r{u} ů ú û ũ ū u̇ Tabulka 32.1 ǔ ű u ¯ u. u̧ u˛ Akcenty Asi nechceme psát písmena ì nebo j́ (s tečkami). Z písmen i a j vytvoříme složené znaky následujícím způsobem: \"{\i} ï \^{\j} ̂ (j bez tečky nemusí být ve všech písmech k dispozici) 32.3 Cizokrajné symboly Jak se sestavují písmena a znaky, které se vyskytují v cizích jazycích, uvádí tabulka 32.2. Napíšeme Dostaneme Napíšeme Dostaneme \oe \OE \ae \AE \aa \AA \o œ \O \l \L \SS ?‘ !‘ \texteuro Ø Œ æ Æ å Å Tabulka 32.2 ø ł Ł ß ¿ ¡ ¤ Cizokrajná písmena a znaky 93 32 Formátování stránky Mnoho dalších symbolů je definováno v externích množinách. Zavádějí se příkazem * \usesymbols [...] * IDENTIFIER V hranatých závorkách je trojpísmenný název množiny, např. eur, nav, mvs, jmn, uni. Seznam znaků dané množiny se zobrazí příkazem * \showsymbolset [...] * IDENTIFIER 33 Formátování stránky Formát stránky je definován příkazem: 33 94 Formátování stránky \setuplayout [..,.=* .,..] * width height backspace topspace margin leftmargin rightmargin header footer top bottom leftedge rightedge headerdistance footerdistance topdistance bottomdistance leftmargindistance rightmargindistance leftedgedistance rightedgedistance horoffset veroffset style = = = = = = = = = = = = = = = = = = = = = = = = color marking location scale nx ny dx dy lines columns columndistance grid bottomspace cutspace textdistance textwidth textmargin clipoffset page paper = = = = = = = = = = = = = = = = = = = = DIMENSION fit middle DIMENSION fit middle DIMENSION DIMENSION DIMENSION DIMENSION DIMENSION DIMENSION DIMENSION DIMENSION DIMENSION DIMENSION DIMENSION DIMENSION DIMENSION DIMENSION DIMENSION DIMENSION DIMENSION DIMENSION DIMENSION DIMENSION DIMENSION normal bold slanted boldslanted type cap small... COMMAND IDENTIFIER on off color screen TEXT left middle right bottom top singlesided doublesided DIMENSION NUMBER NUMBER DIMENSION DIMENSION NUMBER NUMBER DIMENSION yes no DIMENSION DIMENSION DIMENSION NUMBER DIMENSION DIMENSION IDENTIFIER IDENTIFIER Tento povel se píše do deklarační oblasti vstupního souboru. Měli bychom se obeznámit s parametry, které popisují formát stránek (stránkové zrcadlo). Stránka je rozdělena na několik oblastí jako například text, záhlaví, úpatí atd. Velikosti těchto částí se dají nastavit příkazem \setuplayout. Různé oblasti ve formátu stránky jsou popsány na obrázku 33.1. Okraj je také nazýván marginálií. 95 33 Formátování stránky left left edge margin text right right margin edge top header text footer bottom Obrázek 33.1 Formát stránky. Pokud chceme vidět formát stránkového zrcadla, můžeme napsat příkaz \showframe a zpracovat jednu stranu nebo celý soubor. Oblasti jsou pak na stránce vyznačeny několika barevnými rámečky. Příkaz \showsetups ukáže hodnoty parametrů. Kombinací obou příkazů je povel \showlayout. Hodnoty formátovacích parametrů jsou dostupné jako příkazy (viz tabulku 33.2). To nám umožňuje přesněji definovat rozměry sloupců, obrázků a tabulek. Některé z těchto parametrů jsou vysvětleny v tabulce 33.1. 33 Příkazy Význam \makeupwidth \makeupheight \textwidth \textheight šířka zrcadla sazby výška zrcadla sazby šířka textové oblasti výška textové oblasti Tabulka 33.1 Několik parametrů ve formě příkazů. Jestliže chceme definovat šířku sloupce nebo výšku obrázku, můžeme to udělat relativně k hodnotám \makeupwidth nebo \makeupheight. Změny nastavení šířky nebo výšky stránky pak proporcionálně změní rozměry sloupce nebo obrázku. \placefigure [here] [fig:stepgable] {Stupňovitá štítová zeď.} {\externalfigure[ma-cb-19][width=.6\textwidth]} Po zpracování dostaneme: 96 Formátování stránky Obrázek 33.2 Stupňovitá štítová zed’. Ostatní vzdálenosti a rozměry jsou uvedeny v tabulce 33.2. Příkaz \setuplayout je definován v deklarační oblasti vstupního souboru, před povelem \starttext. To znamená, že hodnoty parametrů jsou globální a platné pro celý dokument. Nicméně pokud pro některé stránky chceme vykonat drobné změny rozvržení stránky, použijeme \adaptlayout[21,38][height=+.5cm] V tomto případě budou mít strany 21 a 38 výšku rovnou 0,5 cm + výška stránky. Na lokální změny formátu stránky můžete použít příkaz: \startlocal ... \stoplocal 33 Například: \start \startlocal \setuplayout[height=+.5cm] \stoplocal Hasselt má úplně jiné uspořádání než většina měst kvůli svým opevněním a~hradním příkopům. \stop Neradíme používat tyto lokální změny příliš často. Vždycky je lepší pozměnit text nežli měnit formát stránky. Parametr Příkaz vzdálenost vršku \topdistance Tabulka 33.2.a Parametry pro úpravu stránky. 97 Odsazení odstavců výška vršku vzdálenost záhlaví výška záhlaví horní mezera úroveň hlavičky vnitřní okraj vzdálenost marginálií šířka každé z marginálií šířka levé marginálie šířka pravé marginálie vzdálenost hran šířka každé z hran šířka levé hrany šířka pravé hrany výška papíru šířka papíru výška zrcadla šířka zrcadla výška textu šířka textu vzdálenost úpatí výška úpatí vzdálenost spodku výška spodku Tabulka 33.2.b 34 34 \topheight \headerdistance \headerheight \topspace \headlevel \backspace \margindistance \marginwidth \leftmarginwidth \rightmarginwidth \edgedistance \edgewidth \leftedgewidth \rightedgewidth \paperheight \paperwidth \makeupheight \makeupwidth \textheight \textwidth \footerdistance \footerheight \bottomdistance \bottomheight Parametry pro úpravu stránky. Odsazení odstavců 34.1 Úvod V TEXu a CONTEXTu je nejdůležitější jednotkou textu odstavec. Nový odstavec můžeme začít • prázdným řádkem, • příkazem \par. 98 Odsazení odstavců Ve vstupním ASCII souboru je vhodné jako oddělovače odstavců využívat prázdné řádky. Dostaneme tak přehlednější a lépe strukturovaný text, ve kterém se snadněji odhalují případné chyby. Pokud si přejeme ukončit odstavec výslovně příkazem, použijeme \par. Jednou byl ve válce Hasselt obléhán. Po nějaké době na město dolehl hladomor a~vše, co se dalo sníst, už bylo snědeno, kromě jedné krávy. Ta byla ponechána naživu a~navíc se jí dostávalo velice slušného zacházení. \par Jednou denně vyváděli obyvatelé Hasseltu tuto krávu na procházku po hradbách. Když obléhatelé viděli dobře živenou krávu, propadali malomyslnosti. Nakonec obléhání ukončili a~Hasselt byl zachráněn.\par V~Hoogstraatu se dnes na památku tohoto obležení a~moudrosti obyvatel nachází kamenná deska s~vyobrazením krávy. Místo příkazů \par bychom mohli také použít několik prázdných řádků: Jednou byl ve válce Hasselt obléhán. Po nějaké době na město dolehl hladomor a~vše, co se dalo sníst, už bylo snědeno, kromě jedné krávy. Ta byla ponechána naživu a~navíc se jí dostávalo velice slušného zacházení. Jednou denně vyváděli obyvatelé Hasseltu tuto krávu na procházku po hradbách. Když obléhatelé viděli dobře živenou krávu, propadali malomyslnosti. Nakonec obléhání ukončili a~Hasselt byl zachráněn. V~Hoogstraatu se dnes na památku tohoto obležení a~moudrosti obyvatel nachází kamenná deska s~vyobrazením krávy. 34 34.2 Mezera mezi odstavci Velikost mezery mezi odstavci lze nastavit pomocí: * \setupwhitespace [...] OPTIONAL * none small medium big line fixed fix DIMENSION Tento dokument je vysázen s nastavením \setupwhitespace[medium]. Když je velikost meziodstavcové mezery nastavena, máme k dispozici dva příkazy, které jsou nicméně potřeba jen zřídka: \nowhitespace \whitespace Pokud odstavec obsahuje vodorovné linky, nebo orámovaný text, jako například Ridderstraat 27, 8061GH Hasselt 99 Odsazení odstavců pak se stává, že rozestup není optimální. V takovém případě lze provést korekci pomocí: \startlinecorrection ... \stoplinecorrection Pokud tedy napíšeme: \startlinecorrection \framed{Ridderstraat 27, 8061GH Hasselt} \stoplinecorrection dostaneme lepší výstup. Tyto příkazy ale používejme, jen pokud je to opravdu nezbytné! Ridderstraat 27, 8061GH Hasselt Další příkaz pro ovládání mezery mezi odstavci je: * \blank [...,...] OPTIONAL * small medium big nowhite back FORMULA fixed flexible none white disable force reset line halfline Hranaté závorky za příkazem jsou nepovinné a umožňují nastavit velikost mezery mezi odstavci. Klíčová slova jako small, medium a big nastavují mezeru relativně vzhledem k velikosti daného fontu. 34 Oficiální název Hasselt má vždy příponu Ov, což je zkratka provincie {\em Overijssel}. \blank[2*big] Úsměvné na tom je, že v~Holandsku je Hasselt pouze jeden a~tato přípona je tedy nadbytečná. \blank Tato přípona je pozůstatkem z~dob, kdy Holandsko a~Belgie byly jednou zemí pod vládou španělského krále Filipa II. \blank[2*big] Hasselt v~Belgii leží v~provincii Limburg, ale Belgičané na své dopisy Hasselt (Li) zřejmě nepíší. Příkaz \blank bez hranatých závorek představuje obvyklou mezeru. Náš příklad by vypadal: Oficiální název Hasselt má vždy příponu Ov, což je zkratka provincie Overijssel. Úsměvné na tom je, že v Holandsku je Hasselt pouze jeden a tato přípona je tedy nadbytečná. Tato přípona je pozůstatkem z dob, kdy Holandsko a Belgie byly jednou zemí pod vládou španělského krále Filipa II. Hasselt v Belgii leží v provincii Limburg, ale Belgičané na své dopisy Hasselt (Li) zřejmě nepíší. 100 Odsazení odstavců Velikost obvyklé mezery lze ovládat pomocí: * \setupblank [...] OPTIONAL * normal standard line DIMENSION big medium small fixed flexible Pokud chceme potlačit tuto meziodstavcovou mezeru, můžeme použít: * \startpacked [...] ... \stoppacked OPTIONAL * blank V tomto dokumentu je mezera nastavena na medium ale na následujících řádcích je tato mezera potlačena a řádky jsou tedy semknuty k sobě. \startpacked Hasselt (Ov) leží v~provincii Overijssel. Hasselt (Li) leží v~provincii Limburg. Pozor: Mluvíme o~Limburgu v~Belgii. Existuje také Limburg v~Holandsku. \stoppacked Vysázeno bude: Hasselt (Ov) leží v provincii Overijssel. Hasselt (Li) leží v provincii Limburg. Pozor: Mluvíme o Limburgu v Belgii. Existuje také Limburg v Holandsku. Není těžké si představit, k čemu slouží: 34 \startunpacked ... \stopunpacked Vertikální mezeru si lze také vynutit pomocí příkazu \godown. Její velikost je nastavena v závorkách. * \godown [...] * DIMENSION 34.3 Odsazení Velikost odsazení nastavíme pomocí: 101 Nastavovací příkazy * \setupindenting [...,...] * never none not even DIMENSION no yes always first next small medium big normal odd Rozumného odsazení se dosáhne pomocí: \setupindenting[medium] Tímto bude první řádka odstavce odsazená. Jen po mezeře (vysázené příkazem \blank) je v základním nastavení odsazení potlačeno. Lokálně na určitém místě můžeme odsazování ovládat pomocí: * \indenting [...,...] * never none not even DIMENSION no yes always first next small medium big normal odd Když například použijeme never, budou od toho okamžiku všechna odsazení potlačena. Příkaz none ovlivní pouze následující odstavec. Pokud používáme odsazování a na určitém místě si odsazení nepřejeme, můžeme také použít: \noindenting 35 35 Nastavovací příkazy Globální příkazy se umist’ují v deklarační oblasti vstupního souboru, před povelem \starttext. V příloze B je uveden přehled dostupných příkazů a jejich parametrů. Nastavovací příkazy mají stejnou strukturu. Vypadají třeba takto: 102 Definování příkazů / maker 1 2 \setupparagraphs [...] [...] [..,.=3 .,..] OPTIONAL 1 IDENTIFIER 2 NUMBER 3 style width height align tolerance distance before after inner command rule each = = = = = = = = = = = normal bold slanted boldslanted type cap small... DIMENSION DIMENSION inner outer left right middle normal no yes verystrict strict tolerant verytolerant stretch DIMENSION COMMAND COMMAND COMMAND COMMAND on off COMMAND Deklarační povely se více nebo méně skládají z logického jména a určitého počtu dvojic hranatých závorek. Tyto můžou být nepovinné, v tom případě je pod nimi napsáno slovo OPTIONAL. Dvojice hranatých závorek mohou v definici obsahovat: \setupacommand[.1.][.2.][..,..=..,..] Čárky ve třetí závorce naznačují, že zde může být vložen seznam parametrů, rovnítko značí, že jde o parametry typu klíč=hodnota. Čísla .1. a .2. odkazují na vysvětlivky za definicí. Ty nám říkají, jaké volby můžeme uvést v první, druhé a třetí hranaté závorce. Implicitní volby a hodnoty parametrů jsou podtrženy. Navíc si můžeme všimnout, že některé hodnoty jsou vysázeny verzálkami: SECTION, NAME, DIMENSION, NUMBER, COMMAND, and TEXT. Toto naznačuje, že nejde o konstantní hodnoty, ale o hodnoty určitého typu: SECTION NAME DIMENSION NUMBER COMMAND TEXT název oddílu, například chapter, section, subsection atd.; identifikátor (logické jméno); rozměr v jednotkách cm, pt, em, ex, sp nebo in; celé číslo; příkaz s daným počtem parametrů; text. 36 Definování příkazů / maker 103 36 Definování příkazů / maker je sada maker založená na TEXu. TEX je programovací jazyk a zároveň typografický systém. To znamená, že si můžeme sami naprogramovat určité vlastnosti, pokud takovou flexibilitu potřebujeme. CONTEXT Nový příkaz můžeme nadefinovat pomocí 1 2 3 \define [...] \... {...} OPTIONAL 1 NUMBER 2 NAME 3 TEXT Následující příklad objasní jeho použití. Můžeme mít bohatě ilustrovaný dokument a pokud jsme již unavení psaním \placefigure [here,force] [fig:logické jméno] {Popisek.} {\externalfigure[soubor][width=5cm]} můžeme si definovat vlastní příkaz s několika proměnnými: • logické jméno; • popisek; • soubor. Naše definice příkazu a jeho volání může vypadat takto: 36 \define[3]\mujobrazek {\placefigure [here,force][fig:#1] {#2}{\externalfigure[#3][width=5cm]}} \mujobrazek{lev}{Holandský lev na stráži.}{ma-cb-13} V hranatých závorkách [3] stanovujeme, že chceme tři proměnné #1, #2 a #3. Při volání příkazu \mujobrazek musíme vložit tyto tři proměnné hodnoty mezi složené závorky. Výsledkem bude: Programování sofistikovanějších příkazů je ponecháno na čtenáři. Kromě definování příkazů můžeme také navíc definovat dvojici \start · · · \stop. 1 \definestartstop [...] [..,.=2 .,..] 1 IDENTIFIER 2 before after style commands = = = = COMMAND COMMAND normal COMMAND bold slanted boldslanted 104 type cap small... COMMAND Definování příkazů / maker Obrázek 36.1 Holandský lev na stráži. Například: \definestartstop [hvezdicky] [commands={\inleft{\hbox to \leftmarginwidth {\leaders\hbox{$\star$}\hfill}}}, before=\blank, after=\blank] \starthvezdicky {\em Hasselter Juffers} jsou sladké koláčky, ale jejich název není hříčka náhody. V~červenci roku 1233 byl založen klášter {\em Zwartewaterklooster} (Černá voda). Klášter byl zamýšlen pro neprovdané dívky a~ženy patřící k~šlechtě Hasseltu. Tyto dívky a~ženy byly nazývány {\em juffers}. \stophvezdicky ???????? Výsledkem bude: Hasselter Juffers jsou sladké koláčky, ale jejich název není hříčka náhody. V červenci roku 1233 byl založen klášter Zwartewaterklooster (Černá voda). Klášter byl zamýšlen pro neprovdané dívky a ženy patřící k šlechtě Hasseltu. Tyto dívky a ženy byly nazývány juffers. 105 36 Nezařazené 37 Nezařazené 37.1 Titulní strana V prvním příkladu tohoto manuálu na straně 5 jsme použili příkaz \startnamemakeup [..,.=* .,..] ... \stopnamemakeup OPTIONAL * inherits from \startmakeup Tento příkaz může být použit k definování titulních stran, protože mívají jinak velká stránková zrcadla než hlavní textová část dokumentu. Často k návrhu vzhledu takové výjimečné strany využíváme předdefinované dvojice \start ... \stopstandardmakeup. Jednoduchá titulní strana může vypadat takto: 37 \startstandardmakeup \blank \rightaligned{\tfd Hasselt v~21.\,století} \blank \rightaligned{\tfb Budoucnost} \vfill \rightaligned{\tfa C. van Marle} \rightaligned{Hasselt, 2001} \stopstandardmakeup V oboustranném dokumentu musíme vykonat některé další akce, abychom vysázeli zadní stranu titulního listu. Předešlý příklad v takovém případě změníme na: \startstandardmakeup[doublesided=no] \blank \rightaligned{\tfd Hasselt v~21.\,století} \blank \rightaligned{\tfb Budoucnost} \vfill \rightaligned{\tfa C. van Marle} \rightaligned{Hasselt, 2001} \stopstandardmakeup \startstandardmakeup[page=no] \vfill \copyright 2001 106 Nezařazené Tato kniha je věnována lidem žijícím v~Hasseltu. Chceme poděkovat fotografovi J.~Jonkerovi za zfalšování fotografií do této knihy tak, že čtenář získá jasnou představu o~budoucí podobě Hasseltu. \stopstandardmakeup Naše vlastní titulní strana může být navržena pomocí příkazů 1 \definemakeup [...] [..,.=2 .,..] 1 IDENTIFIER 2 inherits from \setupmakeup a 1 \setupmakeup [...] [..,.=2 .,..] 1 IDENTIFIER 2 width height voffset hoffset page commands doublesided headerstate footerstate textstate topstate bottomstate pagestate color = = = = = = = = = = = = = = DIMENSION DIMENSION DIMENSION DIMENSION left yes right COMMAND yes no empty normal stop start normal stop start normal stop start stop start stop start stop start IDENTIFIER empty empty empty none none none nomarking nomarking nomarking 37 37.2 Plovoucí objekty Plovoucím objektem (floating block) se v CONTEXTu nazývá textový element, např. tabulka či obrázek, který je zpracován speciálním způsobem. Již jsme viděli použití \placefigure a \placetable. Oba jsou příkladem plovoucích objektů popsaných v kapitolách 10 a 11. Svůj vlastní plovoucí objekt si můžeme definovat pomocí 1 2 \definefloat [...] [...] 1 SINGULAR NAME 2 PLURAL NAME Složené závorky se používají pro jméno objektu v jednotném a množném čísle. Například: 107 Nezařazené \definefloat[vsuvka][vsuvky] Nyní jsou k dispozici následující příkazy: \placevsuvka[][]{}{} \startvsuvkatext ... \stopvsuvkatext \placelistofvsuvky \completelistofvsuvky Nově definovaný plovoucí objekt může být nastaven pomocí 1 \setupfloat [...] [..,.=2 .,..] 1 IDENTIFIER 2 height = DIMENSION width = DIMENSION maxheight = DIMENSION maxwidth = DIMENSION minwidth = DIMENSION default = IDENTIFIER pageboundaries = LIST leftmargindistance = DIMENSION rightmargindistance = DIMENSION location = left middle inherits from \setupframed right Dále můžeme nastavit formátování všech plovoucích objektů pomocí příkazu \setupfloats [..,.=* .,..] * 37 location = left right middle width = fit DIMENSION before = COMMAND after = COMMAND margin = DIMENSION spacebefore = small medium big spaceafter = small medium big sidespacebefore = small medium big sidespaceafter = small medium big indentnext = yes no ntop = NUMBER nbottom = NUMBER nlines = NUMBER default = IDENTIFIER tolerance = 0 1 2 leftmargindistance = DIMENSION rightmargindistance = DIMENSION sidealign = normal line numbering = yes nocheck inherits from \setupframed Číslování a popisek objektu lze nastavit pomocí 108 none none none none Nezařazené 1 \setupcaption [...] [..,.=2 .,..] 1 IDENTIFIER 2 inherits from \setupcaptions a \setupcaptions [..,.=* .,..] * location width minwidth headstyle style number inbetween align conversion way separator stopper command distance = = = = = = = = = = = = = = top bottom none high low middle fit broad max DIMENSION fit DIMENSION normal bold slanted boldslanted type cap normal bold slanted boldslanted type cap yes no COMMAND inner outer left right middle normal no numbers characters Characters romannumerals bytext bycd:section TEXT TEXT COMMAND DIMENSION small... small... COMMAND COMMAND yes Romannumerals Tyto příkazy používáme v úvodní části vstupního souboru. \setupfloats a \setupcaptions mají globální vliv na všechny plovoucí objekty. Následuje kompletní ukázka nového plovoucího objektu. \setupfloats[location=middle] \setupcaption[location=bottom,headstyle=boldslanted] \definefloat[vsuvka][vsuvky] \placevsuvka{Ukázka vsuvky.} \startframedtext Na začátku tohoto století existovala tramvajová linka z~Zwolle do Blokzijl přes Hasselt. Později nabývaly na významu jiné dopravní prostředky a~tramvajová trať byla před druhou světovou válkou zrušena. Nyní by taková tramvajová linka možná byla zase zisková. \stopframedtext Na začátku tohoto století existovala tramvajová linka z Zwolle do Blokzijl přes Hasselt. Později nabývaly na významu jiné dopravní prostředky a tramvajová trat’ byla před druhou světovou válkou zrušena. Nyní by taková tramvajová linka možná byla zase zisková. Vsuvka 37.1 Ukázka vsuvky. 109 37 Nezařazené 37.3 Blok textu Jiným stavebním kamenem dokumentu je blok textu. Příkladem bloku textu je jeden nebo více odstavců, které chceme použít několikrát. Blok textu musíme definovat pomocí * \defineblock [...] * IDENTIFIER Mezi hranaté závorky vložíme jeho referenční jméno. \defineblock[holandstina] Také můžeme najednou definovat několik bloků textu, pokud mezi jednotlivá jména napíšeme čárku. Po zadefinování máme k dispozici následující dvojici: \beginholandstina ... \endholandstina S blokem můžeme pracovat pomocí příkazů 1 2 \hideblocks [...,...] [...,...] OPTIONAL 1 IDENTIFIER 2 IDENTIFIER 1 2 \useblocks [...,...] [...,...] OPTIONAL 37 1 IDENTIFIER 2 IDENTIFIER 1 2 [...,...] \keepblocks [...,...] OPTIONAL 1 IDENTIFIER 2 all IDENTIFIER 110 Nezařazené 1 2 \selectblocks [...,...] [...,...] [.=3 .] OPTIONAL 1 IDENTIFIER 2 IDENTIFIER 3 criterium = all OPTIONAL SECTION Zde je příklad jejich použití: \defineblock[holandstina,cestina] \hideblocks[holandstina,cestina] \begincestina[blok-a] Po roce 1810 přinesl kanál Dedemsvaart Hesseltu prosperitu. Všechny lodě proplouvaly kanálem v~Hasseltu a obchody na obou stranách kanálu bohatly. \endcestina \beginholandstina[blok-a] Sinds 1810 veroorzaakte de Dedemsvaart enige welvaart in Hasselt. Alle schepen voeren door de grachten en de winkels aan weerszijden van de gracht floreerden. \endholandstina \useblocks[cestina][blok-a] Výsledkem bude: Po roce 1810 přinesl kanál Dedemsvaart Hesseltu prosperitu. Všechny lodě proplouvaly kanálem v Hasseltu a obchody na obou stranách kanálu bohatly. Jestliže budeme pokračovat v takovémto používání bloku textu, můžeme vytvořit dvojjazyčný manuál. Pro tyto účely je také možno uložit bloky textu do externích souborů: \setupblock[holandstina][file=store-h] Holandský blok textu je uložen do souboru store-h.tex a fragmenty textu mohou být vyvolány jejich referenčními jmény. 37.4 Uložení textu pro pozdější použití Dočasně můžeme uložit informace pro budoucí použití v dokumentu pomocí * ... \startbuffer [...] \stopbuffer OPTIONAL * IDENTIFIER Například: 111 37 Nezařazené \startbuffer[navsteva] Chcete-li vidět, co vám Hasselt může nabídnout, měli byste jej někdy navštívit. Jestliže si s~sebou vezmete tento manuál, některá místa poznáte. \stopbuffer \getbuffer[navsteva] Příkazem \getbuffer[navsteva] se vyvolá uložený text. Referenční jméno můžeme vynechat, CONTEXT pak pracuje s interním jménem. Přetisk uložené informace získáme pomocí \typebuffer[navsteva]. Nastavení se provádí příkazem 1 \setupbuffer [...] [..,.=2 .,..] OPTIONAL 1 IDENTIFIER 2 paragraph before after = = = NUMBER COMMAND COMMAND 37.5 Skrytý text Text může být skryt pomocí \starthiding ... \stophiding Vložený text nebude zpracováván. 37.6 Linky 37 Máme k dispozici mnoho příkazů na kreslení linek. Jednu linku vysázíme pomocí \hairline nebo \thinrule Více linek najednou nakreslíme pomocí 112 Nezařazené \thinrules [.=* .] OPTIONAL * inherits from \setupthinrules Možná je také kombinace textu a linek: Hasselt – Amsterdam Kdybychom nakreslili spojnici Hasseltu s Amsterdamem, prošli bychom vzdálenost téměř 145 km. Kdybychom nakreslili dvě spojnice Hasseltu s Amsterdamem, prošli bychom vzdálenost téměř 290 km. Amsterdam Hasselt \starttextrule{Hasselt -- Amsterdam} Kdybychom nakreslili spojnici Hasseltu s~Amsterdamem, prošli bychom vzdálenost téměř 145 \Kilo \Meter. \stoptextrule Kdybychom nakreslili dvě spojnice Hasseltu s~Amsterdamem, prošli bychom vzdálenost téměř 290 \Kilo \Meter. Amsterdam \thinrules[n=3] Hasselt Při kreslení linek musíme být vždy opatrní. Prázdné řádky okolo \thinrules nesmí být opomenuty a výsledné vertikální odsazení by mělo být vždy předmětem naší pozornosti. Vertikální odsazení můžeme nastavit pomocí \setupthinrules [.=* .] * interlinespace n before inbetween after color backgroundcolor height depth alternative rulethickness color background backgroundcolor = = = = = = = = = = = = = = small medium big NUMBER COMMAND COMMAND COMMAND IDENTIFIER IDENTIFIER DIMENSION max DIMENSION max a c DIMENSION IDENTIFIER color none IDENTIFIER 37 Dále máme k dispozici několik doplňkových příkazů, které mohou být velice užitečné: 113 Nezařazené \setupfillinrules [..,.=* .,..] * width distance before after style = = = = = n interlinespace separator = = = fit broad DIMENSION DIMENSION COMMAND COMMAND normal bold slanted COMMAND NUMBER small medium big TEXT boldslanted type cap small... \setupfillinlines [..,.=* .,..] * width margin distance before after = = = = = DIMENSION DIMENSION DIMENSION COMMAND COMMAND Uvedeme je v následujícím příkladu: \setupfillinrules[width=2cm] \setupfillinlines[width=3cm] \fillinrules[n=1]{\bf jméno} \fillinrules[n=3]{\bf adresa} \fillinline{Uveďte prosím \underbar{počet} domů v~Hasseltu.} \par V~tomto textu přeškrtněte \overstrikes{Hasselt}\periods[18] Výsledkem bude: jméno 37 adresa Uved’te prosím počet domů v Hasseltu. V tomto textu přeškrtněte Hasselt . . . . . . . . . . . . . . . . . . Tyto příkazy bývají používány v dotaznících. Omezením je, že podtržený nebo přeškrtnutý text nebude na konci řádky rozdělen. 37.7 Horní a dolní index v textu index Vložit horní index a dolní index do dokumentu je jednoduché. A co říkáte tomuto: horní dolní index ? To vypadá podivně, co?! 114 Nezařazené Tento ošklivý text byl vysázen pomocí \low{}, \high{} a \lohi{}{}. Index je vkládán do složených závorek. 37.8 Datum Systémové datum vložíme do textu pomocí \currentdate 37.9 Umístění do předepsané polohy Občas máme potřebu umístit text na konkrétní místo uvnitř strany či jiného textového elementu. Uděláme to pomocí 1 2 \position (...,...) {...} 1 POSITION 2 TEXT Kulaté závorky určují souřadnice x, y, složené závorky ohraničují text, který má být umístěn. Souřadnice nastavíme pomocí \setuppositioning [..,.=* .,..] * state unit factor scale offset xstep ystep = = = = = = = start overlay cm pt em mm ex NUMBER NUMBER yes no absolute relative absolute relative es in Zvolit můžeme jednotky a měřítko. Zde je ilustrační příklad: \def\dicefive% {\framed [width=42pt,height=42pt,offset=0pt] {\setuppositioning [unit=pt,factor=12,xoffset=-11pt,yoffset=-8pt]% \startpositioning \position(1,1){$\bullet$}% \position(1,3){$\bullet$}% \position(2,2){$\bullet$}% \position(3,1){$\bullet$}% \position(3,3){$\bullet$}% \stoppositioning}} \placefigure{Toto je pět.}{\dicefive} Výsledkem tohoto relativně složitého příkladu je toto: 115 37 Nezařazené • • • • • Obrázek 37.1 Toto je pět. 37.10 Otočení textu, obrázků a tabulek V mnoha případech chceme otočit text nebo obrázek. Provedeme to pomocí 2 \rotate [..,.=1 .,..] {...} OPTIONAL 1 inherits from \setuprotate 2 TEXT Hranaté závorky jsou volitelné. Uvnitř nich specifikujeme úhel natočení: rotation=90. Složené závorky vymezují text či objekt, který chceme otočit. Příklad: V~roce 1252 Hasselt získal městská práva. Od té doby měl \rotate[rotation=90]{právo} používat vlastní pečeť na oficiálních dokumentech. Tato pečeť zobrazuje svatého Štěpána, jednoho z~prvních křesťanským mučedníků. Byl \rotate[rotation=270]{patronem} Hasseltu. Po reformaci byla pečeť pozměněna, svatý Štěpán ztratil svou svatost a byl zobrazován bez svatozáře. právo Výsledkem je velice ošklivý odstavec: V roce 1252 Hasselt získal městská práva. Od té doby měl používat vlastní pečet’ na oficiálních dokumentech. Tato pečet’ zobrazuje svatého Štěpána, jednoho z prvních křest’anským mučednípatronem ků. Byl Hasseltu. Po reformaci byla pečet’ pozměněna, svatý Štěpán ztratil svou svatost a byl zobrazován bez svatozáře. 37 Stejně jednoduše můžeme otočit i obrázek: \placefigure [][fig:rotation] {Rybářský přístav (de Vispoort) otočený o~180 \Degrees.} \rotate[rotation=180]{\externalfigure[ma-cb-15][width=10cm]} Na obrázku 37.2 vidíte, že není vždy úplně zřejmé, na co se díváme, když obrázek otočíme. Otočení nastavíme pomocí: 116 Nezařazené Obrázek 37.2 Rybářský přístav (de Vispoort) otočený o 180◦ . \setuprotate [..,.=* .,..] * rotation = NUMBER location = normal high fit inherits from \setupframed broad depth 37.11 Ukončení řádky Nová řádka může být vynucena příkazem \crlf Pokud chceme, aby konce řádek kopírovaly ukončení ve vstupním souboru, napíšeme: \startlines ... \stoplines Na radnici města Hasselt je dřevěná deska, kde se můžeme dočíst: \startlines Heimelijcken haet eigen baet jongen raet Door diese drie wilt verstaen is het Roomsche Rijck vergaen. \stoplines 117 37 Nezařazené Tato malá básnička obsahuje varování pro radní Hasseltu: {\it Nedovol, aby osobní prospěch nebo pocity ovlivňovaly tvůj rozum při rozhodování.} Na radnici města Hasselt je dřevěná deska, kde se můžeme dočíst: Heimelijcken haet eigen baet jongen raet Door diese drie wilt verstaen is het Roomsche Rijck vergaen. Tato malá básnička obsahuje varování pro radní Hasseltu: Nedovol, aby osobní prospěch nebo pocity ovlivňovaly tvůj rozum při rozhodování. V několika příkazech se konce řádků označují \\. Například když napíšeme \inmargin{uvnitř\\marginálie}, pak se text v marginálním sloupci zlomí do dvou řádků. 37.12 Dělění slov Pokud připravujeme vícejazyčný text, musíme si být vědomi faktu, že dělení slov se jazyk od jazyku liší. Hlavní jazyk aktivujeme pomocí * \mainlanguage [...] * nl fr en uk de es cz .. Mezi závorky můžeme vložit af (afrikánština), ca (katalánština), cn (čínština), cz (čeština), da (dánština), de (němčina), en (angličtina), es (španělština), fi (finština), fr (francouština), gr (řečtina), it (italština), hu (mad’arština), hr (srbochorvačtina), ja (japonština), nl (holandština), no (norština), pl (polština), pt (portugalština), ro (rumunština), ru (ruština), sk (slovenština), sl (slovinština), sv (švédština), tr (turečtina), ua (ukrajinština), uk (britská angličtina), us (americká angličtina) a vn (vietnamština). K dočasné změně jednoho jazyka na jiný použijeme kratší variantu: 37 \language[en] nebo \en Například: Pokud se chcete dozvědět více o~Hasseltu, asi nejlepší knihou, kterou si můžete přečíšt, je {\nl \em Uit de geschiedenis van Hasselt} od F.~Peerebooma. Pokud se chcete dozvědět více o Hasseltu, asi nejlepší knihou, kterou si můžete přečíšt, je Uit de geschiedenis van Hasselt od F. Peerebooma. Pokud je slovo rozděleno nesprávně, můžeme si dodefinovat místo rozdělení sami. Uděláme to v úvodní části dolumentu takto: 118 Externí moduly \hyphenation{his-to-rie} 37.13 Komentář ve zdrojovém souboru Veškerý text mezi \starttext a \stoptext bude CONTEXTem zpracován. Někdy se však vyskytne fragment textu, který zpracovávat nechceme, nebo chceme okomentovat příkazy CONTEXTu. Pokud předřadíme našemu textu znak procenta %, nebude zpracován. % % % % % % % % Ve velmi velkém dokumentu můžeme zdrojový text vložit z~externích souborů. Například: \input hass01.tex \input hass02.tex \input hass03.tex % kapitola 1 o Hasseltu % kapitola 2 o Hasseltu % kapitola 3 o Hasseltu Pokud před každým příkazem \input smažeme znak %, soubory budou zpracovány. Komentář popisující obsah souborů zpracován nebude. 37.14 Vstup jiného zdrojového tex souboru V mnoha situacích chceme do svého zdrojového souboru vložit jiný soubor TEX. Někdy je například efektivnější rozdělit text psaný v CONTEXTu do více souborů, aby mohly být zpracovány samostatně. Soubor se jménem jiny.tex může být vložen pomocí: \input jiny.tex Přípona tex je nepovinná, takže bude fungovat i \input jiny Příkaz \input je primitivum TEXu. 38 38 Externí moduly Kvůli efektivnosti se autor rozhodl realizovat některé funkce CONTEXTu prostřednictvím vnějších modulů. Můžeme například zavést následující moduly: 11 • bib sazba bibliografických referencí programem BIBTEX; • chemic sazba chemických struktur; 11 Více viz seznam modulů na http://wiki.contextgarden.net/Modules. 119 Externí moduly • • • • • • • • • • units použití jednotek SI; pictex kreslení obrázků (používá se společně s modulem chemic); chart náčrt vývojových diagramů a organizačních schémat; steps náčrt stavových diagramů; narrowtt použití užšího strojopisu Computer Modern pro verbatim prostředí; amsl implementace AMSmath příkazů; nath přirozená sazba matematiky, obsahuje modul amsl; streams synchronizace několika vstupních textů (dvojjazyčná sazba); gnuplot přímý zápis GNUPLOT grafů; lilypond sazba notových osnov programem LilyPond. Zavedení se provede v deklarační oblasti příkazem: * \usemodule [...,...] * IDENTIFIER Již jsme uvedli množství příkladů použití modulu units. Níže bez dalšího vysvětlení uvádíme dva příklady použití modulů chemic a chart. Tyto moduly jsou popsány ve dvou samostatných příručkách (http://www.pragma-ade.com/general/manuals/mp-ch-en.pdf, http://www. pragma-ade.com/general/manuals/mcharts.pdf). Chemické struktury mohou vypadat velice působivě: O O C H3 C H C C CH3 C C H3 C H C C N CH3 H Sloučenina A 38 Při kreslení chemických struktur tohoto typu se CONTEXT spoléhá na METAPOST. Třebaže jsou tyto chemické struktury definovány jenom pomocí dvou nebo tří příkazů, na získání správných výsledků je potřebná jistá praxe. Vstup může vypadat takto: \placeformula[-] \startformula \startchemical[scale=small,width=fit,top=3000,bottom=3000] \chemical[SIX,SB2356,DB14,Z2346,SR3,RZ3,-SR6,+SR6,-RZ6,+RZ6] [C,N,C,C,H,H,H] \chemical[PB:Z1,ONE,Z0,DIR8,Z0,SB24,DB7,Z27,PE][C,C,CH_3,O] \chemical[PB:Z5,ONE,Z0,DIR6,Z0,SB24,DB7,Z47,PE][C,C,H_3C,O] \chemical[SR24,RZ24][CH_3,H_3C] \bottext{Sloučenina A} \stopchemical \stopformula 120 Externí moduly Modul chart si představíme ukázkou definice organizačního schématu. Může vypadat následovně: \startFLOWchart[organogram] \startFLOWcell \shape {action} \name {01} \location {2,1} \text {Hasselt} \connect [bt]{02} \connect [bt]{03} \connect [bt]{04} \stopFLOWcell \startFLOWcell \shape {action} \name {02} \location {1,2} \text {Mastenbroek} \stopFLOWcell \startFLOWcell \shape {action} \name {03} \location {2,2} \text {Genne} \stopFLOWcell \startFLOWcell \shape {action} \name {04} \location {3,2} \text {Zwartewaterklooster} \stopFLOWcell \stopFLOWchart \FLOWchart[organogram] Výsledkem bude: 38 121 Grafické rozšíření / METAPOST Hasselt Mastenbroek 39 Genne Zwartewaterklooster Grafické rozšíření / METAPOST Grafické možnosti makrojazyka TEXu jsou dosti omezené. Použijeme-li však grafický systém METAPOST od Johna Hobbyho, získáme úplnou množinu grafických prvků, které mohou zlepšit vzhled našeho dokumentu. CONTEXT přímo spolupracuje s METAPOSTem, takže uživatel může využít všechny vlastnosti METAPOSTu přímo ve svém dokumentu. Nadpisy kapitol a čísla stránek tohoto manuálu jsou zvýraz- 39 něny grafikou přímo generovanou METAPOSTem. Použití METAPOSTu v CONTEXTu je popsáno v rozsáhlém manuálu http://www.pragma-ade.com /general/manuals/metafun-s.pdf. 122 Uživatelská nastavení 40 Uživatelská nastavení Během provozu CONTEXTu se nastavuje množství implicitních parametrů. Tyto parametry jsou zadefinovány v souboru cont-sys.tex. Uživatelé mohou tento soubor vytvořit přejmenováním souboru cont-sys.rme (nejlépe ve stejném adresáři, aby jej CONTEXT našel) a v tomto souboru definovat své vlastní preference (firemní styl). Nejdůležitější část tohoto souboru se pravděpodobně týká výstupu: \setupoutput[pdftex] Sdělí CONTEXTu, že má vytvářet výstup PDF namísto DVI, zatímco \setupoutput[dvipsone,dviwindo] nastaví podmínky pro tyto programy. Předvolený je DVIPS výstup. 41 Postup zpracování Během zpracování zapisuje CONTEXT informace do souboru mujsoubor.tui. Tyto informace se využívají v následujícím průchodu. Část těchto informací je zpracována programem TEXUTIL. Informace o registrech a seznamech se jím převede do souboru mujsoubor.tuo. CONTEXT filtruje informace z tohoto souboru a (v případě potřeby) je využívá. Program TEXUTIL umí další užitečné činnosti. Obecný zápis pro použití tohoto programu je: 12 texmfstart texutil --specifikace jmeno_souboru Velikosti všech vektorových i bitmapových obrázků (boundingbox) v zadaném adresáři vypíšeme do souboru texutil.tuf zadáním: texmfstart texutil --figures *.* Pokud potřebujeme konvertovat EPS-ilustrace do formátu PDF, můžeme zadat: texmfstart texutil --figures --epspage --epspdf Dočasné soubory (.tui, .tuo, *-mpgraph.*, ap.) smažeme 12 Některé funkce v době překladu tohoto manuálu mohl převzít program ctxtools. 123 40 Pomocné soubory texmfstart texutil --purge nebo novější texmfstart ctxtools --purgefiles a všechny generované soubory v aktuálním adresáři smažeme pomocí texmfstart texutil --purgeall nebo texmfstart ctxtools --purgefiles --all Informace o přetečených nebo podtečených boxech a neznámých referencích odfiltrujeme ze záznamového souboru o běhu CONTEXTu (.log) příkazem texmfstart texutil --logfile soubor.log Na spuštění CONTEXTu používáme povel TEXEXEC: texmfstart texexec jmeno_souboru Tento program se postará o to, aby se CONTEXT spustil tolikrát, kolikrát je potřeba pro získání správných odkazů. Zvláštní požadavky můžeme zadat také přímo v příkazové řádce. Například, když je požadován výstup ve formátu pdf, napíšeme: texmfstart texexec --pdf jmeno_souboru Když jsme na pochybách, můžeme se na parametry programů dotázat přepínačem --help. K dispozici je také dokumentace http://www.pragma-ade.com/general/manuals/mtexexec.pdf a http://www.pragma-ade.com/general/manuals/mtexutil.pdf. 42 42 Pomocné soubory V průběhu zpracování vytváří CONTEXT množství pomocných souborů. Pokud název vstupního souboru je mujsoubor.tex, v pracovním adresáři se objeví následující soubory: 124 Sazba českých/slovenských textů Soubor Obsah Stav mujsoubor.tex vstupní text neodstraňujme mujsoubor.tui mujsoubor.tuo mujsoubor.tub mujsoubor.tmp vstupní informace může být odstraněn výstupní informace neodstraňujme informace o blocích neodstraňujme dočasné informace může být odstraněn texutil.tuf mpgraph.mp informace o obrázcích vytvořme v případě potřeby informace METAPOSTu může být odstraněn mujsoubor.dvi mujsoubor.ps mujsoubor.pdf vysázený text může být odstraněn text k tisku může být odstraněn text k tisku/prohlížení může být odstraněn 43 Sazba českých/slovenských textů 43.1 Minimální český/slovenský dokument Pro sazbu českých nebo slovenských textů nám stačí základní formát cont-en 13. Ten již obsahuje vzory dělení pro češtinu/slovenštinu v náležitých kódováních, o čemž se lze přesvědčit příkazem \showpatterns, viz tabulku 31.1. Formát cont-en se všemi vzory dělení vygenerujeme příkazem texmfstart texexec --make --all V samotném dokumentu musíme nastavit češtinu nebo slovenštinu jako hlavní jazyk: \mainlanguage[cz] / \mainlanguage[sk] a zvolit námi používané vstupní kódování. Minimální český dokument min-cz.tex v kódování ISO-8859-2 pak bude vypadat takto: \mainlanguage[cz] \enableregime[latin2] 13 Alternativou je lokalizovaný formát cont-cz s počeštěnými názvy uživatelských příkazů. Tuto lokalizaci ConTEXtu vytvořil Tomáš Hudec v rámci své diplomové práce v roce 2001 pod vedením Petra Sojky. Protože je však dosud česká CONTEXTová komunita malá, česká dokumentace téměř žádná a terminologie příkazů neustálená a neúplná, používá se hlavně z důvodů kompatibility téměř výhradně anglické rozhraní cont-en. Toto anglické rozhraní popisuje i tento manuál. 125 43 Sazba českých/slovenských textů \starttext Nějaký český text, třeba o~těch příliš žluťoučkých koních, co pěli ďábelské ódy. \stoptext Pro minimální slovenský dokument pouze nahradíme cz −→ sk. Soubor přeložíme do PDF (i s jeho automatickým zobrazením) příkazem texmfstart texexec --pdf --autopdf min-cz 43.2 Písma CONTEXT implicitně používá písmo Latin Modern v kódování ec. 14 Toto kódování obsahuje všechny znaky potřebné pro sazbu českých i slovenských textů. Výchozí nastavení písma je provedeno příkazy \usetypescript[modern][ec] \setupbodyfont[modern,10pt,rm] Pokud chceme tisknout kombinací Times New Roman – Helvetica – Courier, nastavíme \usetypescript [postscript] [ec] \setupbodyfont [postscript,10pt,rm] Times New Roman -- \ss Helvetica -- \tt Courier% Množství dalších písem je definováno v souborech type-enc.tex a type-buy.tex. Pro některá písma ze Štormovy písmolijny je též vytvořená podpora, viz adresu http://modules. contextgarden.net/stormfontsupport s katalogem http://dl.contextgarden.net/modules/stormfontsupport/cont-storm-catalog.pdf. Pomocí ní je pak například užití písma Lido jednoduché: \enableregime[latin2] \useencoding[st2] \useencoding[st3] % or st1 for ec encoding \usetypescriptfile[t-type-slido] \usetypescript[Lido][st2] % or st1 for ec encoding \setupbodyfont[Lido,10pt,rm] 43.3 Kódování 43 Náš vstupní text vytváříme v určitém kódování, nejčastěji v ISO-8859-2 (Latin 2), CP1250 (Windows), či UTF-8. Protože tato tři kódování se většinou liší od kódování fontu (a vzorů dělení slov), je třeba CONTEXTu toto vstupní kódování sdělit. Potřebnou konverzi pak zařídí za nás. Vstupní kódování se v CONTEXTu nazývá režim (regime). Jeho nastavení se provede pomocí \enableregime, tedy pro výše zmíněné kódování \enableregime[Latin2], \enableregime[cp1250] nebo \enableregime[utf8]. 14 Pokud bychom potřebovali CSfonty, můžeme využít zakomentovaný kód souboru type-old.tex. 126 Sazba českých/slovenských textů 43.4 Uvozovky, pomlčky a spol Text „v uvozovkách“ a ‚jednoduchých uvozovkách‘ se napíše pomocí \quotation{...} a \quote{...}. Pomlčka – ta se napíše pomocí |<| a spojovník je-li na vstupu |-|. CONTEXT zařídí případné opakování na konci řádky. Francouská mezera za tečkou \frenchspacing je v ConTEXtu implicitní. 43.5 Datum Máme-li hlavní jazyk cz, pak příkazem \currentdate vysázíme 6. prosince 2006. Pokud lokálně přepneme do jiného jazyka \start \language[en]% \currentdate \ nebo \language[sk]% \currentdate \stop dostaneme December 6, 2006 nebo 6. decembra 2006. Z číselné informace získáme název měsíce \month{2} (února) a název dne počínaje nedělí \weekday{5} (čtvrtek). 43.6 Popisky a názvy Nastavením hlavního jazyka dostaneme patřičné názvy pro obrázky, tabulky, přílohy ap., viz soubor lang-sla.tex. Změnit název lze pomocí \setupheadtext, např. \setupheadtext [cz] [content=Obsah průvodce po Hasseltu] 43.7 Řazení obsahuje interní řadící a částečně konfigurovatelný algoritmus (soubor sortlan.tex) 15. Vychází se z normy ČSN 97 6030 z roku 1994, ale zatím nejde o její plnou implemen- CONTEXT taci; hlavní rozdílnost je v pořadí číslic, znaku apostrofu a spojovníku. Řazení využívají rejstříky (index) a řazené seznamy (sorting). 43 15 Slovenská sekce pravidel v tomto souboru zatím není napsaná. 127 Sazba českých/slovenských textů 43 128 Další informační zdroje A Další informační zdroje Už vám tento začátečnický manuál nedostačuje? Potřebujete poradit? Zajímá vás mnoho dalších možností CONTEXTu? Tato kapitola může pomoci v orientaci po dostupných informačních zdrojích. Bohužel – v češtině existuje zatím pouze tento manuál. Všechna ostatní zde doporučovaná literatura je v angličtině. A.1 CONTEXTová wikipedie CONTEXT vznikl v Holandsku a tak nepřekvapí, že jeho symbolem jsou tulipány. Internetové stránky http://wiki.contextgarden.net jsou zahradou, kde uživatelé doslova pěstují CONTEXT: sdílí své poznatky na principu wikipedie. Najdeme zde návody a řešení, referenční manuál (http: //texshow.contextgarden.net), odkazy na užitečné informace, errata manuálů, ‚živý‘ CONTEXT pro testování bez nutnosti domácí instalace, archiv velice živé konference – a to vše plně prohledávatelné. A.2 Manuály Uvádíme zde výběr nejzajímavějším manuálů z pera Hanse Hagena. Každý je originální ukázkou možností CONTEXTu. Úplný seznam čtenář najde na stránkách http://www.pragma-ade.com nebo přímo v adresáři http://www.pragma-ade.com/dir/general. the manual (http://www.pragma-ade.com/general/manuals/cont-eni.pdf) Základní manuál CONTEXTu. Všeobecný a hluboký zdroj informací, byt’ poměrně staršího data (2001). CONTEXT (http://www.pragma-ade.com/general/manuals/metafun-s.pdf) Zevrubný manuál o grafických možnostech CONTEXTu založený na integraci METAPOSTu. (2002) METAFUN Fonts in CONTEXT (http://www.pragma-ade.com/general/manuals/mfonts.pdf) Instalace nových fontů. (2001) Widgets uncovered (http://www.pragma-ade.com/general/manuals/mwidget.pdf) Použití interaktivních prvků v PDF: hyperlinky, videa, formuláře, Java script. (2001) XML in CONTEXT (http://www.pragma-ade.com/general/manuals/xmlcontext.pdf) Přímá sazba z XML zdrojových textů. (2001) modul (http://www.pragma-ade.com/general/manuals/bibmod-doc.pdf) Popis použití modulu pro BIBTEX. BIBTEXový Columns (http://www.pragma-ade.com/general/manuals/columns.pdf) Vícesloupcová sazba včetně plavajících objektů, sazba do řádkového rejstříku, sazba obrázků přes několik stránek. (2004) 129 A Další informační zdroje Natural Tables in CONTEXT (http://www.pragma-ade.com/general/manuals/enattab.pdf) Alternativní sazba tabulek s podobnou syntaxí jako v HTML. Vhodné pro sazbu tabulek z XML, s barevným pozadím, nepravidelnou velikostí buněk a dlouhých tabulek přes několik stránek. (2004) Charts uncovered (http://www.pragma-ade.com/general/manuals/mcharts.pdf) Vývojové diagramy v pravidelné mřížce buněk. (2001) PPCHTEX, a macropackage for typesetting chemical structure formulas (http://www.pragma-ade.com/general/manuals/mp-ch-en.pdf) Sazba chemických struktur a diagramů. (2001) Adding Text to Graphics (http://www.pragma-ade.com/general/manuals/mlabels.pdf) Přidání popisků do obrázků. (2002) It’s in the Details (http://www.pragma-ade.com/general/manuals/details.pdf) Popis různých triků: dodržení řádkového rejstříku, pseudosloupce, barevné pozadí či rámy i přes několik stránek, usazení matematických rovnic, umístění plavajících objektů, popisky obrázků. (2004) Typographic Programming (http://www.pragma-ade.com/general/manuals/style.pdf) Rozpracovaný manuál o typografii v CONTEXTu. (2005) A.3 Magazíny Magazínem se v této komunitě myslí ukázkový dokument s jednotnou úpravou zaměřených na nějaké téma. Existují dva druhy. První ‚This way‘ je psán samotným tvůrcem CONTEXTu Hansem Hagenem, druhý ‚My way‘ je psán jednotlivými uživateli. Jako ukázky uved’me: Good looking shapes (http://www.pragma-ade.com/general/myway/mag-0010.pdf) Sazba do definovaného tvaru odstavce. Using \startalign and friends (Aditya Mahajan, http://www.pragma-ade.com/general/myway/mathalign.pdf) Sazba matematických rovnic a jejich zarovnávání. Natural Tables (Willi Egger, http://www.pragma-ade.com/general/myway/NaturalTables.pdf) Ukázka použití ‚přirozených tabulek‘. A.4 Instalace A Čerstvý CONTEXT čtenář nalezne na stránkách firmy Hanse Hagena http://www.pragma-ade.com (Advanced Document Engineering). Většinou se vyplatí instalovat nejnovější beta verzi. K dispozici jsou samostatné instalace pro různé operační systémy nebo balíky do stávající distribuce TEXu. V takovém případě instalace spočívá v rozbalení cont-tmf.zip do patřičného TEX stromu a v přegenerování formátu (viz kapitolu 43). 130 Definice příkazů B Definice příkazů Následuje souhrn příkazů, jež jsme uvedli v předchozích kapitolách. Je to jen výběr z celého repertoáru příkazů CONTEXTu. Kdo je chce uvidět všechny, může nahlédnout do rozsáhlejší příručky CONTEXT the manual (http://www.pragma-ade.com/general/manuals/cont-eni.pdf) nebo do online referenčního manuálu (http://texshow.contextgarden.net), poskytujících úplný přehled uživatelských příkazů CONTEXTu. Vysvětlení použité syntaxe je podáno v kapitole 35. 1 2 3 \at {...} {...} [...] * \defineblock [...] 1 TEXT * 2 TEXT 3 REFERENCE 1 2 \definebodyfont [...,...] [...] [..,.=3 .,..] * \blank [...,...] OPTIONAL * small force none medium big reset line nowhite back white disable halfline FORMULA fixed flexible 1 5pt 2 rm ss tt 3 tf bf sl it bs bi sc ex mi sy ma mb mc = = = = = = = = = = = = = FILE FILE FILE FILE FILE FILE FILE FILE FILE FILE FILE FILE FILE * \cap {...} * IDENTIFIER TEXT ... 12pt mm default hw cg 1 2 \chapter [...,...] {...} OPTIONAL 1 REFERENCE 1 \definecolor [...] [..,.=2 .,..] 2 TEXT 1 IDENTIFIER 2 r g b c m y k s h t a p e \crlf 1 2 3 \define [...] \... {...} OPTIONAL 1 NUMBER 2 NAME 3 TEXT 131 = = = = = = = = = = = = = TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT B Definice příkazů 1 2 \definecombinedlist [...] [...,...] [..,.=3 .,..] 1 \definemakeup [...] [..,.=2 .,..] OPTIONAL 1 IDENTIFIER 1 IDENTIFIER 2 inherits from \setupmakeup 2 LIST 3 inherits from \setupcombinedlist 1 2 \defineregister [...] [...] 1 \definedescription [...] [..,.=2 .,..] OPTIONAL 1 IDENTIFIER 2 inherits from \setupdescriptions 1 SINGULAR NAME 2 PLURAL NAME 1 \definestartstop [...] [..,.=2 .,..] 1 2 \defineenumeration [...,...] [...] OPTIONAL [..,.=3 .,..] 1 IDENTIFIER 2 before after style = = = commands = OPTIONAL 1 IDENTIFIER 2 IDENTIFIER 3 inherits from \setupenumerations COMMAND COMMAND normal bold cap small... COMMAND slanted COMMAND boldslanted type 4 1 2 3 \definesynonyms [...] [...] [...] [...] 1 OPTIONAL 2 \definefloat [...] [...] SINGULAR NAME 1 SINGULAR NAME 2 PLURAL NAME 2 PLURAL NAME 3 COMMAND 4 COMMAND 1 2 \definehead [...] [...] 1 IDENTIFIER 2 SECTION 1 2 3 \definetabulate [...] [...] [...] OPTIONAL OPTIONAL 1 2 \defineinteractionmenu [...] [...,...] [..,.=3 .,..] 1 IDENTIFIER 2 left 3 before after inbetween left right middle state style right top bottom 1 IDENTIFIER 2 IDENTIFIER 3 TEXT * \enableregime [...] OPTIONAL B 1 * IDENTIFIER = = = = = = = = COMMAND COMMAND COMMAND COMMAND COMMAND COMMAND start stop none local normal bold slanted boldslanted type cap small... COMMAND color = IDENTIFIER distance = overlay DIMENSION samepage = yes empty no none unknownreference = yes empty no none leftoffset = DIMENSION rightoffset = DIMENSION topoffset = DIMENSION bottomoffset = DIMENSION position = yes no inherits from \setupframed Latin1 Latin2 Latin7 Latin15 iso-8859-1 iso-8859-2 iso-8859-7 iso-8859-15 cp1250 cp1251 cp1252 cp1253 cp1254 cp1257 viscii cyr grk mac utf8 unicode 1 \externalfigure [...] [..,.=2 .,..] 132 1 FILE 2 inherits from \useexternalfigure Definice příkazů 1 2 3 \inmargin [...] [...] {...} 1 2 \footnote [...] {...} OPTIONAL OPTIONAL OPTIONAL 1 REFERENCE 1 + 2 TEXT 2 REFERENCE 3 TEXT 2 \framed [..,.=1 .,..] {...} inherits from \setupframed 2 TEXT low 1 2 \keepblocks [...,...] [...,...] OPTIONAL 1 - OPTIONAL 1 IDENTIFIER 2 all IDENTIFIER * \from [...] * \mainlanguage [...] * REFERENCE * nl fr en uk de es cz .. * \godown [...] * \note [...] * DIMENSION * REFERENCE 1 2 3 \goto {...} {...} [...,...] * \page [...,...] 1 TEXT 2 TEXT 3 REFERENCE * \hairline yes makeup no preference bigpreference right disable last quadruple even odd empty reset start stop left blank * \pagereference [...] * REFERENCE 1 2 \hideblocks [...,...] [...,...] OPTIONAL 1 IDENTIFIER 2 IDENTIFIER 1 2 3 4 \placefloat [...] [...,...] {...} {...} OPTIONAL 1 2 3 \in {...} {...} [...] OPTIONAL 1 left right here top bottom inleft inright inmargin margin leftmargin rightmargin leftedge rightedge innermargin outermargin inneredge outeredge inner outer line high low fit page leftpage rightpage opposite always auto force tall reset line height depth split 2 REFERENCE 1 TEXT 3 TEXT 2 TEXT 4 TEXT 3 REFERENCE B \placefootnotes [..,.=* .,..] OPTIONAL * \indenting [...,...] * never medium none not no yes always first big normal odd even DIMENSION * next small 133 inherits from \setupfootnotes Definice příkazů 1 2 3 \placeformula [...,...] {...} $$...$$ OPTIONAL 1 REFERENCE 2 TEXT 1 2 \setupbackgrounds [...] [...,...] OPTIONAL OPTIONAL [..,.=3 .,..] OPTIONAL 1 top header TEXT footer leftpage rightpage 2 leftedge 3 state = start stop cd:repeat inherits from \setupframed 3 leftmargin bottom TEXT page rightmargin paper rightedge 1 \placelist [...,...] [..,.=2 .,..] OPTIONAL 1 IDENTIFIER 2 inherits from \setuplist * \setupblank [...] OPTIONAL * normal standard fixed flexible line DIMENSION big medium small \placelocalfootnotes [..,.=* .,..] OPTIONAL * * \setupbodyfont [...,...] inherits from \setupfootnotes * IDENTIFIER serif regular roman sans support sansserif mono type teletype handwritten calligraphic 5pt ... 12pt 1 2 \position (...,...) {...} 1 POSITION 2 TEXT 1 \setupbuffer [...] [..,.=2 .,..] OPTIONAL 1 1 IDENTIFIER 2 paragraph before after 2 \rotate [..,.=.,..] {...} = = = NUMBER COMMAND COMMAND OPTIONAL 1 inherits from \setuprotate 2 TEXT 1 \setupcaption [...] [..,.=2 .,..] 1 2 \section [...,...] {...} 1 IDENTIFIER 2 inherits from \setupcaptions OPTIONAL 1 REFERENCE 2 TEXT \setupcaptions [..,.=* .,..] * 1 2 \selectblocks [...,...] [...,...] [.=3 .] OPTIONAL 1 IDENTIFIER 2 IDENTIFIER 3 criterium = all OPTIONAL SECTION B * \setupalign [...] * width left right middle inner outer wide broad height bottom line reset hanging nothanging hyphenated nothyphenated 134 location width minwidth headstyle = = = = style = number inbetween align = = = conversion = way separator stopper command distance = = = = = top bottom none high low middle fit broad max DIMENSION fit DIMENSION normal bold slanted boldslanted type cap small... COMMAND normal bold slanted boldslanted type cap small... COMMAND yes no COMMAND inner outer left right middle normal no yes numbers characters Characters romannumerals Romannumerals bytext bycd:section TEXT TEXT COMMAND DIMENSION Definice příkazů 1 \setupenumerations [...,...] [..,.=2 .,..] \setupcolors [..,.=* .,..] * state conversion reduction rgb cmyk mpcmyk mpspot textcolor split criterium OPTIONAL start stop global yes no always yes no yes no yes no yes no yes no IDENTIFIER c m y k p s no all none = = = = = = = = = = local IDENTIFIER 1 IDENTIFIER 2 inherits from \definedescription \setupfillinlines [..,.=* .,..] * \setupcolumns [..,.=* .,..] * n ntop rule height tolerance = = = = = NUMBER NUMBER on off DIMENSION verystrict strict tolerant verytolerant stretch distance = DIMENSION balance = yes no align = inner outer left right middle normal no yes blank = fixed halfline line flexible big medium small option = background direction = left right inherits from \setupframed width margin distance before after = = = = = DIMENSION DIMENSION DIMENSION COMMAND COMMAND \setupfillinrules [..,.=* .,..] * width distance before after style = = = = = n interlinespace separator = = = fit broad DIMENSION DIMENSION COMMAND COMMAND normal bold slanted boldslanted type cap small... COMMAND NUMBER small medium big TEXT 1 \setupcombinedlist [...] [..,.=2 .,..] 1 \setupfloat [...] [..,.=2 .,..] 1 IDENTIFIER 1 IDENTIFIER 2 level = 1 2 3 4 SECTION inherits from \setuplist 2 height = DIMENSION width = DIMENSION maxheight = DIMENSION maxwidth = DIMENSION minwidth = DIMENSION default = IDENTIFIER pageboundaries = LIST leftmargindistance = DIMENSION rightmargindistance = DIMENSION location = left middle inherits from \setupframed current 1 \setupdescriptions [...,...] [..,.=2 .,..] OPTIONAL 1 IDENTIFIER 2 headstyle = style = color width distance sample text align = = = = = = margin location = = headcommand hang before inbetween after indentnext indenting = = = = = = = normal bold slanted boldslanted type cap small... COMMAND normal bold slanted boldslanted type cap small... COMMAND IDENTIFIER fit broad DIMENSION DIMENSION TEXT TEXT inner outer left right middle normal no yes standard yes no DIMENSION left right top serried inmargin inleft inright hanging COMMAND fit broad NUMBER COMMAND COMMAND COMMAND yes no never none not no yes always first next small medium big normal odd even DIMENSION right \setupfloats [..,.=* .,..] * 135 location = left right middle width = fit DIMENSION before = COMMAND after = COMMAND margin = DIMENSION spacebefore = small medium big spaceafter = small medium big sidespacebefore = small medium big sidespaceafter = small medium big indentnext = yes no ntop = NUMBER nbottom = NUMBER nlines = NUMBER default = IDENTIFIER tolerance = 0 1 2 leftmargindistance = DIMENSION rightmargindistance = DIMENSION sidealign = normal line numbering = yes nocheck inherits from \setupframed none none none none B Definice příkazů 1 \setupfooter [...] [..,.=2 .,..] \setupframed [..,.=* .,..] 1 inherits from \setupheader * 2 inherits from \setupheader OPTIONAL 1 2 3 \setupfootertexts [...] [...] [...] height width = = autowidth offset location = = = option strut align = = = bottom top frame topframe bottomframe leftframe rightframe frameoffset framedepth framecorner frameradius framecolor rulethickness background = = = = = = = = = = = = = = backgroundscreen backgroundcolor backgroundoffset backgrounddepth backgroundcorner backgroundradius depth corner radius empty foregroundcolor foregroundstyle = = = = = = = = = = = = OPTIONAL OPTIONAL OPTIONAL 1 text margin edge 2 TEXT SECTION date MARK pagenumber 3 TEXT SECTION date MARK pagenumber \setupfootnotes [..,.=* .,..] * conversion = way location = = numbers characters Characters romannumerals Romannumerals bytext bycd:section page TEXT columns firstcolumn lastcolumn high none rule = on off before = COMMAND after = COMMAND width = DIMENSION height = DIMENSION bodyfont = 5pt ... 12pt small big style = normal bold slanted boldslanted type cap small... COMMAND distance = DIMENSION columndistance = DIMENSION margindistance = DIMENSION n = NUMBER numbercommand = \...#1 textcommand = \...#1 split = tolerant strict verystrict NUMBER textstyle = normal bold slanted boldslanted type cap small... COMMAND textcolor = IDENTIFIER interaction = yes no factor = NUMBER inherits from \framed \setupframedtexts [..,.=* .,..] * \setupformulae [..,.=* .,..] * B location left right align = = = = option strut distance margin leftmargin rightmargin indentnext alternative spacebefore after separator conversion = = = = = = = = = = = = fit broad DIMENSION fit broad fixed local DIMENSION yes no force none overlay default DIMENSION depth hanging high lohi low top middle bottom keep none empty yes no global local inner outer left right middle normal no yes COMMAND COMMAND on off none overlay on off on off on off on off DIMENSION DIMENSION round rectangular DIMENSION IDENTIFIER DIMENSION screen color none foreground IDENTIFIER NUMBER IDENTIFIER frame DIMENSION DIMENSION round rectangular DIMENSION DIMENSION round rectangular DIMENSION yes no IDENTIFIER normal bold slanted boldslanted type cap small... COMMAND left right TEXT TEXT inner outer left right middle normal no yes middle yes no DIMENSION DIMENSION standard yes no DIMENSION DIMENSION yes no IDENTIFIER DIMENSION DIMENSION TEXT numbers characters Characters romannumerals Romannumerals TEXT 136 bodyfont style = = 5pt ... 12pt small big normal bold slanted boldslanted type cap small... COMMAND left = COMMAND right = COMMAND before = COMMAND after = COMMAND inner = COMMAND linecorrection = on off depthcorrection = on off margin = standard yes no location = left right middle none indenting = never none not no yes always first next small medium big normal odd even DIMENSION inherits from \setupframed Definice příkazů 1 \setuphead [...,...] [..,.=2 .,..] \setupheads [..,.=* .,..] 1 SECTION * 2 style = normal bold slanted boldslanted type cap small... COMMAND textstyle = normal bold slanted boldslanted type cap small... COMMAND numberstyle = normal bold slanted boldslanted type cap small... COMMAND color = IDENTIFIER textcolor = IDENTIFIER numbercolor = IDENTIFIER number = yes no ownnumber = yes no page = left right yes continue = yes no header = none empty high nomarking text = none empty high nomarking footer = none empty high nomarking before = COMMAND inbetween = COMMAND after = COMMAND alternative = normal inmargin middle TEXT hang = none broad fit line NUMBER command = \...#1#2 numbercommand = \...#1 textcommand = \...#1 deepnumbercommand = \...#1 deeptextcommand = \...#1 prefix = + - TEXT placehead = yes no empty incrementnumber = yes no LIST FILE resetnumber = yes no file = IDENTIFIER expansion = yes no command margintext = yes no inherits from \setupheads sectionnumber alternative = = separator stopper align = = = aligntitle tolerance = = indentnext command margin = = = yes NUMBER no normal margin middle TEXT paragraph TEXT TEXT inner outer left right middle normal no yes yes float no verystrict strict tolerant verytolerant stretch yes no \...#1#2 DIMENSION * \setupindenting [...,...] * never medium none not no yes always first big normal odd even DIMENSION next small 1 \setupinmargin [...] [..,.=2 .,..] OPTIONAL 1 left 2 location style \setupheada right NUMBER = = left right both normal bold slanted boldslanted type cap small... COMMAND before = COMMAND after = COMMAND align = inner outer left right middle normal no yes line = NUMBER distance = DIMENSION separator = TEXT width = DIMENSION distance = DIMENSION stack = yes no inherits from \setupframed 1 \setupheader [...] [..,.=2 .,..] OPTIONAL margin \setupinteraction [..,.=* .,..] edge 1 TEXT 2 state = strut style = = leftstyle = rightstyle = leftwidth rightwidth before after = = = = normal stop start empty high none nomarking IDENTIFIER yes no normal bold slanted boldslanted type cap small... COMMAND normal bold slanted boldslanted type cap small... COMMAND normal bold slanted boldslanted type cap small... COMMAND DIMENSION DIMENSION COMMAND COMMAND 1 2 * 3 \setupheadertexts [...] [...] [...] OPTIONAL OPTIONAL OPTIONAL 1 text margin 2 TEXT SECTION edge date MARK pagenumber 3 TEXT SECTION date MARK pagenumber 137 state menu page click split display openaction closeaction openpageaction closepageaction calculate strut width height depth style = = = = = = = = = = = = = = = = color contrastcolor symbolset title subtitle author date keyword fieldlayer = = = = = = = = = start stop on off yes no yes no yes no new REFERENCE REFERENCE REFERENCE REFERENCE IDENTIFIER yes no DIMENSION DIMENSION DIMENSION normal bold slanted boldslanted type cap COMMAND IDENTIFIER IDENTIFIER IDENTIFIER TEXT TEXT TEXT TEXT TEXT auto IDENTIFIER small... B Definice příkazů 1 2 \setupitemize [...] [...,...] [..,.=3 .,..] 1 \setuplist [...,...] [..,.=2 .,..] 1 NUMBER 1 IDENTIFIER 2 standard broad serried packed unpacked stopper joinedup atmargin inmargin autointro loose repeat SECTION paragraph intext random 2 3 margin leftmargin rightmargin width distance factor items start before inbetween after left right beforehead afterhead headstyle = = = = = = = = = = = = = = = = state alternative coupling criterium marstyle = symstyle = stopper n symbol align = = = = indentnext = OPTIONAL OPTIONAL OPTIONAL each no standard DIMENSION no standard DIMENSION no standard DIMENSION DIMENSION DIMENSION NUMBER NUMBER NUMBER COMMAND COMMAND COMMAND TEXT TEXT COMMAND COMMAND normal bold slanted boldslanted type cap small... COMMAND normal bold slanted boldslanted type cap small... COMMAND normal bold slanted boldslanted type cap small... COMMAND TEXT NUMBER NUMBER inner outer left right middle normal no yes yes no \setuplayout [..,.=* .,..] * B width height backspace topspace margin leftmargin rightmargin header footer top bottom leftedge rightedge headerdistance footerdistance topdistance bottomdistance leftmargindistance rightmargindistance leftedgedistance rightedgedistance horoffset veroffset style = = = = = = = = = = = = = = = = = = = = = = = = color marking location = = = scale nx ny dx dy lines columns columndistance grid bottomspace cutspace textdistance textwidth textmargin clipoffset page paper = = = = = = = = = = = = = = = = = DIMENSION fit middle DIMENSION fit middle DIMENSION DIMENSION DIMENSION DIMENSION DIMENSION DIMENSION DIMENSION DIMENSION DIMENSION DIMENSION DIMENSION DIMENSION DIMENSION DIMENSION DIMENSION DIMENSION DIMENSION DIMENSION DIMENSION DIMENSION DIMENSION normal bold slanted boldslanted type cap small... COMMAND IDENTIFIER on off color screen TEXT left middle right bottom top singlesided doublesided DIMENSION NUMBER NUMBER DIMENSION DIMENSION NUMBER NUMBER DIMENSION yes no DIMENSION DIMENSION DIMENSION NUMBER DIMENSION DIMENSION IDENTIFIER IDENTIFIER = = = = start stop a b c ... none command on off SECTION local previous current all pageboundaries = LIST style = normal bold slanted boldslanted type cap small... COMMAND numberstyle = normal bold slanted boldslanted type cap small... COMMAND textstyle = normal bold slanted boldslanted type cap small... COMMAND pagestyle = normal bold slanted boldslanted type cap small... COMMAND color = IDENTIFIER command = \...#1#2#3 numbercommand = \...#1 textcommand = \...#1 pagecommand = \...#1 interaction = cd:sectionnumber TEXT pagenumber all before = COMMAND after = COMMAND inbetween = COMMAND left = TEXT right = TEXT label = yes no prefix = yes no none pagenumber = yes no headnumber = yes no cd:sectionnumber = yes no aligntitle = yes no margin = DIMENSION width = DIMENSION fit height = DIMENSION fit broad depth = DIMENSION fit broad distance = DIMENSION separator = TEXT stopper = TEXT symbol = none 1 2 3 ... expansion = yes no command maxwidth = DIMENSION inherits from \framed 1 \setupmakeup [...] [..,.=2 .,..] 138 1 IDENTIFIER 2 width height voffset hoffset page commands doublesided headerstate = = = = = = = = footerstate = textstate = topstate bottomstate pagestate color = = = = DIMENSION DIMENSION DIMENSION DIMENSION left yes right COMMAND yes no empty normal stop start nomarking normal stop start nomarking normal stop start nomarking stop start stop start stop start IDENTIFIER empty none empty none empty none Definice příkazů \setuppagenumbering [..,.=* .,..] 1 2 \setupregister [...] [...] [..,.=3 .,..] * 1 SINGULAR NAME 2 IDENTIFIER 3 n balance align = = = style = pagestyle = textstyle = indicator coupling cd:sectionnumber criterium distance symbol interaction expansion referencing command location maxwidth unknownreference alternative prefix compress deeptextcommand = = = = = = = = = = = = = = = = = alternative location = = conversion = style = left right way text numberseparator textseparator cd:sectionnumber separator strut state width command = = = = = = = = = = = = OPTIONAL singlesided doublesided header footer left right middle margin marginedge inleft inright numbers characters Characters romannumerals Romannumerals normal bold slanted boldslanted type cap small... COMMAND TEXT TEXT bytext bycd:section TEXT TEXT TEXT yes no TEXT yes no start stop DIMENSION \...#1 1 2 \setupparagraphs [...] [...] [..,.=3 .,..] OPTIONAL 1 IDENTIFIER 2 NUMBER 3 style = width height align = = = tolerance = distance before after inner command rule = = = = = = each normal bold slanted boldslanted type cap small... COMMAND DIMENSION DIMENSION inner outer left right middle normal no yes verystrict strict tolerant verytolerant stretch DIMENSION COMMAND COMMAND COMMAND COMMAND on off NUMBER yes no inner outer left right middle normal no yes normal bold slanted boldslanted type cap small... COMMAND normal bold slanted boldslanted type cap small... COMMAND normal bold slanted boldslanted type cap small... COMMAND yes no yes no yes no SECTION local all DIMENSION 1 2 ... n a ... none pagenumber TEXT yes no command on off \...#1 left middle right DIMENSION empty none a b A B both first none no yes \...#1 \setuprotate [..,.=* .,..] * rotation = NUMBER location = normal high fit inherits from \setupframed broad depth 1 \setupsectionblock [...] [..,.=2 .,..] * \setuppositioning [..,.=.,..] * state unit factor scale offset xstep ystep = = = = = = = start overlay cm pt em mm ex NUMBER NUMBER yes no absolute relative absolute relative es 1 IDENTIFIER 2 number page before after in = = = = yes no yes right COMMAND COMMAND 1 \setupsynonyms [...] [..,.=2 .,..] 139 1 IDENTIFIER 2 textstyle = synonymstyle = location = width state criterium conversion expansion command = = = = = = normal bold slanted boldslanted type cap small... COMMAND normal bold slanted boldslanted type cap small... COMMAND left right top serried inmargin inleft inright DIMENSION start stop all used yes no yes no command \...#1#2#3 B Definice příkazů \setuptype [..,.=* .,..] \setuptables [..,.=* .,..] * distance bodyfont HL VL depth height rulethickness rulecolor align = = = = = = = = = commands align = = background backgroundscreen backgroundcolor bodyfont = = = = small medium 5pt ... 12pt NUMBER small NUMBER small NUMBER strut NUMBER strut DIMENSION IDENTIFIER inner outer middle normal COMMAND inner outer middle normal screen color NUMBER IDENTIFIER 5pt ... 12pt big small medium medium * big big big none none 2 unit indenting = = before after inner EQ rulecolor align = = = = = = rulethickness distance = = bodyfont rule split = = = color = on off slanted normal none normal bold slanted cap small... COMMAND IDENTIFIER boldslanted type 1 \setuptyping [...] [..,.=2 .,..] left right no yes none small OPTIONAL 1 file 2 space page option text icommand vcommand ccommand before after margin evenmargin oddmargin blank = = = = = = = = = = = = = escape space tab page indentnext style = = = = = = color palet lines empty numbering = = = = = big OPTIONAL IDENTIFIER = = = left right no yes 1 \setuptabulate [...] [..,.=2 .,..] 1 space option style DIMENSION never none not no yes always first next small medium big normal odd even DIMENSION COMMAND COMMAND COMMAND TEXT IDENTIFIER inner outer left right middle normal no yes DIMENSION blank grid depth DIMENSION small medium big none 5pt ... 12pt small big normal line yes no typing IDENTIFIER on off yes no slanted normal commands color none yes no COMMAND COMMAND COMMAND COMMAND COMMAND DIMENSION standard yes no DIMENSION DIMENSION DIMENSION small medium big standard halfline line on off NUMBER yes no yes no yes no normal bold slanted boldslanted type cap small... COMMAND IDENTIFIER IDENTIFIER yes no hyphenated yes all no line file no * \setupwhitespace [...] OPTIONAL \setuptextbackground [..,.=* .,..] * leftoffset rightoffset topoffset bottomoffset before after state location alternative inherits from = DIMENSION = DIMENSION = DIMENSION = DIMENSION = COMMAND = COMMAND = start stop = text paragraph = 0 1 2 \setupframed * * none * B = = = = = = = = = = = = = = medium big line fixed fix DIMENSION IDENTIFIER * \startalignment [...] ... \stopalignment OPTIONAL \setupthinrules [.=.] interlinespace n before inbetween after color backgroundcolor height depth alternative rulethickness color background backgroundcolor small * \showsymbolset [...] * * none small medium big NUMBER COMMAND COMMAND COMMAND IDENTIFIER IDENTIFIER DIMENSION max DIMENSION max a c DIMENSION IDENTIFIER color none IDENTIFIER inherits from \setupalign * \startbuffer [...] ... OPTIONAL * 140 IDENTIFIER \stopbuffer Definice příkazů \startcolumns [..,.=* .,..] ... OPTIONAL \stopcolumns * \startlocal ... \stoplocal inherits from \setupcolumns \startlocalfootnotes ... \stoplocalfootnotes * \startcombination [...] ... \stopcombination * N*M \startnamemakeup [..,.=* .,..] ... OPTIONAL \stopnamemakeup * \startformula ... inherits from \startmakeup \stopformula * \startpacked [...] ... \stoppacked OPTIONAL 1 2 \startframedtext [...] [..,.=.,..] 4 OPTIONAL OPTIONAL {...} ... \stopframedtext 1 left 2 inherits from \setupframedtexts right middle 3 TEXT 4 TEXT 3 {...} * blank none \startpostponing ... * \starttable [...] ... \starthiding ... \stoptable \stophiding * * \startinteractionmenu [...] ... \stopinteractionmenu * \stoppostponing TEXT IDENTIFIER 1 2 \starttabulate [...] [...] ... \stoptabulate OPTIONAL OPTIONAL IDENTIFIER 1 TEXT 2 TEXT 1 \startitemize [...,...] [..,.=2 .,..] ... OPTIONAL OPTIONAL \stopitemize 1 a A KA standard atmargin repeat 2 inherits from \setupitemize \starttextbackground ... \stoptextbackground n N m r R KR NUMBER continue broad serried packed stopper joinedup inmargin intro columns text paragraph \starttyping ... \stoptyping B \startlinecorrection ... \stoplinecorrection \startunpacked ... \startlines ... \stoplines 141 \stopunpacked Definice příkazů 1 2 \subject [...,...] {...} * \type {...} OPTIONAL 1 REFERENCE 2 TEXT * TEXT 1 2 \useblocks [...,...] [...,...] 1 2 \subsection [...,...] {...} OPTIONAL OPTIONAL 1 REFERENCE 2 TEXT 1 IDENTIFIER 2 IDENTIFIER 1 2 3 \useexternaldocument [...] [...] [...] 1 2 \subsubject [...,...] {...} 1 IDENTIFIER 1 REFERENCE 2 file 2 TEXT 3 TEXT OPTIONAL * \switchtobodyfont [...,...] * \usemodule [...,...] * * 5pt ... 12pt small big global IDENTIFIER 1 2 \textreference [...] {...} * \usesymbols [...] 1 REFERENCE * 2 TEXT IDENTIFIER 1 2 \writebetweenlist [...] {...} \thinrule 1 SECTION 2 TEXT IDENTIFIER \thinrules [.=* .] OPTIONAL * 1 2 3 \writetolist [...] {...} {...} inherits from \setupthinrules 1 2 \title [...,...] {...} OPTIONAL 1 REFERENCE 2 TEXT B 142 1 SECTION 2 TEXT 3 TEXT IDENTIFIER Seznam příkazů C — 127 - 127 \\ 117 Seznam příkazů \definesymbol 13 \definesynonyms 72 \definetabulate 45 \DL 34 \DR 34 \abbreviation 72 \adaptlayout 94 \af 118 \at 74, 83 \em 89 \en 118 \enableregime 91, 125, 126 \es 118 \externalfigure 28 \bf 88 \blank 99 \ca 118 \cap 89 \chapter 10 \cn 118 \color 77 \column 48 \completecontent 66 \completeindex 71 \completelistofabbreviations 72 \completeregister 71 \crlf 117 \currentdate 115, 127 \cz 118 \fi 118 \footnote 50 \FR 34 \fr 118 \framed 57 \frenchspacing 127 \from 83 \getbuffer 111 \goto 83 \gr 118 \hairline 112 \head 13 \hideblocks 110 \high 114 \HL 34 \hr 118 \hu 118 \da 118 \DC 34 \de 118 \defineblock 110 \definebodyfont 88 \definecolor 77 \definecombinedlist 66 \definedescription 53 \defineenumeration 55 \definefloat 107 \definelist 66 \definemakeup 106 \defineregister 71 \in 74, 83 \indenting 101 \index 71 \inframed 57 \infull 72 \inleft 61 \inmargin 61, 117 143 C Seznam příkazů \input 119 \inright 61 \it 118 \item 13 \pt 118 \ja 118 \rightaligned 80 \rm 88 \ro 118 \rotate 116 \ru 118 \quotation 127 \quote 127 \language 118 \leftlines 80 \loadabbreviations 72 \lohi 114 \LOW 34 \low 114 \LR 34 \setupalign 80 \setupbackgrounds 79 \setupblank 99 \setupblock 110 \setupbodyfont 86, 91, 126 \setupbuffer 111 \setupcaption 107 \setupcaptions 28, 34, 107 \setupcolors 77 \setupcolumns 48 \setupcombinedlist 66 \setupdescriptions 53 \setupenumerations 55 \setupfigures 28 \setupfillinlines 112 \setupfillinrules 112 \setupfloat 107 \setupfloats 28, 34, 107 \setupfooter 64 \setupfootertexts 64 \setupfootnotes 50 \setupformulae 23 \setupframed 57 \setupframedtext 59 \setuphead 10 \setupheader 64 \setupheadertexts 64 \setupheads 10 \setupheadtext 127 \setupindenting 101 \setupinteraction 82 \setupitemize 13 \setuplayout 94 \setuplist 66 \setupmakeup 106 \setupmargin 61 \setupositioning 115 \mainlanguage 118, 125 \margintitle 61 \midaligned 80 \month 127 \MR 34 \NC 34, 45 \nl 118 \no 118 \noheaderandfooterlines 64 \noindenting 101 \nowhitespace 99 \NR 34, 45 \overstrikes 112 C \page 63 \pagereference 74 \par 98 \paragraph 10, 98 \percent 27 \periods 112 \permille 27 \pl 118 \placecontent 66 \placefigure 28 \placeformula 23 \placeindex 71 \placeintermezzo 107 \placelistofabbreviations 72 \placeregister 71 \placetable 34 \position 115 144 Seznam příkazů \setuppagenumbering 63 \setupparagraphs 102 \setupregister 71 \setupsynonyms 72 \setuptables 34 \setuptabulate 45 \setuptextbackground 78 \setupthinrules 112 \setup tolerance 80 \setuptype 90 \setuptyping 90 \setupwhitespace 99 \showframe 94 \showlayout 94 \showmakeup 94 \showpatterns 91, 125 \showsetups 94 \showsymbolset 93 \sk 118 \sl 88, 118 \SR 34 \ss 88 \startbuffer 111 \startchemical 45 \startcolums 48 \startcombination 28, 34 \startfiguretext 28 \startformula 23 \startframedtext 59 \starthiding 112 \startitemize 13 \startlinecorrection 99 \startlines 117 \startlocal 94 \startnamemakeup 106 \startpacked 99 \startpostponing 63 \startstandardmakeup 106 \starttable 34 \starttabulate 45 \starttext 125 \starttextbackground 78 \starttextrule 112 \starttyping 90 \startunpacked 99 \stoptext 125 \subject 10 \subparagraph 10 \subsubject 10 \sv 118 \switchtobodyfont 86 \texteuro 93 \tfa 88 \tfb 88 \tfc 88 \tfd 88 \thinrule 112 \thinrules 112 \THREE 34 \title 10 \tr 118 \tt 88 \TWO 34 \type 90 \typebuffer 111 \ua 118 \uk 118 \underbar 112 \unit 27, 72 \us 118 \useblocks 110 \useencoding 126 \useexternaldocument 83 \usemodule 119 \usesymbols 93 \usetypescript 91, 126 \VL 34 \vn 118 \weekday 127 \whitespace 99 \writebetweenlist 66 \writetolist 66 145 C 146 Rejstřík D a Rejstřík e akcenty 93 AMS 86 AMSmath 119 euro 93 Acrobat Exchange 81 f b font bezpatkový 88 Computer Modern 86 Courier 126, 88 Helvetica 126 kurzivní 88 Latin Modern 126 neproporcionální 90 řez 86 skloněný 88 Times 126 tučný 88 velikost 86, 88 formátování 94, 102 barva 77 barva pozadí 78 bibliografie 119 blok textu 110 c Computer Modern 86 cont-sys.tex 123 Courier 126 č čeština 125 číslované poznámky 55 číslování stránek 63 g GNUplot 119 grafika 122 d datum 115, 127 definice pojmů 53 příkazů a maker 103 den v týdnu 127 dělění slov 118 display mód 19 Acrobat Distiller 81 dolní index 114 dvi–soubor 7 h Helvetica 126 hlavička viz záhlaví horní index 114 hrana textu 94 ch chemické struktury 119 147 D Rejstřík modul amsl 119 bib 119 gnuplot 119 chart 119 chemic 119 lilypond 119 narrowtt 119 nath 119 pictex 119 steps 119 streams 119 units 119 i index dolní 114 horní 114 interakce vnější 83 vnitřní 83 interaktivní mód 82 italika viz kurziva j jazyk 118 jednotka SI 27 jednotky 27, 119 n nadpisy 10 nastavení 102 názvy 127 k kapitálky 89 komentář kódu 112, 119 kódování dělění slov 91, 126 fontu 91, 126 vstupní 91, 126 křížové reference 74 kurziva 88 o obrázek 28 obsah 66 odkazování 74 odrážky 13 ve sloupcích 13 odsazení 101 odstavec odsazení 101, 98 ukončení 98 vyznačení 59 orámování textu 57 otočení 116 l Latin Modern 126 LilyPond 119 linky 112 Lucida Bright 86 p m D patička viz úpatí pdf–soubor 7 pictex 119 písmo viz font plocha stránky 79 plovoucí objekt 28, 34, 107 polohování 115 pomlčka 127 pomocné soubory 124 marginálie 61, 94 matematické symboly 25 matematický mód 19 matematika 18 METAPOST 122 mezera meziodstavcová 99 měsíce 127 minimální dokument 125 148 Rejstřík popisky 127 pozadí stránky 79 text 78 poznámky pod čarou 50 % ve vstupním souboru 119 procento 27 promile 27 PS–fonty 86 tabulky odstavcový text 45, 34 text skrytý 112 uložení 111 textový blok 110 textový mód 19 TEXUTIL 123 Times 126 titulní strana 106 tub–soubor 124 tuf–soubor 124 tui–soubor 124 tuo–soubor 123, 124 typescript 91, 126 r Acrobat Reader 81 reference 74 referenční jméno 74 rejstřík 71 režim viz kódování vstupní rotace 116 u ukončení řádku 117 uložení textu 111 umístění do předepsané polohy 115 uvozovky dvojité 127 jednoduché 127 uživatelská nastavení 123 úpatí 64, 94 úprava stránky 94 ř řazení 127 řádkový rejstřík 50 řecké znaky 25 s seznamy 66 skrytý text 112 sloupce 45, 48 slovenština 125 složené znaky 92 spodek textu 94 spojovník 127 stavové diagramy 119 stránkové zrcadlo 94 strojopis 90 úzký 119 symboly matematické 25 řecké 25, 93 synchronizace textů 119 synonyma 72 v vektorová grafika 122 velikost fontu 88 verbatim 90 vršek textu 94 vstup jiného souboru 119 vstupní soubor 5 zpracování 7, 123 vyznačení odstavce 59 výčty 13 vývojové diagramy 119 vzorce 23 z zalamování stránek 63 zarovnání 80 záhlaví 64, 94 zvláštní znaky 8 t tabelace 45 149 D Rejstřík zvýraznění 89 D 150 Autor základního textu Ton Otten Překlad Vít Zýka, Ján Buša, Jiří Hrbek, Martina Plachá a Petr Tesařík Design a typografie Hans Hagen Ilustrace Johan Jonker PRAGMA ADE Ridderstraat 27 8061GH Hasselt NL +31 (0)38 477 53 69 www.pragma-ade.com 6. prosince 2006 about CAP adaptlayout Cap Caps comparepalet chapter appendix definecombinedlist define at atpage character coupledregister defineblank defineconversion background characters completelistoffloats coupledocument decouplemarking arg Character completecombinedlist correctwhitespace date adding blackrule Characters chem completelistofsorts couplemarking defineblock clip blank clonefield couplepaper definefield but button column crlf cap comparecolorgroup convertnumber currentdate definebuffer definefieldstack bypassblocks comment completeregister coupleregister definebodyfontenvironment defineenumeration bookmark color completelistofsynonyms couplepage definebodyfont definedescription blackrules copyfield currentheadnumber definecolor definecolorgroup definefiguresymbol definefloat Tento manuál popisuje některé definefont defineframed defineframedtext definehead defineindenting defineinteractionmenu:1 defineinteractionmenu:1 defineinteractionmenu:2 vlastnosti CONTEXTu – definelabel definelist definelogo definemakeup typografického systémudefinemarking defineoutput defineoverlay definepalet definepapersize defineparagraphs defineprofile defineprogram definerawfont definereference definereferenceformat definereferencelist defineregister definerule definesection založeného na TEXu. definesectionblock definesorting definetextposition definetextvariable disableinteractionmenu definestartstop definesubfield definesymbol definetyping defineversion definetype definesynonyms description definetabletemplate determineheadnumber definetabulate definetext determinelistcharacteristics enableregime enumeration externalfigure field fieldstack fillinfield fillinline fillinrules uživateli flexibilní prostředí pro sazbu fillintext fitfield fixedspaces followprofile followprofileversion followversion footnote footnotetext forceblocks fraction framed dokument ů vysoké kvality. framedtext from getbuffer getmarking godown goto gotobox graycolor grid hairline head headnumber headtext hideblocks Není třeba hluboké znalosti high hl in indentation indenting inframed ininner inleft inline inmargin inothermargin inouter inright installlanguage TEXu. Vzhled dokumentu je interactionbar interactionbuttons item items its keepblocks labeling labels labeltext language leftaligned listsymbol v CONTEXTu parametrizován, loadsorts loadsynonyms logfields lowmůže mainlanguage mar marginrule margintext marking markversion mathematics mediaeval takže si jej lohi uživatel dosti snadno upravit. midaligned mirror MONTH month moveongrid name nextsection nocap noheaderandfooterlines noindenting nolist nomarking nomoreblocks nomorefiles nop pagereference donttest CONT emptylines XT nabízí E nospace pagetype note notopandbottomlines paragraph part periods nowhitespace placebookmarks placelegendCONT placelist placelistoffloats a testován EXT je vyvíjen placeformula numbers overbar overbars placecombinedlist:1 placelistofsorts overstrike overstrikes placecombinedlist:2 placelistofsynonyms packed placefloat placelocalfootnotes page placefootnotes placelogos placeongrid v praxi; je užívánplaceregister:1 pro sazbu placeontopofeachother placereferencelist placeregister:2 placerule placesidebyside placesubformula placetextvariable jednoduchých knih i složitých position positiontext processblocks processpage program publication quotation quote ran ref reference referral referraldate register dokumentů, papírových reservefloat reset resetmarking resettextcontent rightaligned Romannumerals romannumerals rotate scale screen section seeregister i elektronických. Tento manuál selectblocks selectpaper pro selectversion settextcontent settextvariable setupalign setuparranging setupbackground setupbackgrounds začátečníky popisuje vlastnosti dostačující pro sazbu setupbodyfontenvironment setupbottom setupbottomtexts setupbuffer setupbuttons setupblackrules setupblank setupblock setupbodyfont každodenních publikací jako jsou setupcapitals setupcaption setupcaptions setupclipping setupcolor setupcolors setupcolors setupcolumns setupcombinations setupcombinedlist manuály a vzdělávací materály. setupcomment setupdescriptions setupenumerations setupfloats setupfloatsplitting setupframed setupframedtexts setupfooter setuphead setupexternalfigures setupfootertexts setupheada setupfield setupfields setupfootnotedefinition setupheader setupheadertexts setupfillinlines setupfootnotes setupheadnumber setupforms setupheads setupfillinrules setupfloat setupformulae setupframed setupheadtext setuphyphenmark Manuál, v trochu odlišném setupindentations setupindenting setupinmargin setupinteraction setupinteraction setupinteractionbar setupinteractionscreen setupinterlinespace:1 formátování, je dostupný setuplabeltext setuplanguage setuplayout setuplegend setuplinenumbering setupinterlinespace:2 setupitemgroup setupitemize v elektronické verzi, A4 verzi setupitems pro setuplines setuplinewidth setuplistalternative setupmakeup setupmarginblocks setupmarginrules setupmarking setupnarrower tisk asetuplist A5 verzi pro Zpravodaj CSTUG u. Makrobalík CONT XT , E setupnumbering setupoppositeplacing setupoutput setuppagenumber setuppagenumbering setuppagetransitions setuppalet setuppaper setuppapersize trochu složitější příklady setupparagraphnumbering setupparagraphs setuppositioning setupprofiles setupprograms setuppublications setupquote setupreferencelist použití a další informace, může setupreferencing setupregister setuprotate setuprule setupscreens setupsection setupsectionblock setupsorting setupspacing setupstrut čtenář nalézt na adrese http: setupsubpagenumber setupsymbolset setupsynchronization setupsynchronizationbar setupsynonyms setupsystem setuptab setuptables setuptabulate //www.pragma-ade.com. setuptext setuptextbackground setuptop setuptoptexts showcolor setuptextposition setuptype setuptexttexts setupunderbar setupurl setuptextvariable setupversions setupthinrules setupwhitespace setupthinrules showbodyfont setuptolerance showbodyfontenvironment PRAGMA ADE showfields showframe showgrid showlayout showmakeup showpalet showprint showstruts showsymbolset someline somewhere 27sort space splitfloat startalignment startbackground startbuffer startcolor Ridderstraat GH Hasselt NL startcombination startcomment8061startcomponent startdescription startdocument startenumeration startenvironment startfact www.pragma-ade.com startfloattext startformula startframedtext startframedtext starthiding starthiding startinteractionmenu startitemgroup startlegend showcolorgroup setuptyping setuptextrules startline startmarginblock startparagraph startpositioning typ useexternalfigure vl WEEKDAY sub synchronize type startnamemakeup starttables subject synonym typebuffer useexternalfile weekday startlinenumbering startpostponing starttable stretched synchronizationbar translate startlinecorrection startmarginrule startsynchronization startversion showexternalfigures whitespace tab typefile tex Word startproduct startnarrower startprofile subsubsection textbackground underbars useblocks WORDS Words startlocalenvironment startopposite startproject subsubsubject textrule usecommands usemodule startoverlay startoverview startregister starttextrule switchtobodyfont textvariable useencoding usespecials writetolist startfigure startitemize startmakeup startpacked startunpacked switchtorawfont thinrules startcolumns startsymbolset starttyping thinrule usedirectory usereferences writebetweenlist startlocalfootnotes startquotation starttextbackground textreference useexternalsoundtrack wordright startlocal starttabulate subsubject underbar useexternalfiles WORD startnamemakeup starttabulate subsection startlines showsetups sym title symbol tooltip useexternaldocument usesymbols writetoreferencelist useURL version writetoregister
Podobné dokumenty
verze pro tisk ve stupních šedi
defineframedtext definehead defineindenting defineinteractionmenu:1 defineinteractionmenu:1
defineinteractionmenu:2 definelabel definelist definelogo definemakeup definemarking
defineoutput defineo...
Úvod do LaTeXu
http://texstudio.sourceforge.net/
http://miktex.org/download
poslednı́ verze
32bit pro staršı́ procesory
64 bit pro ty novějšı́