# PB029: Značkování textu v LaTeXu

Při přípravě textu dokumentu je vhodné použít značkovací jazyk, který vám umožní vyznačit logickou strukturu dokumentu nezávisle na požadovaném vzhledu. Díky tomu se autoři mohou zaměřit na obsah dokumentu a vzhled ponechat na grafikovi nebo na předpřipravené šabloně (o tom si více povíme v následujícím cvičení).

Při přípravě elektronických a tištěných dokumentů pomocí TeXu můžeme využít značkovací jazyk LaTeX. V tomto cvičení si jazyk představíme a ukážeme si, jak jeho pomocí můžeme dokument horizontálně členit na sekce a odstavce a jak můžeme vygenerovat úvodní části jako titulek, jméno autora a obsah.

Tip: Na tomto cvičení budete opět pracovat s TeXem. Pro připomenutí práce s TeXem vizte cvičení o seznámení s použítým softwarem.

Při práci z příkazové řádky studentského unixového serveru Aisa nezapomeňte nejprve načíst softwarový modul `texlive`: `module add texlive`

## Základní části LaTeXového dokumentu

Minimální LaTeXový dokument sestává z následujících částí:

1. Třída dokumentu (jako článek, dopis, nebo kniha) určuje základní dostupné značky a vzhled dokumentu.
2. Hlavička dokumentu, ve které:
   1. načítáme balíčky, které přidávají doplňující značky nebo upravují vzhled dokumentu, a
   2. zadáváme metadata dokumentu jako název, jméno autora a datum vydání.
3. Tělo dokumentu, do kterého zapisujeme text dokumentu.

Nyní si vytvoříme minimální LaTeXový dokument, který bude obsahovat pouze základní kostru dokumentu. Tento dokument bude používat vestavěnou třídu `article` pro přípravu článků a balíčky `babel` a `fontenc` pro českou lokalizaci:

     1 % Třída dokumentu
     2 \documentclass[a4paper]{article}
     3 % Hlavička dokumentu
     4 %% Balíčky
     5 \usepackage[czech]{babel}
     6 \usepackage[T1]{fontenc}
     7 % Tělo dokumentu
     8 \begin{document}
     9 Toto je minimální \LaTeX ový dokument.
    10 \end{document}

Více o české lokalizaci si povíme na cvičení o české sazbě.

Dokument si můžete na příkazovém řádku přeložit následujícím příkazem: `pdflatex sample-01.tex` Stejně tak si můžete dokument přeložit a prohlédnout na službě Overleaf.

## Metadata dokumentu

Metadata dokumentu (jako název, jméno autora a datum vydání) zadáváme v hlavičce dokumentu. Vysázíme je příkazem `\maketitle` v těle dokumentu:

     1 % Třída dokumentu
     2 \documentclass[a4paper]{article}
     3 % Hlavička dokumentu
     4 %% Balíčky
     5 \usepackage[czech]{babel}
     6 \usepackage[T1]{fontenc}
     7 %% Metadata
     8 \title{Značkování textu v \LaTeX u}
     9 \author{Vít Starý Novotný}
    10 \date{29. září 2023}
    11 % Tělo dokumentu
    12 \begin{document}
    13 \maketitle
    14 Toto je minimální \LaTeX ový dokument.
    15 \end{document}

Různé dokumentové třídy podporují různá metadata. Např. vestavěná třída `letter` pro psaní dopisů umožňuje zadávat jméno a adresu příjemce.

Dokument si můžete na příkazovém řádku přeložit následujícím příkazem: `pdflatex sample-02.tex` Stejně tak si můžete dokument přeložit a prohlédnout na službě Overleaf.

Třída `article` dále poskytuje prostředí `\begin{abstract} ... \end{abstract}`, do kterého můžeme zadat abstrakt článku:

     1 % Třída dokumentu
     2 \documentclass[a4paper]{article}
     3 % Hlavička dokumentu
     4 %% Balíčky
     5 \usepackage[czech]{babel}
     6 \usepackage[T1]{fontenc}
     7 %% Metadata
     8 \title{Značkování textu v \LaTeX u}
     9 \author{Vít Starý Novotný}
    10 \date{29. září 2023}
    11 % Tělo dokumentu
    12 \begin{document}
    13 \maketitle
    14
    15 \begin{abstract}
    16 V tomto článku si ukážeme, jak můžeme v \LaTeX u vyznačit strukturu dokumentu.
    17 Po přečtení zdrojového kódu článku bude čtenář schopný připravovat vlastní
    18 dokumenty v \LaTeX u.
    19 \end{abstract}
    20
    21 Toto je minimální \LaTeX ový dokument.
    22 \end{document}

Dokument si můžete na příkazovém řádku přeložit následujícím příkazem: `pdflatex sample-03.tex` Stejně tak si můžete dokument přeložit a prohlédnout na službě Overleaf.

## Členění textu na odstavce a sekce

Odstavce textu oddělujeme jedním a více prázdnými řádky:

     1 % Třída dokumentu
     2 \documentclass[a4paper]{article}
     3 % Hlavička dokumentu
     4 %% Balíčky
     5 \usepackage[czech]{babel}
     6 \usepackage[T1]{fontenc}
     7 %% Metadata
     8 \title{Značkování textu v \LaTeX u}
     9 \author{Vít Starý Novotný}
    10 \date{29. září 2023}
    11 % Tělo dokumentu
    12 \begin{document}
    13 \maketitle
    14
    15 \begin{abstract}
    16 V tomto článku si ukážeme, jak můžeme v \LaTeX u vyznačit strukturu dokumentu.
    17 Po přečtení zdrojového kódu článku bude čtenář schopný připravovat vlastní
    18 dokumenty v \LaTeX u.
    19 \end{abstract}
    20
    21 Toto je minimální \LaTeX ový dokument. Tento dokument sestává z několika odstavců.
    22
    23 Odstavec obsahuje jednu nebo více vět, které mají tvořit určitý logický celek.
    24 Programátoři často dělí programy do samostatných modulů, které řeší jednu úlohu
    25 a jsou minimálně závislé na ostatních modulech. Podobně můžeme přemýšlet o odstavcích,
    26 které by měly být samoobsažné a pochopitelné i bez odkazů na okolní odstavce.
    27
    28
    29 Toto je další odstavec, který je oddělený od předchozího odstavce dvěma prázdnými řádky.
    30
    31 \end{document}

Dokument si můžete na příkazovém řádku přeložit následujícím příkazem: `pdflatex sample-04.tex` Stejně tak si můžete dokument přeložit a prohlédnout na službě Overleaf.

Odstavce textu členíme do sekcí a podsekcí příkazy `\section` a `\subsection`. Automaticky vygenerovaný obsah dokumentu vysázíme příkazem `\tableofcontents`:

     1 % Třída dokumentu
     2 \documentclass[a4paper]{article}
     3 % Hlavička dokumentu
     4 %% Balíčky
     5 \usepackage[czech]{babel}
     6 \usepackage[T1]{fontenc}
     7 %% Metadata
     8 \title{Značkování textu v \LaTeX u}
     9 \author{Vít Starý Novotný}
    10 \date{29. září 2023}
    11 % Tělo dokumentu
    12 \begin{document}
    13 \maketitle
    14
    15 \begin{abstract}
    16 V tomto článku si ukážeme, jak můžeme v \LaTeX u vyznačit strukturu dokumentu.
    17 Po přečtení zdrojového kódu článku bude čtenář schopný připravovat vlastní
    18 dokumenty v \LaTeX u.
    19 \end{abstract}
    20
    21 Toto je minimální \LaTeX ový dokument. Tento dokument sestává z několika odstavců.
    22
    23 Odstavec obsahuje jednu nebo více vět, které mají tvořit určitý logický celek.
    24 Programátoři často dělí programy do samostatných modulů, které řeší jednu úlohu
    25 a jsou minimálně závislé na ostatních modulech. Podobně můžeme přemýšlet o odstavcích,
    26 které by měly být samoobsažné a pochopitelné i bez odkazů na okolní odstavce.
    27
    28
    29 Toto je další odstavec, který je oddělený od předchozího odstavce dvěma prázdnými řádky.
    30
    31 \tableofcontents
    32
    33 \section{Členění dokumentu}
    34
    35 Odstavce členíme do sekcí a podsekcí. Každá sekce by měla být uvozena alespoň jedním
    36 odstavcem textu, který čtenáře seznámí s jejím obsahem. Nadpis sekce, po kterém okamžitě
    37 následuje nadpis podsekce se považuje za chybu.
    38
    39 V této sekci si vytvoříme dvě podsekce pro ilustraci členění dokumentu.
    40
    41 \subsection{První podsekce}
    42
    43 Nadpisy (pod)sekcí udávají strukturu textu, ale nejsou přímou součástí textu.
    44 Porozumění textu by tedy nemělo záviset na nadpisech. Formulace ,,v této sekci se
    45 budeme zaobírat tématem z nadpisu sekce`` a podobné se považují za chybu.
    46
    47 Toto je první podsekce našeho dokumentu.
    48
    49 \subsection{Druhá podsekce}
    50
    51 Toto je druhá podsekce našeho dokumentu.
    52
    53 \end{document}

Různé dokumentové třídy podporují různé typy sekcí. Např. vestavěná třída `book` pro psaní knih umožňuje členit dokument na části a kapitoly.

Dokument si můžete na příkazovém řádku přeložit následujícími příkazy: `pdflatex sample-05.tex
pdflatex sample-05.tex`

Pozor: Všimněte si, že při vložení automaticky vygenerovaného obsahu příkazem `\tableofcontents` musíme dokument přeložit dvakrát: Při prvním překladu si LaTeX uloží informace o sekcích do pomocného souboru `sample-05.aux` a při druhém překladu se tyto informace použijí při generování obsahu dokumentu.

Jak se vyhnout ručnímu opakovanému překladu dokumentu si ukážeme na cvičení o automatizaci sazby dokumentu.

Stejně tak si můžete dokument přeložit a prohlédnout na službě Overleaf.

## Praktické úkoly k procvičení

- Stáhněte si dokument `formatovani-textu.tex` (dostupný také na službě Overleaf) s nerozčleněným textem. Přečtěte si text, zamyslete se nad jeho strukturou, doplňte do něj metadata a rozčleňte ho na věty, odstavce a sekce.

  Výsledný dokument vysázejte a porovnejte vůči zdrojovému článku na české Wikipedii. Je v pořádku, pokud jste text členili odlišně od zdrojového dokumentu; členění textu je kreativní činnost a stejný text lze členit mnoha různými způsoby.

- Při přípravě textu v LaTeXu se nemusíte omezovat na značky LaTeXu. Namísto toho můžete použít např. odlehčený značkovací jazyk Markdown, který pro vás může být snáze zapisovatelný a čitelný.

  Přidejte do hlavičky dokumentu `formatovani-textu.tex` z předchozího úkolu balíček `markdown` a přeznačte text dokumentu pomocí jazyka Markdown.

  Při překladu dokumentu z příkazového řádku doplňte volbu `-shell-escape`: `pdflatex -shell-escape formatovani-textu.tex` Při překladu na službě Overleaf nemusíte pro správný překlad dokumentu dělat žádné změny.

  Pro další značkovací jazyky, které můžete používat při přípravě dokumentu v (La)TeXu, vizte sekci 3 článku Vysokoúrovňové jazyky pro TeX.