Anzeige:
Ergebnis 1 bis 12 von 12

Thema: Eigene Seitennummerierung + hyperref + pagebackref = has been referenced but does not

  1. #1
    Registrierter Benutzer
    Registriert seit
    13.09.2011
    Beiträge
    9

    Eigene Seitennummerierung + hyperref + pagebackref = has been referenced but does not

    Hallo Forum,

    dieses Forum hat mir mit den zahlreichen Infos schon oft weiter geholfen.
    Bei meinem aktuellen Problem komme ich jedoch nicht weiter und mit google finde ich auch nichts passendes.
    Ich habe die Seitennummerierung in meinem Anhang mittels
    Code:
    \renewcommand{\thepage}{{{\thechapter}.\arabic{page}}}
    modifiziert. Außerdem benutze ich pagebackref und einen Codeschnipsel den ich glaube ich sogar von hier habe, welcher unter den Einträgen im Quellenverzeichnis ein "Zitiert auf Seite" setzt. Das funktionierte bisher alles ganz prima. Nun habe ich das Problem dass wenn ich im Anhang eine Quelle zitiere das pagebackref meine modifizierte Seitenzahlen nicht mehr findet und einen Fehler ala
    Code:
    (dest): name{page.{A}.3} has been referenced but does not exis
    t, replaced by a fixed one
    wirft.
    Ich habe mir Mühe gegeben aus meinem riesen Dokument ein Minimalbeispiel zu bauen, welches diesen Fehler produziert. Hier ist es:
    Code:
    \documentclass
    [
    a4paper,
    ngerman,
    oneside,
    numbers=noenddot,
    ]
    {scrreprt}
    
    \usepackage[latin1]{inputenc} 																						% Zeichensatz, ermöglicht die direkte Eingabe 
    \usepackage[english, ngerman]{babel}   																		% Silbentrennung nach der neuen deutschen 
    \usepackage[
    pdftex,                  																									% Verwende pdftex um direkt PDFs zu erzeugen
    pagebackref, 																															% Links im Literaturverzeichnis zurück auf die Seite(n) wo zitiert wurde
    ]{hyperref}  % 
    
    
    % erzeugt in der Bibliographie Links im Format "Zitiert auf Seite"
    % redefinition of the actually used \backrefalt
    \renewcommand*{\backrefalt}[4]{
      \ifcase #1 %
          % case: not cited
          \par \vspace{0pt} \footnotesize (Nicht zitiert)
      \or
          % case: cited on exactly one page
          \par \vspace{0pt} \footnotesize (Zitiert auf Seite~#2)
      \else
          % case: cited on multiple pages
          \par \vspace{01pt} \footnotesize (Zitiert auf den Seiten~#2)
      \fi}
    
    \bibliographystyle{alphadin} 																						
    
    \begin{document}
    \selectlanguage{ngerman}
    
    \chapter{Normales Kapitel}
    Hier ist ein ganz normales Kapitel. Danach kommt der Anhang.
    
    \appendix
    \renewcommand{\thepage}{{{\thechapter}.\arabic{page}}}
    \chapter{Einführung}
    \section{Testsection}
    Hier steht eine Referenz auf \cite{buchzitat}.
    
    \bibliography{LIB}
    \end{document}
    Dazu braucht ihr dann noch die LIB.bib:
    Code:
    % This file was created with JabRef 2.6.
    % Encoding: Cp1252
    
    @BOOK{ buchzitat,
      title = {Testtitel},
      publisher = {Testpublisher},
      year = {20011},
      author = {Testauthor},
    }
    
    
    @comment{jabref-meta: selector_publisher:}
    
    @comment{jabref-meta: selector_author:}
    
    @comment{jabref-meta: selector_journal:}
    
    @comment{jabref-meta: selector_keywords:}
    evtl. gibt es ja eine andere Möglichkeit die Seitenzahlen so zu verbiegen dass es funktioniert?

    Schonmal vielen Dank an alle die sich darüber den Kopf zerbrechen werden

    Viele Grüße,
    Leo

  2. #2
    Registrierter Benutzer
    Registriert seit
    31.03.2010
    Beiträge
    1.039
    Was sollen denn die ganzen TABs im Code? Die machen das nur extrem unübersichtlich. Lass die bitte künftig weg. Wenn ich Dein Problem richtig verstehe, dann funktioniert bei mir:
    Code:
    \begin{filecontents*}{LIB.bib}
    % This file was created with JabRef 2.6.
    % Encoding: Cp1252
    
    @BOOK{ buchzitat,
      title = {Testtitel},
      publisher = {Testpublisher},
      year = {20011},
      author = {Testauthor},
    }
    
    
    @comment{jabref-meta: selector_publisher:}
    
    @comment{jabref-meta: selector_author:}
    
    @comment{jabref-meta: selector_journal:}
    
    @comment{jabref-meta: selector_keywords:}
    \end{filecontents*}
    
    \documentclass
    [
      a4paper,
      ngerman,
      oneside,
      numbers=noenddot,
    ]
    {scrreprt}
    \usepackage{chngcntr}
    \usepackage[latin1]{inputenc} % Zeichensatz, ermöglicht die direkte Eingabe 
    \usepackage[english, ngerman]{babel} % Silbentrennung nach der neuen deutschen 
    \usepackage[
      % hyperref kann pdftex vollständig alleine erkennen!
      pagebackref% Links im Literaturverzeichnis zurück auf die Seite(n) wo zitiert wurde
    ]{hyperref}  % 
    
    
    % erzeugt in der Bibliographie Links im Format "Zitiert auf Seite"
    % redefinition of the actually used \backrefalt
    \renewcommand*{\backrefalt}[4]{
      \ifcase #1 %
          % case: not cited
          \par \vspace{0pt} \footnotesize (Nicht zitiert)
      \or
          % case: cited on exactly one page
          \par \vspace{0pt} \footnotesize (Zitiert auf Seite~#2)
      \else
          % case: cited on multiple pages
          \par \vspace{01pt} \footnotesize (Zitiert auf den Seiten~#2)
      \fi}
    
    \bibliographystyle{alphadin}
    
    \begin{document}
    \chapter{Normales Kapitel}
    Hier ist ein ganz normales Kapitel. Danach kommt der Anhang.
    
    \appendix
    \counterwithin{page}{chapter}
    \chapter{Einführung}
    \section{Testsection}
    Hier steht eine Referenz auf \cite{buchzitat}.
    
    \bibliography{LIB}
    \end{document}
    Ich finde die Änderung der Seitennummerierung allerdings eher von Nachteil für den Leser.

  3. #3
    Registrierter Benutzer
    Registriert seit
    13.09.2011
    Beiträge
    9
    Sorry, die TABs habe ich total übersehen, das war keine Absicht

    Nach lesen der chngcntr Doku erschließt sich mir nun auch was sie tut
    Diese Lösung kompiliert zwar ohne Warning, jedoch zeigt der Link im pagebackref immernoch auf den Anfang des Dokuments.

  4. #4
    Registrierter Benutzer
    Registriert seit
    31.03.2010
    Beiträge
    1.039
    Zitat Zitat von leo2k Beitrag anzeigen
    Diese Lösung kompiliert zwar ohne Warning, jedoch zeigt der Link im pagebackref immernoch auf den Anfang des Dokuments.
    Bei mir nicht:
    Code:
     *File List*
    scrreprt.cls    2011/06/16 v3.09a KOMA-Script document class (report)
    scrkbase.sty    2011/06/16 v3.09a KOMA-Script package (KOMA-Script-dependent basics and keyval usage)
     scrbase.sty    2011/06/16 v3.09a KOMA-Script package (KOMA-Script-independent basics and keyval usage)
      keyval.sty    1999/03/16 v1.13 key=value parser (DPC)
    scrlfile.sty    2011/03/09 v3.09 KOMA-Script package (loading files)
    tocbasic.sty    2011/05/30 v3.09a KOMA-Script package (handling toc-files)
    scrsize11pt.clo    2011/06/16 v3.09a KOMA-Script font size class option (11pt)
    typearea.sty    2011/06/16 v3.09a KOMA-Script package (type area)
    chngcntr.sty    2009/09/02 v1.0a change counter resetting
    inputenc.sty    2008/03/30 v1.1d Input encoding file
      latin1.def    2008/03/30 v1.1d Input encoding file
       babel.sty    2008/07/08 v3.8m The Babel package
    ngermanb.ldf    2008/07/06 v2.6n new German support from the babel system
     english.ldf    2005/03/30 v3.3o English support from the babel system
    hyperref.sty    2011/08/19 v6.82h Hypertext links for LaTeX
    hobsub-hyperref.sty    2011/04/23 v1.4 Bundle oberdiek, subset hyperref (HO)
    hobsub-generic.sty    2011/04/23 v1.4 Bundle oberdiek, subset generic (HO)
      hobsub.sty    2011/04/23 v1.4 Subsetting bundle oberdiek (HO)
    infwarerr.sty    2010/04/08 v1.3 Providing info/warning/message (HO)
     ltxcmds.sty    2011/04/18 v1.20 LaTeX kernel commands for general use (HO)
    ifluatex.sty    2010/03/01 v1.3 Provides the ifluatex switch (HO)
      ifvtex.sty    2010/03/01 v1.5 Switches for detecting VTeX and its modes (HO)
     intcalc.sty    2007/09/27 v1.1 Expandable integer calculations (HO)
       ifpdf.sty    2011/01/30 v2.3 Provides the ifpdf switch (HO)
    etexcmds.sty    2011/02/16 v1.5 Prefix for e-TeX command names (HO)
    kvsetkeys.sty    2011/04/07 v1.13 Key value parser (HO)
    kvdefinekeys.sty    2011/04/07 v1.3 Defining keys (HO)
    pdftexcmds.sty    2011/04/22 v0.16 Utilities of pdfTeX for LuaTeX (HO)
    pdfescape.sty    2011/04/04 v1.12 Provides string conversions (HO)
    bigintcalc.sty    2011/01/30 v1.2 Expandable big integer calculations (HO)
      bitset.sty    2011/01/30 v1.1 Data type bit set (HO)
    uniquecounter.sty    2011/01/30 v1.2 Provides unlimited unique counter (HO)
    letltxmacro.sty    2010/09/02 v1.4 Let assignment for LaTeX macros (HO)
     hopatch.sty    2011/01/30 v1.0 Wrapper for package hooks (HO)
    xcolor-patch.sty    2011/01/30 xcolor patch
    atveryend.sty    2011/04/23 v1.7 Hooks at very end of document (HO)
    atbegshi.sty    2011/01/30 v1.15 At begin shipout hook (HO)
    refcount.sty    2010/12/01 v3.2 Data extraction from references (HO)
     hycolor.sty    2011/01/30 v1.7 Color options of hyperref/bookmark (HO)
     ifxetex.sty    2010/09/12 v0.6 Provides ifxetex conditional
    kvoptions.sty    2010/12/23 v3.10 Keyval support for LaTeX options (HO)
      pd1enc.def    2011/08/19 v6.82h Hyperref: PDFDocEncoding definition (HO)
    hyperref.cfg    2002/06/06 v1.2 hyperref configuration of TeXLive
     backref.sty    2010/08/30 v1.36 Bibliographical back referencing
    rerunfilecheck.sty    2011/04/15 v1.7 Rerun checks for auxiliary files (HO)
         url.sty    2006/04/12  ver 3.3  Verb mode for urls, etc.
     hpdftex.def    2011/08/19 v6.82h Hyperref driver for pdfTeX
     nameref.sty    2010/04/30 v2.40 Cross-referencing by name of section
    gettitlestring.sty    2010/12/03 v1.4 Cleanup title references (HO)
        test.out
        test.out
        test.bbl
     ***********
    Du hast schon die Aufrufreihenfolge:
    • pdflatex
    • bibtex
    • pdflatex
    • pdflatex

    eingehalten? Die zwei Läufe am Ende sind notwendig, weil beim ersten davon erst die Rücklinks ermittelt und im zweiten dann korrekt eingefügt werden.

  5. #5
    Registrierter Benutzer
    Registriert seit
    13.09.2011
    Beiträge
    9
    ähm, darüber habe ich mir noch nie gedanken gemacht O.o
    Ich nutze TeXnicenter und bin es seit jeher gewohnt sehr oft auf compilieren zu klicken.
    ... jetzt muss ich nur noch rausfinden wie ich überprüfen in welcher reihenfolge texnicenter das macht. bzw wie entscheidet texnicenter ob es jetzt bibtex oder latex ausführt wenn ich auf compilieren klicke?

    Edit:
    Halt stop
    Ich habe gerade eben testweise latex auf der konsole ausgeführt. Da kam dann die Fehlermeldung dass chngcntr.sty nicht gefunden werden konnte. Folglich hat Texnicenter das paket nicht automatisch installiert - mich darüber aber auch nicht informiert -.-
    Nachdem ich jetzt das Paket von Hand installiert habe läuft es durch und die Links passen auch.
    Aber seitdem das funktionert habe ich das Problem dass der \counterwithin{page}{chapter} zähler bei null anfängt, ich will aber dass es bei A.1 anfängt...
    Geändert von leo2k (17-11-2011 um 10:30 Uhr)

  6. #6
    Registrierter Benutzer Avatar von bobmalaria
    Registriert seit
    28.11.2006
    Ort
    Düsseldorf
    Beiträge
    4.174
    hi,

    soweit ich das weiss entscheided texniccenter das ueberhaut nicht und du musst normal bibtex extra ausfuehren. normal wird nur pdflatex ausgefuehrt.

    ausser du hast bibtex als nachbearbeitungsprofil in deinem LaTeX=>PDF eintrag extra angelegt.

    du kannst dein projekt mal reinigen, also alle temporaeren dateien loeschen (gibt es als funktion im texniccenter). dannach kannst du kompilieren, bibtex ausfuehren und noch 2x kompilieren.

    gruss
    Mein Ball ist umgefallen

  7. #7
    Registrierter Benutzer
    Registriert seit
    13.09.2011
    Beiträge
    9
    also in meinem texnicenter ist die option "verwendet bibtex" gesetzt. ich weiß zwar nicht wie genau, aber dadurch scheint sich texnicenter um die problematik zu kümmern.
    nachdem ich chngcntr jetzt manuell installiert habe, funktioniert das kompilieren auch so wie es soll.
    nur das problem mit der numerierung ab A.0 besteht weiterhin. in der doku von chngcntr steht
    Code:
    If you
    want to change the value after one of these commands, use \setcounter{
    }{<. . . >}, and to change the typeseting style use \renewcommand{\
    the}{<. . . >}.
    aber wenn ich \setcounter{page}{1} mache, macht das keinen unterschied.

  8. #8
    Registrierter Benutzer
    Registriert seit
    31.03.2010
    Beiträge
    1.039
    Kannst Du etwas genauer sein, beispielsweise in dem von mir gezeigten Beispiel Deine Änderungen einfügen und dann das geänderte Beispiel zeigen und daran erklären, was Du Dir anders erhoffst?

    PS: Willst Du vielleicht das (nur ein paar Zeilen mit der Änderung):
    Code:
    \appendix
    \counterwithin{page}{chapter}
    
    \chapter{Einführung}
    \stepcounter{page}
    \section{Testsection}
    Hier steht eine Referenz auf \cite{buchzitat}.
    Falls dem so ist, bekommen wir das auch automatisch hin …
    Geändert von Schweinebacke (17-11-2011 um 11:04 Uhr)

  9. #9
    Registrierter Benutzer
    Registriert seit
    13.09.2011
    Beiträge
    9
    ja, genau so hätte ich das gerne. und zwar bei jedem anhang, sodass es mit A.1, B.1 usw anfängt.
    dein beispiel funktioniert auch bei mir, und wenn ich an die selbe stelle \setcounter{page}{1} schreibe, funktioniert es auch. kannst du mir erklären wieso es nicht funktioniert wenn ich statt
    Code:
    \appendix
    \counterwithin{page}{chapter}
    
    \chapter{Einführung}
    \setcounter{page}{1}
    \section{Testsection}
    Hier steht eine Referenz auf \cite{buchzitat}.
    das hier schreibe?:
    Code:
    \appendix
    \counterwithin{page}{chapter}
    \setcounter{page}{1}
    \chapter{Einführung}
    
    \section{Testsection}
    Hier steht eine Referenz auf \cite{buchzitat}.
    wenn du mir jetzt noch sagst wie ich das ganze automatisiere, sodass ich nicht bei jedem chapter \setcounter{page}{1} schreiben muss, dann bin ich glücklich

    gruß,
    leo

  10. #10
    Registrierter Benutzer
    Registriert seit
    31.03.2010
    Beiträge
    1.039
    Da bei jedem Erhöhen des Zähler chapter in Folge von \counterwithin der Zähler page auf 0 gesetzt wird und da \chapter den Zähler chapter um eins erhöht, ist es völlig logisch dass ein \setcounter{page}{…} oder \stepcounter{page} vor \chapter keine sichtbaren Auswirkungen für die Kapitelanfangsseite hat.

    Um nun all Deine Wünsche als Teil von \appendix zu haben, schlage ich vor:
    Code:
    \listfiles
    \begin{filecontents*}{LIB.bib}
    % This file was created with JabRef 2.6.
    % Encoding: Cp1252
    
    @BOOK{ buchzitat,
      title = {Testtitel},
      publisher = {Testpublisher},
      year = {20011},
      author = {Testauthor},
    }
    
    
    @comment{jabref-meta: selector_publisher:}
    
    @comment{jabref-meta: selector_author:}
    
    @comment{jabref-meta: selector_journal:}
    
    @comment{jabref-meta: selector_keywords:}
    \end{filecontents*}
    
    \documentclass
    [
      a4paper,
      ngerman,
      oneside,
      numbers=noenddot,
    ]
    {scrreprt}
    \usepackage{chngcntr}
    \usepackage[latin1]{inputenc} % Zeichensatz, ermöglicht die direkte Eingabe 
    \usepackage[english, ngerman]{babel} % Silbentrennung nach der neuen deutschen 
    \usepackage[
      % hyperref kann pdftex vollständig alleine erkennen!
      pagebackref% Links im Literaturverzeichnis zurück auf die Seite(n) wo zitiert wurde
    ]{hyperref}  % 
    
    
    % erzeugt in der Bibliographie Links im Format "Zitiert auf Seite"
    % redefinition of the actually used \backrefalt
    \renewcommand*{\backrefalt}[4]{
      \ifcase #1 %
          % case: not cited
          \par \vspace{0pt} \footnotesize (Nicht zitiert)
      \or
          % case: cited on exactly one page
          \par \vspace{0pt} \footnotesize (Zitiert auf Seite~#2)
      \else
          % case: cited on multiple pages
          \par \vspace{01pt} \footnotesize (Zitiert auf den Seiten~#2)
      \fi}
    
    % \appendix so erweitern, dass der Anhang kapitelweise nummeriert wird:
    \makeatletter
    \g@addto@macro\appendix{%
      \counterwithin{page}{chapter}%
      \g@addto@macro\cl@chapter{\stepcounter{page}}%
    }
    \makeatother
    
    \bibliographystyle{alphadin}
    
    \begin{document}
    \chapter{Normales Kapitel}
    Hier ist ein ganz normales Kapitel. Danach kommt der Anhang.
    
    \appendix
    
    \chapter{Einführung}
    \section{Testsection}
    Hier steht eine Referenz auf \cite{buchzitat}.
    
    \chapter{Und noch ein Kapitel im \appendixname}
    Mit Text.
    
    % Und jetzt hast Du gleich ein Problem, wenn das Literaturverzeichnis nicht
    % nummeriert wird. Ein Gund mehr, nicht kapitelweise zu nummerieren. Für den
    % Leser ist das ohnehin eher von Nachteil, weil es die Orientierung aus dem
    % Inhaltsverzeichnis oder Stichwortverzeichnis heraus erschwert.
    \bibliography{LIB}
    \end{document}
    Falls Du als Ausweg das Literaturverzeichnis nummerieren möchtest, sei auf Option bibliography in der KOMA-Script-Anleitung, scrguide.pdf, oder auf Option toc (ebenda) hingewiesen.

  11. #11
    Registrierter Benutzer
    Registriert seit
    13.09.2011
    Beiträge
    9
    In meinem eigentlichen Dokument ist das Literaturverzeichnis sowieso vor den Anhängen (und dort auch anders nummeriert). Ich verstehe den Code der die Nummerierung automatisiert zwar nicht, aber es funktioniert und ich bin zufrieden.
    Vielen Dank für deine Hilfe

  12. #12
    Registrierter Benutzer
    Registriert seit
    31.03.2010
    Beiträge
    1.039
    \g@addto@macro ist eine Anweisung aus dem LaTeX-Kern, mit der man eine existierende Anweisung (erstes Argument) um weiteren Code (zweites Argument) ergänzen kann. Im konkreten Fall wird also \appendix erweitert.

    \cl@capter ist die sogenannte clear list des Zählers chapter. Normalerweise besteht die aus Anweisungen der Art \@elt{section}\@elt{equation} etc. Bei jedem \stepcounter{chapter} oder \refstepcounter{chapter} wird \@elt zu einer Anweisung, die den Zähler aus dem Argument auf 0 setzt und dann \cl@chapter ausgführt. Ich füge der Liste nun einfach ein \stepcounter{page} zu, so dass der Seitenzähler (nachdem er zuvor via \@elt{page} auf 0 gesetzt wurde) um eins erhöht wird.

    Näheres zu \cl@ZÄHLER und anderen Interna von LaTeX ist source2e.pdf zu entnehmen.

Lesezeichen

Berechtigungen

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