Anzeige:
Ergebnis 1 bis 14 von 14

Thema: Hyperref Links falsch

  1. #1
    Registrierter Benutzer
    Registriert seit
    05.09.2013
    Beiträge
    141

    Hyperref Links falsch

    Hallo,

    ich habe heute das paket hyperref hinzugefügt.

    Funktioniert soweit so gut.

    Leider werden einige Tabellen und Bilder falsch verlinkt.

    Während die Verlinkung der Tabellen 1-3 richtig ist, werden alle folgenden Tabellen auf Tabelle 1,2 oder 3 verlinkt.

    Bei den Abbildungen ist dies ähnlich.

    Ich arbeite immer mit copy and paste aber in den Tabellen oder Abb. ist nichts was auf die andere Abb hinweisen könnte. Also weder das Label noch die caption.

    Minimalbeispiel:

    Code:
    %Schriftgröße, Layout, Papierformat, Art des Dokumentes
    \documentclass[12pt,oneside,a4paper,bibliography=totoc,liststotoc]{scrartcl}
    
    %Einstellungen der Seitenränder
    \usepackage[left=2.5cm,right=2.5cm,top=2.5cm,bottom=2cm,footskip=1cm]{geometry}
    
    %neue Rechtschreibung
    
    \usepackage[ngerman]{babel}% deutsche Trennregeln
    \usepackage[T1]{fontenc}% wichtig für Trennung von Wörtern mit Umlauten
    \usepackage{microtype}% verbesserter Randausgleich
    
    
    
    %für XeLatex wichtig:
    \usepackage[cm-default]{fontspec} % Die Option cm-default beim fontspec-Paket ist hierbei nötig, um die korrekte Darstellung mathematischer Zeichen zu gewährleisten
    \usepackage{xltxtra}	%Das Paket xltxtra lädt eine Reihe von Paketen, unter anderem fontspec, xunicode, ifxetex und graphicx. Falls man also diese Pakete ohne weitere Optionen laden möchte, reicht es aus, nur xltxtra zu laden.
    \usepackage{xunicode} %Das Paket xunicode wird zur Zeichensatzdeklaration anstelle des Paketes inputenc verwendet.
    
    %Schriftart auswählen:
    \setmainfont{RubFlama}
    \setsansfont{RubFlama}
    
    %\usepackage{rubfonts2009} (klappt zur Zeit noch nicht)
    
    %\usepackage[scaled=0.9]{helvet} %helvetica ist der Ursprung aus dem Arial abgekupfert wurde
    %\renewcommand{\familydefault}{\sfdefault} %setzt das gesamte Textdokument auf die gewählte Standartschriftart (nicht mit fontspec!)
    
    
    %eingebundene Packages 
    \usepackage{amsmath}
    \usepackage[table]{xcolor}
    \usepackage{graphicx}
    \usepackage{longtable}  %ermöglicht Tabellen über mehrere Seiten
    \usepackage[absolute]{textpos}
    \usepackage{hyphenat}
    \usepackage{multirow}
    \usepackage{array}
    \usepackage{url}
    \usepackage{chngcntr}
    \usepackage{tabularx}
    \counterwithin{figure}{section} %nummeriert Bilder nach ihrern Kapiteln
    \counterwithin{table}{section}
    \addtokomafont{caption}{\small} 
    \usepackage{pdfpages} %bindet PDFdokumente ein
    
    
    %Schriftfarbe:
    %\usepackage{color}
    %\definecolor{RUBblau}{HTML}{003561}
    %\definecolor{RUBgreen}{HTML}{8DAE10} 
    \definecolor{Gray}{gray}{0.7}
    
    %Seitenzahl
    
    \usepackage[automark]{scrpage2} 
    \pagestyle{scrheadings} 
    \chead{} 
    \ohead{} 
    \cfoot[]{} 
    \ifoot{} 
    \ofoot[\pagemark]{\pagemark} % überall Seitenzahl aussen. 
    
    
    \renewcommand{\baselinestretch}{1.15} % Zeilenabstand 1.15fach
    \setlength{\parindent}{0pt} %kein Einrücken 
    
    
    
    %Zwischenraum horizontal \quad 1 cmm Zwischenraum \qquad 2 em Zwischenraum
    %Zwischenraum vertikal \vspace*{n mm}
    
    \usepackage[linkcolor=black,citecolor=black,urlcolor=black]{hyperref} %Erzeugt ein Lesenzeichen bzw. eine Dokumentenführung, Ermöglicht das definieren von Dokumenteneigenschaften
    
    \hypersetup{%
    colorlinks=true,
    pdftitle = {geheim},
    pdfsubject = {geheim},
    pdfauthor = {geheim},
    pdfkeywords = {geheim}}
    
    \begin{document}
    
    \includepdf[pages=1]{PDF/Deckblatt.pdf}
    \includepdf[pages=1]{PDF/Sperrvermerk.pdf}
    
    \pagenumbering{Roman} %Seitennummerierung ab hier in römischen Ziffern
    
    \setcounter{page}{1}
    {\Large [Aufgabenstellung]}\\
    
    \addcontentsline{toc}{section}{Aufgabenstellung}
    
    
    \pdfbookmark[1]{\contentsname}{toc}
    \tableofcontents %erstellt ein Inhaltsverzeichnis an dieser Stelle
    \newpage
    \listoffigures   %erstellt ein Abbildungsverzeichns an dieser Stelle
    \newpage
    \listoftables
    \newpage
    \input{Verzeichnis}
    \newpage
    
    
    \setcounter{page}{1}
    \pagenumbering{arabic} %%Seitennummerierung ab hier in arabischen Ziffern
    
    
    \newpage
    \include{Einleitung2}
    \include{Stand_der_Technik}
    
    Beispieltabelle:
    
    \begin{table}[h]
        \begin{tabularx}{\textwidth}{|X|X|X|X|X|}
        \hline \rowcolor{Gray}
        \textbf{Tfwefwf} & \textbf{efef} & \textbf{efefZ} & \textbf{ef} & \textbf{TWAIT}\\ \hline 
         0.1 [s] & 0.1 [s] & 0.5 [s] & 1.0 [s] & 1.0 [s]\\ \hline   
        \end{tabularx}
        \caption{ABX}
        \label{tab Entprellzeiten}
    \end{table}
    
    Beispielbild
    
    \begin{minipage}{\linewidth}
      \begin{center}
    \includegraphics[width=\textwidth]{Bilder/Entprellzeiten3}
    \captionof{figure}[Position und Häufigkeit der Entprellzeiten der EZLR und TA ]{Position und Häufigkeit der Entprellzeiten der EZLR und TA  }
    \label{Abb Entprellzeiten}
      \end{center}
    \end{minipage}\\ 
    
    \include{Ausgangslage_der_Untersuchungen}
    \include{Optimierungsmoeglichkeiten}
    \section{Fazit und Ausblick}
    \section{Danksagung}
    \section{Anhang}
    
    
    \newpage
    
    %\thispagestyle{plain}
    
    
    
    \newpage
    \begin{thebibliography}{BREITE}
    \bibitem[0]{eigen} eigene/selbsterstellte Abbildungen
    \end{thebibliography}
    
    \end{document}

  2. #2
    Registrierter Benutzer
    Registriert seit
    24.04.2009
    Beiträge
    223
    Ich sehe nur eine Tabelle in deinem Beispiel, das alles andere als minimal ist.

  3. #3
    Registrierter Benutzer
    Registriert seit
    06.08.2008
    Beiträge
    1.015
    Ich tippe mal auf doppelte Label.

    Ansonsten versuche deinen Beispielcode noch weiter zu verschlanken. Alle includes und und inputs rausnehmen, etc. Abbildungen kannst du zum Beispiel auch durch
    Code:
    \rule{‹width›}{‹height›}
    ersetzen.

    Ansonsten ist mir noch aufgefallen, dass du fontenc einbindest. Das sollte man bei der Verwendung von Fontspec mit xelatex nicht machen.

  4. #4
    Registrierter Benutzer
    Registriert seit
    19.05.2009
    Beiträge
    4.045
    Zitat Zitat von hakaze Beitrag anzeigen
    Ansonsten ist mir noch aufgefallen, dass du fontenc einbindest. Das sollte man bei der Verwendung von Fontspec mit xelatex nicht machen.
    Das ist falsch. Man kann ohne Problem fontenc laden (und fontspec tut es sowieso). Man muss nur auf die Reihenfolge achten, damit beim Beginn des Dokuments die korrekte Kodierung aktiv ist. Hier ist [T1]-fontenc wahrscheinlich unnötig, schadet aber überhaupt nicht.

  5. #5
    Registrierter Benutzer
    Registriert seit
    05.09.2013
    Beiträge
    141
    Zitat Zitat von hakaze Beitrag anzeigen
    Ich tippe mal auf doppelte Label.

    Ansonsten versuche deinen Beispielcode noch weiter zu verschlanken. Alle includes und und inputs rausnehmen, etc. Abbildungen kannst du zum Beispiel auch durch
    Code:
    \rule{‹width›}{‹height›}
    ersetzen.

    Ansonsten ist mir noch aufgefallen, dass du fontenc einbindest. Das sollte man bei der Verwendung von Fontspec mit xelatex nicht machen.
    Es ist kein einziges Label doppelt. Auch keine Caption. Das steht übrigens deutlich auch im Startposting.

    Soll ich die includes rausnehmen und das gleiche nochmal posten? ist doch auch quatsch oder?

    Ich weiß wirklich nicht woran das liegen kann. Wenn das so bleibt kann ich hyperref vergessen. Lieber gar nicht als falsch.

    Das wäre sehr schade.

  6. #6
    Registrierter Benutzer
    Registriert seit
    05.09.2013
    Beiträge
    141
    Mir ist noch was aufgefallen:

    Die Bilder und Tabellen werden nicht wahllos falsch verlinkt sondern mtit einem Schema.

    Abb. 4.2 springt bpsw zu 3.2, Abb 3.8 zu 2.8.

    Es scheint als sei der Kapitelbezug irgendwie falsch. Aber nur zum Hauptkapitel. Der hintere indizie passt.


    Meine Kapitel aufteilung ist immergleich:


    Code:
    \section {A} \label {A}
    \subsection {A1} \label {subsec: A1}
    \subsubsection {A2} \label {subsec: A2}
    Die Verlinkung aus dem Inhaltsverzeichnis zu den Kapiteln und Unterkapiteln funktioniert fehlerfrei

  7. #7
    Registrierter Benutzer
    Registriert seit
    24.04.2009
    Beiträge
    223
    Mach mal bitte ein Minimalbeispiel, das den Fehler reproduzieren kann. Die Betonung liegt auf minimal.

  8. #8
    Registrierter Benutzer
    Registriert seit
    19.05.2009
    Beiträge
    4.045
    Zitat Zitat von Magger Beitrag anzeigen
    Die Betonung liegt auf minimal.
    Bei mir würde die Betonung auf "Beispiel" liegen. D.h. vollständig, auf fremden Computern lauffähig und das Problem demonstrierend. "Minimal" ist höflicher Bonus.

  9. #9
    Registrierter Benutzer Avatar von sommerfee
    Registriert seit
    02.07.2006
    Beiträge
    1.603
    Zitat Zitat von Jürgen Beitrag anzeigen
    Mir ist noch was aufgefallen:

    Die Bilder und Tabellen werden nicht wahllos falsch verlinkt sondern mtit einem Schema.

    Abb. 4.2 springt bpsw zu 3.2, Abb 3.8 zu 2.8.

    Es scheint als sei der Kapitelbezug irgendwie falsch. Aber nur zum Hauptkapitel. Der hintere indizie passt.
    Verschiebe die beiden Zeilen
    Code:
    \counterwithin{figure}{section} %nummeriert Bilder nach ihrern Kapiteln
    \counterwithin{table}{section}
    nach \usepackage[...]{hyperref}

    Hintergrund: Hyperref patcht \counterwithin, d.h. die Reihenfolge muß sein: chngcntr-Paket laden (damit \counterwithin bereitgestellt wird), hyperref-Paket laden (welches \counterwithin modifiziert), erst dann (das modifizierte) \counterwithin anwenden.

  10. #10
    Registrierter Benutzer
    Registriert seit
    05.09.2013
    Beiträge
    141
    Top!

    Klappt Alles einbahnfrei!


    Was ich bisher verschwiegen habe, da das andere Problem "schlimmer" war und dieses im prinzip nur ein minimaler schönheitsfehler ist:

    Wenn ich auf mein erstes kapitel klicke , welches im PDF-dokument die 3 seite ist, wird auf die erste seite verlinkt. Diese und die zweite sind nur eingebundene PDFseiten ( Deckblätter).

    Hat jemand da eine Lösung parat?


    Allet andere fluppt besstens! Danke vielmals

  11. #11
    Registrierter Benutzer
    Registriert seit
    05.09.2013
    Beiträge
    141
    Hallo,


    das Problem mit der verlinkung auf eine eingebundene PDF seite besteht weiterhin.

    Heißt ich will bsw. auf die Aufgabenstellung verlinken. Diese ist eine eingebundene PDF-Seite.
    Ich habe diese mit

    Code:
    \setcounter{page}{1}
    \includepdf[pages=1]{PDF/Aufgabenstellung.pdf}
    \phantomsection
    \addcontentsline{toc}{Aufgabenstellung}
    in das Inhaltsverzeichnis eingebunden.

    Dort erscheint sie auch. Die verlinkung geht aber auf seite 2 anstatt auf seite 1.


    Jemand ne idee?

  12. #12
    Registrierter Benutzer
    Registriert seit
    06.08.2008
    Beiträge
    1.015
    Du setzt in deinem Beispiel den Anker mit phantomsection erst nach der eingefügten Seite (ergo Seite 2)… also musst du die Reihenfolge ändern:
    Code:
    \phantomsection
    \addcontentsline{toc}{Aufgabenstellung}
    \includepdf[pages=1]{PDF/Aufgabenstellung.pdf}

  13. #13
    Registrierter Benutzer
    Registriert seit
    05.09.2013
    Beiträge
    141
    Hat geklappt.


    Jetzt wird allerdings auf der Seite, wo das PDF eingebunden keine Seitenanzahl angzeigt. Wo drei stehen müsste ist also nichts. Im inhaltsverzeichnis ist auch einfach eine leere stelle anstatt einer Zahl.


    der betreffende Code ist:

    Code:
    \addtocounter{page}{-1}
    \phantomsection
    \addcontentsline{toc}{Aufgabenstellung}
    \includepdf[pages=1]{PDF/Aufgabenstellung.pdf}
    
    \setcounter{page}{2}
    Die Seite, die Seite 2 sein soll, ist es auch. Nur eben die darüber ist leer anstelle von eins.

    Beim ersten kompilieren hat es auch noch gepasst, beim zweiten mal nicht. Latex braucht ja irgendiw mehrere anläufe für solche counter
    Geändert von Jürgen (28-03-2014 um 10:24 Uhr)

  14. #14
    Registrierter Benutzer
    Registriert seit
    09.12.2005
    Beiträge
    1.326
    Zitat Zitat von sommerfee Beitrag anzeigen
    Hyperref patcht \counterwithin, d.h. die Reihenfolge muß sein: chngcntr-Paket laden (damit \counterwithin bereitgestellt wird), hyperref-Paket laden (welches \counterwithin modifiziert), erst dann (das modifizierte) \counterwithin anwenden.
    Nicht ganz. hyperref patcht die LaTeX-Kernanweisung \@addtoreset nicht \counterwithin. \counterwithin wiederum verwendet \@addtoreset. Daher ist es zwar richtig, dass \counterwithin nach dem Laden von hyperref aufgerufen werden muss. Ob man erst chngcntr oder erst hyperref lädt sollte aber egal sein.

    Natürlich gilt aber die Regel: hyperref von Ausnahmen abgesehen möglichst als letztes Paket laden. Damit behältst Du also irgendwie doch wieder recht.

Lesezeichen

Berechtigungen

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