词汇表反向链接指向错误页面

词汇表反向链接指向错误页面

我显示的词汇表保留了指向使用该条目的页面的反向链接。它正确地显示了第 3 页,但链接从头跳转到第 3 页,而不是使用阿拉伯语页码的第 3 页。我在这里遗漏了什么?

要重现:1. 构建这个东西 2. 转到词汇表并单击页码 3. 发现自己正在看第 3 页。

    \documentclass[10pt,a4paper,headsepline,footsepline,DIV13,BCOR12mm]{scrbook}
    \usepackage[english,ngerman]{babel}
    \usepackage[T1]{fontenc}
    \usepackage[latin1]{inputenc}
    \usepackage{scrpage2}
    \pagestyle{scrheadings}
    \usepackage{graphicx}
    \usepackage{hyperref}
    \usepackage[toc,numberedsection]{glossaries}
    \makeglossaries
    \newacronym{fap}{FAP}{Fundamental Architectural Principles}

    \begin{document}

    \selectlanguage{ngerman}
    \thispagestyle{empty}

    \begin{table}[h]
    \centering
    \begin{tabular}{ccc}
    \hspace{0.7cm} &
    \end{tabular}
    \end{table}

    \vspace{8mm}
    \begin{center}
    {\Large
    {\bfseries \scshape Institut Software \&  Engineering}\\
     6a \hspace{0.25cm} D- \\
    }
    \end{center}

    \vspace{1cm}
    %title
    \begin{center}
    {\Huge \bfseries asd  \\[2mm] in   \\[5mm] asdasd }
    \end{center}

    \vspace{1.5cm}
    %author
    \begin{center}
    {\Large Christian Vaas}
    \end{center}

    \vspace{1cm}
    \begin{center}
    {\Large \bfseries Masterarbeit  Software Engineering}
    \end{center}

    \vspace{1cm}
    \begin{center}
    \includegraphics[width=.4\linewidth]{img/logos/LogoSEengl}
    \end{center}

    \newpage
    \thispagestyle{empty}
    \mbox{}
    \newpage
    \thispagestyle{empty}

    \begin{table}[h]
    \centering
    \begin{tabular}{ccc}
    \hspace{0.7cm} &
    \end{tabular}
    \end{table}

    \vspace{1cm}
    \begin{center}
    {\Large
    {\bfseries \scshape Institut Software \& Systems Engineering}\\
     6a \hspace{0.25cm} D- \\
    }
    \end{center}

    \vspace{2.5cm}
    %title
    \begin{center}
    {\Huge \bfseries  Patterns \\[2mm] in   \\[5mm]  Architectures}
    \end{center}

    \vspace{1cm}
    %author
    \begin{center}
    \begin{table}[h]
    \centering
    \begin{tabular}{ll}
    Matrikelnummer: &  \\
    Beginn der Arbeit: & XX.\ X. XXX 20XX \\ 
    Abgabe der Arbeit: & XX.\ X. XXX 20XX \\
    Erstgutachter: & Prof.\ Dr.\   \\
    Zweitgutachter: & Prof.\ Dr.\ YYY YYYYYY \\
    Betreuer: &  S.  \\
    \end{tabular}
    \end{table}
    \end{center}

    \vspace{1.25cm}

    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    %%% Statement-Page
    \newpage
    \thispagestyle{empty}
    \mbox{}
    \newpage
    \thispagestyle{empty}

    \centerline{\bfseries ERKLAERUNG}

    \vspace{5cm}
    Hiermit versichere ich, dass ich diese Masterarbeit selbstaendig verfasst habe.
    Ich habe dazu keine anderen als die angegebenen Quellen und Hilfsmittel
    verwendet.

    \vspace{1cm}
    \begin{flushleft}
    %select german for formatting the date
    \selectlanguage{ngerman}
    Augsburg, den \today \hfill ZZZ ZZZZZZ
    \end{flushleft}

    \newpage
    \thispagestyle{empty}
    \mbox{}


    \newpage

    %select english as language!
    \selectlanguage{english}

    \vspace*{1cm}
    \section*{\centering Abstract}
    \vspace{1cm}

    \paragraph*{CONTEXT}

    \pagenumbering{roman}

    \tableofcontents
    \newpage
    \listoffigures
    \newpage
    \listoftables

    \pagenumbering{arabic}

    \chapter{Introduction}
    \section{Motivation/Challenges}
    \section{Approach}
    Blubber \gls{fap}

    \printglossaries

    \end{document}

答案1

问题源于您编号页面的方式:虽然您使用 隐藏了标题页上的页码\thispagestyle{empty},但这些页面仍然使用阿拉伯数字进行内部编号。因此,请将 移到\pagenumbering{roman}之后\begin{document}。这将移动罗马数字,例如,目录现在将位于第 ix 页,这是应该的。

答案2

该问题与此无关,glossaries但因为您有多个具有相同标识符的 PDF 锚点。我怀疑您的日志文件中有一条消息,内容如下:

pdfTeX warning (ext4): destination with the same identifier 
(name{page.3}) has been already used, duplicate ignored

PDF 文件中的每一页都以“page.html”的形式被赋予一个锚点。n“ 在哪里n是页码,因此第 3 页有锚点page.3,第 iii 页有锚点page.iii,但您有两个页面已编号3(阿拉伯语):一个在标题区域,另一个在正文中。您无法在第一时间看到页码,因为您已使用页面empty样式隐藏了页码,但即使您看不到页码,该页面仍然有一个关联的数字。

以下是一个例子:

\documentclass{scrbook}

\usepackage{hyperref}

\begin{document}

\begin{titlepage}
Insert title page text here.
\end{titlepage}

\cleardoublepage

\begin{titlepage}
Insert institute blurb here.
This is page 3. It has an anchor called ``page.3''.
\end{titlepage}

\cleardoublepage

\begin{titlepage}
Insert statement blurb here.
\end{titlepage}

\frontmatter

page i
\clearpage

page ii
\clearpage

page iii
\clearpage

\mainmatter

page 1

\clearpage

page 2
\clearpage

page 3.
This is also page 3. It has been given a duplicate anchor called ``page.3''.

\clearpage

\hyperlink{page.3}{Page 3}

\end{document}

由于重复的锚点会被忽略,因此超链接会转到第一个定义的锚点。解决此问题的一种方法是使用不同的页码编号来标记标题页。由于页面样式为空,因此您可以选择任何您喜欢的样式,只要它未在文档中的其他任何地方使用即可。例如:

\documentclass{scrbook}

\usepackage{hyperref}

\begin{document}

\pagenumbering{alph}
\begin{titlepage}
Insert title page text here.
\end{titlepage}

\cleardoublepage

\begin{titlepage}
Insert institute blurb here. This page has the anchor ``page.c'', but you 
can't see the number as the page style is empty.
\end{titlepage}

\cleardoublepage

\begin{titlepage}
Insert statement blurb here.
\end{titlepage}

\frontmatter

page i
\clearpage

page ii
\clearpage

page iii
\clearpage

\mainmatter

page 1

\clearpage

page 2
\clearpage

page 3

\clearpage

\hyperlink{page.3}{Page 3}

\end{document}

超链接现在链接到正确的页面。

相关内容