DETAIL: Latex


LaTeX

A) ÚVOD

Latexovský dokument je obyčejný textový soubor - soubor příkazů pro překladač, které určují podobu výsledného dokumentu a vlastního textu. Text je tedy promíchán s příkazy (užitečné je používat syntax highlighting - klíčová slova mají jinou barvu nebo odstín než okolní text, umí to např. editor vi). Výstupní soubor se dostane až překladem tohoto souboru. Mezery mezi slovy textu ve vstupním souboru jsou chápány pouze jako oddělovače slov - když jich je více za sebou, dopadne to stejně, jako by tam byla pouze jedna. Dokonce i jeden znak nový řádek je chápán stejně jako mezera - pouze jako oddělovač slov. Pokud za sebou následují alespoň dva znaky nový řádek (prázdný řádek mezi odstavci ve vstupním souboru) je to chápáno jako příkaz pro přechod na nový odstavec.

V historii byl nejdříve vytvořen systém TeX (tvůrce je pan Donald E. Knuth) - tento systém dovoluje vytvářet v maximální míře různé detaily - je to soubor "malých krabiček" - malých funkcí. Dá se s ním pracovat, ale ne dostatečně pohodlně. Pro vyřešení tohoto problému byl vytvořen LaTeX, který nabízí uživateli podstatně "větší krabičky" (přišel s ním pan Leslie Lamport). LaTeX je systém, který je postaven na systému TeX - je to vlastně preprocesor pro TeX rozbalující LaTeXovské sekvence na TeXovské na principu makrojazyka. Ve finále tedy funguje obyčejný TeX - LaTeX je systém postavený na TeXu. Vzhledem k principu, na kterém je LaTeX postaven, se v latexovském zdrojovém souboru dají dobře používat i některé čistě TeXovské příkazy. A už je to jakkoliv, v každém případě se na LaTeX dá dívat jako na jazyk (píšeme něco v LaTeXu).

Pro LaTeX je typický dávkový způsob práce. Tento způsob práce má své výhody a nevýhody. LaTeX je ideální řešení v případě výroby normalizovaných (a jěště navíc složitých) dokumentů jako jsou články, zprávy nebo knihy. Dovoluje tyto typy dokumentů vytvářet maximálně pohodlně a spolehlivě. Velkou výhodou LaTeXu je i lehkost (i větších) úprav dokumentu a malé problémy s kompatibilitou (úprava starého dokumentu napsaného např. v plainTeXu do současného LaTeXu je snadná záležitost). Nevýhodou je, že se ho uživatel musí naučit. Pro méně náročnou práci (kdy člověk nepoužívá takové věci, které jsou obsahem např. zde uvedených kapitol Makra, Boxy a Prostředí picture) je však potřebné úsilí poměrně malé (avšak příkaz \renewcommand{}{} z kapitoly Makra se dost často nezbytně potřebuje). Typografický systém TeX spolu s nadstavbou LaTeX výrazně přispívají k jednotnému vzhledu dokumentů.

Dokument se přeloží např. asi následujícím způsobem: cslatex mujdokument.tex. Při překladu TeX (inicializovaný LaTeXem) postupuje zhruba řečeno ve dvou fázích:

  1. zjistí si rozměry fontů (jsou uloženy v souborech s příponou tfm) případně dalších objektů a rozhodne o jejich rozmístění v dokumentu. Přitom se nezajímá o vnitřní strukturu fontu - vše chápe jen jako (vertikálně orientované) černé obdélníky - boxy, které je třeba správně rozmístit. Tato fáze představuje princip TeXu.

  2. natáhne strukturu fontu (ze souboru s příponou pk) a vytvoří tak výsledný soubor mujdokument.dvi, což je příkazový soubor pro vytisknutí dokumentu. Na místě objektů, které nejsou fonty ponechá vhodné mezery.

Soubor mujdokument.dvi pak můžeme poslat přes vhodný filtr na tiskárnu nebo si ho vhodným prohlížečem znázornit na monitoru. Častou příčinou chybových hlášek LaTeXu jsou chybějící backslashe v klíčových slovech nebo jménech registrů a nesprávné nebo nespárované závorky.

Struktura latexovského dokumentu je (LaTeX2epsilon):

\documentclass[]{}[] …

\begin{document} …

\end{document}

Část mezi \documentclass a \begin{document} se nazývá preambule, druhá část se nazývá textová čast a je hlavním místem, kde uživatel tvoří svůj dokument. Parametry se uvádějí v příslušných závorkách, přičemž parametry ve složených závorkách jsou povinné, kdežto parametry v hranatých závorkách nejsou povinné. Odstavce se ukončují prázdným řádkem (nebo příkazem \par - neznamená tedy začátek nového odstavce nýbrž konec současného, přičemž poslední odstavec je výjimkou - nemusí se explicitně ukončovat; příkaz \par nebo prázdný řádek je tedy stále součástí ukončovaného odstavce).

Text následující po znaku % až do konce řádku je považován za komentář. Význam znaku jako speciálního (řídícího) se ruší zpětným lomítkem (např. \% způsobí, že ve výsledku bude znak %).

\documentclass[volby]{třída}[RRRR/MM/DD]
, kde třída je article nebo book nebo letter nebo report nebo slides. Podle toho o jakou se jedná třídu, některé příkazy fungují nebo nefungují. Volby musí být odděleny čárkami bez mezer (nebo znakem | pro alternativy). Třídy jsou uloženy v souborech s příponou .cls (jsou tam definice příkazů a prostředí) a pokud je tento vytvořen později než je nepovinný parametr datum, tak na to LaTeX upozorní.

Pokud chceme vytvořit dokument bez nějakých kapitol atd. je zřejmě nejvhodnější použít třídu article.

twoside - geometrie pro oboustraný tisk (implicitní pro styl book)
oneside (implicitní pro všechny ostatní styly)
openright - znamená, že kapitoly mohou začínat jen na pravých stránkách (implicitní pro book)
openany - kapitoly mohou začínat i na levých stránkách) (implicitní pro report)
a4paper, a5paper, b5paper, letterpaper, legalpaper, executivepaper, landscape
12pt (nebo 10 pt, 14 pt,17 pt atd.) nebo twocolumn (v textové části lze navíc použít příkazy \twocolumn a \onecolumn s tím omezením, že změna sloupcování způsobí přechod na novou stránku), twocolumn se nedá použít ve třídě letter a slides
leqno (čísla rovnic nalevo místo napravo)
fleqn (rovnice zarovnané na určitou vzdálenost od levého okraje).

V úseku nazvaném preambule se nacházejí příkazy, jejichž platnost se vztahuje k celému textu (např. nastavení rozměrů stránky). Některé příkazy se nemají uvádět mimo preambuli.

\usepackage[volby]{balík}[datum vytvoření] - připojení doplňujícího balíku (definice dalších nestandartnich prostředí a příkazů případně i redefinice původních), kde balík je např. czech (pak se připojí soubor czech.sty) nebo multicol. Může jich být více než jeden. Uvádějí se v preambuli nejraději co nejblíže specifikaci \documentclass. Existuje velké množství různých specializovaných balíků obsahující definice speciálních příkazů a speciálních prostředí - např. balík pro tvorbu elektronických schémat. Balíky, které nejsou příliš specializované a často se používají (např. balík graphics umožňující manipulaci a obrázky) se nazývají standartní.

LaTeX byl navržen tak, aby preferoval symbolickou práci. Tím se myslí to, že uživatel se při tvorbě dokumentu nemusí zabývat detaily a není jimi tedy zbytečně zatěžován. Když píše abstrakt v článku, pak napíše něco jako \abstract{Tento článek ... atd. atd.} a nezabývá se tím pod jakým názvem, kde a v jakém tvaru se přesně abstrakt ve výsledném dokumentu objeví. Tyto detaily jsou už vyřešeny v balíku maker pro TeX s příponou sty nebo cls. Uživatel obvykle buď používá nějaký standartní balík nebo balík, který mu pošlou z nějakého odborného časopisu nebo organizátorů konference - když jim posílá příspěvek. Balík maker z časopisu obvykle obsahuje některá nová makra, která nejsou obsažena ve standartní třídě dokumentu (balíků s příponou cls) a mírné redefinice některých standartních příkazů a prostředí. Pod mírnou redefinicí je zde myšleno to, že např. předefinovaný příkaz \abstract se bude chovat velmi podobně jako standartní příkaz \abstract, avšak např. místo uvozujícího slova Abstract nad vlastním abstraktem napíše slovo ABSTRACT na začátku odstavce s abstraktem. Tento postup podporuje symbolickou práci a je velmi důležitý a užitečný - uživatel stále používá tento příkaz stejným způsobem, tento příkaz prostě zařídí vhodný tvar abstraktu, což je ten odstavec se shrnutím na začátku článku a detaily umístění a tvaru už za nás vyřešil tvůrce balíku maker a všichni, kdo tento balík používají, vygenerují proto velmi podobný tvar.

B) Nastavení rozměrů textu a nastavení písma v textovém režimu

Rozměry a umístění hlavních částí na stránce mají na počátku defaultní hodnoty, závislé mimo jiné na velikosti stránky určené volitelným parametrem v příkazu \documentclass. Tyto rozměry je však možno v preambuli ještě ovlivnit. Jedná se hlavně o délkové registry

\textheight

-

výška textového těla (nemá se nastavovat mimo preambuli)

\textwidth

-

šířka textového těla (nemá se nastavovat mimo preambuli); \linewidth se vůbec nedá nastavit a je obecně něco jiného (šířka řádku se shoduje se šířkou textového těla jen v jednosloupcovém režimu)

\headsep

-

vzdálennost spodního okraje hlavičky (head) a horního okraje textového těla

\headheight

-

výška hlavičky

\topmarging

-

vzdálennost mezi horním okrajem hlavičky a vnitřním horním okrajem stránky

\footskip

-

vzdálennost spodního okraje paty (foot) a sp. okraje text. těla. Do paty se u některých stylu (např. article) umisuje číslo stránky - číslo se tedy posune.

\oddsidemargin

-

vzdálennost mezi okrajem textového těla a vnitřním okrajem liché stránky po seříznutí

\evensidemargin

-

--||-- sudé --||--

U \oddsidemargin a \topmarging je použit výraz vnitřní okraj stránky po seříznutí. Má to tento význam - levý a horní okraj skutečné stránky jsou jakoby ustřiženy o 1 palec + \hoffset (nebo \voffset) - tím vzniká jakoby menší stránka (pokud je \hoffset nebo \voffset větší než minus jeden palec), na které se pohybujeme. \hoffset a \voffset se dá také nastavit v preambuli.

V případě volby oneside (která je implicitní u třídy article, report a slides) je uvedena vzdálennost stejná pro sudé i liché stránky a je určena parametrem \oddsidemarging.

Změnou \evensidemargin nebo \oddsidemargin dosáhneme posunu textu v horizontalním směru na stránce. Téhož dosáhneme změnou \hoffset. Podobně změnou \voffset dosáhneme pohybu textu ve vertikálním směru.

Pokud chceme ovlivnit řádkování celého dokumentu, můžeme tak učinit pomocí \renewcommand{\baselinestretch}{řádkování} v preambuli.
\baselineskip - vzdálennost účaří - dá se ovlivnit změnou chování příkazu \baselinestretch, který způsobuje změnu řádkování násobením normální vzdálennosti určitým koeficientem. Uživatelsky se to dá zařídit pomocí příkazu renewcommand. Např. pro řádkování 1.5 napíšeme: \renewcommand{\baselinestretch}{1.5}. Řádkování se tím zvětší v celém dokumentu - i v matematice a tabulkách. Hodnota délkového registru se nastaví např. takto: \textheight=20cm nebo \textheight 20cm (v obou případech tzv. TeX-ovský způsob naplnění).

Všechny tyto úpravy by se v preaumbuli měly zadávat až po všech příkazech \usepackage{}.

\parindent

-

velikost odstavcové zarážky (změna začíná platit od specifikovaného odstavce)

\leftskip

-

odstavec bude zleva začínat o \leftskip později (odstavec bude užší), podobně \rightskip; změna začíná platit pro odstavec, v němž je tento registr změněn a platí až do nové změny i v následujících odstavcích. Nefunguje, pokud je odstavec uzavřen do skupiny.

\parskip

-

znamená vzdálennost mezi odstavci běžného textu (meziodstavcová mezera)

\marginparsep

-

vzdálennost mezi okrajovou poznamkou a okrajem text. těla; změna začíná platit od odstavce, ve kterém je specifikována

\marginparwidth

-

šířka okrajové poznámky; změna začíná platit od odstavce, ve kterém je specifikována; pokud však není uvedeno na začátku odstavce, platí až od následujícího

V textové části lze měnit i \topmarging, \headheight, \headsep, \footskip, \oddsidemarging a \evensidemarging. Má to pak vliv na stránku, kde je to uvedeno a následující stránky. Nemá to prakticky žádný význam - nejlépe je dát je (pro přehlednosti) do preambule.

Nastavení písma:

Stupeň základního písma je 10 pt. Následující modifikátory ho pozmění následujícím způsobem:

předefinování velikosti písma:

\tiny (5pt), \scriptsize (7pt), \footnotesize (8pt), \small (9pt), \normalsize (10pt) large (12pt), \Large (14.4pt), \LARGE (17.28pt) \huge (20.74pt), \Huge (24.88pt)

Pro jinou základní velikost (specifikovanou v nepovinném parametru documentclass) zůstanou proporce zhruba zachovány (jsou to tedy multiplikátory).

Některé příkazy ovlivňující atributy písma (v nematematickém režimu):

\rmfamily nebo \textrm{}

-

antikva (nastavuje rodinu cmr)

\sffamily nebo \textsf{}

-

grotesk (nastavuje rodinu cmss)

\ttfamily nebo \texttt{}

-

strojopis (nastavuje rodinu cmtt)

\itshape nebo \textit{}

-

kurzíva

\slshape nebo \textsl{}

-

skloněné písmo

\scshape nebo \textsc{}

-

kapitálky

\mdseries nebo \textmd{}

-

netučné písmo

\bfseries nebo \textbf{}

-

tučné písmo

\upshape nebo \textup{}

-

vzpřímené písmo

\normalfont nebo \textnormal{}

-

implicitní font

cmr znamená Computer Modern Roman
cmss znamená Computer Modern Sans Serif
cmtt znamená Computer Modern Typewriter

Kromě již uvedených rodin jsou běžně dostupné i následující rodiny:

pcr

-

Adobe Courier

pbk

-

Adobe Bookman

phv

-

Adobe Helvetica

ppl

-

Adobe Palatino

ptm

-

Adobe Times

Na tyto rodiny se dá přepnout následující sekvencí dvou příkazů:
\fontfamily{rodina}
\selectfont

Pro vytisknutí fontu, který není reprezentován žádnou klávesou, lze použít příkaz \symbol{číslo}, kde číslo je pořadí fontu v tabulce fontů dané rodiny.
Je třeba psát např. \large\ttfamily a ne \ttfamily\large - příkaz pro nastavení velikosti (tedy stupně) písma totiž automaticky přepíná na antikvu.

zvýraznění textu: \emph{}

Akcenty: LaTeX umožňuje přidat ke znaku akcent bez nutnosti přepínat na jinou znakovou sadu:

\`{znak}

-

obrácená čárka nad znakem

\'{znak}

-

normální čárka nad znakem

\^{znak}

-

stříška nad znakem

\r{znak}

-

kroužek nad znakem

\"{znak}

-

dvě tečky nad znakem

\H{znak}

-

dvě čárky nad znakem

\~{znak}

-

vlnka nad znakem

\={znak}

-

horizontální čárka nad znakem

\b{znak}

-

horizontální čárka pod znakem

\.{znak}

-

tečka nad znakem

\u{znak}

-

kolébka nad znakem

\v{znak}

-

obrácená stříška (háček) nad znakem

\t{dva znaky}

-

oblouček nad dvěma znaky

\c{znak}

-

ocásek pod znakem

\d{znak}

-

tečka pod znakem

C) Délkové registry, mezery a pomlčky v textovém režimu

Délkové registry se nemusí jen nastavovat - dají se i používat např. jako parametry maker. Některé registry se nedají vůbec nastavovat (např. \linewidth ).

Délkové registry:

(např. \parindent, \fill) jsou speciální parametry a dají se (řada z nich) modifikovat buď (např. pro \parindent a 3cm) takto \parindent=3cm nebo takto \parindent 3cm. Tyto modifikace mohou být i v textové části (až na výjimky, jako je např. \textwidth) a platí od až do místa případné další modifikace nebo do konce souboru.

Některé příkazy pro práci s délkovými registry:

\newlength{\nejakyreg}

-

definuje nový délkový registr \nejakyreg s počáteční délkou 0.

\setlenght{\nejakyreg}{.9\parindent}

-

nastaví hodnotu \nejakyreg na 90% hodnoty \parindent.

\addtolenght{\nejakyreg}{.9\parindent}

-

zvýší hodnotu \nejakyreg o 90% hodnoty \parindent.

\settowidth{\nejakyreg}{\large\textbf{BFLMPSVZ}}

-

nastaví velikost délkového registru \nejakyreg na délku textu uvedeného ve 2. parametru (podobně \settoheight).

\settodepth{\nejakyreg}{}

-

nastaví hodnotu registru \nejakyreg na vzdálennost spodního okraje objektu uvedeného ve druhém parametru od účaří.

Délkové registry se dají použít jako parametr v příkazech \vspace a \hspace. Délkové regisry mohou být i záporné. Jednotky délek:

pt (tiskařský bod), em (zhruba prostor případající na písmeno m v nastaveném písmu), ex (zhruba prostor připadající na malé x v nastaveném písmu), in, cm, mm, sp (nejmenší délka)

Mezery a pomlčky v textovém režimu:

normální:

\

(za lomítkem je mezera)

zůžená:

\,

\quad

\qquad

nezlomitelná:

~

(je vlastně nevididelným znakem, které se jinak chová stejně jako písmeno (ale vypadá jako mezera) - pokud tedy spojuje dvě slova, tak se vlastně jedná o jedno slovo). Tím lze zabránit rozdělení některých seskupení znaků na okraji stránky (např. F.~X.~Šalda nebo v~pondělí). Dá se využít také pro to, aby odstavec začínal "prázdným" řádkem - stačí napsat ~\\. Pokud chceme zabránit rozdělení libovolného seskupení znaků, můžeme toto seskupení vložit do LR boxu

\vspace{vel.)

nebo \vspace*{velikost} (např. \vspace{.9cm} tvar s hvězdičkou vytvoří mezeru, i když připadne na začátek nebo konec stránky

\hspace{vel.)

nebo \hspace*{velikost} tvar s hvězdičkou vytvoří mezeru i tehdy, když připadne na uplný začátek nebo konec řádku

velikost může být i pružná délka, \fill - to je maximální mezera: např. \hspace{\fill} text \hspace{\fill} umístí text uprostřed řádku. Místo \hspace{\fill} lze používat zkrácení \hfill (podobně \vfill).

příkaz \hrulefill znamená maximální mezeru vyplněnou čarou
příkaz \dotfill znamená maximální mezeru vyplněnou tečkama

krátká pomlčka:

- (tzv. spojovník)

normální pomlčka:

--

dlouhá pomlčka:

---

oddělení klíčového slova od okolního textu (někdy klíčové slovo produkuje slovo, které splývá s dalším slovem):


pomocí prázdné skupiny {} uvedené za klíčovým slovem (např.
\today{}blabla)

D) Různé běžně potřebné příkazy

$^\circ$

- Stupeň

\@.

- zdůrazňuje LaTeXu, že za tečkou začíná nová věta - že má tedy volit větší mezeru. Pokud by věta nekončila malým písmenem nebo číslovkou, nezvolil by LaTeX větší mezeru. Pokud ovšem je zapnuto \frenchspacing, je za tečkou vždy pouhá mezislovní mezera (dá se vypnout pomocí \nonfrenchspacing).

\dag resp. \dagdag

- odkazovací jednoduchý nebo dvojitý křížek.

\copyright

- znak copyright.

\S

- znak paragraf

\$

- znak dolar

\pounds

- znak libra

\textbullet

- kulička v nematematickém režimu.

\uv{text}

- uvozovky (při použití balíku czech)

\dotfill

- roztažitelna čára z teček (velikost je maximální dovolená okolím)

\hrulefill

- jako dotfill, ale čára je plná

explicitní určení rozdělování (uvádí se mimo preambuli):

\hyphenation{orga-ni-zace při-bliž-ně vznik} - slovo vznik se tedy od tohoto místa nemá dělit vůbec (do případné další změny dalším příkazem \hyphenation). Mezi slovama mají být mezery nebo (jeden) znak nový řádek. Platnost není omezena hranicemi skupiny nebo prostředí - tzv. globální deklarace.

přechod na nový řádek bez nového odstavce a bez automatického zarovnání takto ukončeného řádku:

\\[vzdálennost]
\\*[vzdálennost]
parametr vzdálenost určuje oč bude vzdálenost následujícího řádku větší, než je standartní meziřádková vzdálenost.

\parindent=1cm

je nastavení odstavcové zarážky na 1cm

\noindent

znamená, že odstavec na jehož začátku je příkaz uveden bude mít nulovou zarážku (první řádek nebude odsazen)

\indent

znamená, že odstavec na jehož začátku je tento příkaz bude mít odsazení (pokud by třeba jinak neměl)

\pagenumbering{arabic}

znamená, že se stránky budou číslovat arabskými číslicemi

\pagenumbering{roman}

znamená, že se stránky budou číslovat římskými číslicemi
další možné argumenty jsou Roman, alph, Alph

\pagenumbering

- nastaví číslo stránky na 1.

\setcounter{page}{4}

- nastaví číslo aktuální stránky (čítače stránek) na 4

\addtocounter{page}{1}

- zvýší číslo aktuální stránky (a všech následujících) o 1

\refstepcounter{čítač}

- zvýší čítač čítač o jedničku, přičemž se postará i o správné fungování příkazů \label a \ref při této modifikaci.

\pagestyle{styl},

kde styl je buď:
plain - hlavička je prázdná, číslo je uprostřed paty stránky (implicitní u article a report)
empty - hlavička i pata je prázdná
headings - pata je prázdná, v hlavičce je číslo stránky a název kapitoly nebo sekce
myheadings - podobně jako u headings, avšak s jinou informací v hlavičce; informace se předepíše příkazy
\markright{righthead} nebo
\markboth{lefthead}{righthead} - v případě volby twoside třídy dokumentu.

\thispagestyle{style}

- nastavení stylu aktuální stránky

\footnote[číslo]{}

- poznámka pod čarou (má-li se čísílko napsat těsně za slovo, musí se i příkaz uvést přesně za slovo). Nepovinný parametr číslo slouží ke vnucení vlastního čísla. Jinak se používá automaticky zvyšovaná hodnota čítače footnote. Poznámky se umisují do textového těla stránky.

V boxech a prostředí tabular \footnote nevygeneruje poznámku pod čarou. V tomto případě však lze použít dvojici příkazů:
\footnotemark[číslo] a \footnotetext[číslo]{text}. První příkaz se použije v boxu nebo prostředí tabular (to je ovšem také box), čímž se vygeneruje čísílko v místě uvedení a inkrementuje se čítač poznámek o jedničku (v případě bez volitelného parametru) tak jak má. Druhý příkaz umístěný za boxem pak generuje poznámku pod čarou s čísílkem podle aktuální hodnoty čítače poznámek nebo podle volitelného parametru. Protože se však jedná o box jsou vlastní poznámky vygenerovány až po "výrobě boxu". V důsledku toho, pokud máme v boxu více poznámek, příkaz \footnotetext zná vždy jen číslo poslední poznámky a vygeneruje všechny takovéto poznámky se stejným číslem! Proto je v tomto případě potřeba kolem jednotlivých příkazů \footnotetext trochu manipulovat s čítačem poznámek pod čarou (footnote) - např. pomocí příkazu \addtocounter.

\footnotesep - velikost vertikální mezery mezi různými poznámkami pod čarou. Čára pro poznámky pod čarou je generována příkazem \footnoterule. Pokud uživatel chce něco na této čáře změnit nebo ji vynechat, musí použít předefinování tohoto příkazu pomocí renewcommand.
Pozn.: Poznámky pod čarou nefungují v plovoucím prostředí.

\underline{}

- podtržení objektu (v matematickém i textovém režimu)

\today

- produkuje aktuální datum

\enlargethispage{velikost}
\enlargethispage*{velikost}

zvětšení stránky o velikost
(varianta s hvězdičkou zmenší i vertikální mezery).

\pagebreak[]

- bez argumentu přikáže LaTeXu zlom stránky v tomto místě textu; pokud je argument uveden, jedná se jen o naši žádost - 0 je nejslabší požadavek, 4 je nejsilnější a je to ekvivalentní tvrdému příkazu. Stránka nebude geometricky kratší.

\linebreak[]

- analogie předchozího příkazu pro řádek

Příkazy enlargethispage, pagebreak a linebreak by se měly užívat jen v závěrečné fázi úpravy dokumentu v situaci, kdy jsme v nouzi.

\newpage

(nebo \clearpage nebo \cleardoublepage) - přechod na novou stránku; stránka bude i geometricky kratší

\clearpage

navíc způsobí, že všechy plovoucí objekty, které byly uvedeny před tímto příkazem, se za touto stranou umístí na samostatné stránce (nebo stránkách)

\cleardoublepage

funguje jako \clearpage s tím rozdílem, že při dvoustarnném režimu bude textová stránka následující za \cleardoublepage lichá (v případě potřeby se automaticky vloží prázdná stránka).

\marginpar[poznámka nalevo]{poznámka}

- vytvoří poznámku na vnějším okraji; poznámku lze vnořit dovnitř textového těla stránky zvolením záporné hodnoty marginparsep, překrytí s textem se zabrání posunutím okraje odstavce, vedle nějž je poznámka - např. pomocí \leftskip nebo \rightskip. Volitelný parametr má ten význam, že je užit místo povinného parametru, pokud poznámka vychází na levém okraji stránky (to se můze stát při dvoustraném režimu).

\reversemarginpar

- způsobí umisování poznámek na okraji na opačné straně stránky než normálně

\normalmarginpar

- návrat k normálnímu umisování poznámek na okraji

\parshape n zvětšení_odsazení_prvního šířka_prvního ... zvětšení_odsazení_n-tého šířka_n-tého

Toto je TeXovský příkaz (paramery nejsou uvedeny ve složených závorkách). Platí pro odstavec, ve kterém je uveden a způsobí, že prvních n řádků bude mít zvětšené odsazení (posunutí levého okraje) a délku podle předpisu (skutečné odsazení bude součtem hodnoty předepsané v parametru a hodnoty platné před tímto příkazem). Lze jím tedy podrobněji specifikovat vzhled odstavce. Tímto příkazem lze zařídit "vkousnutí" poznámnky na okraji do textu (zprava i zleva). Řádky za n-tým řádkem mají parametry n-tého.

Př.: \parshape 4 0cm 8cm 0cm 8cm 1cm 7cm 0cm 8cm - nastaví parametry odstavce tak, že první bude mít posunutí odsazení o 0cm (tedy nezměněné odsazení) a délku 8 cm, druhý to samé, třetí bude mít délku 7cm, ale bude o 1cm zleva odsazen (takže bude končit ve stejné poloze, jako předchozí řádek), čtvrtý zase nebude mít zvětšené odsazení a další řádky to samé.

Některé příkazy z balíku czech.sty:

\dateczech{}
\dateenglish{}
\dateUSenglish{}
\captionsczech{}
\captionsenglish{}

\label{balbla1}

- nastavení značky v prostředí (funguje specificky v prostředí equation, eqnarray, enumerate, figure a table - v prostředí figure a table se \label musí vyskytovat až za \caption{popis} nebo musí být uvnitř argumentu příkazu caption).

\ref{blablax}

- vyprodukování odkazu (čísla) na label - vyprodukuje např. číslo rovnice, obrázku nebo tabulky (odkaz na label mimo výše uvedená prostředí vygeneruje hodnotu aktuálního čísla oddílu - pro vygenerování čísla stránky je nutno použít příkaz \pageref{návěští})

Příkazy \label a \ref tvoří pár. Pokud je odkaz v dokumentu uveden dříve než samotný odkazovaný objekt (tzv. křížový odkaz), je třeba překlad spustit dvakrát.

\input{cesta}

- vložení obsahu souboru v místě uvedení. Pokud je jméno uvedeno bez přípony, hledá se nejprve soubor s příponou tex. Pokud se takový nenalezne, hledá se přesně odpovídající jméno.

\include{cesta}

- až na výjimky funguje jako sekvenece \clearpage \input{cesta_bez_přípony_tex} \clearpage. Jméno souboru se musí uvést bez přípony tex (tímto příkazem je možno natáhnout jen soubor s příponou tex).

\tolerance

- registr udávající o kolik může slovo přesahovat hranici textového těla. LaTeX se snaží slova umisovat tak, aby se okraj textu příliš nevlnil a mezery nebyly příliš velké. Parametr, který tyto věci ovlivňuje je \tolerance. Může být předepsán v rozsahu 0 až 10000 a implicitně je roven 200. Pokud se LaTeXu nepodaří slovo umístit tak, aby příliš nepřesahovalo běžnou šířku textu - slovo umístí jak to jde a oznámí nám to. Pokud je tento parametr příliš malý - tady LaTeX je v tomto velmi přísný, má zároveň menší manévrovací schopnosti a ve snaze umisovat slova co nejestetičněji může narazit a některé slovo bude velmi přesahovat a LaTeX nám tedy prokáže medvědí službu. V tom případě zdánlivě paradoxně může pomoci zvětšení parameru tolerance (v preambuli) - např. \tolerance=1000.

\columnsep

- registr udávající mezeru mezi sloupci ve dvousloupcovém režimu (specifikuje se v preambuli)

\columnseprule

- registr udávající šířku vertikální čáry mezi sloupci ve dvousloupcovém režimu (implicitně je nula). Nastavení začíná platit od místa uvedení.

Seznam jmen čítačů (pro příkazy jako je \setcounter, \addtocounter) nebo \refstepcounter):

enumi enumii enumiii enumiv figure table footnote mpfootnote page equation subparagraph paragraph subsubsection subsection section chapter part

E) Skupiny a prostředí

Práci při vytváření dokumentu značně usnadňuje používání tzv. skupin a prostředí. Skupina je prostě oblast textu ohraničená párem složených závorek {} (pokud to není místo pro uvedení parametru). Podobně prostředí je oblast textu ohraničená řádky \begin{konkretní_prostředí} a \end{konkretní_prostředí}. Prostředí však musí být nejprve zkonstruováno (konstrukce řady prostředí je obsažena v souborech s příponou cls a sty - ty jsou součástí systému LaTeX). Řada nastavení uvnitř konkrétní skupiny nebo konkrétního prostředí po jejím opuštění přestává platit (např. nastavení velikosti písma). Např. pokud je písmo nastaveno na netučné a chceme, aby další věta byla tisknuta tučně, ale dále se opět tisklo netučně, stačí uvedenou větu uzavřít do skupiny a přepnout na tučné písmo uvnitř této skupiny - ... {\bfseries bla bla bla bla} ... . Toto je nejčastější využití skupiny. Pokud se jako argument nějakého příkazu zadává slovo nebo posloupnost slov, která se pak vytiskne a my nejsme spokojeni s tím jaké písmo příkaz nastaví, můžeme na začátek tohoto argumentu vložit příkaz pro nastavení nějakého písma, které nám vyhovuje. Může se však stát, že toto nastavení bude mít neblahé následky na druh písma po tomto příkazu. Tuto situaci lehce vyřešíme tak, že argument i se změnou písma vnoříme do skupiny, čímž se zajistí pouze lokální platnost změny písma (píšeme tedy např.: \prikaz{{\LARGE blabla}} místo \nejakyprikaz{\LARGE bla}).

V prostředí mohou platit některé speciální nastavení a příkazy, které vně neplatí a naopak některé příkazy, které jsou dostupné vně, neplatí uvnitř. To které příkazy a nastavení je dáno konstrukcí prostředí. Prostředí je v podstatě jakási speciální skupina. Některá prostředí mají parametr: \begin{konkretní_prostředí}{parametr}. Některá prostředí se dají do sebe vnořovat.

Různá prostředí:

abstract, quote, quotation, flushleft, flushright, center, verse verbatim, itemize, enumerate, description, list, trivlist, math, displaymath, equation, eqnarray, tabbing, tabular, picture, letter, slide, overlay, figure a table (obě jsou tzv. plovoucí prostředí)

V prostředí verbatim se nic neformátuje - je to přeneseno na výstup tak jak je to napsáno

prostředí quote a quotation se často používá na citáty a šířka odstavce je zmenšena; v prostředí quote je mezi odstavci nenulová mezera a odstavce jsou bez zarážky, v prostředí quotation je tomu přesně naopak
Prostředí letter je možno použít jen ve třídě letter. Prostředí slide a overlay je možno použít jen ve třídě slides.
Prostředí picture umožňuje kreslit jednoduché geometrické objekty přímo prostředky LaTeXu a je velmi užitečné pro jednoduchá schémátka.
V případě balíku multicol je možno použít ještě prostředí multicols (např. \begin{multicols}{3} ... )

F) Třídy article, report, book a slides

\maketitle je příkaz pro vytvoření titulní stránky - tam je název, autor atd.. V případě volby notitlepage v \documentclass (implicitní pro třídu article) je tato "strana" umístěna v dokumentu v horní části stránky na níž pak normálně pokračuje další text a pro tuto stránku je použit styl plain (\thispagestyle{plain}). V případě volby titlepage v \documentclass (implicitní pro book, report a slides) je titulní strana vytvořena jako samostatná. Samostatná titulní strana má styl empty. V případě stylu book se titulní strana započítává do stránkování (do čítače stránek). V ostatních stylech číslování začíná bezprostředně za samostatnou titulní stranou nebo až za stránkou s abstraktem, pokud je tento na další samostatné straně (to nastává v případě volby titlepage). Samostatnou titulní stranu můžeme vytvořit přímo i uvedením následujícího prostředí: \begin{titlepage} nějaký text \end{titlepage}. Číslování pak začíná až za touto stranou. Na titulní straně se umístí texty předepsané předtím (nejlépe v preambuli) příkazy \title{}, \author{}, \date{}. Pokud se \date nepoužije, dá se tam \today, pokud se použije, ale s prázdným argumentem, datum (ani příslušný řádek) se neuvede. Uvnitř argumentu příkazů \title, \author a \date se dá u tříd book, article a report použít příkaz \footnote{}, který na titulní stranu umístí v místě svého uvedení značku a text k této značce umístí na této stránce pod čarou - na rozdíl od uvedení footnote v běžném textu se tyto poznámky pod čarou nečíslují, nybrž označují nějakými standartními znaky. V případě volby titlepage se abstrakt specifikovaný v prostředí abstract umístí na další samostatné stránce (prostředí abstract není dosažitelné ve stylu book a slides) - číslování začíná až za stránkou s abstraktem.

Oddílové příkazy dostupné ve třídách book, article a report:

\titulek[případně_odlišný_nadpis_v_obsahu_a_záhlaví]{nadpis} nebo \titulek*{nadpis}

Tyto příkazy zajistí umístění vhodné mezery a nadpisu nad oddílem a zajistí navíc vhodné číslování objektu uvnitř oddílu a v obsahu atd.. obecné označení titulek má tyto možné konkrétní podoby:

\part \section \subsubsection \subparagraph \chapter \subsection \paragraph

(ve třídě article není \chapter definováno) parametr nadpis je název oddílu, tvar bez hvězdičky produkuje číslované záhlaví a umožňuje předepsat jiný název v obsahu, tvar s hvězdičkou potlačuje číslování záhlaví oddílu a zamezí uvedení v obsahu. Přesněji řečeno tvar s hvězdičkou pouze vygeneruje vhodně odsazený nadpis vhodným písmem a zajistí zamezení nevhodnému zlomu stránky, kdy by pod nadpisem nebyly alespoň dva řádky. LaTeX však nevygeneruje novou sekci - nezmění hodnotu čítače sekcí; pokud nám toto nevyhovuje, můžeme hodnotu čítače ovlivnit ručně pomocí příkazu \setcounter{název_čítače}{číslo} nebo \addtocounter{název_čítače}{číslo} (např. \addtocounter{chapter}{-1} a analogicky pro ostatní typy oddílů).

Tvar s hvězdičkou umožňuje ručně očíslovat sekci. V tomto případě je však velmi vhodné spravit ručně hodnotu čítače sekcí (těsně! před začátkem hvězdičkované sekce) - např. aby byly správně číslovány odkazy. Polohu celého názvu sekce můžeme lehce ovlivnit vnořením do vhodného prostředí - např. \begin{center} \section* Úvod \end{center}.

V případě stylu book (na rozdíl od article a report) je pro stránky následující po titulní straně implicitně zvolen typ stran headings, přičemž se ho headeru dává číslo strany a označení oddílu (pokud není hvězdičkový).

Obsah se vytváří příkazem \tableofcontents (je dokončen až po druhém překladu). Vytvoří se v místě uvedení tohoto příkazu. Někdy se mohou v průběhu práce při překladu objevovat trochu zmatené chybové hlášky týkající se vytváření obsahu - někdy pomůže vymazání pomocného souboru s příponou .toc (který sloužíf pro vytvoření obsahu) a potíže zmizí (je to tehdy, když jsme v průběhu práce způsobili vytvoření "chybného" souboru s příponou .toc v důsledku chyby v našem zdrojovém souboru a ten nám pak překáží i v čase, kdy už jsme chybu napravili)

Příkaz \tableofcontents však sám o sobě nezařadí do obsahu nečíslované titulky. Pokud chceme i tyto do obsahu zařadit, musíme si pomoci příkazem, který přidá do obsahu předepsanou položku: \addcontentsline.

Ten má tři povinné položky:

1. přípona obsahového souboru (toc - pro obsah, lot - pro seznam tabulek, lof - pro seznam obrázků),
2. úroveň položky,
3. text položky. Například:

Nejlépe je uvést \addcontentsline hned za deklarací sekce.

Příklad:

\section*{Úvod}

\addcontentsline{toc}{section}{Úvod}

(pro obsah se totiž obvykle používá pomocný soubor s příponou toc)

Pro umístění textu do obsahu, který vůbec není specifikován v oddílovém příkazu, slouží příkaz \addcontents{toc}{nějaký text}. Text se objeví v místě určeném podle polohy v dokumentu.

Další ovlivnění tvaru obsahu dosáhneme nastavením vhodných hodnot čítačů secnumdepth a tocdepth v preambuli (pomocí příkazu \setcounter - např. \setcounter{secnumdepth}{2}). Čítač secnumdepth říká, které úrovně "sekcí" budou v obsahu ještě číslovány. Čítač tocdepth říká, které úrovně "sekcí" se v obsahu ještě vůbec objeví. Přitom úrovně jsou definovány takto:

section: 1, subsection: 2, atd. - ve všech třídách
part: 0 - ve třídě article
chapter: 0, part: -1 - ve třídá
ch book a report

Např. \setcounter{secnumdepth}{2} způsobí, že subsubsekce už nebudou v obsahu číslovány.

Pro vytvoření seznamu tabulek slouží příkaz \listoftables. Pro vytvoření seznamu obrázků slouží příkaz \listoffigures.

Příkazy \frontmatter, \mainmatter a \backmatter jsou určeny pro naše sdělení LaTeXu o tom, kde začíná úvodní část knihy, kde hlavní a kde závěrečná. LaTeX pak může podle toho zvolit např. různé typy čísel stránek. Tyto příkazy jsou dostupné jen ve třídě book.

\appendix - tento příkaz říká LaTeXu, že následující části jsou už jenom dodatky - LaTeX podle toho změní styl titulku těchto částí.

Třída slides:

Ve třídě slides neplatí a nebo nemá smysl používat některé příkazy a prostředí, které zde nedávají smysl (např. prostředí figure a table). Ve třídě slides je předefinována velikost písma (takže normalsize odpovídá zhruba LARGE) a parindent nejde předepsat. Také se nemá měnit textwidth a textheight. Konkrétní slide nebo jeho overlay se vytváří vytvořením prostředí \slide nebo \overlay. Toto prostředí jednoduše zařizuje v podstatě jen vhodné číslování slidu nebo jeho overlaye a varuje nás, pokud se slide nebo overlay nevejde na jednu stránku. Nemá smysl v něm přikazovat přechod na novou stránku.
Dále je zde k dispozici prostředí note (\begin{note} \end{note}), pomocí něhož si můžeme vytvořit poznámky ke slidu - chová se stejně jako prostředí overlay, pouze číslování má trochu jiný styl.
Pokud se text uvede mimo tato prostředí, jeho stránky se nečíslují, funguje dělení stránek (lze používat \pagebreak a \newpage)- LaTeX nic neříká o tom, že nějaká stránka takovéhoto textu přetekla - toto zde neexistuje.
Ještě je zde užitečný příkaz \onlyslides, který nařizuje tisk jen některých slidů (a jeho overlayů). Tento příkaz se umisuje do preambule a funguje např. toto: \onlyslides{10-13} - tisk slidů 10 až 13 (a jejich overlayů) nebo toto: \onlyslides{12,14-16,20} - význam je jasný. Argument příkazu \onlyslides může obsahovat neexistující slidy - výsledek je takový, jako by tyto v argumentu příkazu uvedeny nebyly.
Analogicky se dá používat příkaz \onlynotes. Platí, že pokud je uveden právě jen příkaz \onlyslides, pak se poznámky vůbec nevytvářejí a podobně pokud je uveden právě jen příkaz \onlynotes, pak se slidy (a jejich overlaye) vůbec nevytvářejí.
Text uvedený mimo prostředí slide, overlay a note se překládá vždy.
S použitím balíku color (je potřeba dvi převést na postscript) lze snadno vytvářet i (složitě) barevné slidy.

\documentclass{slides}

\usepackage{graphics} % viz Grafika

\usepackage{color}

\onlyslides{1} % Tento příkaz (nebo třeba i \onlyslides{1-100})způsobí tisk

% pouze slidu. Tisk i poznámek dosáhneme zakomentováním tohoto

% řádku

\fboxsep 7mm

\definecolor{lightyellow}{rgb}{1,1,0.7} % definujeme si světlejší žlutou.

\begin{document}

\pagecolor{lightyellow}

\begin{slide}

% Vytvoříme barevný rámeček po okraji stránky tou fintou, že do barevné

% stránky umístíme bílý box a až do něj vlastní text (v budoucnosti to snad

% půjde s balíkem color šikovněji - viz. další řádky).

% Avšak pozor - tato finta znemožní normální chování prostředí slide, kdy

% text, který se nevešel na slide je umístěn na další (nečíslovanou) stránku

% a LaTeX nám o tom dá hlášku. Nicméně i ve zde uvedené úpravě jsme LaTeXem

% v případě přetečení na tuto skutečnost upozorněni - ale může se to chovat

% divně! Proto je lepší takovouto úpravu (vnoření do \colorbox{}{\parbox ...})

% provést až v závěrečné fázi! přípravy dokumentu, kdy už máme vše v pořádku

% rozmístěno. Odstranění této konstrukce dosáhneme jednoduše zakomentováním

% následujících tří řádků - příkazu \hspace{-1.5cm} a příkazů \colorbox a

% \parbox (a jejich ukončení těsně před \end{slide}).

\hspace{-1.5cm}

\colorbox{white}{

% Následující vnoření parboxu zajistí zalamování řádků v colorboxu - viz Boxy.

\parbox{\textwidth}{ % Vzhledem k tomu, že \fboxsep není nula a že

% vnitřní parbox má již šířku textového těla,

% bude colorbox širší než šířka stránky a LaTeX

% dá varovnou hlášku. V podstatě to ale v tomto

% případě nevadí.

\vspace{1cm}

\textbf{\colorbox{green}{What have been measured:}}

\vspace{1cm}

\begin{itemize}

\itemsep 3mm

\item

\textcolor{red}{heat transfer from the cusp region of the plasma plume to the

cooper plate situated perpendicularly to the flow}

\item

\textcolor{red}{exit average enthalpy of argon (from voltage, electrical

current and increase of temperature of the cooling water)}

\item

\textcolor{red}{voltage as a function of time $\Rightarrow$ voltage

fluctuation spectra}

\item

\textcolor{red}{acoustical noise as a function of time $\Rightarrow$

acoustical oscilations spectra}

\item

\textcolor{red}{light emission as a function of time by means of an photodiode

array $\Rightarrow$ light emission oscilation spectra}

\end{itemize}

} % konec parboxu

} % konec colorboxu

\end{slide}

\begin{note}

% Poznámka jedna k předešlému slidu.

djl dsljk dsjksd sdfkjsdf sdjsd dskjsdf sdfkjsd sdfkj

djl dsljk dsjksd sdfkjsdf sdjsd dskjsdf sdfkjsd sdfkj

\end{note}

\begin{note}

% Poznámka dvě k předešlému slidu.

djl dsljk dsjksd sdfkjsdf sdjsd dskjsdf sdfkjsd sdfkj

djl dsljk dsjksd sdfkjsdf sdjsd dskjsdf sdfkjsd sdfkj

\end{note}

\end{document}

G) Bibliografie

\cite[p.71]{symbnázev} - odkaz s poznámkou - vytvoří např. [6, p.71]
Položka v seznamu literatury se vytvoří příkazem
\bibitem[název uvedený v seznamu literatury]{symbnázev použitý v cite}
- tento příkaz přidá do seznamu literatury literaturu uvedenou za tímto příkazem. Volitelný parametr umožňuje, aby ve výsledném dokumentu byl zadaný tvar odkazu a ne prostý číselný odkaz (který se použije pokud se tento parametr nevyužije).
(na řádky následující za jednotlivými příkazy \bibitem se umisuje popis konkretní literatury)

Tyto položky je třeba uvést v prostředí thebibliography, které má jeden povinný parametr a tím je sekvence znaků, ze které se určí maximální šířka odkazu (např. \begin{thebibliography}{8798nnn} - tedy max. šířka je 7 znaku). Toto prostředí rovněž zařídí přidání nadpisu. Nadpis je určen parametrem \refname - pokud s ním nejsme spokojeni, můžeme ho předefinovat na např. Použitá literatura pomocí renewcommand:
\renewcommand{\refname}{Použitá literatura} (umístěné např. do preambule za \usepackage{czech}).

Symbolické odkazy (balbla1) latex nahradí čísly tak, aby znamenaly pořadí výskytu v textu - jak je obvyklé. Příkazy \label, \ref a \cite, \bibitem tvoří páry. V případě křížových referencí (kdy se v dokumentu odkazujeme buď pomocí \ref nebo \cite na objekt označený v textu pomocí \label nebo \bibitem později) je třeba překlad spustit dvakrát - až při druhém běhu se dosadí čísla odkazů do položek \ref nebo \cite.

Tento způsob vytváření referencí je ale trochu nepohodlný a hlavně nezajíštuje jednotnost. Proto byl vyvinut program BibTeX, který celé prostředí thebibliography s položkami bibitem a konkrétními popisy literatury pro LaTeX generuje z pohodlné databáze literatury (které program BibTeX rozumí). LaTeX byl obohacen o příkaz \bibliography, který LaTeXu říká, že má při překladu natáhnout celé prostředí \thebibliography ze souboru soub.bbl (který si před tím vytvoříme za pomocí programu BibTeX ze souboru s příponou .bib). Při tomto způsobu uživatel tedy neuvádí literaturu do zdrojového latexovského souboru, ale pohodlně ji "vytáhne" z databáze (všemožné) literatury umístěné v jiném souboru (s příponou bib) ve speciálním formátu pomocí programu BibTeX. Postup je následující: uživatel přidá do svého latexovského zdrojového souboru na místo, kde chce seznam literatury uvést, po sobě následující příkazy \bibliography{} a \bibliographystyle{}. V parametru prvního příkazu jsou uvedena zkrácená jména souborů, ve kterých je databáze všemožné literatury ve formátu, které rozumí program BibTeX. Tyto soubory mají příponu .bib, ale v uvedeném příkazu se tato přípona vynechává. Tedy např. \bibliography{clanky1,knihy1} se týká souboru clanky1.bib a knihy1.bib. Formát těchto databázových souborů zajištuje jednotnost a je popsán dále. Parametr příkazu \bibliographystyle{} určuje styl, podle kterého se literatura naformátuje. Standartní možnosti jsou:

alpha

-

odkazy jsou vytvořeny ze jména autora a roku publikace, uspořádání je podle abecedy

plain

-

odkazy jsou číselné, uspořádání je podle abecedy

unsrt

-

odkazy jsou číselné, uspořádání je podle pořadí citace

abbrv

-

jako plain, ale odkazy jsou prý trochu kompaktnější

Dále je potřeba dodržet následující postup:

  1. spustit LaTeX na soub.tex - tím se mimo jiné vytvoří soub.aux, ve kterém jsou požadavky na literaturu (\cite), které poslouží programu BibTeX

  2. spustit BibTeX na jméno soub - tím se na základě souboru soub.aux a (např.) clanky.bib vytvoří soubor clanky.bbl, jehož obsahem je celé prostředí \thebibliography s příkazy \bibitem a s požadovanými literaturami

  3. spustit opět LaTeX na soub.tex - tím se ve výstupu již objeví rejstřík literatury, ale ještě nebudou vytvořeny odkazy uvnitř textu (jsou to křížové reference)

  4. spustit ještě jednou LaTeX na soub.tex - tím se dají do pořádku i odkazy z textu.

Ačkoliv se to zdá trochu složité, je aplikování tohoto postupu velmi snadné. Je jen třeba mít literaturu připravenou v databázi podle pravidel popsaných dále a pak již stačí jen provést výše uvedené čtyři běhy.

Ještě se mohou hodit následující dva příkazy:

\nocite{symbnázev} - funguje jako \cite (přidá do soub.aux na místo, které je určeno umístěním tohoto příkazu v textu, položku), ale nevytiskne odkaz v textu. Po zpracování BibTeXem pak tedy máme položku v seznamu literatury, ale v textu na ni není odkaz. Místo jednoho symbolického názvu můžeme uvést i seznam názvů - položky jsou odděleny čárkama.
\nocite{*} - v souvislosti s BibTeXem funguje tak, že dá do seznamu literatury veškerou literaturu obsaženou v příslušném souboru .bib, ale v textu na ně neodkazuje

Pravidla pro tvorbu bib souboru:

Jedná se o vlastní jazyk. Soubor se skládá z odstavců, které obsahují vlastní informace o dané literatuře. Odstavec má asi následující tvar:

@ARTICLE(McCourt64,

AUTHOR = {McCourt, F. R. and Snider, R. F.},

TITLE = {Thermal conductivity of a gas with rotational states},

JOURNAL = JCP,

YEAR = {1964},

VOLUME = {41},

PAGES = {3185--3191},

Pozn. = {xerox})


První řádek udává typ odkazu (ARTICLE) a label pro odkazování pomocí
\cite. Další řádky jsou tzv. pole, ve kterých se specifikuje vlastní literatura. Vlastní specifikace jednotlivých položek jsou řetezce znaků uzavřené do závorek nebo do dvojitých uvozovek. Pro daný typ odkazu jsou některá pole povinná (zde např. AUTHOR), některá jsou volitelná (zde např. VOLUME) a některá jsou ignorovaná (zde např. Pozn.). Pokud chybí povinné pole, BibTeX ohlásí chybu. Pokud je uvedeno volitelné pole, BibTeX ho použije (nejspíše) a když chybí, nic se neděje. Ignorované pole BibTeX vůbec nezajímá, ale je to dobré místo pro poznámky v bib souboru - může mít jakýkoliv název, který se liší od standartních názvů.

Následuje seznam typů odkazů a jejich možných polí:

article:

povinná: author, title journal, year
volitelná: volume, pages, month, note

book:

povinná: author, editor, title, publisher, year
volitelná: volu
me, series, address, edition, month, note

booklet:

povinná: title
volitelná: author, howpublished, address, month, year, note

inbook:

povinná: author nebo editor, title, chapter a/nebo pages, publisher, year
volitelná: volume, series, address, edition, month, note

incollection:

povinná: author, title, booktitle, publisher, year
volitelná: editor, chapter, pages, address, month, note

inproceedings:

povinná: author, title, booktitle, year
volitelná: editor, pages, organization, publisher, address, mon
th, note

manual:

povinná: title
volitelná: author, organization, address, edition, month, year, note

mastersthesis:

povinná: author, title, school, year
volitelná: address, month, note

misc:

povinná: žádné
volitelná: author, title, howpublished, mont
h, year, note

phdthesis:

povinná: author, title, school, year
volitelná: address, month, note

proceedings:

povinná: title, year
volitelná: editor, publisher, organization, address, month, note

techreport:

povinná: author, title, institution, year
volitelná: type, number, address, month, note

unpublished:

povinná: author, title, note
volitelná: month, year

Dále soubor může mimo tyto odstavce obsahovat řádky, které BibTeXu nic neříkají a ještě řádky, kde se definují tzv. zkratky. Zkratka je řetězec začínající písmenem a neobsahující mezeru nebo jakýkoliv z následujících znaků: "#%'(),={} Slouží ke snadnému odkazování na delší řetezce a způsob jejich definování je jasný z následujícího příkladu (zadávají se na samostatném řádku):

@string(JCP = {Journal of Chemical Physics})

nebo také třeba (ekvivalentně)

@string{JCP = "Journal of Chemical Physics"}

Aby zkratka v místě použití platila, musí být umístěna v souboru před místem použití. Existují i některé standartní předdefinované zkraty (závislé na předepsaném stylu). Uživatelské zadání zkratky tyto defaultní zkratky přebije. Při vytváření souboru bbl využije BibTeX informace v bib souboru. Způsob, jakým BibTeX přesně řádky v bbl vytvoří, závisí i na předepsaném stylu specifikovaném v LaTeXovském zdrojovém souboru příkazem \bibliographystyle{}. Jestliže některá písmena zadáme velká (např. ve jménech), BibTeX je může ztransformovat na malá a naopak. Také slova nemusí uvést v tom samém pořadí, ve kterém je specifikujeme v souboru .bib. BibTeX prostě "ví lépe" jak se literatura má naformátovat. Pokud chceme přinutit BibTeX aby respektoval naši specifikaci, použijeme uzavření do složených závorek - např. {P}hysical pošle BibTeX na výstup vždy s velkým P, {Jan Novák} pošle BibTeX na výstup vždy jako Jan Novák a ne jako Novák Jan. Rozsah stránek se zadává způsobem zřejmým z příkladu (dvě pomlčky --).

H) Třída letter

LaTeX rozhodně nebyl vytvořen kvůli takovým věcem jako je psaní dopisů a není na to zrovna ideálním nástrojem. Nicméně když už ho máme, tak proč v něm nepsat i jednodušší dopisy ?

Příkazy v prostředí \letter{adresát}:

\address{adresa} - zpáteční adresa, má být před \opening,
\cc{osoby},
\closing{pozdrav},
\encl{seznam příloh},
\opening{pozdrav},
\ps,
\signature{jméno} - může být v preambuli

Pozn.: letter je příklad třídy dokumentu, pro kterou se vyplatí mít předem připravený template (záleží na pořadí příkazů, které se těžko pamatuje).

\documentclass{letter}

\usepackage{czech}

\signature{}

\begin{document}

\renewcommand{\today}{29. května 2000} % pokud chceme jiné datum

\begin{letter}{adresát}

\address{}

\cc{}

\opening{}

TO JE TEXT.

\closing{}

\ps{}

\encl{dok1,dok2}

\end{letter}

\end{document}

Případná uživatelsky předepsaná velikost písma v dopise má vliv na položky uvedené za tímto předpisem (pokud není velikost dále ještě upravovaná) s jednou výjimkou - předpis třeba jen těsně před řádkem \opening ovlivní současně velikost písma datumu a položek předepsaných příkazy \begin{letter}{...} a \address{...} (teprve \opening tyto položky aktivuje). Navíc platí, že automaticky vygenerovaná slova (např. \cc generuje slova Na vědomí:) jsou polotučná. Chceme-li např. aby celý dopis byl napsán písmenem velikosti Large, stačí těsně za \begin{letter}{...} nebo dokonce i jen těsně před \cc{...} uvést \Large. Chceme-li navíc aby jen položka adresát byla vytištěna polotučně, zařídíme to tímto: \begin{letter}{\bfseries ....}.

Automaticky vygenerovaná slova však můžeme předefinovat pomocí příkazu \renewcommand{}{} např. \cc v české verzi vygeneruje polotučné Na vědomí, pokud na konec preambule umístíme \renewcommand{\cc}{\bfseries Na vědomí \mdseries}, bude polotučné heslo změněno na tučné).

Ve třídě letter nelze (samozřejmě) používat bibliografii.

Standartní třída letter nám nemusí vyhovovat, můžeme chtít nějaký vhodný specializovaný balík. Na následujících řádcích je ale ukázka toho, že příkazy v balíku letter.cls můžeme v preambuli předefinovat tak, že nám nejspíše budou vyhovovat.

Příklad na přizpůsobené chování prostředí letter:

\documentclass[11pt,a4paper]{letter}

\usepackage{czech}

% podpis je zarovnán na místo, které nám nevyhovuje, proto následující

% složitost:

\signature{\vspace{-.5cm}~~~~~~~~~~~~~\parbox{5cm}{% parbox proto, aby

Jan Novák \\předseda % "podpis" mohl mít více řádků

}}

% příkazy \renewcommand, \newcommand a \parbox

\renewcommand{\encl}{{\bfseries \\ Příloha: }}

\renewcommand{\headtoname}{{\bfseries Komu:\\}}

\renewcommand{\ccname}{\bfseries Na vědomí}

\newcommand{\Ps}{\vspace{0.5cm}\ps} % přidáme mezeru

\newcommand{\Encl}{\vspace{0.5cm}\encl} % přidáme mezeru

\newcommand{\mojeadresa}{\address{Praha 8 Kobylisy\\ jlhfdjlh 23\\18200}}

\begin{document}

\renewcommand{\today}{Dne 29. května 2000} % chceme jiný datum než ten,

% který právě udává počítač.

\begin{letter}{\headtoname \leftskip 0.04\textwidth pan XY\\ Ústav lakjdlkd\\

Nademlejnem 13}

\mojeadresa

%\cc{paní Y-ová}

\opening{Vážený pane XY}

lksdfjj kůjds sdkjdf dfkjdf dfkjdf kdjf

dfkj dflkdf dflkjdf dfkjdf dfkjd fkdfj dfkdfj dfkjdf dkjb fgb

Tak to je asi tak všechno.

\closing{S pozdravem}

\Ps{PS. Doufám, že mě chápete.}

\Encl{dok1,dok2}

\end{letter}

\end{document}

I) Vytváření tabulek

Prostředí tabbing:

Příklad prostředí tabbing (tabulky bez linek):

% jednoduchá tabulka

\begin{tabbing}

město XYZ ~~~~\= datum ~~~~

\= 34 \kill

\bfseries Město \>

\bfseries Datum \>

\bfseries Max. tep. \\[2mm]

město M \> 15/7 \> 33$^\circ$ Celsia \\

město N \> 21/7 \> 35$^\circ$ Celsia\\

město XYZ \> 3/8 \> 34$^\circ$ Celsia

\end{tabbing}

0x01 graphic

v předchozím příkladu \= znamená nastavení zarážky, \> posunutí na dálší zarážku, \\ přechod na nový řádek, \kill znamená zrušení řádku (nebude vytisknut) avšak ponechání platnosti všech na něm definovaných zarážek - první řádek tedy slouží jen k nastavení poloh zarážek. V tomto prostředí změna nastavení atributu pisma uvnitř končí s přechodem na další zarážku nebo řádek - totéž platí pro prostředí tabular. Nad a pod tabulkou se automaticky vytvoří mezera pro odsazení od okolního textu. Ještě je možno použít např. příkaz \+ nebo \- těsně před příkazem přechodu na nový řádek \\. Příkaz \+ způsobí, že následující řádky budou automaticky začínat o tabulátor dále (přesně jako by na jejich začátku byl přidán příkaz \>). Příkaz \- ruší předchozí příkaz \+. Pokud je na řádku uveden příkaz \` (pozor na orientaci apostrofu!), je text následující na řádku za tímto příkazem umístěn na pravý okraj stránky - za tímto příkazem pak už nemůže na daném řádku být další položka. Prostředí tabbing může být rozprostřeno přes více stran a je vhodné na vytváření pasáží textu s komplikovaným odsazováním.

Poznámka: v prostředí tabbing dochází k některým shodám řídících znaků s některým - dalšími řídícími znaky prostředí tabbing jsou např. \' a \`. Aby nedošlo ke konfliktu, je třeba akcentování v tomto prostředí modifikovat následujícím způsobem: hned za obrácené lomítko se přidá písmeno a (např. \a={znak} místo \={znak}).

Prostředí tabular:

Toto prostředí slouží k umístění tabulky do textu (na řádek) jako jakéhokoliv jiného slova - neumisuje se automaticky odděleně od textu. Celá syntaxe prostředí tabular je následující:

\begin{tabular}[p]{sloupce}

řádek \\

.....

\end{tabular}

Písmeno p ve volitelném parametru určuje způsob připojení tabulky k okolnímu textu: t - připojení horním okrajem, b - připojení dolním okrajem. Implicitně se tabulka zařazuje do textu středem.
Sloupce mohou být sekupení následujících písmen: l, r, c, p; l resp. r resp. c znamená, že sloupec bude zarovnán na levý okraj resp. pravý okraj resp. střed, p znamená sazbu textu položky do bloku o šířce, která je zadaná ve svorce následující za p (paragraph) - např.
\begin{tabular}{|p{.6\textwidth}|}) - v tomto případě se sloupec zarovnává podle levého okraje. Když se slova nevejdou na řádek, vytváří se na právém okraji sloupce automaticky zlom a přechází se na další řádek v rámci stále jednoho řádku tabulky v tomto sloupci. V přípádě l nebo r nebo c se šířka sloupce tabulky zvolí automaticky tak, aby se do něj vešla na jeden řádek i nejdelší položka - přesnou polohu zarážek tedy není třeba specifikovat. Přechod o jednu zarážku se specifikuje znakem & (nikoliv tedy \>). Jednotlivá písmena mohou být oddělena znakem |, což znamená, že se sloupce oddělí čárou. Pokud se těchto znaků uvede více za sebou, udělá se tolik čar těsně vedle sebe. Horizontalní čáry se vyrobí příkazem \hline uvnitř konstrukce tabulky - umístění této čáry se řídí logicky podle umístění tohoto příkazu v konstrukci tabulky. Je také možno vytvořit horizontální čáru (ovšem jen jednoduchou) přes jen některé sloupce - pomocí příkazu \cline{a-b} místo \hline, kde a resp. b znamená pořadí prvního resp. posledního sloupce, přes který se udělá čára.

Příklad prostředí tabular (tabulky s možností linek):

\begin{tabular}{c||rp{3cm}}

\bfseries \bfseries Město & \bfseries Datum & \bfseries Max. tep. \\[2mm]

\hline \hline

město M & 15/7 & 33$^\circ$ Celsia \\

město N & 21/7 & 35$^\circ$ Celsia\\

město XYZ & 3/8 & 34$^\circ$ Celsia \\

\end{tabular}

0x01 graphic

Další příklad na prostředí tabular

\begin{tabular}{|c||r|p{3cm}|}

\hline

\bfseries \bfseries Město & \bfseries Datum & \bfseries Max. tep. \\[2mm]

\hline \hline

Čechy & & \\ \cline{1-1}

město M & 15/7 & 33$^\circ$ Celsia \\

město N & 21/7 & 35$^\circ$ Celsia\\

město XYZ & 3/8 & 34$^\circ$ Celsia \\ \hline

\end{tabular}

0x01 graphic

Další příklad na prostředí tabular (zarámovaný víceřádkový text o šířce stránky):

\noindent\begin{tabular}{|p{\textwidth}|}

\hline

text přes několik řádků text text text text text text text text text

text text text text text text text text text text text\\

\hline

\end{tabular}

0x01 graphic

V případě, že potřebujeme, aby některá položka byla umístěna přes více sloupců, můžeme použít příkaz
\multicolumn{přes kolik sloupců}{zarovnání}{položka}, kde zarovnání je jedno z písmen l nebo r nebo c. Tím se položka v aktuálním řádku tabulky může umístit přes několik sloupců.

\begin{tabular}{|c||r|c|}

\hline

& \multicolumn{2}{|c|}{\bfseries Max. teplota v daném dni} \\ % první řádek

\cline{2-3}

\bfseries \bfseries Město & \bfseries Datum & \bfseries Max. tep. \\[2mm]

\hline \hline

Ćechy & & \\ \cline{1-1}

město M & 15/7 & 33$^\circ$ Celsia \\

město N & 21/7 & 35$^\circ$ Celsia\\

město XYZ & 3/8 & 34$^\circ$ Celsia \\ \hline

\end{tabular}

0x01 graphic

V prostředí tabular lze předepsat i jiný tvar mezisloupcového oddělovače než jen mezeru nebo vertikální čáru obklopenou tzv. mezisloupcovými mezerami. K tomu slouží @{oddělovač} umístěné mezi příslušnými písmeny v položce sloupce hlavičky prostředí tabular. Oddělovač může být znak, např. = nebo sekvence, např. \ \times \ (tedy např. c@{\ \times \ }c). Může být použito i @{} - pak mezi sloupci není žádná mezisloupcová výplň.

Celou tabulku lze v horizontálním směru prosvětlit zvětšením délkového registru \tabcolsep (velikost mezisloupcové mezery) - implicitně je 3pt. Ve vertikálním směru lze tabulku prosvětlit předefinováním příkazu \arraystretch v preambuli (implicitně je hodnota rovna jedné) např. \renewcommand{\arraystretch}{1.2}

Jinak lze ještě tabulku prosvětlit na vhodných místech vložením strutu. Do okénka tabulky můžeme vložit třeba další tabulku. Pokud chceme, aby jednotlivé položky obsahovaly nějakou složitější strukturu, můžeme toho dosahnout vložením této struktury jako boxu. S použitím instrukce \rotatebox z balíku graphics pak dosáhneme i nehorizontální orientaci elementu.
Příklad s boxem:

\begin{tabular}{|c||r|p{3cm}|}

\hline

\bfseries \bfseries Město & \bfseries Datum & \bfseries Max. tep. \\[2mm]

\hline \hline

\rotatebox{90}{\parbox[b]{2cm}{\bfseries Česká \\ Republika \\ v roce 2000}} & & \\ \cline{1-1}

město M & 15/7 & 33$^\circ$ Celsia \\

město N & 21/7 & 35$^\circ$ Celsia\\

město XYZ & 3/8 & 34$^\circ$ Celsia \\ \hline

\end{tabular} % po překladu přetransformovat dvi na ps.

0x01 graphic

Pozn. v prostředí tabular je možno vytvořit také malou vertikální čáru jako obyčejný znak (ale o trochu větší) v dané položce přes jeden řádek tabulky. Vytvoří se příkazem \vline.

J) Matematika

Matematický režim se nastaví vstupem do jednoho z dále uvedených prostředí. V těchto prostředích nesmí být žádný prázdný řádek. V matematickém režimu se používají fonty nezávislé na nastaveních vně matematického prostředí s výjimkou nastavení velikosti - to platí i po vstupu do matematického režimu.

Matematická prostředí:

\begin{math} \end{math} (ekvivalentně \( \) nebo $ $) ... vzorec v textu
\begin{displaymath} \end{displaymath} (ekvivalentně \[ \] ) ... vzorec mimo text bez čísla
$$ $$ ... TeXovské "prostředí" pro vzorec mimo text
\begin{equation} \end{equation} ... číslovaná rovnice (vzorec)
\begin{eqnarray} \end{eqnarray} ... zarovnané číslované rovnice (vzorce} podle zarážek
\begin{eqnarray*} \end{eqnarray*} ... zarovnané nečíslované rovnice (vzorce) podle zarážek

Některá prostředí zařizují automatické číslování rovnic. Číslo je odvozeno od pořadí rovnice a od čísla oddílu, ve kterém se nachází. Uživatel může standartně číslování ovlivnit jen způsobem "tuto rovnici čísluj - nebo nečísluj" s jednou výjimkou - v TeXovském prostředí $$ $$ funguje TeXovský příkaz \eqno - a to tak, že na okraj stránky přidá řetězec, který následuje za \eqno (např. $$x^2+3=4 \eqno(2) $$).

Pozn. TeXovské prostředí $$ $$ nezvyšuje hodnotu čítače rovnic equation. Pokud tuto hodnotu chceme zvýšit o jedničku i v tomto případě, pak (nejlépe dovnitř $$ $$) umístíme příkaz \refstepcounter{equation}.

\begin{eqnarray}

x &= & 8(x-9) + y + 14 \nonumber \\

x &= & 8(x-9) - y + 15 \\

-3x &= & 0.5x + 0.1 y - 103

% příkaz \\ za posledním řádkem by LaTeX pochopil

% jako že má následovat ještě jedna rovnice a

% očísloval by prázdný řádek

\end{eqnarray}

0x01 graphic

Pokud se hned za rovnici přidá klíčové slovo \nonumber, nebude tato číslovaná. Velikost mezery mezi řádky v tomto prostředí je určena délkovým registrem \jot. Pozn.: vytváření sloupců v prostředí eqnarray funguje asi následujícím způsobem:

  1. prohlédnou se všechny řádky v eqnarray a rozhodne se o počtu sloupců podle řádku s největším počtem tabulátorů &

  2. pokud je na některém řádku méně než tento největší počet tabulátorů, jakoby se doplní na konec tohoto řádku příslušný počet tabulátorů (před případné \\ a \nonumber)

  3. šířka daného sloupce se nastaví podle položky, která je ze všech řádků nejširší, přičemž se nikdy nejde pod jistou minimální šířku

Pokud v prostředí eqnarray místo & text (kde text je nějaký text - kus vzorce) napíšeme \lefteqn{text}, pak se to chová jako & text až na to, že se šířka textu při nastavování zarážek chápe jako nulová a text se zarovnává podle levé zarážky. To se dá využívá pro složitější rozdělování rovnic na více řádků: např.:

\begin{eqnarray*}

\lefteqn{y=a+b+c+d+e+f+g-} \\

& & -\sqrt{a+b+c+d+e+f+g}

\end{eqnarray*}

0x01 graphic

Matematickou obdobou (se všemi detaily) textového prostředí tabular je prostředí array (musí být vnořeno v prostředí displaymath nebo equation - v případě, kdy chceme, aby matice byla mimo text, a nebo mezi \( \) - pokud chceme, aby matice byla v textu).

\begin{equation}

\begin{array}{ccc@{\quad}r}

x & x-y+z & z & 31.27 \\

x-y & y+z & -z & 2.32 \\

x & y & 2 z & -4,36 \\

\end{array}

\end{equation}

0x01 graphic

$$\left( \begin{array}{ccc@{\ }r}

a & b & c & -10.15 \\

a & b & c & 3.1 \\

a & 0.3 b & 0.1c & -24 \\

\end{array} \right)$$

0x01 graphic

$$f(x) = \left\{ \begin{array}{r@{\quad}c}

y, & x > \pi \\

-y, & x \leq \pi \\ \end{array} \right.

$$

0x01 graphic

Nastavení písma v matematice:

\mathnormal{text}, \mathrm{text}, \mathbf{text}, \mathsf{text}, \mathit{text}, \mathtt{text}, \mathcal{text} Pokud potřebujeme v matematickém prostředí napsat kousek normálního textu (kdy písmena nebudou chápána např. jako jména proměnných), můžeme použít příkaz makebox{} (nebo zkráceně jen mbox{}) nebo nastavení jako např. \textrm{}. V případě \makebox{} (\mbox{}) je text v argumentu vysázen písmem, které platilo těsně než jsme vstoupili do matematického prostředí.

Číslo rovnice je ve třídě article jednoduché arabské číslo uzavřené v kulatých závorkách. Ve třídách book a report je místo jednoho čísla dvojčíslí ze dvou arabských číslic oddělených tečkou, kde první položka je číslo kapitoly a druhá je pořadí rovnice v dané kapitole (např. (2.3)).

Matematické symboly:

Šipky:

\leftarrow

\Leftarrow

\longleftarrow

\Longleftarrow

\leftrightarrow

\Leftrightarrow

\longleftrightarrow

\Longleftrightarrow

\hookleftarrow

\leftharpoonup

\leftharpoondown

\rightleftharpoons

\uparrow

\Uparrow

\downarrow

\Downarrow

\updownarrow

\Updownarrow

\nearrow

\searrow

\swarrow

\nwarrow

\mapsto

\longmapsto

\leadsto

a ještě slova, kde je right místo left (kromě těch, kde je left i right)

Relace:

\leq

\geq

\prec

\succ

\preceq

\succeq

\ll

\gg

\subset

\supset

\subseteq

\supseteq

\sqsubset

\sqsupset

\sqsubseteq

\sqsupseteq

\in

\ni

\vdash

\dashv

\equiv

\sim

\simeq

\asymp

\approx

\cong

\neq

\doteq

\propto

\models

\perp

\mid

\parallel

\bowtie

\Join

\smile

\frown

pozn: pro \Join je potřeba standartní balík latexsym

Binární operátory:

\pm

\mp

\times

\div

\ast

\star

\circ

\bullet

\cdot

\cap

\cup

\uplus

\sqcap

\sqcup

\vee

\wedge

\setminus

\wr

\diamond

\bigtriangleup

\bigtriangledown

\triangleleft

\triangleright

\lhd

\rhd

\unlhd

\unrhd

\oplus

\ominus

\otimes

\oslash

\odot

\bigcirc

\dagger

\ddagger

\amalg

pozn: pro \lhd, \rhd, \unlhd a \unrhd je potřeba standartní balík latexsym

Symboly ke kterým se obvykle přidávají indexy (které jsou často nad a pod):

\sum

\prod

\coprod

\int

\oint

\bigcap

\bigcup

\bigsqcup

\bigvee

\bigwedge

\bigdot

\bigotimes

\bigoplus

\biguplus

Příklad: $$\sum_{i=0}^\infty g_i$$ nebo $$\int_0^\infty f\,dx$$ V samostatném (vysázeném) vzorci se indexy k těmto symbolům umisují nad a pod na rozdíl od vzorce v textu. TeXovský příkaz \limits (napsaný těsně za symbolem) však umožňuje i v textu vnutit psaní indexu nad a pod, např: $\int\limits _0^1$. Pokud chceme, aby indexy nebyly nad a pod i ve vysázeném vzorci, můžeme použít analogický příkaz \nolimits.

Další různé symboly:

\aleph

\hbar

\imath

\jmath

\ell

\wp

\Re

\Im

\mho

\prime

\emptyset

\nabla

\surd

\top

\bot

\|

\angle

\forall

\exists

\neg

\flat

\natural

\sharp

\backslash

\partial

\infty

\Box

\Diamond

\triangle

\clubsuit

\diamondsuit

\heartsuit

pozn: pro \Box a \Diamond je potřeba standartní balík latexsym

Funkce:

\arccos

\arcsin

\arctan

\arg

\cos

\cosh

\cot

\coth

\csc

\deg

\det

\dim

\exp

\gcd

\hom

\inf

\ker

\lg

\lim

\liminf

\limsup

\ln

\log

\max

\min

\Pr

\sec

\sin

\sinh

\sup

\tan

\tanh

Řecká abeceda:

\Upsilon \upsilon

\alpha

\betta

\Gamma

\gamma

\Delta

\delta

\epsilon

\varepsilon

\zeta

\eta

\Theta

\theta

\vartheta

\iota

\kappa

\Lambda

\lambda

\mu

\nu

\Xi

\xi

\o

\Pi

\pi

\varpi

\varrho

\Sigma

\sigma

\varsigma

\tau

\Phi

\phi

\varphi

\chi

\Psi

\psi

\Omega

\omega

Závorky a příbuzné oddělovače: (je dobré je uvést příkazem \left nebo \right - pak se automaticky zvolí vhodná velikost)

( )

[ ]

\{ \}

\langle

\rangle

\lfloor

\rfloor

\lceil

\rceil

\uparrow

\downarrow

\updownarrow

\Uparrow

\Downarrow

\Updownarrow

|

\|

/

\backslash

Pokud má na jedné straně závorka chybět, je třeba místo oddělovače použít tečku. Příklad:

$$f(x) = \left\{ \begin{array}{r@{\quad}c}

y, & x > \pi \\

-y, & x \leq \pi \\ \end{array} \right.

$$

Některé akcenty nad znakem v matematice:

\hat{},

\tilde{},

\bar{},

\vec{},

\dot{},

\ddot{} (dvě tečky),

\acute{} (čárka)

Spodní index - vytváří se za pomocí podtržítka (např. a_1 nebo a_\infty nebo a_{23}, když je index předepsán jako více znaků, pomůžeme si skupinou - např. a_{23}, funguje samozřejmě i např. toto a_\mathbf{23})

Horní index - naprostá analogie se spodním indexovánim, pouze místo podtržítka je nyní stříška (např. x^2).

Dají se samozřejmě vytvářet i indexy k indexům (např. x_{2_1}, ale musí se dát pozor na závorky - např. \int_0^1 je integrál od nuly do jedné;

Zlomky: vytváří se pomocí \frac{čitatel}{jmenovatel} (např. \frac{\sqrt{x}}{\pi}).

Některé další příkazy v matematickém režimu: \widehat{} \widetilde{} \imath a \jmath (i a j bez tečky) \stackrel{}{} (umístí první parametr v indexove velikosti nad druhý parametr Příklad: $U\stackrel{lim}{\rightarrow}V$)
\underbrace{} a \overbrace{} (vytvoření vodorovné svorky pod a nad objektem), ve vzorci mimo text lze \underbrace nebo \overbrace opatřit indexem - pak se tento index umístí pod nebo nad svorku (např. $$\underbrace{a_1+\overbrace{a_2+\cdots +a_9}^8+a_{10}}_{10}$$) \sqrt[]{} (např. $\sqrt[m]{1+x}$ nebo $\sqrt[{\textstyle m}]{1+x}$)

\not - přeškrtnutí vpravo - znak za \not bude škrtnut; příklad: \not>; funguje tak, že se překrývá tento znak přeškrtnutí s následujícím znakem; polohu přeškrnutí vzhledem k objektu lze tedy ovlivnit vložením vhodné mezery mezi \not a znak; Pokud je znak symbol, vše funguje jak bylo řečeno, jinak může být potřeba uzavřít znak do složených závorek.

Různé tečky:

\ldots (lze použít i v textovém režimu), \cdots, \vdots, \ddots

Desetinné číslo v matematickém režimu - např. $1{,}345$.

Mezery v matematickém režimu:

\! záporná úzká mezera,   \; široká mezera,   \ mezislovní mezera,
\, úzká mezera,   \: střední mezera,   \quad čtverčík,   \qquad dva čtverčíky

K) Grafika

např. je možno použít balík graphics. Pak fungují příkazy:
\includegraphics*[x_1,y_1][x_2,y_2]{jméno souboru}. Tento příkaz provede následující: nech je v souboru nějaký obrázek. Obrázek má často ten tvar, že jeho okrajové části jsou bílé plochy - tedy "vlastní obrázek" je jakoby uprostřed umístěn na čistém listu. Často potřebujeme tuto bílou plochu oříznout. První pár volitelných parametrů jsou souřadnice levého dolního rohu oříznutého obrázku vzhledem k souřadné soustavě s počátkem v levém dolním rohu neoříznutého obrázku ( v tomto případě bude tedy celý obrázek v levém dolním rohu zkrácen - oříznut o x_1 a y_1 - "vlastní obrázek" bude nyní blíže k levému dolnímu rohu). Parametry x_2 a y_2 mají analogický význam pro pravý horní roh. Velikost umisovaného obrázku tedy bude (x_2-x_1) krát (y_2-y_1). Pokud první volitelné parametry chybí, pak jsou jejich hodnoty rovné 0. Pokud chybí i druhé volitelné parametry, neprovádí se žádné ořezávání.

Př.:
\includegraphics*[5mm,10mm][30mm,45mm]{jméno souboru} - vložení obrázku ve tvaru obdélníka o velikosti 25x35 mm, který byl vyňat z většího obrázku tak, že se obrázek nalevo ustřihl o 5 mm a dole o 10 mm.

\includegraphics[][]{jméno_souboru} - význam stejný jako u příkazu \includegraphics* až na to, že LaTeX v případě uvedení volitelných parametrů sice bude počítat s rozměry oříznutého obrázku, ale přesto ho vloží celý (pak se může s nečím překrývat).

\scalebox{scale_factor}[scale_factor_y]{} - změna velikosti detailů v ose x a y

\resizebox{velikostx}{velikosty}{} - vyplnění do připraveného obdélníka
\rotatebox{úhel}{} - otočení o zadaný úhel (používá se také v tabulkách)
\reflectbox{} - zrcadlové převrácení

Pozn.: Pokud příkaz \includegraphics vložíme do \rotatebox s rotací o násobek 90 stupňů, pak může být význam x_1, y_1, x_2, y_2 samozřejmě poněkud pomíchán. Příklad:

\scalebox{.2}{

\includegraphics*[0mm,30mm][200mm,230mm]{obr.eps}

}

Poznámka: samotný prohlížeč dvi souboru nemusí umět správně znázornit výsledky některých takových operací (např. \rotatebox) - pak je třeba provést konverzi dvi na ps (pomocí dvips).

Příklad užití balíku color:

Balík color:
Tento balík umožňuje vytvářet barevná pozadí a měnit barvu textu. Předdefinovány jsou následující identifikátory barev: red, green, blue, yellow, cyan, magenta, white, black. Pokud potřebujeme jinou barvu, máme k dispozici příkaz:
\definecolor{název barvy}{model}{h} - definuje novou barvu podle modelu (rgb nebo gray), h je stupen šedi (0 až 1) nebo hodnota barvy v rgb modelu (např. 0.5,0.5,0.3)

\pagecolor{barva} - přepnutí barvy pozadí aktuální a následujících stran.
\colorbox{barva}{objekt} - podložení objektu barevným obdélníkem (jeho velikost je o málo větší než velikost objektu). Funguje vlastně stejně jako příkaz makebox - vytváří se box, až na to, že makebox navíc může parametry nastavovat svoji velikost.
\fcolorbox{barva okraje}{barva vnitřku}{objekt} - funguje jako příkaz
\colorbox s tím, že kolem vnitřku udělá navíc okraj, jehož barva je specifikována prvním parametrem. Funguje vlastně stejně jako příkaz framebox - vytváří se box, až na to, že framebox navíc může parametry nastavovat svoji velikost. Síla okraje je určena délkovým registrem \fboxrule. Minimální vzdálennost okrajů boxu od jeho obsahu je určena parametrem \fboxsep.

\color{barva} - přepíná barvu textu
\textcolor{barva}{text} - text je vytištěn zadanou barvou.

L) Výčtová prostředí

Nejčastěji používanými výčtovými prostředími jsou prostředí itemize, enumerate a description.

\item - uvození položky v prostředích itemize, enumerate a description.
Příkaz \item může mít nepovinný parametr, který způsobí, že položka bude uvedena tímto parametrem. Pokud chceme mít v něm hranatou závorku, musíme celé heslo uzavřít do složených závorek - např. \item [{Pole[i]}]. Příklad:

\begin{enumerate}

\item první položka

\item druhá položka

\item[9.] devátá položka

\end{enumerate}

Výčtová prostředí lze do sebe vnořovat.

Pokud nám implicitní geometrie nevyhovuje, lze tvar výčtového prostředí ovlivnit následujícími registry (chtělo by to ale obrázek):

\leftmargini, \leftmarginii, \leftmarginiii, \leftmarginiv, \leftmarginv - vzdálennost levého okraje textového těla prostředí dané úrovně od levého okraje textového těla prostředí nadřazené úrovně (\leftmargini je vzdálennost okraje textového těla výčtového prostředí první úrovně od levého okraje textoveho těla normálního textu). Nastavení musí být vně výčtového prostředí, ke kterému se vztahuje.

\partopsep - odsazení výčtového prostředí první úrovně od normálního textu (mezera mezi výčtovým prostředím první úrovně a okolním textem tedy je \parskip + \partopsep)

\itemsep - odsazení jednotlivých položek výčtového prostředí. Platí v té úrovni výčtového prostředí, ve které je uvedeno.

\labelsep - hýbe s polohou návěští (symbolem položky). Je to vzdálennost konce prostoru rezervovaného pro návěští a prvního znaku v prvním řádku prvního odstavce dané položky

\itemindent - velikost zarážky prvního řádku prvního odstavce položek prostředí itemize a enumerate (hýbe i s polohou symbolu položky). Platí v té úrovni výčtového prostředí, ve které je uvedeno. V prostředí description je velikost zarážky pružná (podle délky označení položky) a parametr \itemindent má na ni vliv.

M) Plovoucí prostředí

Umisování kompaktních tabulek a obrázků do textu je obecně problémem. Tyto objekty nemohou být na rozdíl od obyčejných textových odstavců rozděleny na rozhraní stránek. Při práci s LaTeXem nemáme tak rychlou kontrolu, co se stane s okolím obrázku při jeho přemísení, jakou máme u WYSIWYG editorů. LaTeX však nabízí jinou filozofii práce při umisování těchto objektů - objekt se umístí do tzv. plovoucího prostředí. Pomocí tohoto nástroje lze relativně snadno a pohodlně umisovat obrázky a tabulky do textu. Uživatel nemusí specifikovat umístění objektu detailně.

Syntaxe:

\begin{figure}[loc] nebo \begin{figure*}[loc] - pro obrázky
\begin{table}[loc] nebo \begin{table*}[loc] - pro tabulky

Ve dvousloupcovém režimu verze s hvězdičkou způsobuje, že se objekt umisuje přes oba sloupce najednou, verze bez hvězdičky způsobuje umístění objektu uvnitř jednoho sloupce. V jednosloupcovem režimu jsou obě verze ekvivalentní.

Do prostředí table je často vnořeno prostředí tabular. Jako nepovinný parametr prostředí figure a table mohou být uvedena některá (1 až 4) z písmen h, t, b, p specifikující umístění objektu, které je do prostředí vnořeno. Význam:

h - umístění v místě uvedení ve zdrojovém textu (nefunguje pro dvousloupcové tabulky a obrázky ve dvousloupcovém režimu stránky)

t - umístění na začátku stránky, na které je prostředí uvedeno ve zdrojovém textu; Pozn: může se umístit i na stránce následující

b - umístění na konci stránky, na které je prostředí uvedeno ve zdrojovém textu (nefunguje pro dvousloupcové tabulky a obrázky ve dvousloupcovém režimu stránky); Pozn: moc mi to nefunguje

p - umístění na stránce, na které není text a která není příliš fyzicky a logicky (v jiné sekci) vzdálena od místa uvedení ve zdrojovém textu; může se umístit i na stránku, kde jsou i jiné (jen) plovoucí objekty.

V případě více písmen se LaTeX pokouší splnit požadavky zleva do prava. Požadavek považuje za splněný, pokud stránka nepřeteče ani příliš nepodteče. Implicitní hodnota loc je tbp - nejdříve se tedy LaTeX pokusí splnit t, když se mu to nepodaří, pokusí se o b, když ani to ne, pokusí se o p. Pokud se LaTeXu nepodaří vhodné umístění, umístí objekt na konci dokumentu na stánce, na které není obyčejný text. Platí přitom důležitá zásada: LaTeX nikdy nepřehodí objekty stejného druhu (nezamíchá obrázky a nezamíchá tabulky). Když se tedy např. nějaký obrázek nemůže vhodně umístit a umístí se tedy až na konci dokumentu, umístí se na konci dokumentu i všechny následující obrázky. Vyjímkou je pouze možnost prohození jednosloupcového a dvousloupcového obrázku ve dvousloupcovém dokumentu.

Ještě se může hodit následující příkaz ovlivňující umístění:
\suppressfloats[t nebo b] - zabrání umístění obrázků a tabulek uvedených za tímto příkazem na horní nebo dolní části stránky, na které je tento příkaz uveden, které by se jinak takto umístily. Pokud volitelný parametr chybí, znamená to zabránění umístění nahoře i dole.

V prostředí figure a table se může umístit tento příkaz:
\caption[případně jiný text v seznamu obrázků nebo tabulek]{text}. Tím se vygeneruje označení tabulky nebo obrázku - číslování (i detaily v označování) je automatické. Případné \label se musí vyskytovat až za \caption nebo musí být uvnitř argumentu příkazu caption. Pokud nejsme spokojeni s uvedením označení obrázku (při použití balíku czech je to Obrázek.), můžeme toto označení předefinovat pomocí \renewcommand v preambuli (za \usepackage{czech}) na např. Obr.:
\renewcommand{\figurename}{Obr.}. U tabulek se jedná o příkaz \tablename.
Mimochodem v plovoucím prostředí může být umístěno vlastně v podstatě cokoliv - třeba i několik obrázků s několika příkazy \caption nebo normální text.

Pozn. Obrázek nebo tabulku do plovoucího prostředí samozřejmě nemusíme umisovat a dokoce jej (ji) můžeme umístit do poznámky na okraji (pak ale můžeme potřebovat příkaz \raisebox pro posunutí referenčního bodu, protože objekt třeba nebude umístěn přesně tak, jak chceme).

Pro umisování plovoucích objektů existuje řada pravidel a parametrů. Hodnoty parametrů lze uživatelsky ovlivňovat. Zmiňme jen dva:

totalnumber - čítač, jehož hodnota znamená maximální počet plovoucích objektů, které se mohou objevit na stránce s obyčejným textem (implicitní hodnota je myslím 3). Můžeme ho ovlivnit pomocí \setcounter (např. \setcounter{totalnumber}{2}).

\textfraction - příkaz definující minimální část stránky zabranou obyč. textem, na které jsou plovoucí objekty (implicitně definuje tuto velikost myslím jako 0.2 - tedy na takové stránce může být maximálně 80% plochy zabráno plovoucími objekty). Příkaz lze předefinovat pomocí renewcommand (např. \renewcommand{\textfraction}{0.15}). Pozn.: moc mi to nefunguje.

Pozn. Pokud se jedná o jednosloupcové plovoucí objekty ve dvousloupcovém stylu, mají tyto parametry stejný význam - jen místo stránky je nyní sloupec.

Pokud do hranatých závorek před loc dáme vykřičník, nebude LaTeX při umisování plovoucího objektu přihlížet k omezením plynoucích z parametrů totalnumber, textfraction a podobných omezení - bude se maximálně snažit splnit loc (např. \begin{figure}[!ht]).

Lidé, kteří neumí s LaTeXem zacházet si často stěžují na velké problémy při umisování obrázků a tabulek. Pravda je, že LaTeX má poměrně přísná kritéria na vzhled dokumentu a pokud se mu plovoucí objekty nepodaří umístit podle instrukcí uživatele tak, aby splnil svá kritéria na estetičnost, umístí je na konec dokumentu, čímž dá najevo, že se mu nepodařilo splnit požadavky uživatele. Pro pohodlnou práci je velmi důležité zachovat zhruba následující postup:

  1. Přednostně se snažit využívat plovoucí prostředí pro umisování obrázků a tabulek. Pokud nám nevyhovuje tvar popisu plovoucího objektu vygenerovaného příkazem caption, nemusíme příkaz caption používat a popis umístit do plovoucího prostředí ve tvaru a na místo, které nám vyhovuje - pak se ovšem vzdáme automatického číslování plovoucího objektu (pokud ovšem automatické číslování nezařídíme jinak - viz. poznámka na konci této kapitoly). Často můžeme potřebovat vygenerovat ručně asi následující popis:

  2. OBR 1.:

    Na tomto obrázku je znázorněno ..., což ukazuje na ...

    1. Tento tvar pohodlně vyrobíme pomocí parboxu:

    2. OBR 1.: \parbox[t]{.7\textwidth}{Na tomto obrázku ..... .... ... ..}
      (šířka 0.7\textwidth je jen příklad).

    3. Pokud má LaTeX problémy se splněním našich požadavků, snažit se nejdříve změkčit jeho tvrdé normy použitím vykřičníku a pokud toto nepomůže, ulehčit mu práci změkčením našich požadavků (např. umístěním obrázku trochu na jiné místo) - toto ovšem případně dělat až v závěrečné fázi výroby dokumentu.

    4. Pokud se to stále nepovedlo a naše požadavky na umístění obrázku nebo tabulky jsou dost nekompromisní (typicky proto, že máme poslat příspěvek na konferenci a musíme se bezpodmínečně vejít na velmi omezený prostor, kdy estetičnost dokumentu jde hodně stranou), pak sáhnout k "ručnímu řízení" - neumisovat obrázek nebo tabulku do plovoucího prostředí. Velmi důležité však je toto případně udělat až v samotném závěru přípravy dokumentu (kdy už nebudeme dále dokument příliš měnit)!

    Poznámka k bodu 1):
    Pokud chceme, aby se číslo u OBR generovalo automaticky, můžeme to zařídit tím, že těsně před tento řádek přidáme dva řádky:

    \refstepcounter{figure}
    \label{nejakylabel}

    (kde nejakylabel je námi zvolený řetězec znaků) a OBR s číslem vytvoříme třeba následujícím způsobem: OBR~\ref{nejakylabel}. Tím se zajístí automatické číslování a správná hodnota čítače obrázků figure. Nezajistí se tím ovšem přidání obrázku do seznamu obrázků (pokud ho chceme mít). Zjistil jsem však, že to lze snadno dosáhnout přidáním následujícího řádku za text s označením obrázku: \addcontentsline{lof}{figure}{\numberline{\ref{nejakylabel}}\ignorespaces Text_který_chceme_mít_v_seznamu}

    Pro tabulky je postup analogický - místo lof je lot a místo figure je table. Tento postup je aplikován v souboru rep.tex u tabulky 1.1.

    N) Makra

    Definice maker:

    K definici maker slouží následující příkaz:

    \newcommand{příkaz}[počet par.][implicitní]{tělo definice}
    Pokud obsahuje definice makra nějaké parametry, musí se uvést volitelný parametr počet par. Tento příkaz definuje nový příkaz
    příkaz - jeho použitím v textu s případnými parametry se příkaz nahradí tělem definice s případnými aplikovanými parametry. V konstrukci se na parametry odkazuje znakem # následovaným číslem, které znamená pořadí parametru (např. #3). Při použití jsou pak parametry umístěny každý zvlášt v jednom páru závorek. Pokud se v této konstrukci uvede parametr implicitní, znamená to, že první parametr z těla definice je při volání příkazu volitelný a má tuto implicitní hodnotu.

    Příklad:

    \newcommand{\operator}[2][\hat]{\ensuremath{\mathbf{#1{#2}}}} - definuje makro se dvěma parametry. První je volitelný a pokud se při volání makra nespecifikuje, bude automaticky \hat.
    Příklady použití:
    \operator{A} - napíše tučné matematické A a nad ním stříšku (\hat), \operator[]{A} - napíše jen tučné A v matematickém režimu,
    \operator[\vec]{A} - napíše tučné A v matematickém režimu a nad ním šipku.
    \ensuremath zajistí, že pokud již nejsme v matematickém režimu, tak se do něj přepne.
    Dokonce funguje
    i následující makro:
    \newcommand{\operator}[2][]{\ensuremath{\mathbf{#1{#2}}}}
    použití: např.
    \operator{A} - napíše jen tučné A v matematickém režimu,
    \operator[\hat]{A} - napíše tučné A v matematickém režimu a nad ním stříšku.

    Příklad bez volitelného parametru:

    \newcommand{\operator}[1]{\ensuremath{\mathbf{\hat{#1}}}} - použití:
    \operator{A} - napíše tučné A v matematickém režimu a nad ním stříšku.

    Příklad na změnu šířky odstavce:

    \newcommand{\souhrn}[2]{

    \begin{center}\parbox{#1}{\bfseries\itshape\hrulefill \\ #2

    \hrulefill}\end{center}

    }

    Použití:

    \souhrn{.8\textwidth}{Dá se říci, že se navrhovaná metoda ukázala jako perspektivní. Avšak pro jistotu navrhujeme provést ještě další ověřovací experimenty.}

    Případná přítomnost číslovky v názvu makra činí problémy.

    Příkazem \renewcommand se změní chování již existujícího příkazu, příkaz \providecommand provede definici nového makra jen, pokud již definice téhož jména neexistuje (\newcommand LaTeX v tomto případě způsobil chybovou hlášku). Parametry u obou těchto příkazů jsou stejné jako u přikazu \newcommand. Mám tu zkušennost, že \renewcommand něčeho co je definováno v souborech .cls nebo .sty by se neměl uvádět v textové části nýbrž v preambuli. V každém případě je i z hlediska přehlednosti lepší uvádět příkazy jako newcommand v preambuli (případně v balíku).

    Bezparametrický příkaz \renewcommand{}{} se často používá při modifikaci chování standartních příkazů. Zde je seznam příkazů, které generují uvedený řetězec (anglický nebo český) a které můžeme často potřebovat předefinovat pomocí renewcommand (nejlépe na konci preambule). Tyto příkazy uživatel obvykle přímo nepoužívá, ale jsou užity uvnitř jiných uživatelských příkazů - obsaženy v jejich definici. Jejich význam by měl být jasný.

    Příkaz

    Anglická verze

    Česká verze

    \abstractname

    Abstract

    Abstrakt

    \alsoseename

    see also

    viz také

    \appendixname

    Appendix

    Příloha

    \bibname

    Bibliography

    Literatura

    \ccname

    cc

    Na vědomí

    (u dopisů)

    \chaptername

    Chapter

    Kapitola

    \contentsname

    Contents

    Obsah

    \enclname

    encl

    Příloha

    (u dopisů)

    \figurename

    Figure

    Obrázek

    \headtoname

    To

    Komu

    (u dopisů)

    \indexname

    Index

    Rejstřík

    \listfigurename

    List of Figures

    Seznam obrázků

    \listtablename

    List of Tables

    Seznam tabulek

    \partname

    Part

    Část

    \prefacename

    Preface

    Předmluva

    \refname

    References

    Reference

    \seename

    see

    viz

    \tablename

    Table

    Tabulka

    Př.: \renewcommand{\figurename}{FIGURE}

    O) Boxy

    Práce s boxy umožňuje uživateli LaTeXu vytvořit prakticky cokoliv (např. tabulku, uvnitř které jsou některé položky pootočené o např. 90 stupňů a umístěny i nějaké obrázky)!
    TeX funguje tak, že si vytvoří "notovou osnovu" - linky (tzv. účaří) pod sebou a na ně pak umisuje tzv. boxy (obdélníky). Vlastně i každý jednotlivý znak je takový malý box. Ve fázi umisování boxu na linky (na účaří) se TeX nezajímá o vnitřní strukturu boxu - zajímají ho jen rozměry, aby mohl boxy správně umisovat - rozteče mezi linkami "notové osnovy", rozteče mezi boxy v horizontálním směru. Obsahem boxu (s výjimkou tzv. rule boxu) může být cokoliv - např. obrázek. TeX automaticky umisuje boxy horizontálně za sebou, nenastává-li zlom řádku nebo není-li explicitně požádán, aby tak nečinil. Každý box má svůj tzv. referenční bod, jeho umístění vzhledem k hranicím boxu je dáno typem boxu a někdy je také uživatelsky ovlivnitelné. TeX umisuje box tak, aby referenční bod ležel na účaří (lince "notové osnovy"). LaTeX obsahuje uživatelské příkazy dovolující vytvářet větší a složitější boxy z jednodusších a menších (typicky např. ze znaků) - tvořit boxy (ruleboxy, LR boxy nebo parboxy).

    1. rule boxy: jsou černé obdélníčky a vytvoří se příkazem \rule[zvýšení]{šířka}{výška} - příkaz umístí do textu černý obdélník (kromě případu, kdy je použit pouze jako parametr příkazu settowidth nebo settoheigth nebo settodepth), zvýšení je y-nová souřadnice dolního okraje boxu a referenčního bodu - kladná hodnota tedy způsobí posunutí boxu nad účaří. Šířka nebo výška může být i nulová - vznikne tak neviditelná čára - tzv. strut. Čára sice není vidět, ale LaTeX s ní počítá - dá se to použít např. na zvětšení buňky tabulky, pokud by jinak hranice buňky obklopovaly položku příliš těsně.

    2. LR boxy: obsahem může být cokoliv a vytvoří se příkazem \makebox[velikost][umístění obsahu]{obsah} - příkaz umístí do textu box vytvořený ze "zřetězení" položek obsahu obsah (kromě případu, kdy je použit pouze jako parametr příkazu settowidth nebo settoheigth nebo settodepth). Pokud je obsah např. normální věta tvořená posloupností písmen a mezer, vytvoří příkaz jeden box v podobě oné věty. Přitom se neprovádí automatické zalamování, ani se nerespektují případné znaky nový řádek. Volitelný parametr velikost dovoluje ovlivnit velikost boxu, pokud není uveden volí se rozměry automaticky co nejmenší dostatečné na to, aby se obsah do nich vešel (defaultní rozměry). Při explicitním určení velikosti se dají využít symboly \height, \depth, \totalheight, \width znamenající defaultní rozměry. Parametr umístění obsahu může být l nebo r nebo s (stretch - rozptýlení obsahu na celou šířku boxu). V případě, že volitelné parametry nepotřebujeme, můžeme psát zkráceně \mbox{obsah}.

    \framebox je příkaz se stejnými parametry a stejným významem jako příkaz \makebox až na to, že obsah boxu je navíc orámován. Síla orámování je ovlivnitelná registrem \fboxrule (implicitně je 0.4 pt). Registr \fboxsep určuje minimální vzdálennost okrajů boxu od jeho obsahu.
    Poznámka: tyto příkazy - \makebox a \framebox se jmenují stejně jako obdobné příkazy z prostředí picture. Parametry se však trochu liší.

    1. parboxy: obsahem může být cokoliv jako u LR boxu, navíc však funguje automatické zalamování řádků na pravém okraji boxu. Vytvoří se příkazem: \parbox[vertikální umístění][výška][umístění obsahu]{šířka}{obsah} - to samé jako u LR boxu s výjímkou automatického zalamování řádků. Protože funguje automatické zalamování řádků, musí se předepsat šířka. Parametr výška určuje prostě výšku boxu. Referenční bod je zhruba v jedné polovině boxu. Parametr vertikální umístění (může být buď t nebo b nebo c - implicitně je c) ovlivňuje vertikální umístění obsahu boxu v jeho rámci a znamená buď to, že refereční bod prvního (t) nebo posledního (b) řádku vnitřních boxů ( myslí se ref. bod boxů, které řádek tvoří ) je ve stejné výšce jako referenční bod celého boxu (parboxu). Pokud je uvedeno c, pak jsou vnitřní boxy rozmístěny tak, aby střed soustavy řádků, které boxy tvoří, byl stejně vysoko jako referenční bod celého boxu. Dále je samozřejmě možné ovlivňovat vertikální umístění pomocí příkazu \vspace uvnitř obsahu boxu.

    Dále jsou pro práci s boxy užitečné příkazy:
    \savebox{\jménoboxu}[šířka][pozice]{obsah} - vytváří box z obsahu a ukládá ho do \jménoboxu, pozice může být buď r nebo l nebo s (existuje ještě velmi podobný příkaz stejného jména, který je určen hlavně pro prostředí picture). Jméno boxu musí být před tím deklarováno příkazem:
    \newsavebox{\jménoboxu} (např. \newsavebox{\krabicka}).
    \usebox{\jménoboxu} - funguje jako \makebox pro posloupnost příkazů vytvořených pomocí příkazu \savebox a odkazovaných pomocí jménoboxu.

    \raisebox{posun}[výška][hloubka]{objekt} - posune polohu referenčního bodu objektu (a tím i celý objekt) o posun nad účaří (posun může být i záporný). Normálně leží referenční bod na účaří - tento příkaz dovoluje toto pravidlo porušit. Je možné zadat ještě výšku a hloubku. LaTeX pak pro rozhodování o rozteči mezi řádky nebude přihlížet ke skutečným rozměrům boxu, ale k těmto fiktivnim - tím můžeme dosáhnout překryvu boxů.
    Následující příklad je makro umisující na levý okraj libovolný objekt (text, tabulku nebo obrázek) a napravo od něj popis vzdálený o velikost udanou druhým parametrem. Popis je umístěn do takové výšky, aby jeho spodní okraj ležel ve výšce spodního okraje objektu.
    Předpokládá se, že jsou zavedeny délkové registry \sirkaobj, \zbytek a \ucari - pomocí příkazu \newlength a že je použit balík czech a graphics.

    \newcommand{\objspopisem}[3]{ % definice příkazu

    \settowidth{\sirkaobj}{\makebox{#1}} % získání šířky objektu

    \noindent\makebox{#1}\hspace*{\fill}

    \zbytek=\linewidth

    \addtolength{\zbytek}{-\sirkaobj}

    \addtolength{\zbytek}{-#2}% výpočet volného místa

    \settodepth{\ucari}{\makebox{#1}}

    \raisebox{-\ucari}{\parbox[b]{\zbytek}{\footnotesize #3}}

    }

    Příklad použití příkazu:

    \newsavebox{\obrazek} % vytvoření boxu

    \savebox{\obrazek}{ % uložení obrázku do boxu

    \scalebox{0.2}{

    \includegraphics*[0mm,30mm][220mm,250mm]{obrpr.ps}

    }

    }

    \objspopisem{\usebox{\obrazek}}{2em}{\textbf{Obr. 1.} Tento popis se týká obrázku

    nalevo a ilustruje, jak lze snadno vytvořit vhodně umístěný popis napravo.}

    P) Prostředí picture

    Prostředí picture dovoluje kreslit různé geometrické obrazce přímo prostředky LaTeXu - ten vytvoří obrázky jako seskupení různých speciálních fontů. V deklaraci prostředí se vymezí místo rezervované pro kreslení. Prostředí picture vlastně vytváří box, který se umisuje v okolním textu zrovna tak jako písmeno. V deklaraci je možno zadat i posunutí počátku souřadného systému vzhledem k levému dolnímu rohu boxu pro příkazy kreslení. V tomto prostředí platí jen příkazy, které mají souvislost s kreslením. Ještě před vlastní deklarací prostředí lze specifikovat jednotku. Učiní se tak modifikací délkového registru \unitlength (implicitní hodnota je 1pt).

    Deklarace je \begin{picture}(šířka,výška)(x_0,y_0). x_0 a y_0 jsou souřadnice počátku souřadného systému pro kreslení vzhledem k levému dolnímu rohu vzniklého boxu. Druhé kulaté závorky mohou chybět - pak je x_0 i y_0 rovné nule. Možnost posunout počátek souřadného systému umožňuje pohodlně hýbat s obrázkem. V prostředí picture lze specifikovat různé objekty. Pokud objekt vychází mimo vyhrazenou plochu, nic se neděje - skutečně se nakreslí (třeba i přes okolní text). To se dá využít. Objekty jsou většinou tvořeny čarami. Síla čáry se nastavuje následujícími příkazy:

    \thicklines - přepíná sílu následujících čar na 0.8 pt
    \thinlines - přepíná sílu následujících čar na 0.4 pt (implicitní hodnota)
    \linethickness{tlouška_včetně_jednotky} - nastavuje sílu čar na hodnotu tlouška

    Příkaz \linethickness má vliv jen na horizontální nebo vertikální čáry a bezierovy křivky (jiné čáry tedy mohou mít pouze dvě dříve uvedené tloušky). Objekty se umisují příkazem \put(x,y){objekt}, kde x a y jsou souřadnice umístění referenčního bodu. V nejjednodusším případě je objekt nějaký text (což je vlastně box). Objektem je vlastně vždy prostě nějaký box.

    Objekty mohou být i boxy vytvořené následujícím způsobem:

    \framebox(šířka,výška)[poloha]{objekt} - vytváří box ohraničený plnou čarou a umístí do něj objekt. Poloha objektu jsou dvě písmena vzniklá spojením jednoho z těchto: t,c,b a jednoho z těchto: l,c,r. Implicitní hodnota je cc. Poloha může být také jedno písmeno - chová se to tak, jakoby druhé bylo automaticky c.

    \makebox(šířka,výška)[poloha]{objekt} - jako framebox, ale bez orámování

    \dashbox{element}(šířka,výška)[poloha]{objekt} - jako framebox, ale orámování je provedeno čárkovanou čarou; element je číslo, které vyjadřuje délku čárky a mezery v jednotkách \unitlength.

    Dále je možno uvnitř prostředí picture použít příkaz pro úschovu boxu:

    \savebox{\jménoboxu}(šířka,výška)[poloha]{obsah} - vytváří box z obsahu a ukládá ho do \jménoboxu, poloha má význam jako u \framebox; \jménoboxu musí být dříve deklarováno pomocí \newsavebox{\jménoboxu}.
    Pokud se kulaté závorky vynechají, zvolí se šířka s výška nejmenší možná taková, aby se obsah do boxu celý vešel.

    Tento příkaz \savebox má stejné jméno jako velmi podobný příkaz bez specifikace - ten lze také použít v prostředí picture.
    Nicméně i zde popsaný příkaz
    \savebox se specifikací šířky i výšky lze použít i mimo prostředí picture! Pro šířku a výšku pak platí jednotky naposledy nastavené v délkovém registru \unitlength. Vlastně lze oba dva příkazy \savebox používat ve stejných situacích - to je poněkud nelogické (stačil by jeden).

    Příkaz \savebox umožňuje zaznamenat obrázek a pak ho pomocí \put opakovaně používat na různých místech.
    Příklad: Pokud byl již dříve v souboru uveden příkaz
    \newsavebox{\obrazek} (mimochodem lze ho uvést i v prostředí picture) a pokud se v nějakém prostředí picture uvede např. toto:
    \savebox{\obrazek}{\begin{picture}(10,10)\put(8,8){\circle{10}}\end{picture}}, pak v tom samém prostředí můžeme psát např:

    \put(2,4){\usebox{\obrazek}}

    Příkaz \savebox umožňuje zaznamenat obrázek a pak ho pomocí \put (viz. dále) opakovaně používat na různých místech (třeba i v jiných prostředích picture - pokud se uloží vně prostředí picture). To může ušetřit spoustu práce.

    Pozn. ke zde popsaným příkazům \framebox a \makebox se dá říci to samé jako ke zde popsanému příkazu \savebox, co se týče analogie se stejnojmennými příkazy popsanými v kapitole Boxy (zde uvedené příkazy jsou prostě mírným zobecněním stejnojmenných příkazů z kapitoly Boxy).

    Další možné objekty:

    \line(x,y){délka nebo průmět_délky_ve_směru_osy_x}, kde x a y jsou celá čísla v intervalu <-6,6>, která nemají společného dělitele většího než 1. Toto představuje úsečku, kde y/x je tangens úhlu, který svírá úsečka s osou x. Pokud není úsečka svislá, platí pro povinný parametr druhá možnost a naopak.

    \vector(x,y){délka nebo průmět_délky_ve_směru_osy_x} - kreslení vektoru analogickým způsobem jako u úsečky. Šipka se nakreslí v koncovém bodě. x a y mohou být jen z intervalu <-4,4>.

    \circle{pruměr} - kreslení prázdného kroužku. Maximalní možný pruměr je asi 14 mm. Příklad použití: \put(20,20){\circle{10}}

    \circle*{pruměr} - kreslení plného kroužku. Maximální možný pruměr je asi 6 mm.

    \oval(šířka,výška)[část] - kreslí ovál. Parametr část umožňuje kreslit jen polovinu nebo čtvrtinu oválu - může být t, b, rb, rt, lb nebo lt. V důsledku toho, že se nedá nakreslit kružnice větší než asi 14 mm, kreslí se v případě, šířky i výšky větší než asi 14 mm čtverec se zaoblenými rohy.

    \qbezier[N](krajníbod1_x,krajníbod1_y)(R_x,R_y)(krajníbod2_x,krajníbod2_y) - vytváří kvadratickou bezierovu křivku (parabolu) spojující dva krajní body podle řídícího bodu R (v řídícím bodu se protínají tečny ke křivce procházející krajními body). V případě, že není volitelný parametr zadán, bude čára plná, v případě s volitelným parametrem bude čára tečkovaná, přičemž počet teček bude N.

    Opakování motivu:

    \multiput(x,y)(deltax,deltay){počet}{objekt}
    Význam parametru je jasný z následujícího příkladu na vytvoření čtvercové mřížky složené s 5x5 čar s roztečí 10 mm:

    \unitlength=1mm

    \begin{picture}(40,40)

    \thicklines

    \multiput(0,0)(10,0){5}{\line(0,1){40}}

    \multiput(0,0)(0,10){5}{\line(1,0){40}}

    \end{picture}

    Orámování objektu:

    \frame{objekt} - orámování objektu.

    Vkládání obrázku do obrázku:

    \put(x,y){\begin{picture}(,).....\end{picture}}
    Pozn. Složené závorky v příkazu
    \put vlastně představují prostředí.

    Ve složených závorkách příkazu \put může být samozřejmě i příkaz \input - tak je možno natáhnout obrázek z jiného souboru.

    Vkládání obrázku do obrázku se změněným měřítkem obrázku:

    \put(x,y){\setlength{\unitlength}{hodnota}\begin{picture}(,).....\end{picture}}

    Při použití balíku graphpap je možno v prostředí picture použít příkaz:

    \graphpaper[spacing](počátek_x,počátek_y)(šířka,výška)
    Tento příkaz způsobí vykreslení mřížky (s číselnými koordinátami) podobné milimetrovému papíru. Volitelný parametr spacing udává rozteč mezi čarami v jednotkách
    \unitlength. Implicitní hodnota je 10. Význam ostatních parametrů je jasný. Parametry příkazu \graphpaper mohou být pouze celá čísla. Tento příkaz je užitečný pro lepší kontrolu umisování objektů.

    Repertoár funkcí prostředí picture je výrazně rozšířen pokud použijeme balík epic. Jedná se zejména o následující funkce:

    \drawline(x_1,y_1)(x_2,y_2)...(x_n,y_n) - příkaz pro kreslení úsečky nebo lomené plné čáry spojující zadané body (síla čáry není předepsána příkazem \linethickness). Tento příkaz se neuvádí v argumentu příkazu \put. Není třeba se starat o možný sklon - v případě potřeby balík epic složí úsečku z několika menších s možnými sklony (pak je ovšem úsečka trochu lomená).

    \dashline{délka_čárky}(x_1,y_1)(x_2,y_2)...(x_n,y_n) - příkaz pro kreslení čárkované úsečky nebo čárkované lomené čáry - analogie s drawline.
    > Pozn. zjistil jsem, že pokud se síla čáry pro
    \dashline specifikuje příkazem \linethickness, pak je \dashline poněkud zmateno.

    \dottedline[symbol]{rozteč_teček}(x_1,y_1)(x_2,y_2)...(x_n,y_n) - příkaz pro kreslení tečkované úsečky nebo tečkované lomené čáry - analogie s drawline. Nepovinný parametr symbol umožňuje místo tečky použít např. kolečko (\dottedline[\circle{2}]....)

    Překonat omezení ve velikosti poloměru kružnic a sklonů úseček vytvořených příkazem \line (vektorů bohužel ne) v současné době umožňuje např. balík eepic.sty. Balík eepic představuje podstatné rozšíření možnosti prostředí picture. Jedná se např. o následující příkazy:

    \Thicklines - tento příkaz umožňuje kreslit tlustší šikmé čáry

    \arc{pruměr}{úhel1}{úhel2} - příkaz pro kreslení kruhového oblouku; zde úhel1 (startovací) a úhel2 (konečný) jsou uvedeny v radiánech a vedeny od osy x ve směru hodinových ručiček. Výplňový vzor kruhového oblouku (kruhové výseče) se dá nastavit příkazy \shade, \blacken a \whiten

    \ellipse{vel_osy_ve_směru_x}{vel_osy_ve_směru_y} - příkaz pro kreslení elipsy

    \path(x_1,y_1)(x_2,y_2)...(x_n,y_n) - příkaz pro kreslení úsečky nebo lomené čáry spojující zadané body (síla čáry není předepsána příkazem \linethickness). Tento příkaz se neuvádí v argumentu příkazu \put.
    Pozn. Zdá se, že se
    \drawline z balíku epic chová úplně stejně jako \path z balíku eepic, pokud je \drawline vylepšen uvedením balíku eepic v preambuli (za epic).

    Bohužel ani epic ani eepic nemá funkci pro kreslení čárkované kružnice. U eepic však můžeme takovou kružnici vyrobit složením z několika kruhových oblouků.

    Při použití balíku eepic se šikmé úsečky a kružnice kreslí ne jako vhodné spojení speciálních fontů, ale je umožneno příkazy postscriptu vloženými do dvi souboru pomocí příkazu \special. Proto pro konečný výsledek bude asi nutné provést explicitní konverzi dvi na ps.

    Složitější manipulace s objekty (jako např. rotace) je možno uvnitř prostředí picture provádět za pomocí instrukcí balíku graphics.

    Pozn. program gnuplot na kreslení grafů umí výstup do formátu příkazů prostředí picture při rozšíření eepic.

    21

    Zpět

     
logo horoskopy
logo humor
logo sms
logo nejhry
logo tri65dni
logo tvp
Seminárky, referáty, skripta, mat. otázky Studijní materiály
Seminárky, referáty, skripta, mat. otázky
    Přihlášení
    Registrace


    Vzhledy:
    Vlastni
    Neděle 3. 12. 2023 Svátek má Svatoslav
    Vyhrávej v casino.cz nebo na vyherni-automaty.cz   Prodávej s Pla-Mobilem.cz