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\sectiona\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íčekhyperrefje 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
hyperrefzpů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ář