Anzeige:
Ergebnis 1 bis 5 von 5

Thema: newcounter und hyperref erzeugen Warnung 'destination with the same identifier'

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Registrierter Benutzer Avatar von sommerfee
    Registriert seit
    02.07.2006
    Beiträge
    1.603
    Das hyperref-Paket patcht \newcounter. Wenn du hyperref einsetzt, mußt du also die von hyperref gepatchte Version von \newcounter verwenden, also \newcounter *nach* dem Laden von hyperref anwenden.

  2. #2
    Registrierter Benutzer
    Registriert seit
    24.04.2009
    Beiträge
    223
    Danke für den Hinweis, aber wenn ich das hyperref-Paket wie im geänderten Minimalbeispiel gleich am Anfang lade, tritt die Warnung immer noch auf.

    Code:
    \documentclass{scrartcl}
    
    \usepackage{hyperref}
    
    % Definition einer nummerierten labeling-Umgebung zur Darstellung der Abschlussarbeiten
    \makeatletter
    \newcounter{enumlabel}
    \newenvironment{enumlabeling}[2][]{%
    	\setcounter{enumlabel}{0}%
      \def\sc@septext{#1}%
      \list{}{\settowidth{\labelwidth}{{%
            #2%
              \sc@septext%
          }}%
        \leftmargin\labelwidth \advance\leftmargin by \labelsep
        \let\makelabel\enumlabelinglabel
      }%
    }{%
      \endlist
    }
    \newcommand\enumlabelinglabel[1]{%
    	\refstepcounter{enumlabel}%
      \theenumlabel. #1\hfil
        \sc@septext%
    }
    \makeatother
    
    \begin{document}
    
    \begin{enumlabeling}{Test}
    	\item[Test] Test
    \end{enumlabeling}
    
    \begin{enumlabeling}{Test}
    	\item[Test] Test
    \end{enumlabeling}
    
    \end{document}

  3. #3
    Registrierter Benutzer Avatar von sommerfee
    Registriert seit
    02.07.2006
    Beiträge
    1.603
    Zitat Zitat von Magger Beitrag anzeigen
    Danke für den Hinweis, aber wenn ich das hyperref-Paket wie im geänderten Minimalbeispiel gleich am Anfang lade, tritt die Warnung immer noch auf.
    Oh, 'Tschuldigung. Ich muß gestehen, mir das Beispiel gar nicht weiter angeschaut zu haben, als ich die Sache mit dem hyperref nach dem \newcount gesehen hatte.

    Nun aber: hyperref braucht einen eindeutigen Zählerwert für seine Anker. Bei dir wird der Zähler aber immer wieder auf 0 zurückgesetzt, so daß die Hyperref-Anker im Anschluß nicht mehr eindeutig sind. Hier gibt es drei verschiedene Abhilfen:

    1. Man macht den Zähler eindeutig, z.B. durch Kopplung an einen anderen Zähler, so wie bei Section-Chapter
    2. Man definiert nach \newcounter \theHenumlabel (man beachte das "H") so um, daß es eindeutig ist
    3. Man verwendet die Paketoption hypertexnames=false, dann sorgt hyperref automatisch für fortlaufende Zähler für die Ankernamenvergabe. ACHTUNG: Dies wirkt dann global auf alle Zähler.


    Hier 'mal eine mögliche Lösung, die Ansatz Nr. 1 verfolgt:
    Code:
    \documentclass{scrartcl}
    
    \usepackage{hyperref}
    
    % Definition einer nummerierten labeling-Umgebung zur Darstellung der Abschlussarbeiten
    \makeatletter
    \newcounter{enumlabeling}  % <= Neu: Zähler enumlabeling, Zählt die Umgebungen
    \newcounter{enumlabel}[enumlabeling] % <= Geändert: Kopplung an enumlabeling
    \newenvironment{enumlabeling}[2][]{%
    	\stepcounter{enumlabeling}% <= Geändert: Umgebungszähler hochzählen
      \def\sc@septext{#1}%
      \list{}{\settowidth{\labelwidth}{{%
            #2%
              \sc@septext%
          }}%
        \leftmargin\labelwidth \advance\leftmargin by \labelsep
        \let\makelabel\enumlabelinglabel
      }%
    }{%
      \endlist
    }
    \newcommand\enumlabelinglabel[1]{%
    	\refstepcounter{enumlabel}%
      \theenumlabel. #1\hfil
        \sc@septext%
    }
    \makeatother
    
    \begin{document}
    
    \begin{enumlabeling}{Test}
    	\item[Test] Test
    	\item[Test] Test
    \end{enumlabeling}
    
    \begin{enumlabeling}{Test}
    	\item[Test] Test
    \end{enumlabeling}
    
    \end{document}

  4. #4
    Registrierter Benutzer
    Registriert seit
    24.04.2009
    Beiträge
    223
    Vielen Dank, das ist genau die Lösung, nach der ich gesucht habe.

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •