Fancy Ref ohne "auf der nächsten Seite" etc.

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smilies
:D :) :( :o :shock: :? 8) :lol: :-x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Wenn du eine Datei oder mehrere Dateien anhängen möchtest, gib die Details unten ein.

Ansicht erweitern Die letzten Beiträge des Themas: Fancy Ref ohne "auf der nächsten Seite" etc.

von KOMA » So 4. Jul 2010, 10:00

Wenn ich richtig verstehe, was Du willst, dann geht das mit Hilfe des Pakets zref:
\documentclass{article}
\usepackage[abspage,user]{zref}
\usepackage[ngerman]{babel}
\usepackage{blindtext}
\newcounter{samepage}
\makeatletter
% Note: Alle hier verwendeten zref-Befehle und Module sind in der
%       zref-Anleitung dokumentiert! Es werden die Module abspage
%       und user benötigt, die oben per Option geladen werden.
\newcommand*{\ifsamepage}[1]{%
  \stepcounter{samepage}\zlabel{samepage.\arabic{samepage}}%
  \zref@refused{#1}% zref mitteilen, dass das Label benutzt wurde
  \zref@refused{samepage.\arabic{samepage}}% dito
  \edef\samepageA{\zref@extract{#1}{abspage}}%
  \edef\samepageB{\zref@extract{samepage.\arabic{samepage}}{abspage}}%
  \ifnum \zref@extract{#1}{abspage}
         = \zref@extract{samepage.\arabic{samepage}}{abspage}
    \expandafter\@firstoftwo
  \else
    \expandafter\@secondoftwo
  \fi
}
\makeatother
\newcommand*{\xpageref}[2][\ignorespaces]{%
  \ifsamepage{#2}{#1}{Seite~\zpageref{#2}}%
}

\begin{document}
Hier ein Label\zlabel{LabelA}.
Siehe auch \xpageref[auf dieser Seite]{LabelA} und \xpageref{LabelB}.

Labels auf anderen Seiten: \xpageref{LabelA} \xpageref{LabelB}.

\blinddocument\zlabel{LabelB}.
\end{document}
Es sei darauf hingewiesen, dass bei dieser Lösung für jeden Aufruf von \xpageref ein Label angelegt wird. Außerdem werden ggf. mehrere LaTeX-Läufe benötigt, bis sich das ganze stabilisiert, weil ja jeder Aufruf von \xpageref den Text und damit den Umbruch und damit ggf. das Ergebnis anderer \xpageref-Anweisungen verändern kann. Das kann im Extremfall auch zu einer nie terminierenden Suche werden.

Fancy Ref ohne "auf der nächsten Seite" etc.

von ierdsebulli » Sa 3. Jul 2010, 15:04

Hallo,

ich schreibe zur Zeit meine Bachelorarbeit in Latex, und verwende zum Referenzieren das Paket fancyref. Dabei stört mich allerdings die Verwendung von "auf der nächsten Seite", bzw. "auf der vorherigen Seite".

Kurz: die Referenzierung soll die Seiten immer mit der Seitenzahl angeben, außer wenn das referenzierte Objekt auf der aktuellen Seite ist. Dann soll die Seitenangabe gänzlich entfallen.

Kann ich das irgendwie mit fancyref hinkriegen, oder muss ich ein anderes Paket verwenden?

Gruß,

ierdsebulli

Nach oben