goLaTeX - Mein LaTeX-Forum

Mein LaTeX-Forum


Login  | Registrieren
Forum
      Option
[Erweitert]
  • Diese Seite weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Dynamische Verweise in der Kopfzeile

 

Eddie144
Forum-Anfänger
Forum-Anfänger

Beiträge: 35
Anmeldedatum: 18.06.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.02.2017, 20:19     Titel: Dynamische Verweise in der Kopfzeile
  Antworten mit Zitat      
Hallo zusammen,

ich habe folgendes vor: Ich habe mehrere Labels in einem Dokument, im MB lb1 bis lb5. Ich habe in der Kopfzeile vier Pfeile, die ein bequemes Springen zum ersten, vorigen, nächsten und letzten Label ermöglichen sollen. Der Sprung zum ersten und zum letzten Label ist an sich unproblematisch, ich hab das mit Hyperlink im MB gelöst. Hier habe ich schon das Problem, dass der Sprung zu lb5 nicht funktioniert; er springt immer auf die erste Seite.

Das vorige und nächste Label ändern sich logischerweise dynamisch. Ich habe mir überlegt, zwei variablen zu bauen (z.b. "prevref" und "nextref"), die bei jeder neuen label-Definition geändert werden. Die Links in der Kopfzeile wären dementsprechend à la
Code • Öffne in Overleaf

\hyperlink{\prevref}{$\rcurvearrowleft$}
\hyperlink{\nextref}{$\lcurvearrowright$}
 


Ich bin nicht so vertraut mit der Definition von eigenen Variablen, deswegen bin ich etwas ratlos, wie man das umsetzen könnte.

Code • Öffne in Overleaf
\documentclass{article}

\usepackage[utf8]{inputenc}
\usepackage[bookmarks=true,urlbordercolor={1 1 1},linkbordercolor={1 1 1},citebordercolor={1 1 1},colorlinks=true,citecolor=blue,urlcolor=red,linkcolor=blue]{hyperref}
\usepackage{blindtext}
\usepackage{fancyhdr}
\usepackage{MnSymbol}
\pagestyle{fancy}


\fancyhead[RE,RO]{\hyperlink{lb1}{$\Leftarrow$} $\rcurvearrowleft$ $\lcurvearrowright$  \hyperlink{lb5}{$\Rightarrow$}}


\begin{document}
%    
\blindtext
One \label{lb1}

\blindtext
Two \label{lb2}

\Blindtext
Three \label{lb3}
\Blindtext
Four \label{lb4}

\blindtext
Five \label{lb5}



   
\end{document}
 


Vielen Dank schonmal!
Private Nachricht senden Benutzer-Profile anzeigen

u_fischer
Forum-Meister
Forum-Meister

Beiträge: 3393
Anmeldedatum: 22.11.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.02.2017, 21:22     Titel:
  Antworten mit Zitat      
\label alleine setzt keine Anker, du musst \phantomsection\label{lb5} benutzen. Verweise auf \label macht man mit \hyperref[lb1]{$\Leftarrow$} nicht mit hyperlink (eckige Klammern beachten).
_________________

Ulrike Fischer
www.troubleshooting-tex.de
Private Nachricht senden Benutzer-Profile anzeigen

Eddie144
Forum-Anfänger
Forum-Anfänger

Beiträge: 35
Anmeldedatum: 18.06.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.02.2017, 22:18     Titel:
  Antworten mit Zitat      
Vielen Dank, das löst schonmal das erste Problem. Ich habe jetzt folgendes gebastelt, um das vorige und das nächste Label zu verlinken. Das funktioniert so weit auch gut:

Code • Öffne in Overleaf

\documentclass[12pt]{article}

\usepackage[utf8]{inputenc}
\usepackage[bookmarks=true,urlbordercolor={1 1 1},linkbordercolor={1 1 1},citebordercolor={1 1 1},colorlinks=true,citecolor=blue,urlcolor=red,linkcolor=black]{hyperref}
\usepackage{blindtext}
\usepackage{fancyhdr}
\usepackage{MnSymbol}

\pagestyle{fancy}

\newcommand{\prevref}{lb1}
\newcommand{\nextref}{lb2}

\fancyhead[RE,RO]{\large \hyperref[lb1]{$\Leftarrow$} \hyperref[\prevref]{$\rcurvearrowleft$} \hyperref[\nextref]{$\lcurvearrowright$}  \hyperref[lb5]{$\Rightarrow$}}


\begin{document}
%    
%\Marge
\blindtext

\textbf{One} \phantomsection\label{lb1}

\blindtext

\textbf{Two} \phantomsection\label{lb2}\renewcommand{\nextref}{lb3}

\Blindtext

\textbf{Three} \phantomsection\label{lb3}\renewcommand{\prevref}{lb2}\renewcommand{\nextref}{lb4}

\Blindtext

\textbf{Four} \phantomsection\label{lb4}\renewcommand{\prevref}{lb3}\renewcommand{\nextref}{lb5}

\blindtext

\textbf{Five} \phantomsection\label{lb5}
   
\end{document}
 


Am liebsten würde ich jetzt aber nicht direkt zum Label springen, sondern zum obersten Punkt der Seite, auf dem sich das Label befindet. Hierzu habe ich hier eine Lösung gefunden und folgendermaßen eingebaut:

Code • Öffne in Overleaf

\documentclass[12pt]{article}

\usepackage[utf8]{inputenc}
\usepackage[bookmarks=true,urlbordercolor={1 1 1},linkbordercolor={1 1 1},citebordercolor={1 1 1},colorlinks=true,citecolor=blue,urlcolor=red,linkcolor=black]{hyperref}
\usepackage{blindtext}
\usepackage{fancyhdr}
\usepackage{MnSymbol}
\usepackage{marvosym}
\usepackage{refcount}
\newcommand{\pagereftop}[1]{\hyperlink{page.\getpagerefnumber{#1}}{\pageref*{#1}}}


\pagestyle{fancy}

\newcommand{\prevref}{lb1}
\newcommand{\nextref}{lb2}

\fancyhead[RE,RO]{\large \hyperref[lb1]{$\Leftarrow$} \hyperref[\pagereftop{\prevref}]{$\rcurvearrowleft$} \hyperref[\pagereftop{\nextref}]{$\lcurvearrowright$}  \hyperref[lb5]{$\Rightarrow$}}


\begin{document}
%    
%\Marge
\blindtext

\textbf{One} \phantomsection\label{lb1}

\blindtext

\textbf{Two} \phantomsection\label{lb2}\renewcommand{\nextref}{lb3}

\Blindtext

\textbf{Three} \phantomsection\label{lb3}\renewcommand{\prevref}{lb2}\renewcommand{\nextref}{lb4}

\Blindtext

\textbf{Four} \phantomsection\label{lb4}\renewcommand{\prevref}{lb3}\renewcommand{\nextref}{lb5}

\blindtext

\textbf{Five} \phantomsection\label{lb5}



   
\end{document}
 


Leider funktioniert das nicht. Hat jemand noch eine Idee?
Private Nachricht senden Benutzer-Profile anzeigen

Neues Thema eröffnen Neue Antwort erstellen



Options and Permissions
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen
.

goLaTeX ist Teil der goForen
goForen.de goMATLAB.de goLaTeX.de goPCB.de


  Impressum | FAQ | goLaTeX RSS Button RSS-Feed

Copyright © 2008 - 2017 goLaTeX.de