Název by se na první pohled mohl zdát trochu zavádějící, ale když řeknu, že článek bude o tom, jak si rychle vytvořit prezentaci v LaTeXu, aniž bychom se přitom pouštěli do jeho bezedných hlubin, pak vám název "Kuchařka" možná už nepřijde tak úplně hloupý. Přesně takový totiž tento článek bude. S jeho pomocí budete schopni vytvořit svou novou prezentaci tak rychle a jednodušše, jako byste vařili polévku.

Beamer je jedna z LaTeXových tříd, která slouží k vytváření snímků pro prezentaci. Velkou výhodou je, že během vytváření prezentace pouze definujete, co který text znamená (co to je), a LaTeX sám se postará o finální podobu prezentace. Nemusíte se tak starat o vzhled, ale pouze o obsah, na který se tak můžete daleko lépe soustředit.

Výsledek je velmi kvalitní a závisí od toho, jakou šablonu pro svou prezentaci si z předvolených šablon vyberete.

Samozřejmě se v LaTeXu dají vytvářet i vlastní šablony, ale to již vyžaduje poměrně solidní znalosti a pro většinu případů to ani není potřeba, neboť šablony se dají stáhnout i z Internetu, pokud vám náhodou nestačí nabízené portfólio.

Jak funguje LaTeX a Beamer?

LaTeX je souborem maker pro sázecí systém TeX. Použití LaTeXu je však podstatně jednodušší než použití samotného TeXu samotného. Beamer je jednou z několika tříd (class) LaTeXu, která je se právě hodí na vytváření prezentací. Její použití umožní využít předdefinované příkazy, které v jiných třídách nejsou k dispozici.

Při práci s LaTeXem obecně musíme nejprve vytvořit takzvaný zdrojový soubor, kterému dáme příponu .tex. Tento soubor poté přeložíme překladačem, například pdflatex a vznikne nám finální dokument. V našem případě ve formátu pdf.

Pracovní pomůcky

Pro samotné vytvoření prezentace nebudeme potřebovat nic víc než jakýkoliv textový editor, ve kterém napíšeme potřebné texty. Abychom ji však mohli přeložit do finální podoby, budeme k tomu potřebovat program pdflatex, který je součástí balíku texlive, který si můžete nainstalovat příkazem

sudo dnf install texlive

Jestliže zatím nemáte žádný oblíbený editor, můžete si nainstalovat TeXstudio. Příkaz

sudo dnf install texstudio

nainstaluje také celé prostředí texlive. TeXstudio je přímo určeno pro zpracování TeXu a LaTeXu a má tak hodně zajímavých funkcí, které se vám mohou hodit, jestliže si tento způsob vytváření dokumentů oblíbíte a budete je takto tvořit často.

Vytváříme zdrojový soubor prezentace

Základní kostra souboru

Zdrojový soubor pro LaTeX musí být utvořený přesně podle daných pravidel. Proto si nyní ukážeme, jaké náležitosti musí tento soubor mít, aby ho překladač vůbec dokázal zpracovat.

Tělo dokumentu

Tělo dokumentu je tvořeno prostředím document. Prostředí v LaTeXu je vždy tvořenou párovou značkou, která se skládá z otevíracího příkazu \begin{} a ukončovacího příkazu \end{}. Ve složených závorkách těchto příkazů je pak vložený název prostředí. Takže správně utvořený dokument se nachází mezi těmito příkazy:

         \begin{document}
            Zde se nachází obsah dokumentu.
         \end{document}

Hlavička dokumentu

Hlavička dokumentu je také velice důležitá, protože se v ní definují různá nastavení pro překlad dokumentu. Zavádějí se zde podpůrné balíčky, které rozšiřují funkcionalitu LaTeXu o další užitečné vlastnosti, dají se tu definovat nové příkazy nebo konstanty a dalších pár věcí. My si představíme minimalistickou hlavičku, která bude potřeba, aby naše prezentace fungovala. Nejprve se podíváme, jak vypadá a potom si jednotlivé věci vysvětlíme:

        \documentclass{beamer}
    
        \usepackage[utf8]{inputenc}
        \usepackage[czech]{babel}
        \usepackage{graphicx}
        \usepackage{hyperref}
        
        \usetheme{Warsaw}
        \usecolortheme{seagull}    
        \usefonttheme{default}

        \title{Základní prezentace v Beameru}
        \subtitle{aneb Polévka je uvařena}
        \author{Lukáš Růžička}
        \date{listopad 2017}
  1. Příkaz \documentclass{} říká, s jakou třídou LaTeXu se bude pracovat. Jak už jsme si řekli, pro prezentace použijeme třídu beamer. Další třídy jsou například article, book, nebo letter. Je potřeba zdůraznit, že ačkoliv bychom si mohli přát, aby pouhá změna třídy vytvořila z jednoho obsahu jiný dokument, tento přístup nefunguje a byť některé třídy jsou téměř kompatibilní, beamer mezi ně zrovna nepatří.
  2. Příkaz \usepackage[volba]{balíček} říká překladači, že má při zpracování použít také definice a makra v tom onom určitém balíčku. Takto se dá hodně rozšířit funkcionalita čistého LaTexu. Některé balíčky mohou mít další volby, ty se většinou uvádějí v hranatých závorkách mezi příkazem a názvem balíčku ve složených závorkách. Balíčky použité v naší hlavičce se starají o podporu kódování unicode (inputenc), o podporu češtiny (babel), o podporu grafiky (graphicx), jež umožňuje vkládat do dokumentu obrázky, a konečně podporu klikacích odkazů v pdf (hyperref). Pokud víme, že některou vlastnost nebudeme pro prezentaci potřebovat, můžeme příslušný řádek vynechat.
  3. Příkazy usetheme, usecolortheme, a usefonttheme nám umožňují si vybrat jednu z vícero šablon a na tuto šablonu pak vybrat určitou barevnou kombinaci. Šablony, které jsou přímo součástí instalace LaTeXu a jejich barevné kombinace si můžete prohlédnout v galerii témat.
  4. Příkazy title, subtitle, author, a date není jistě potřeba dlouze vysvětlovat. Tyto příkazy se starají o to, aby LaTeX příslušné informace vysázel na patřičných místech. Všechny informace samozřejmě nemusíte zadávat. Také si můžete do příslušných závorek zadat cokoliv chcete, například místo data můžete zadat emailovou adresu. Pokud však chcete mít v prezentaci místo data prázdné místo, musíte příkaz použít a nechat jej prázdný. Pokud byste ho neuvedli vůbec, vysází se datum, kdy byla prezentace přeložena. Jiná pole se takto nechovají.

Správně vytvořený dokument bude vždy začínat hlavičkou, pak bude následovat příkaz \begin{document}, po němž přijdou na řadu všechny další možné příkazy, a celé to bude zakončeno příkazem \end{document}. Za tímto příkazem už nesmí následovat nic dalšího.

Prezentační snímek

Definice snímků se nachází v těle dokumentu a celý snímek je uzavřen do prostředí frame.

\begin{frame}{Název snímku}
    Text snímku
\end{frame}

Všimněte si, že na prvním řádku se nacházejí ještě jedny složené závorky, do kterých můžete umístit název snímku, který bude vysázen někde nahoře jako nadpis. Tato položka není povinná.

Na následujících řádcích si ukážeme, jak vložit snímek s konkrétním obsahem a jak tento obsah zapsat.

Přehled snímků

Titulní snímek

Pokud v prostředí snímku použijeme příkaz \maketitle, stane se ze snímku titulní snímek. Jeho použití má hlavně smysl na začátku prezentace. Pro jeho vysázení se použijí informace, které jsme zadali v hlavičce.

\begin{frame}
    \maketitle
\end{frame}

Snímek s obsahem

Jestliže chceme umístit do naší prezentace obsah, pak přidáme snímek s obsahem, který se vysází příkazem \tableofcontents. Tento příkaz kontroluje výskyt příkazů pro jednotlivé kapitoly (více dále) a podle nich potom obsah sází. Musíme si však uvědomit, že pokud máme větší počet takovýchto kapitol, nemusí se obsah vejít na jeden snímek. Následující kód představuje použití snímku s obsahem.

\begin{frame}[allowframebreaks]
    \tableofcontents
\end{frame}

Volba allowframebreaks, která se nachází na prvním řádku v hranatých závorkách, umožňuje, aby se snímek rozdělil na více snímků, pokud by se obsah na jeden snímek nevešel. Otázkou zůstává, zda v takovém případě na obsah spíše nerezignovat, protože několik takových snímků na začátku prezentace není asi nejlepší způsob, jak přitáhnout své posluchače. To však nechávám na posouzení každého.

Úrovně textu

Text můžeme dělit do úrovní (sekce, podsekce, podpodsekce). Pro definici použijeme jeden z následujících příkazů:

  1. Příkaz \section{Název sekce} definuje sekci (část).
  2. Příkaz \subsection{Název podsekce} definuje podsekci (podčást).
  3. Příkaz \subsubsection{Název podpodsekce} definuje podpodsekci (ještě menší část).

Tyto příkazy mohou být umístěny také mimo snímky a dávají dokumentu potřebnou strukturu. Z názvů sekcí, podsekcí a podpodsekcí se generuje obsah. Úrovně v obsahu budou správně přiřazené podle toho, jak je definujeme.

Důležitá poznámka! Protože program zjišťuje názvy sekcí až při zpracování, kdy ještě nemá přehled o tom, jak má dokument správně vypadat, je nutné dokument přeložit alespoň dvakrát, aby se vše správně vysázelo. V případě, že používáte Texstudio, program se o dvojnásobný průběh postará sám. Pokud spouštíte pdflatex přímo z konzole, tak jej musíte po skončení pustit ještě jednou.

Snímek pouze s textem

Text je nejjednodušší prvek, který můžeme do snímku dát.

\begin{frame}{Text}
    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam at ipsum metus. Interdum et malesuada fames ac ante ipsum primis in faucibus. Ut in eros hendrerit, tincidunt mi sit amet, ornare quam. Donec fringilla a magna eget ornare. Curabitur dapibus, felis a tincidunt luctus, augue dolor tristique eros, sit amet porta tortor nulla id massa. 
        
    Fusce sed condimentum sem. Nulla convallis in odio eget sagittis. Vestibulum fermentum, lectus sed lacinia ullamcorper, enim massa dapibus nibh, sed maximus enim magna sed metus. Duis vel metus ex. Nulla et augue pharetra, fermentum diam vel, mollis est. Vestibulum vel fermentum diam. Lorem ipsum dolor sit amet, consectetur adipiscing elit.
\end{frame}

Všimněte si, že text není úplně dobře rozdělen na odstavce, ačkoliv ve zdrojovém kódu odstavce máme. To proto, že Beamer v základním nastavení neodsazuje od kraje ani nevynechává řádek. Proto mu vnutíme vertikální mezeru, viz příklad, a tím ho donutím, aby mezi odstavce mezeru vložil. Jako parametr příkazu (složené závorky) uvedeme vzdálenost, o kterou má odstavec odskočit. Lze uvádět v cm, mm, nebo jiných jednotkách. Zde jsme použili hodnotu 5pt, což je 5 tiskových bodů. Tato mezera úplně dostačuje.

\begin{frame}{Odstavce s mezerou}
    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam at ipsum metus. Interdum et malesuada fames ac ante ipsum primis in faucibus. Ut in eros hendrerit, tincidunt mi sit amet, ornare quam. Donec fringilla a magna eget ornare. Curabitur dapibus, felis a tincidunt luctus, augue dolor tristique eros, sit amet porta tortor nulla id massa. 

\vspace{5pt}
        
    Fusce sed condimentum sem. Nulla convallis in odio eget sagittis. Vestibulum fermentum, lectus sed lacinia ullamcorper, enim massa dapibus nibh, sed maximus enim magna sed metus. Duis vel metus ex. Nulla et augue pharetra, fermentum diam vel, mollis est. Vestibulum vel fermentum diam. Lorem ipsum dolor sit amet, consectetur adipiscing elit.
\end{frame}

Opět upozorňuju na to, že přemíra textu na snímku není dobrou prezentační praxí a proto tohoto prvku budeme jistě využívat pouze zřídka.

Základní typy písma

Následující kód znázorňuje různé druhy písma, které můžeme v Beameru použít. Srovnání kódu s obrázkem jistě mnohé napoví.

\begin{frame}{Sazba různých základních prvků}
    Tento řádek obsahuje \textbf{tučné} slovo.
    
    \vspace{5pt}
    
    Tento řádek obsahuje \textit{skloněné} slovo.
    
    \vspace{5pt}
    
    Tento řádek obsahuje slovo zapsané \texttt{strojopisem}.
    
    \vspace{5pt}
    
    Tento řádek obsahuje  \textsc{verzálky}.
    
    \vspace{5pt}
    
    Tento řádek obsahuje klikací link \url{http://mojefedora.cz}.
\end{frame}

Můžeme použít tyto prvky:

  1. \textbf{} pro tučné písmo
  2. \textit{} pro skloněné písmo (italiku)
  3. \texttt{} pro písmo strojové
  4. \textsc{} pro verzálky (jakoby velká písmena, která však umějí rozlišit mezi velkým a malým)
  5. \url{} pro klikací odkaz (funguje pouze s balíkem hyperref v hlavičce)

Seznamy

Snímek s nečíslovaným seznamem

Nečíslovaný seznam se v prezentacích vždy hodí, protože se jedná vůbec o nejrozšířenější prvek všech prezentací. Vkládá se do prostředí itemize a můžeme ho také kombinovat s dalším textem.

\begin{frame}{Nečíslovaný seznam}
    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam at ipsum metus. Interdum et malesuada fames ac ante ipsum primis in faucibus. 
    \begin{itemize}
    \item Položka první
    \item Položka druhá
    \item Položka třetí
    \item Položka čtvrtá
    \end{itemize}
    Ut in eros hendrerit, tincidunt mi sit amet, ornare quam.
\end{frame}

Snímek s číslovaným seznamem

Číslovaný seznam je další možností. Velmi se podobá předcházejícímu příkazu, jen jméno prostředí je tentokrát enumerate. Také jej můžeme kombinovat s textem.

\begin{frame}{Číslovaný seznam}
    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam at ipsum metus. Interdum et malesuada fames ac ante ipsum primis in faucibus. 
    \begin{enumerate}
    \item Položka první
    \item Položka druhá
    \item Položka třetí
    \item Položka čtvrtá
    \end{enumerate}
    Ut in eros hendrerit, tincidunt mi sit amet, ornare quam.
\end{frame}

Snímek s tabulkou

Na snímek lze vložit i tabulky. Jejich syntaxe je všelijaká, ale na jednoduchou tabulku postačí základní kód, který si dále popíšeme.

\begin{frame}{Tabulka}
    \begin{tabular}{|l|c|c|}
    \hline Distribuce & Správce balíčků & Typ balíčků \\
    \hline Debian & apt-get & deb \\
    Fedora & dnf & rpm \\
    CentOS & yum & rpm \\
    Archlinux & pacman & tar.xz\\
    \hline
    \end{tabular}
\end{frame}

Celá tabulka je uzavřena do prostředí tabular. Všimněme si navíc parametrů {|l|c|c|}. To znamená, že tabulka bude vykreslena podle následujících kriterií:

  1. symbol | označuje vertikální čáru
  2. symbol l říká, že text sloupce bude zarovnán doleva (left)
  3. symbol c znamená zarovnání na střed (center)
  4. symbol r by bylo zarovnání doprava (right)
  5. symbol & odděluje data sloupců na řádcích
  6. symbol \\ ukončuje řádek (je povinný)
  7. příkaz \hline vykreslí vodorovnou oddělovací čáru

Naše tabulka tedy bude mít tři sloupce, budou odděleny svislou čárou, která bude i po stranách. Levý sloupec bude zarovnán doleva, další dva na střed. Vodorovné čáry pak budou ohraničovat tabulku nahoře i dole a další čára bude oddělovat hlavičku od zbytku tabulky. Přesvědčme se o tom na obrázku.

Snímek s obrázkem

Obrázky můžeme do prezentace vkládat pouze tehdy, použijeme-li v hlavičce dokumentu balíček graphicx. Na samotné vložení snímku s obrázkem použijeme

\begin{frame}{Obrázek}
    \begin{center}
    \includegraphics[width=8cm]{riverbank.jpg}
    Údolí řeky Želetavky (říjen 2017)
   \end{center} 
\end{frame}

Příkaz includegraphics má jako parametr uvedenou cestu k obrázku. Ten se na uvedeném místě musí nacházet, jinak nebude do výsledného souboru vysázen a místo něj bude pouze prázdné místo. Je také dobré omezit jeho šířku (hranatá závorka), aby nepřetékal mimo snímek. Šířka 8 cm se hodí pro obrázky situované na šířku. Obrázky na výšku musejí být samozřejmě užší. Experimentujte.

Narozdíl od předchozího snímku s tabulkou, je zde obrázek zarovnán na střed snímku. To je proto, že jsme tu použili navíc prostředí center. Pokud bychom ho použili i s tabulkou, byla by i ona zarovnaná na střed. Stejně tak jiný prvek použitý v tomto prostředí.

Snímek s programovým kódem

Chceme-li prezentovat části počítačového kódu, je to také možné. Pro kód použijeme prostředí verbatim, které vysází kód, tak jak je zapsán - včetně všech bílých znaků (mezery, tabulátory, zalomení odstavce). Aby prostředí v Beameru správně fungovalo nesmíme u takovýchto snímků zapomenout na volbu fragile (v hranatých závorkách). Jinak by totiž Beamer prostředí verbatim nepovolil a překlad by skončil s chybou.

\begin{frame}[fragile]{Kód}
    Následující kód je funkce programu Python.
    \begin{verbatim}

    def add_numbers(a,b):
        result = a + b
        return(result)
        
    \end{verbatim}
\end{frame}

Snímek s matematickou sazbou

LaTeX a Beamer jsou výborné pro sazbu matematických rovnic. Jedná se o pokročilejší téma a kdo má zájem, může si něco přečíst například v tomto článku. V tuto chvíli je důležité, že matematické příklady se vpisují mezi značky $.

\begin{frame}{Matematika}
    Zde se můžeme podívat na jednu pěknou rovnici.

    \vspace{5pt}

    $\frac{1}{4} + \frac{1}{2} = \frac{3}{4}$

\end{frame}

Překlad dokumentu

Když už máme zdrojový soubor prezentace vytvořen, je čas jej přeložit a získat tak finální dokument. Dokument můžeme přeložit dvěma způsoby.

Překlad pomocí CLI

Jestliže jsme pro vytvoření zdrojového dokumentu použili editor, který nemá vestavěnou podporu pro překlad LaTeXových dokumentů, přeložíme dokument v terminálu. Využijeme k tomu program pdflatex, který prezentaci přeloží přímo do formátu pdf.

pdflatex prezentace.tex

Program vypisuje jistá hlášení, kterých si nemusíme všímat. Jestliže program po skončení opět zobrazí standardní příkazový řádek, překlad proběhl v pořádku. Pro jistotu zkontrolujeme, že poslední dva řádky zobrazují zhruba tyto hodnoty:

Output written on prezentace.pdf (11 pages, 98822 bytes).
Transcript written on prezentace.log.

Jestliže jsme však udělali při psaní dokumentu nějakou chybu, LaTeX se při překladu zastaví a o chybě nás informuje. Tuto chybu bychom si měli přečíst, abychom zjistili, co je potřeba změnit. Po přečtení stačí stisknout Enter a program pokračuje dále až na další chybu. Stiskem klávesy q přepneme překlad to tichého módu, ve kterém už LaTeX chyby nehlásí a normálně dokončí překlad. O průběhu překladu se pak můžeme dozvědět více ze souboru .log.

Nezapomeňte, že pokud chcete správně vytvořený obsah, musíte překlad provést alespoň dvakrát.

Překlad pomocí programu Texstudio

V programu Texstudio je překlad příjemnější. Napřed se přesvědčíme, že máme nastavený správný překladač. Na horní liště klikneme na Options - Configure TeXstudio - Build a jako Default Compiler vybereme PdfLaTeX. Poté, co toto nastavení provedeme, stačí pak překlad spustit stiskem klávesy F5. Texstudio zároveň zobrazí náhled přeloženého dokumentu a hned si můžete výsledek prohlédnout a případně zdrojový kód upravit.

Závěr

V předcházejících bodech jsme si ukázali, jak poměrně rychle vytvořit kvalitní prezentaci, aniž bychom se museli příliš zabývat jejím vzhledem. Nabízené řešení je sice jedno z nejminimalističtějších řešení, ale i přes omezenou funkcionalitu je výsledek přesto velmi zdařilý a leckdy předčí i prezentace vytvořené v populárnějších prostředích.

Doporučuji, abyste se naučili vytvořit základní kostru dokumentu a potom si z nabídky snímků vybrali ty, které se vám budou do prezentace hodit. Jestliže se vám práce s Beamerem zalíbí, budete mít možnost si na internetu najít spousta dalších řešení, jenž jsou již daleko nad rámec tohoto článku.

Takže Beameru a LaTeXu zdar!