Anzeige:
Ergebnis 1 bis 12 von 12

Thema: Hyperref mit alphanum

  1. #1
    Registrierter Benutzer
    Registriert seit
    01.04.2011
    Beiträge
    5

    Hyperref mit alphanum

    Hallo,

    ich schreibe zur Zeit an einem Text, in dem ich die Klasse jura verwende. Die Gliederung erfolgt dementsprechend durch alphanum.

    Zusätzlich verwende ich hyperref, was an sich ohne Probleme funktioniert. Die Konfiguration dazu ist:

    Code:
    \usepackage[
    pdftitle={xyz},
    pdfauthor={xyz},
    plainpages=false,
    pdfpagelabels
    ]{hyperref}
    \hypersetup{colorlinks=true, breaklinks=true, linkcolor=black, menucolor=black, urlcolor=black, citecolor=black}
    (hyperref wird als letztes Paket eingebunden)

    Mein Problem ist, dass einige Links aus meinem Inhaltsverzeichnis zu falschen Stellen im PDF-Dokument springen, das ich letztlich erstelle.

    Ich meine, dass Problem schon so soweit identifiziert zu haben, dass alphanum für die Identifikation der einzelnen Ebenen Bezeichner wie
    Code:
    \newcounter{lvla}
    \newcounter{lvlb}
    \newcounter{lvlc}
    \newcounter{lvld}
    \newcounter{lvle}
    \newcounter{lvlf}
    \newcounter{lvlg}
    verwendet.

    Sobald ich eine Gliederung habe, die dem Muster
    Code:
    \toc{Erster Eintrag auf Ebene 1}
    \sub{Erster Eintrag auf Ebene 2}
    \levelup
    \toc{Zweiter Eintrag auf Ebene 1}
    \sub{Zweiter Eintrag auf Ebene 2}
    entspricht, taucht in meiner .log-Datei der folgende Fehler auf
    Code:
    pdfTeX warning (ext4): destination with the same identifier (name{lvlb.I.}) has been already used, duplicate ignored
    Scheinbar wird bei der zweiten Verwendung von Ebene 2 für den ersten Gliederungspunkt wieder der Bezeichner lvlb.I. verwendet, was hyperref durcheinander bringt.

    Gibt es einen mehr oder weniger eleganten Weg, dieses Problem zu lösen?

  2. #2
    Registrierter Benutzer Avatar von rais
    Registriert seit
    18.07.2005
    Beiträge
    5.862
    Hallo und Herzlich Willkommen
    Zitat Zitat von 2beers Beitrag anzeigen
    Scheinbar wird bei der zweiten Verwendung von Ebene 2 für den ersten Gliederungspunkt wieder der Bezeichner lvlb.I. verwendet, was hyperref durcheinander bringt.
    versuch es mal mit
    Code:
    \newcommand*\theHlvla{\arabic{lvla}}
    \newcommand*\theHlvlb{\theHlvla.\arabic{lvlb}}
    %\newcommand*\theHlvlc...
    zusätzlich in Deiner Präambel.
    Wenn Dich das nicht weiterbringt, erstelle bitte ein Minimalbeispiel

    MfG
    Rainer
    There's nothing a good whack with a hammer won't fix!

  3. #3
    Registrierter Benutzer
    Registriert seit
    01.04.2011
    Beiträge
    5
    Danke,

    aber der Codeschnipsel gibt mir
    Code:
    Command \theHlvla already defined.
    zurück.

    Zur besseren Fehlerdiagnose habe ich ein Minimalbeispiel erstellt:
    Code:
    \documentclass{jura}
    \usepackage[utf8]{inputenc}
    \usepackage[T1]{fontenc}
    \usepackage[
    plainpages=false,
    pdfpagelabels
    ]{hyperref}
    \begin{document}
    \tableofcontents %%Das Inhaltsverzeichnis
    \mainmatter
    \toc{Ebene 1}
    \sub{Ebene 2}
    \levelup
    \newpage
    \toc{Nochmal Ebene 1}
    \sub{Nochmal Ebene 2}
    \levelup
    \end{document}
    Obwohl ich das zweite Auftauchen von Ebene 2 extra eine Seite weiter verschoben habe, verweist hyperref im erstellen PDF-Dokument auf die Seite, auf der Ebene 2 zuerst verwendet wird.

    Ich hoffe, der Fehler ist so nachvollziehbar.

  4. #4
    Registrierter Benutzer Avatar von rais
    Registriert seit
    18.07.2005
    Beiträge
    5.862
    Moin moin,
    Zitat Zitat von 2beers Beitrag anzeigen
    Ich hoffe, der Fehler ist so nachvollziehbar.
    bei mir nicht:
    Code:
    \listfiles
    \documentclass{jura}
    \usepackage[utf8]{inputenc}
    \usepackage[T1]{fontenc}
    \usepackage[
    plainpages=false,
    pdfpagelabels
    ]{hyperref}
    \newcommand*\theHlvla{\arabic{lvla}}
    \newcommand*\theHlvlb{\theHlvla.\arabic{lvlb}}
    %\newcommand*\theHlvlc...
    \begin{document}
    \tableofcontents %%Das Inhaltsverzeichnis
    \mainmatter
    \toc{Ebene 1}
    \sub{Ebene 2}
    \levelup
    \newpage
    \toc{Nochmal Ebene 1}
    \sub{Nochmal Ebene 2}
    \levelup
    \end{document}
    Lass das mal laufen und vergleiche mit der *File List* aus Deiner .log:
    Code:
     *File List*
        jura.cls    1998/07/13 v4.3 juristische Hausarbeiten
      report.cls    2007/10/19 v1.4h Standard LaTeX document class
      size12.clo    2007/10/19 v1.4h Standard LaTeX file (size option)
    alphanum.sty    1998/07/13 v4.3 alphanumeric section numbers
    inputenc.sty    2008/03/30 v1.1d Input encoding file
        utf8.def    2008/04/05 v1.1m UTF-8 support for inputenc
       t1enc.dfu    2008/04/05 v1.1m UTF-8 support for inputenc
      ot1enc.dfu    2008/04/05 v1.1m UTF-8 support for inputenc
      omsenc.dfu    2008/04/05 v1.1m UTF-8 support for inputenc
     fontenc.sty
       t1enc.def    2005/09/27 v1.99g Standard LaTeX file
    hyperref.sty    2011/03/09 v6.82d Hypertext links for LaTeX
     ltxcmds.sty    2010/04/26 v1.7 LaTeX kernel commands for general use (HO)
       ifpdf.sty    2010/01/28 v2.1 Provides the ifpdf switch (HO)
    pdftexcmds.sty    2010/04/01 v0.9 Utility functions of pdfTeX for LuaTeX (HO)
    infwarerr.sty    2010/04/08 v1.3 Providing info/warning/message (HO)
    ifluatex.sty    2010/03/01 v1.3 Provides the ifluatex switch (HO)
      keyval.sty    1999/03/16 v1.13 key=value parser (DPC)
    kvsetkeys.sty    2010/03/01 v1.9 Key value parser (HO)
    etexcmds.sty    2010/01/28 v1.3 Prefix for e-TeX command names (HO)
    pdfescape.sty    2010/03/01 v1.9 Provides hex, PDF name and string conversions
    (HO)
      ifvtex.sty    2010/03/01 v1.5 Switches for detecting VTeX and its modes (HO)
     ifxetex.sty    2010/09/12 v0.6 Provides ifxetex conditional
     hycolor.sty    2009/12/12 v1.6 Color options of hyperref/bookmark (HO)
    xcolor-patch.sty    2009/12/12 xcolor patch
    letltxmacro.sty    2008/06/24 v1.3 Let assignment for LaTeX macros (HO)
    kvoptions.sty    2010/02/22 v3.7 Keyval support for LaTeX options (HO)
      pd1enc.def    2011/03/09 v6.82d Hyperref: PDFDocEncoding definition (HO)
     intcalc.sty    2007/09/27 v1.1 Expandable integer calculations (HO)
    hyperref.cfg    2002/06/06 v1.2 hyperref configuration of TeXLive
         url.sty    2006/04/12  ver 3.3  Verb mode for urls, etc.
      bitset.sty    2007/09/28 v1.0 Data type bit set (HO)
    bigintcalc.sty    2007/11/11 v1.1 Expandable big integer calculations (HO)
    atbegshi.sty    2010/03/25 v1.12 At begin shipout hook (HO)
      hdvips.def    2011/03/09 v6.82d Hyperref driver for dvips
     pdfmark.def    2011/03/09 v6.82d Hyperref definitions for pdfmark specials
    rerunfilecheck.sty    2010/03/16 v1.6 Rerun checks for auxiliary files (HO)
    atveryend.sty    2010/03/24 v1.5 Hooks at very end of document (HO)
    uniquecounter.sty    2009/12/18 v1.1 Provides unlimited unique counter (HO)
     nameref.sty    2010/04/30 v2.40 Cross-referencing by name of section
    refcount.sty    2008/08/11 v3.1 Data extraction from references (HO)
    gettitlestring.sty    2009/12/18 v1.3 Cleanup title references (HO)
          mb.out
          mb.out
     ***********
    Wie dem auch sei, da es die Befehle bei Dir bereits gibt, könntest Du natürlich statt \newcommand* einfach \renewcommand* an den entsprechenden Stellen verwenden (was wiederum bei mir zur umgekehrten Fehlermeldung führen würde).

    MfG
    Rainer
    There's nothing a good whack with a hammer won't fix!

  5. #5
    Registrierter Benutzer
    Registriert seit
    01.04.2011
    Beiträge
    5
    So,

    nachdem ich an meinem Ausgangsbeispiel nochmal eifrig auskommentiert habe, konnte ich feststellen, dass die Lösung mit
    Code:
    \newcommand*\theHlvla{\arabic{lvla}}
    \newcommand*\theHlvlb{\theHlvla.\arabic{lvlb}}
    usw. an sich funktioniert. Sobald ich jedoch (für mein Literaturverzeichnis)
    Code:
    \usepackage{jurabib}
    wieder einbinde, tritt wieder der Fehler
    Code:
    Command \theHlvla already defined.
    auf.

    Ein Umschreiben auf
    Code:
    \renewcommand*\theHlvla{\arabic{lvla}}
    erzeugt
    Code:
    \theHlvla undefined
    .

    Eine Minimalbeispiel, das nicht mehr durchkompiliert, sähe somit so aus:
    Code:
    \documentclass{jura}
    \usepackage[utf8]{inputenc}
    \usepackage[T1]{fontenc}
    \usepackage{jurabib}
    \usepackage[
    plainpages=false,
    pdfpagelabels
    ]{hyperref}
    \newcommand*\theHlvla{\arabic{lvla}}
    \newcommand*\theHlvlb{\theHlvla.\arabic{lvlb}}
    %\newcommand*\theHlvlc...
    \begin{document}
    \tableofcontents %%Das Inhaltsverzeichnis
    \mainmatter
    \toc{Ebene 1}
    \sub{Ebene 2}
    \levelup
    \newpage
    \toc{Nochmal Ebene 1}
    \sub{Nochmal Ebene 2}
    \levelup
    \end{document}
    Geändert von 2beers (03-04-2011 um 17:32 Uhr)

  6. #6
    Registrierter Benutzer Avatar von rais
    Registriert seit
    18.07.2005
    Beiträge
    5.862
    Moin moin,
    Zitat Zitat von 2beers Beitrag anzeigen
    nachdem ich an meinem Ausgangsbeispiel nochmal eifrig auskommentiert habe, konnte ich feststellen, dass die Lösung mit
    Code:
    \newcommand*\theHlvla{\arabic{lvla}}
    \newcommand*\theHlvlb{\theHlvla.\arabic{lvlb}}
    usw. an sich funktioniert. Sobald ich jedoch (für mein Literaturverzeichnis)
    Code:
    \usepackage{jurabib}
    wieder einbinde, tritt wieder der Fehler
    Code:
    Command \theHlvla already defined.
    auf.

    Ein Umschreiben auf
    Code:
    \renewcommand*\theHlvla{\arabic{lvla}}
    erzeugt
    Code:
    \theHlvla undefined
    .
    aha. Offensichtlich definiert sich jurabib (in dieser Konstellation) diese \theHlvl*-Befehle zu Dokumentbeginn, das kannst Du auch:
    Code:
    \documentclass{jura}
    \usepackage[utf8]{inputenc}
    \usepackage[T1]{fontenc}
    \usepackage{jurabib}
    \usepackage[
    plainpages=false,
    pdfpagelabels
    ]{hyperref}
    \AtBeginDocument{%
    \renewcommand*\theHlvla{\arabic{lvla}}%
    \renewcommand*\theHlvlb{\theHlvla.\arabic{lvlb}}%
    %\renewcommand*\theHlvlc...
    }
    \begin{document}
    \tableofcontents %%Das Inhaltsverzeichnis
    \mainmatter
    \toc{Ebene 1}
    \sub{Ebene 2}
    \levelup
    \newpage
    \toc{Nochmal Ebene 1}
    \sub{Nochmal Ebene 2}
    \levelup
    \end{document}
    MfG
    Rainer
    There's nothing a good whack with a hammer won't fix!

  7. #7
    Registrierter Benutzer
    Registriert seit
    01.04.2011
    Beiträge
    5
    Hervorragend, das hat funktioniert!

    Vielen Dank!

  8. #8
    Registrierter Benutzer Avatar von rais
    Registriert seit
    18.07.2005
    Beiträge
    5.862
    grmph, siehe auch http://www.golatex.de/hyperref-mit-alphanum-t6537.html

    Siehe auch nach dem Begriff `Crosspost'
    Rainer
    There's nothing a good whack with a hammer won't fix!

  9. #9
    Registrierter Benutzer
    Registriert seit
    01.04.2011
    Beiträge
    5
    Das Problem war, dass die Freischaltung hier recht lang gedauert hat. In mehreren Foren zu fragen, ist ja auch grundsätzlich kein Problem. Nun ist es ja sogar so, dass die Lösung auf zwei Wegen gefunden werden kann.

  10. #10
    Registrierter Benutzer
    Registriert seit
    06.03.2010
    Ort
    St. Petersburg, Russland
    Beiträge
    2.468
    Nur ist es in diesem Forum Pflicht, den Link zum anderen Forum dann anzugeben.

  11. #11
    Registrierter Benutzer
    Registriert seit
    31.03.2010
    Beiträge
    1.039
    Zitat Zitat von 2beers Beitrag anzeigen
    In mehreren Foren zu fragen, ist ja auch grundsätzlich kein Problem.
    Sich nicht an die Spielregeln zu halten, ist aber eigentlich schon ein Problem …

    Mich wundert, dass KOMA auf goLaTeX die Diskussion nicht gleich geschlossen oder gelöscht hat. Dort ist das nämlich in jeder Weise ein Verstoß gegen die Regeln und KOMA hat da früher nicht lange gefackelt.

  12. #12
    Registrierter Benutzer
    Registriert seit
    10.07.2010
    Ort
    Offenhausen
    Beiträge
    654
    Zitat Zitat von Schweinebacke Beitrag anzeigen
    Sich nicht an die Spielregeln zu halten, ist aber eigentlich schon ein Problem …

    Mich wundert, dass KOMA auf goLaTeX die Diskussion nicht gleich geschlossen oder gelöscht hat. Dort ist das nämlich in jeder Weise ein Verstoß gegen die Regeln und KOMA hat da früher nicht lange gefackelt.
    Siehe http://www.golatex.de/nur-zur-info-t6545.html

    Sepp.-

Lesezeichen

Berechtigungen

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