Domů » Informatika » Programovací jazyk » Základy jazyka LaTeX

Základy jazyka LaTeX

Pokud chcete vytvořit profesionálně vypadající technický článek, knihu anebo rovnou celá skripta, měli byste zapomenout na legrácky typu Microsoft Word a naučit se pracovat s pořádným sazebním systémem – třeba s LaTeXem. Předem upozorňuji, že se nejedná o gumu :). Název se správně vyslovuje jako [latech], jelikož znak „X“ je ve skutečnosti řecké „chí“. Toto písmeno symbolizuje umění nebo dovednost. Co tedy LaTeX umí a dovede?

LaTeX je komplexní systém pro sazbu dokumentů. Stará se tedy o zalamování textu do odstavců, vkládání obrázků, seznamů, nadpisů, matematických výrazů, rozdělování dokumentu na jednotlivé stránky, ligatury, „vdovy“ a „sirotky“, odsazení… zkrátka o to, co spousta lidí správně neumí. Málokdo totiž zná všechna pravidla dobré sazby a podle toho také většina dokumentů vypadá.

Technicky se jedná se o soubor maker (o nadstavbu) publikačního systému TeX, který v roce 1977 začal tvořit Donald Knuth (jelikož prý nebyl spokojen se sazbou svých matematických článků). Primárně byl TeX určen právě pro sazbu matematických odborných prací, ale dnes už se dá TeX a jeho nadstavby používat i pro tvorbu krásných barevných prezentací a dalších zajímavých dokumentů.

Rovnou zapomeňte na to, že je LaTeX něco jako Microsoft Word. Není, a to ani zdaleka. Jeho filozofie je jiná. Nejedná se o editor, kde ihned vidíte co bude výsledkem (WYSIWYG – what you see is what you get), ale o systém, který se snaží porozumět struktuře a sémantice vašeho textu a vytvořit pro něj vhodnou grafickou podobu (WYWIWYG – what you want is what you get).

  • Uživatelé Linuxu najdou LaTeX v balíčku texlive.
  • Uživatelé Windows si mohou stáhnout MiKTex.

Jak psát v LaTeXu?

Psaní dokumentů v LaTeXu je velmi podobné psaní HTML stránek. Máte zdrojové soubory (obvykle s příponou .tex), ve kterých se nachází vlastní obsah dokumentu a dodatečné formátovací značky. Tyto zdrojové soubory si nemůžete rovnou prohlédnout (k HTML také potřebujete internetový prohlížeč), nejprve z nich musíte kompilací vytvořit univerzálnější formát, který si budete moci vytisknout, odeslat e-mailem, apod.

Většina lidí chce z LaTeXu dostat soubor PDF, který vytvoříte příkazem „pdflatex soubor.tex“ v příkazové řádce (ano, i Windows mají příkazovou řádku…). Pokud zatoužíte po formátech DVI, PS, PNG a dalších, hledejte přesnější postupy na internetu.

Speciální znaky

Některé znaky mají v TeXu speciální význam. Označují se jako speciální znakypp. Je-li potřeba jejich speciální význam zrušit a vypsat je tak jak jsou, je před ně nutné vložit **zpětné lomítko, jak je uvedeno zde:

kód v jazyce LATEX - Zobrazit

  1. \# \$ \% \& \_ \{ \}

Příkazy

Příkazem se v jazyce TeX označuje posloupnost alfanumerických znaků, začínající zpětným lomítkem. Příkaz může mít povinné i nepovinné parametry. Ty nepovinné se uvádí v hranatých závorkách a lze je vynechat, povinné v závorkách složených a vynechat je nelze. Názvy příkazů jsou citlivé na velikost písmen (case-sensitive). Někdy se příkazy alternativně označují jako makra.

kód v jazyce LATEX - Zobrazit

  1. \prikaz[nepovinny_parametr]{povinny_parametr}

Prostředí

Prostředím se v jazyce TeX nazývá část dokumentu, ohraničená speciálními příkazy (začátek prostředí a konec prostředí). Prostředí se vytvoří následovně:

kód v jazyce LATEX - Zobrazit

  1. \begin{nazev_prostredi}
  2. ...
  3. obsah prostředí
  4. ...
  5. \end{nazev_prostredi}

Základní šablona

Nebudeme chodit okolo horké kaše a rovnou si ukážeme základní šablonu pro dokument v systému LaTeX:

kód v jazyce LATEX - Zobrazit

  1. % oznamujeme typ dokumentu, velikost písma, papíru...
  2.  
  3. \documentclass[11pt,a4paper,oneside]{report}
  4.  
  5. % oznamujeme, že budeme psát česky v UTF-8
  6.  
  7. \usepackage[czech]{babel}
  8. \usepackage[utf8]{inputenc}
  9.  
  10. % přidáme podporu pro vkládání grafiky
  11.  
  12. \usepackage{graphicx}
  13.  
  14. % nastavení mezer mezi odstavci
  15.  
  16. \parskip=6.5pt plus 4.5pt minus 4.5pt
  17.  
  18. % odsazení prvního řádku odstavce
  19.  
  20. \parindent=1.2em
  21.  
  22. % zde nastavíme název dokumentu, autora a datum
  23. % pokud datum neuvedete, bude použito aktuální (v době kompilace)
  24.  
  25. \title{Ukázková šablona v LaTeXu}
  26. \author{Vojtěch Hordějčuk}
  27. \date{Duben 2009}
  28.  
  29. \begin{document}
  30.  
  31. % ...
  32. % zde bude obsah dokumentu
  33. % ...
  34.  
  35. \end{document}

Struktura dokumentu

Dobrá struktura dokumentu umožňuje čtenářům lépe pochopit jeho obsah. Dobrý dokument by měl tedy mít stromovou strukturu, jak daná problematika zabíhá do větších a větších detailů. Dokument by měl být rozdělen do částí, části do kapitol, kapitoly do sekcí, sekce do podsekcí…

Je důležité si uvědomit, že zde nejde pouze o to, aby LaTeX udělal na daném místě nadpis velkým tučným písmem. Tato struktura bude použita mimo jiné i pro generování obsahu, sazbu a číslování obrázků a tabulek. Hiearchii značek pro tvorbu struktury dokumentu si ukážeme v dalším příkladu:

kód v jazyce LATEX - Zobrazit

  1. \part{Část}
  2. \chapter{Kapitola} % pouze dokumenty typu "book" a "report"
  3. \section{Sekce}
  4. \subsection{Podsekce}
  5. \subsubsection{Podpodsekce}
  6. \paragraph{Odstavec}
  7. \subparagraoh{Pododstavec}

Automatický obsah, seznam obrázků a tabulek

Výhoda LaTeXu je v tom, že vašemu dokumentu rozumí a po prvním „průchodu“ vaším dokumentem již ví, na jaké části ho máte rozdělen. Proto je schopen vytvořit automaticky obsah. K jeho vytvoření je však nutné zkompilovat dokument dvakrát (nejdříve si LaTeX vytvoří pomocné soubory a podruhé je načte a obsah vytvoří).

kód v jazyce LATEX - Zobrazit

  1. \maketitle % titulek
  2. \tableofcontents % obsah
  3. \listoftables % seznam tabulek
  4. \listoffigures % seznam obrázků

Formátování

Formátování textu (tučné písmo, kurzíva…) opět slouží hlavně čtenáři k lepšímu pochopení textu. Pomocí odlišného formátu lze zdůraznit důležitý pojem, jméno nebo název. Další funkcí, kterou se budeme zabývat, je změna velikosti písma. Věřím, že to se změnou velikostí nebudete příliš přehánět. Mějte na paměti, že po vás bude dokument pravděpodobně někdo číst…

kód v jazyce LATEX - Zobrazit

  1. % formátování
  2.  
  3. \textbf{tučné písmo}
  4. \emph{kurzíva}
  5. \uline{podtržené písmo}
  6. \textsc{malé kapitálky}
  7. \sout{přeškrtnuté písmo}
  8. \texttt{psací stroj}
  9.  
  10. {\bf tučné písmo}
  11. {\em kurzíva}
  12. {\sc malé kapitálky}
  13. {\tt psací stroj}
  14.  
  15. % velikost písma
  16.  
  17. \tiny{titěrné}
  18. \scriptsize{malinkaté}
  19. \footnotesize{malinké}
  20. \small{malé}
  21. \normalsize{normální}
  22. \large{větší}
  23. \Large{velké}
  24. \LARGE{velikánské}
  25. \huge{obrovské}
  26. \Huge{obrovitánské}

Ruční zalomení řádku, nová stránka

Někdy je nutné ručně zalomit řádek jinak, než novým odstavcem – například v adrese. Ruční zalomení řádku se provede příkazem \\ (dvěma lomítky).

Ačkoliv by se rozdělení dokumentu na stránky mělo nechat na LaTeXu, můžete samozřejmě vynutit zalomení stránky ručně. K tomuto účelu slouží příkazy \newpage (na tomto místě chci ukončit stránku), \clearpage (obsah za tímto příkazem chci mít na začátku čisté stránky) a \cleardoublepage (obsah za tímto příkazem chci mít na liché stránce čisté dvojstránky).

Číslované a nečíslované seznamy

Jak v LaTeXu vytvořit číslované a nečíslované seznamy? Použijte tzv. prostředí (příkaz pro zahájení bloku, obsah bloku a příkaz pro ukončení bloku) \enumerate (číslovaný seznam) nebo \itemize (nečíslovaný seznam). Každá položka začíná příkazem \item. Seznamy lze do sebe i vnořovat. Lépe to pochopíte z příkladu:

kód v jazyce LATEX - Zobrazit

  1. % číslovaný seznam
  2.  
  3. \begin{enumerate}
  4. \item{Pozdrav}
  5. \item{Rozhovor}
  6. \item{Rozloučení}
  7. \end{enumerate}
  8.  
  9. % nečíslovaný seznam
  10.  
  11. \begin{itemize}
  12. \item{Dobrý den!}
  13. \item{Ahoj!}
  14. \item{Zdááár!}
  15. \end{itemize}
  16.  
  17. % vnořený seznam
  18.  
  19. \begin{itemize}
  20. \item{Barvy}
  21. \begin{itemize}
  22. \item{Oranžová}
  23. \item{Zelená}
  24. \item{Bílá}
  25. \end{itemize}
  26. \item{Tvary}
  27. \begin{itemize}
  28. \item{Obdélník}
  29. \item{Lichoběžník}
  30. \item{Kruh}
  31. \end{itemize}
  32. \end{itemize}

Obrázky a reference v textu

Před vkládáním obrázků je nutné do souboru importovat balíček graphicx pomocí příkazu \usepackage.

kód v jazyce LATEX - Zobrazit

  1. \usepackage{graphicx}

Základní a holý kód pro vložení jednoho obrázku vypadá takto:

kód v jazyce LATEX - Zobrazit

  1. \includegraphics{obrazek.png}

Obvykle však potřebujete obrázky systematicky číslovat a mít u nich nějaký popis. V textu by mělo být možné se na obrázek odkázat nějakým jednoduchým způsobem. V tomto směru vychází LaTeX autorům maximálně vstříc prostředím \figure. Ukážeme si o něco delší kód, který demonstruje tuto užitečnou funkcionalitu:

kód v jazyce LATEX - Zobrazit

  1. % obrázek umístíme na střed
  2.  
  3. \begin{center}
  4.  
  5. % deklarujeme obrázek s popisem
  6. % parametr v hranatých závorkách určuje preferované umístění
  7. % (lze jich vypsat i více, LaTeX si jednu vybere)
  8. % h - právě zde
  9. % t - nahoře na stránce
  10. % b - dole na stránce
  11. % p - na samostatné stránce
  12.  
  13. \begin{figure}[hp]
  14.  
  15. % nyní vložíme vlastní obrázek
  16. % můžeme definovat rozměry (width,height,scale)
  17.  
  18. \includegraphics[width=13cm]{labute.png}
  19.  
  20. % popis obrázku
  21.  
  22. \caption{Fotografie labutí}
  23.  
  24. % název obrázku (používá se pro referenci)
  25. % (prefix není povinný, používá se pro přehlednost)
  26. % fig: - obrázek
  27. % tab: - tabulka
  28. % chap: - kapitola
  29. % eq: - rovnice
  30.  
  31. % název musí být pod popisem, aby odkazy
  32. % směřovaly na obrázek a ne na kapitolu
  33.  
  34. \label{fig:labute}
  35.  
  36. \end{figure}
  37. \end{center}

V textu se dá na obrázek odkazovat pomocí příkazu \ref, který na dané místo vloží číslo obrázku s uvedeným názvem (labelem) nebo příkazem \pageref, který LaTeX nahradí číslem stránky, na kterém je daný obrázek umístěn:

kód v jazyce LATEX - Zobrazit

  1. % \ref - vloží číslo obrázku
  2. % \pageref - vloží číslo stránky, na které obrázek je
  3.  
  4. Včera jsem vyfotil krásné labutě.
  5. Podívejte se na obrázek \ref{fig:labute},
  6. který najdete na stránce \pageref{fig:labute}

Někdy vás možná zarazí, že se obrázky nezobrazí tam, kde byste je čekali. LaTeX používá k rozmisťování obrázků poněkud jinou filozofii – snaží se je rozmístit tak, aby zbytečně nenarušovaly tok textu. Je to také pozůstatek ze starých dob, kdy byla obrázková příloha k technickým knihám vytvářena zvlášť, např. jako ilustrace.

Poznámky pod čarou a na okraji

Poznámky pod čarou se někdy mohou hodit. Místo poznámky se do textu vloží malé číslo nebo písmeno a na spodním okraji stránky poté čtenář najde poznámku rozepsanou.

kód v jazyce LATEX - Zobrazit

  1. Husy jsou lepší hlídači než psi \footnote{Při neobvyklém hluku začnou kejhat}.

Poznámky na okraji se zobrazí na levém či pravém okraji stránky.

kód v jazyce LATEX - Zobrazit

  1. Chovají se hlavně kvůli produkci kuřecího masa \marginpar{brojlerová kuřata}.

Bohužel, v tabulkách, seznamech a dalších prostředích je to s poznámkami trochu složitější. Celé prostředí je nutné uzavřít do prostředí \minipage, přičemž poznámky se poté zobrazí na spodním okraji tohoto prostoru (tedy ne na spodním okraji stránky).

kód v jazyce LATEX - Zobrazit

  1. \begin{minipage}
  2. \begin{itemize}
  3. \item{první položka \footnote{poznámka k první položce}}
  4. \item{druhá položka \footnote{poznámka k druhé položce}}
  5. \end{itemize}
  6. \end{minipage}

Základy sazby matematických výrazů

Sazba matematiky byla prvotní motivací ke vzniku celého TeXu, takže není překvapením, že umožňuje zápis snad všech možných výrazů, integrálů, rovnic, vzorců, teorémů, matic, atd.

Vložení výrazu do textu

Chcete-li do dokumentu vložit nějakou tu formulku, stačí ji od okolního textu v odstavci oddělit symbolem dolaru ($). Také je možné udělat nový odstavec, který bude dolarem začínat i končit a bude se celý skládat jen z matematických výrazů.

kód v jazyce LATEX - Zobrazit

  1. Diskriminant se vypočítá jako $ D = b^{2} - 4 \cdot a \cdot c $.

Popis všech možných symbolů a funkcí je by byl obrovský, takže to nechám na Google a vaší kreativitě. Určitě se nemusíte nazpaměť učit vše, najdete si vždy jen to, co budete v dané chvíli potřebovat.

Několik příkladů
Algebra, vnořený zlomek

kód v jazyce LATEX - Zobrazit

  1. x = a_0 + \frac{1}{a_1 + \frac{1}{a_2 + \frac{1}{a_3 + a_4}}}
€€ x = a_0 + \frac{1}{a_1 + \frac{1}{a_2 + \frac{1}{a_3 + a_4}}} €€
Goniometrické funkce, logaritmy, suma

kód v jazyce LATEX - Zobrazit

  1. \lbrace \sin{x}^2 + \cos{x}^2 - (\sum_{k=0}^{x} \log_{2} kx) \rbrace, x \in N
€€ \lbrace \sin{x}^2 + \cos{x}^2 - (\sum_{k=0}^{x} \log_{2} kx) \rbrace, x \in N €€
Matice 3×3, vektory

kód v jazyce LATEX - Zobrazit

  1. \begin{pmatrix}
  2. 0 & \beta & 2 \alpha \\
  3. 3 & \overrightarrow{c} & 0 \\
  4. 3 \rho & 4 & \overrightarrow{a}
  5. \end{pmatrix}
€€ \begin{pmatrix} 0 & \beta & 2 \alpha \\ 3 & \overrightarrow{c} & 0 \\ 3 \rho & 4 & \overrightarrow{a} \end{pmatrix} €€
Víceřádkový výraz

kód v jazyce LATEX - Zobrazit

  1. \begin{align*}
  2. x &= a+b+3ab \\
  3. y &= \sqrt[3]{a+b + \frac{1}{5a+b}} \\
  4. z &= -3a+b
  5. \end{align*}
€€ \begin{align*} x &= a+b+3ab \\ y &= \sqrt[3]{a+b + \frac{1}{5a+b}} \\ z &= -3a+b \end{align*} €€
Integrál

kód v jazyce LATEX - Zobrazit

  1. S_0 = \int_{-\infty}^{0} \sin{x} \; dx
€€ S_0 = \int_{-\infty}^{0} \sin{x} \; dx €€

Tipy a triky

České uvozovky

Typografická pravidla pro psaní uvozovek se liší jazyk od jazyka a je nutné je znát, protože LaTeX sám od sebe uživateli žádné uvozovky nenutí. Čeština obsahuje jednoduché a dvojité uvozovky, které lze je nalézt ve znakové sadě Unicode pod kódy 201E, 201C, 201A a 2018.

kód v jazyce LATEX - Zobrazit

  1. takzvaný „ničitel světů“
  2. malíř prodal svou ‚mazanici‘

Reference