使用 Hyperref 包的 PDF 超链接问题

使用 Hyperref 包的 PDF 超链接问题

LaTeX我目前在使用和软件包排版的 PDF 文档中遇到了超链接放置问题hyperref。我尝试了各种方法,但都无法获得所需的结果。

我的文档分为多个部分和章节,并附有附录和分析索引。我遇到的问题与生成的 PDF 中超链接的排列有关。

我所追求的结构如下:

书:

  • 第1部分
    • 第 1 部分第 1 章
    • 第 1 部分第 2 章
    • 第 1 部分第 3 章
  • 第2部分
    • 第 2 部分第 1 章
    • 第 2 部分第 2 章
    • 第 2 部分第 3 章
  • 附录1
  • 附录 2
  • 分析指标

但是,PDF 中的超链接分组不正确,排列如下:

书:

  • 第1部分
    • 第 1 部分第 1 章
    • 第 1 部分第 2 章
    • 第 1 部分第 3 章
  • 第2部分
    • 第 2 部分第 1 章
    • 第 2 部分第 2 章
    • 第 2 部分第 3 章
    • 附录1
    • 附录 2
    • 分析指标

\phantomsection我之前曾尝试使用\addcontentsline附录和分析索引,但问题仍然存在。

我的hyperref设置如下:

\usepackage{hyperref}
\hypersetup{bookmarksnumbered}

\hypersetup{hidelinks}

\hypersetup{pdfauthor={My Name}, pdftitle={My Title}}

如果您需要有关我的LaTeX代码或设置的更多信息,请告诉我。

编辑:按照我的建议做例子(很抱歉我现在才回复,因为我休假了一段时间)

\documentclass[a4paper,twoside,12pt,italian,notitlepage]{book}
\usepackage[UTF8]{inputenc}
\usepackage[italian]{babel}
\usepackage{lipsum}
\usepackage[T1]{fontenc}
\usepackage{txfonts}
\usepackage{booktabs}
\renewcommand{\thesection}{\thechapter.1.}
\usepackage{tabularx}
\usepackage{subfig}
\usepackage{appendix}
\usepackage{graphicx}
\graphicspath{{./files/}}
\usepackage{emptypage}
\usepackage{booktabs}
\usepackage{marvosym}
\usepackage{textcomp}
\usepackage{verbatim}
\usepackage{imakeidx} %indice analitico
\makeindex
\usepackage{enumitem}
\usepackage{colortbl}
\usepackage{siunitx}
\usepackage{xcolor}
\usepackage{caption}
\usepackage[maxdepth=6]{gitinfo2}
\captionsetup{tableposition=top,figureposition=bottom,font=small}
\captionsetup{format=hang,labelfont={bf}}
\usepackage{tikz}
\usetikzlibrary{shapes,arrows}
%============= LISTINGS ======================
\usepackage{listings}
\definecolor{mGreen}{rgb}{0,0.6,0}
\definecolor{mGray}{rgb}{0.5,0.5,0.5}
\definecolor{mPurple}{rgb}{0.58,0,0.82}
\definecolor{backgroundColour}{rgb}{0.95,0.95,0.92}
\definecolor{backgroundColourC++}{rgb}{0.95,0.95,0.92}

\lstdefinestyle{C}{
    backgroundcolor=\color{backgroundColour},   
    commentstyle=\color{mGreen},
    keywordstyle=\color{magenta},
    numberstyle=\tiny\color{mGray},
    stringstyle=\color{mPurple},
    basicstyle=\footnotesize\ttfamily,
%   breakatwhitespace=false,         
    breaklines=true,                 
    captionpos=b,                    
    keepspaces=true,                 
%   numbers=left,                    
%   numbersep=5pt,                  
    showspaces=false,                
    showstringspaces=false,
    showtabs=false,                  
    tabsize=2,
    breakatwhitespace=true,
    language=C
}
\lstdefinestyle{C++}{
    language=C++,
    backgroundcolor=\color{backgroundColourC++},   
    basicstyle=\footnotesize\ttfamily,
    keywordstyle=\color{blue}\ttfamily,
    stringstyle=\color{red}\ttfamily,
    commentstyle=\color{green}\ttfamily,
    morecomment=[l][\color{magenta}]{\#},
    captionpos=b,
    showspaces=false,
    keepspaces=true,
    breakatwhitespace=true,
    breaklines=true
}
\lstset{basicstyle=\small\ttfamily,columns=fullflexible}
\addto\captionsitalian{\renewcommand{\lstlistingname}{Codice}}
\addto\captionsitalian{\renewcommand{\lstlistlistingname}{Elenco dei listati}}

%==============FANCY==============
\usepackage{fancyhdr}
\pagestyle{fancy}
%\fancyhead{}
\fancyfoot{}
\fancyhead[RO,LE]{\fontsize{10}{12} C e C++}
\fancyhead[LO,RE]{}
\cfoot{}
\fancyfoot[LE,RO]{\fontsize{10}{12} \thepage}
\renewcommand{\headrulewidth}{0.4pt}
\renewcommand{\footrulewidth}{0.4pt}
%=================================

\usepackage{hyperref}
\hypersetup{
    bookmarksnumbered,
    bookmarksopen=false,
    hidelinks,
    hypertexnames=false,
    pdfauthor={Micky Mouse}, 
    pdftitle={My title}
}
\usepackage{imakeidx}
\makeindex
\makeindex[columns=2, title=Indice analitico]

\usepackage{bookmark}
\setcounter{secnumdepth}{4}
\renewcommand{\thesection}{\arabic{section}}
\author{Micky Mouse}
\title{My Title }
\date{MyDate}

\begin{document}
\pagestyle{empty}
\maketitle
\begin{center}
    
    Rev.~\gitCommitterIsoDate\\
    
    Hash:~\gitHash\\
    
\end{center}
\pagestyle{empty}
\tableofcontents
\listoffigures
\listoftables
\lstlistoflistings
\newpage

\section*{Premessa}
Some text as introduction of the book

\pagestyle{fancy}
\part{First part}
\include{A}
\include{B}

\part{Second part}
\include{C}
\include{D}

\appendix
\cleardoublepage
\phantomsection
\include{Apendix 1}
\phantomsection
\addcontentsline{toc}{part}{\indexname}
\printindex
\cleardoublepage
\end{document}

答案1

添加\bookmarksetup{startatroot}(从bookmark包中)以结束新章节(或附录)之前的部分。

相关内容