
Estou tentando criar links do meu índice para as seções correspondentes usandohiperref.
No entanto, notei que se a primeira entrada for uma seção não numerada ( \section*
), o link apenas me leva ao índice.
Aqui está um pequeno exemplo para ilustrar o que estou tentando dizer. Observe que a segunda seção não numerada funciona, enquanto a primeira não. Além disso, usar uma seção numerada como primeira entrada resolveria o problema.
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\usepackage{hyperref}
\hypersetup{
colorlinks=true,
linktoc=all,
linkcolor=black,
}
\begin{document}
\tableofcontents
\newpage
\addcontentsline{toc}{section}{Unnumbered section 1}
\section*{Unnumbered section 1}
\addcontentsline{toc}{section}{Unnumbered section 2}
\section*{Unnumbered section 2}
\end{document}
Como posso ter o primeiro link para que ele direcione a página correta?
Responder1
Descobri que usar \addcontentsline
logo depois \section*
resolve o problema.
Então o código corrigido seria
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\usepackage{hyperref}
\hypersetup{
colorlinks=true,
linktoc=all,
linkcolor=black,
}
\begin{document}
\tableofcontents
\newpage
\section*{Unnumbered section 1}
\addcontentsline{toc}{section}{Unnumbered section 1}
\section*{Unnumbered section 2}
\addcontentsline{toc}{section}{Unnumbered section 2}
\end{document}
Conforme apontado por @daleif, você deve adicionar \phantomsection
antes \addcontentsline
se usar hyperref.
Então, assim como
\phantomsection
\addcontentsline{toc}{section}{Name}
\section{Name}