Ne příliš stručný úvod do systému LATEX 2ε Neboli LATEX2e v 73 minutách Tobias Oetiker Hubert Partl, Irene Hyna a Elisabeth Schlegl Michal Kočer, Pavel Sýkora Verze 2.2-Beta, 25 leden 1996 Verze překladu CZ-0.9-Beta, prosinec 1998 ii Tento dokument je „public domain . Může být tištěn a distribuován zdarma ve svém původním tvaru spolu se seznamem autorů. Je-li dokument měněn nebo je-li jeho část užita v jiném dokumentu, potom seznam autorů musí obsahovat jména všech původních autorů a také jména autorů, kteří provedli tyto změny. Je-li dokument užit komerčně platí zásady uvedené v GNU Public Licence. Poděkování Většina materiálu v této příručce užívá původního rakouského dokumentu Úvod do LATEXu 2.09, jehož autory jsou: Hubert Partl Zentraler Informatikdienst der Universität für Bodenkultur Wien Irene Hyna Bundesministerium für Wissenschaft und Forschung Wien Elisabeth Schlegl in Graz Zajímá-li vás původní německy psaná verze, upravená Jörgem Knappenem pro LATEX2ε, zkuste se podívat na libovolné zrcadlo archivu CTAN do adresáře CTAN: /tex-archive/info/lkurz. V České republice je archiv CTAN zrcadlen na server ftp://ftp.cstug.cz/tex/CTAN/ Během přípravy tohoto textu se autor anglické verze Tobias Oetiker dotazoval na comp.text.tex, a dostal mnohé odpovědi. Následující osoby pomohly s textem, jeho korekcemi a radami přispěli ke zkvalitnění tohoto textu. Autor anglické verze jim mnohokráte děkuje za cenné rady. Autor anglického textu se činí odpovědným za všechny chyby anglické verze a tvrdí, že veškerá slova, jež jsou zapsána správně, jsou jistě od lidí, kteří radili. Rosemary Bailey, David Carlisle, Chris McCormack, David Dureisseix, Elliot, Robin Fairbairns, Alexandre Guimond, Cyril Goutte, Neil Hammond, Rasmus Borup Hansen, Martien Hulsen, Eric Jacoboni, Alan Jeffrey, Byron Jones, David Jones, Andrzej Kawalec, Christian Kern, Jörg Knappen, Maik Lehradt, Claus Malten, Hubert Partl, John Refling, Mike Ressler, Brian Ripley, Young U. Ryu, Chris Rowley, Craig Schlenter, a Josef Tkadlec. Při překladu do češtiny bylo neustále přihlíženo k příručce LATEX Stručný popis Pavla Sýkory [10]. Tato příručka popisující starý LATEX 2.09 byla po dlouhou dobu jedinou volně šiřitelnou dokumentací k LATEXu v češtině; je dosud šířena spolu s instalací CSTEXu. Autor české verze by chtěl touto cestou poděkovat P.Sýkorovi za jeho užitečnou příručku. Nemalý dík patří korektorům T. Koubovi, T. Davídkovi, A. Štědrému a M. Kočerové. Další dík patří rozhodně CSTUGu, který umožnil užití krás TEXu v našem rodném jazyce. Především je třeba poděkovat propagátorům a tvůrcům československého TEXu P. Olšákovi, J. Wágnerovi, L. Lhotkovi, J. Chlebíkové a P. Sojkovi. Zvláštní dík patří Petru Olšákovi za knihu TEXbook naruby [13], která je překrásnou exkurzí do tajů vnitřností TEXu. Předmluva LATEX[1] je typografickým systémem, který je určen k sazbě vědeckých a matematických dokumentů vysoké typografické kvality. Systém je rovněž vhodný pro tvorbu všech možných druhů jiných dokumentů, od jednoduchých dopisů po složité knihy. Systém LATEX je postaven na typografickém formátovacím programu TEX[2] Donalda E. Knutha. Tento stručný úvod popisuje LATEX2ε a měl by čtenáři dostačovat pro většinu aplikací LATEXu. Úplný popis systému LATEX lze nalézt v knihách [1, 3]. LATEX lze užívat na širokém spektru platforem od IBM PC výše. Na většině universitních počítačových sítích, většinou na platformě operačního systému UNIX, bývá LATEX již předinstalován. Informace o tom, jakým způsobem užívat lokální instalaci LATEXu, by měli být v Local Guide [5]. Máte-li problémy začít, zeptejte se toho, kdo vám doporučil tuto brožurku, případně vašeho systémového administrátora. Mnohé otázky v češtině vám velice rádi zodpoví lidé v elektronické diskusní skupině CsTeX@cs.felk.cvut.cz. Účelem tohoto dokumentu není vysvětlovat proceduru instalace a nastavení systému. Tento úvod si však klade za cíl naučit čtenáře psaní dokumentů pomocí systému LATEX. Příručka je rozdělena do čtyř kapitol: Kapitola 1 popisuje základní strukturu dokumentu systému LATEX2ε. Čtenář je stručně poučen o historii LATEXu. Po přečtení této kapitoly by měl mít čtenář hrubou představu o tom co je to LATEX. Tato představa bude pouze rámcová a bude rozšiřována a doplňována v dalších kapitolách. Kapitola 2 popisuje detaily sazby dokumentů. Naučí čtenáře práci se základními příkazy a prostředími LATEXu. Po přečtení této kapitoly by měl být čtenář schopen sestavit svůj první dokument v LATEXu. Kapitola 3 se zabývá sazbou matematických rovnic pomocí LATEXu. Mnohé příklady napomohou čtenáři porozumět jedné z nejmocnějších stránek LATEXu, sazbě matematických rovnic. Na konci této kapitoly jsou uvedeny tabulky se seznamem všech matematických symbolů užívaných v LATEXu. vi Předmluva Kapitola 4 rozšíří znalost některých méně užívaných, přesto užitečných, příkazů LATEXu. Mezi jinými se čtenář naučí vkládat do dokumentu grafiku ve formátu EPS (Encapsulated PostScript) a vytvářet rejstřík. Považujeme za důležité číst kapitoly v uvedeném pořadí. Kniha není zas tak rozsáhlá, aby se nedala přečíst celá. Zvláštní pozornosti doporučujeme řešené příklady, jelikož velká část informace je obsažena právě v nich. Pro ty čtenáře, kteří hledají další materiály o, a k LATEXu doporučujeme hledat v některém z ftp archivů CTAN. V U.S.A. je archiv na ctan.tug.org, v Německu na ftp.dante.de, ve Spojeném Království je na ftp.tex.ac.uk a v České republice na ftp.cstug.cz. Veškeré nápady, rady, rozšíření a připomínky k tomuto textu jsou netrpělivě očekávány na adresách autorů i překladatele. Specielně autory zajímá zpětná vazba od nováčků LATEXu, zvláště co se jim zdá býti vysvětleno málo jasně a které části by bylo dobré rozšířit. Tobias Oetiker Department of Electrical Engineering, Swiss Federal Institute of Technology Michal Kočer Obsah Poděkování iii Předmluva v 1 Co je dobré vědět 1 1.1 The Name of the Game . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.1.1 TEX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.1.2 LATEX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.2 Základy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.2.1 Autor, typograf a sazeč . . . . . . . . . . . . . . . . . . . . . 2 1.2.2 Úprava textu . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.2.3 Výhody a nevýhody . . . . . . . . . . . . . . . . . . . . . . . 3 1.3 Vstupní soubory LATEXu . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.3.1 Mezery . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.3.2 Speciální znaky . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.3.3 Příkazy LATEXu . . . . . . . . . . . . . . . . . . . . . . . . . . 5 1.3.4 Komentáře ve vstupním souboru . . . . . . . . . . . . . . . . 6 1.4 Struktura vstupního souboru . . . . . . . . . . . . . . . . . . . . . . 6 1.5 Struktura dokumentu . . . . . . . . . . . . . . . . . . . . . . . . . . 7 1.5.1 Třídy dokumentů (Document Classes) . . . . . . . . . . . . . 7 1.5.2 Balíky maker . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 1.5.3 Styly stránek . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 1.6 Rozsáhlé projekty . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2 Sázení textu 13 2.1 Řádkový a stránkový zlom . . . . . . . . . . . . . . . . . . . . . . . . 13 2.1.1 Zarovnání odstavců . . . . . . . . . . . . . . . . . . . . . . . 13 2.1.2 Dělění slov . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 2.2 Speciální znaky a symboly . . . . . . . . . . . . . . . . . . . . . . . . 15 2.2.1 Uvozovky . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 2.2.2 Pomlčky a podobné znaky . . . . . . . . . . . . . . . . . . . . 15 2.2.3 Výpustky, elipsy ( . . . ) . . . . . . . . . . . . . . . . . . . . . . 16 2.2.4 Slitky a podřezávání (kerning) . . . . . . . . . . . . . . . . . 16 2.2.5 Akcenty a speciální znaky . . . . . . . . . . . . . . . . . . . . 17 2.3 Mezislovní mezery . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 2.4 Sazba českých textů . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 2.4.1 Dělení slov . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 2.4.2 Písmena s akcenty . . . . . . . . . . . . . . . . . . . . . . . . 19 viii OBSAH 2.4.3 Uvozovky . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 2.4.4 Nadpisy a data . . . . . . . . . . . . . . . . . . . . . . . . . . 20 2.5 Nadpisy, kapitoly a jejich dělení . . . . . . . . . . . . . . . . . . . . . 20 2.6 Křížové odkazy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 2.7 Poznámky pod čarou . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 2.8 Zvýraznění slov . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 2.9 Prostředí . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 2.9.1 Výčty (itemize, enumerate a description) . . . . . . . . . . . 23 2.9.2 Sazba na praporek a centrování . . . . . . . . . . . . . . . . . 23 2.9.3 Citace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 2.9.4 Přímý výstup . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 2.9.5 Tabular . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 2.10 Plovoucí objekty . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 2.11 Přidání nových příkazů a prostředí . . . . . . . . . . . . . . . . . . . 30 2.11.1 Nové příkazy . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 2.11.2 Nové prostředí . . . . . . . . . . . . . . . . . . . . . . . . . . 32 3 Sázení matematických vzorců 33 3.1 Obecný úvod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 3.2 Tvorba skupin v matematickém režimu . . . . . . . . . . . . . . . . . 35 3.3 Objekty matematických vzorců . . . . . . . . . . . . . . . . . . . . . 35 3.4 Mezery v matematice . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 3.5 Sazba na více řádků . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 3.6 Velikost písma při sazbě matematiky . . . . . . . . . . . . . . . . . . 41 3.7 Popis proměnných . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 3.8 Věty, zákony, . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 3.9 Tučné symboly . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 3.10 Seznam matematických symbolů . . . . . . . . . . . . . . . . . . . . 46 4 Speciality 53 4.1 Druhy a velikosti písma . . . . . . . . . . . . . . . . . . . . . . . . . 53 4.2 Mezery . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 4.2.1 Mezery mezi řádky . . . . . . . . . . . . . . . . . . . . . . . . 56 4.2.2 Formátování odstavce . . . . . . . . . . . . . . . . . . . . . . 56 4.2.3 Horizontální mezery . . . . . . . . . . . . . . . . . . . . . . . 57 4.2.4 Vertikální mezery . . . . . . . . . . . . . . . . . . . . . . . . . 58 4.3 Vzhled stránky . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 4.4 Sazba seznamu použité literatury . . . . . . . . . . . . . . . . . . . . 59 4.5 Tvorba rejstříku . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 4.6 Vkládání obrázků ve formátu EPS . . . . . . . . . . . . . . . . . . . 62 Seznam obrázků 1.1 Minimální soubor LATEXu . . . . . . . . . . . . . . . . . . . . . . . . 7 1.2 Příklad odborného článku . . . . . . . . . . . . . . . . . . . . . . . . 7 4.1 Parametry ovlivňující vzhled stránky . . . . . . . . . . . . . . . . . . 60 Seznam tabulek 1.1 Třídy dokumentů . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 1.2 Nepovinné paramtry tříd dokumentů . . . . . . . . . . . . . . . . . . 9 1.3 Balíky distribuované spolu s LATEXem . . . . . . . . . . . . . . . . . 10 1.4 Předdefinované styly LATEXu . . . . . . . . . . . . . . . . . . . . . . . 11 2.1 Akcenty a zvláštní znaky . . . . . . . . . . . . . . . . . . . . . . . . 17 2.2 Znaky povolení umístění . . . . . . . . . . . . . . . . . . . . . . . . . 28 3.1 Matematické akcenty . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 3.2 Malá řecká písmena . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 3.3 Velká řecká písmena . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 3.4 Binární relace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 3.5 Binární operátory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 3.6 Velké operátory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 3.7 Šipky . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 3.8 Závorky . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 3.9 Velké závorky . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 3.10 Různé symboly . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 3.11 Nematematické symboly . . . . . . . . . . . . . . . . . . . . . . . . . 49 3.12 AMS — závorky . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 3.13 AMS — řecké a hebrejské znaky . . . . . . . . . . . . . . . . . . . . 49 3.14 AMS — binární relace . . . . . . . . . . . . . . . . . . . . . . . . . . 50 3.15 AMS — šipky . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 3.16 AMS — negované binární relace a šipky . . . . . . . . . . . . . . . . 51 3.17 AMS — binární operátory . . . . . . . . . . . . . . . . . . . . . . . . 51 3.18 AMS — různé symboly . . . . . . . . . . . . . . . . . . . . . . . . . 52 3.19 Matematická abeceda . . . . . . . . . . . . . . . . . . . . . . . . . . 52 4.1 Druhy písma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 4.2 Velikosti písma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 4.3 Matematická písma . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 4.4 Jednotky délky užívané v TEXu . . . . . . . . . . . . . . . . . . . . . 58 4.5 Zvláštní vertikální mezery . . . . . . . . . . . . . . . . . . . . . . . . 58 4.6 Příklady položek vkládaných do rejstříku . . . . . . . . . . . . . . . 62 4.7 Názvy klíčů pro balík graphicx . . . . . . . . . . . . . . . . . . . . . . 63 Kapitola 1 Co je dobré vědět V první části této kapitoly je čtenáři předložen stručný přehled filosofie a historie systému LATEX2ε. Druhá část kapitoly se zaměřuje na základní strukturu LATEXovského dokumentu. Po přečtení této kapitoly by měl čtenář získat přehled o tom jak LATEX funguje. Při dalším čtení to umožní čtenáři napojovat všechny nově získané informace do širšího kontextu. 1.1 The Name of the Game 1.1.1 TEX TEX je počítačový program vytvořený profesorem Donaldem E. Knuthem [2]. Je určen pro sazbu textu a matematických rovnic, při zachování vysoké typografické úrovně výsledného dokumentu. TEX vyslovujeme „tech ; „X pochází z řeckého χ, proto jej vyslovujeme jako „ch . Logo TEX přepisujeme do ASCII jako TeX. 1.1.2 LATEX LATEX je balík maker, který umožňuje autorům sázet a tisknout jejich díla v nejvyšší možné typografické kvalitě, přičemž autor používá profesionály předdefinovaných vzhledů dokumentů. LATEX byl původně napsán Leslie Lamportem [1]. LATEX užívá programu TEX jako sázecího stroje. V současné době je LATEX rozšiřován týmem LATEX3, vedeným Frankem Mittelbachem. Tento tým se znaží sjednotit všechny rozšiřující verze LATEXu, které postupně vznikaly od vzniku LATEXu 2.09. Aby byla nějakým způsobem odlišena stará verze od nové, tak byla označena LATEX2ε. Tento dokument se zaobírá verzí LATEX2ε. Slovo LATEX se vyslovuje „lej-tech nebo „la-tech. Při odkazech na LATEX v prostředí ASCII se LATEX přepisuje jako LaTeX. LATEX2ε se vyslovuje „lejtech tů í a zapisuje se jako LaTeX2e. 2 Co je dobré vědět 1.2 Základy 1.2.1 Autor, typograf a sazeč Pro publikaci předává autor nakladateli obvykle rukopis psaný na stroji. Typograf nakladatelství pak rozhodne o úpravě písemnosti (délka řádku, druh písma, odstupy před a za kapitolou atd.) a napíše sazeči k tomu nezbytné příkazy a sazeč podle těchto příkazů tiskovinu vysází. V našem případě přebírá roli typografa LATEX a TEX přebírá úlohu sa- zeče. Typograf-člověk pozná úmysly autora (např. nadpisy kapitol, citace, příklady, vzorce, . . . ) z obsahu rukopisu hlavně na základě svých odborných znalostí. LATEX naproti tomu je „jen program, proto zde potřebuje doplňkové informace autora, které udávají logickou strukturu textu. Tyto informace se zadávají ve formě tzv. „příkazů v textu. V protikladu k tomu stojí příprava písemností pomocí programů pro zpracování textu jako je např. Word for Windows, WordPerfect nebo Text602. V tomto případě autor určuje úpravu textu interaktivně. Přitom vidí na obrazovce (údajně) přesně to, co bude vytištěno na stránce. Takové systémy, které podporují optický návrh, se nazývají WYSIWIG1. Při práci s LATEXem autor při psaní vstupního souboru obvykle nevidí jak text bude po formátování vypadat. Výsledek však lze po zpracování LATEXem prohlížet na obrazovce grafického terminálu případně vytisknout. A podle tohoto výstupu může svůj vstupní soubor patřičně upravit a pokračovat v práci. 1.2.2 Úprava textu Typografický návrh je ruční práce, které se musí člověk naučit. Necvičení autoři dělají často vážné chyby formátování. Mnoho laiků se nesprávně domnívá, že tento návrh je především otázka estetiky — když dokument vypadá dobře z umělecké stránky, je dobře navržen. Poněvadž ale dokumenty nebudou pověšeny v muzeu, nýbrž je lidé budou číst, je snadná čitelnost a dobrá srozumitelnost důležitější než umělecký vzhled. Například bychom měli zvolit takovou výška písma a číslování nadpisů, aby byla zřetelná struktura kapitol a podkapitol. Délky řádků bychom měli zvolit takové, aby nedocházelo k namáhavým pohybům očí čtenáře, nikoliv takové, aby byl papír co nejkrásněji zaplněn. Pomocí interaktivních WYSIWYG systémů autoři obvykle snadno tvoří z estetického hlediska hezké dokumenty ale často velice špatně strukturované. LATEX takovým chybám formátování zabraňuje, neboť je v něm autor nucen zadat logickou strukturu textu a pak pro něj použít nejvhodnější for- mát. 1 z angl. what you see is (all) what you get 1.2 Základy 3 1.2.3 Výhody a nevýhody Častým tématem vášnivých diskusí milovníků WYSIWYG systému a milovníků LATEXu jsou výhody případně nevýhody LATEXu oproti normálním textovým procesorům. Nejlepší věc, kterou lze udělat, když taková diskuse začíná, je držet se zpět, jelikož se taková diskuse velice často vymkne člověku z rukou. Avšak jsou chvíle, kdy se nedá nikam utéct. . . Oproti ostatním textovým procesorům se LATEX vyznačuje následujícími vý- hodami: • Je k dispozici několik profesionálně vytvořených formátů, se kterými dokumenty vypadají „jako profesionálně vytištěné . • Zvlášť dobře je podporována sazba matematických vzorců. • Uživatel musí zadávat jen několik lehce srozumitelných příkazů, které se týkají logické struktury dokumentu, a (téměř) nepotřebuje zabývat se technickými detaily tisku. • Bez velké námahy mohou být vytvořeny také složité struktury jako poznámky pod čarou, seznamy literatury, obsahy, tabulky atd. stejně jako odkazy na stránku, čísla kapitol tabulek, obrázků, rovnic atd. • Pro mnoho typografických funkcí, které nejsou přímo podporovovány základním LATEXem exitují snadno připojitelné nadstavby, tzv. balíky maker. Například lze používat balík umožňující práci z grafickým formátem ve formě PostScriptu či balík pro sazbu bibliografie splňující přesně daný standard. Většina podobných balíků je popsána v The LATEX Companion [3]. • TEX, základní program pro práci LATEXu, je přenositelný na všechny užívané operační systémy2, proto jej lze používat na libovolném hardware, a navíc TEX i LATEX jsou i přes své vysoké kvality zdarma. LATEX má i své nevýhody: • Dokonalejší algoritmy pro formátování kladou větší nároky na čas zpracování a paměť než u jednodušších programů pro zpracování textu. Kompletní instalace zabírá poměrně mnoho diskového prostoru. Avšak vzhledem k tomu, že v současné době se objevují textové procesory Word for Windows 6.0 užívající daleko více diskové kapacity než běžný LATEX, není tento zápor nutné brát v úvahu. Pokud se týče využití procesoru (CPU) LATEX poráží každý WYSIWYG systém, jelikož potřebuje procesor pouze v okamžiku zpracovávání zdrojového textu, 2 TEX lze provozovat dokonce i na systémech takového typu jeko je MS-DOS či MS- Windows 4 Co je dobré vědět zatímco WYSIWYG spotřebovává čas procesoru po celou dobu své činnosti. • Výstup textu je možný pouze na grafických zařízeních (laserové, inkoustové nebo jehličkové tiskárny, grafické obrazovky), nikoliv na levných znakově orientovaných rychlotiskárnách. • Ačkoli lze v předem připravených dokumentních stylech snadno přizpůsobit jednotlivé parametry, zásadní změny předem stanovených formátů vyžadují větší námahu (návrh nového dokumentního stylu).3 1.3 Vstupní soubory LATEXu Vstupním souborem LATEXu je čistý textový ASCII soubor, vytvořený libovolným textovým editorem. Tento soubor obsahuje kromě vlastního textu, který má být vytištěn, i „příkazy , které napoví LATEXu, jak má text vysázet. 1.3.1 Mezery „Neviditelné znaky jako mezera (blank), tabulátor či konec řádku (carriage return) jsou zpracovány LATEXem jako mezera. Několik po sobě následujících neviditelných znaků, mezer, je zpracováno jako jedna mezera. Neviditelné znaky na počátku řádky jsou LATEXem ignorovány. Prázdný řádek mezi textovými řádky označuje konec odstavce. Několik prázdných řádků je zpracováno jako jeden prázdný řádek. Následuje příklad. Napravo je text vstupního textového souboru a nalevo je LATEXem formátovaný výstup. Je naprosto jedno, zda vložíme jednu či několik mezer mezi slovy. Prazdný řádek uvozuje nový odsta- vec. Je naprosto jedno, zda vložíme jednu či několik mezer mezi slovy. Prazdný řádek uvozuje nový odstavec. 1.3.2 Speciální znaky Následující symboly jsou rezervované znaky, které mají v LATEXu zvláštní význam nebo je nelze použít ve všech druzích písma. Napíšete-li některý z nich přímo do vstupního souboru, obvykle se na výstupu neobjeví, ale pravděpodobně donutí LATEX dělat něco co jste vůbec nechtěli. $ & % # _ { } ~ ^ \ 3 Říká se, že právě tento problém má vyřešit vznikající systém LATEX3 1.3 Vstupní soubory LATEXu 5 Následující znaky mohou být vytištěny zadáním dvojice znaků „obrácené lomítko 4 (\) a požadovaného znaku: $ & % # { } \$ \& \% \# \_ \{ \} Zbývající symboly a ještě mnoho dalších znaků lze vytisknout speciálními příkazy jako akcenty (diakritická znaménka) nebo v matematických vzorcích5. 1.3.3 Příkazy LATEXu V příkazech LATEXu se rozlišují malá a velká písmena (case sensitivity) a většinou mají následující formát: • Začínají znakem zpětné lomítko \ následovaným jménem příkazu složeným pouze z písmen. Jméno příkazu pak končí mezerou nebo prvním znakem, jež není písmenem, například číslicí či jiným nealfanumerickým znakem. • Zkládají se ze znaku zpětné lomítko následovaným právě jedním zvláštním znakem LATEX ignoruje veškeré neviditelné znaky, např. mezery, za příkazy. Chceteli získat za příkazem mezeru je třeba příkaz ukončit buď znaky {} následovanými mezerou, nebo specielním příkazem pro vložení mezery následujícím za jménem příkazu. Donald Knuth píše, že lidé pracující s programem TEX se dělí na TEXniky a TEXperty. Dnes je 7. března 1997. Nebo: Dnes je 7. března 1997. Špatně: Dne 7. března 1997prší. Správně: Dne 7. března 1997 sněží. Nebo: Dne 7. března 1997 neprší. Donald Knuth píše, že lidé pracující s programem \TeX{} se dělí na \TeX{}niky a \TeX perty.\\ Dnes je \today. Nebo: Dnes je \today . Špatně: Dne \today prší. Správně: Dne \today{} sněží. Nebo: Dne \today\ neprší. Některé příkazy vyžadují ke své činnosti ještě parametr, jež se uzavírají do složených závorek { } těsně za jménem příkazu. Některé příkazy 4 angl. backslash 5 V LATEXu existuje také prostředí verbatim, ve kterém se všechny znaky včetně vícenásobných mezer opisují do výstupního textu. 6 Co je dobré vědět umožňují navíc zadávat nepovinné parametry, které se zadávají za jménem příkazu do hranatých závorek [ ]. Následující příklad ukazuje užití několika příkazů LATEXu. Význam těchto příkazů bude vysvětlen později. Můžete se o mě opřít! Můžete se o mě \textit{opřít}! Prosím, začněte novou řádku tady a hned! Děkuji! Prosím, začněte novou řádku tady a hned!\linebreak[4] Děkuji! 1.3.4 Komentáře ve vstupním souboru Narazí-li LATEX ve vstupním souboru na znak % vše co stojí za tímto znakem je až do konce řádku ignorováno. To se autorům hodí pro vkládání komentářů, jež nemají být součástí výstupu, do vstupních souborů. To je příklad. To je % hloupý % Lépe: poučný <---- příklad. 1.4 Struktura vstupního souboru Když LATEX2ε zpracovává vstupní soubor očekává, že tento soubor bude mít pevně danou structuru. Proto každý vstupní soubor musí začínat příkazem \documentclass{...} Tímto příkazem autor specifikuje, jakého druhu bude vytvářený dokument. Za tímto příkazem mohou následovat příkazy, které mají vliv na vzhled celého dokumentu, případně lze načíst balík maker příkazem: \usepackage{...} Balíky maker lze rozšířit chování LATEXu o nové funkce, vlastnosti a příkazy. Je-li vše potřebné nastaveno6 lze příkazem \begin{document} označit začátek vlastního těla dokumentu. Tělo dokumentu obsahuje vlastní text dokumentu promýchaný s příkazy LATEXu. Tělo dokumentu se ukončí příkazem \end{document} 6 Oblast mezi \documentclass a \begin{document} je označována preambule 1.5 Struktura dokumentu 7 Tím je LATEXu řečeno, že je to vše co jsme po něm chtěli. Vše co následuje za tímto příkazem je proto LATEXem ignorováno. Obrázek 1.1 ukazuje minimální vstupní soubor pro LATEX2ε. Poněkud složitější vstupní soubor je uveden na obrázku 1.2. 1.5 Struktura dokumentu 1.5.1 Třídy dokumentů (Document Classes) První informací, kterou LATEX potřebuje vědět při zpracovávání vstupního souboru je informace o typu dokumentu, který autor hodlá vytvářet. Tuto informaci autor předá LATEXu právě příkazem \documentclass. \documentclass[options]{class} Kde class vyznačuje typ (třídu) vytvářeného dokumentu. V tabulce 1.1 je uveden přehled tříd dokumentu. Distribuce systému LATEX2ε zavádí další \documentclass{article} \begin{document} Co je malé, to je hezké. \end{document} Obrázek 1.1: Minimální soubor LATEXu \documentclass[a4paper,11pt]{article} \usepackage{czech} \usepackage{latexsym} \author{A.~Utor} \title{Krátce} \frenchspacing \begin{document} \maketitle \tableofcontents \section{Úvod} Tady začíná můj skvělý článeček\ldots{} \section{Závěr} \ldots{} a tady je úplný konec. \end{document} Obrázek 1.2: Příklad odborného článku 8 Co je dobré vědět rozšíření tříd dokumentu o dokumenty dopisů (letter) a blán (slides). Nepovinný parametr option blíže určuje vlastnosti třídy dokumentu. Lze dokonce užít několika nepovinných parametrů najendou s tím, že je oddělíme čárkou. V tabulce 1.2 jsou uvedeny nejužívanější volitelné parametry pro standardní třídy dokumentů. Příklad: Vstupní soubor pro LATEX může začít, například, takovouto řád- kou: \documentclass[11pt,twoside,a4paper]{article} Tím se LATEX dozví, že bude sázet článek (article) o základní velikosti písma jedenáct bodů (11pt) a bude formátovat výstup tak, aby byl vhodný pro oboustranný (double sided) tisk na stránku o velikosti a4. 1.5.2 Balíky maker Při psaní dokumentu se někdy stane, že základní prostředky LATEXu neumožní vyřešit nějaký problém. Je-li třeba do dokumentu vložit grafiku, barevný text nebo zdrojový text nějakého programu je potřeba nějakým způsobem rozšířit schopnosti LATEXu. Taková rozšíření se nazývají balíky maker (packages). Balík maker se aktivuje užitím příkazu \usepackage[options]{package} Kde package je jméno balíku maker a options je seznam klíčových slov, které zjemňují, upřesňují či spouštějí některé specielní rysy balíku maker. Některé balíky maker jsou nedílnou součástí každé distribuce systému LATEX 2ε (viz tabulku 1.3). Mnohé balíky jsou však distribuovány samostatně. Více informací o naistalovaných balících maker se lze dočíst v lokálním průvodci instalací Local Guide [5]. Hlavním zdrojem informací o LATEXu je The LATEX Tabulka 1.1: Třídy dokumentů article pro odborné články, prezentace, krátké zprávy, dokumetaci k pagramům, pozvánky, . . . report pro delší zprávy obsahující několik kapitol, menší knihy, diplomové práce, . . . book pro skutečné knihy slide pro blány (slides). Tato třída užívá velkého bezpatkového písma, jež je pro zpětnou projekci nejvhodnější. 1.5 Struktura dokumentu 9 Tabulka 1.2: Nepovinné paramtry tříd dokumentů 10pt, 11pt, 12pt Nastavuje velikost hlavního písma dokumentu. Není-li tato volba explicitně uvedena použije se pro základní písmo velikost 10pt. a4paper, letterpaper, . . . Nastavuje velikost stránky, na níž je provedena sazba výsledného dokumentu. Základní velikost je letterpaper. Mimo to lze užít a5paper, b5paper, executivepaper, a legalpaper. fleqn Matematické rovnice se budou zarovnávat vlevo namísto do středu. leqno Čísla rovnic se nebudou sázet vpravo, ale vlevo na stránku. titlepage, notitlepage Určuje zda se bude sázet samostatná titulní strana či nikoli. Třída article neužívá samostatnou titulní stranu zatímco třídy report a book tak činí. twocolumn LATEX bude sázet dokument do dvou sloupců. . twoside, oneside Určuje zda má být generován jedno- či oboustranný výstup. Třídy article a report normálně užívají jednostranné a třída book oboustranné sazby. Jednostranná sazba od oboustranné se liší rozdílnou velikostí okraje pravé a levé strany pro vazbu případně umístěním čísla stránky. openright, openany Specifikuje zda má nová kapitola začít vždy na nové pravé stránce či není-li to nutné. Tato volba nespolupracuje s třídou article, jelikož tato třída nerozpoznává pojem kapitola (chapter). Třída report normálně začíná novou kapitolu na další volné stránce (je jedno zda pravé či levé) a třída book začíná sázet novou kapitolu na nejbližší pravé stránce. 10 Co je dobré vědět Companion [3]. Tato kniha obsahuje spolu s popisem více než stovky balíků maker i popis toho jakým způsobem tvořit vlastní rozšíření LATEX2ε. Tabulka 1.3: Balíky distribuované spolu s LATEXem doc Umožňuje přehledné dokumentování LATEXovských maker, programů. Balík je popsán v doc.dtxa a v The LATEX Companion [3]. exscale Umožňuje zvětšovatelné verze matematických fontů. Popsán v ltexscale.dtx. fontenc Specifikuje jaké kódování fontů má LATEX užít. Popsán v ltoutenc.dtx. ifthen Umožňuje příkazy typu ve formě ‘if. . . then do. . . otherwise do. . . .’ Popsán v ifthen.dtx a The LATEX Companion [3]. latexsym Ke spřístupnění fontů symbolů LATEXu. Popsán v latexsym.dtx a v The LATEX Companion [3]. makeidx Umožňuje pomocí rozšířených příkazů jednoduše vytvářet restříky. Popsán v oddíle 4.5 a v The LATEX Companion [3]. syntonly Umožňuje zpracovat dokument bez vysázení. Popsán v syntonly.dtx a v The LATEX Companion [3]. Tento styl se hodí pro rychlou kontrolu chyb. inputenc Umožňuje specifikovat kódování vstupu jako ASCII, ISO Latin-1, ISO Latin-2, 437/850 IBM code pages, Apple Macintosh, Next, ANSI-Windows či uživatelem definované. Popsán v inputenc.dtx. a Tento soubor my měl být instalován spolu s vaším systémem. Dokumentaci ve formě souboru dvi získáte jednoduše „přeložením LATEXem, obvykle příkazem systému latex doc.dtx. To samé platí i pro další balíky v této ta- bulce. 1.6 Rozsáhlé projekty 11 1.5.3 Styly stránek LATEX nabízí tři předdefinované kombinace záhlaví/paty stránek — tzv. stránkové styly. Parametr style příkazu \pagestyle{style} definuje, který ze stránkových stylů se užije. Tabulka 1.4 dává přehled o předdefinovaných stylech stránek. Tabulka 1.4: Předdefinované styly LATEXu plain tiskne čísla stránek na spodním okraji stránky ve středu paty stránky. Toto je základní stánkový styl. headings tiskne jméno aktuální kapitoly a číslo stránky v záhlaví každé stránky a pata stránky zůstává prázdná. (To je style stránky použitý v tomto dokumentu) empty nastavuje prázdné záhlaví i patu stánky. Změnu stylu aktuální stránky lze provést příkazem \thispagestyle{style} V The LATEX Companion [3] je uveden popis toho jak lze tvořit vlastní vzhled stránky. 1.6 Rozsáhlé projekty Pracujete-li na rozsáhlém dokumentu, je dobré rozdělit vstupní soubor na několik částí. LATEX poskytuje dva příkazy, které autorům pomáhají v tomto případě. \include{filename} tento příkaz se užije v těle dokumentu, v místě kam chceme vložit obsah jiného souboru. Je třeba podotknout, že LATEX začne novou stránku před tím než začne spracovávat vstupní soubor filename. Druhý příkaz se užívá v preambuli dokumentu. Umožňuje autorovi nařídit LATEXu vložit pouze některé ze souborů vkládaných příkazem \include. 12 Co je dobré vědět \includeonly{filename,filename,. . . } Poté co se provede v preambuli dokumentu tento příkaz jsou dále provedeny příkazy \include pouze pro jména souborů (filename), která jsou uvedena v argumentu příkazu \includeonly. Je třeba si dát pozor na to, že mezi čárkou a jménem souboru nesmí být mezera. Po provedení příkazu \include se vkládaný text začne sázet na nové stránce. To je užitečné, když se užije příkaz \includeonly, jelikož stránkové zlomy se nepřesouvají ani, když se některé vkládané soubory přeskočí. Avšak někdy tato vlastnost není příjemná. V takovém případě lze užít příkazu \input{filename} Tento příkaz jednoduše vloží soubor filename do hlavního vstupního sou- boru. Kapitola 2 Sázení textu Předchozí kapitola seznámila čtenáře se základními pojmy tvorby dokumentu v LATEXu. Tato kapitola slouží k prohloubení těchto znalostí a v něterých směrech je rozvíjí tak, aby byl čtenář schopen sázet dokumenty použitelné k běžné práci. 2.1 Řádkový a stránkový zlom 2.1.1 Zarovnání odstavců Většina knih je sázena tak, že všechny řádky mají stejnou délku. LATEX sám vkládá potřebné řádkové zlomy a mezery mezi slova a optimalizuje naráz vzhled celého odstavce. V případech, kdy nemůže vhodně vložit řádkové zlomy mezi slova, začne automaticky podle předepsaných pravidel slova dělit. To jak bude nakonec vysázený odstavec vypadat záleží i na třídě sázeného dokumentu, tj. na parametru příkazu \documentclass. V běžných případech je první řádek odstavce odsazen a mezi jednotlivými odstavci není vynechané místo; viz též oddíl 4.2.2. Ve výjimečných případech je však třeba LATEXu řádkový zlom nařídit příkazem \\ či \newline nařídí vložení řádkového zlomu bez toho, aby začal nový odstavec. \\* navíc zakáže stránkový zlom po tomto řádkovém zlomu. \newpage nařídí v daném místě dokumentu stránkový zlom. 14 Sázení textu \linebreak[n], \nolinebreak[n], \pagebreak[n] and \nopagebreak[n] dělají přesně to co říkají jejich anglická jména. Dávají autorům do ruky možnost ovlivňovat svoji činnost pomocí nepovinného parametru n. Tento parametr může nabývat hodnot nula až čtyři. Nastaví-li se n na hodnotu nižší než 4 nemusí LATEX žádanou akci provést, kdyby výsledek sazby nebyl hezký. LATEX vždy zkouší provádět řádkové zlomy v co nejvhodnějším místě. Nelze-li nalézt vhodné místo pro zlom řádky způsobem, který by splňoval poměrně vysoké nároky na řádkové zlomy, ponechá se jeden řádek přečnívat vpravo z odstavce a LATEX vypíše chybové hlášení („overfull hbox ). To se stává zejména tehdy, když LATEX nemůže nalézt vhodné místo pro rozdělení některého slova. Zadáním příkazu \sloppy lze LATEXu nařídit, aby snížil nároky na kvalitu sazby. LATEX poté řeší tento problém tak, že vkládá větší mezery mezi slovy i v případě, že konečný výstup není optimální. V případě, že TEX není spokojen se sazbou, uvědomí uživatele upozorněním („underfull hbox ). V mnoha případech však výsledek nevypadá úplně nejhůře. Příkaz \fussy pracuje zcela opačně, užívá se v případě, kdy chceme, aby si LATEX stěžoval úplně na vše. 2.1.2 Dělění slov V případě potřeby LATEX automaticky dělí slova. Pokud jednotlivé výsledky automatického dělení slov nejsou správné, můžete tyto „výjimky napravit níže uvedenými příkazy1. Příkaz \hyphenation{word list} vymezuje slova, která lze dělit pouze v místech označených „-| . Tento příkaz je třeba užít v preambuli vstupního souboru a může obsahovat slova složená pouze z písmen, přičemž se ignoruje jejich velikost. V níže uvedeném příkladu je dovoleno dělení slova „rozdělení stejným způsobem jako slova „Rozdělení a zakázáno dělení nejen slova „FORTRAN , ale i „Fortran či „fortran . V argumentu příkazu nelze užívat speciální znaky a symboly. Příklad: \hyphenation{FORTRAN Roz-dě-le-ní} Příkaz \- umožňuje označit místo pro rozdělení slova. Takto označené místo se pro dané slovo stane jediným možným místem pro rozdělení. Tento způsob je vhodný především pro slova, která obsahují speciální znaky, jelikož LATEX taková slova automaticky nedělí. 1 Obzvláště to může být nutné při použití cizojazyčných slov nebo např. u složených slov v němčině. 2.2 Speciální znaky a symboly 15 Jedno z nejdelších slov je: nejneobhos- podařovatelnějšími Jedno z~nejdelších slov je: nej\-% ne\-ob\-hos\-po\-da\-řo\-va\-% tel\-něj\-ší\-mi Několik slov lze udržet pospolu na stejné lince příkazem \mbox{text} Příkaz zajistí, že jeho argumenty budou za všech okolností považovány LATEXem za jedno nedělitelné slovo. Mé telefonní číslo se brzy změní na +420 38 570 91 Parametr filename určuje jméno sou- boru. Mé telefonní číslo se brzy změní na \mbox{+420 38 570 91} Parametr \mbox{\emph{filename}} určuje jméno souboru. 2.2 Speciální znaky a symboly 2.2.1 Uvozovky Píšete-li text na psacím stroji, můžete jako uvozovky použít pouze znak „uvozovky nahoře ("). V knihtisku se však otevírací a uzavírací uvozovky sázejí různými znaky. Navíc jsou otevírací i uzavírací uvozovky v anglickém textu odlišné od příslušných uvozovek v textu českém, slovenském, německém apod. Ve vstupním souboru s anglickým textem se otevírací uvozovky zadávají jako dva znaky „obrácený apostrof (‘), uzavírací jako dva znaky „apostrof (’). Zapamatujte si, že uvozovky v textu se nikdy nezadávají pomocí klávesy ". Při úpravách textů původně určených pro jiný sázecí systém nebo textový procesor nezapomeňte takto zadané uvozovky opravit. Špatně zadané uvozovky nevypadají v hotovém dokumentu vůbec dobře. “Please press the ‘x’ key.” ‘‘Please press the ‘x’ key.’’ Uvozovky v češtině, němčině apod. vypadají jinak a mohou se zadávat několika způsoby (viz kap. 2.4.3). 2.2.2 Pomlčky a podobné znaky V typografii se užívají pomlčky různých délek. Nejkratší je spojovník (-), pak následuje krátká půlčtverčíková pomlčka (--), pak dlouhá čtverčíková pomlčka (---). Odlišné je i matematické znaménko „mínus ($-$). Chceme-li, aby hotový dokument vypadal esteticky, je nezbytné pomlčky používat správně. Krátkou pomlčku používáme pro znázornění intervalu. 16 Sázení textu Od ostatního textu ji neoddělujeme mezerou2. Dlouhá pomlčka naznačuje přestávku v řeči nebo od sebe výrazně odděluje části textu; významově je rovna čárce3. V českých a německých textech se sází s mezerami z obou stran, v anglických bez mezer. Při řádkovém zlomu zůstává na konci řádku, nový řádek jí nesmí začínat. půjde-li to 10–16 hodin yes—or no? 0, 1 či −1 půjde-li to\\ 10--16~hodin\\ yes---or no? \\ $0$, $1$ či $-1$ 2.2.3 Výpustky, elipsy ( . . . ) Na rozdíl od strojopisného textu, kde každá tečka nebo čárka zabírá stejnou šířku jako ostatní znaky, při knihtisku se tečky a čárky sázejí užší. Pro tři tečky ve smyslu „a tak dále , tzv. „elipsy , se zde používá příkazů \ldots Takto ne ... nýbrž takto: Praha, Plzeň, . . . Takto ne ... nýbrž takto: \\ Praha, Plzeň,~\ldots Před výpustku se sází normání nebo zúžená mezera. 2.2.4 Slitky a podřezávání (kerning) V knižním tisku je zvykem sázet některé kombinace písmen jako jeden znak — tzv. slitky neboli ligatury. ff fi fl ffi . . . namísto ff fi fl ffi . . . Podřezávání (kerning) je přiblížení některých dvojic znaků k sobě (přesněji řečeno přes sebe), aby text opticky vypadal lépe. AV Te . . . místo AV Te . . . LATEX (resp. TEX) vytváří slitky i podřezávání automaticky. Slitky se však nepoužívají ve složených slovech (nebo ve slovech s předponou či příponou), jejichž části se stýkají kombinací písmen ff, fl apod. Toto se týká pouze několika velmi málo anglických slov a nemnoha slov německých. V takovém případě lze tvorbě slitků zamezit například vložením \mbox{} nebo {} mezi písmena, která by mohla ligaturu utvořit. 2 Někdy kolem půlčtverečníkové pomlčky sází zúžená mezera (\,) 3 Tato pomlčka přežívá z viktoriánské éry a je postupně nahrazována půlčtverečníkovou pomlčkou oddělenou od ostatního textu mezerou 2.3 Mezislovní mezery 17 Nikoli shelfful nebo Auflage (Au-fl-age) ale shelfful nebo Auflage (Auf-lage) Nikoli shelfful \\ nebo Auflage (Au-fl-age)\\ ale shelf\mbox{}ful \\ nebo Auf{l}age (Auf-lage) 2.2.5 Akcenty a speciální znaky LATEX umožňuje použít akcenty (diakritická znaménka) a zvláštní znaky mnohých jazyků (viz tab. 2.1). Akcenty jsou zde demonstrovány na příkladě písmena o, ovšem principiálně není vyloučeno jejich použití s kterýmkoli jiným písmenem. Pokud má být akcent vysázen nad písmenem i nebo j, musí být použito písmeno „i bez tečky nebo „j bez tečky . Tyto znaky se vysázejí pomocí příkazu \i nebo \j. Hôtel, na¨ıve, él`eve, smørrebrød, ¡Se˜norita!, Schönbrunner Schloß Straße H\^otel, na\"\i ve, \’el\‘eve,\\ sm\o rrebr\o d, !‘Se\~norita!,\\ Sch\"onbrunner Schlo\ss{} Stra\ss e Tabulka 2.1: Akcenty a zvláštní znaky `o \‘o ó \’o ô \^o ˜o \~o ¯o \=o ˙o \.o ö \"o ˘o \u o ˇo \v o ˝o \H o ¸o \c o o. \d o o ¯ \b o oo \t oo œ \oe Œ \OE æ \ae Æ \AE ˚a \aa ˚A \AA ø \o Ø \O l \l L \L ı \i  \j ¡ !‘ ¿ ?‘ 2.3 Mezislovní mezery Aby bylo dosaženo zarovnaného pravého okraje, LATEX zvětšuje nebo zmenšuje mezery mezi slovy. Při sazbě anglických textů navíc sází po tečkách, otaznících apod. na konci věty větší mezeru4, což zvyšuje čitelnost textu. V českých a německých textech se sází mezery stejné. LATEX předpokládá, 4 Jedná se opět o hystorický přežitek 18 Sázení textu že tečka, která následuje za velkým písmenem, označuje zkrácení (např. křestního jména), a že všechny ostatní tečky ukončují větu. Výjimky z těchto pravidel musíme LATEXu sdělit následujícími příkazy: Obrácené lomítko následované mezerou označuje, že mezera ve výsledném textu v tomto místě nesmí být širší. Znak ~ (vlnka, tilda) označuje mezeru, která nesmí být širší a v tomto místě nesmí dojít k řádkovému zlomu. V českých textech bychom neměli nechávat jednohláskové předložky a spojky i, I, A, na konci řádku. Za těmito spojkami a předložkami tedy místo mezery píšeme vlnku. Pan Petr Olšák napsal program \vlna, který tuto činnost provádí automaticky. Další případ nepovoleného řádkového zlomu, kdy tedy musíme použít vlnku, je například mezera mezi číselnou hodnotou a jednotkou, mezera mezi titulem nebo zkratkou jména a příjmením apod. Příkaz \@ před tečkou označuje, že touto tečkou končí věta, ačkoli je před ní velké písmeno. Firma Čtverec a spol. Vám dodá kval. kolečka. . . . 5 m široký. Dr. Šedý bydlí v 1. patře. Potřebuji vitamín C. Ty ne? Firma Čtverec a spol.\ Vám dodá kval.\ kolečka. \\ \dots\ 5~m široký. \\ Dr.~Šedý bydlí v~1.~patře. \\ Potřebuji vitamín~C\@. Ty ne? Příkazem \frenchspacing LATEXu oznámíme, aby nevkládal na konec věty dodatečnou mezeru. Toho se užívá při sazbě v neanglickém jazyce, v tomto případě není nutno používat příkazu \@. Při vytváření českých textů se používá předdefinovaný formát czech.sty, který příkaz \frenchspacing aktivuje automaticky. K obnovení konvence sázení mezer anglických textů slouží příkaz \nonfrenchspacing 2.4 Sazba českých textů V této kapitole je popsáno zpracování českých textů systémem CSTEX (systém TeX upravený pro češtinu), který šíří Československé sdružení uživatelů TEXu (CSTUG) pro všechny nejčastěji užívané platformy. Bližší informace o CSTEXu naleznete na http://www.cstug.cz/. Originální americká verze TEXu podporuje pouze dokumenty v angličtině. CSTEX podporuje standardně češtinu a angličtinu, navíc jej lze snadno upravit pro podporu dokumentů v češtině, angličtině i němčině. 2.4 Sazba českých textů 19 Při zpracování dokumentů různými instalacemi LATEXu bude nutné připojit použité nestandardní styly. 2.4.1 Dělení slov Při spuštění LATEXu je určeno, zda se bude dělit podle pravidel českého, anglického, německého případně jiného jazyka. Výjimky lze v daném dokumentu zadat pomocí příkazů uvedených v kap. 2.1.2. Při správném vytváření vícejazyčných dokumentů se pravidla pro dělení přepínají podle příslušného jazyka. 2.4.2 Písmena s akcenty Původní verze LATEXu obsahuje jak příkazy pro umístění akcentů nad (v některých jazycích i pod) písmena, tak i umožňuje použití písmen speciálních. Nicméně používat tyto příkazy je dosti nepohodlné. V dokumentech zpracovávaných LATEXem obsaženým v CSTEXu lze proto při použití \usepackage{ czech} v preambuli vstupního souboru používat rozšířenou sadu ASCII znaků. Toto řešení umožňuje použít dělicí algoritmus a příkaz \hyphenation i na slova s diakritickými znaménky. 2.4.3 Uvozovky Uvozovky v českém textu vypadají jinak než v anglickém. Pokud použijeme stylu czech.sty, můžeme použít pro české uvozovky příkaz \uv{text, který má být v uvozovkách} Pro anglické uvozovky platí původní příkazy — ‘‘ pro otevírací a ’’ pro zavírací. Jinou možností je na začátku textu použít příkaz \csprimeson, po kterém příkazy ‘‘ (dva obrácené apostrofy) a ’’ (dva apostrofy) vytvářejí uvozovky české. V textu se ovšem mohou vyskytnout slova s apostrofem (např. l’Hospitalovo pravidlo), který by byl v tomto případě vysázen nesprávně. Pak je možné použít příkaz \csprimesoff, který obnoví původní chování příkazů ‘‘ a ’’ a tedy i apostrofu. Jiné možnosti vytváření a kombinací anglických a českých uvozovek jsou uvedeny v dokumentaci ke stylu czech.sty „Ne, řekl, „nevím nic! Jiný způsob: „uvozovky . \uv{Ne,} řekl, \uv{nevím nic!}\\ Jiný způsob: \clqq uvozovky\crqq. 20 Sázení textu 2.4.4 Nadpisy a data V originální verzi LATEXu jsou použity pro nadpisy kapitol, obsahu, označení tabulek a obrázků a názvy měsíců v datech anglické termíny. Jejich použití by bylo v českém textu krajně nevhodné. Použitím stylu czech.sty se tyto názvy automaticky změní na jejich české ekvivalenty. 2.5 Nadpisy, kapitoly a jejich dělení Pro lepší orientaci čtenáře v autorově díle, je vhodné dílo rozdělit na kapitoly, podkapitoly a oddíly. LATEX umožňuje označit logickou strukturu díla speciálními příkazy, které jako argument mají název daného logického oddílu díla. Je pouze na autorovi, aby tyto příkazy užil ve správném pořadí. Ve třídě article lze užít následujích příkazů vymezujících logickou strukturu článku: \section{...} \paragraph{...} \subsection{...} \subparagraph{...} \subsubsection{...} \appendix Třídy report a book rozpoznávají navíc tyto příkazy: \part{...} \chapter{...} Velikost mezer mezi jednotlivými oddíly velikost fontů jednotlivých úrovní nadpisů je nastavena automaticky LATEXem. Dva z těchto příkazů mají poněkud jsou poněkud zvláštní: • Příkaz \part nemá vliv na číslování pořadí kapitol. • Příkaz \appendix nemá žádný argument. Pouze změní označení kapitol (pro třídu article označení oddílů) z čísel na písmena. Příkaz \tableofcontents zajistí vytištění obsahu. Nadpisy a čísla stran se dozví LATEX z předcházejícího zpracování vstupního souboru. Proto při úpravách nebo doplnění kapitoly je nutno zpracovat dokument programem LATEX dvakrát (někdy i třikrát), aby bylo dosaženo správného výstupu. Všechny příkazy pro logické dělení dokumentu existují také v tzv. ohvězdičkované verzi, tzn. za jméno příkazu se přidá znak hvězdička (*). Jméno oddílu vytvořeného příkazem v ohvězdičkované verzi se neočísluje a neuvede v obsahu. Například příkaz \section{Předmluva} v ohvězdičkované verzi bude vypadat takto \section*{Předmluva} 2.6 Křížové odkazy 21 Standardně jsou názvy oddílů v obsahu uvedeny přesně ve stejné formě jako v textu. Někdy je však název daného oddílu příliž dlouhý na to, aby byl ve stejné formě uveden v obsahu. Proto lze položku, tak jak má být vysázena v obsahu, specifikovat jako volitelný parametr daného příkazu pro strukturalizaci. \chapter[Položka do obsahu]{Zde je velmi dlouhý a obzvláště nudný nadpis} Nadpis celého dokumentu se vysází příkazem \maketitle přičemž obsah titulní strany nebo nadpisu musí být předem zadán příkazy: \title{...}, \author{...} a volitelně i \date{...} před voláním příkazu\maketitle. Jako argument příkazu \authors lze zadat několik jmen oddělenných příkazem \and. Příklad některých výše uvedených příkazů lze nalézt na obrázku 1.2 na straně 7. Vedle již vysvětlených příkazů pro logické dělení dokumentu LATEX2ε poskytuje ve třídě book další tři příkazy: \frontmatter, \mainmatter and \backmatter ty slouží pro hrubší rozdělení knihy. Příkazy mění nadpisy a číslování stránek způsobem u knih běžným. 2.6 Křížové odkazy V knihách, referátech a článcích jsou velice běžné křížové odkazy na obrázky, tabulky, rovnice či jiné oddíly textu. LATEX nabízí pro křížové odkazy pohodlný aparát, totiž příkazy: \label{návěští}, \ref{návěští} a \pageref{návěští} Kde návěští je jednoznačné označení vybrané uživatelem. LATEX zamění \ref číslem takového oddílu, pododdílu, obrázku, tabulky či rovnice, jež byl označen odpovídajícím příkazem \label, tj. příkazem \label, který má jako argument stejné návěští jako příslušný odkaz \ref. Namísto \pageref se vysází číslo stránky na níž se nachází odpovídající příkaz \label. Čísla stránek LATEX získává z pomocného souboru vytvořeného v předchozím průběhu překladu programem TEX, proto i při použití křížových odkazů je někdy třeba překládat vstupní soubor programem TEX několikrát. 22 Sázení textu Odkaz na tento pododdíl vypadá takto: „viz též oddíl 2.6 na straně 22. Odkaz na tento pododdíl \label{sec:tato} vypadá takto: \uv{viz též oddíl~\ref{sec:tato} na straně~\pageref{sec:tato}.} 2.7 Poznámky pod čarou Příkazem \footnote{text poznámky pod čarou} lze vysázet poznámku pod čarou, tj. text vysázený v dolní části stránky oddělený od hlavního textu horizontální čarou a označený stejnou značkou jako odkaz na tuto poznámku v textu. Začínající LATEXistéa používají poznámek pod čarou velice často. a LATEXista je člověk užívající LATEX Začínající \LaTeX{isté}\footnote{% \LaTeX{}ista je člověk užívající \LaTeX} používají poznámek pod čarou velice často. 2.8 Zvýraznění slov V rukopisech psaných na psacím stroji se důležitá, zdůrazněná, slova podtrhují. V tištěných knihách se však tato slova zvýrazňují. Sazba se do zvýrazněného typu písma přepíná příkazem \emph{text} Argumentem tohoto příkazu je text, který má být zvýrazněn. Užije-li se zvýraznění v již zdůrazněném textu, potom LATEX užije pro zdůraznění namísto kurzívy vzpřímený typ písma \emph{Užije-li se \emph{zvýraznění} v~již zdůrazněném textu, potom \LaTeX{} užije pro zdůraznění namísto kurzívy \emph{vzpřímený} typ písma} 2.9 Prostředí 23 2.9 Prostředí (Environments) K označení zvláštních částí textu, které mají být vysázeny jinak než běžný text, slouží tzv. prostředí. Prostředí ve vstupním textu mají tvar: \begin{jméno} text \end{jméno} kde jméno je jméno daného prostředí. Platí, že prostředí se mohou vyskytovat jedno v druhém, přičemž je třeba dbát na správné pořadí. Jednotlivá prostředí se nemohou křížit. \begin{aaa}...\begin{bbb}...\end{bbb}...\end{aaa} V následujících oddílech budou vysvětlena všechna důležitá prostředí LATEXu. 2.9.1 Výčty (itemize, enumerate a description) Prostředí itemize je vhodné pro jednoduché výčty, prostředí enumerate pro číslované výčty a prostředí description pro popisné výčty. 1. Jednotlivé typy výčtů lze libovolně kombinovat: • Avšak výsledek pak může vypadat hrozně. - S pomlčkou. 2. Proto si pamatujte: Hloupé věci se nestanou moudřejšími, když jsou seřazeny do výčtu. Chytré věci však je dobré prezentovat právě ve výčtech. \begin{enumerate} \item Jednotlivé typy výčtů lze libovolně kombinovat: \begin{itemize} \item Avšak výsledek pak může vypadat hrozně. \item[-] S~pomlčkou. \end{itemize} \item Proto si pamatujte: \begin{description} \item[Hloupé] věci se nestanou moudřejšími, když jsou seřazeny do výčtu. \item[Chytré] věci však je dobré prezentovat právě ve výčtech. \end{description} \end{enumerate} 2.9.2 Sazba na prapor a centrování (Flushleft, Flushright, Center) V prostředí flushleft resp. flushright se sázený text doráží na levý resp. pravý okraj (tzv. „sazba na praporek — tj. bez zarovnávání okraje). Prostředí center slouží k centrování sazby. Pokud není použit příkaz \\, určí LATEX řádkové zlomy sám. 24 Sázení textu Text zarovnaný vlevo. LATEX nezkouší zalomit všechny řádky na stejnou délku. \begin{flushleft} Text zarovnaný \\ vlevo. \LaTeX{} nezkouší zalomit všechny řádky na stejnou délku. \end{flushleft} Text zarovnaný vpravo. LATEX nezkouší zalomit všechny řádky na stejnou délku. \begin{flushright} Text zarovnaný \\ vpravo. \LaTeX{} nezkouší zalomit všechny řádky na stejnou délku. \end{flushright} V ose tiskového zrcadla. \begin{center} V\\ose tiskového\\zrcadla. \end{center} 2.9.3 Citace (Quote, Quotation, Verse) Prostředí quote se používá pro kratší citace, zdůrazněné věty a příklady. Jedno typografické pravidlo pro délku řádku říká: “No line should contain more than 66 charac- ters.” „Žádný řádek by neměl obsahovat více než 66 písmen. Důsledkem tohoto pravidla je to, že noviny se sází do více sloupců vedle sebe. Jedno typografické pravidlo pro délku řádku říká: \begin{quote} \emph{‘‘No line should contain more than 66~characters.’’} \uv{Žádný řádek by neměl obsahovat více než 66 písmen.} \end{quote} Důsledkem tohoto pravidla je to, že noviny se sází do více sloupců vedle sebe. Vedle prostředí quote existují další dvě prostředí: quotation a verse. Prostředí quotation je vhodné pro citace, které zahrnují několik odstavců, jelikož narozdíl od quote odsazuje quotation jednotlivé odstavce. Prostředí verse je užitečné pro sazbu poezie, kde je dělení na řádky předem známé. Jednotlivé verše se oddělují příkazem \\ na konci řádku a jednotlivé sloky prázným řádkem mezi slokami. 2.9 Prostředí 25 Jára Cimrman se vždy snažil ukazovat svět takový jaký je se všemi krásami i ošklivostmi: Šel medvídek na procházku, uviděl tam sedmikrásku. Sedmikráska hezká, medvídek si pleská. „Plesk, plesk. Plesk! Míšu zabil blesk! Jak vidíme nebránil se tomu ani v tvorbě pro nejmenší. Jára Cimrman se vždy snažil ukazovat svět takový jaký je se všemi krásami i ošklivostmi: \begin{flushleft} \begin{verse} Šel medvídek na procházku,\\ uviděl tam sedmikrásku. Sedmikráska hezká,\\ medvídek si pleská. \emph{\uv{Plesk, plesk. Plesk!}}\\ Míšu zabil blesk! \end{verse} \end{flushleft} Jak vidíme nebránil se tomu ani v~tvorbě pro nejmenší. 2.9.4 Přímý výstup (verbatim, verb) Text, který je uzavřen mezi \begin{verbatim} a \end{verbatim} bude vysázen přesně tak, jak byl zapsán ve zdrojovém souboru, tj. se všemi mezerami, tisknutelnými symboly, konci řádků a bez interpretace všech příkazů LATEXu; tedy samozřejmě kromě \end{verbatim}. Toho lze s výhodou použít např. pro vytištění výpisů krátkých počítačových programů. Uvnitř odstavce podobnou funkci plní příkaz \verb+text+ Znak + je pouze příklad oddělovacího znaku. Jako oddělovací znak lze užít libovolný znak kromě písmen, znaků * a mezery. Většina příkladů příkazů LATEXu v tomto dokumentu byla vysázena právě tímto příkazem. Příkaz \ldots . . . #include void main(void) { printf( "Hello World!\n"); } Příkaz \verb|\ldots| \ldots \begin{verbatim} #include void main(void) { printf( "Hello World!\n"); } \end{verbatim} 26 Sázení textu Ohvězdičkovaná verze prostředí verbatim používá speciálního symbolu (vaničky) pro zvýraznění mezer. \begin{verbatim*} Ohvězdičkovaná verze prostředí verbatim používá speciálního symbolu (vaničky) pro zvýraznění mezer. \end{verbatim*} Příkaz \verb lze užít podobným způsobem, tj. v ohvězdičkované verzi: jako zde :-) \verb*|jako zde :-) | Prostředí verbatim a příkaz \verb se nesmí užívat v parametrech jiných příkazů. 2.9.5 Tabular Prostředí tabular se užívá k sazbě tabulek. Jím vysázené tabulka může být vysázena spolu s volitelnými horizontálními a vertikálními linkami. LATEX sám určí šířku sloupečků. Argumentem specifikace příkazu \begin{tabular}{specifikace} se definuje formát tabulky. V argumentu specifikace užití l znamená sloupec s textem zarovnaným vlevo, r sloupec zarovnaný vpravo, c sloupec s centrovaným textem, p{šířka} sloupec zadané šířky s víceřádkovým textem (text se formátuje do odstavce) a | svislou čáru. Uvnitř prostředí tabular znamená & skok na další sloupec tabulky, \\ konec řádky tabulky, \hline (jako samostatný řádek) sází vodorovnou čáru v šířce tabulky. 7CE hexadecimálně 3716 oktalově 11111001110 binárně 1998 decimálně \begin{tabular}{|r|l|} \hline 7CE & hexadecimálně \\ 3716 & oktalově \\ 11111001110 & binárně \\ \hline \hline 1998 & decimálně \\ \hline \end{tabular} 2.9 Prostředí 27 Vítejte v Krabičkově odstavci Věříme, že si zde užijete hodně pěkné podívané. \begin{tabular}{|p{4.7cm}|} \hline Vítejte v~Krabičkově odstavci Věříme, že si zde užijete hodně pěkné podívané.\\ \hline \end{tabular} Pomocí konstrukce @{...} lze specifikovat oddělovač mezi danými sloupci. Tento příkaz potlačí sazbu mezisloupcových výplní (mezer) a namísto nich vysází to, co je vloženo mezi složené závorky konstrukce @{...}. Nejčastěji používaný případ použití této konstrukce, zarovnávání desetinných čísel, je uveden níže. Dalším případem užití je potlačení sazby mezisloupcových mezer vložením konstrukce @{}. bez mezer kolem \begin{tabular}{@{} l @{}} \hline bez mezer kolem\\ \hline \end{tabular} mezery vpravo i vlevo \begin{tabular}{l} \hline mezery vpravo i vlevo\\ \hline \end{tabular} Jelikož LATEX nemá vestavěnou podporu pro zarovnávání desetinných čísel v tabulkách na desetinnou čárku5, je třeba užít švindl — použijeme dva sloupce: vpravo zarovnaný sloupec pro celočíselnou část a vlevo zarovnaný sloupec pro část desetinnou. Příkaz @{,} nahradí mezisloupcové výplně symbolem pro desetinnou čárku. Při sazbě pak nesmíme zapomenout nahradit desetinnou čárku odělovačem sloupců, tedy symbolem &. Popis takového zdvojeného sloupce lze vytvořit pomocí příkazu \multicolumn. výraz s π Hodnota π 3,1416 ππ 36,46 (ππ )π 80662,7 \begin{tabular}{c r @{,} l} výraz s~$\pi$ & \multicolumn{2}{c}{Hodnota} \\ \hline $\pi$ & 3&1416 \\ $\pi^{\pi}$ & 36&46 \\ $(\pi^{\pi})^{\pi}$ & 80662&7 \\ \end{tabular} 5 Je-li v systému naistalován soubor balíků „tools lze užít balíku dcolumn. 28 Sázení textu 2.10 Plovoucí objekty (Floating Bodies) V dnešní době většina publikací obsahuje množství různých obrázků a tabulek. Tyto objekty vyžadují speciální zpracování, jelikož je většinou nelze rozdělit na několik stránek. Jednou z metod by mohlo být vždy při sazbě obrázku či tabulky, které se již nevejdou na aktuálně sázenou stránku začít stránku novou. Tento přístup by však vedl k tomu, že by některé stránky zůstávaly poloprázné což by jistě nevypadalo moc pěkně. Vhodným řešením tohoto problému je to, že se obrázek či tabulka, které se již na aktuálně sázenou stránku nevejdou, prostě na této stránce nevysází a z jejich sazbou se posečká až na další vhodné místo na některé z následujích stránek. LATEX pro takové plovoucí objekty nabízí dvě prostředí. Jedno pro obrázky a druhé pro tabulky. K tomu abychom mohli plně využít těchto prostředí je potřeba alespoň přibližně porozumnět jak LATEX vnitřně s těmito prostředími pracuje. Jinak v nás tato prostředí neustále budou vyvolávat pocity marnosti, jelikož nikdy nevysází náš obrázek či tabulku na místo, kam bychom to zrovna potřebovali. Nejprve se podívejme na to jak vypadají příkazy pro práci s plovoucími objekty: Libovolný materiál uzavřený v prostředí figure či table je považován za plovoucí objekt. Obě prostředí mají ještě nepovinný parametr specifikace umístění \begin{figure}[specifikace umístění] či \begin{table}[specifikace umístění] Tento parametr řekne LATEXu kam na stránce lze daný plovoucí objekt umístit. Argument specifikace umístění je řetězec sestavený ze znaků povolení umístění. Viz tabulku 2.2. Tabulka 2.2: Znaky povolení umístění znak povolené místo umístění . . . h zde (here) právě v tom místě textu, kde se toto prostředí objevilo. To je vhodné zejména pro malé objekty. t v horní části (top) stránky b v dolní části (bottom) stránky p na zvláštní stránce (page), na níž budou pouze plovoucí objekty. ! bez toho aniž by se bral ohled na většinu vnitřních parametrů prostředía, které by mohly zabránit umístění objektu v daném místě. a Jako například maximální dovolený počet plouvoucích objektů na jedné stránce 2.10 Plovoucí objekty 29 Tabulku lze umístit například v prostředí, které začíná např. takto: \begin{table}[!hbp] Parametr specifikace umístění [!hbp] dovoluje LATEXu umístit tabulku buď právě zde (h) nebo ve spodní části (b) některé, třeba následující, stránky nebo na zvláštní stránce určené pouze pro plovoucí objekty (p) a to vše dokonce i v případě, že to nebude podle všech pravidel sazby (!). Jestliže umístění není specifikováno pomocí parametru, pak standardní třídy předpokládají [tbp]. LATEX bude umisťovat každý plovoucí objekt, na nějž narazí podle specifikace autora. Nemůže-li být plovoucí objekt umístěn na aktuální stránce, je umístěn do fronty6 obrázků či tabulek. Na počátku každé nové stránky LATEX nejprve zkouší, zda nemá frontu natolik plnou, aby z objektů v ní umístěných mohl vysázet zvláštní stránku. Není-li možné vysázet takovou stránku, první objekt v každé frontě se zpracovává tak, jakoby se vyskytly ve zdrojovém textu právě na této stránce, tj. LATEX zkouší znovu umístit objekt na danou stránku podle specifikace specifikace umístění. Samozřejmě se již nezpracovává požadavek na umístění h, který již pozbyl platnosti. Jakýkoli další objekt, jež se objeví ve zdrojovém textu se zařadí na konec příslušné fronty. LATEX při sazbě přesně dodržuje původní pořadí daného typu objektů. Proto se může stát, že jeden objekt, který nelze nikde umístit pozdrží sazbu všech následujích objektů třeba až na úplný konec dokumentu. Proto: Neumístí-li LATEX objekt, tj. obrázek či tabulku, na autorem očekávané místo, tak pravděpodobně některý z předchozích objektů ucpal příslušnou frontu. Pro práci z prostředím table a figure je dobré znát i některé další věci o nichž se zmíníme nyní. Pomocí příkazu \caption{text popisu} lze nadefinovat popisný titulek pro daný plovoucí objekt. Popis objektu se vedle textu popisu skládá ještě z čísla a řetězce „Obrázek nebo „Tabulka , jež přidá LATEX automaticky. Číselné řady pro číslování obrázků a tabulek má ve správě rovněž LATEX sám. Dva příkazy \listoffigures a \listoftables pracují obdobně jako příkaz \tableofcontents, tj. vysází seznam obrázků resp. tabulek. V těchto seznamech je zopakován úplný text popisu. Mnozí 6 FIFO — kdo přijde první bude první vysázen 30 Sázení textu autoři mají však sklon k delším popiskům, proto je třeba do seznamu užít zkrácené formy popisu čehož lze dosáhnout obdobně jako u příkazů pro strukturalizaci textu zadáním zkrácené fromy popisku jako nepovinný parametr těsně za příkaz \caption. \caption[Krátký popisek]{Velmi dlouhý popisek nějakého pěkného objektu} Užitím příkazů \label a \ref lze tvořit odkazy uvnitř textu na příslušné obrázky resp. tabulku. V následujícím příkladu je vykreslen prázdný čtverec, který je jako obrázek vložen do textu. Toho lze využít například v případě, že potřebujete vynechat ve výsledném dokumentu místo pro vlepení obrázku (např. foto- grafie). Na obrázku~\ref{obrazek} vidíte uspořádání experimentu. \begin{figure}[!hbp] \makebox[\textwidth]{\framebox[5cm]{\rule{0pt}{5cm}}} \caption{Uspořádání experimentu} \label{obrazek} \end{figure} V předchozím příkladu7 se LATEX bez skrupulí (!) pokusí umístit obrázek zde (h). Nebude-li to možné, pokusí se umístit obrázek na spodní okraj stránky (b). Nepodaří-li se mu vysázet obrázek na aktuální stránku zváží zda není možné umístit obrázek na zvláštní stránku spolu s nevysázenými tabulkami z fronty tabulek. Není-li dost materiálu k tomu, aby bylo možné takovou stránku vysázet začne LATEX sázet novou stránku a znovu se pokusí umístit obrázek tak, jako kdyby se jeho popis objevil ve zdrojovém textu právě nyní. V některých případech je potřeba užít příkaz \clearpage či dokonce \cleardoublepage kterým se LATEXu nařídí, aby okamžitě umístil všechny plovoucí objekty z front obrázků a tabulek a poté začal sázet novou stránku. Pomocí příkazu \cleardoublepage se navíc nařídí pokračování další sazby až na další levé stránce. 2.11 Přidání nových příkazů a prostředí V první kapitole je napsáno, že LATEX k tomu, aby dokázal vysázet dokument daného typu, potřebuje pouze informace o logické struktuře tohoto dokumentu. Toto je základní myšlenka LATEXu, ale v praxi se dostáváme do 7 za předpokladu, že fronta obrázků je prázdná 2.11 Přidání nových příkazů a prostředí 31 situací, kdy LATEX nenabízí příkaz či prostředí, které by splňovalo autorův požadavek na strukturalizaci dokumentu. Jedním z možných řešení, je užít několika příkazů LATEXu a uspořádat si sazbu dle potřeby. To není takový problém, je-li to potřeba provést pouze jednou, avšak pokud je potřeba danou složitější konstrukci příkazů ve zdrojovém textu nekolikrát opakovat je tento přístup nevhodný. Nevhodnost tohoto přístupu se projeví zejména tehdy, když je třeba tuto opakovanou složitější konstrukci upravit, potom je třeba procházet celý zdrojový text a editovat všechny výskyty dané konstrukce. K řešení takových problémů LATEX nabízí možnost definice vlastních příkazů a prostředí. 2.11.1 Nové příkazy Nový příkaz lze vytvořit pomocí příkazu: \newcommand{jméno}[číslo]{definice} Při běžném užití příkazu stačí dva argumenty: jméno nového příkazu, který právě tvoříme a jeho definice. Argument číslo v hranatých závorkách je volitelný a užívá se v případě, když chceme aby nový příkaz sám používal argumenty. Těchto argumentů může být maximálně devět, proto argument číslo může nabývat hodnot 1–9. Následující dva příklady ilustrují myšlenku užití příkazu \newcommand. V první příkladu je nadefinován nový příkaz \uvodlat, jež slouží jako zkratka pro „Ne příliš stručný úvod do systému LATEX2ε . Takový příkaz je vhodný v případě, když se několikrát v textu opakuje stále totéž slovní spojení, zde název této příručky. „Ne příliš stručný úvod do systému LATEX2ε . . . „Ne příliš stručný úvod do systému LATEX2ε \newcommand{\uvodlat} {Ne příliš stručný úvod do systému \LaTeXe} % následující se objeví v těle TeXtu \uv{\uvodlat} \ldots{} \uv{\uvodlat} Další příklad ilustruje užití argumentu číslo. Konstrukce #n je nahrazena n-tým argumentem nového příkazu, přičemž jak již bylo uvedeno n ∈ {1 . . . 9}. Tedy v našem případě #1 bude nahrazena prvním argumentem příkazu \uvlat. 32 Sázení textu • Ne příliš stručný úvod do systému LATEX2ε • Velmi stručný úvod do systému LATEX2ε \newcommand{\uvlat}[1] {\emph{#1} stručný úvod do systému \LaTeXe} % následující se objeví v těle TeXtu \begin{itemize} \item \uvlat{Ne příliš} \item \uvlat{Velmi} \end{itemize} LATEX nedovolí vytvořit nový příkaz se jménem již existujícího příkazu. Jestliže je třeba přepsat definici některého příkazu je třeba užít příkazu \renewcommand, který má syntax stejnou jako příkaz \newcommand. V některých případech lze užít též užít příkazu \providecommand, který dělá totéž co \newcommand, avšak v případě, že příkaz tohoto jména je již definován, LATEX tuto novou definici ignoruje. 2.11.2 Nové prostředí Obdobně jako je možné vytvářet nové příkazy je možné tvořit i vlastní nová prostředí. Například pro psaní této příručky její autor, Tobias Oetiker, vytvořil několik zvláštních prostředí pro často se vyskytující struktury, jako příklady, části kódu, rámečky s definicí příkazu. . . Nové prostředí se definuje příkazem \newenvironment, jež má následující syntax: \newenvironment{jméno}[číslo]{před}{po} Stejně jako u příkazu \newcommand i u příkazu \newenvironment lze zadat nepovinný parametr číslo specifikující počet argumentů ovlivňujících nějakým způsobem vytvářené prostředí. Příkazy, které se objeví v části před se provedou před tím, než se začne zpracovávat text v prostředí uzavřený. Příkazy obsažené v části po se začnou vykonávat v okamžiku, kdy LATEX začne zpracovávat příkaz \end{jméno}. Následující příklad ilustruje užití příkazu \newenvironment. Nebude tvář lidu jasná . . . \newenvironment{citace} {\begin{quote}}{\end{quote}} % následující se objeví v těle TeXtu \begin{citace} Nebude tvář lidu jasná \ldots \end{citace} Obdobně jako při definování nových příkazů LATEX dává pozor na to, aby nebylo nadefinováno prostředí se stejným jménem, jako má některé již existující. Je-li třeba předefinovat některé prostředí užívá se k tomu příkaz \renewenvironment, jež má stejnou syntax jako příkaz \newenvironment. Kapitola 3 Sázení matematických vzorců Tak jste dospěli až do bodu, kdy se budeme moci dotknout nejsilnější stránky TEXu, sazby matematiky. Je však třeba podotknout, že se v této kapitole dotkneme věci pouze povrchně, více o pravidlech sazby matematiky v TEXu se můžete dočíst v [2]. Obsah této kapitoly bude pravděpodobně dostačovat většině čtenářů k tomu, aby mohli začít psát odborné texty, obsahující matematiku. Nenaleznete-li v této kapitole některou matematickou strukturu, jež byste potřebovali vysázet v této kapitole, pravděpodobně naleznete vhodný prostředek v AMS-LATEXu1 či nějakém jiném balíku maker, zaměřeným na sazbu matema- tiky. 3.1 Obecný úvod TEX používá pro sazbu matematiky zvláštního módu. Matematické části textu uvnitř odstavce se uzavírají mezi \( a \), nebo mezi $ a $ či mezi \begin{math} a \end{math}. Nechť a a b jsou odvěsny a c přepona, pak platí c2 = a2 + b2 (Pythagorova věta). Nechť $a$ a $b$ jsou odvěsny a $c$ přepona, pak platí $c^{2}=a^{2}+b^{2}$ (Pythagorova věta). TEX se vyslovuje jako τ χ. 100 m2 obytné plochy. I ♥ TEX. \TeX\ se vyslovuje jako $\tau\epsilon\chi$.\\[6pt] 100~m$^{2}$ obytné plochy.\\[6pt] I $\heartsuit$ \TeX. Rozsáhlejší matematické vzorce či rovnice, je lépe sázet na zvláštní řádky. V tom případě se píší mezi \[ a \] či mezi \begin{displaymath} a \end{displaymath}. Takto vysázené rovnice však nejsou čílovány. Pokud rovnice uzavřeme do 1 CTAN:/tex-archive/macros/latex/packages/amslatex 34 Sázení matematických vzorců prostředí equation LATEX, vedle odsazení matematiky na zvláštní řádek bude rovnice navíc číslovaná. Nechť a a b jsou odvěsny a c přepona, pak platí c2 = a2 + b2 (Pythagorova věta) Nechť $a$ a $b$ jsou odvěsny a $c$ přepona, pak platí \begin{displaymath} c^{2}=a^{2}+b^{2} \end{displaymath} (Pythagorova věta) Pomocí již známých příkazů \label a \ref se lze v textu odkazovat na takto očíslované rovnice. > 0 (3.1) Z (3.1) dostáváme. . . . . . \begin{equation} \label{eq:eps} \epsilon > 0 \end{equation} Z~(\ref{eq:eps}) dostáváme\ldots \ldots V následujícím příkladu si všimněte , že výrazy se jinak vysází uvnitř odstavce a jinak na zvláštním řádku limn→∞ n k=1 1 k2 = π2 6 lim n→∞ n k=1 1 k2 = π2 6 $\lim_{n \to \infty} \sum_{k=1}^n \frac{1}{k^2} = \frac{\pi^2}{6}$ %%%%%%%%%%%%%%%%%%%%%%%%% \begin{displaymath} \lim_{n \to \infty} \sum_{k=1}^n \frac{1}{k^2} = \frac{\pi^2}{6} \end{displaymath} Sazba v matematickém režimu (math mode) se liší od sazby v textovém režimu (text mode) zvláště v těchto bodech: 1. Mezery a ukončení řádku ve vstupním textu nemají žádný význam, neboť vše se sází podle pravidel matematické sazby, případně se mezery zadávají speciálními příkazy jako \,, \quad, nebo \qquad. ∀x ∈ R : x2 ≥ 0 (3.2) \begin{equation} \forall x \in \mathbf{R}: \qquad x^{2} \geq 0 \end{equation} 2. Prázdné řádky jsou zakázány (tj. matematický vzorec musí být v jednom odstavci). 3.2 Tvorba skupin v matematickém režimu 35 3. Každé písmeno je považováno za jméno proměnné a je vysázeno odpovídajícím způsobem (tzv. matematická kurzíva). Chceme-li uvnitř matematického textu sázet normální text, musíme jej uzavřít do \textrm{...}. x2 ≥ 0 pro všechna x ∈ R (3.3) \begin{equation} x^{2} \geq 0\quad \textrm{pro všechna } x\in\mathbf{R} \end{equation} Matmetici nadělají mnoho povyku kolem symbolů, jež jsou při sazbě užity. V předchozím příkladu by možná pro vyznačení oboru reálných čísel bylo lepší použít zdvojené písmo, které lze zízka užitím příkazu \mathbb z balíku amsfonts či amssymb. Předchozí příklad bude tedy mít formu: x2 ≥ 0 pro všechna x ∈ R \begin{displaymath} x^{2} \geq 0\quad \textrm{pro všechna }x\in\mathbb{R} \end{displaymath} 3.2 Tvorba skupin v matematickém režimu Většina příkazů v matematickém reřimu má vliv pouze na bezprostředně následující znak. Je-li třeba, aby příkaz ovlivnil sazbu více znaků, je z nich potřeba, za pomoci složených závorek {...}, vytvořit skupinu. ax + y = ax+y (3.4) \begin{equation} a^x+y \neq a^{x+y} \end{equation} 3.3 Objekty matematických vzorců V této kapitole jsou stručně popsány nejdůležitější objekty, které se používají v matematických vzorcích. Seznam všech použitelných symbolů obsahuje oddíl 3.10 na straně 46. Malá písmena řecké abecedy se sází pomocí příkazů \alpha, \beta, \gamma, . . . , velká písmena2 se sází příkazy \Gamma, \Delta, . . . λ, ξ, π, µ, Φ, Ω $\lambda,\xi,\pi,\mu,\Phi,\Omega$ 2 LATEX nemá nadefinován příkaz pro velké písmeno Apfa, jelikož vypadá stejně jako velké mísmeno A. 36 Sázení matematických vzorců Exponenty a indexy se zadávají pomocí znaků ^ a _. a1 x2 e−αt a3 ij ex2 = ex2 $a_{1}$ \qquad $x^{2}$ \qquad $e^{-\alpha t}$ \qquad $a^{3}_{ij}$\\ $e^{x^2} \neq {e^x}^2$ Značka pro odmocninu se sází pomocí příkazu \sqrt, nth-tá odmocnina se genuje pomocí \sqrt[n]. Velikost odmocnítka LATEX volí automaticky. Je-li třeba vysázet pouze symbol odmocniny, bez čárky nad odmocněncem, užijeme \surd. √ x x2 + √ y 3 √ 2 √ [x2 + y2 ] $\sqrt{x}$ \qquad $\sqrt{ x^{2}+\sqrt{y} }$ \qquad $\sqrt[3]{2}$\\[3pt] $\surd[x^2 + y^2]$ Příkazy \overline či \underline zajistí sazbu horizontální linky nad či pod požadovanou částí matematického výrazu. m + n $\overline{m+n}$ Příkaz \overbrace resp. \underbrace vysází vodorovnou složenou závorku nad resp. pod požadovanou částí matematického výrazu. a + b + · · · + z 26 $\underbrace{ a+b+\cdots+z }_{26}$ Příkazy pro sázení matematických akcentů jako stříška nad proměnnou, nebo vlnovka nad proměnnou, obsahuje tabulka 3.1. Delší vlnovky a stříšky, které mohou být nad více znaky, dostaneme pomocí \widetilde a \widehat. Označení derivace se zadává pomocí znaku apostrof ’. y = x2 y = 2x y = 2 \begin{displaymath} y=x^{2}\qquad y’=2x\qquad y’’=2 \end{displaymath} Vektory jsou velice často označovány malou šipkou nad proměnnou. Pro tento účel je definován příkaz \vec. K označení vektoru z A do B lze užít dvou příkazů \overrightarrow a \overleftarrow. a −−→ AB \begin{displaymath} \vec a\quad\overrightarrow{AB} \end{displaymath} 3.3 Objekty matematických vzorců 37 Matematické funkce se v literatuře obvykle nesází kurzívou (jako jména proměnných), nýbrž „normálním vzpřímeným typem písma. K tomu slouží následující příkazy: \arccos \cos \csc \exp \ker \limsup \min \sinh \arcsin \cosh \deg \gcd \lg \ln \Pr \sup \arctan \cot \det \hom \lim \log \sec \tan \arg \coth \dim \inf \liminf \max \sin \tanh lim n→0 sin x x = 1 \[\lim_{n \rightarrow 0} \frac{\sin x}{x}=1\] Pro funkci modulo existují dva různé příkazy: \bmod pro binární operátor a mod b a \pmod... pro zadání ve formě x ≡ a (mod b). V české technické literatuře se však některé funkce, např. „tangens apod., označují jinak než v americké. Tyto lze v LATEXu v případě potřeby snadno dodefinovat. V následujícím příkladu je ilustrováno, jak lze pomocí příkazu \mathop nadefinovat označení pro novou funkci, v našem případě \tg pro označení funkce tangents. tg α = 1 \newcommand{\tg}{\mathop{\rm tg}\nolimits} %%%%%%%%% $\tg{\alpha}\ne1$ Zlomek (angl. fraction) se vysází příkazem \frac{...}{...}. Pro jednoduché zlomky, např. 1/2, lze však použít také operátor /. 11 2 koláče x2 k + 1 x 2 k+1 x1/2 $1\frac{1}{2}$~koláče \begin{displaymath} \frac{ x^{2} }{ k+1 }\qquad x^{ \frac{2}{k+1} }\qquad x^{ 1/2 } \end{displaymath} Binomické koeficienty či jiné obdobné struktury lze sázet buď pomocí příkazu {... \choose ...} či pomocí příkazu {... \atop ...}. Druhý příkaz se chová obdobně jako první, pouze s tím rozdílem, že nevysází zá- vorky. n k x y + 2 \begin{displaymath} {n \choose k}\qquad {x \atop y+2} \end{displaymath} Značka integrálu se sází příkazem \int, značka sumy příkazem \sum. Horní a dolní mez se zadává pomocí ^ a _ (jakoby horní a dolní index). 38 Sázení matematických vzorců n i=1 π 2 0 \begin{displaymath} \sum_{i=1}^{n} \qquad \int_{0}^{\frac{\pi}{2}} \qquad \end{displaymath} Meze integrálu se obvykle sázejí vedle značky integrálu (,aby se šetřilo místem). Pokud požadujeme meze nad a pod značkou, použijeme příkaz \limits. Naproti tomu meze u sumy jsou sázeny nad a pod značku, pouze u vzorců v textu, nebo použitím příkazu \nolimits, se meze vysázejí vedle značky. n i=1 π 2 0 \begin{displaymath} \sum\nolimits_{i=1}^{n} \qquad \int\limits_{0}^{\frac{\pi}{2}} \qquad \end{displaymath} Pro závorky a jiné ohraničující elementy obsahuje TEX mnoho různých symbolů (např. [ ). Kulaté a hranaté závorky se zadávají odpovídajícími znaky, složené závorky pomocí \{ a \}, ostatní speciálními příkazy (např. \updownarrow). Seznam všech druhů „závorek naleznete v tabulce 3.8 na straně 48. a, b, c = {a, b, c} \begin{displaymath} {a,b,c}\neq\{a,b,c\} \end{displaymath} Uvedeme-li před otevírací závorkou příkaz \left a před odpovídající zavírací závorkou příkaz \right, LATEX automaticky zvolí velikost závorek. Zde je nutno upozornit, že každému příkazu \left musí odpovídat \right, i když bychom nechtěli uzavírací závorku sázet. Pak se používá příkaz \right s tečkou (tj. „\right. ). 1 + 1 1 − x2 3 \begin{displaymath} 1 + \left( \frac{1}{ 1-x^{2} } \right) ^3 \end{displaymath} V některých případech je vhodné velikost závorek nastavit „ručně . K tomu slouží příkazy \big, \Big, \bigg a \Bigg, jako prefix (předponu) většiny závorkovacích příkazů3. 3 Tyto příkazy v případě, že se změní velikost písma či v případě užití globálního parametru 11pt či 12pt, nepracují tak, jak by se od nich očekávalo. Tuto vlasnost však napravuje balík exscale nebo amsmath 3.4 Mezery v matematice 39 (x + 1)(x − 1) 2 $\Big( (x+1) (x-1) \Big) ^{2}$\\ $\big(\Big(\bigg(\Bigg($\quad $\big\}\Big\}\bigg\}\Bigg\}$\quad $\big\|\Big\|\bigg\|\Bigg\|$ Tři tečky se ve vzorcích zadávají příkazy \ldots a \cdots. Příkaz \ldots sází tečky na základní čáru (low), \cdots sází tečky doprostřed výšky znaků (centered). Kromě toho existuje příkaz \vdots pro vertikální a \ddots pro diagonální tečky. Další příklady naleznete v oddílu 3.5. x1, . . . , xn x1 + · · · + xn \begin{displaymath} x_{1},\ldots,x_{n} \qquad x_{1}+\cdots+x_{n} \end{displaymath} Příkaz \stackrel se dvěma argumenty vysází jeden symbol nad druhý. První argument je sázen menší velikostí. x def = (x1, . . . , xn) \begin{displaymath} \vec{x} \stackrel{\mathrm{def}}{=} (x_{1},\ldots,x_{n}) \end{displaymath} V matematickém režimu lze také příkazem \cal přepnout implicitní matematickou kurzívu na psané písmo (kaligrafické písmo). Můžeme pak ovšem použít pouze velká písmena. z ∈ Z z ∈ Z \begin{displaymath} z \in Z \quad z \in {\cal Z} \end{displaymath} 3.4 Mezery v matematice Nejsme-li spokojeni ve vzorcích s mezerami, které zvolil TEX, můžeme je změnit explicitními příkazy. Mezi nejdůležitější patří \, pro malou mezeru, \ pro střední ( nahrazuje znak mezera), \quad a \qquad pro velké mezery. Příkaz \! mezeru zmenšuje (záporná malá mezera). Fn = Fn−1 + Fn−2 n ≥ 2 \begin{displaymath} F_{n} = F_{n-1} + F_{n-2} \qquad n \ge 2 \end{displaymath} 40 Sázení matematických vzorců D g(x, y) dx dy namísto D g(x, y)dxdy \newcommand{\ud}{\mathrm{d}} \begin{displaymath} \int\!\!\!\int_{D} g(x,y) \, \ud x\, \ud y \end{displaymath} namísto \begin{displaymath} \int\int_{D} g(x,y)\ud x \ud y \end{displaymath} Znak „d v diferenciálu se obvykle sází vzpřímeným typem písma. 3.5 Sazba na více řádků Pro sazbu matic aj. se používá prostředí array, které se chová podobně jako prostředí tabular. Příkazem \\ se dělí řádky. X =    x11 x12 . . . x21 x22 . . . ... ... ...    \begin{displaymath} \mathbf{X} = \left( \begin{array}{ccc} x_{11} & x_{12} & \ldots \\ x_{21} & x_{22} & \ldots \\ \vdots & \vdots & \ddots \end{array} \right) \end{displaymath} Prostředí array lze rovněž použít pro sazbu výrazů, jež obsahují oddělovač v tečkované formě, jako neviditelnou pravou závorku: y =    a if d > c b + x in the morning l all day long (3.5) \begin{equation} y = \left\{ \begin{array}{ll} a & \textrm{if $d>c$}\\ b+x & \textrm{in the morning}\\ l & \textrm{all day long} \end{array} \right. \end{equation} Víceřádkové vzorce nebo systémy rovnic se sázejí pomocí prostředí eqnarray a eqnarray* místo equation. Při použití eqnarray obsahuje každý řádek číslo rovnice (pokud to u některého řádku nezakážeme), při eqnarray* nikoli (jako v displaymath). Systémy rovnic, které jsou číslovány jako jeden objekt, se mohou zadávat v prostředí array uvnitř prostředí equation, viz předchozí příklad. Na prostředí eqnarray a eqnarray* lze nahlížet jako na tabulku o třech sloupcích se specifikací {rcl}, kde prostřední sloupec lze užít pro některý 3.6 Velikost písma při sazbě matematiky 41 z operátorů; většinou rovnítko. Příkaz \\ i zde slouží k oddělování jednotlivých řádek. f(x) = cos x (3.6) f (x) = − sin x (3.7) x 0 f(y)dy = sin x (3.8) \begin{eqnarray} f(x) & = & \cos x \\ f’(x) & = & -\sin x \\ \int_{0}^{x} f(y)dy & = & \sin x \end{eqnarray} Všimněte si, že kolem středního sloupce je zbytečně mnoho místa. Totom místo lze měnit nastavením \setlength\arraycolsep{2pt} tak, jako v následujícím příkladu. Dlouhé rovnice nejsou automaticky LATEXem děleny na několik řádek. Autor textu proto musí určit, kde se rovnice má rozdělit a musí vložit patřičnou mezeru na počátek druhého řádku rozdělené rovnice. Následující dva příklady ilustrují dva nejčastěji užívané přístupy k řešení tohoto problému. sin x = x − x3 3! + x5 5! − − x7 7! + · · · (3.9) {\setlength\arraycolsep{2pt} \begin{eqnarray} \sin x & = & x -\frac{x^{3}}{3!} +\frac{x^{5}}{5!}-{} \nonumber\\ & & {}-\frac{x^{7}}{7!}+{}\cdots \end{eqnarray}} cos x = 1 − x2 2! + + x4 4! − x6 6! + · · · (3.10) \begin{eqnarray} \lefteqn{ \cos x = 1 -\frac{x^{2}}{2!} +{} } \nonumber\\ & & {}+\frac{x^{4}}{4!} -\frac{x^{6}}{6!}+{}\cdots \end{eqnarray} Příkaz \nonumber zajistí, že pro daný řádek se nesází číslo rovnice. Někdy je velice těžké, aby vertikálně zarovnané rovnice za použití těchto dvou způsobů vypadaly hezky. V takovém případě je dobré užít balíku amsmath, který k řešení takových problémů nabízí daleko silnější aparát. 3.6 Velikost písma při sazbě matematiky V matematickém režimu velikost písma vybírá TEX podle kontextu. Například indexy jsou sazeny menším typem písma. Jestliže je třeba do sázeného matematického vzorce vysázet text v běžném vzpřímeném typu písma, je možné užít příkaz \textrm, mechanismus automatické změny velikosti písma 42 Sázení matematických vzorců dle kontextu však přestane fungovat, jelikož příkaz \textrm dočasně přepne sazbu do textového režimu. Chceme-li, aby mechanismus automatické změny velikosti nepřestal fungovat, je lépe užít namísto příkazu \textrm příkaz \mathrm. 2nd 2nd (3.11) \begin{equation} 2^\textrm{nd} \quad 2^\mathrm{nd} \end{equation} Někdy je však LATEXu potřeba říci jakou velikost fontu má užít. V matematickém režimu se velikost fontu nastavuje těmito čtyřmi příkazy: \displaystyle (123), \textstyle (123), \scriptstyle (123) a \scriptscriptstyle (123). Změnou matematického stylu je ovlivněna také sazba limit některých matematických symbolů. corr(X, Y ) = n i=1 (xi − x)(yi − y) n i=1 (xi − x)2 n i=1 (yi − y)2 1/2 \begin{displaymath} \mathop{\mathrm{corr}}(X,Y)= \frac{\displaystyle \sum_{i=1}^n(x_i-\overline x) (y_i-\overline y)} {\displaystyle\biggl[ \sum_{i=1}^n(x_i-\overline x)^2 \sum_{i=1}^n(y_i-\overline y)^2 \biggr]^{1/2}} \end{displaymath} Toto je jeden z případů, kdy je třeba použít menších závorek, než nabízí standardní \left[ a \right]. 3.7 Popis proměnných Po některých matematických výrazech je nutné uvést odstavec popisující proměnné užité ve výrazu. Následující příklad ukazuje jeden způsob možného přístupu k tomuto problému. 3.8 Věty, zákony, . . . 43 a2 + b2 = c2 Kde: a, b – jsou přilehlé odvěsny pravoúhlého trojúhelníku. c – je přepona pravoúhlého troj- úhelníku. \begin{displaymath} a^2+b^2=c^2 \end{displaymath} {\settowidth{\parindent} {Kde:\ } \makebox[0pt][r] {Kde:\ }$a$, $b$ -- jsou přilehlé odvěsny pravoúhlého trojúhelníku. $c$ -- je přepona pravoúhlého trojúhelníku.} Je-li potřeba takovéto konstrukce sázet častěji, je vhodné užitím příkazu \newenvironment nadefinovat nové prostředí . 3.8 Věty, zákony, . . . Při sazbě matematických textů je pořeba sázet definice, věty, lemma a podobné konstrukce. LATEX k sazbě takovýchto konstrukcí nabízí příkaz \newtheorem{jméno}[čítač ]{text}[oddíl] Argument jméno je krátké klíčové slovo, které identifikuje danou konstrukci. Argument text specifikuje aktuální jméno dané konstrukce, jež se objeví ve výsledném dokumentu. Argumenty v hranatých závorkách jsou nepovinné. Oba tyto nepovinné parametry nějakým způsobem ovlivňují číslování dané konstrukce. Argumentem čítač se lze odvolat na jméno, již dříve nadefinované struktury. Argument oddíl určuje dělící jednotku, uvnitř které bude daná konstrukce číslována. Po užití příkazu \newtheorem v preambuli dokumentu, lze užít uvnitř vlastního dokumentu následující příkazy. \begin{jméno}[text] Tato důležitá věta matematiky \end{name} Skončeme s teorií. Následující příklady vám snad napomohou pochopit k čemu je vlastně dobré prostředí \newtheorem. 44 Sázení matematických vzorců Zákon 1 Šéf má vždycky pravdu! Přikázání 2 (pro podřízené) Nemá-li šéf pravdu, viz zákon 1. Zákon 3 Vždy platí zákon 1! % definitions for the document % preamble \newtheorem{zakon}{Zákon} \newtheorem{prikaz}[zakon]{Přikázání} %in the document \begin{zakon} \label{zak:sef} Šéf má vždycky pravdu! \end{zakon} \begin{prikaz}[pro podřízené] Nemá-li šéf pravdu, viz zákon~\ref{zak:sef}. \end{prikaz} \begin{zakon} Vždy platí zákon~\ref{zak:sef}! \end{zakon} Konstrukce „Přikázání užívá stejného čítače jako konstrukce „Zákon , proto „Přikázání v našem příkladu plynule navazuje na číslování „Zákonů . Další argument v hranatých závorkách určuje další nadpis, či poznámku k nadpisu, dané konstrukce. Murphy 3.8.1 Co se může zkazit, to se také zkazí.. \newtheorem{mur}{Murphy}[section] \begin{mur} Co se může zkazit, to se také zkazí.. \end{mur} Konstrukce „Murphy má své číslo odvozené od čísla daného oddílu (section). Samozřejmě, že lze užít i jiné jednotky, např. kapitolu (chapter) nebo pododdíl (subsection). 3.9 Tučné symboly Získat tučné symboly v LATEXu je poměrně složité; je to pravděpodobně proto, aby amatérští sazeči nezačali takových možností zneužívat. Příkaz pro změnu tučnosti písma \mathbf, avšak toto písmo je vzpřímené, ale matematické symboly se většinou sází matematickou kurzívou (skloněným typem písma). Existuje příkaz \boldmath, jež umí pracovat i s matematickými symboly, ale tento příkaz lze užít pouze vně matematického režimu. µ, M M µ, M \begin{displaymath} \mu, M \qquad \mathbf{M} \qquad \mbox{\boldmath $\mu, M$} \end{displaymath} Všimněte si, že čárka je také vysázena tučně, což nemusí být právě to, co jsme očekávali. Užití balíku amsbsy (součást amsmath) umožňuje prostředky pro pohodlnou práci s tučnými matematickými symboly. Tento balík obsahuje příkaz 3.9 Tučné symboly 45 \boldsymbol a tzv. příkaz poor man’s bold \pmb, který pracuje aniž by bylo potřeba instalovat nějaké zvláštní fonty pro tučné symboly. µ, M µ, M µµµ,MMM \begin{displaymath} \mu, M \qquad \boldsymbol{\mu}, \boldsymbol{M} \qquad \pmb{\mu}, \pmb{M} \end{displaymath} 46 Sázení matematických vzorců 3.10 Seznam matematických symbolů V následujících tabulkách jsou uvedeny všechny symboly, které lze standardně použít v matematickém režimu. K používání symbolů v tabulkách 3.12–3.164, the package je třeba v preambuli dokumentu vložit balík amssymb a samozřejmě je třeba mít nainstalovány matematické AMS fonty. Není-li tento balík v systému nainstalován, lze ho získat na CTAN:/tex-archive/macros/latex/packages/amslatex Tabulka 3.1: Matematické akcenty ˆa \hat{a} ˇa \check{a} ˜a \tilde{a} ´a \acute{a} `a \grave{a} ˙a \dot{a} ¨a \ddot{a} ˘a \breve{a} ¯a \bar{a} a \vec{a} A \widehat{A} A \widetilde{A} Tabulka 3.2: Malá řecká písmena α \alpha θ \theta o o υ \upsilon β \beta ϑ \vartheta π \pi φ \phi γ \gamma ι \iota \varpi ϕ \varphi δ \delta κ \kappa ρ \rho χ \chi \epsilon λ \lambda \varrho ψ \psi ε \varepsilon µ \mu σ \sigma ω \omega ζ \zeta ν \nu ς \varsigma η \eta ξ \xi τ \tau Tabulka 3.3: Velká řecká písmena Γ \Gamma Λ \Lambda Σ \Sigma Ψ \Psi ∆ \Delta Ξ \Xi Υ \Upsilon Ω \Omega Θ \Theta Π \Pi Φ \Phi 4 Tyto tabulky byly odvozeny od symbols.tex Davida Carlisle, pozměněné tak, jak to doporučil Josef Tkadlec. 3.10 Seznam matematických symbolů 47 Tabulka 3.4: Binární relace Následující relační operátory mají své negované protějšky. Negovaný operátor se vysází přidáním příkazu \not před příslušný symbol. < < > > = = ≤ \leq či \le ≥ \geq či \ge ≡ \equiv \ll \gg . = \doteq \prec \succ ∼ \sim \preceq \succeq \simeq ⊂ \subset ⊃ \supset ≈ \approx ⊆ \subseteq ⊇ \supseteq ∼= \cong ` \sqsubset a a \sqsupset a I \Join a \sqsubseteq \sqsupseteq \bowtie ∈ \in \ni , \owns ∝ \propto \vdash \dashv |= \models | \mid \parallel ⊥ \perp \smile \frown \asymp : : /∈ \notin = \neq či \ne a K vysázení těchto symbolů je třeba vložit balík latexsym. Tabulka 3.5: Binární operátory + + − ± \pm \mp \triangleleft · \cdot ÷ \div \triangleright × \times \ \setminus \star ∪ \cup ∩ \cap ∗ \ast \sqcup \sqcap ◦ \circ ∨ \vee , \lor ∧ \wedge , \land • \bullet ⊕ \oplus \ominus \diamond \odot \oslash \uplus ⊗ \otimes \bigcirc \amalg \bigtriangleup \bigtriangledown † \dagger ¡ \lhd a £ \rhd a ‡ \ddagger ¢ \unlhd a ¤ \unrhd a \wr 48 Sázení matematických vzorců Tabulka 3.6: Velké operátory \sum \bigcup \bigvee \bigoplus \prod \bigcap \bigwedge \bigotimes \coprod \bigsqcup \bigodot \int \oint \biguplus Tabulka 3.7: Šipky ← \leftarrow či \gets ←− \longleftarrow ↑ \uparrow → \rightarrow či \to −→ \longrightarrow ↓ \downarrow ↔ \leftrightarrow ←→ \longleftrightarrow \updownarrow ⇐ \Leftarrow ⇐= \Longleftarrow ⇑ \Uparrow ⇒ \Rightarrow =⇒ \Longrightarrow ⇓ \Downarrow ⇔ \Leftrightarrow ⇐⇒ \Longleftrightarrow \Updownarrow → \mapsto −→ \longmapsto \nearrow ← \hookleftarrow → \hookrightarrow \searrow \leftharpoonup \rightharpoonup \swarrow \leftharpoondown \rightharpoondown \nwarrow \rightleftharpoons ⇐⇒ \iff (větší mezery) Y \leadsto a a K vysázení těchto symbolů je třeba vložit balík latexsym. Tabulka 3.8: Závorky ( ( ) ) ↑ \uparrow ⇑ \Uparrow [ [ či \lbrack ] ] či \rbrack ↓ \downarrow ⇓ \Downarrow { \{ či \lbrace } \} či \rbrace \updownarrow \Updownarrow \langle \rangle | | či \vert \| či \Vert \lfloor \rfloor \lceil \rceil / / \ \backslash . (párová neviditelná) Tabulka 3.9: Velké závorky   \lgroup   \rgroup   \lmoustache   \rmoustache | \arrowvert \Arrowvert  \bracevert 3.10 Seznam matematických symbolů 49 Tabulka 3.10: Různé symboly . . . \dots · · · \cdots ... \vdots ... \ddots \hbar ı \imath  \jmath \ell \Re \Im ℵ \aleph ℘ \wp ∀ \forall ∃ \exists H \mho a ∂ \partial ’ \prime ∅ \emptyset ∞ \infty \nabla \triangle P \Box a Q \Diamond a ⊥ \bot \top ∠ \angle √ \surd ♦ \diamondsuit ♥ \heartsuit ♣ \clubsuit ♠ \spadesuit ¬ \neg or \lnot \flat \natural \sharp a K vysázení těchto symbolů je třeba vložit balík latexsym. Tabulka 3.11: Nematematické symboly Tyto symboly lze užít i v textovém režimu. † \dag § \S c \copyright ‡ \ddag ¶ \P $ \pounds Tabulka 3.12: AMS — závorky \ulcorner \urcorner \llcorner \lrcorner Tabulka 3.13: AMS — řecké a hebrejské znaky \digamma κ \varkappa \beth \daleth \gimel 50 Sázení matematických vzorců Tabulka 3.14: AMS — binární relace \lessdot \gtrdot \doteqdot či \Doteq \leqslant \geqslant \risingdotseq \eqslantless \eqslantgtr \fallingdotseq \leqq \geqq \eqcirc \lll či \llless \ggg či \gggtr \circeq \lesssim \gtrsim \triangleq \lessapprox \gtrapprox \bumpeq \lessgtr \gtrless \Bumpeq \lesseqgtr \gtreqless ∼ \thicksim \lesseqqgtr \gtreqqless ≈ \thickapprox \preccurlyeq \succcurlyeq \approxeq \curlyeqprec \curlyeqsucc \backsim \precsim \succsim \backsimeq \precapprox \succapprox \vDash \subseteqq \supseteqq \Vdash \Subset \Supset \Vvdash ` \sqsubset a \sqsupset \backepsilon ∴ \therefore \because ∝ \varpropto \shortmid \shortparallel \between \smallsmile \smallfrown \pitchfork \vartriangleleft \vartriangleright \blacktriangleleft \trianglelefteq \trianglerighteq \blacktriangleright Tabulka 3.15: AMS — šipky \dashleftarrow \dashrightarrow \multimap \leftleftarrows \rightrightarrows \upuparrows \leftrightarrows \rightleftarrows \downdownarrows \Lleftarrow \Rrightarrow \upharpoonleft \twoheadleftarrow \twoheadrightarrow \upharpoonright \leftarrowtail \rightarrowtail \downharpoonleft \leftrightharpoons \rightleftharpoons \downharpoonright \Lsh \Rsh \rightsquigarrow \looparrowleft \looparrowright \leftrightsquigarrow \curvearrowleft \curvearrowright \circlearrowleft \circlearrowright 3.10 Seznam matematických symbolů 51 Tabulka 3.16: AMS — negované binární relace a šipky \nless \ngtr \varsubsetneqq \lneq \gneq \varsupsetneqq \nleq \ngeq \nsubseteqq \nleqslant \ngeqslant \nsupseteqq \lneqq \gneqq \nmid \lvertneqq \gvertneqq \nparallel \nleqq \ngeqq \nshortmid \lnsim \gnsim \nshortparallel \lnapprox \gnapprox \nsim \nprec \nsucc \ncong \npreceq \nsucceq \nvdash \precneqq \succneqq \nvDash \precnsim \succnsim \nVdash \precnapprox \succnapprox \nVDash \subsetneq \supsetneq \ntriangleleft \varsubsetneq \varsupsetneq \ntriangleright \nsubseteq \nsupseteq \ntrianglelefteq \subsetneqq \supsetneqq \ntrianglerighteq \nleftarrow \nrightarrow \nleftrightarrow \nLeftarrow \nRightarrow \nLeftrightarrow Tabulka 3.17: AMS — binární operátory \dotplus \centerdot \intercal \ltimes \rtimes \divideontimes \Cup či \doublecup \Cap or \doublecap \smallsetminus \veebar \barwedge \doublebarwedge \boxplus \boxminus \circleddash \boxtimes \boxdot \circledcirc \leftthreetimes \rightthreetimes \circledast \curlyvee \curlywedge 52 Sázení matematických vzorců Tabulka 3.18: AMS — různé symboly \hbar \hslash k \Bbbk \square \blacksquare \circledS \vartriangle \blacktriangle \complement \triangledown \blacktriangledown \Game ♦ \lozenge \blacklozenge \bigstar ∠ \angle \measuredangle \sphericalangle \diagup \diagdown \backprime \nexists \Finv ∅ \varnothing ð \eth H \mho Tabulka 3.19: Matematická abeceda Příklad Příkaz Potřebný balík ABCdef \mathrm{ABCdef} ABCdef \mathit{ABCdef} ABCdef \mathnormal{ABCdef} ABC \mathcal{ABC} ABC \mathcal{ABC} eucal s volbou: mathcal či \mathscr{ABC} eucal s volbou : mathscr ABCdef \mathfrak{ABCdef} eufrak, amsfonts či amssymb ABC \mathbb{ABC} amsfonts či amssymb Kapitola 4 Speciality Nyní byste měli být vybaveni dostatkem informací k vlastnímu napsání článku, knihy, referátu v LATEXu. Tato kapitola je zde jaksi navíc a proto není nutné ji číst. Teprve až při psaní svých dokumentů narazíte na nějaký problém, který nelze vyřešit dosud zmíněnými prostředky, nahlédněte do této kapitoly. Avšak ani tato kapitola neobsahuje zdaleka všechny jemnosti LATEXu. Kompletnější informace naleznete v knihách LATEX Manual [1] a The LATEX Companion [3]. 4.1 Druhy a velikosti písma LATEX volí vhodný druh a velikost písma na základě příkazů, které udávají logickou strukturu textu (nadpisy, zdůraznění atd.). Ve zvláštních případech lze změnit druh, nebo velikost písma, pomocí příkazů uvedených v tab. 4.1 a 4.2. Druh písma, který LATEX v daném dokumentu užije, zavisí do značné míry také na užité třídě, všech různých volbách třídy a na dalších užitých balíčcích. Malí tuční Římané ovládli celou velkou Itálii. {\small Malí \textbf{tuční} Římané ovládli} {\Large celou velkou \textit{Itálii}.} Jedním důležitým rysem LATEXu je, že atributy písma jsou nezávislé. To znamená, že lze změnit např. velikost písma, přičemž se zachová atribut tloušťky či sklonu písma nastavené dříve. Tato věc se moždá zdá zřejmá lidem, jež se učí LATEX2ε od začátku, avšak nemusí to být úplně jasné lidem přecházející na LATEX2ε z LATEXu 2.09. Užitím příkazů pro změnu typu písma v matematickém režimu lze dočasně tento mód opustit a tak vysázet do matematiky běžný text. Je-li třeba přejít na jiný typ písma uvnitř matematického režimu, je třeba užít zvláštních příkazů; viz tab. 4.3. 54 Speciality Tabulka 4.1: Druhy písma \textrm{...} normální písmo — antikva (roman) \textsf{...} bezserifové písmo (sans serif) \texttt{...} strojopisné písmo (typewriter) \textmd{...} střední písmo (medium) \textbf{...} polotučné písmo (bold face) \textup{...} vzpřímené písmo (upright) \textit{...} kurzíva (italic) \textsl{...} skloněné písmo (slanted) \textsc{...} kapitálky (small caps) \emph{...} zvýrazněné písmo (emphasised) \textnormal{...} běžné písmo dokumentu font Tabulka 4.2: Velikosti písma \tiny nejmenší písmo \scriptsize velmi malé písmo (velikost indexů) \footnotesize malé písmo (velikost pozmámek pod čarou) \small menší písmo \normalsize písmo běžné velikosti \large velké písmo \Large větší písmo \LARGE velké písmo \huge velmi velké písmo \Huge největší písmo 4.1 Druhy a velikosti písma 55 Ve spojení s těmito příkazy pro změnu typu písma, hrají nemalou roli složené závorky. Ty se užívají k vytváření tzv. skupin. Skupiny ohraničují platnost většiny příkazů LATEXu. Má rád velká i malá pís- menka. Má rád {\LARGE velká i {\small malá} písmenka}. Se změnou velikosti písma se mění také řádkování, ale jen v případě, že odstavec končí ještě uvnitř platnosti příkazu pro změnu velikosti písma. Proto není dobré uzavírací složenou závorku } vkládat do vstupního textu příliš brzy. Všimněte si umístění příkazu \par v následujících dvou příkla- dech. Nečtěte to! Není to pravda! To mi můžete věřit! {\Large Nečtěte to! Není to pravda! To mi můžete věřit!\par} Toto není pravda. Avšak nezapomeňte, že jsem lhář! {\Large Toto není pravda. Avšak nezapomeňte, že jsem lhář!}\par Závěrem naší exkurze do světa písma přijměte tuto radu1: Zapamatujte si!Čím VÍCE druhů písma použijete ve svém textu, tím se stane čitelnějším a hezčím. 1 Pozor: Toto je myšleno s nadsázkou, jak jistě bystrý čtenář ihned odhalil. Tabulka 4.3: Matematická písma Příkaz Příklad Výstup \mathcal{...} $\mathcal{B}=c$ B = c \mathrm{...} $\mathrm{K}_2$ K2 \mathbf{...} $\sum x=\mathbf{v}$ x = v \mathsf{...} $\mathsf{G\times R}$ G × R \mathtt{...} $\mathtt{L}(b,c)$ L(b, c) \mathnormal{...} $\mathnormal{R_{19}}\neq R_{19}$ R = R19 \mathit{...} $\mathit{ffi}\neq ffi$ ffi = ffi 56 Speciality 4.2 Mezery 4.2.1 Mezery mezi řádky Je-li třeba docílit větších mezer mezi sázenými řádky, je vhodné užít příkazu \linespread{faktor} v preambuli dokumentu. Pro řádkování „jedna a půl se užije \linespread{1.3} a pro řádkování „dva \linespread{1.6}. Běžně však není nutné řádky od sebe oddalovat, proto je standardně faktor oddálení řádek nastaven na hodnotu 1. 4.2.2 Formátování odstavce V LATEXu jsou dva parametry, které ovlivňují vzhled odstavce. Umístěním definice, která může vypadat například takto: \setlength{\parindent}{0pt} \setlength{\parskip}{1ex plus 0.5ex minus 0.2ex} v preambuli dokumentu2 lze změnit vzhled všech odstavců. V těchto dvou definicích jsme nejprve zakázali odsazení začátku každého odstavce (nastavili jsme hodnotu registru \parindent na nulu) a poté jsme zvětšili mezeru mezi dvěma odstavci (nastavili jsme hodnotu registru \parskip na 1ex s mírnou vůlí. Takovýto formát odstavců — neodsazované odstavce oddělené mezerou — je v Evropě běžný. Avšak pozor, toto nastavení má vliv i na sazbu tabulky obsahu, kde vlastně každá řádka obsahu je odstavcem. Proto se řádky v obsahu od sebe také vzdálí o hodnotu nastavenou v \parskip. Je-li třeba odsadit odstavec, který není automaticky odsazen, je dobré užít na začátku takového odstavce příkaz: \indent Tento příkaz lze užít v případě, že \parindent je nenulové. Například, chceme-li, aby na počátku dané sekce byl první odstavec také odsazen.3 Chceme-li v daném odstavci zakázat jeho odsazení, uvedeme jako první příkaz tohoto odstavce: \noindent Toho se užívá v případě, že se dokument začíná čistým textem a nikoli nějakým příkazem pro strukturalizaci dokumentu. 2 Mezi příkazy \documentclass a \begin{document}. 3 Chceme-li dosáhnout toho, aby byl odsazen první odstavec každé sekce, je lépe použít balíku indentfirst ze souboru balíků „tools . 4.2 Mezery 57 4.2.3 Horizontální mezery LATEX sám nastavuje velikost mezer mezi slovy a větami. Někdy je však potřeba přidat do textu horizontální mezeru, k tomu se užívá příkaz: \hspace{délka} Je-li třeba mezeru zachovat i v případě, že připadne na konec či začátek řádky, užije se místo příkazu \hspace jeho ohvězdičkované verze tj. \hspace*. Parametr délka je v nejjednodužším případě číslice následovaná jednotkou délky. Nejdůležitější jednotky jsou uvedeny v tabulce 4.4. Zde je mezera 1.5 cm. Zde je\hspace{1.5cm}mezera 1.5~cm. Příkaz \stretch{n} umožňuje vytvořit zvláštní druh mezery — pružnou mezeru. Tato mezera má schopnost roztáhnout se tak, že zaplní veškeré zbylé místo na daném řádku. LATEX zavádí pro \stretch{1} ekvivalent \fill a pro \hspace{\fill} ekvivalent \hfill. A B CD A B CD A B CD A B CD A B \hspace{\stretch{3}} CD\\ A B \hspace{\stretch{1}} CD\\ A B \hspace{\fill} CD\\ A B \hfill{} CD\\ Jestliže se v tom samém řádku sejde více příkazů typu \hspace{\stretch{n}}, příslušné pružné mezery se napnou v poměru příslušných faktorů n. A B C D A\hspace{\stretch{2}} B\hspace{\stretch{1}} C\hspace{\stretch{3}}D Pro sazbu některých seznamů, například obsahu, je třeba pružně vyplnit místo na řádku tečkami či linkou, přižemž předem není známo kolik bude potřeba teček či jak dlouhou linku bude třeba užít. Pro tento účel LATEX zavádí příkazy \dotfill a \hrulefill. A B C . . . . . . D A \hrulefill{} B \hspace{\stretch{2}} C \dotfill{} D Tabulka 4.4: Jednotky délky užívané v TEXu mm milimetr = 1/25,4 in cm centimetr = 10 mm in palec (inch, coul) = 25,4 mm pt monotypový bod (point) = 1/72,27 in ≈ 1 3 mm em ≈ šířka písmene M aktuálního typu písma ex ≈ výška písmene x aktuálního typu písma 4.2.4 Vertikální mezery Mezery mezi odstavci, kapitolami atd. určuje LATEX sám. Ve zvláštních případech lze zvětšit mezeru mezi dvěma odstavci příkazem: \vspace{délka} Tento příkaz bychom měli zadávat vždy mezi dvěma prázdnými řádky. Pokud má mezera zůstat také na začátku nebo na konci stránky, musíme namísto \vspace použít jeho ohvězdičkovanou verzi, tj. \vspace*. Příkazy v tab. 4.5 vytvářejí speciální vertikální mezery. Tabulka 4.5: Zvláštní vertikální mezery \smallskip přibližně 1/4 řádku \medskip přibližně 1/2 řádku \bigskip přibližně 1 řádek \vfill ekvivalent k \vspace{\stretch{1}} Příkaz \stretch ve spojení s \pagebreak slouží k vysázení textu na dolní okraj stránky nebo k vertikálnímu centrování textu. Nějaký text \ldots \vspace{\stretch{1}} Tento text bude vysázen na poslední řádku stránky.\pagebreak Mezeru mezi řádky uvnitř odstavce či tabulky můžeme zvětšit příkazem: \\[délka] 4.3 Vzhled stránky 59 4.3 Vzhled stránky LATEX2ε umožňuje nastavit rozměr papíru, na nejž chceme text sázet, přímo v příkazu \documentclass. Podle této specifikace si pak sám nastaví okraje. Avšak někdy autor potřebuje tyto přednastavené hodnoty upravit podle svých představ. Na obrázku 4.1 jsou zobrazeny veškeré nastavitelné parametry, které ovlivňují vzhled stránky. Tento obrázek byl vytvořen s využitím balíku layout, který je součástí souboru balíků tools4. LATEX nabízí dva příkazy pomocí nichž lze tyto parametry měnit. Obyčejně se objevují v preambuli dokumentu. První příkaz umožňuje přiřadit libovolnému z těchto parametrů pevnou hodnotu: \setlength{parameter}{délka} Druhý umožňuje zvětšit libovolný z těchto parametrů o pevný rozměr délka. \addtolength{parameter}{délka} Tento příkaz je možná užitečnější než \setlength, neboť umožňuje nastavovat rozměry vzhledem k již nastaveným hodnotám. Přidání jednoho centimetru k celkové šířce textu by se provedlo vložením těchto příkazů do preambule dokumentu: \addtolength{\hoffset}{-0.5cm} \addtolength{\textwidth}{1cm} 4.4 Sazba seznamu použité literatury Seznam použité literatury se vysází pomocí prostředí thebibliography. Každá položka v seznamu literatury začíná příkazem: \bibitem{značka} kde značka se používá v těle dokumentu při odkazu na uvedené dílo. \cite{značka} Číslování položek seznamu se děje automaticky, přičemž parametrem prostředí thebibliography se nastaví maximální šířka tohoto čísla. 4 CTAN:/tex-archive/macros/latex/packages/tools 60 Speciality Záhlaví Tělo Pata Margi- nálie i8 - i7 ? 6 i1 - -i3 i10 - -i9 6 ? i11 i2 ? 6 6 ? i4 6 ? i5 6 ? i6 1 jeden palec + \hoffset 2 jeden palec + \voffset 3 \evensidemargin = 70pt 4 \topmargin = 22pt 5 \headheight = 13pt 6 \headsep = 19pt 7 \textheight = 595pt 8 \textwidth = 360pt 9 \marginparsep = 7pt 10 \marginparwidth = 106pt 11 \footskip = 27pt \marginparpush = 5pt (nevyobrazen) \hoffset = 0pt \voffset = 0pt \paperwidth = 597pt \paperheight = 845pt Obrázek 4.1: Parametry ovlivňující vzhled stránky 61 Partl [1] dodává, že . . . Literatura [1] H. Partl: German TEX, TUGboat Vol. 9, No. 1 (’88) Partl~\cite{pa} dodává, že \ldots \begin{thebibliography}{99} \bibitem{pa} H.~Partl: \emph{German \TeX}, TUGboat Vol.~9, No.~1 (’88) \end{thebibliography} 4.5 Tvorba rejstříku Velmi užitečnou součástní většiny knih je rejstřík. Pomocí LATEXu a podpůrného programu makeindex,5 lze vytvořit rejstřík (index) poměrně jednoduše. Tento úvod objasňuje pouze základy tvorby indexů, daleko podrobnější popis naleznete např. v The LATEX Companion [3]. Aby bylo možno začít užívat automatickou tvorbu rejstříku v LATEXu je třeba v preambuli dokumentu užít balík makeidx, tj. vložit příkaz: \usepackage{makeidx} Dále je třeba v preambuli vložit příkaz, \makeindex který spustí tvorbu příslušných souborů pro tvorbu indexu. Obsah rejstříku se tvoří pomocí příkazu: \index{položka} Kde argument položka je jedna položka, kterou chceme vložit do rejstříku. Tento příkaz se vkládá do toho místa v textu, na které chceme nasměrovat odkaz v rejstříku. Tabulka 4.6 na několika příkladech vysvětluje syntax argumentu položka. Během zpracování vstupního souboru LATEXem každý příkaz \index zapisuje příslušný zápis názvu položky spolu s číslem aktuální stránky do 5 V systémech, kreré neumožňují mít jména souborů delší jak osm znaků se program jmenuje makeidx. 62 Speciality Tabulka 4.6: Příklady položek vkládaných do rejstříku Příklad Položka v rejstříku Poznámka \index{jméno} jméno, 1 jednoduchá položka \index{jméno!Petr} Petr, 3 subpoložka položky „jméno \index{Sam@\textsl{Sam}} Sam, 2 formátovaná položka \index{Jan@\textbf{Jan}} Jan, 7 \index{Jana|textbf} Jena, 3 formátované číslo stránky \index{Jiří|textit} Jiří, 5 zvláštního souboru. Tento soubor má stejné jméno jako hlavní vstupní soubor a příponu .ind. Tento soubor je poté třeba zpracovat programem makeindex: makeindex jméno souboru Program makeindex vytvoří uspořádaný rejstřík a uloží jej do souboru s příponou .idx. Je-li nyní příslušný vstupní soubor znovu zpracován LATEXem, je tento uspořádaný resjtřík vysázen v místě výskytu příkazu: \printindex Užijeme-li balík showidx, pak LATEX vytiskne indexovou položku navíc na levý okraj aktuálně sázené stránky. Tato vlasnost je velice užitečná při tvorbě rejstříku a korektůr. 4.6 Vkládání obrázků ve formátu EPS Prostředí figure a table LATEXu nabízí základní prostředky pro práci s plovoucími objekty (obrázky, grafika). V současné době existuje velké množství možností jakými lze vytvářet grafický výstup (jednoduché obrázky, grafy,. . . ) přímo pomocí příkazů LATEXu či některého z jeho podpůrných balíků. Žel většině začínajících uživatelů LATEXu se tento způsob zdá poněkud složitý a nepochopitelný — většinou totiž jde o příkazy umožňující vektorový popis daného obrázku. Proto se v tomto manuálku nebudeme tímto způsobem tvorby grafiky zabývat, pouze zvídavého čtenáře odkážeme na vynikající knihy, The LATEX Companion [3] a LATEX Manual [1], kde lze nalézt podrobnosti. Asi nejjednožším způsobem, jak dostat grafiku do dokumentu, je vytvořit 4.6 Vkládání obrázků ve formátu EPS 63 obrázek specializovaným programem6 a výsledek poté vložit do dokumentu. I v tomto případě nejste v LATEXu omezeni jen na jeden způsob takového vložení předem vytvořeného obrázku. V tomto úvodu se však omezíme jen na vkládání grafiky ve formě encapsulated PostScriptu (EPS) , jelikož tento způsob je asi nejužívanějším a možná i nejjednodužším. Užijeme-li tohoto přístupu, je třeba po zpracování LATEXem převést výstup (soubor .dvi) do formátu PostScriptu a poté použít postscriptovou tiskárnu nebo programu GhostScript7. který umožňuje tisk PostScriptu téměř na libovolném typu tiskárny. Užitečnou sadu příkazů pro vkládání grafiky poskytuje balík graphicx D. P. Carlislea. Tento balík je součástí celé rodiny balíků, která se označuje jako „graphics bundle 8. V dalším předpokládejme, že pracujeme na systému, který má k dispozici PostSriptovou tiskárnu, je naistalován balík graphicx. Pak lze k vkládání grafiky do dokumentu užít následujících kroků: 1. Vyexportujeme obrázek z grafického programu ve formátu EPS. 2. Vložíme balík maker graphicx, tj. do preambule zdrojového textu vložíme příkaz \usepackage[driver]{graphicx} driver je jméno programu, který bude užit ke koverzi dvi-souboru do postscriptu. 9. Tuto informaci musíme balíku zdělit proto, že vlastní vkládání grafiky do tištěného dokumentu zajišťuje právě ovladač tisku, tj. konvertor DVI na příkazy tiskárny, v našem případě na příkazy postscriptu. Tím, že je znám ovladač driver, je zajištěno, že balík graphicx vloží do dvi-souboru správné příkazy na vložení požadovaného EPS obrázku. Tabulka 4.7: Názvy klíčů pro balík graphicx width úprava šířky vkládané grafiky na specifikovanou hodnotu height úprava výšky vkládané grafiky na specifikovanou hodnotu angle rotace obrázku ve směru hodinových ručiček 6 Např. XFig, CorelDraw!, Freehand, Gnuplot, . . . 7 CTAN:/tex-archive/support/ghostscript 8 CTAN:/tex-archive/macros/latex/packages/graphics 9 Nejužívanějším programem užívaným ke konverzi DVI na PS je program dvips. 64 Speciality 3. Pro vložení souboru file s grafikou ve formátu EPS užijeme příkaz: \includegraphics[klíč =hodnota, . . . ]{file} Volitelným parametrem je seznam čárkou oddělených dvojic klíč =hodnota. Pomocí těchto klíčů lze měnit šířku, výšku a rotaci vkládané grafiky. V tabulce 4.7 je uveden seznam nejdůležitějších klíčů. Pro názornost uveďme příklad: \begin{figure} \begin{center} \includegraphics[angle=90, width=10cm]{test.eps} \end{center} \end{figure} Tímto kódem jsme do textu vložili grafiku uloženou v souboru test.eps. Obrázek je nejprve otočen o devadesát stupňů po směru hodinových ručiček a poté je upravena jeho velikost na šířku 10 cm, protože není explicit`e uvedena výška, změní v příslušném poměru. Více informací lze nalézt v [9], [3] a [4]. Literatura [1] Leslie Lamport. LATEX: A Document Preparation System. Addison-Wesley, Reading, Massachusetts, second edition, 1994, ISBN 0-201-52983-1. [2] Donald E. Knuth. The TEXbook, Volume A of Computers and Typesetting, Addison-Wesley Publishing Company (1984), ISBN 0-201-13448-9. [3] Michel Goossens, Frank Mittelbach and Alexander Samarin. The LATEX Companion. Addison-Wesley, Reading, Massachusetts, 1994, ISBN 0-201-54199-8. [4] Michel Goossens, Frank Mittelbach. The LATEX Graphic Companion. AddisonWesley, Reading, Massachusetts, ISBN 0-201-85469-4,. [5] Ke každé instalaci by měl být přibalen manuál LATEX Local Guide, ve kterém jsou uvedeny údaje specifické pro danou instalaci — např. příkazy potřebné pro spuštění programů a soubory, předdefinované formáty a fonty, které jsou k dispozici. Měl by být uložen v souboru local.tex. Žel, většina systémových administrátorů takový dokument nepořizuje. V takovém je nutné kontaktovat nějakého LATEXového guru, většinou jím bývá právě systémový administrátor. [6] LATEX3 Project Team. LATEX 2ε for authors. Je součástí distribuce LATEX2ε jako soubor usrguide.tex. [7] LATEX3 Project Team. LATEX 2ε for Class and Package writers. Je součástí distribuce LATEX2ε jako soubor clsguide.tex. [8] LATEX3 Project Team. LATEX 2ε Font selection. Je součástí distribuce LATEX2ε jako soubor fntguide.tex. [9] D. P. Carlisle. Packages in the ‘graphics’ bundle. Je součástí distribuce souboru maker ,graphics’ jako soubor grfguide.tex. [10] H. Partl, E.Schlegl, I. Hyna, P. Sýkora, LATEX Stručný popis, Je součástí distribuce CSTEXu jako soubor uvodlat.zip [11] Jiří Rybička, LATEX pro začátečníky, 2. vydání Konvoj 1999, ISBN 80-85615- 77-0 (brož.), ISBN 80-85615-74-6 (váz.) [12] Petr Olšák, Typografický systém TEX, CsTUG 1995, ISBN 80-901950-0-8 [13] Petr Olšák, TEXbook naruby, Konvoj 1997, ISBN 80-85615-64-9 Rejstřík \!, 39 ", 15 $, 33 ’, 36 \(, 33 \), 33 \,, 16, 34, 39 -, 15 −, 15 \-, 14 –, 15 —, 15 ., mezera po, 18 . . . , 16 \@, 18 \[, 33 \\, 13, 23, 24, 26, 58 \\*, 13 \], 33 ^, 36 _, 36 |, 26 ~, 18 acute, 17 \addtolength, 59 æ, 17 akcenty, 17 amsbsy, 44 amsfonts, 35 amsmath, 38, 41, 44 amssymb, 35, 46 \and, 21 antikva, 54 \appendix, 20 array, 40 \atop, 37 \author, 21 \authors, 21 \backmatter, 21 balík amsbsy, 44 amsfonts, 35 amsmath, 38, 41, 44 amssymb, 35, 46 dcolumn, 27 exscale, 38 graphicx, 63 indentfirst, 56 layout, 59 makeidx, 61 showidx, 62 balík maker, 6, 8 barevný text, 8 \begin, 23 \bibitem, 59 \Big, 38 \big, 38 \Bigg, 38 \bigg, 38 binomické koeficienty, 37 \bmod, 37 bold face, 54 \boldmath, 44 \boldsymbol, 45 \cal, 39 \caption, 29 \cdots, 39 center, 23 \chapter, 20 REJSTŘÍK 67 \choose, 37 \cite, 59 \cleardoublepage, 30 \clearpage, 30 \date, 21 dcolumn, 27 \ddots, 39 description, 23 displaymath, 33 \displaystyle, 42 dlouhé rovnice, 41 \documentclass, 7, 8 \dotfill, 57 dvojité řádkování, 56 dvousloupcová sazba, 9 elipsy, 16 \emph, 22, 54 empty, 11 encapsuled postscript, 63 \end, 23 enumerate, 23 eqnarray, 40 eqnarray*, 40 equation, 34 exponent, 36 exscale, 38 figure, 28, 29 \fill, 57 flushleft, 23 flushright, 23 fonty, 53 \footnote, 22 \footnotesize, 54 \frac, 37 \frenchspacing, 18 \frontmatter, 21 \fussy, 14 grafika, 8 graphicx, 63 grave, 17 textttheadings, 11 \hfill, 57 \hline, 26 horizontální mezera, 57 \hrulefill, 57 \hspace, 57 \Huge, 54 \huge, 54 \hyphenation, 14 \include, 11, 12 \includegraphics, 64 \includeonly, 12 \indent, 56 indentfirst, 56 index, 36 \index, 61 \input, 12 \int, 37 integrál, 37 italic, 54 \item, 23 itemize, 23 jednostranná sazba, 9 jednotky, 57, 58 Knuth, Donald E., 1 komentáře, 6 kurzíva, 54 kódování fontů, 10 křížové odkazy, 21 \label, 21, 34 Lamport, Leslie, 1 \LARGE, 54 \Large, 54 \large, 54 LATEX2ε, 1 LATEX 2.09, 1 LATEX3, 1, 4 layout, 59 layout, 59 \ldots, 16, 39 68 REJSTŘÍK \left, 38 ligatury, 16 \limits, 38 \linebreak, 14 \linespread, 56 \listoffigures, 29 \listoftables, 29 literatura, 59 \mainmatter, 21 makeidx, 61 makeindex, 61 \makeindex, 61 \maketitle, 21 matematické akcenty, 36 diagonální tečky, 39 funkce, 37 mezery, 39 mínus, 15 oddělovače, 38 tři tečky, 39 vertikální tečky, 39 matematika, 33 math, 33 \mathbb, 35 \mathbf, 44, 55 \mathcal, 55 \mathit, 55 \mathnormal, 55 \mathop, 37 \mathrm, 42, 55 \mathsf, 55 \mathtt, 55 matice, 40 \mbox, 15, 16 mezera, 4 Mittelbach, Frank, 1 modulo, 37 \multicolumn, 27 mínus, 15 Nadpis, 21 netečkované ı, 17 netečkované , 17 neviditelný znak, 4 na začátku řádky, 4 za příkazem, 5 \newcommand, 31, 32 \newenvironment, 32 \newline, 13 \newpage, 13 \newtheorem, 43 \noindent, 56 \nolimits, 38 \nolinebreak, 14 \nonfrenchspacing, 18 \nonumber, 41 \nopagebreak, 14 \normalsize, 54 oboustranná sazba, 9 odmocnina, 36 œ, 17 okraje, 59 option, 8 \overbrace, 36 overfull hbox, 14 \overleftarrow, 36 \overline, 36 \overrightarrow, 36 označení derivace, 36 vektoru, 36 page style empty, 11 headings, 11 plain, 11 \pagebreak, 14 \pageref, 21 \pagestyle, 11 \paragraph, 20 parametr, 5 parametry nepovinné, 6 \parindent, 56 \parskip, 56 REJSTŘÍK 69 \part, 20 paty, 11 plain, 11 plovoucí objekty, 28 \pmb, 45 \pmod..., 37 podtržení, 36 pomlčky, 15 PostScript, 63 preambule, 6 \printindex, 62 prostředí, 23 array, 40 center, 23 description, 23 displaymath, 33 enumerate, 23 eqnarray*, 40 eqnarray, 40 equation, 34 figure, 28, 29 flushleft, 23 flushright, 23 itemize, 23 math, 33 quotation, 24 quote, 24 table, 28, 29 tabular, 26 thebibliography, 59 verbatim, 25 verse, 24 \providecommand, 32 písmo, 53 bezserifové, 54 běžné, 54 kapitálky, 54 kurzíva, 54 normální, 54 polotučné, 54 skloněné, 54 střední, 54 velikost, 53, 54 vzpřímené, 54 zvýrazněné, 54 příkaz, 5 \!, 39 \(, 33 \), 33 \,, 16, 34, 39 \-, 14 \@, 18 \[, 33 \\, 13, 23, 24, 26, 58 \\*, 13 \], 33 \addtolength, 59 \and, 21 \appendix, 20 \atop, 37 \author, 21 \authors, 21 \backmatter, 21 \begin, 23 \bibitem, 59 \Big, 38 \big, 38 \Bigg, 38 \bigg, 38 \bmod, 37 \boldmath, 44 \boldsymbol, 45 \cal, 39 \caption, 29 \cdots, 39 \chapter, 20 \choose, 37 \cite, 59 \cleardoublepage, 30 \clearpage, 30 \date, 21 \ddots, 39 \displaystyle, 42 \documentclass, 7, 8 \dotfill, 57 \emph, 22, 54 \end, 23 \fill, 57 70 REJSTŘÍK \footnote, 22 \footnotesize, 54 \frac, 37 \frenchspacing, 18 \frontmatter, 21 \fussy, 14 \hfill, 57 \hline, 26 \hrulefill, 57 \hspace, 57 \Huge, 54 \huge, 54 \hyphenation, 14 \include, 11, 12 \includegraphics, 64 \includeonly, 12 \indent, 56 \index, 61 \input, 12 \int, 37 \item, 23 \label, 21, 34 \LARGE, 54 \Large, 54 \large, 54 \ldots, 16, 39 \left, 38 \limits, 38 \linebreak, 14 \linespread, 56 \listoffigures, 29 \listoftables, 29 \mainmatter, 21 \makeindex, 61 \maketitle, 21 \mathbb, 35 \mathbf, 44, 55 \mathcal, 55 \mathit, 55 \mathnormal, 55 \mathop, 37 \mathrm, 42, 55 \mathsf, 55 \mathtt, 55 \mbox, 15, 16 \multicolumn, 27 \newcommand, 31, 32 \newenvironment, 32 \newline, 13 \newpage, 13 \newtheorem, 43 \noindent, 56 \nolimits, 38 \nolinebreak, 14 \nonfrenchspacing, 18 \nonumber, 41 \nopagebreak, 14 \normalsize, 54 \overbrace, 36 \overleftarrow, 36 \overline, 36 \overrightarrow, 36 \pagebreak, 14 \pageref, 21 \pagestyle, 11 \paragraph, 20 \parindent, 56 \parskip, 56 \part, 20 \pmb, 45 \pmod..., 37 \printindex, 62 \providecommand, 32 \qquad, 34, 39 \quad, 34, 39 \ref, 21, 34 \renewcommand, 32 \renewenvironment, 32 \right, 38 \right., 38 \scriptscriptstyle, 42 \scriptsize, 54 \scriptstyle, 42 \section, 20 \setlength, 56, 59 \sloppy, 14 \small, 54 \sqrt, 36 REJSTŘÍK 71 \stackrel, 39 \stretch, 57 \subparagraph, 20 \subsection, 20 \subsubsection, 20 \sum, 37 \tableofcontents, 20 \textbf, 54 \textit, 54 \textmd, 54 \textnormal, 54 \textrm, 54 \textsc, 54 \textsf, 54 \textsl, 54 \textstyle, 42 \texttt, 54 \textup, 54 \thispagestyle, 11 \tiny, 54 \title, 21 \underbrace, 36 \underline, 36 \usepackage, 8 \uv, 19 \vdots, 39 \vec, 36 \verb, 25, 26 \vlna, 18 \vspace, 58 \widehat, 36 \widetilde, 36 půlčtverčíková pomlčka, 15 \qquad, 34, 39 \quad, 34, 39 quotation, 24 quote, 24 \ref, 21, 34 rejstřík, 61 \renewcommand, 32 \renewenvironment, 32 rezervované znaky, 4 \right, 38 \right., 38 roman, 54 rozměr papíru, 59 rozměry, 57 sans serif, 54 sazba na praporek, 23 Scandinávská písmena, 17 \scriptscriptstyle, 42 \scriptsize, 54 \scriptstyle, 42 \section, 20 \setlength, 56, 59 showidx, 62 skupiny, 55 slanted, 54 slitky, 16 \sloppy, 14 složené závorky, 55 \small, 54 small caps, 54 specifikace umístění, 29 spojovník, 15 \sqrt, 36 \stackrel, 39 \stretch, 57 struktura dokumentu, 6 stránkové styly, 11 stříška nad proměnnou„ 36 \subparagraph, 20 \subsection, 20 \subsubsection, 20 \sum, 37 suma, 37 systémy rovnic, 40 table, 28, 29 \tableofcontents, 20 tabular, 26 tabulka, 26 \textbf, 54 \textit, 54 \textmd, 54 72 REJSTŘÍK \textnormal, 54 \textrm, 54 \textsc, 54 \textsf, 54 \textsl, 54 \textstyle, 42 \texttt, 54 \textup, 54 tečka, 16 thebibliography, 59 \thispagestyle, 11 \tiny, 54 title, 9 \title, 21 tučné symboly, 44 typewriter, 54 třída slide, 8 třída article, 8 třída book, 8 třída report, 8 umlaut, 17 \underbrace, 36 underfull hbox, 14 \underline, 36 upright, 54 \usepackage, 8 \uv, 19 uvozovky, 15 \vdots, 39 \vec, 36 vektory, 36 velikost stránky, 9 velikost stránky executive, 9 velikost matematického fontu, 41 velikost písma dokumentu, 9 velikost stránky A4, 9 velikost stránky A5, 9 velikost stránky B5, 9 velikost stránky legal, 9 velikost stránky letter, 9 \verb, 25, 26 verbatim, 25 verse, 24 vertikální mezera, 58 \vlna, 18 vlnka ( ~), 18 vlnovka nad proměnnou„ 36 \vspace, 58 vstupní soubor, 7 vzhled stránky, 59 vzorce, 33 výhody a nevýhody LATEXu, 3 \widehat, 36 \widetilde, 36 WYSIWIG, 2 WYSIWYG, 2, 3 zarovnávání desetinných čísel, 27 zdvojené písmo, 35 zlomek, 37 zpětné lomítko, 5 zvláštní znaky, 17 záhlaví, 11 základní velikost písma, 9 závorky, 38 hranaté, 6 složené, 5 čtverčíková pomlčka, 15 čárka, 16 řecká abeceda, 35 řádkování, 56 řádkové zlomy, 13 REJSTŘÍK 73