Základní tvorbu dokumentu, rozvržení stránky a formátování textu v LaTeXu jsme probrali v příspěvku Formátování a struktura textu v LaTeXu, tak si ho přečtěte, pokud jste to ještě neudělali. V tomto článku se zaměříme na vytvoření obsahu (TOC, Table of Contents) v LaTeXu. Probereme, jak vygenerovat běžný obsah, změnit jeho název, upravit hloubku zobrazených nadpisů a použít balíček minitoc pro lokální obsahy v sekcích nebo částech. Dále zmíníme balíček hyperref, který přidává hypertextové odkazy do obsahu, aby bylo možné kliknutím přejít na odpovídající sekce.
Vytvoření běžného obsahu (TOC)
V LaTeXu se obsah generuje příkazem \tableofcontents
, který automaticky vytvoří seznam nadpisů na základě příkazů jako \part, \chapter, \section, \subsection
atd. Tento příkaz umístěte do těla dokumentu, obvykle hned po \begin{document}
nebo po úvodní stránce.
Příklad: \tableofcontents
vytvoří obsah zahrnující všechny nadpisy v dokumentu podle jejich hierarchie. Aby se obsah správně vygeneroval, musíte dokument zkompilovat dvakrát, protože LaTeX ukládá informace o nadpisech do pomocného souboru (.toc) při první kompilaci a teprve při druhé je použije.
Změna názvu obsahu
Výchozí název obsahu závisí na jazyce nastaveném v balíčku babel
. Například s \usepackage[czech]{babel}
se obsah jmenuje „Obsah“. Název můžete změnit příkazem \renewcommand{\contentsname}{Nový název}
.
Příklad: \renewcommand{\contentsname}{Seznam kapitol}
změní název obsahu na „Seznam kapitol“. Tento příkaz umístěte do preambule nebo těsně před \tableofcontents
.
Úprava hloubky obsahu
Hloubku obsahu (počet úrovní nadpisů zobrazených v TOC) ovládá příkaz \setcounter{tocdepth}{číslo}
. Každá úroveň nadpisu má přiřazené číslo:
\part
: -1\chapter
: 0\section
: 1\subsection
: 2\subsubsection
: 3\paragraph
: 4\subparagraph
: 5
Výchozí hodnota tocdepth
závisí na třídě dokumentu (např. v article je 3, takže zahrnuje až \subsubsection
). Nastavením nižší hodnoty omezíte hloubku.
Příklad: \setcounter{tocdepth}{1}
zahrne do obsahu pouze \part
a \section
, zatímco \setcounter{tocdepth}{2}
přidá i \subsection
.
Lokální obsahy s balíčkem minitoc
Balíček minitoc umožňuje vytvořit lokální obsahy pro jednotlivé části (\part
) nebo kapitoly (\chapter
), které zahrnují pouze nadpisy nižší úrovně v dané části. Přidejte \usepackage{minitoc}
do preambule a inicializujte balíček příkazem \dominitoc
. Poté vložte \minitoc
tam, kde chcete lokální obsah, obvykle hned po \part
nebo \chapter
.
Možnosti nastavení:
- Hloubka lokálního obsahu: Nastavte příkazem
\setcounter{minitocdepth}{číslo}
, např.\setcounter{minitocdepth}{2}
zahrne\section
a\subsection
. - Název lokálního obsahu: Změňte příkazem
\renewcommand{\minitocname}{Nový název}
, např.\renewcommand{\minitocname}{Kapitoly v této části}
.
Příklad: \dominitoc
v preambuli a \minitoc
po \chapter{Kapitola 1}
vytvoří obsah pouze pro \section
a nižší úrovně v této kapitole. Stejně jako u běžného TOC je potřeba kompilovat dvakrát.
Hypertextové odkazy s balíčkem hyperref
Balíček hyperref
přidává interaktivitu do obsahu tím, že z nadpisů v TOC udělá hypertextové odkazy, které odkazují na odpovídající sekce v dokumentu. Přidejte \usepackage{hyperref}
do preambule, ideálně jako poslední balíček, aby se vyhnul konfliktům s jinými balíčky, např. minitoc
.
Možnosti nastavení:
- Barva odkazů:
\hypersetup{colorlinks=true, linkcolor=blue}
nastaví odkazy v obsahu na modrou barvu. - PDF metadata:
\hypersetup{pdftitle={Název dokumentu}, pdfauthor={Autor}}
přidá informace do PDF. - Kompatibilita s
minitoc
: Balíčekhyperref
je plně kompatibilní sminitoc
, takže lokální obsahy budou také obsahovat klikatelné odkazy.
Příklad: \usepackage{hyperref} \hypersetup{colorlinks=true, linkcolor=red} udělá odkazy v TOC červené a klikatelné.
Ukázkový LaTeX kód
\documentclass[a4paper,11pt]{report}
\usepackage[czech]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{minitoc}
\usepackage{hyperref}
\hypersetup{colorlinks=true, linkcolor=blue}
\renewcommand{\contentsname}{Seznam kapitol}
\setcounter{tocdepth}{2}
\dominitoc
\setcounter{minitocdepth}{1}
\begin{document}
\tableofcontents
\part{První část}
\minitoc
\chapter{Kapitola 1}
\section{Sekce 1.1}
Text v první sekci.
\subsection{Podsekce 1.1.1}
Text v podsekci.
\chapter{Kapitola 2}
\minitoc
\section{Sekce 2.1}
Text v druhé sekci.
\end{document}
Tipy a další kroky
- Kompilujte dokument dvakrát, aby se obsah správně vygeneroval (první kompilace vygeneruje TOC soubor, při druhé kompilaci to vytvoří obsah z tohoto souboru).
- Pokud
hyperref
způsobuje konflikty, zkontrolujte pořadí balíčků v preambuli. - Pro pokročilé formátování TOC použijte balíček
tocloft
. - Přečtěte si dokumentaci na overleaf nebo Wikiknihy (LaTeX/Table of Contents) pro další možnosti.
S těmito nástroji vytvoříte přehledný a interaktivní obsah pro své dokumenty. Hodně štěstí s LaTeXem!
Napsat komentář