hyperref vs. setcounter

Layout von Seiten, Rändern, Fusszeilen, usw, modifizieren


Lala
Forum-Anfänger
Forum-Anfänger
Beiträge: 12
Registriert: Do 4. Okt 2012, 00:30

hyperref vs. setcounter

Beitrag von Lala »

Hallo allerseits,

Mein PDF-Dokument besitzt Seitenzahlen erst nach dem Inhaltsverzeichnis startend mit 1.
hyperref springt dann aber nicht zur Seite mit der Zahl 1, sondern zur ersten Dokumentseite, dem Titelblatt.
Ich weiß, ich soll den internen Zähler nach \setcounter wieder eindeutig definieren:
\documentclass[a4paper,fontsize=12pt,parskip]{scrartcl}			
\usepackage[ngerman]{babel} 								
\usepackage[latin9]{inputenc}								
\usepackage[T1]{fontenc}									
\usepackage[left=2cm,right=2cm,top=2cm,bottom=3cm,includeheadfoot]{geometry}\usepackage{amsmath} 									\usepackage{mathrsfs}
\usepackage{lscape}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{fancyhdr}
\usepackage{graphicx}
\usepackage{tabularx}
\usepackage{caption}
\usepackage{cancel} 
\usepackage{pstricks} 
\usepackage[babel,german=quotes]{csquotes}					
\usepackage{cite}				
%\usepackage{natbib}
\usepackage{blindtext}
%\usepackage{url}	
\usepackage[breaklinks,pagebackref,plainpages=false,hypertexnames={false}]{hyperref}
\hypersetup{colorlinks=false}					
\urlstyle{same}	

\title{Titel}
\author{Lala}
\date{\today}
\setlength{\parindent}{0mm}

\begin{document}

\maketitle									
\thispagestyle{empty}					

\newpage

\thispagestyle{empty}			
\tableofcontents

\pagestyle{fancy}										

\newpage

\setcounter{page}{1}				
\renewcommand{\theHpage}{A.\arabic{page}}	

\section[Axiome des affinen Raums]{Axiome des affinen Raums \cite{[BA12]}}

\blindtext[50]

\bibliography{mybib}
\bibliographystyle{plain} 

\end{document}
Logischerweise sollte das funktionieren. Aber ich erhalte ein:

! LaTeX Error: \theHpage undefined.See the LaTeX manual or LaTeX Companion for explanation.Type H <return> for immediate help.... \renewcommand{\theHpage}

Was habe ich übersehen? :)

sudo
Forum-Guru
Forum-Guru
Beiträge: 459
Registriert: Mi 3. Okt 2012, 11:32

Beitrag von sudo »

Also die Fehlermeldung kommt daher, dass du dich bei \thepage verschrieben hast.
Um die Seitennummerierung und Referenzierung richtig zu bekommen, musst du einen neuen Zähler definieren.
Ich hab dein Beispiel mal etwas aufgeräumt und alle Pakete entfernt, die nicht relevant waren.
\documentclass[a4paper,fontsize=12pt,parskip]{scrartcl}        
\usepackage[ngerman]{babel}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{blindtext}
\usepackage[pagebackref]{hyperref}
\title{Titel}
\author{Lala}
\date{\today}

\begin{document}
\pagenumbering{arabic}
\maketitle  
\thispagestyle{empty}
\tableofcontents
\pagestyle{headings}
\newpage
\newcounter{chapter}
\setcounter{chapter}{1}            
\setcounter{page}{1}
\renewcommand{\thepage}{\Alph{chapter}.\arabic{page}}  

\section[Axiome des affinen Raums]{Axiome des affinen Raums \cite{[BA12]}}
\blindtext[50]
\bibliography{mybib}
\bibliographystyle{plain}

\end{document}
Edit: Vielleicht reicht auch ein \pagenumbering{roman} direkt nach \begin{document}.
Edit2: Du musst keinen neuen Zähler definieren. Ohne das "H" in \thepage läuft es jetzt. Lag wohl an alten aux-Datein, oder so ... Aber wenn das "A.1" nur eine Notlösung ist um Seite 1 von der Titelseite zu unterscheiden, würde ich zwei \pagenumbering Befehle empfehlen. Die setzen auch den Seitenzähler gleich auf 1. Analog zu \frontmatter und \mainmatter hast du dann römische Zahlen im Vorspann, die man aber nicht auf der Seite sieht, und arabische im Hauptteil.

Lala
Forum-Anfänger
Forum-Anfänger
Beiträge: 12
Registriert: Do 4. Okt 2012, 00:30

Beitrag von Lala »

Danke für die schnelle Antwort! Werde es bei nächster Gelegenheit ausprobieren und nochmal Bescheid geben, ob es geklappt hat.
Das mit dem \theHpage hab ich übrigens von dem Befehl \theHsection, den ich in ähnlichen Beispielen oft gefunden hab und der den "internen" Zähler umdefiniert. (Aber hat ja nicht funktioniert :) )
Und ja, das A.1 als Seitenzahl war nur eine Notlösung...

Lala
Forum-Anfänger
Forum-Anfänger
Beiträge: 12
Registriert: Do 4. Okt 2012, 00:30

Beitrag von Lala »

Also...
Da das mit dem A vor der eigentlichen Seitenzahl nur eine Notlösung war, fällt der erste Lösungsvorschlag weg. Nun hab ich das mit dem pagenumbering ausprobiert (erst römisch, dann arabisch), und die Seitenzahlen werden genauso angezeigt, wie ich es möchte, nämlich die Seite mit dem ersten Kapitel ist auch Seite 1.
Trotzdem klappt das mit den hyperrefs im Literaturverzeichnis nicht. Er gibt dort zwar an, wenn etwas auf Seite 1 (arabisch) steht, verlinkt das ganze aber zur ursprünglichen Seite 1 (also der Titelseite).
Hab auch schon alles mögliche mit newcounter ausprobiert, was sich kompliziert gestaltet, da ich nur den Zähler anders nennen will, damit richtig verlinkt wird, er soll aber den gleichen Wert haben wie der page-Zähler.
Bei folgendem Beispiel (verzweifelt) haben alle Seiten die Seitenzahl 1 und er verlinkt aus dem Literaturverzeichnis immer noch alles aufs Titelblatt, dabei hat das ja gar keine ppp-Nummer.
\pagenumbering{arabic}
\newcounter{ppp}
\setcounter{ppp}{\value{page}}
\renewcommand{\thepage}{\theppp}
Weiß jemand Rat? Ist verständlich, was ich eigentlich erreichen will? Im Prinzip versuche ich rauszufinden, welchen Zähler hyperref benutzt, um die Seitenzahl in die Verlinkungen einzufügen.

sudo
Forum-Guru
Forum-Guru
Beiträge: 459
Registriert: Mi 3. Okt 2012, 11:32

Bei mir geht es

Beitrag von sudo »

Also bei mir funktioniert es tadellos. Hast du auch jeweils 2-3 LaTeX-Durchläufe, bevor du probierst ob alles klappt? Der Ort für die Links wird beim ersten Durchlauf in eine aux-Datei geschrieben. Erst beim zweiten kommt es dann richtig in die PDF.
Ansonsten hab ich mal mit \listfiles eine Liste der Datein erzeugt und angehängt (Die Liste steht dann in der log-Datei). Dann kannst du vergleichen, ob vielleicht irgendwelche alten Versionen bei dir im PC herumlungern. Ein altes Hyperref könnte da schon stören. (Vielleicht auch eine neue ...)
Hier nochmal das leicht veränderte Minimalbeispiel.
\listfiles
\documentclass[a4paper,fontsize=12pt,parskip]{scrartcl}        
\usepackage[ngerman]{babel}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{blindtext}
\usepackage[pagebackref]{hyperref}
\title{Titel}
\author{Lala}
\date{\today}

\begin{document}
\pagenumbering{roman}
\maketitle  
\newpage
\newpage
\thispagestyle{empty}
\tableofcontents
\pagestyle{headings}
\newpage

\pagenumbering{arabic}
\section[Axiome des affinen Raums]{Axiome des affinen Raums \cite{[BA12]}}
\blindtext[50]
\bibliography{mybib} 
\bibliographystyle{plain}
\end{document}
Dateianhänge
minimal-files.txt
Liste der geladenen Datein
(3.24 KiB) 608-mal heruntergeladen

Lala
Forum-Anfänger
Forum-Anfänger
Beiträge: 12
Registriert: Do 4. Okt 2012, 00:30

Beitrag von Lala »

Oh gott, mit der log-Datei kann ich nix anfangen... :oops:
Ich lass wegen bibtex immer einmal latex, dann bibtex, dann zweimal latex drüber laufen. Hab jetzt auch mal alle außer der tex-Datei gelöscht und nochmal kompiliert, bringt aber nix. Der zählt immer vom Titelblatt an und verlinkt so immer zwei Seiten vorher, als er soll.
Hab's auch grad mit
\addtocounter{page}{-2}
 
versucht, dann ist der Zähler ja auf jeden Fall eindeutig, und wieder alle Dateien vorher gelöscht (selbst den Papierkorb :) ).
Aber der macht immer noch den gleich Quark. Hat hyperref noch einen eigenen internen Zähler?
Vielen Dank für deine Antworten und deine Mühe sudo!!

sudo
Forum-Guru
Forum-Guru
Beiträge: 459
Registriert: Mi 3. Okt 2012, 11:32

Beitrag von sudo »

Auch wenn du mit der log-Datei nichts anfangen kannst, findest du sie doch, oder? Dann kannst du sie hier einmal posten und ich werfe mal einen Blick drüber.

Wichtig: \listfiles vor \begin{document} oder einfach mein letztes Minimalbeispiel nehmen.

Du kannst ja vorsichtshalber mal ein Update deiner Pakete machen. Wie das geht, weißt du? Wenn nicht musst du mal schreiben, welches System/Distro du benutzt.

Lala
Forum-Anfänger
Forum-Anfänger
Beiträge: 12
Registriert: Do 4. Okt 2012, 00:30

Beitrag von Lala »

Ich benutze texmaker 3.3.3 und miktex...
danke, dass du mal drüberschaust, bin echt gespannt, was du da rauslesen kannst! :)
Dateianhänge
Hauptseminar1.txt
log-Datei
(38.23 KiB) 880-mal heruntergeladen

sudo
Forum-Guru
Forum-Guru
Beiträge: 459
Registriert: Mi 3. Okt 2012, 11:32

Beitrag von sudo »

Also deine Pakete sind aktueller als meine. Daran sollte es also nicht liegen.

Ich sehe aber an deiner Log-Datei, dass du nicht mein minimal-Beispiel kompiliert hast. Das ist erst einmal nicht schlimm.
Allerdings sind dort einige Warnungen. Ich sehe zwar im Moment nicht, ob die etwas mit dem Problem zutun haben könnten, aber du kannst die auf jeden Fall beheben:
1.:
Package hyperref Warning: Token not allowed in a PDF 
string (PDFDocEncoding):
(hyperref)                removing `math shift' on 
input line 171.
Diese Warnung wird durch Mathe-Symbole in den Überschriften verursacht. Du kannst die mit \texorpdfstring{Text in der Überschrift}{Text in dem PDF-Bookmark} beheben.
2.: Es sind 2 Referenzen nicht definiert. Vielleicht hast du dich einfach nur irgendwo vertippt.

Wenn das nicht hilft, erzähl mal, ob das Problem nur die pagebackref oder alle Links betrifft. Also auch wenn du Bilder oder Sections verlinks?

Hast du das minimal-Beispiel kompiliert. Tritt dort derselbe Fehler auf? Ansonsten liegt es vielleicht an einem anderen Paket, dass hyperref den Link verpfuscht.

Wird hyperref als letztes Paket geladen. Wenn andere Pakete später geladen werden, kommt es wohl öfter zu Fehlern.

Edit: Probier mal die option pdfpagelabels bei hyperref.

Welchen Reader benutzt du denn. Daran könnte es womöglich auch noch liegen.

Ein Fehler wie
! pdfTeX warning (ext4): destination with the same identifier
(name{page.1}) has been already used, duplicate ignored
wird allerdings nicht angezeigt. Der soll bei solchen Effekten eigentlich auftreten.

Antworten