Bažákův průvodce publikačním systémem LATEX Stanislav Hledík Verze 2010/3/26/a
Abstrakt Toto je výsledek zpracování LATEXového zdrojového textu bazak.tex volně inspirovaného dokumentem A Sample Document původního autora formátu LATEX Leslieho Lamporta. Porovnáním vysázeného výstupu se zdrojovým textem umožňuje začít s přípravou vlastních jednoduchých LATEXových dokumentů.
Obsah 1 Úvod
2
2 Text a jeho značkování 2.1 Hladký text . . . . . . . . . . . . . . . . . . 2.2 Uvozovky, pomlčky a další drobná havěť . . 2.3 Zdůrazňování a další typografické drobnosti 2.4 Příkazové znaky . . . . . . . . . . . . . . . 2.5 Speciální znaky a cizí diakritika . . . . . . . 2.6 Ligatury (slitky) . . . . . . . . . . . . . . . 2.7 Některá prostředí . . . . . . . . . . . . . . . 2.8 Jednoduchá čárová grafika s LATEXem . . . 2.9 Vkládání externí grafiky . . . . . . . . . . . 2.10 Plovoucí objekty . . . . . . . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
2 2 3 4 5 5 6 7 8 8 9
3 Žádný strach z matematiky! 3.1 Vzorce a formule . . . . . . . . . . . . . . . . . 3.2 Matematická bižuterie . . . . . . . . . . . . . . 3.3 Co se ve vzorcích sází antikvou . . . . . . . . . 3.4 Kdy LATEX potřebuje lidskou intervenci . . . . 3.5 Vybraná specifika „českojazyčnéÿmatematiky . 3.6 Lámání dlouhých formulí a víceřádkové formule 3.7 Axiomy, definice, věty, lemmata a důsledky . . 3.8 Rozšíření standardní LATEXové matematiky . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
10 10 11 11 13 13 14 15 15
. . . . . . . . . .
4 Jazykové přizpůsobení
15
5 Závěrečná poznámka
16
A Kdo jest „bažákÿ
19
B Výpis zdrojového textu
19
C Výpis bibliografické databáze
40
1
1
Úvod
LATEX je velmi rozsáhlá knihovna maker napsaná Leslie Lamportem rozšiřující sázecí program TEX Dona E. Knutha směrem ke kontextovému (logickému) značkování. LATEX dovoluje popsat strukturu dokumentu pomocí značkování tak, aby uživatel nebyl nucen přemýšlet o výsledném vzhledu. S použitím dokumentních tříd a přídavných balíků může být tentýž dokument vysázen (zformátován) v mnoha různých podobách [1]. Není zde možné demonstrovat všechny jeho rysy a dodatečná rozšíření. Cíl, jenž si klade tento článek, je dostatečně vybavit čtenáře pro „rychlý startÿ umožňující psát vlastní nepříliš komplikované dokumenty metodou komparace zdrojového a zformátovaného textu. Existuje bohatý výběr literatury, v níž se lze poučit podrobněji. Za zmínku stojí zejména česky psané manuály LATEXu [2, 3] a anglicky psané podrobné průvodce LATEXem [4, 5, 6, 7]. Zájemce u hlubší studium TEXu a jeho možností může sáhnout po knihách [8, 9, 10, 11, 12]. V tomto úvodu je už pár LATEXových příkazů, ale nejsou nijak okomentovány. Podrobné komentáře začínají až od Subsekce 2.1. Odkazy na literaturu, jejíž položky jsou uloženy v souboru bazak.bib, byly pro LATEX vytvořeny pomocným programem BibTEX (viz např. Dodatek B v knize [3] a v tomto článku). To umožňuje velmi flexibilní vytváření referencí. Avšak dosti již řečí. Vzhůru do sedel!
2
Text a jeho značkování
Soubory určené ke zpracování LATEXem obsahují jednak vstupní text, jednak příkazy programovacího jazyka TEX různé úrovně (značkování). LATEX kromě jiného definuje množství uživatelských příkazů vysoké úrovně pomocí základních příkazů TEXu, tzv. primitiv. Aby TEX při čtení dokumentu rozpoznal, co že je náš text a co je příkaz, jsou příkazy uvozeny speciálním znakem: zpětným lomítkem (anglicky backslash). Hlavním úkolem TEXu je podle instrukcí naprogramovaných v dokumentní třídě a dodatkových balíčcích vytvořit tištěný výstup, tj. rozdělit text do stejně dlouhých řádků, řádky formátovat do odstavců a zalamovat text do očíslovaných stránek. Rozložení samotného vstupního textu může být úplně odlišné.
2.1
Hladký text
Konce slov a vět jsou určeny mezerami. Je lhostejné, kolik mezer ve zdrojovém textu napíšete; jedna je stejně dobrá jako sto. Jeden konec řádku funguje stejně jako mezera nebo více mezer. To neznamená, že v místě konce řádku zdrojáku končí řádek vysázeného textu; řádkový zlom sazby je něco zcela jiného. Jedna nebo více prázdných řádek vyznačuje konec odstavce. Jak je odstavec vysázen (velikost odstavcové zarážky, vertikální separace), je dáno dokumentní třídou, dodatečnými balíčky nebo uživatelským nastavením v preambuli. Jelikož libovolný počet po sobě následujících mezer je zpracován jako jediná mezera, formátování zdrojového textu je lhostejné pro TEX (LATEX), ale není lhostejné pro vás. Je rozumné zachovávat štábní kulturu (jakkoli to zavání buzerací), abyste se po nějaké době ve zdrojáku vlastního dokumentu snadno vyznali a mohli jej lehce modifikovat.
2
2.2
Uvozovky, pomlčky a další drobná havěť
Existuje množství znaků, které nejsou dostupné z klávesnice, avšak v knižní a časopisecké sazbě jsou nezbytné. Jednou z obvyklých chyb je psaní levých i pravých uvozovek pomocí jediného znaku ", což je špatně a dopadne ”takto.” Píšete-li anglický text, použijte ‘‘this’’ (vysází “this”), nebo v jednoduché formě ‘this’ (vysází ‘this’). Všimněte si rozdílu! Anglický styl uvozování má podle podobnosti s číslicemi název ‘6699’ nebo ‘69’.1 Píšete-li česky, použijte pro uvozování \clqq toto\crqq nebo \uv{toto} (vysází „totoÿ) nebo v jednoduché formě \glq toto\grq (vysází toto‘). Opět si všimněte rozdílu! Příkazy ’ pro české uvozování (říká se mu podle tvaru uvozovek „9966ÿ nebo „96ÿ) jsou dostupné pouze je-li načten balík babel. Následuje-li po pravých uvozovkách \grq nebo \crqq mezera, nezapomeňte psát \grq{} nebo \crqq{} , aby TEX mezeru za příkazem „nepožralÿjako na předcházejícím řádku před slovem „ jakoÿ. Následuje-li po \grq či \crqq nepísmenný znak (čárka, tečka, středník, jako na konci předchozí věty), funguje jako ukončovač příkazu místo mezery a problém nevznikne. Totéž se týká např. příkazů pro generování loga TEX, LATEX a podobně. Dalším velmi rozšířeným nešvarem je nesprávné používání „pomlček.ÿ Existují jich tři druhy: 1. Spojovník (také rozdělovník, divis, anglicky hyphen) slouží: • ke spojování dvou slov, názvů nebo jmen do jednoho celku, např. Filozoficko-přírodovědecká fakulta SU v Opavě, Opava-Kateřinky, β-rozpad, Tullio Levi-Cività (jedná se o jediného člověka), a okolo spojovníku nejsou mezery; • jako rozdělovník. Jelikož TEX dělí při řádkovém zlomu automaticky podle načtené tabulky dělení slov pro daný jazyk, není třeba se o to starat (no dobře, skoro se není třeba starat). 2. Pomlčka na půlčtverčík (anglicky N-dash) se používá: • při uvádění rozsahu čísel, např. „Kapitoly 12–15ÿ (v tom případě okolo nejsou mezery), • nebo v evropské kontinentální typografii jako – zvláště v beletrii hojně používané – interpunkční znaménko (zde se okolo použijí mezery). Protože pomlčka na půlčtverčík se nesmí vyskytnout na začátku řádku, neuděláte chybu, když před ni dáte – jako právě zde – nezlomitelnou mezeru.2 Podívejte se do zdrojáku, jak pomlčku na půlčtverčík vytvořit – je to tak snadné díky ligaturnímu mechanismu TEXu! • při seskupování jmen dvou nebo více osob do ustáleného pojmenování: Bolzanova–Weierstraßova věta, Schwarzschildův–de Sitterův prostoročas, Kerrův–Newmanův–de Sitterův prostoročas. (Srovnej Levi-Cività v bodě 1.) 1 Zdání
jiných souvislostí jsou klamná. zdrojáku zjistíte, že nezlomitelná mezera (znak vlnka, tilda, ~) je vložena za každou neslabičnou předložku jako i, I, k, K, o, O, s, S, t, T, u, U, v, V, z, Z, A, které podle pravidel české typografie nesmí být na konci řádku. Aby se tím autor nemusel zdržovat, existují programy pro automatické doplňování vlnky. V angličtině se „nevlnkuje.ÿ 2 Prohlídkou
3
Často se místo pomlčky na půlčtverčík chybně používá divis popsaný v bodě 1, což je ošklivé, avšak laickými typografy s oblibou používané. 3. Pomlčka na čtverčík (anglicky M-dash) se používá: • jako interpunkční znak — podobně jako pomlčka na půlčtverčík (viz bod 2) v kontinentální typografii s mezerami okolo, opět by před ni měla přijít nezlomitelná mezera; • jako interpunkční znak—ale v anglosaské typografii bez mezer okolo. Díky ligaturnímu mechanismu je opět velmi snadné psát pomlčky na čtverčík. Čtvrtým typem je matematické minus – viz Sekce 3 na straně 10. Specialitou anglosaské typografie je, že mezery za větami jsou větší než mezislovní mezery. Proto je třeba TEXu explicitně sdělit, že např. ve fragmentu “Let me introduce you Dr. Jones” za „Dr.ÿ nekončí věta. Toho dosáhneme vložením příkazu \ (zpětné lomítko následované mezerou), který vynutí mezislovní mezeru. Ještě lepším řešením je Dr.~Jones, kdy je tato mezera navíc nezlomitelná.3 Vyskytne-li se naopak tečka za velkým písmenem, pak se bere jako konec zkratky a ne věty, takže konec věty je nutno explicitně vynutit: This project is sponsored by NASA\@. Its purpose is ... V českém dokumentu (používáte-li balík babel) nebo máte-li v preambuli deklarováno \frenchspacing, tato jemná dolaďování nemusíte provádět.
2.3
Zdůrazňování a další typografické drobnosti
Standardním příkazem pro zdůraznění textu je v LATEXu \emph, jehož argument – alespoň v třídě article – bude vysazen kurzívou. To má svůj důvod: kurzíva se dostatečně odlišuje od vzpřímeného písma, ale přitom zachovává stejnou průměrnou šeď. Z toho důvodu je preferovaným způsobem vyznačování. Zároveň za konec vyznačení vloží tzv. kurzívní korekci, jež (selektivně podle sousedících znaků) zvětší mezeru zredukovanou příklonem kurzívního řezu; srovnej mezerování těchto dvou úryvků: Epitaf Ludwiga Boltzmanna Epitaf Ludwiga Boltzmanna Zdůrazňujeme-li v již zdůrazněném textu, zmíněný příkaz přepne zpět do vzpřímeného písma. Kurzívní korekce se vloží před zdůrazněný text: Číšník místo vína přinesl koňak značky Hennessy Číšník místo vína přinesl koňak značky Hennessy Dalšími způsoby vyznačování je použití tučného písma (příliš vystupuje z průměrné šedi textu, ale používá se), kapitálek (anglicky Small Caps), má vážný, slavnostní ráz a hodí se např. pro zvýraznění jmen, vyloženě ošklivé je podtržení – používejte jen je-li to nezbytně nutné. V byrokratické praxi se používá p r o s t r k á n í – to rovněž není příliš estetické, kromě toho není triviální napsat makro pro jeho realizaci (řešení viz [12]). 3 Díky
čemuž pan Jones nikdy nezanechá svůj titul osamocený na konci řádku.
4
Pomineme-li naprosté typografické úlety,4 z drobností bych zmínil výpustky (elipsy): používáme-li CSfonty, můžeme bez obav psát tři tečky za sebou; ligaturní mechanismus (viz Subsekce 2.6) se postará o jejich správný rozestup. . . Ale při použití nativního amerického formátu bazak dostaneme tento paskvil... Proto raději použijeme příkaz \ldots (funguje vždy). . . Další příklady použití různých typů pomlček, výpustků a uvozovek [13]: Zima 1942–1943 byla nejhorší – mnoho lidí nepřežilo. Zpívala si tra-la-la, ráda k tomu – poněkud neobratně – poskakovala. „Jeho jasnostÿ, ohlásil komoří. „. . . až na věky věkův. . . a nikdy jinakÿ Jaroslav vyhrkl: „Opravdu je taková, že neumí říci ne‘? ÿ ’ Jaroslava vyhrkla: „Opravdu je takový, že neumí říci »ne«? ÿ Nezkracujte „pravou délku úsečkyÿ následovně: „pr. d. úsečky;ÿ raději pište „pr. dél. úsečkyÿ nebo ještě lépe „pr. délka úsečky.ÿ (profesor K. Havlíček)
2.4
Příkazové znaky
Znaky # $ ˜ ˆ % { } mají v TEXu speciální význam. Pro jejich vytištění v textu je musíme „vyescapovatÿ – jak na to, zjistíte ve zdrojovém textu. Napsat je s anglickou klávesnicí není problém, horší je dostupnost takových znaků v neanglických národních klávesnicích, českou nevyjímaje. Uživatelé textového editoru GNU Emacs mohou např. použít nezávisle na systému českou klávesnici Czech-prog-2.
2.5
Speciální znaky a cizí diakritika
Znaky, které nejsou na klávesnici, se dají snadno napsat pomocí odpovídajících příkazů; namátkou \S dá §, \dag dá †, \ddag dá ‡, \P dá ¶, \copyright dá c \pounds dá $. Další viz např. [2, 3, 4, 5]. Kromě toho mohou být další
, speciální znaky v jiných fontech (např. Times, fonty ze Střešovické písmolijny, http://www.pismolijna.cz/). Chceme-li vysázet cizí slovo nebo jméno, lze použít např.:5 œ {\oe} ø {\o}
Œ {\OE} Ø {\O}
æ {\ae} l {\l}
Æ {\AE} L {\L}
˚ a {\aa} ß {\ss}
˚ A {\AA} SS {\SS}
¡ {!‘} ¿ {?‘}
Rovněž lze tisknout různá diakritická znaménka, jako `o ó ô ö ˜o ¯o o˙ ˘o ˇo ˝o o o o¸ o. o ˚ o (místo „oÿ lze použít jakékoli jiné písmeno). Před přidáním diakritiky ¯ nad „iÿ nebo „ jÿ je zapotřebí odstranit tečku: např. {\^i} by dalo ˆi; správně je {\^{\i}}, což dá kýžený znak ve jménu abbého Lemaˆıtrea. Jako cvičení vysázejte tyto krátké věty (upraveno podle [13]): 1. Lze je trajektem z Ölandu do ˚ Alandu? 4 Na vlastní oči jsem viděl výpravnou, na křídovém papíře tištěnou publikaci Opava 2000, která měla na přebalu v letopočtu místo nul vysázeny verzálky „Oÿ: Opava 2OOO. 5 Tento způsob se hodí pro citace nebo kratší úryvky; pro systematické psaní v daném jazyce je lepší použít příslušnou volbu balíku babel a klávesnici.
5
2. Maar die y ¨s is lekker. 3. Peut-ˆetre il préf`ere le café glacé. 4. Ich muß heißen Tee abkühlen. 5. Él`eves, réfusez vos le¸cons! 6. Jetez vos chaˆınes! 7. Nejmenší vnitřní jednotka TEXu je asi 53.63 ˚ A. 8. Rozumí Æschylus Œdipovi? Pokrýt všechny evropské jazyky (včetně islandštiny) mají v současné době odlaďované fonty Latin Modern (LM). Pro exotické jazyky jako hebrejština, arabština, japonština, korejština, čínština, sanskrt apod. existují speciální verze TEXu pro pravolevou sazbu a příslušné balíky a fonty.
2.6
Ligatury (slitky)
Některé písmové sady mají k dispozici tzv. ligatury neboli slitky – určité kombinace písmen jsou z estetických a historických důvodů tištěny jako jediný speciální symbol – ligatura. Typicky se jedná o kombinace ff, fi, fl, ffi a ffl. V následujícím zvětšení je horní řádek vysázen s užitím ligatur (implicitní chování TEXu), v druhém jsou ligatury potlačeny pomocí vložení prázdné skupiny:
ff fi fl ffi ffl ff fi fl ffi ffl Existují výjimky, kdy je ligaturu lépe potlačit: například u složeniny „šéflékařÿ je lepší sázet „šéflékař,ÿ z anglických slov např. místo “shelfful” je lepší “shelfful.” Mechanismus na tvoření ligatur (popis implementace je např. v [11]) se uplatňuje i při sazbě různých typů pomlček popsaných v Sekci 2.2 a umožňuje sazbu kratších úryvků např. v ruštině pomocí (anglické) transliterace (ukázka převzata z [14]): Rassmotrim teper~ vopros o tom, naskol~ko odnoznaqno opredeleny potencialy pol. Pri tom sleduet uqest~, qto pole harakterizuets tem destviem, kotoroe ono okazyvaet na dvienie nahodwihs v nem zardov. Pro ty, co už neznají azbuku: Prozkoumejme nyní otázku, do jaké míry jsou potenciály pole určeny jednoznačně. Při tom je třeba vzít v úvahu, že pole je charakterizováno působením na pohyb nábojů, jenž se v něm nacházejí. Další TEXovou specialitou založenou na ligaturním mechanismu je například (viz http://math.feld.cvut.cz/olsak/) Ol¹ákvo
labikáøvé
6
písmo.
2.7
Některá prostředí
V Subsekcích 2.2 a 2.3 jsme poznali prostředí quote pro zúženou sazbu (citování textu), na začátku článku prostředí abstract, v Subsekci 2.2 prostředí enumerate a itemize pro číslované a nečíslované výčty, v Subsekci 2.5 prostředí center pro vycentrování svého obsahu a tabular pro tvorbu tabulek; samotný dokument je uzavřen v prostředí document. Prostředí existuje velmi mnoho – viz např. [2, 4, 3]. Zmiňme ještě alespoň pár, nejprve quotation, alternativu ke quote. Rozdíl obou prostředí spočívá v tom, že quote mezi jeho odstavce vkládá vertikální mezeru, ale odstavcová zarážka je nulová. Prostředí quotation, v němž je vysazen tento text, používá odstavcové zarážky a nevkládá mezi odstavce vertikální mezery. Příbuzné je ještě prostředí verse pro sazbu poezie (báseň Chci to slyšet převzata ze sbírky [15]): Na dně každé písně, i té nejsmutnější, na dně každé sklénky něco tiše cinká. Někdy víc a jindy jenom málo. Chci to slyšet. Bůhví co mne nutí, ale musím čekat na cinknutí, jinak by se moje srdce bálo.
Prostředí thebibliography je určeno pro sazbu seznamu literatury. Při použití separátní bibliografické databáze, jako v tomto dokumentu, je soubor s tímto prostředím automaticky generován programem BibTEX a načítán v místě, kde se objeví příkaz \bibliography. Výsledkem je seznam literatury. Pro doplnění uveďme třetí výčtové prostředí description, jež je demonstrováno na následujícím popisu hlavních distribucí Linuxu (upraveno podle výstupu kultovního linuxového programu fortune): Blondian Jádra třídy public – nepříliš bezpečná a stabilní, proto se často přeinstalovávají, takže dlouhodobější využívání systému nepřichází v úvahu. Brunetware Jádra třídy romantic – stabilní a jedny z nejbezpečnějších. Red Head Jádra třídy sadistic a odvozená – velmi variabilní, záleží na administrátorovi, k jakému použití budou nakonfigurována, proto i bezpečnost je relativní. Free Black Jádra třídy free – slouží především jako školní nebo firemní servery, takže získat konto není žádný problém. Prostředí lze kombinovat a vzájemně do sebe vnořovat. Experimentujte, experimentujte, experimentujte!
7
2.8
Jednoduchá čárová grafika s LATEXem
Systém LATEX obsahuje speciální font, jehož „znakyÿ jsou tvořeny čárami a šipkami různých sklonů (se směrnicemi p/q, kde p, q jsou malá celá čísla), kružnicemi a kruhy vybraných diskrétních poloměrů, a elementy, z nichž lze vytvořit Bézierovy křivky. Tyto „znakyÿ jsou pomocí uživatelských příkazů sesazovány k sobě, aby vytvořily požadovaný grafický efekt. Není to žádný zázrak, možnosti jsou značně omezené, ale příležitostně se tato možnost může hodit. Výhodou je, že není potřeba žádný externí kreslicí program; vše je v LATEXovém zdrojáku. t t a
kořeny p3
2.9
t
t
t
t
t
b t t
kořeny p4
Vkládání externí grafiky
S interní LATEXovou grafikou vystačíme jen pro jednoduché ilustrace, třeba takové, jako v Subsekci 2.8. Pro vkládání grafiky vytvořené externími programy slouží balík graphicx. Důležité je, že vkládaná grafika musí být ve formátu Encapsulated PostScript (EPS, zapouzdřený PostScript, extenze .eps, .ps). Jedná se o grafický jazyk PostScript, který má – na rozdíl od „normálníhoÿ PostScriptu – pouze jedinou stránku, a taky jsou v něm zakázány jisté konstrukce programovacího jazyka PostScript. To nás nemusí nijak trápit, protože téměř každý rozumný grafický program umí do EPS exportovat. PostScript je nativně vektorový jazyk, ale umí pojmout i bitmapový obrázek. Takže pokud děláte grafiku třeba v programu Mathematica, gnuplot, xfig, Ipe, rovnou ji exportujte do EPS. Bude vektorová, takže ji lze libovolně škálovat. Pro konverzi bitmap se hodí např. Gimp. Při ukládacím dialogu zatrhněte, že chcete Encapsulated PostScript a naopak vypněte tvorbu náhledu (preview) – jen zbytečně zvětšuje velikost obrázku a LATEXu je stejně k ničemu. Pak už můžeme grafiku nejen vložit, ale i škálovat, rotovat a stranově deformovat pomocí příkazu \includegraphics definovaném balíkem graphicx.
FAR
80
0
-80 0
5
10
15
ωAt
20
Ukázka vektorové grafiky vytvořené programem gnuplot a exportované do EPS.
8
Bitmapa konvertovaná do EPS programem Gimp (s laskavým svolením autora).
2.10
Plovoucí objekty
Grafika a tabulky se nemohou „zlomitÿ přes stránku, takže je nemůžeme umístit na zcela libovolné místo. V odborných publikacích se proto obrázek nebo tabulka opatří očíslovaným popisem (anglicky figure/table caption) a nechá se spolu s ním „vyplavatÿ na horní nebo dolní okraj stránky, popřípadě, jsou-li veliké, se umístí na samostatnou stránku. V textu se pak na ně odkáže pomocí čísla. Tento postup implementuje LATEX skrze prostředí figure a table. Může v nich být umístěno cokoli, nejen grafika nebo tabulka, podstatné je to, že materiál umístěný do takového prostředí „plaveÿ na vrchol nebo spodek stránky. Typicky se do nich umisťuje obrázek (obrázky) pomocí příkazu \includegraphics, tabulka pomocí prostředí tabular a příslušná popiska pomocí příkazu \caption opatřená značkou \label. Obě prostředí se liší pouze tím, jaké slovo generují na začátku popisu („Obrázekÿ nebo „Tabulkaÿ). Automataticky aktualizovaný
FAR
80
0
-80 0
5
10
15
ωAt
20
Obrázek 1: Ukázka dvou obrázků umístěných v jednom plovoucím prostředí a opatřených společnou popiskou. Veškerý tento materiál „plaveÿ naspod stránky – viz nepovinný argument prostředí figure. Deformace levého obrázku byla způsobena úmyslně a je popsána komentářem ve zdrojovém textu.
9
číselný odkaz na obrázek nebo tabulku v textu vytvoříme pomocí referenčního příkazu \ref. V jednom plovoucím prostředí může být i více obrázků a popisů. Umisťování plovoucích objektů se řídí určitými pravidly; hlavní zásadou je, aby se plovoucí objekt objevil v sekci, kde se na něj poprvé odkazuje, což není snadné dodržet. Příklad je na Obrázku 1 na straně 9. Další možností je používat obrázky obtékané textem. V odborných publikacích se tohoto způsobu příliš neužívá, ale jinak je dost častý. Zde se jím nebudeme zabývat; LATEX jej podporuje skrze balíky picins nebo wrapfig. Příklad lze nalézt v Matematické pohádce (text šířený na přednášce), v němž se balík picins používá k umisťování iniciál na začátky odstavců.
3
Žádný strach z matematiky!
Sazba matematiky byla nákladnou záležitostí, protože představovala mimořádné pracovní zatížení; z toho důvodu zvolil Don Knuth jako přepínač matematického/textového režimu symbol $. S TEXem resp. LATEXem je sazba matematiky relativně snadná a výsledek bezkonkurenční. Nebudeme zde suplovat standardní LATEXové manuály – více či méně podrobný výklad matematické sazby lze nalézt v libovolném z nich. Spíše ukážeme, jak správně sázet některé matematické prvky typické pro fyziku. Připomeňme jen, že matematický mód TEXu se řídí specifickými pravidly a je (většinou) jedno, kolik mezer (a zda vůbec nějaké) napíšeme. Způsob zápisu je tak velmi variabilní a je věcí osobního stylu, jak přehledně budou matematické zápisy vypadat.
3.1
Vzorce a formule
Matematické vzorce mohou být buď textové (inline math), jako například (a + b)2 = a2 + 2ab + b2 , nebo vysazené (display math), jako následující Einsteinovy rovnice 8πG 1 Rµν − Rgµν + Λgµν = 4 Tµν . 2 c Chceme-li se na vysazenou formuli odvolávat, použijeme prostředí equation a přidělíme jí symbolické jméno pomocí příkazu \label: Γ(x) ≡ lim
n−1 Y
n→∞
ν=0
n! nx−1 = x+ν
Z
∞
e−t tx−1 dx .
(1)
0
Definice integrálu v (1) je platná pouze pro x > 0. Možnosti sazby matematiky jsou velice rozsáhlé, takže se omezíme na několik příkladů. K systematickému studiu použijte [2, 3, 4, 5]. Soustava lineárních algebraických rovnic:
A=
a11 a21 .. .
a12 a22 .. .
··· ···
aM 1
aM 2
···
a1N a2N .. .
A·x=b ,
aM N
x=
(2) x1 x2 .. . xN
10
,
b=
b1 b2 .. . bM
(3)
Na N neznámých x1 , . . . , xN je naloženo M rovnic. Koeficienty aij a pravá strana bi jsou známá čísla. Funkce h(t) a H(f ) jsou dvě různé reprezentace stejné závislosti. Jsou vázány přímou a inverzní Fourierovou transformací: Z ∞ Z ∞ FT H(f )e−2πif t df . (4) h(t)e2πif t dt ⇐⇒ h(t) = H(f ) = −∞
−∞
3.2
Matematická bižuterie
Matematická sazba hýří indexy, čárkami, proužky a vlnkami po straně, nad, pod a všude možně. Střízlivé užívání takových ozdob je nezbytností a čtenář nalezne poučení v libovolném manuálu, třeba [3]. Na tomto místě pouze demonstrujeme některé chyby. První z nich se podaří udělat snad jen jednou, protože TEX na ni upozorní. Jedná se např. o dvojitý horní index, $x^n^2$, kdy vyhlásí chybu Double superscript. Ze zápisu totiž není jasná priorita umocňování: zda se jedná 2 2 o (xn ) nebo o x(n ) . Prioritu musíme vyznačit závorkami, kód ${x^n}^2$ dá 2 xn 2 , kód $x^{n^2}$ pak xn . Ačkoli TEX jasně oba případy jasně rozliší umístěním indexů, je vhodné kulaté závorky vyznačující prioritu umocňování ponechat pro čtenářovu lepší orientaci. Občasnou chybou, již TEX ponechá nepovšimnutou, je chybné pořadí dolního indexu a proužku nebo vlnky nad znakem. Chceme-li například vysázet ξ¯m , použijeme kód $\bar{\xi}_m$. Kdybychom do argumentu příkazu \bar zahrnuli index, $\bar{\xi_m}$, proužek se vycentruje přes ξm a vzhledem ke znaku ξ bude posunut příliš doprava: ξ¯m . Nadužívání matematické bižuterie však, podle autorova skromného mínění, není vždy ve prospěch čitelnosti, spíše se asi jedná o jistou formu exhibicionismu projevující se zejména u některých matematiků. Jako příklad uveďme x2i třeba A˜j 2n . Jak vidíte, ani LATEX se při sazbě takové nevkusnosti neubránil 0 n0 ,m0
zvětšení řádkování. Jistě, mohli bychom snadno přinutit LATEX ponechat řádkování netknuté, ale je otázkou, jestli je ošklivější rozhozená řádková osnova nebo indexy zasahující do sousedních řádků.
3.3
Co se ve vzorcích sází antikvou
V matematickém módu sází TEX písmena a až z a A až Z implicitně matematickou kurzívou – tedy jako identifikátory a až z a A až Z. Prakticky všechno, co není identifikátor proměnné, by se mělo sázet základním řezem písma – antikvou –, včetně číslic, závorek, operátorů, atd. Tato Subsekce je z velké části inspirována Yetiho typografickým bestiářem [16]. Typicky se jedná o zkratky funkcí a operátorů, pro které LATEX poskytuje makra typu \sin, \cos, \log, \lim ap. Někdy je třeba je předefinovat podle příkladu na konci Subsekce 3.5. (Definujeme-li nový příkaz místo redefinování již existujícího, použijeme \newcommand místo \renewcommand; viz též příkaz \providecommand popsaný v komentáři v preambuli.) Antikva se zásadně používá pro jednotky, např. hodnota gravitační konstanty je 0.6672×10−7 cm3 g−1 s−2 , nikoli 0.6672×10−7 cm3 g −1 s−2 . Dále třeba f = 110 Hz, p = 101125 kPa. V tomto duchu ale za jednotku považujeme také
11
To opravdu nevypadá hezky. . .
třeba hmotnost Slunce, takže bychom ji měli zapisovat M místo M . Nehezky vypadá zkratka pro elektronvolt, protože neexistuje kerning mezi minuskou „eÿ a verzálkou „Vÿ: E = 13.6 eV. Tady je vhodné obě písmena přitáhnout k sobě pomocí záporného kernu: $E=13.6\,\mathrm{e\kern-.10em V}$ dá E = 13.6 eV. Pro praktické použití bychom si jistě napsali makro, třeba \newcommand{\eV}[1][]{\ensuremath{\mathrm{#1e\kern-.10em V}}}. Matematická kurzíva by se měla použít jen pro proměnné; jakákoliv speciální označení by měla být antikvou, aby se dalo na srozuměnou, že se bavíme např. o jedinečném Eulerově čísle e = 2.718281828 . . ., nikoli o nějaké obyčejné proměnné e. Antikvou se sází „iÿ v roli imaginární jednotky: z = x + iy. Pochopitelně, při častém výskytu si napíšeme makro. Antikva se používá pro značky nematematických objektů, zejména chemických prvků a elementárních částic: CH4 + 2O2 −→ 2H2 O + CO2 , nebo třeba rovnice pro β-rozpad n −→ p+ + e− + ν¯e . V rovnici pro β-rozpad se projevuje nedostatek Computer Modern fontů: absence svislého řezu řeckých písmen. Řešením je použití fontu Times pro text a komerční distribuce matematického Timesu zvané MathTime a MathTime Plus za asistence balíku mathtime [17]. Jakákoli slova a zkratky, která vůbec neoznačují objekty, ze rovněž sázejí antikvou: 1 pro i = k δik = 0 pro i 6= k V české matematické typografii (viz též Subsekci 3.5) se antikvou sází např. diferenciál, jehož vhodnou definici lze vidět před následujícím vzorcem ve zdrojovém textu: −1 2M 2M dr2 + r2 (dφ2 + sin2 θ dφ2 ). dt2 + 1 − ds2 = − 1 − r r
(5)
Kromě uvedených případů se antikvou sází také „deskriptivníÿ indexy, tj. indexy, které upřesňují název proměnné, k níž se váží, na rozdíl od proměnných indexů, které nabývají hodnot z jisté množiny, a které se sází obvyklou matematickou kurzívou. Příklad je označení poslední síly na pravé straně soustavy rovnic (8) – horní index „Magÿ označuje, že se jedná o Magnusovu sílu a sází se antikvou, dolní index je komponenta a sází se kurzívou. Obecné pravidlo zní [16]: Každý vícepísmenný symbol, který nevznikl kompozicí jednopísmenných symbolů, se sází antikvou. Příkladem budiž tzv. Reynoldsovo číslo Re ≡ vd/ν používané v hydro- a aerodynamice.
12
3.4
Kdy LATEX potřebuje lidskou intervenci
Typickou doménou ručního dolaďování matematické sazby je úprava mezerování. Přestože TEX dokonale ovládá pravidla pro sazbu matematického textu, nelze očekávat, že pochopí jeho matematický význam. Arzenál matematických mezer je popsán v každém manuálu [3], zde se omezíme na několik příkladů. Srovnejte například Γ1 + ∆2 a Γ1 + ∆2 , kdy ve druhém případě byla vložena záporná malá mezera. Podobně násobné integrály je třeba pomocí záporných malých mezer přitáhnout k sobě. Srovnej Z Z ZZ f (x, y) dx dy a f (x, y) dx dy. ∂Ω
∂Ω
Někdy je zase třeba mezeru zvětšit, typický příklad je √ √ 2x a 2 x, kdy v prvním případě je x příliš „nalepenoÿ k odmocnině a je vhodné je oddělit √ malou mezerou \,. Při odmocňování logaritmu log x je, aspoň u fontů Computer Modern, příliš malá mezera mezi znakem odmocniny a logaritmu. Výsledek √ bude vypadat lépe, když ji zvětšíme pomocí malé mezery \,: log x. Základní pravidlo intervenování do matematické sazby: méně je někdy více, zvláště když se textem po vás bude zabývat ještě někdo další, třeba editor sborníku. Vždy se totiž snazší a rychlejší něco do vzorce připsat než umazávat. Nechte černou práci na TEXu, dělá ji dobře, a pomozte mu jen tehdy, je-li to opravdu třeba. Dobrým průvodcem může být např. Yetiho typografický bestiář [16].
3.5
Vybraná specifika „českojazyčnéÿ matematiky
Sazba matematiky v českém (a většinou i evropském) prostředí vykazuje některé odlišnosti od standardu American Mathematical Society, který je (v podstatě) implementován v algoritmech TEXu. Zmiňme nejjednodušší z nich; pro podrobnější poučení viz [18]. Jedním z problémů je používání desetinné čárky místo desetinné tečky. Čárka je v matematickém režimu TEXem chápána jako oddělovač v seznamu, takže je za ní automaticky sázena mezera, což je nežádoucí; srovnej π ≈ 3.14159265358 s π ≈ 3, 14159265358. Tuto estetickou vadu lze napravit uzavřením desetinné čárky do skupiny, pak je π ≈ 3,14159265358. Komu by se ale pokaždé chtělo psát složené závorky. . . Je možné předefinovat tečku tak, aby se v matematickém režimu sázela sice jako čárka, ale zapisovala a chovala jako tečka. Docílíme toho definicí \DeclareMathSymbol{.}{\mathord}{letters}{"3B} v preambuli. Dalším rozdílem je sazba jednotek. Anglosaská typografická tradice používá na oddělení základních jednotek zúženou mezeru, česká vystředovanou tečku: v = 90 km h−1 a v = 90 km · h−1 . Místo násobicího křížku, M = 1.989 × 1033 g se v českých textech dává přednost násobicí tečce: M = 1,989 · 1033 g. Při zlomu dlouhých vzorečků a formulí se značky relačních operátorů na koncích řádků v anglosaské typografii vynechávají, zatímco česká typografie preferuje jejich opakování. Příklady viz Subsekce 3.6. Jako poslední uveďme odlišný úzus v označování některých „log-like functionsÿ; např. v češtině se používá pro tangens zkratky „tgÿ namísto „tan,ÿ pro
13
kotangens „cotgÿ místo „cot.ÿ Na druhé straně je rozumné používat standardní makra \tan a \cot, která zajistí vysazení zkratek v matematickém módu antikvou. Elegantní řešení nabízí předefinování makra definovaného ve formátu: \renewcommand{\tan}{\mathop{\operator@font tg}\nolimits}. Pakliže takovou redefinici umístíte do preambule dokumentu, nezapomeňte ji „obalitÿ příkazy \makeatletter a \makeatother – proč, je vysvětleno v komentáři před dodatkem s výpisem zdrojového textu.
3.6
Lámání dlouhých formulí a víceřádkové formule
Občas je vzoreček tak dlouhý, že se nevejde na jeden řádek. V takovém případě jej musíme rozdělit na dva nebo více řádků. Pro takový případ a taky pro sazbu víceřádkových formulí slouží prostředí eqnarray, (ωa)2 y1
Z
x1
0
Z x1 2 y1 (1 − 2λ) (2y 2 − 1) − 9y12 ¯2 ζ¯2 dx = ζ dx 2 x2 y 3 x2 y 3 4(1 + λ) 0 Z 2 γ(1 − 2λ) x1 ¯02 (y − y1 ) [3y1 − (1 − 2λ) y] dx, (6) + ζ 3 x2 y 8(1 + λ) 0
nebo ve variantě s opakováním relačního operátoru (viz Subsekce 3.5), 2
Z
(ωa) y1 0
x1
Z x1 2 y1 (1 − 2λ) (2y 2 − 1) − 9y12 ¯2 ζ¯2 dx = ζ dx + 2 x2 y 3 x2 y 3 4(1 + λ) 0 Z 2 γ(1 − 2λ) x1 ¯02 (y − y1 ) [3y1 − (1 − 2λ) y] + ζ dx. (7) 3 x2 y 8(1 + λ) 0
Nutno přiznat, že prostředí eqnarray není zrovna povedené. Lepší je použít balíku amsmath, které definuje prostředí jako gather, multline, align a mnoho dalších, a spoustu dalších příjemných maker pro práci s maticemi a podobně. Pro udržení jednoduchosti tohoto dokumentu balík amsmath nepoužíváme; podrobná dokumentace bývá součástí distribucí [19]. Na závěr uvedeme typickou víceřádkovou formuli: d2 x = dt2 2 d y m 2 = dt d2 z m 2 = mg + dt
m
1 CSρvvx + FxMag , 2 1 CSρvvy + FyMag , 2 1 CSρvvz + FzMag . 2
(8)
Podívejte se do zdrojáku, jak je vynecháno místo na člen mg + , který se vyskytuje jen ve třetí rovnici. Existuje situace, kdy musíme jistým způsobem rozdělit i inline math: při sazbě rozsahů bychom měli zásadně používat pomlčku na půlčtverčík (viz Subsekce 2.2). V tomto případě je třeba přerušit matematický režim; jinak obvyklý kód pro pomlčku na půlčtverčík, --, vytvoří dvě matematická minus za sebou: M = 106 − −109 M . Kód $M=10^{6}$--$10^{9}\,\mathrm{M}_{\odot}$ vysází správně M = 106 –109 M .
14
3.7
Axiomy, definice, věty, lemmata a důsledky
LATEX poskytuje flexibilní způsob definování číslovaných textových struktur typů uvedených v nadpisu. Například potřebujeme-li používat číslované definice a věty, umístíme v preambuli například příkazy \newtheorem{definice}{Definice} \newtheorem{veta}{Věta} které pak můžeme použít k vytvoření Definice 1 Nechť a, b, c jsou po řadě délky odvěsen a přepony pravoúhlého trojúhelníka. Věta 1 (Pythagorova) Pro každý pravoúhlý trojúhelník platí a2 + b2 = c2 . Věta 2 (Bolzanova–Weierstraßova) Z každé omezené posloupnosti lze vybrat konvergentní posloupnost. Věta 3 (Velká Fermatova) Pro n > 2 nemá rovnice xn +y n = z n celočíselná řešení. Na čísla těchto prostředí se lze odkazovat pomocí již popsaného mechanismu \label–\ref: Znalost Věty 2 (Bolzanovy–Weierstraßovy) je nutnou, ale nikoli postačující podmínkou ke složení zkoušky.
3.8
Rozšíření standardní LATEXové matematiky
Standardní LATEX poskytuje nástroje pro řešení většiny každodenních problémů matematické sazby. V komplikovanějších případech stojí za zvážení použití rozšiřujících balíků Americké matematické společnosti. Jeden z nich, amsmath (manuál [19] by měl být součástí distribuce), jsme zmínili v Subsekci 3.6. Poskytuje komfortní prostředí pro display math s možností nastavení, pro sazbu matic, nástroje pro sazbu řetězových zlomků, násobných integrálů, operátorů a všeho, po čem matematikova duše prahne. Dalším šikovným balíčkem je amssymb (manuál [20] by opět měl být součástí distribuce), jenž dále rozšíří bohatý arzenál značek, operátorů, relací a matematické bižuterie standardního LATEXu. Zamýšlíme-li sázet matematiku rozsáhlejšího díla, vyplatí se seznámit systematicky s pravidly matematické sazby [21]. Dalším zdrojem informací je v Subsekci 3.4 zmíněný Yetiho typografický bestiář [16].
4
Jazykové přizpůsobení
V preambuli byl načten balík babel s češtinou jako primárním a britskou angličtinou jako sekundárním jazykem příkazem \usepackage[british,czech]{babel} V česky psaném dokumentu pak lze pro anglicky psaný úryvek lokálně přepnout do angličtiny. Bližší informace o možnostech balíku babel jsou v manuálu [22]. V následujícím krátkém úryvku anglického textu je v levém sloupci ponecháno
15
nastavení do implicitní češtiny, v pravém, stejně širokém sloupci s identickým textem je pomocí příkazu z balíku babel \selectlanguage{british} lokálně přepnuto do britské angličtiny – srovnejte dělení slov v obou sloupcích (v levém chybné, v pravém správné): LaTeX is based on the idea that authors should be able to focus on the content of what they are writing without being distracted by its visual presentation. In preparing a LaTeX document, the author specifies the logical structure using familiar concepts such as chapter, section, table, figure, etc., and lets the LaTeX system worry about the presentation of these structures. It therefore encourages the separation of layout from content while still allowing manual typesetting adjustments where needed. This is similar to the mechanism by which many word processors allow styles to be defined globally for an entire document or the use of Cascading Style Sheets to style HTML.
5
LaTeX is based on the idea that authors should be able to focus on the content of what they are writing without being distracted by its visual presentation. In preparing a LaTeX document, the author specifies the logical structure using familiar concepts such as chapter, section, table, figure, etc., and lets the LaTeX system worry about the presentation of these structures. It therefore encourages the separation of layout from content while still allowing manual typesetting adjustments where needed. This is similar to the mechanism by which many word processors allow styles to be defined globally for an entire document or the use of Cascading Style Sheets to style HTML.
Závěrečná poznámka
Pokud jste dočetli až sem a vyzkoušeli si vše sami na počítači, pak máte těžký začátek za sebou. Teď před vámi leží mlékem a strdím oplývající krajina TEXu a LATEXu, plná oku lahodících tiskovin. Dejte vale Wordu a běžte si jí užívat plnými doušky!
Literatura [1] B. Bodenheimer. Často kladené otázky o TEXu a odpovědi na ně. Zpravodaj Československého sdružení uživatelů TEXu, 15(2–4):94–331, 2005. ISSN 1211-6661. [2] J. Rybička. LATEX pro začátečníky. Konvoj, Brno, druhé edition, 1999. ISBN 80-85615-74-6. [3] H. Kopka and P. W. Daly. LATEX. Podrobný průvodce. Computer Press, Brno, 2004. ISBN 80-722-6973-9. [4] L. Lamport. LATEX—A Document Preparation System. Updated for LATEX 2ε . Addison-Wesley, Reading MA, second edition, 1994. ISBN 0201-52983-1. [5] M. Goossens, F. Mittelbach, and A. Samarin. The LATEX Companion. Addison-Wesley, Reading, Massachusetts, 1994. ISBN 0-201-54199-8.
16
[6] M. Goossens, S. Rahtz, and F. Mittelbach. The LATEX Graphics Companion. Illustrating documents with TEX and PostScript. Addison Wesley Longman Inc., Reading, Massachusetts, 1997. ISBN 0-201-85469-4. [7] M. Goossens and S. Rahtz. The LATEX Web Companion. Integrating TEX, HTML, and XML. Addison Wesley Longman Inc., Reading, Massachusetts, 1999. ISBN 0-201-43311-7. [8] D. E. Knuth. The TEXbook, volume A of Computers and Typesetting. Addison-Wesley Publishing Company, Reading, Massachusetts, 1986. [9] D. E. Knuth. TEX: The Program, volume B of Computers and Typesetting. Addison-Wesley Publishing Company, Reading, Massachusetts, 1986. [10] V. Eijkhout. TEX by Topic. A TEXnician’s Reference. Addison-Wesley, Harlow, 1992. [11] P. Olšák. Typografický systém TEX. Československé sdružení uživatelů TEXu, Praha, první edition, 1995. ISBN 80-901950-0-8. [12] P. Olšák. TEXbook naruby. Konvoj, Brno, první edition, 1997. ISBN 80-85615-64-9. [13] M. Doob. Jemný úvod do TEXu. Manuál pro samostatné studium. Univerzita Karlova, Praha, 1990. ISBN 80-7066-308-1. [14] L. D. Landau and J. M. Lifšic. Teoriya polya. Nauka, Moskva, 1973. [15] J. Skácel. Kdo učil mlčet kámen. BB art, Praha, Versus edition, 2001. ISBN 80-7257-634-8. [16] D. Nečas. Yetiho typografický bestiář, 2003. URL http://trific.ath. cx/Ftp/tex/bestiary.ps.gz. [17] F. Mittelbach and D. Carlisle. The mathtime and mathpi packages, 1977. This file has version number v1.0e, last revised 1997/10/10. Development of this package was commissioned by Y&Y; URL file:///usr/share/ texmf/doc/latex/mathtime/mathtime.dvi. [18] K. Horák. Sazba matematiky v českých textech. Zpravodaj Československého sdružení uživatelů TEXu, 11(1–3):136–148, 2001. ISSN 1211-6661. [19] American Mathematical Society. User’s Guide for the amsmath Package, 1999. Version 2.0, URL file:///usr/share/texmf/doc/latex/amsmath/ amsldoc.dvi. [20] F. Mittelbach, R. Schöpf, and M. Downes. The amsmath package, 2001. Version 2.2f, URL file:///usr/share/texmf/doc/latex/ amsfonts/amsfonts.dvi. [21] K. Wick. Pravidla matematické sazby. Academia, Praha, 1966. [22] J. Braams. Babel, a multilingual package for use with LATEX’s standard document classes, 2006. file:///usr/share/texmf/doc/generic/babel/ babel.pdf.
17
Dodatek A
Kdo jest „bažákÿ
Bažák (též bedlivák ) jest dle proslulého českého libomudruna a vynálezce Jakuba Hrona Metánovského, zajisté předobrazu Járy Cimrmana, osoba bažící po poznání, v dnešní terminologii tedy student. Bažák jest vyučován a zkoušen – zpytován – zpytákem, neboli profesorem. Jakub Hron byl středoškolským profesorem matematiky a fyziky, jenž svou kariéru po ukončení studií v Praze a Vídni začínal v Opavě. Známým vynálezem Jakuba Hrona, na který mu byl udělen patent, je bezpečnostní nepřevrhnutelný kalamář udržující na principu zkráceného tlakoměru konstantní výšku hladiny inkoustu – tzv. buňát nezkotitelný. Používal jej např. také Karel Čapek. Jakub Hron Metánovský je autorem mnoha krásných českých slov jako čujba (estetika), libomudravna (filozofie), bezabecedník (negramotný člověk), hbitkolo (kolo, bicykl), podnosnice libočudná (cigareta). Mezi jeho díla patří gnoseologická rozprava Čujba a jsoucno prostora. Psal také kouzelné verše: Krátký jest blábol, dlouhý jest žal, dříve rozumně zápol a nerozum s beder svých sval. Sval blábol a nerozum, s rozumem svým se dorozum. O Jakubu Hronovi Metánovském pojednává například stránka http://www. atuka.org/index.php/article/articleview/22/1/.
Dodatek B
Výpis zdrojového textu
Následující výpis je autentickým kompletním zdrojovým textem tohoto dokumentu. Načtením balíku moreverb v preambuli je k dispozici (mimo jiné) příkaz \listinginput, jenž umožňuje načíst soubor specifikovaný jeho druhým argumentem a vysázet jej v doslovném (verbatim) modu, kdy nedochází k interpretaci speciálních znaků a respektuje se rozložení textu včetně netisknutelných znaků. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Níže následuje zdrojový text, jehož zpracováním vznikl výše uvedený %% %% dokument. Většina jeho částí je opatřena vysvětlujícími komentáři. %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \documentclass[a4paper,titlepage]{article} % Specifikuje povinně dokumentní % třídu a její volby (v hranatých % závorkách, nepovinně). Zde zároveň % začíná tzv. preambule, v níž se načítají % doplňující balíčky, zadávají některá % data (titul, autor, datum, ...), % definují se uživatelská makra apod. %============> Načítání dodatkových balíčků (‘knihoven’) <================% \usepackage[latin2]{inputenc} % Kódování zdroje ISO 8859-2 (*nix). \usepackage[IL2]{fontenc} % Specifikace kódování fontu: ISO 8859-2. \usepackage[british,czech]{babel}% Internacionalizace balíkem ‘babel’ % s implicitním jazykem češtinou % a sekund. jazykem britskou angličtinou.
19
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81
\usepackage{moreverb}
\usepackage{graphicx}
\graphicspath{{\jobname/}}
\usepackage{url}
% % % % % % % % % % % % % % % %
Načtení balíku ‘moreverb’, aby dokument mohl načíst sebe sama ve ‘verbatim’ modu. Obvykle se příliš nepoužívá. Načtení balíku ‘graphicx’ poskytujícího nástroje pro vkládání externí grafiky. Často používaný balík. Přizpůsobení balíku ‘graphicx’: Soubory s grafikou (obrázky) budou kromě pracovního adresáře hledány v podadresáři ‘bazak’ (stejné jméno jako záklední jméno LaTeXového zdrojáku). To je výhodné k udržení pořádku při velkém počtu obrázků. Pozn.: primitivum ‘\jobname’ vrací název hlavního souboru zpracování bez extenze, tj. v tomto případě ‘bazak’. Načtení balíku umožňujícího lámání URL.
%===================> Definice uživatelských maker <======================% \providecommand{\uv}[1]{\clqq#1\crqq}% Podmíněná definice (definuje se jen % pokud již není definováno některým % z balíků) makra (s jedním parametrem) % pro snadnou sazbu textu v uvozovkách. % Následuje definice loga CS(La)TeXu % a CSfontů (je složitá, zatím ignorujte): \newcommand\CS[1]{\def\next{#1}\leavevmode{$\cal C$}\kern-.3em \lower .67ex\hbox{$\cal S$}\if E\next\kern-.045em\else \kern-.145em\fi#1} \newfont{\rusky}{wncyr10} % Statické zavedení fontu pro krátkou \newfont{\rusit}{wncyi10} % ukázku v ruštině (antikva a kurzíva). \newfont{\slabikar}{slabikar} % Statické zavedení Olšákova slab. písma. %============> Dělení slov (výjimky a nestandardní slova) <===============% \hyphenation{ % Občas TeX neumí rozdělit slovo; ra-dě-ji % takto explicitně povolíme dělení ‘raději’ Bézierovy % ale tady jakékoli dělení zakážeme. Jakuba % A zde rovněž. pře-vza-to % Tady už zase dělíme jak je naznačeno. roz-ši-řu-jí-cích znač-ko-vá-ní En-cap-sul-ated func-tions } %=================> Data pro vysázení titulní stránky <===================% \title{Bažákův průvodce % Název dokumentu (v tomto případě článku). publikačním systémem \LaTeX} % Vytvoří logo LaTeXu. \author{Stanislav Hledík} % Autor dokumentu. \date{Verze 2010/3/26/a} % Smazáním či odkomentováním tohoto příkazu % dostaneme datum aktuální v době zpracování. %====================> Tady začíná vlastní dokument <=====================% \begin{document} % Konec preambule, začátek vlastního článku. \maketitle % Vysází titul dokumentu z údajů v preambuli % (argumenty příkazů \title, \author, \date). \bibliographystyle{unsrt} % Definuje bibliografický styl. Položky % bibliografie jsou uloženy formou databáze % v separátním souboru bazak.bib a každá % z nich je opatřena ‘klíčem,’ který se % použije při citaci v povinném argumentu % příkazu \cite. \begin{abstract} % Zde začíná prostředí, které vysází ‘abstrakt.’ Toto je výsledek zpracování \LaTeX ového zdrojového textu \texttt{bazak.tex} volně inspirovaného dokumentem \emph{A~Sample Document} původního autora
20
82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143
formátu \LaTeX{} Leslieho Lamporta. Porovnáním vysázeného výstupu se zdrojovým textem umožňuje začít s~přípravou vlastních jednoduchých \LaTeX ových dokumentů. \end{abstract} % Ukončení prostředí ‘abstrakt.’ % I když v článku se obvykle obsah nepoužívá, z demonstračních důvodů % je zde zařazen. V místě, kde se vyskytne následující příkaz, bude % automaticky vygenerován obsah. Protože v okamžiku, kdy se obsah sází, % není ještě znám obsah celého dokumentu (zejména je-li obsah na začátku % jako zde), musí LaTeX zapsat informace pro tvorbu obsahu do pomocného % souboru a při dalším běhu tento soubor načíst. Proto jsou nutné dva % nebo i více běhů LaTeXu: \tableofcontents \newpage % A tady chceme, aby na stránce s obsahem už nic nebylo, takže % vynutíme přechod na novou stránku. % % % % % % %
Následující příkaz vytvoří nadpis sekce. Sekce druhé, třetí, a dalších úrovní se vytvoří příkazy ‘\subsection’, ‘\subsubsection’, ‘\paragraph’ a ‘\subparagraph’. Příkaz ‘\label{uvod}’ není nutný, pouze značkuje sekci pro případné křížové odkazy. VŘELE DOPORUČENO!!!! Jednak téměř 100% eliminuje chyby při křížových odkazech, jednak umožňuje generování hypertextu bez jediného zásahu do zdrojáku! Je také rozumné ve zdrojáku pro přehlednost opticky oddělit sekce atd., např. řetězci ‘%’ apod.:
\section{Úvod}\label{uvod}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Sekce má symbolický^^^^ název ‘uvod’ (měl by být bez mezer a diakritiky), % který umožňuje později se odkazovat na číslo sekce a její stránku pomocí % příkazů \ref{uvod} a \pageref{uvod}. \LaTeX{} je velmi rozsáhlá knihovna maker napsaná Leslie Lamportem rozšiřující sázecí program \TeX{} Dona E. Knutha směrem ke kontextovému (logickému) značkování. \LaTeX{} dovoluje popsat strukturu dokumentu pomocí značkování tak, aby uživatel nebyl nucen přemýšlet o~výsledném vzhledu. S~použitím dokumentních tříd a přídavných balíků může být tentýž dokument vysázen (zformátován) v~mnoha různých podobách \cite{Bod:2005:CSTUGbul:FAQ}. Není zde možné demonstrovat všechny jeho rysy a dodatečná rozšíření. Cíl, jenž si klade tento článek, je dostatečně vybavit čtenáře pro \uv{rychlý start} umožňující psát vlastní nepříliš komplikované dokumenty metodou komparace zdrojového a zformátovaného textu. Existuje bohatý výběr literatury, v~níž se lze poučit podrobněji. Za zmínku stojí zejména česky psané manuály \LaTeX u \cite{Ryb:1995:LaTeX:,Kop-Dal:2004:LaTeXPodrPruv:} a anglicky psané podrobné průvodce \LaTeX em \cite{Lam:1994:LaTeX:,Goo-Mit-Sam:1994:Companion:,% Goo-Rah-Mit:1994:GraComp:,Goo-Rah:1994:WebComp:}. Zájemce u~hlubší studium \TeX u a jeho možností může sáhnout po knihách \cite{Knu:1986:TeXbook:,Knu:1986:TeXprog:,Eij:1992:TeXbyTopic:,% Ols:1995:TST:,Ols:1997:TBN:}. V~tomto úvodu je už pár \LaTeX ových příkazů, ale nejsou nijak okomentovány. Podrobné komentáře začínají až od Subsekce~\ref{hladky}. Odkazy na literaturu, jejíž položky jsou uloženy v~souboru \texttt{\jobname.bib}, byly pro \LaTeX{} vytvořeny pomocným programem \textsc{Bib}\TeX{} (viz např. Dodatek~B v~knize \cite{Kop-Dal:2004:LaTeXPodrPruv:} a v~tomto článku). To umožňuje velmi flexibilní vytváření referencí. Avšak dosti již řečí. Vzhůru do sedel! \section{Text a jeho značkování}\label{text}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Soubory určené ke zpracování \LaTeX em obsahují jednak vstupní text, jednak příkazy programovacího jazyka \TeX{} různé úrovně (značkování). \LaTeX{} kromě jiného definuje množství uživatelských příkazů vysoké úrovně pomocí základních
21
144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205
příkazů \TeX u, tzv. primitiv. Aby \TeX{} při čtení dokumentu rozpoznal, co že je náš text a co je příkaz, jsou příkazy uvozeny speciálním znakem: zpětným lomítkem (anglicky backslash). Hlavním úkolem \TeX u je podle instrukcí naprogramovaných v~dokumentní třídě a dodatkových balíčcích vytvořit tištěný výstup, tj. rozdělit text do stejně dlouhých řádků, řádky formátovat do odstavců a zalamovat text do očíslovaných stránek. Rozložení samotného vstupního textu může být úplně odlišné. \subsection{Hladký text}\label{hladky}%//////////////////////////////////// Konce slov a vět jsou určeny mezerami. Je lhostejné, kolik mezer ve zdrojovém textu napíšete; jedna je stejně dobrá jako sto. \emph{Jeden} % Argument bude zdůrazněn, v třídě ‘article’ kurzívou (italikou). konec % Co slovo, to řádek. řádku % I tak je možné psát zdrojový text. funguje % Proti vkusu žádný dišputát. stejně jako mezera nebo více mezer. To neznamená, že v~místě konce řádku zdrojáku končí řádek vysázeného textu; řádkový zlom sazby je něco zcela jiného. Jedna nebo více prázdných řádek vyznačuje konec odstavce. Jak je odstavec vysázen (velikost odstavcové zarážky, vertikální separace), je dáno dokumentní třídou, dodatečnými balíčky nebo uživatelským nastavením v~preambuli. % Znak ‘~’ vytvoří nezlomitelnou mezeru.
Jelikož libovolný počet po sobě následujících mezer je zpracován jako jediná mezera, formátování zdrojového textu je lhostejné pro \TeX{} (\LaTeX), % Příkazy ‘\TeX’ a ‘\LaTeX’ vytvoří logo TeXu a LaTeXu. ale není lhostejné pro vás. Je rozumné zachovávat \emph{štábní kulturu} (jakkoli to zavání buzerací), abyste se po nějaké době ve zdrojáku vlastního dokumentu snadno vyznali a mohli jej lehce modifikovat. \subsection{Uvozovky, pomlčky a další drobná havěť}\label{havet}%////////// Existuje množství znaků, které nejsou dostupné z~klávesnice, avšak v~knižní a časopisecké sazbě jsou nezbytné. Jednou z~obvyklých chyb je psaní levých i~pravých uvozovek pomocí jediného znaku \verb!"!, % Příkaz \verb vysází doslovně (bez interpretace) svůj argument. % Argument je vymezen dvěma stejnými znaky, které nejsou obsaženy % v argumentu; v tomto případě vykřičníky. což je špatně a dopadne "takto." % Takto NE!!!! Píšete-li anglický text, použijte \verb!‘‘this’’! (vysází ‘‘this’’), nebo v~jednoduché formě \verb!‘this’! (vysází ‘this’). Všimněte si rozdílu! Anglický styl uvozování má podle podobnosti s~číslicemi název ‘6699’ nebo ‘69’.\footnote{Zdání jiných % A takhle se dělá poznámka pod čarou. souvislostí jsou klamná.} % Doufám, že nebudu napaden nějakou % příslušnicí feministického hnutí. Píšete-li česky, použijte pro uvozování \verb!\clqq toto\crqq! nebo \verb!\uv{toto}! (vysází \uv{toto}) nebo v~jednoduché formě \verb!\glq toto\grq! (vysází \glq toto\grq). Opět si všimněte rozdílu! Příkazy pro české uvozování (říká se mu podle tvaru uvozovek \uv{9966} nebo \uv{96}) jsou dostupné pouze je-li načten balík \textsf{babel}. % Vysadí argument bezpatkovým (sans serif) písmem. Následuje-li po pravých uvozovkách \verb!\grq! nebo \verb!\crqq! mezera, nezapomeňte psát \verb*!\grq{} ! % Hvězdičková forma příkazu \verb* % vyznačí mezery pomocí viditelných % ‘vaniček’. nebo \verb*!\crqq{} !, aby \TeX{} mezeru za příkazem \clqq nepožral\crqq jako
22
206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267
na~předcházejícím řádku před slovem \clqq jako\crqq. Následuje-li po \verb!\grq! či \verb!\crqq! nepísmenný znak (čárka, tečka, středník, jako na konci předchozí věty), funguje jako ukončovač příkazu místo mezery a problém nevznikne. Totéž se týká např. příkazů pro generování loga \TeX, \LaTeX{} a podobně. Dalším velmi rozšířeným nešvarem je nesprávné používání \uv{pomlček.} Existují jich tři druhy: \begin{enumerate} % Prostředí pro číslovaný výčet. \item\label{divis} % ‘Olejblovat’ můžete i prvky výčtu a odkazovat se na ně! Spojovník (také rozdělovník, divis, anglicky \textsl{hyphen}) % Vysadí argument skloněným (slanted) písmem % (něco jiného než kurzíva!). slouží: \begin{itemize} % Vnořené prostředí pro nečíslovaný výčet. \item ke spojování dvou slov, názvů nebo jmen do jednoho celku, např. Filozoficko-přírodovědecká fakulta SU v~Opavě, Opava-Kateřinky, \mbox{$\beta$-rozpad}, Tullio % Nechceme zlom beta rozpadu. Levi-Civit\‘a % Znaky nedostupné přes CZ klávesnici lze snadno vyrobit. (jedná se o~jediného člověka), a~okolo spojovníku nejsou mezery; \item jako rozdělovník. Jelikož \TeX{} dělí při řádkovém zlomu automaticky podle načtené tabulky dělení slov pro daný jazyk, není třeba se o~to starat (no dobře, skoro se není třeba starat). \end{itemize} \item\label{Ndash} Pomlčka na půlčtverčík (anglicky \textsl{N-dash}) se používá: \begin{itemize} % Další vnořené prostředí. \item při uvádění rozsahu čísel, např. \uv{Kapitoly 12--15} (v~tom případě okolo nejsou mezery), \item nebo v~evropské kontinentální typografii jako -- zvláště v~beletrii hojně používané -- interpunkční znaménko (zde se okolo použijí mezery). Protože pomlčka na půlčtverčík se nesmí vyskytnout na začátku řádku, neuděláte chybu, když před ni dáte~-- jako právě zde~-- nezlomitelnou mezeru.\footnote{Prohlídkou zdrojáku zjistíte, že nezlomitelná mezera (znak vlnka, tilda, \texttt{\~}) je vložena za každou neslabičnou předložku jako i, I, k, K, o, O, s, S, t, T, u, U, v, V, z, Z, A, které podle pravidel české typografie nesmí být na konci řádku. Aby se tím autor nemusel zdržovat, existují programy pro automatické doplňování vlnky. V~angličtině se \uv{nevlnkuje.}} Podívejte se do zdrojáku, jak pomlčku na půlčtverčík vytvořit~-- je to tak snadné díky \emph{ligaturnímu mechanismu \TeX u}! \item při seskupování jmen dvou nebo více osob do ustáleného pojmenování: Bolzanova--Weierstra\ss ova věta, Schwarzschildův--de~Sitterův prostoročas, % Pan de Sitter by jistě nebyl % rád, kdyby bylo jeho příjmení % roztrženo přes konec řádku. Kerrův--Newmanův--de~Sitterův prostoročas. (Srovnej Levi-Civit\‘a v~bodě~\ref{divis}.) % A zase symbolický odkaz. \end{itemize} Často se místo pomlčky na půlčtverčík chybně používá divis popsaný v~bodě~\ref{divis}, % Tady se odkazujeme na položku číslovaného výčtu. což je ošklivé, avšak laickými typografy s~oblibou používané. \item\label{Mdash} Pomlčka na čtverčík (anglicky \textsl{M-dash}) se používá: \begin{itemize} % A ještě jedno vnořené prostředí. \item jako interpunkční znak~--- podobně jako pomlčka na půlčtverčík (viz bod~\ref{Ndash}) v~kontinentální typografii s~mezerami okolo, opět by před ni měla přijít nezlomitelná mezera; \item jako interpunkční znak---ale v~anglosaské typografii bez mezer okolo. Díky ligaturnímu mechanismu je opět velmi snadné psát pomlčky na čtverčík. \end{itemize} % A konec vnořeného prostředí. \end{enumerate} % Konec prostředí pro číslovaný výčet. Čtvrtým typem je matematické minus~--
23
268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329
viz Sekce~\ref{matika} na straně~\pageref{matika}.
% Příkazy \ref a \pageref se dá odkázat % na příslušný \label.
Specialitou anglosaské typografie je, že mezery za větami jsou větší než mezislovní mezery. Proto je třeba \TeX u explicitně sdělit, že např. ve fragmentu ‘‘Let me introduce you Dr.\ Jones’’ za \uv{Dr.} nekončí věta. Toho dosáhneme vložením příkazu \verb*!\ ! (zpětné lomítko následované mezerou), který vynutí mezislovní mezeru. Ještě lepším řešením je \verb!Dr.~Jones!, kdy je tato mezera navíc nezlomitelná.\footnote{Díky čemuž pan Jones nikdy nezanechá svůj titul osamocený na konci řádku.} Vyskytne-li se naopak tečka za velkým písmenem, pak se bere jako konec zkratky a ne věty, takže konec věty je nutno explicitně vynutit: \verb!This project is sponsored by NASA\@. Its purpose is ...! % Tečka za % NASA končí % větu. V~českém dokumentu (používáte-li balík \textsf{babel}) nebo máte-li v~preambuli deklarováno \verb!\frenchspacing!, tato jemná dolaďování nemusíte provádět. \subsection{Zdůrazňování a další typografické drobnosti}\label{malic}%///// Standardním příkazem pro zdůraznění textu je v~\LaTeX u \verb!\emph!, jehož argument~-- alespoň v~třídě \textsf{article}~-- bude vysazen \emph{kurzívou}. To má svůj důvod: kurzíva se dostatečně odlišuje od vzpřímeného písma, ale přitom zachovává stejnou průměrnou šeď. Z~toho důvodu je preferovaným způsobem vyznačování. Zároveň za konec vyznačení vloží tzv.~\emph{kurzívní korekci}, jež (selektivně podle sousedících znaků) zvětší mezeru zredukovanou příklonem kurzívního řezu; srovnej mezerování těchto dvou úryvků: \begin{quote} % Prostředí pro citování (např. úryvku, výroku apod.) \emph{Epitaf} Ludwiga Boltzmanna\\ % Příkaz ‘\\’ vynutí nový řádek. {\itshape Epitaf} Ludwiga Boltzmanna % Deklarace \itshape definuje italiku. \end{quote} % Konec prostředí pro citování. \emph{Zdůrazňujeme-li v~již zdůrazněném textu, zmíněný příkaz přepne \emph{zpět do vzpřímeného} písma. Kurzívní korekce se vloží \emph{před} zdůrazněný text:} \begin{quote} \emph{Číšník místo vína přinesl \emph{koňak} značky Hennessy}\\ {\itshape Číšník místo vína přinesl {\upshape koňak} značky Hennessy} \end{quote} Dalšími způsoby vyznačování je použití \textbf{tučného písma} (příliš vystupuje z~průměrné šedi textu, ale používá se), \textsc{kapitálek (anglicky Small Caps), má vážný, slavnostní ráz a hodí se např. pro zvýraznění jmen}, vyloženě ošklivé je \underline{podtržení}~-- používejte jen je-li to nezbytně nutné. V~byrokratické praxi se používá p\,r\,o\,s\,t\,r\,k\,á\,n\,í~-- to rovněž není příliš estetické, kromě toho není triviální napsat makro pro jeho realizaci (řešení viz~\cite{Ols:1997:TBN:}). Pomineme-li naprosté typografické úlety,\footnote{Na vlastní oči jsem viděl výpravnou, na křídovém papíře tištěnou publikaci \emph{Opava 2000}, která měla na přebalu v~letopočtu místo nul vysázeny verzálky \uv{O}: \emph{Opava 2OOO}.} z~drobností bych zmínil výpustky (elipsy): používáme-li \CS{fonty}, můžeme bez obav psát tři tečky za sebou; ligaturní mechanismus (viz Subsekce~\ref{ligat}) se postará o~jejich správný rozestup... % Jen s CS-fonty. Ale při použití nativního amerického formátu \textsf{\jobname} dostaneme tento paskvil.{}.{}. % Vložení prázdných skupin potlačí ligatury. Proto raději použijeme příkaz \verb!\ldots! (funguje vždy)\ldots Další příklady použití různých typů pomlček, výpustků a uvozovek \cite{Doo:1990:JemnyUvod:}: % A zase citace. \begin{quote}
24
330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391
Zima 1942--1943 byla nejhorší~-- mnoho lidí nepřežilo. Zpívala si tra-la-la, ráda k~tomu~-- poněkud neobratně~-- poskakovala. \uv{Jeho jasnost}, ohlásil komoří. \uv{\ldots až na věky věkův\ldots a nikdy jinak} % Příkaz ‘\,’ vloží malou (nedělitelnou) mezeru, aby byl otazník opticky % oddělen od následující pravé české dvojité uvozovky: Jaroslav vyhrkl: \uv{Opravdu je taková, že neumí říci \glq ne\grq?\,}\\ % Varianta s obráceně použitými francouzskými uvozovkami (guillemets), % tato varianta se v české sazbě příležitostně používá. (Ve francouzštině % se guillemets používají obráceně, \flqq text\frqq): Jaroslava vyhrkla: \uv{Opravdu je takový, že neumí říci \frqq ne\flqq?\,} Nezkracujte \uv{pravou délku úsečky} následovně: \uv{pr.~d. úsečky;} raději pište \uv{pr.~dél. úsečky} nebo ještě lépe \uv{pr.~délka úsečky.} (profesor K.~Havlíček) \end{quote} \subsection{Příkazové znaky}\label{prik}%////////////////////////////////// Znaky \# \$ \~{} \_ \^{} \% \{ \} mají v \TeX u speciální význam. Pro jejich vytištění v~textu je musíme \uv{vyescapovat}~-- % Hrozné slovo, fuj. jak na to, zjistíte ve zdrojovém textu. Napsat je s anglickou klávesnicí není problém, horší je dostupnost takových znaků v neanglických národních klávesnicích, českou nevyjímaje. Uživatelé textového editoru GNU~Emacs mohou např. použít nezávisle na systému českou klávesnici \textsf{Czech-prog-2}. \subsection{Speciální znaky a cizí diakritika}\label{spec}%//////////////// Znaky, které nejsou na klávesnici, se dají snadno napsat pomocí odpovídajících příkazů; namátkou \verb!\S! dá \S, \verb!\dag! dá \dag, \verb!\ddag! dá \ddag, \verb!\P! dá \P, \verb!\copyright! dá \copyright, \verb!\pounds! dá \pounds. Další viz např.~% Za ‘~’ není mezera; toto řešení je tomu ekvivalentní! \cite{Ryb:1995:LaTeX:,Kop-Dal:2004:LaTeXPodrPruv:,% Citace více položek. Lam:1994:LaTeX:,Goo-Mit-Sam:1994:Companion:}. Kromě toho mohou být další speciální znaky v~jiných fontech (např. Times, fonty ze Střešovické písmolijny, \url{http://www.pismolijna.cz/}). % Sazba URL pomocí přík. \url balíku ‘url.’ Chceme-li vysázet cizí slovo nebo jméno, lze použít např.:\footnote{Tento způsob se hodí pro citace nebo kratší úryvky; pro systematické psaní v daném jazyce je lepší použít příslušnou volbu balíku \textsf{babel} a klávesnici.} \begin{center} % Prostředí pro centrování. \small % Zmenšení stupně písma je lokální pro prostředí ‘center’. \begin{tabular}{|l|l|l|l|l|l|l|} % Prostředí pro tab. o 7 sl. (centrovanou). \hline % Horní horizontální čára. {\oe}\enspace\verb!{\oe}! & {\OE}\enspace\verb!{\OE}! % Znak ‘&’ je oddělovač sloupců tabulky. & {\ae}\enspace\verb!{\ae}! & {\AE}\enspace\verb!{\AE}! & {\aa}\enspace\verb!{\aa}! & {\AA}\enspace\verb!{\AA}! & {!‘}\enspace\verb+{!‘}+ \\ \hline % Prostřední horizontální čára. {\o}\enspace\verb!{\o}! & {\O}\enspace\verb!{\O}!
25
392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453
& {\l}\enspace\verb!{\l}! & {\L}\enspace\verb!{\L}! & {\ss}\enspace\verb!{\ss}! & {\SS}\enspace\verb!{\SS}! & {?‘}\enspace\verb+{?‘}+ \\ \hline % Dolní horizontální čára. \end{tabular} \end{center} Rovněž lze tisknout různá diakritická znaménka, jako {\‘o} {\’o} {\^o} {\"o} {\~o} {\=o} {\.o} {\u{o}} {\v{o}} {\H{o}} {\t{oo}} {\c{o}} {\d{o}} {\b{o}} {\r{o}} (místo \uv{o} lze použít jakékoli jiné písmeno). Před přidáním diakritiky nad \uv{i} nebo \uv{j} je zapotřebí odstranit tečku: např. \verb!{\^i}! by dalo {\^i}; správně je \verb!{\^{\i}}!, což dá kýžený znak ve jménu abbého Lema{\^{\i}}trea. Jako cvičení vysázejte tyto krátké věty (upraveno podle \cite{Doo:1990:JemnyUvod:}): \begin{enumerate} \item Lze je trajektem z {\"O}landu do {\AA}landu? \item Maar die {\"y}s is lekker. \item Peut-{\^e}tre il pr{\’e}f{\‘e}re le caf{\’e} glac{\’e}. \item Ich mu{\ss} hei{\ss}en Tee abk{\"u}hlen. \item {\’E}l{\‘e}ves, r{\’e}fusez vos le{\c{c}}ons! \item Jetez vos cha{\^{\i}}nes! \item Nejmenší vnitřní jednotka \TeX u je asi 53.63\,{\AA}. \item Rozumí {\AE}schylus {\OE}dipovi? \end{enumerate} Pokrýt všechny evropské jazyky (včetně islandštiny) mají v současné době odlaďované fonty Latin Modern (LM). Pro exotické jazyky jako hebrejština, arabština, japonština, korejština, čínština, sanskrt apod. existují speciální verze \TeX u pro pravolevou sazbu a příslušné balíky a fonty. \subsection{Ligatury (slitky)}\label{ligat}%/////////////////////////////// Některé písmové sady mají k~dispozici tzv. \emph{ligatury} neboli \emph{slitky}~-- určité kombinace písmen jsou z~estetických a historických důvodů tištěny jako jediný speciální symbol~-- ligatura. Typicky se jedná o~kombinace \texttt{ff}, \texttt{fi}, \texttt{fl}, \texttt{ffi} % Vysadí argument % neproporcionálním % strojopisným písmem. a \texttt{ffl}. V~následujícím zvětšení je horní řádek vysázen s~užitím ligatur (implicitní chování \TeX u), v~druhém jsou ligatury potlačeny pomocí vložení prázdné skupiny: {\Huge
% Tabulka bude sázena velikým stupněm písma. % Přepnutí do velikého stupně je uzavřeno do skupiny % {}, čímž se stane lokálním pro tuto skupinu. \begin{tabular}{lllll} % Prostředí pro tvorbu tabulky. ff & fi & fl & ffi & ffl\\ f{}f & f{}i & f{}l & f{}f{}i & f{}f{}l\\ % Prázdná skupina % potlačí ligaturu. \end{tabular} % Konec prostředí tabulky. \par} % Příkaz \par má stejný význam jako prázdný řádek: ukončí odstavec. % Zde je použit, aby se před koncem skupiny uplatnilo správné % řádkování velikého stupně písma deklarovaného na začátku skupiny. \noindent % Potlačí odstavcovou zarážku následujícího odstavce. Existují výjimky, kdy je ligaturu lépe potlačit: například u složeniny \uv{šéflékař} je lepší sázet \uv{šéf{}lékař,} z~anglických slov např. místo ‘‘shelfful’’ je lepší ‘‘shelf{}ful.’’ Mechanismus na tvoření ligatur (popis implementace je např.
26
454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515
v~\cite{Ols:1995:TST:}) se uplatňuje i~při sazbě různých typů pomlček popsaných v~Sekci~\ref{havet} a umožňuje sazbu kratších úryvků např. v ruštině pomocí (anglické) transliterace (ukázka převzata z~\cite{Lan-Lif:1973:TeoPolja:cp-bazak}): \begin{quote} \sloppy % Benevolentnější nastavení parametrů odstavce zabraňující % vzniku pře/podtečených boxů, za cenu větších mezislovních mezer. % Platnost omezena lokálně na prostředí, v němž se použije. \rusky % Deklarace statické cyriliky; její platnost je lokální jen pro % prostředí, v němž je použita. Rassmotrim teperp1 vopros o tom, % ‘p1’ tvoří ligaturní pár pro měkký znak naskolp1ko {\rusit odnoznachno} % dekl. stat. fontu pro kurzívní cyriliku, % platnost vymezena {...} opredeleny potencialy polya. % ‘ya’ tvoří ligaturní pár pro ruské ‘ja’ Pri e1tom sleduet % ‘e1’ je ligaturní pár pro ruské tvrdé ‘e’ uchestp1, chto pole % ‘ch’ je ligaturní pár pro ruské ‘č’ kharakterizuet\mbox{sya} tem % ‘ts’ je ligaturní pár pro ruské ‘c’; % je třeba zabránit ligaturnímu spárování dei0stviem, % ‘i0’ je ligaturní pár pro ruské ‘j’ kotoroe ono okazyvaet na dvizhenie % ‘zh’ dá ruské ‘ž’ nakhodyashchikhsya % ‘kh’ = ‘ch’, ‘shch’ je ligaturní čtveřice pro ‘šč’ v nem zaryadov. \end{quote} Pro ty, co už neznají azbuku: \begin{quote} Prozkoumejme nyní otázku, do jaké míry jsou potenciály pole určeny \emph{jednoznačně}. Při tom je třeba vzít v úvahu, že pole je charakterizováno působením na pohyb nábojů, jenž se v něm nacházejí. \end{quote} Další \TeX ovou specialitou založenou na ligaturním mechanismu je například (viz \url{http://math.feld.cvut.cz/olsak/}) \begin{quote} \slabikar Olšákovo slabikářové písmo. \end{quote} \subsection{Některá prostředí}\label{prostredi}%/////////////////////////// V Subsekcích~\ref{havet} a~\ref{malic} jsme poznali prostředí \textsf{quote} pro zúženou sazbu (citování textu), na začátku článku prostředí \textsf{abstract}, v Subsekci~\ref{havet} prostředí \textsf{enumerate} a \textsf{itemize} pro číslované a nečíslované výčty, v Subsekci~\ref{spec} prostředí \textsf{center} pro vycentrování svého obsahu a \textsf{tabular} pro tvorbu tabulek; samotný dokument je uzavřen v prostředí \textsf{document}. Prostředí existuje velmi mnoho~-- viz např.~\cite{Ryb:1995:LaTeX:,Lam:1994:LaTeX:,Kop-Dal:2004:LaTeXPodrPruv:}. Zmiňme ještě alespoň pár, nejprve \textsf{quotation}, alternativu ke \textsf{quote}. \begin{quotation} % Prostředí ‘quotation’ Rozdíl obou prostředí spočívá v tom, že \textsf{quote} mezi jeho odstavce vkládá vertikální mezeru, ale odstavcová zarážka je nulová. Prostředí \textsf{quotation}, v němž je vysazen tento text, používá odstavcové zarážky a nevkládá mezi odstavce vertikální mezery. \end{quotation} Příbuzné je ještě prostředí \textsf{verse} pro sazbu poezie (báseň \textsc{Chci to slyšet} převzata ze sbírky~\cite{Ska:2001:Kamen:}): \begin{verse} % Prostředí pro sazbu veršů. \small % Tato deklarace stupně písma je lokální pro prostředí ‘verse’. Na dně každé písně,\\ % Verše jsou odděleny příkazem ‘\\’. i té nejsmutnější,\\
27
516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577
na dně každé sklénky\\ něco tiše cinká. % Sloky jsou odděleny prázdným řádkem. Někdy víc\\ a jindy jenom málo. Chci to slyšet.\\ Bůhví co mne nutí,\\ ale musím čekat na cinknutí,\\ jinak by se moje srdce bálo. \end{verse} Prostředí \textsf{thebibliography} je určeno pro sazbu seznamu literatury. Při použití separátní bibliografické databáze, jako v~tomto dokumentu, je soubor s~tímto prostředím automaticky generován programem \textsc{Bib}\TeX{} a načítán v~místě, kde se objeví příkaz \verb+\bibliography+. Výsledkem je seznam literatury. Pro doplnění uveďme třetí výčtové prostředí \textsf{description}, jež je demonstrováno na následujícím popisu hlavních distribucí Linuxu (upraveno podle výstupu kultovního linuxového programu \textsf{fortune}): \begin{description} % Prostředí ‘description’. \item[Blondian] Jádra třídy \emph{public}~-- nepříliš bezpečná a stabilní, proto se často přeinstalovávají, takže dlouhodobější využívání systému nepřichází v úvahu. \item[Brunetware] Jádra třídy \emph{romantic}~-- stabilní a jedny z~nejbezpečnějších. \item[Red Head] Jádra třídy \emph{sadistic} a odvozená~-- velmi variabilní, záleží na administrátorovi, k jakému použití budou nakonfigurována, proto i~bezpečnost je relativní. \item[Free Black] Jádra třídy \emph{free}~-- slouží především jako školní nebo firemní servery, takže získat konto není žádný problém. \end{description} Prostředí lze kombinovat a vzájemně do sebe vnořovat. Experimentujte, experimentujte, experimentujte! \subsection{Jednoduchá čárová grafika s \LaTeX em}\label{simpgraph}%/////// Systém \LaTeX{} obsahuje speciální font, jehož \uv{znaky} jsou tvořeny čárami a šipkami různých sklonů (se směrnicemi $p/q$, kde $p$, $q$ jsou malá celá čísla), kružnicemi a kruhy vybraných diskrétních poloměrů, a elementy, z nichž lze vytvořit Bézierovy křivky. Tyto \uv{znaky} jsou pomocí uživatelských příkazů sesazovány k~sobě, aby vytvořily požadovaný grafický efekt. Není to žádný zázrak, možnosti jsou značně omezené, ale příležitostně se tato možnost může hodit. Výhodou je, že není potřeba žádný externí kreslicí program; vše je v~\LaTeX ovém zdrojáku. \setlength{\unitlength}{0.01\linewidth} % jednotka souřadnic=délka řádku/100 \noindent % ignoruj odstavcovou zarážku \begin{picture}(100,20)(-25,-10) % definice kreslicí plochy o rozměrech % šířka=100 jednotek, výška=20 jednotek, a s levým dolním rohem v bodě % (-25,-10) jednotek (x>0 je doprava, y>0 má význam hloubky). \put(0,1){\line(1,0){50}} % Na místo (0,1) umísti počáteční bod úsečky % mířící doprava [tj. směrnice je (x=1,y=0)] % o délce 50 jednotek. \put(0,1){\circle*{1.5}} % Do jejího počátečního bodu (0,1) dej plný (*) % kruh o poloměru 1.5. \put(-0.5,-2.25){$a$} % Do bodu (-0.5,-2.25) dej matem. písmeno ‘a’. \put(50,1){\circle*{1.5}} \put(49.5,2.75){$b$} \put(10,1){\circle*{1.5}} \put(25,1){\circle*{1.5}}
28
578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639
\put(40,1){\circle*{1.5}} \qbezier(-10,1)(0,5)(10,1) % Nakresli kvadratickou Bézierovu křivku % z bodu (-10,1) do bodu (10,1) s kontrolním % bodem (0,5). \qbezier(-10,1)(2.5,7.5)(25,1) \qbezier(-10,1)(5,10)(40,1) \put(-23,0.5){kořeny $p_{3}$} % Do (-23,0.5) dej nápis ‘kořeny $p_{3}$’. \put(4,1){\circle*{1.5}} \put(15,1){\circle*{1.5}} \put(35,1){\circle*{1.5}} \put(46,1){\circle*{1.5}} \qbezier(60,1)(53,-3)(46,1) \qbezier(60,1)(48.5,-5.5)(35,1) \qbezier(60,1)(47.5,-8)(15,1) \qbezier(60,1)(47,-10.5)(4,1) \put(61,0.5){kořeny $p_{4}$} \end{picture} \subsection{Vkládání externí grafiky}\label{extgraph}%///////////////////// S interní \LaTeX ovou grafikou vystačíme jen pro jednoduché ilustrace, třeba takové, jako v~Subsekci~\ref{simpgraph}. Pro vkládání grafiky vytvořené externími programy slouží balík \textsf{graphicx}. Důležité je, že vkládaná grafika \emph{musí} být ve formátu Encapsulated PostScript (EPS, zapouzdřený PostScript, extenze \texttt{.eps}, \texttt{.ps}). Jedná se o~grafický jazyk PostScript, který má~-- na rozdíl od \uv{normálního} PostScriptu~-- pouze jedinou stránku, a taky jsou v~něm zakázány jisté konstrukce programovacího jazyka PostScript. To nás nemusí nijak trápit, protože téměř každý rozumný grafický program umí do EPS exportovat. PostScript je nativně vektorový jazyk, ale umí pojmout i~bitmapový obrázek. Takže pokud děláte grafiku třeba v~programu \textsf{Mathematica}, \textsf{gnuplot}, \textsf{xfig}, \textsf{Ipe}, rovnou ji exportujte do EPS\@. Bude vektorová, takže ji lze libovolně škálovat. Pro konverzi bitmap se hodí např. \textsf{Gimp}. Při ukládacím dialogu zatrhněte, že chcete \emph{Encapsulated} PostScript a naopak \emph{vypněte} tvorbu náhledu (preview)~-- jen zbytečně zvětšuje velikost obrázku a \LaTeX u je stejně k~ničemu. Pak už můžeme grafiku nejen vložit, ale i~škálovat, rotovat a stranově deformovat pomocí příkazu \verb+\includegraphics+ definovaném balíkem \textsf{graphicx}. \begin{center} \small % Zmenšený stupeň pro popis obrázku, lokální pro ‘center.’ \includegraphics[width=.8\linewidth]{far_in_b} % Dobrá rada: používejte % extenzi .eps, ne .ps; potom ji nemusíte uvádět. To má ještě další výhodu % při práci s tzv. PDFLaTeXem. Šířka obrázku je 0.8 délky řádku. Ukázka vektorové grafiky vytvořené programem \textsf{gnuplot} a exportované do EPS. \end{center} \begin{center} \small % Zmenšený stupeň pro popis obrázku, lokální pro ‘center.’ \includegraphics[height=.8\linewidth,angle=-90]{brejle} % Pozor: originál % obrázku je pootočen o 90 stupňů proti směru hod. ručiček. Aby byl ve % správné poloze, je třeba jej pomocí klíče ‘angle=-90’ otočit ve směru % hodinových ručiček, a prohodit klíč ‘width’ za ‘height’. \vspace{1ex} % Trošku vertikální prostor mezi obrázek a jeho popis.
29
640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701
Bitmapa konvertovaná do EPS programem \textsf{Gimp} (s~laskavým svolením autora). \end{center} \subsection{Plovoucí objekty}\label{floats}%/////////////////////////////// Grafika a tabulky se nemohou \uv{zlomit} přes stránku, takže je nemůžeme umístit na zcela libovolné místo. V odborných publikacích se proto obrázek nebo tabulka opatří očíslovaným popisem (anglicky figure/table caption) a nechá se spolu s~ním \uv{vyplavat} na horní nebo dolní okraj stránky, popřípadě, jsou-li veliké, se umístí na samostatnou stránku. V textu se pak na ně odkáže pomocí čísla. \begin{figure}[b] % Prostředí ‘figure’ bude plavat naspod (bottom) stránky. \begin{minipage}{.48\linewidth} % Prostředí ‘minipage’ o šířce 48%. % délky řádku. \centering % Obsah prostředí ‘minipage’ (obrázky) bude centrován. % Zadáme-li jak šířku, tak výšku grafiky, bude deformován její % přirozený poměr stran (aspect ratio). Pozor, uvnitř ministránky % je délka řádky už rovna 48% normální délky řádky, takže šířka obrázku % je nastavena na 70% délky řádky uvnitř ‘minipage’: \includegraphics[width=\linewidth,height=.7\linewidth]{far_in_b} \end{minipage}\hfill% ‘Odtlačí’ obě ministránky od sebe co to jde. \begin{minipage}{.48\linewidth} \centering \includegraphics[height=\linewidth,angle=-90]{brejle} \end{minipage} % Popiska s odkazovacím klíčem. \caption{\label{flosamp}Ukázka dvou obrázků umístěných v~jednom plovoucím prostředí a opatřených společnou popiskou. Veškerý tento materiál \uv{plave} naspod stránky~-- viz nepovinný argument prostředí \textsf{figure}. Deformace levého obrázku byla způsobena úmyslně a je popsána komentářem ve zdrojovém textu.} \end{figure} Tento postup implementuje \LaTeX{} skrze prostředí \texttt{figure} a \texttt{table}. Může v~nich být umístěno cokoli, nejen grafika nebo tabulka, podstatné je to, že materiál umístěný do takového prostředí \uv{plave} na vrchol nebo spodek stránky. Typicky se do nich umisťuje obrázek (obrázky) pomocí příkazu \verb+\includegraphics+, tabulka pomocí prostředí \textsf{tabular} a příslušná popiska pomocí příkazu \verb+\caption+ opatřená značkou \verb+\label+. Obě prostředí se liší pouze tím, jaké slovo generují na začátku popisu (\uv{Obrázek} nebo \uv{Tabulka}). Automataticky aktualizovaný číselný odkaz na obrázek nebo tabulku v~textu vytvoříme pomocí referenčního příkazu \verb+\ref+. V~jednom plovoucím prostředí může být i~více obrázků a popisů. Umisťování plovoucích objektů se řídí určitými pravidly; hlavní zásadou je, aby se plovoucí objekt objevil v~sekci, kde se na něj poprvé odkazuje, což není snadné dodržet. Příklad je na Obrázku~\ref{flosamp} % Odkaz na obrázek. na straně~\pageref{flosamp}. % Odkaz na stranu, na níž se obrázek nachází. Další možností je používat obrázky obtékané textem. V odborných publikacích se tohoto způsobu příliš neužívá, ale jinak je dost častý. Zde se jím nebudeme zabývat; \LaTeX{} jej podporuje skrze balíky \textsf{picins} nebo \textsf{wrapfig}. Příklad lze nalézt v \emph{Matematické pohádce} (text šířený na přednášce), v němž se balík \textsf{picins} používá k umisťování iniciál na začátky odstavců. \section{Žádný strach z matematiky!}\label{matika}%%%%%%%%%%%%%%%%%%%%%%%%% Sazba matematiky byla nákladnou záležitostí, protože představovala mimořádné pracovní zatížení; z toho důvodu zvolil Don Knuth jako přepínač
30
702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763
matematického/textového režimu symbol \$. S~\TeX em resp. \LaTeX em je sazba matematiky \emph{relativně} snadná a výsledek bezkonkurenční. Nebudeme zde suplovat standardní \LaTeX ové manuály~-- více či méně podrobný výklad matematické sazby lze nalézt v~libovolném z~nich. Spíše ukážeme, jak správně sázet některé matematické prvky typické pro fyziku. Připomeňme jen, že matematický mód \TeX u se řídí specifickými pravidly a je (většinou) jedno, kolik mezer (a zda vůbec nějaké) napíšeme. Způsob zápisu je tak velmi variabilní a je věcí osobního stylu, jak přehledně budou matematické zápisy vypadat. \subsection{Vzorce a formule}\label{formule}%////////////////////////////// Matematické vzorce mohou být buď textové (\textsl{inline math}), jako například $(a+b)^{2} = a^{2}+2ab+b^{2}$, % Matika uzavřená mezi $...$ nebo % \(...\). nebo vysazené (\textsl{display math}), jako následující Einsteinovy rovnice \[ % Začátek prostředí pro vysazenou matematiku. R_{\mu\nu} - \frac12 Rg_{\mu\nu} + \Lambda g_{\mu\nu} = \frac{8\pi G}{c^{4}} T_{\mu\nu}\,. \] % Konec prostředí pro vysazenou matematiku. Chceme-li se na vysazenou formuli odvolávat, použijeme prostředí \textsf{equation} a přidělíme jí symbolické jméno pomocí příkazu \verb!\label!: \begin{equation} % Začátek prostředí pro vysazenou očíslovanou matematiku. \Gamma(x) \equiv \lim_{n\rightarrow\infty} \prod_{\nu=0}^{n-1}\frac{n!\,n^{x-1}}{x+\nu} = \int_{0}^{\infty}\mathrm{e}^{-t}t^{x-1}\,\mathrm{d}x\,.\label{Gammafce} \end{equation} % Konec prostředí pro vysazenou očíslovanou matematiku. Definice integrálu v~(\ref{Gammafce}) je platná pouze pro $x>0$. Možnosti sazby matematiky jsou velice rozsáhlé, takže se omezíme na několik příkladů. K~systematickému studiu použijte~% \cite{Ryb:1995:LaTeX:,Kop-Dal:2004:LaTeXPodrPruv:,% Lam:1994:LaTeX:,Goo-Mit-Sam:1994:Companion:}. % Nejprve si zadefinujeme několik jednoduchých maker. % Ta by správně měla být umístěna v preambuli: \let\vector\mathsf \let\matrix\mathsf Soustava lineárních algebraických rovnic: \begin{equation} % Rovnici přiřadíme symbolický název ‘linalgsys’. \matrix{A}\cdot\vector{x} = \matrix{b} \label{linalgsys} \end{equation} \begin{equation} \matrix{A}=\left( \begin{array}{cccc} a_{11} & a_{12} & \cdots & a_{1N} \\ a_{21} & a_{22} & \cdots & a_{2N} \\ \vdots & \vdots & & \vdots \\ a_{M1} & a_{M2} & \cdots & a_{MN} \end{array} \right),\quad\vector{x}=\left( \begin{array}{c} x_{1} \\ x_{2} \\ \vdots \\ x_{N} \end{array} \right),\quad\vector{b}=\left( \begin{array}{c}
31
764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825
b_{1} \\ b_{2} \\ \vdots \\ b_{M} \end{array} \right) \end{equation} Na $N$ neznámých $x_{1},\ldots,x_{N}$ je naloženo $M$ rovnic. Koeficienty $a_{ij}$ a pravá strana $b_{i}$ jsou známá čísla. Funkce $h(t)$ a $H(f)$ jsou dvě různé reprezentace stejné závislosti. Jsou vázány přímou a inverzní \emph{Fourierovou transformací}: \begin{equation} H(f) = \int_{-\infty}^{\infty} h(t)\mathrm{e}^{2\pi\mathrm{i}ft}\,\mathrm{d}t \quad\stackrel{\mathrm{FT}}{\Longleftrightarrow}\quad h(t) = \int_{-\infty}^{\infty} H(f)\mathrm{e}^{-2\pi\mathrm{i}ft}\,\mathrm{d}f\,. \label{ft} \end{equation} \subsection{Matematická bižuterie}\label{bijou}%/////////////////////////// Matematická sazba hýří indexy, čárkami, proužky a vlnkami po straně, nad, pod a všude možně. Střízlivé užívání takových ozdob je nezbytností a čtenář nalezne poučení v~libovolném manuálu, třeba \cite{Kop-Dal:2004:LaTeXPodrPruv:}. Na tomto místě pouze demonstrujeme některé chyby. První z~nich se podaří udělat snad jen jednou, protože \TeX{} na ni upozorní. Jedná se např. o~dvojitý horní index, \verb+$x^n^2$+, kdy vyhlásí chybu \texttt{Double superscript}. Ze zápisu totiž není jasná priorita umocňování: zda se jedná o~${(x^n)}^2$ nebo o~$x^{(n^2)}$. Prioritu musíme vyznačit závorkami, kód \verb+${x^n}^2$+ dá ${x^n}^2$, kód \verb+$x^{n^2}$+ pak $x^{n^2}$. Ačkoli \TeX{} jasně oba případy jasně rozliší umístěním indexů, je vhodné kulaté závorky vyznačující prioritu umocňování ponechat pro čtenářovu lepší orientaci. Občasnou chybou, již \TeX{} ponechá nepovšimnutou, je chybné pořadí dolního indexu a proužku nebo vlnky nad znakem. Chceme-li například vysázet $\bar{\xi}_m$, použijeme kód \verb+$\bar{\xi}_m$+. Kdybychom do argumentu příkazu \verb+\bar+ zahrnuli index, \verb+$\bar{\xi_m}$+, proužek se vycentruje přes $\xi_m$ a vzhledem ke znaku $\xi$ bude posunut příliš doprava: $\bar{\xi_m}$. Nadužívání matematické bižuterie však, podle autorova skromného mínění, není vždy ve prospěch čitelnosti, spíše se asi jedná o~jistou formu exhibicionismu projevující se zejména u~některých matematiků. Jako příklad uveďme třeba $\tilde{A}^{x_{i}^{2}}_{j^{2n’}_{n’,m’}}$.\marginpar{\scriptsize\sffamily To opravdu nevypadá hezky\ldots} % Takhle jednoduše se dají udělat marginálie. Jak vidíte, ani \LaTeX{} se při sazbě takové nevkusnosti neubránil zvětšení řádkování. Jistě, mohli bychom snadno přinutit \LaTeX{} ponechat řádkování netknuté, ale je otázkou, jestli je ošklivější rozhozená řádková osnova nebo indexy zasahující do sousedních řádků. \subsection{Co se ve vzorcích sází antikvou}\label{mathant}%/////////////// V~matematickém módu sází \TeX{} písmena \texttt{a} až \texttt{z} a \texttt{A} až \texttt{Z} implicitně matematickou kurzívou~-- tedy jako identifikátory $a$ až $z$ a $A$ až $Z$. Prakticky všechno, co není identifikátor proměnné, by se mělo sázet základním řezem písma~-- antikvou~--, včetně číslic, závorek, operátorů, atd. Tato Subsekce je z~velké části inspirována \emph{Yetiho typografickým bestiářem}~\cite{Nec:2003::YetiTypoBest}.
32
826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887
Typicky se jedná o~zkratky funkcí a operátorů, pro které \LaTeX{} poskytuje makra typu \verb+\sin+, \verb+\cos+, \verb+\log+, \verb+\lim+ ap. Někdy je třeba je předefinovat podle příkladu na konci Subsekce~\ref{czmath}. (Definujeme-li \emph{nový} příkaz místo redefinování již existujícího, použijeme \verb+\newcommand+ místo \verb+\renewcommand+; viz též příkaz \verb+\providecommand+ popsaný v~komentáři v~preambuli.) Antikva se zásadně používá pro jednotky, např. hodnota gravitační konstanty je $0.6672\times10^{-7}\,\mathrm{cm^{3}\,g^{-1}\,s^{-2}}$, nikoli $0.6672\times10^{-7}\,cm^{3}\,g^{-1}\,s^{-2}$. % Od číselné hodnoty se % jednotka odděluje zúženou % mezerou \, Je nezlomitelná % a má vhodnou velikost. Dále třeba $f=110\,\mathrm{Hz}$, $p=101125\,\mathrm{kPa}$. V~tomto duchu ale za jednotku považujeme také třeba hmotnost Slunce, takže bychom ji měli zapisovat $\mathrm{M}_{\odot}$ místo $M_{\odot}$. Nehezky vypadá zkratka pro elektronvolt, protože neexistuje kerning mezi minuskou \uv{e} a verzálkou \uv{V}: $E=13.6\,\mathrm{eV}$. Tady je vhodné obě písmena přitáhnout k~sobě pomocí záporného kernu: \verb+$E=13.6\,\mathrm{e\kern-.10em V}$+ dá $E=13.6\,\mathrm{e\kern-.10em V}$. Pro praktické použití bychom si jistě napsali makro, třeba % Definice příkazu s volitelným parametrem. Příkaz % \ensuremath umožní používat \eV i mimo matematický mód. \verb+\newcommand{\eV}[1][]{\ensuremath{\mathrm{#1e\kern-.10em V}}}+. Matematická kurzíva by se měla použít jen pro proměnné; jakákoliv speciální označení by měla být antikvou, aby se dalo na srozuměnou, že se bavíme např. o~jedinečném Eulerově čísle $\mathrm{e}=2.718281828\ldots$, nikoli o~nějaké obyčejné proměnné $e$. Antikvou se sází \uv{i} v~roli imaginární jednotky: $z=x+\mathrm{i}y$. Pochopitelně, při častém výskytu si napíšeme makro. Antikva se používá pro značky nematematických objektů, zejména chemických prvků a elementárních částic: \[ \mathrm{CH_{4} + 2O_{2} \longrightarrow 2H_{2}O + CO_{2}}, \] nebo třeba rovnice pro $\beta$-rozpad \[ \mathrm{n \longrightarrow p^{+} + e^{-} + \bar{\nu}_{e}}. \] V~rovnici pro $\beta$-rozpad se projevuje nedostatek Computer Modern fontů: absence svislého řezu řeckých písmen. Řešením je použití fontu Times pro text a komerční distribuce matematického Timesu zvané MathTime a MathTime~Plus za asistence balíku \textsf{mathtime} \cite{Mit-Car:1977::MathTime}. Jakákoli slova a zkratky, která vůbec neoznačují objekty, ze rovněž sázejí antikvou: \[ \delta_{ik} = \left\{\begin{array}{lll} 1 & \mbox{pro} & i=k\\ 0 & \mbox{pro} & i\neq k \end{array}\right. \] V~české matematické typografii (viz též Subsekci~\ref{czmath}) se antikvou sází např. diferenciál, jehož vhodnou definici lze vidět před následujícím vzorcem ve zdrojovém textu: \newcommand{\dif}{\mathrm{d}} % Mezi česká specifika patří i diferenciál % sázený antikvou. Tato definice by měla být % uvedena v preambuli. \begin{equation} \dif s^{2}
33
888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949
= -\left(1-\frac{2M}{r}\right)^{-1}\,\dif t^{2} % \, = zúžená mezera +\left(1-\frac{2M}{r}\right)\,\dif r^{2} % před diferenciálem. +r^{2}(\dif\phi^{2}+\sin^{2}\theta\,\dif\phi^{2}). \end{equation} Kromě uvedených případů se antikvou sází také \uv{deskriptivní} indexy, tj. indexy, které upřesňují název proměnné, k~níž se váží, na rozdíl od proměnných indexů, které nabývají hodnot z~jisté množiny, a~které se sází obvyklou matematickou kurzívou. Příklad je označení poslední síly na pravé straně soustavy rovnic~(\ref{magnus})~-- horní index \uv{Mag} označuje, že se jedná o~Magnusovu sílu a sází se antikvou, dolní index je komponenta a sází se kurzívou. Obecné pravidlo zní~\cite{Nec:2003::YetiTypoBest}: \begin{quote} \itshape % Lokální pro prostředí ‘quote.’ Každý vícepísmenný symbol, který nevznikl kompozicí jednopísmenných symbolů, se sází antikvou. \end{quote} Příkladem budiž tzv. Reynoldsovo číslo $\mathrm{Re}\equiv vd/\nu$ používané v~hydro- a aerodynamice. \subsection{Kdy \LaTeX{} potřebuje lidskou intervenci}\label{humint}%////// Typickou doménou ručního dolaďování matematické sazby je úprava mezerování. Přestože \TeX{} dokonale ovládá pravidla pro sazbu matematického textu, nelze očekávat, že pochopí jeho matematický význam. Arzenál matematických mezer je popsán v~každém manuálu~\cite{Kop-Dal:2004:LaTeXPodrPruv:}, zde se omezíme na několik příkladů. Srovnejte například $\Gamma_{1}+\Delta^{2}$ a % \Gamma a \Delta mají tvar, který se standardním $\Gamma_{\!1}+\Delta^{\!2}$, % umístěním indexů dělá příliš velikou mezeru. kdy ve druhém případě byla vložena záporná malá mezera. Podobně násobné integrály je třeba pomocí záporných malých mezer přitáhnout k~sobě. Srovnej \[ \int\int_{\partial\Omega}f(x,y)\,\dif x\,\dif y\qquad\mbox{a}\qquad \int\!\!\!\int_{\partial\Omega}f(x,y)\,\dif x\,\dif y. % Integrály k sobě. \] Někdy je zase třeba mezeru zvětšit, typický příklad je \[ \sqrt{2}x\qquad\mbox{a}\qquad\sqrt{2}\,x, % Odraž x od odmocniny. \] kdy v~prvním případě je $x$ příliš \uv{nalepeno} k~odmocnině a je vhodné je oddělit malou mezerou \verb+\,+. Při odmocňování logaritmu $\sqrt{\log x}$ je, aspoň u~fontů Computer Modern, příliš malá mezera mezi znakem odmocniny a logaritmu. Výsledek bude vypadat lépe, když ji zvětšíme pomocí malé mezery \verb+\,+: $\sqrt{\,\log x}$. Základní pravidlo intervenování do matematické sazby: \emph{méně je někdy více}, zvláště když se textem po vás bude zabývat ještě někdo další, třeba editor sborníku. Vždy se totiž snazší a rychlejší něco do vzorce připsat než umazávat. Nechte černou práci na \TeX u, dělá ji dobře, a~pomozte mu jen tehdy, je-li to opravdu třeba. Dobrým průvodcem může být např. \emph{Yetiho typografický bestiář}~\cite{Nec:2003::YetiTypoBest}. \subsection{Vybraná specifika \uv{českojazyčné} matematiky}\label{czmath}%/ Sazba matematiky v~českém (a~většinou i~evropském) prostředí vykazuje některé odlišnosti od standardu \emph{American Mathematical Society}, který je (v~podstatě) implementován v~algoritmech \TeX u. Zmiňme nejjednodušší z~nich; pro podrobnější poučení viz~\cite{Hor:2001:CSTUGbul:CZmat}.
34
950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011
Jedním z~problémů je používání desetinné čárky místo desetinné tečky. Čárka je v~matematickém režimu \TeX em chápána jako oddělovač v~seznamu, takže je za ní automaticky sázena mezera, což je nežádoucí; srovnej $\pi\approx 3.14159265358$ s $\pi\approx 3,14159265358$. Tuto estetickou vadu lze napravit uzavřením desetinné čárky do skupiny, pak je $\pi\approx 3{,}14159265358$. Komu by se ale pokaždé chtělo psát složené závorky\ldots{} Je možné předefinovat tečku tak, aby se v~matematickém režimu sázela sice jako čárka, ale zapisovala a chovala jako tečka. Docílíme toho definicí \verb+\DeclareMathSymbol{.}{\mathord}{letters}{"3B}+ v~preambuli. Dalším rozdílem je sazba jednotek. Anglosaská typografická tradice používá na oddělení základních jednotek zúženou mezeru, česká vystředovanou tečku: $v=90\,\mathrm{km\,h^{-1}}$ a $v=90\,\mathrm{km\cdot h^{-1}}$. Místo násobicího křížku, $M=1.989\times 10^{33}\,\mathrm{g}$ se v~českých textech dává přednost násobicí tečce: $M=1{,}989\cdot 10^{33}\,\mathrm{g}$. Při zlomu dlouhých vzorečků a formulí se značky relačních operátorů na koncích řádků v~anglosaské typografii vynechávají, zatímco česká typografie preferuje jejich opakování. Příklady viz Subsekce~\ref{long}. Jako poslední uveďme odlišný úzus v~označování některých \uv{log-like functions}; např. v~češtině se používá pro tangens zkratky \uv{tg} namísto \uv{tan,} pro kotangens \uv{cotg} místo \uv{cot.} Na druhé straně je rozumné používat standardní makra \verb+\tan+ a \verb+\cot+, která zajistí vysazení zkratek v~matematickém módu antikvou. Elegantní řešení nabízí předefinování makra definovaného ve formátu: \verb+\renewcommand{\tan}{\mathop{\operator@font tg}\nolimits}+. Pakliže takovou redefinici umístíte do preambule dokumentu, nezapomeňte ji \uv{obalit} příkazy \verb+\makeatletter+ a \verb+\makeatother+~-- proč, je vysvětleno v~komentáři před dodatkem s~výpisem zdrojového textu. \subsection{Lámání dlouhých formulí a víceřádkové formule}\label{long}%//// Občas je vzoreček tak dlouhý, že se nevejde na jeden řádek. V~takovém případě jej musíme rozdělit na dva nebo více řádků. Pro takový případ a taky pro sazbu víceřádkových formulí slouží prostředí \textsf{eqnarray}, \setlength{\arraycolsep}{0.17em} % Autorovi se osvědčila tato ‘korekce’ % nepříliš sťastně definovaného prostředí % ‘eqnarray.’ \begin{eqnarray} (\omega a)^2 y_1 \int_0^{x_1}\frac{\bar\zeta^2\,\dif x}{x^2 y^3} {}&=&\frac{y_1}{4{(1+\lambda)}^2} % Znaky ‘&’ uzavírají znak, % který má lícovat. \int_0^{x_1}\frac{{(1-2\lambda)}^2(2y^2-1)-9y_1^2}% {x^2y^3}{\bar{\zeta}}^2\,\dif x\nonumber\\ % První část nečíslovat. {}&+&\frac{\gamma(1-2\lambda)}{8{(1+\lambda)}^3} % Lícující znak. Před % ‘+’ je prázdná skupina {}, která TeX % ‘ošálí’, aby jej chápal jako binární, % nikoliv unární plus. \int_0^{x_1}\!\bar{\zeta}’^2 \frac{\left(y-y_1\right){\left[3y_1-\left(1-2\lambda\right)y\right]}^2}% {x^2 y}\,\dif x, \end{eqnarray} nebo ve variantě s~opakováním relačního operátoru (viz Subsekce~\ref{czmath}), \begin{eqnarray} (\omega a)^2 y_1 \int_0^{x_1}\frac{\bar\zeta^2\,\dif x}{x^2 y^3} {}&=&\frac{y_1}{4{(1+\lambda)}^2} % Znaky ‘&’ uzavírají znak, % který má lícovat. \int_0^{x_1}\frac{{(1-2\lambda)}^2(2y^2-1)-9y_1^2}% {x^2y^3}{\bar{\zeta}}^2\,\dif x+\nonumber\\ % První část nečíslovat. {}&+&\frac{\gamma(1-2\lambda)}{8{(1+\lambda)}^3} % Lícující znak.
35
1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073
\int_0^{x_1}\!\bar{\zeta}’^2 \frac{\left(y-y_1\right){\left[3y_1-\left(1-2\lambda\right)y\right]}^2}% {x^2 y}\,\dif x. \end{eqnarray} Nutno přiznat, že prostředí \textsf{eqnarray} není zrovna povedené. Lepší je použít balíku \textsf{amsmath}, které definuje prostředí jako \textsf{gather}, \textsf{multline}, \textsf{align} a mnoho dalších, a spoustu dalších příjemných maker pro práci s~maticemi a podobně. Pro udržení jednoduchosti tohoto dokumentu balík \textsf{amsmath} nepoužíváme; podrobná dokumentace bývá součástí distribucí~\cite{AMS:1999::AMSmath}. Na závěr uvedeme typickou víceřádkovou formuli: \begin{eqnarray} m\frac{\dif^{2}x}{\dif t^{2}} &=& \hphantom{mg+{}} % Lícovat budou rovnítka. Abychom vynechali místo % na člen ‘mg+’, použijeme triku s \hphantom, % který vynechá místo přesně o šířce svého % argumentu. Všimněte si, že v něm je za plus % prázdná skupina. \frac12CS\rho vv_{x} + F^{\mathrm{Mag}}_{x},\nonumber\\ m\frac{\dif^{2}y}{\dif t^{2}} &=& \hphantom{mg+{}} \frac12CS\rho vv_{y} + F^{\mathrm{Mag}}_{y}, \label{magnus}\\ m\frac{\dif^{2}z}{\dif t^{2}} &=& mg + \frac12CS\rho vv_{z} + F^{\mathrm{Mag}}_{z}.\nonumber \end{eqnarray} Podívejte se do zdrojáku, jak je vynecháno místo na člen $mg+{}$, který se vyskytuje jen ve třetí rovnici. Existuje situace, kdy musíme jistým způsobem rozdělit i~\textsl{inline math}: při sazbě rozsahů bychom měli zásadně používat pomlčku na půlčtverčík (viz Subsekce~\ref{havet}). V~tomto případě je třeba přerušit matematický režim; jinak obvyklý kód pro pomlčku na půlčtverčík, \verb+--+, vytvoří dvě matematická minus za sebou: $M=10^{6}--10^{9}\,\mathrm{M}_{\odot}$. Kód \verb+$M=10^{6}$--$10^{9}\,\mathrm{M}_{\odot}$+ vysází správně $M=10^{6}$--$10^{9}\,\mathrm{M}_{\odot}$. \subsection{Axiomy, definice, věty, lemmata a důsledky}\label{axiom}%////// \LaTeX{} poskytuje flexibilní způsob definování číslovaných textových struktur typů uvedených v~nadpisu. Například potřebujeme-li používat číslované definice a věty, umístíme v~preambuli například příkazy % Prostředí ‘verbatim’ vysází doslovně svůj obsah. \begin{verbatim} \newtheorem{definice}{Definice} \newtheorem{veta}{Věta} \end{verbatim} \newtheorem{definice}{Definice} % Tohle by mělo být v preambuli, kterou \newtheorem{veta}{Věta} % jsem nechtěl předčasně komplikovat. které pak můžeme použít k~vytvoření \begin{definice} % Použití nového prostředí ‘definice’. Nechť a, b, c jsou po řadě délky odvěsen a přepony pravoúhlého trojúhelníka. \end{definice} \begin{veta}[Pythagorova] % Použití nového prostředí ‘veta’. Lze použít % nepovinný argument specifikující autora věty. Pro každý pravoúhlý trojúhelník platí $a^{2}+b^{2}=c^{2}$. \end{veta} \begin{veta}[Bolzanova--Weierstra{\ss}ova] \label{bw} Z~každé omezené posloupnosti lze vybrat konvergentní posloupnost. \end{veta}
36
1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135
\begin{veta}[Velká Fermatova] \label{fermat} Pro $n>2$ nemá rovnice $x^{n} + y^{n} = z^{n}$ celočíselná řešení. \end{veta} Na čísla těchto prostředí se lze odkazovat pomocí již popsaného mechanismu \verb!\label!--\verb!\ref!: Znalost Věty~\ref{bw} (Bolzanovy--Weierstra{\ss}ovy) je nutnou, ale nikoli postačující podmínkou ke složení zkoušky. \subsection{Rozšíření standardní \LaTeX ové matematiky}\label{extmath}%//// Standardní \LaTeX{} poskytuje nástroje pro řešení většiny každodenních problémů matematické sazby. V~komplikovanějších případech stojí za zvážení použití rozšiřujících balíků Americké matematické společnosti. Jeden z~nich, \textsf{amsmath} (manuál~\cite{AMS:1999::AMSmath} by měl být součástí distribuce), jsme zmínili v~Subsekci~\ref{long}. Poskytuje komfortní prostředí pro \textsl{display math} s~možností nastavení, pro sazbu matic, nástroje pro sazbu řetězových zlomků, násobných integrálů, operátorů a všeho, po čem matematikova duše prahne. Dalším šikovným balíčkem je \textsf{amssymb} (manuál~\cite{AMS:2001::AMSfonts} by opět měl být součástí distribuce), jenž dále rozšíří bohatý arzenál značek, operátorů, relací a matematické bižuterie standardního \LaTeX u. Zamýšlíme-li sázet matematiku rozsáhlejšího díla, vyplatí se seznámit systematicky s~pravidly matematické sazby \cite{Wic:1966:PravMatSaz:}. Dalším zdrojem informací je v~Subsekci~\ref{humint} zmíněný \emph{Yetiho typografický bestiář}~\cite{Nec:2003::YetiTypoBest}. \section{Jazykové přizpůsobení}\label{lang}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% V~preambuli byl načten balík \textsf{babel} s~češtinou jako primárním a britskou angličtinou jako sekundárním jazykem příkazem % Prostředí ‘verbatim’ vysází doslovně svůj obsah. \begin{verbatim} \usepackage[british,czech]{babel} \end{verbatim} V~česky psaném dokumentu pak lze pro anglicky psaný úryvek lokálně přepnout do angličtiny. Bližší informace o~možnostech balíku \textsf{babel} jsou v~manuálu~\cite{Bra:2006::Babel}. V~následujícím krátkém úryvku anglického textu je v~levém sloupci ponecháno nastavení do implicitní češtiny, v~pravém, stejně širokém sloupci s~identickým textem je pomocí příkazu z~balíku \textsf{babel} \verb!\selectlanguage{british}! lokálně přepnuto do britské angličtiny~-- srovnejte dělení slov v~obou sloupcích (v~levém chybné, v~pravém správné): \vspace{2ex} % Trošku vertikální prostor mezi text a ukázky. \noindent % Potlačí odstavcovou zarážku následujícího odstavce. \begin{minipage}{.48\linewidth} % Prostředí ‘minipage’ o šířce 48%. LaTeX is based on the idea that authors should be able to focus on the content of what they are writing without being distracted by its visual presentation. In preparing a LaTeX document, the author specifies the logical structure using familiar concepts such as chapter, section, table, figure, etc., and lets the LaTeX system worry about the presentation of these structures. It therefore encourages the separation of layout from content while still allowing manual typesetting adjustments where needed. This is similar to the mechanism by which many word processors allow styles to be defined globally for an entire document or the use of Cascading Style Sheets to style HTML. \end{minipage}\hfill% ‘Odtlačí’ obě ministránky od sebe co to jde. \begin{minipage}{.48\linewidth} \selectlanguage{british}
37
1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197
LaTeX is based on the idea that authors should be able to focus on the content of what they are writing without being distracted by its visual presentation. In preparing a LaTeX document, the author specifies the logical structure using familiar concepts such as chapter, section, table, figure, etc., and lets the LaTeX system worry about the presentation of these structures. It therefore encourages the separation of layout from content while still allowing manual typesetting adjustments where needed. This is similar to the mechanism by which many word processors allow styles to be defined globally for an entire document or the use of Cascading Style Sheets to style HTML. \end{minipage} \section{Závěrečná poznámka}\label{zaver}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Pokud jste dočetli až sem a vyzkoušeli si vše sami na počítači, pak máte těžký začátek za sebou. Teď před vámi leží mlékem a strdím oplývající krajina \TeX u a \LaTeX u, plná oku lahodících tiskovin. Dejte vale Wordu a běžte si jí užívat plnými doušky! \renewcommand{\refname}{Literatura} % Chci jiný název než implicitní % ‘Reference’! {\sloppy % Benevolentnější nastavení parametrů odstavce zabraňující % vzniku pře/podtečených boxů, za cenu větších mezislovních mezer. % Platnost vymezena lokálně složenými závorkami. \bibliography{\jobname} % Zde bude vysázena bibliografie podle stylu % specifikovaného argumentem příkazu \bibliographystyle % (viz výše za \begin{document} a \maketitle). Argument % příkazu \bibliography specifikuje název souboru % (bez extenze .bib) nebo souborů oddělených čárkou, % v nichž je databáze uložena. \par} \newpage % Vynutí ukončení stránky a přechod na novou stránku. \null % Prázdný element, aby následující \newpage měl účinek. \thispagestyle{empty} % Tato stránka bude prázdná, i bez str. číslice. \newpage % Chceme totiž začít Dodatky na liché stránce kvůli % oboustrannému tisku, a Reference končí rovněž na liché. \appendix % Cokoli následuje tento příkaz, bere se jako dodatek. \makeatletter % Změní kategorii znaku zavináče na ‘letter’. Bez této změny % by následující redefinice, která zajistí předsunutí slova % ‘Dodatek’ před písmeno, skončila chybou, protože % v dokumentu má zavináč kategorii ‘other’ a nelze jej % ‘beztrestně’ použít. V knihovních souborech .cls, .sty apod % má naopak kategorii ‘letter’ a je obsažen ve většině % LaTeXových interních příkazů, jenž nejsou určeny k běžnému % použití. Tímto mechanismem se eliminuje nebezpečí kolize % jména příkazu s neočekávanými důsledky. \renewcommand{\@seccntformat}[1]{\appendixname\ \csname the#1\endcsname\quad} \makeatother % A nezapomenout vrátit zavináči původní kategorii! \section{Kdo jest \uv{bažák}}\label{bazak}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \emph{Bažák} (též \emph{bedlivák}) jest dle proslulého českého libomudruna a vynálezce Jakuba Hrona Metánovského, zajisté předobrazu Járy Cimrmana, osoba bažící po poznání, v~dnešní terminologii tedy student. Bažák jest vyučován a zkoušen~-- zpytován~-- \emph{zpytákem}, neboli profesorem. Jakub Hron byl středoškolským profesorem matematiky a fyziky, jenž svou kariéru po ukončení studií v~Praze a Vídni začínal v~Opavě. Známým vynálezem Jakuba Hrona, na který mu byl udělen patent, je bezpečnostní nepřevrhnutelný kalamář udržující na principu zkráceného tlakoměru konstantní výšku hladiny
38
1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255
inkoustu~-- tzv.~\emph{buňát nezkotitelný}. Používal jej např. Čapek.
také Karel
Jakub Hron Metánovský je autorem mnoha krásných českých slov jako \emph{čujba} (estetika), \emph{libomudravna} (filozofie), \emph{bezabecedník} (negramotný člověk), \emph{hbitkolo} (kolo, bicykl), \emph{podnosnice libočudná} (cigareta). Mezi jeho díla patří gnoseologická rozprava \emph{Čujba a jsoucno prostora}. Psal také kouzelné verše: \begin{verse} Krátký jest blábol,\\ dlouhý jest žal,\\ dříve rozumně zápol\\ a nerozum s~beder svých sval.\\ Sval blábol a nerozum,\\ s~rozumem svým se dorozum. \end{verse} O~Jakubu Hronovi Metánovském pojednává například stránka \url{http://www.atuka.org/index.php/article/articleview/22/1/}. \section{Výpis zdrojového textu}\label{zdroj}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Následující výpis je autentickým kompletním zdrojovým textem tohoto dokumentu. Načtením balíku \textsf{moreverb} v~preambuli je k~dispozici (mimo jiné) příkaz \verb!\listinginput!, jenž umožňuje načíst soubor specifikovaný jeho druhým argumentem a vysázet jej v~doslovném (verbatim) modu, kdy nedochází k~interpretaci speciálních znaků a respektuje se rozložení textu včetně netisknutelných znaků. {\footnotesize\listinginput{1}{bazak}}
% Načteme vlastní zdroják bazak.tex. % Deklarace {\footnotesize ...} upraví % lokálně stupeň písma. Extenzi .tex % není třeba explicitně specifikovat.
\section{Výpis bibliografické databáze}\label{biblio}%%%%%%%%%%%%%%%%%%%%%% Následující výpis je autentickým kompletním zdrojovým textem bibliografické databáze \texttt{\jobname.bib}. Každá položka bibliografie je opatřena klíčem uvedeným mezi otevírací závorkou \verb!{! a \uv{\texttt{,}} (např. klíč položky začínající na řádku~38 je \texttt{Knu:1986:TeXbook:}), který při odkazu použijeme v~argumentu příkazu \verb!\cite!. Takto citované klíče jsou \LaTeX em zapsány do pomocného souboru \texttt{bazak.aux}, jenž slouží jako vstupní soubor pro program \textsc{Bib}\TeX. Ten ze souboru \texttt{\jobname.bib} obsahujícího bibliografickou databázi (jeho jméno je argumentem nebo jedním z~argumentů příkazu \verb!\bibliography!) \uv{vytáhne} položky odpovídající všem nalezeným klíčům, zformátuje je podle stylu specifikovaného argumentem příkazu \verb!\bibliographystyle! a zapíše do souboru \texttt{bazak.bbl} ve formě prostředí \textsf{thebibliography}. Tento soubor je při následujícím běhu načten v~místě příkazu \verb!\bibliography!, tj. jako by prostředí \textsf{thebibliography} bylo právě v~tomto místě. {\footnotesize\listinginput{1}{\jobname.bib}} \end{document}
% Načteme soubor bazak.bib.
% Konec dokumentu.
Cokoli je zde, bude \LaTeX em ignorováno i~bez odkomentování.
39
Dodatek C
Výpis bibliografické databáze
Následující výpis je autentickým kompletním zdrojovým textem bibliografické databáze bazak.bib. Každá položka bibliografie je opatřena klíčem uvedeným mezi otevírací závorkou { a „,ÿ (např. klíč položky začínající na řádku 38 je Knu:1986:TeXbook:), který při odkazu použijeme v argumentu příkazu \cite. Takto citované klíče jsou LATEXem zapsány do pomocného souboru bazak.aux, jenž slouží jako vstupní soubor pro program BibTEX. Ten ze souboru bazak.bib obsahujícího bibliografickou databázi (jeho jméno je argumentem nebo jedním z argumentů příkazu \bibliography) „vytáhneÿ položky odpovídající všem nalezeným klíčům, zformátuje je podle stylu specifikovaného argumentem příkazu \bibliographystyle a zapíše do souboru bazak.bbl ve formě prostředí thebibliography. Tento soubor je při následujícím běhu načten v místě příkazu \bibliography, tj. jako by prostředí thebibliography bylo právě v tomto místě. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
$Id: latex.bib,v 0.12 2006/03/04 12:01:15 sta Exp sta $ První řádek je jen záznam RCS systému pro udržování verzí. Definice řetězce pro spojování (concatenation) jiných řetězců. Příklad je na řádku 176: author = "H. Kopka" #and# "P. W. Daly", kde ‘and’ mezimřížkami je první ‘and’ v definici řetězce @STRING{and = " and "} jež expanduje na hodnotu v definici řetězce, tj. ‘ and ’ obklopené z obou stran mezerami. Syntaxe BibTeXu umožňuje i zápis author = "H. Kopka and P. W. Daly", (kde ‘ and ’ odpovídá hodnotě v hořejší definici řetězce), ale první způsob je přehlednější. Následující definice umístí svůj argument, tj. LaTeXovou definici příkazu \noopsort, před prostředí ‘thebibliography’ v BibTeXem vygenerovaným souborem bazak.bbl. \noopsort definuje příkaz, který ‘zhltne’ svůj jediný argument, který se tak v sazbě vůbec neprojeví, což lze použít k obelstění BibTeXu. Kdybychom příkazy \noopsort{a} a \noopsort{b} nezařadili do polí ‘year’ u knih ‘Knu:1986:TeXbook:’ a ‘Knu:1986:TeXprog:’, (řádky 44 a 54), BibTeX by je uvedl v opačném pořadí. Blíže viz dokumentace BibTeXu. @PREAMBLE{ "\newcommand{\noopsort}[1]{}" } Následující záznam je neaktivní, neboť před označením ‘BOOK’ chybí ‘zavináč’. Takto lze položky snadno ‘odstavit’. BOOK{Knu:1993:TeXbook:, author = "D. E. Knuth", title = "{The {\TeX book}}", series = "Computers and Typesetting", volume = "A", publisher = "Addison-Wesley Publishing Company", year = "1993", address = "Reading, Massachusetts", note = "ISBN 0-201-13448-9", } Odtud začínají aktivní záznamy bibliografické databáze. @BOOK{Knu:1986:TeXbook:, author = "D. E. Knuth", title = "{The {\TeX book}}", series = "Computers and Typesetting", volume = "A", publisher = "Addison-Wesley Publishing Company", year = "{\noopsort{a}}1986", address = "Reading, Massachusetts",
40
46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107
} @BOOK{Knu:1986:TeXprog:, author = "D. E. Knuth", title = "{{\TeX}: The Program}", series = "Computers and Typesetting", volume = "B", publisher = "Addison-Wesley Publishing Company", year = "{\noopsort{b}}1986", address = "Reading, Massachusetts", } @BOOK{Knu:1986:MFbook:, author = "D. E. Knuth", title = "{The METAFONTbook}", series = "Computers and Typesetting", volume = "C", publisher = "Addison-Wesley Publishing Company", year = "{\noopsort{c}}1986", address = "Reading, Massachusetts", } @BOOK{Knu:1986:MFprog:, author = "D. E. Knuth", title = "{METAFONT: The Program}", series = "Computers and Typesetting", volume = "D", publisher = "Addison-Wesley Publishing Company", year = "{\noopsort{d}}1986", address = "Reading, Massachusetts", } @BOOK{Knu:1986:CMType:, author = "D. E. Knuth", title = "{Computer Modern Typefaces}", series = "Computers and Typesetting", volume = "E", publisher = "Addison-Wesley Publishing Company", year = "{\noopsort{e}}1986", address = "Reading, Massachusetts", } @BOOK{Doo:1990:JemnyUvod:, author = "M. Doob", title = "{Jemný úvod do {\TeX u}. Manuál pro samostatné studium}", publisher = "Univerzita Karlova", year = "1990", address = "Praha", note = "ISBN 80-7066-308-1", } @BOOK{Ols:1995:TST:, author = "P. Olšák", title = "{Typografický systém {\TeX}}", publisher = "Československé sdružení uživatelů \TeX u", year = "1995", address = "Praha", edition = "První", note = "ISBN 80-901950-0-8", } @BOOK{Ols:1997:TBN:,
41
108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169
author = title = publisher = year = address = edition = note =
"P. Olšák", "{{\TeX book} naruby}", "Konvoj", "1997", "Brno", "První", "ISBN 80-85615-64-9",
} @BOOK{Eij:1992:TeXbyTopic:, author = "V. Eijkhout", title = "{{\TeX} by Topic. A {\TeX}nician’s Reference}", publisher = "Addison-Wesley", year = "1992", address = "Harlow", } @BOOK{Lam:1994:LaTeX:, author = "L. Lamport", title = "{{\LaTeX}---A Document Preparation System. Updated for {\LaTeXe}}", publisher = "Addison-Wesley", year = "1994", address = "Reading MA", edition = "second", note = "ISBN 0-201-52983-1", } @BOOK{Ryb:1995:LaTeX:, author = "J. Rybička", title = "{\LaTeX{} pro začátečníky}", publisher = "Konvoj", year = "1999", address = "Brno", edition = "Druhé", note = "ISBN 80-85615-74-6", } @BOOK{Goo-Mit-Sam:1994:Companion:, author = "M. Goossens" #and# "F. Mittelbach" #and# "A. Samarin", title = "{The {\LaTeX{}} Companion}", publisher = "Addison-Wesley", year = "1994", address = "Reading, Massachusetts", note = "ISBN 0-201-54199-8", } @BOOK{Goo-Rah-Mit:1994:GraComp:, author = "M. Goossens" #and# "S. Rahtz" #and# "F. Mittelbach", title = "{The {\LaTeX{}} Graphics Companion. Illustrating documents with {\TeX} and PostScript}", publisher = "Addison Wesley Longman Inc.", year = "1997", address = "Reading, Massachusetts", note = "ISBN 0-201-85469-4", } @BOOK{Goo-Rah:1994:WebComp:, author = "M. Goossens" #and# "S. Rahtz", title = "{The {\LaTeX{}} Web Companion. Integrating {\TeX}, HTML, and XML}", publisher = "Addison Wesley Longman Inc.",
42
170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231
year = address = note =
"1999", "Reading, Massachusetts", "ISBN 0-201-43311-7",
} @BOOK{Kop-Dal:2004:LaTeXPodrPruv:, author = "H. Kopka" #and# "P. W. Daly", title = "{{\LaTeX}. Podrobný průvodce}", publisher = "Computer Press", year = "2004", address = "Brno", note = "ISBN 80-722-6973-9", } @BOOK{Ska:2001:Kamen:, author = "J. Skácel", title = "Kdo učil mlčet kámen", edition = "{Versus}", publisher = "BB art", year = "2001", address = "Praha", note = "ISBN 80-7257-634-8", } @BOOK{Lan-Lif:1973:TeoPolja:cp-bazak, author = "L. D. Landau" #and# "J. M. Lifšic", title = "Teoriya polya", publisher = "Nauka", year = "1973", address = "Moskva", } @ARTICLE{Bod:2005:CSTUGbul:FAQ, author = "B. Bodenheimer", title = "{Často kladené otázky o {\TeX u} a odpovědi na ně}", journal = "Zpravodaj Československého sdružení uživatelů {\TeX u}", year = "2005", volume = "15", number = "2--4", pages = "94--331", note = "ISSN 1211-6661", } @ARTICLE{Hor:2001:CSTUGbul:CZmat, author = "K. Horák", title = "{Sazba matematiky v českých textech}", journal = "Zpravodaj Československého sdružení uživatelů {\TeX u}", year = "2001", volume = "11", number = "1--3", pages = "136--148", note = "ISSN 1211-6661", } @MANUAL{Hle:2006::Bazak, author = "S. Hledík", title = "{Bažákův průvodce publikačním systémem \LaTeX}", organization = "Slezská univerzita v Opavě, Filozoficko-přírodovědecká fakulta", address = "Opava", year = "2006", note = "Výukový materiál",
43
232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293
} @MANUAL{AMS:1999::AMSmath, author = "American Mathematical Society", title = "{User’s Guide for the \emph{amsmath} Package}", year = "1999", note = "Version 2.0, URL \url{file:///usr/share/texmf/doc/latex/amsmath/amsldoc.dvi}", } @MANUAL{AMS:2001::AMSfonts, author = "F. Mittelbach" #and# "R. Schöpf" #and# "M. Downes", title = "{The \emph{amsmath} package}", year = "2001", note = "Version 2.2f, URL \url{file:///usr/share/texmf/doc/latex/amsfonts/amsfonts.dvi}", } @MANUAL{Nec:2003::YetiTypoBest, author = "D. Nečas", title = "{Yetiho typografický bestiář}", year = "2003", note = "URL \url{http://trific.ath.cx/Ftp/tex/bestiary.ps.gz}", } @MANUAL{Oet-etal:2002::lshort, author = "T. Oetiker" #and# "H. Partl" #and# "I. Hyna" #and# "E. Schlegl", title = "{The Not So Short Introduction to {\LaTeXe} (Or {\LaTeXe} in 112~minutes)}", year = "2002", month = "December", note = "URL \url{file:///usr/share/texmf/doc/latex/general/lshort.dvi}", } @MANUAL{Mit-Car:1977::MathTime, author = "F. Mittelbach" #and# "D. Carlisle", title = "{The \emph{mathtime} and \emph{mathpi} packages}", year = "1977", note = "{This file has version number v1.0e, last revised 1997/10/10. Development of this package was commissioned by Y\&Y; URL \url{file:///usr/share/texmf/doc/latex/mathtime/mathtime.dvi}}", } @BOOK{Kne:1989:ZHistEvrKnihy:, author = "P. Kneidl", title = "{Z historie evropské knihy}", publisher = "Nakladatelství Svoboda", year = "1989", address = "Praha", note = "ISBN 80-205-0093-6", } @BOOK{Pop-Fle-Pop:1984:SazbaI:, author = "P. Pop" #and# "J. Fléger" #and# "V. Pop", title = "{Sazba I. Ruční sazba}", publisher = "Státní pedagogické nakladatelství", year = "1984", address = "Praha", }
44
294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334
@BOOK{Wic:1966:PravMatSaz:, author = "K. Wick", title = "{Pravidla matematické sazby}", publisher = "Academia", year = "1966", address = "Praha", } @BOOK{Men:1957:TvorTypoPis:, author = "O. Menhart", title = "{Tvorba typografického písma}", publisher = "SPN", year = "1957", address = "Praha", } @BOOK{Ber:1999:TypoMan:, author = "V. Beran", title = "{Typografický manuál~-- učebnice počítačové typografie}", publisher = "Kafka design", year = "1999", address = "Praha", note = "Druhé vydání", } @BOOK{Kol:1990:GraUpraTisk:, author = "Kolektiv", title = "{Grafická úprava tiskovin}", publisher = "SPN", year = "1990", address = "Praha", } @MANUAL{Bra:2006::Babel, author = "J. Braams", title = "{Babel, a multilingual package for use with \LaTeX’s standard document classes}", year = "2006", note = "\url{file:///usr/share/texmf/doc/generic/babel/babel.pdf}", }
45