PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Verweise auf Tabellen



Fagus sylvatica
27-03-2012, 09:40
Hallihallo,

ich habe 2 Probleme, die beide meine Tabellen betreffen:

1)
Ich möchte im Text auf die Tabellen verweisen und tue dies mit: \ref{tabelle1}.

Die Tabelle sieht folgendermaßen aus:

\begin{table}[!h]
\begin{flushleft}
\caption{Mean temperature and mean relative humidity during the days of labeling}
\label{tabelle1}
\end{flushleft}
\begin{tabular}{l l l}
\toprule
...
\midrule
...
\multirow
\bottomrule
\end{tabular}
\end{table}

Das funktioniert grundsätzlich, allerdings erscheint für den Verweis lediglich die Nummer der Tabelle (in diesem Fall "1"), ich möchte aber das dort "Table 1" erscheint. Weiß jemand, ob und wie das funktionieren kann?

2)
Dann sind meine Tabellen verlinkt. Für die Verlinkungen habe ich deklariert:

\usepackage[bookmarks,
bookmarksnumbered,
linktocpage,
colorlinks=true,
linkcolor=black,
citecolor=blue,
]{hyperref}

Ich möchte eigentlich, dass die Verweise auf die Tabellen im Text blau erscheinen. Die Verweise von Inhalts- und Tabellenverzeichnis auf die entprechende Seitenzahl sollen allerdings schwarz sein. Meines Wissens nach, ist für beides aber "linkcolor" zuständig, sodass ich entweder alles schwarz oder alles blau bekomme. Weiß jemand eine Lösung für das Problem, vielleicht einen Befehl, der sich nur auf die Verweise auf die Tabellen bezieht und diese dann blau färbt, den Rest aber schwarz lässt?

Vielen Dank für eure Hilfe ;-)

Xenara
27-03-2012, 09:51
Zu 1: Das geht ganz einfach mit \autoref aus dem hyperref-Paket.

Zu 2: Da fällt mir keine fertige Lösung ein. Eventuell könnte man ziemlich böse versuchen, den \ref/\autoref-Befehl direkt einzufärben. Oder, wenn man linkcolor innerhalb des Dokuments ändern kann, mit ifthenelse eine Abfrage machen, ob im Verweis "tab:" vorkommt und entsprechend automatisch ändern lassen (dann musst du natürlich bei den labels auf Tabellen "tab:xxx" verwenden.

Fagus sylvatica
27-03-2012, 10:38
Ja super, das klappt!

Falls jemand noch eine Idee für das 2. Problem hat, wäre ich sehr dankbar ;-)

Xenara
27-03-2012, 10:53
Mach mal ein Minimalbeispiel, das macht das Ausprobieren einfacher. Vielleicht kommt ich heute noch dazu, dann probier ich das mal mit ifthenelse.

cgnieder
27-03-2012, 12:14
Vermutlich ist es das einfachste, sich ein \tableref o.ä. zu definieren:


\documentclass{scrartcl}
\usepackage{booktabs}
\usepackage[ngerman]{babel}
\usepackage{lipsum} % für Dummy-Text

\usepackage{hyperref}
\hypersetup{
bookmarksnumbered,
linktocpage,
colorlinks = true,
linkcolor = black,
citecolor = blue
}

\newcommand*\tableref[1]{{\hypersetup{linkcolor=blue}\autoref{#1}}}
\begin{document}
\listoftables

\section{Test}
\lipsum[1]

\begin{table}[h]
\centering
\begin{tabular}{lll}
\toprule
A & B & C \\
\midrule
a & b & c \\
\bottomrule
\end{tabular}
\caption{Die erste Tabelle}\label{tabelle1}
\end{table}

\lipsum[2] \tableref{tabelle1}

\end{document}

Gruß

Fagus sylvatica
27-03-2012, 13:58
Hallo Clemens,

danke für die Hilfe, das funktioniert ganz wunderbar! Ich selbst wäre wohl eher nie darauf gekommen...;-)

sommerfee
28-03-2012, 08:47
Noch eine Anmerkung:

Die flushleft-Umgebung im ersten Beitrag ist überflüssig, da sich \caption sowieso so formatiert, wie es möchte bzw. eingestellt ist. Und sie ist sogar schädlich, weil sie zusätzlichen, ungewollten, vertikalen Zwischenraum einfügt.