Seite 1 von 1

Verwendung von acro + nomentbl + hyperref -> Warnung

Verfasst: Do 5. Sep 2019, 07:45
von Jonny
Hi,

da mir ja geraten wurde einen neuen Fred aufzumachen:

Ich konnte mittlerweile herausfinden, dass die Hyperref-Warnung (Tabelle mit gleichem Identifier) nicht alleine von der longtable des acro-Pakets ausgelöst wird. Ich habe noch ein Symbolverzeichnis mit nomentbl drin, was anscheinend auch eine Tabelle erzeugt. Diese beiden sind für den Konflikt verantwortlich.

Wie löse ich das am besten, ohne den Hyperref-Link auf die beiden Verzeichnisse selbst (vom Inhaltsverzeichnis aus) zu deaktivieren?

Code: Alles auswählen

\documentclass[fontsize=12pt,
			   paper=a4,
			   ngerman,
			  ]{scrreprt}

\usepackage{babel} 
\usepackage[utf8]{inputenc} 
\usepackage[T1]{fontenc} 
\usepackage{array} 
\usepackage[sort=true]{acro} 
\usepackage{longtable}

\DeclareAcroListStyle {tabular} {table} 
   {before=\setlength{\LTleft}{0pt},
    table=longtable, 
    table-spec= @{}>{\bfseries}lp{.7\linewidth}@{}
  } 


\acsetup{list-style = tabular, 
         list-heading = addchap} 


\DeclareAcronym{c}{ 
   short = C, 
   long  = Der Buchstabe C
} 

\usepackage[german, intoc]{nomentbl}
\makenomenclature

\usepackage[hidelinks,
			unicode]
			{hyperref}


\begin{document} 
\nomenclature[Aa]{$A$}{Test}{-}%

\pagenumbering{roman}
\printnomenclature
\clearpage

\printacronyms[name={Abkürzung}] 


\ac{c}


\end{document}
Der code braucht einen Index-run für nomentbl (makeindex -s nomentbl.ist -o <filename>.nls <filename>.nlo)

Danke!

Verfasst: Do 5. Sep 2019, 08:42
von saputello
Das Problem ist, dass die longtable den table-Zähler erhöht und hyperref gleichzeitig diesen Zähler für einen Anker verwendet. Das führt dann zusammen mit anderen Mechanismen von nomentbl zu dem Problem. Solange du keine Tabellen in einem Kapitel mit derselben Nummer hast, die außerdem referenziert werden sollen, spielt das ganze keine Rolle. Wenn es eine Rolle spielt, kann man hyperref dazu zwingen, den Anker für die longtable von \printacronyms nicht abhängig vom Stand des chapter-Zählers zu benennen, indem man entweder \theHtable oder \theHchapter umdefiniert. Hier einmal letzteres, also beispielsweise:

Code: Alles auswählen

\DeclareAcroListStyle {tabular} {table}
   {before=\setlength{\LTleft}{0pt}\def\theHchapter{acro},
    table=longtable,
    table-spec= @{}>{\bfseries}lp{.7\linewidth}@{}
  }
verwendet.
Für die im der anderen Diskussion gezeigten Lösung mit xltabular geht das übrigens genauso.

Verfasst: Sa 7. Sep 2019, 12:13
von Jonny
Danke!