
Ссылаясь на этот вопрос:Hyperref ссылается на главу и страницу в текстеи его возможный дубликатКликабельная ссылка на оглавление
По сути, это снова второй вопрос, но проявите терпение.
Я использовал ответ на первый вопрос, но слегка отредактировал. Теперь у меня каждое название главы ссылается на оглавление (только название, а не часть «Номер главы» над ним. Не большая проблема, если вы знаете, как ее решить, дайте знать :) )
Проблема в том, что это также изменяет саму строку TOC для ссылки на TOC. Так что если я сейчас нажму на главу в TOC, этотакжессылки на оглавление.
МВЭ:
\documentclass[11pt]{report}
\usepackage{hyperref}
\usepackage{lipsum}
\usepackage{xparse}
\AtBeginDocument{
\let\oldchapter\chapter
\RenewDocumentCommand{\chapter}{s o m}{%
\clearpage
\IfBooleanTF{#1}
{\oldchapter*{\hyperref[toc]{#3}}}% \chapter*[..]{...}
{\IfValueTF{#2}
{\oldchapter[#2]{\hyperref[toc]{#3}}}% \chapter[..]{...}
{\oldchapter{\hyperref[toc]{#3}}}% \chapter{...}
\label{chapter-\thechapter}% \label this chapter
}%
}
}
\begin{document}
\chapter*{Preface}
\lipsum[1-1]
\tableofcontents\label{toc}
\chapter{Introduction}
\lipsum[2-2]
\end{document}
Я взял решение с поддержкой ненумерованных глав и добавил \hyperref[toc]{}
к ним.
решение1
Самое простое решение — использовать \oldchapter[#3]{\hyperref[toc]{#3}}}%
, т. е. явное написание #3
again в toc и установка \hyperref
команды в названии главы. Это сохранит правильные гиперякоря и предотвратит появление некрасивых [toc]
префиксов в панели закладок!
\documentclass[11pt]{report}
\usepackage{hyperref}
\usepackage{lipsum}
\usepackage{xparse}
\AtBeginDocument{
\let\oldchapter\chapter
\RenewDocumentCommand{\chapter}{s o m}{%
\clearpage
\IfBooleanTF{#1}
{\oldchapter*{\hyperref[toc]{#3}}}% \chapter*[..]{...}
{\IfValueTF{#2}
{\oldchapter[#2]{\hyperref[toc]{#3}}}% \chapter[..]{...}
{\oldchapter[#3]{\hyperref[toc]{#3}}}% \chapter{...}
\label{chapter-\thechapter}% \label this chapter
}%
}
}
\begin{document}
\chapter*{Preface}
\lipsum[1-1]
\tableofcontents\label{toc}
\chapter{Introduction}
\lipsum[2-2]
\chapter{Results}
\lipsum[2-4]
\end{document}