Seite 1 von 1

\pageref{xyz} nur anzeigen, wenn Bild auf anderer Seite?

Verfasst: Sa 20. Feb 2010, 12:41
von eFCiKay
Hallo,

ich würde gerne einen Verweis auf eine Abbildung machen, die so aussehen soll:
Siehe dazu auch Abbildung \ref{xyz} auf Seite \pageref{xyz}.
Jedoch wäre es schön, wenn der Zusatz "auf Seite X" nur erscheinen würde, wenn die Abbildung auf einer anderen Seite als der Verweis selbst platziert ist.

Das kann man doch bestimmt mittels
\if
...
\else
...
\fi
einfügen, oder?

Ich hätte mir das so vorgestellt:
\ifnum\pagemark=\pageref{xyz}
Siehe dazu auch Abbildung \ref{xyz}.
\else
Siehe dazu auch Abbildung \ref{xyz} auf Seite \pageref{xyz}.
\fi
Aber das bringt den Fehler "Missing Number, treated as zero"

Muss ich das doch anders machen?

Verfasst: Sa 20. Feb 2010, 13:20
von cliffhanger
Hi eFCiKay,

versuchs doch mal mit dem Paket fancyref, das macht genau das was du willst. Wenn der Verweis auf die vorhergehende oder nächste Seite verweist, schreibt es sogar statt der Seitenzahl "auf der vorhergehenden/nächsten Seite".

Gruß
Benedikt

Verfasst: Sa 20. Feb 2010, 13:22
von eFCiKay
Ich habe mir dank Google nun doch schon selbst helfen können, hier noch die Lösung für andere vielleicht:
\usepackage{ifthen} 

\ifthenelse    {\equal{\pageref{xyz}}{\thepage}}    {Siehe dazu auch Abbildung \ref{xyz}.}    {Siehe dazu auch Abbildung \ref{xyz} auf Seite \pageref{xyz}.}

Verfasst: Sa 20. Feb 2010, 13:24
von eFCiKay
oh, da hat ja nun auch schon jemand geantwortet :)
cliffhanger hat geschrieben:Hi eFCiKay,

versuchs doch mal mit dem Paket fancyref, das macht genau das was du willst. Wenn der Verweis auf die vorhergehende oder nächste Seite verweist, schreibt es sogar statt der Seitenzahl "auf der vorhergehenden/nächsten Seite".

Gruß
Benedikt
Das werde ich mir mal anschauen, klingt interessant. Vielen Dank.
Wobei ich mit meiner jetzigen Lösung eigentlich auch schon zufrieden bin ;)

varioref

Verfasst: Sa 20. Feb 2010, 15:28
von skater
\documentclass{scrreprt}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage{lmodern}
\usepackage[german]{varioref}
\begin{document}
\chapter{Eins}
\label{eins}
Siehe dazu auch Kapitel~\vref{zwei}. Oder Kapitel~\vref{drei}.
\chapter{Zwei}
\label{zwei}
Siehe dazu auch Kapitel~\vref{eins}. Oder Kapitel~\vref{drei}.
\chapter{Drei}
\label{drei}
Siehe dazu auch Kapitel~\vref{zwei}. Oder Kapitel~\vref{eins}.
\end{document}
Weiteres dazu in der Paket-Dokumentation.

Verfasst: Mo 8. Aug 2011, 10:50
von Hagen
Hallöchen!
eFCiKay hat geschrieben:
\usepackage{ifthen} 

\ifthenelse    {\equal{\pageref{xyz}}{\thepage}}    {Siehe dazu auch Abbildung \ref{xyz}.}    {Siehe dazu auch Abbildung \ref{xyz} auf Seite \pageref{xyz}.}
Diesen Code habe ich kopier und ewas verwurstet:
\newcommand{\reffig}[1]{\ifthenelse{\equal{\pageref{#1}}{\thepage}}{\figurename\ \ref{#1}}{\figurename\ \ref{#1} auf Seite \pageref{#1}}}
Leider funktioniert das nicht, ich bekomme (entsprechend meiner Dokumentlänge) 100 Fehlermeldungen:
Illegal parameter number in definition of \reserved@a
Kann mir da jemand weiterhelfen? (ifthen habe ich eingebunden)

Gruß
Hagen