목차로 이동하려면 장을 클릭하세요.

목차로 이동하려면 장을 클릭하세요.

이 질문을 참조하면:Hyperref는 텍스트의 장과 페이지를 참조합니다.그리고 가능한 중복목차로 돌아가는 클릭 가능한 링크

이것은 기본적으로 다시 두 번째 질문이지만 참아주세요.

첫 번째 질문의 답변을 사용했지만 약간 편집되었습니다. 이제 모든 챕터 이름이 목차에 다시 연결됩니다. (위의 '챕터 #' 부분이 아닌 이름만 있습니다. 큰 문제는 아닙니다. 해결 방법을 알고 계시다면 알아두세요 :))

문제는 이것이 TOC 라인 자체를 TOC에 연결하도록 변경한다는 것입니다. 이제 TOC에서 한 장을 클릭하면 해당 장은또한TOC에 대한 링크입니다.

MWE:

\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다시 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}

관련 정보