Variable Definition von newcommand zur Tabellenreferenz

Redefinition von Makros, Definition eigener Befehle sowie neuer Umgebungen


AndyBrown
Forum-Newbie
Forum-Newbie
Beiträge: 3
Registriert: Fr 9. Aug 2013, 13:22

Variable Definition von newcommand zur Tabellenreferenz

Beitrag von AndyBrown »

Hi zusammen,

ich möchte mir ein newcommand zur Referenzierung definieren, welches auf eine Tabelle verweist UND die Seite nennt, auf der diese Tabelle steht.

An sich einfach:
\newcommand{\sieheTab}[1]{siehe Tab. \ref{#1}, S. \pageref{#1}}
Das sieht allerdings besch****n aus, wenn die Tabelle auf genau DER Seite steht, von der aus \sieheTab aufgerufen wird, oder auf der nächsten.

Darum möchte ich ein Kommando, welches

1. die Seitenangabe weglässt, wenn Kommandoaufruf und Tabelle auf der selben Seite sind.

2. sagt "siehe nächste Seite", wenn die Tabelle auf der nachfolgenden Seite steht.

3. ansonsten eben die Seite angibt.

Ein Minimalbeispiel
\documentclass[openany]{book}

\newcommand{\sieheTab}[1]{siehe Tab. \ref{#1}, S. \pageref{#1}}


\begin{document}
\chapter{Blablabla}
Es gibt eine tolle Tabelle \sieheTab{tolletab} [HIER SOLLTE STEHEN: SIEHE TAB. 3, S.3]
\chapter{Blebleble}
Es gibt eine tolle Tabelle \sieheTab{tolletab} [HIER SOLLTE STEHEN: SIEHE TAB. 3, naechste Seite]
\chapter{Blobloblo}
Es gibt eine tolle Tabelle \sieheTab{tolletab} [HIER SOLLTE STEHEN: SIEHE TAB. 3]
\begin{table}
\centering
\begin{tabular}{ l c r }
  1 & 2 & 3 \\
  4 & 5 & 6 \\
  7 & 8 & 9 \\
\end{tabular}
\label{tolletab}
\caption{Das ist eine tolle Tabelle}
\end{table}
\end{document}

Vermutlich ziemlich einfach. Ich komme aber nicht drauf. Hat da jemand ne Idee?

LuPi
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 96
Registriert: Do 18. Feb 2010, 08:27
Wohnort: Bayern

Beitrag von LuPi »

Das gibt es schon, schau mal in das Paket fancyref.

http://www.ctan.org/tex-archive/macros/ ... /fancyref/

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

Beitrag von sudo »

Er gibt auch noch das varioref-Paket.
Ein vollständiges Minimalbeispiel (VM) zu erzeugen, ist gar nicht schwer und hilft ganz oft, Fehler selber zu finden. Ohne bekommt man selten gute Antworten. Anleitungen findest du z.B. im golatex Wiki auf TeXWelt oder minimalbeipiel.de
Außerdem hilft das Lesen dieser Seite, Fragen richtig zu stellen.

Antworten