
我正在嘗試使用以下命令創建從我的目錄到相應部分的鏈接超引用。
但是,我注意到,如果第一個條目是未編號的部分 ( \section*
),則該連結只會將我帶到目錄。
這是一個小例子來說明我想說的話。請注意,第二個未編號部分有效,而第一個部分則無效。此外,使用編號部分作為第一個條目可以解決該問題。
\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}
我怎樣才能擁有第一個鏈接,使其定位到正確的頁面?
答案1
我發現使用\addcontentsline
just after\section*
可以解決問題。
所以更正後的程式碼是
\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}
正如@daleif 所指出的,如果您使用 hyperref,則應該\phantomsection
在之前添加\addcontentsline
。
所以就像
\phantomsection
\addcontentsline{toc}{section}{Name}
\section{Name}