
In meiner Masterarbeit verwende ich das Glossarpaket, um alle meine Abkürzungen und Symbole im Auge zu behalten. Um zwischen den beiden zu unterscheiden, habe ich zwei verschiedene Glossare erstellt. Eines mit dem Standardabkürzungspaket und eines, das ich selbst definiert habe, die Symbolliste (ich habe meinen eigenen Stil verwendet, weil ich vier Spalten brauchte, eine für das Symbol, eine für die Einheiten, eine für die Beschreibung und eine für die Seiten).
Ich verwende außerdem sowohl eine römische als auch eine arabische Nummerierung. Wenn ich im (Symbol-)Glossar auf eine Referenz klicke, wird ich korrekt an die Stelle im Text weitergeleitet. Wenn ich jedoch im Text auf die (Symbol-)Referenz klicke, werde ich auf die erste Seite weitergeleitet (anstatt an die richtige Stelle in der Symbolliste).
Bei der Abkürzungsliste funktioniert es allerdings einwandfrei. Der Fehler muss in der Definition meines neuen Stils liegen. Auch wenn man die Nummerierungsänderung wieder entfernt, erfolgt weiterhin eine Weiterleitung auf die erste Seite.
hyperrefname
scheint das Problem nicht zu lösen. Wie kann ich es beheben?
Ich habe einminimales funktionierendes Beispiel(MWE), das Sie mit allen Paketen und einem Perl-Compiler ausführen können.
\documentclass[a4paper]{book}
\usepackage[usenames,dvipsnames]{xcolor}
\usepackage{hyperref}
\hypersetup{colorlinks=true, linkcolor=Maroon, citecolor=ForestGreen, filecolor=magenta, urlcolor=magenta, hypertexnames=false}
%% Glossary properties
\usepackage[nomain,acronym,toc,section]{glossaries}
\newglossary{symbol}{sbl}{smb}{Symbols}
\usepackage{array}
\makeglossaries
\usepackage[xindy]{imakeidx}
\makeindex
%% My own glossary to display the units
\newglossarystyle{tabx4col}{%
% Put the glossary in a longtable environment:
\renewenvironment{theglossary}%
{\begin{longtable}{@{}p{0.12\textwidth}@{}p{0.12\textwidth}@{}p{0.56\textwidth}rp{0.15\textwidth}}}%
{\end{longtable}}%
\renewcommand*{\glossaryentryfield}[5]{%
\glstarget{\textbf{##1}}{\textbf{##2}}% Name
& $[$\glsentryuseri{##1}$]$% Units
& ##3% Description
& ##5% Page list
\\% end of row
}%
%% Nothing between groups:
\renewcommand*{\glsgroupskip}{}%
}
%% Abbreviations
\newacronym{abr1}{ABR1}{Abbreviation 1}
\newacronym{abr2}{ABR2}{Abbreviation 2}
%% Symbols
\newglossaryentry{sym1}
{%
type=symbol,
name={\ensuremath{\alpha}},
description={The first symbol, with a very long description that spans multiple lines},
user1={kg},
sort=alpha
}
\newglossaryentry{sym2}
{%
type=symbol,
name={\ensuremath{\beta}},
description={the second symbol},
user1={m},
sort=beta
}
\begin{document}
\pagenumbering{roman}
\tableofcontents
{\let\cleardoublepage\clearpage
\chapter*{List of abbreviations and symbols}
\addcontentsline{toc}{chapter}{List of abbreviations and Symbols}
\printglossary[type=\acronymtype,title=Abbreviations,toctitle=Abbreviations]
\printglossary[type=symbol,style=tabx4col]
}
\chapter{Introduction}
\pagenumbering{arabic}
\gls{abr1} \gls{abr2} \gls{sym1} \gls{sym2}
\chapter{First chapter}
\gls{abr1} \gls{abr2} \gls{sym1} \gls{sym2}
\end{document}
Antwort1
Die Testdatei generiert mehrere Warnungen etwa wie hyperref
folgt:
pdfTeX warning (dest): name{glo:sym1} has been referenced but does not exist,
replaced by a fixed one
Das ist etwas kryptisch, glossaries
kann aber bedeuten, dass mit dem Zielmechanismus des Hyperlinks etwas nicht stimmt glossaries
. Die Nichtexistenz dieses Links führt dazu, dass Sie über den Hyperlink auf die erste Seite des Dokuments gelangen. Der Befehl \glstarget
richtet diesen Hyperlink im Glossarstil ein. Das erste Argument muss die Bezeichnung des Eintrags sein, und hier ist das Problem:
\glstarget{\textbf{##1}}{\textbf{##2}}% Name
Das \textbf
im ersten Argument verwirrt den Zielmechanismus. Sie müssen es nur entfernen, um das Problem zu beheben:
\glstarget{##1}{\textbf{##2}}% Name