PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : pdfTeX und jurabook: destination with the same identifier (name{subfoursect



Blackhole
08-02-2008, 16:23
Hi,

wiedermal kommt diese Frage auf, aber ich habe bisher trotz intensiver Recherche noch keine Lösung gefunden:

Bei Verwendung von jurabook und hyperref bekomme ich bei Verwendung der vom Autor von jurabook definierten Überschriften subthreesection und subfoursection die folgende Fehlermeldung:

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

Es ist auch leider kein nur kosmetischer Fehler, da die Hyperref-Links und die PDF-Verzeichnisstruktur leider eben auch nicht funktionieren.

plainpages=false, pdfpagelabels hilft leider auch nicht.

Diesen Thread http://www.mrunix.de/forums/archive/index.php/t-46275.html habe ich auch gesehen, aber die Lösung dort hilft nicht.

Hier ein Minimalbeispiel:


\documentclass[a4paper,12pt,norunners,oneside]{jurabook}
%Inhaltsverzeichnis im pdf-Dok erstellen
\usepackage[plainpages=false,pdfpagelabels,pdftex,colorlinks]{hyperref}
\makeatletter
\def\toclevel@subthreesection{4}
\def\toclevel@subfoursection{5}
\makeatother
\begin{document}
\part{Teil 1}
\chapter{Kapitel 1}
\section{Abschnitt 1}
\subsection{Unterabschnitt 1}
\subsubsection{Unter-Unterabschnitt 1}
\subthreesection{Sub3Abschnitt 1}
\subfoursection{Sub4Abschnitt 1}
\subsection{Unterabschnitt 1}
\subsubsection{Unter-Unterabschnitt 1}
\subthreesection{Sub3Abschnitt 1}
\subfoursection{Sub4Abschnitt 1}
\subsection{Unterabschnitt 1}
\subsubsection{Unter-Unterabschnitt 1}
\subthreesection{Sub3Abschnitt 1}
\subfoursection{Sub4Abschnitt 1}
\end{document}


Ich verwende die aktuelle Version von jurabook (0.91beta vom 23.11.2007)... :(

Hat jemand noch eine Idee? Ich vermute, dass es ein Fehler in der Definition von subthreesection und subfoursection sein könnte, aber ich bin zu unerfahren, um da etwas zu entdecken.

Hier mal aus der jurabook.cls die Definition:


\newcounter{subthreesection}[subsubsection]
\renewcommand{\thesubthreesection}{\alph{subthrees ection}\alph{subthreesection})}
\let\subthreesectionmark\@gobble

\newcommand{\subthreesection}{\@startsection%
{subthreesection}%
{4}%
{\z@}%
{-3.25ex\@plus -1ex \@minus -.2ex}%
{1.5ex \@plus .2ex}%
{\normalfont\normalsize\bfseries}}
\let\subsubsubsection\subthreesection


Kann mir jemand helfen oder hat eine Idee oder einen Tipp, wo ich das nachsehen kann? FAQ wälzen und Googlen hat leider nicht geholfen...

EDIT: Ich habe in der Definition für das Minimalbeispiel einfach mal die Zeile

\newcounter{subthreesection}[subsubsection]
in

\newcounter{subthreesection}

geändert. Damit verschwindet der Fehler und die Links scheinen erstmal richtig zu sein. Wenn ich das aber in meinem eigentlichen (etwas größeren Dokument) setzen lasse, erscheint später die Fehlermeldung:

!LaTex error: Counter too large... :/



Danke!

Blackhole

sommerfee
08-02-2008, 17:56
Die Zählerausgaben (=\thesubthreesection & \thesubfoursection) sind nicht eineindeutig, in deinem Beispiel werden beide zweimal mit "aa" bzw. "aaa" bezeichnet. Sofern aber keine passende "H"-Definition vorliegt, verwendet das hyperref-Paket diese, um die internen Ankernamen zu generieren. Und so bedeutet 2x "aa", daß zwei Hyperlink-Anker mit der gleichen internen Bezeichnung generiert werden.

Abhilfe: Passende eineindeutige "H"-Definitionen tätigen, die dann hyperref automatisch verwendet:



\newcommand\theHsubthreesection{\theHsubsubsection .\arabic{subthreesection}}
\newcommand\theHsubfoursection{\theHsubthreesectio n.\arabic{subfoursection}}


Gruß,
Axel

P.S.: Das sollte man dem Maintainer der jurabook-Klasse mitteilen, dann kann er diese Definitionen gleich bei sich in die Klasse einbauen.

Blackhole
11-02-2008, 03:46
Vielen Dank!!

Damit ist (endlich) ein Problem gelöst (habe es eben schon ausprobiert), das mich seit weit über einem Jahr begleitet und für das ich schon mehrfach nach der Lösung gesucht und gefragt habe!
Ich werde dem Maintainer von Jurabook Bescheid sagen.

Grüße
Blackhole

cadeflow
16-07-2008, 16:50
Hmm, ich kämpfe mit dem gleichen Problem, bin aber absoluter Newbie. Wo muss ich denn die Befehle eingeben, die sommerfee vorgeschlagen hat? Kommen die in die Preambel des Dokuments? Und wenn ja, wo genau hin?

Blackhole
18-07-2008, 11:48
Hi,

ich habs vor begin{document}.

Du kannst auch hier http://www.retosphere.de/offenenetze/juristische-doktorarbeit-in-latex-setzen/ ein Komplettbeispiel runterladen, wo alle Einstellungen (und eben auch diese) gemacht sind.

Grüße
Blackhole


\makeatletter
\def\toclevel@subthreesection{4}
\def\toclevel@subsubsubsection{4}
\def\toclevel@subfoursection{5}
\def\toclevel@subsubsubsubsection{5}
\newcommand\theHsubthreesection{\theHsubsubsection .\arabic{subthreesection}}
\newcommand\theHsubfoursection{\theHsubthreesectio n.\arabic{subfoursection}}
\makeatother

\begin{document}

cadeflow
21-07-2008, 15:29
Ja Super,

jetzt funktioniert es. Danke für die Hilfe.