Hyperref, 목차 및 하위 섹션

Hyperref, 목차 및 하위 섹션

라텍스에서 해결할 수 없는 문제가 발생했습니다. hyperref 패키지는 목차에서 클릭 가능한 링크를 생성하지만 하위 섹션을 실제 하위 섹션에 연결하지 않고 해당 하위 섹션에 연결합니다. 하위 섹션 자체 또는 하위 섹션이 있는 페이지에 연결되도록 이 동작을 변경할 수 있습니까?

조금 더 살펴본 후, 이 문제를 표시하려면 섹션 번호 매기기를 비활성화하고 titlesec 패키지를 사용해야 하는 것 같습니다. 다음은 이 문제의 샘플입니다.

\documentclass{report}
\usepackage[linktoc=all]{hyperref}
\setcounter{secnumdepth}{0}
\usepackage{titlesec}
\hypersetup{
    colorlinks,
    citecolor=black,
    filecolor=black,
    linkcolor=black,
    urlcolor=black
}

\begin{document}
\tableofcontents
\chapter{test}

Test text
\newpage
\section{A section}

Lorem Ipsum
\newpage
\subsection{This link is wrong}

\end{document}

답변1

0으로 설정하기 때문에 secnumdepth하이퍼링크에 대한 앵커가 생성되지 않으며 이로 인해 언급된 원하지 않는 효과가 발생합니다. 다음 코드는 예상대로 작동합니다.

\documentclass{report}
\usepackage[linktoc=all]{hyperref}
\usepackage{titlesec}
\hypersetup{
    colorlinks,
    citecolor=black,
    filecolor=black,
    linkcolor=black,
    urlcolor=black
}

\begin{document}
\tableofcontents
\chapter{test}

Test text
\newpage
\section{A section}

Lorem Ipsum
\newpage
\subsection{This link is correct}

\end{document}

모든 섹션과 하위 섹션의 번호를 지정하지 않지만 ToC에 포함하고 올바른 하이퍼링크를 생성하려는 경우 한 가지 옵션은 다음 \phantomsection명령을 사용하여 앵커를 생성하는 것입니다.

\documentclass{report}
\usepackage[linktoc=all]{hyperref}
\setcounter{secnumdepth}{0}
\usepackage{titlesec}
\hypersetup{
    colorlinks,
    citecolor=black,
    filecolor=black,
    linkcolor=black,
    urlcolor=black
}

\begin{document}
\tableofcontents
\chapter{test}

Test text
\newpage
\phantomsection
\section{A section}

Lorem Ipsum
\newpage
\phantomsection
\subsection{This link is correct}

\end{document}

titlesec또 다른 옵션은 및 패키지를 사용하여 titletoc문서 본문과 ToC 모두에서 번호 매기기를 제거하는 것입니다.

\documentclass{report}
\usepackage[linktoc=all]{hyperref}
\usepackage{titlesec}
\usepackage{titletoc}

\titleformat{\section}
  {\normalfont\Large\bfseries}{}{1em}{}
\titleformat{\subsection}
  {\normalfont\large\bfseries}{}{1em}{}
\titlecontents{section}
  [1.5em] {}{}{}
  {\titlerule*[1em]{.}\contentspage}
\titlecontents{subsection}
  [3.8em] {}{}{}
  {\titlerule*[1em]{.}\contentspage}

\hypersetup{
    colorlinks,
    citecolor=black,
    filecolor=black,
    linkcolor=black,
    urlcolor=black
}

\begin{document}
\tableofcontents
\chapter{test}

Test text
\newpage
\section{A section}

Lorem Ipsum
\newpage
\subsection{This link is correct}

\end{document}

\section*또 다른 옵션은 섹션 단위(즉, , \subsection*) 의 별표 버전을 사용 하고 \addcontentsline항목을 ToC에 수동으로 추가하는 것입니다.

\documentclass{report}
\usepackage[linktoc=all]{hyperref}

\hypersetup{
    colorlinks,
    citecolor=black,
    filecolor=black,
    linkcolor=black,
    urlcolor=black
}

\begin{document}
\tableofcontents
\chapter{test}

Test text
\newpage
\section*{A section}
\addcontentsline{toc}{section}{A section}

Lorem Ipsum
\newpage
\subsection*{This link is correct}
\addcontentsline{toc}{subsection}{This link is correct}

\end{document}

관련 정보