Нажмите на главу, чтобы перейти к содержанию

Нажмите на главу, чтобы перейти к содержанию

Ссылаясь на этот вопрос: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}}}%, т. е. явное написание #3again в 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}

Связанный контент