Latex – spis treści z linkami do zawartości

Tak jak w tytule pokażę, jak utworzyć spis treści/menu składające się z głównych sekcji, podsekcji i podpodsekcji zawierające linki do zawartości tych (pod)sekcji.
Poniżej listing kodu latex-a (z komentarzami):

%typ dokumentu, rozmiar czcionki
\documentclass[11pt,a4paper]{article}

%język i kodowanie
\usepackage{polski}
\usepackage[utf8]{inputenc}

%stworzenie linków w menu (niewidocznych)
\usepackage[hidelinks]{hyperref}

%autor, dzisiejsza data i tytuł dokumentu
\author{Training Universe}
\date{\today}
\title{Spis treści z linkami do zawartości}

%początek dokumentu
\begin{document}
%wyświetlenie tytułu
\maketitle

%przejście do nowej strony
\newpage
%spis zawartości
\tableofcontents
\newpage


%sekcja 1 i jej etykieta
\section{Sekcja 1}
\label{sec:Sekcja 1}

%odpowiednio podsekcja sekcji 1
\subsection{Sekcja 1.1}
\label{subsec:Sekcja 1.1}

%podpodsekcja sekcji 1
\subsubsection{Sekcja 1.1.1}
\label{subsubsec:Sekcja 1.1.1}

%przykładowy tekst
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec commodo mauris vitae ligula mollis, vitae malesuada sem ultrices. Vivamus tristique dapibus lorem sed ultrices. Phasellus eu elit luctus, vulputate leo ut, tincidunt mauris. Sed sed tellus auctor, aliquam sem id, pulvinar lectus. Fusce fermentum nisi eu elit sagittis aliquam. Praesent et justo in mi vulputate pharetra. Nunc id massa a mauris lobortis efficitur. Quisque commodo, lacus a consectetur feugiat, orci sapien luctus turpis, ut finibus dui quam ut magna.

Maecenas efficitur, lacus eget luctus ultrices, lectus ipsum gravida mauris, vitae volutpat justo urna id urna. Sed nec ex feugiat, consequat libero in, commodo nunc. Curabitur dictum, eros sit amet scelerisque luctus, neque enim dignissim tortor, a scelerisque erat nisi sed mauris. Vestibulum efficitur aliquam mauris, sed malesuada risus aliquet sit amet. Morbi at mauris in sapien hendrerit aliquet a non ante. Mauris at fringilla dui. Etiam sollicitudin ipsum ut nisl congue, eget suscipit mi sagittis. Sed aliquet risus non justo vestibulum, eu varius lacus dapibus. Integer et pellentesque sapien.

Vestibulum id faucibus eros, vitae facilisis est. Ut ut ligula sit amet odio aliquam viverra sed vitae ex. Maecenas lobortis interdum elit, ac condimentum ipsum faucibus in. In hac habitasse platea dictumst. Nunc non enim sed tellus tincidunt suscipit vitae et nulla. Cras tincidunt erat id mi tincidunt, eu euismod orci venenatis. Etiam sit amet vulputate nunc. Nulla id lectus vitae justo finibus volutpat. Aenean consequat sapien a arcu interdum luctus.

Sed malesuada ligula ut massa elementum, sit amet consectetur mi vestibulum. Mauris fermentum laoreet dui sed iaculis. Morbi luctus libero ac sem varius ultrices. Donec interdum auctor nulla, ac bibendum enim feugiat nec. Sed id aliquam ex, et commodo lectus. Curabitur elementum, enim vel congue auctor, purus massa commodo erat, nec scelerisque risus dui vitae sapien. Nulla facilisi. Sed id felis tempor, venenatis justo nec, viverra mi. Nunc sollicitudin, lacus in pulvinar finibus, nunc ligula viverra nisl, et dictum orci felis eu nunc. Quisque sed massa sit amet purus venenatis dignissim.

Praesent ac aliquam leo. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Nam eget iaculis enim. Duis varius lectus sed eleifend fringilla. Nullam viverra est sed tristique hendrerit. Suspendisse pellentesque, enim id mattis aliquam, elit orci elementum nulla, sed interdum elit neque id felis. Integer consectetur, ex a porttitor egestas, tortor sem pharetra neque, nec efficitur turpis urna a tellus. Donec pulvinar, erat at rhoncus dictum, sem purus volutpat velit, id fermentum felis tortor eu ligula. Sed in ante nibh. Fusce eleifend dapibus lectus. Sed non enim id enim ultricies elementum. Sed convallis bibendum erat vitae vulputate.

\newpage


\subsubsection{Sekcja 1.1.2}
\label{subsubsec:Sekcja 1.1.2}

\newpage

\subsubsection{Sekcja 1.1.3}
\label{subsubsec:Sekcja 1.1.3}

\newpage

\section{Sekcja 2}
\label{sec:Sekcja 2}

\subsection{Sekcja 2.1}
\label{subsec:Sekcja 2.1}

\newpage

\subsection{Sekcja 2.2}
\label{subsec:Sekcja 2.2}

%koniec dokumentu
\end{document}

Ogółem wszystko sprowadza się do użycia paczki do linków, wyświetlenia tabeli zawartości i utworzenia odpowiednich sekcji dokumentu.

Poniżej link do wygenerowanego dokumentu w postaci pdf:
https://traininguniverse.net/wp-content/uploads/2023/07/menu-content.pdf