PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Mit ifthen autoref verändern



TBW
15-12-2008, 18:34
Hallo zusammen,
ich möchte mit ifthen die Ausgabe von autoref verändern, z.B.:

\newcommand{\autoref}[1]
{
\ifthenelse{\equal{#1}{table}}{text1}{}
\ifthenelse{\equal{#1}{figure}}{text2}{}
}

#1 sollte ein Label z.B fig:bild1 sein.

Ist sowas möglich? und wenn wie ;) Ich will z.B. bei Bildern immer in Klammern die Seitenzahl hinzufügen ohne immer einen anderen Befehl für das Referenzieren zu benutzen.

Vielen Dank...

mechanicus
15-12-2008, 20:06
Hallo,

autoref gibt es doch schon:

\documentclass[11pt,a4paper,oneside]{scrreprt}
\usepackage[ngerman]{babel}
\usepackage[utf8x]{inputenc}
\usepackage[demo]{graphicx}
\usepackage{hyperref}
\usepackage{blindtext}
\begin{document}
\chapter{foo}
\blindtext

\begin{table}[ht]
\centering
\captionabove{Testtabelle}\label{tab}
\begin{tabular}{|c|c|c|}\hline
×1 & 1 & 1\\\hline
\end{tabular}
\end{table}

\blindtext

\begin{figure}[ht]
\centering
\includegraphics[width=4cm]{duck}
\caption{Bild}\label{bild}
\end{figure}

Hier die Referenzen \autoref{bild} und \autoref{tab}

\end{document}

Gruß
Marco

TBW
15-12-2008, 21:20
Erstmal danke für die Antwort. Aber das mit dem "normalen" autoref ist mir klar. Vielleicht habe ich es etwas missverständlich ausgedrückt ich möchte autoref anpassen sodass es sich nicht wie folgt verhält:

table: Tabelle 1.2
figure: Abbildung 1.1
usw.

sondern:

table: Tabelle 1.2 (Seite 2)
figure: Abbildung 1.1 (Seite 5)
chapter: Kapitel 1.1
usw.

Das ganze soll aber immer mit dem Befehl autoref erzeugt werden. Es soll also ein unterschiedliche Syntax auf Basis des jeweiligen label typs erstellt werden. Die Syntax ist kein Problem aber die "Fallunterscheidung" mit "if textlabel == tabelle"...
Ich hoffe man versteht es jetzt besser. Ich bin mir nicht sicher ob das überhaupt geht aber ich hoffe es ;-)

Hat da jemand ne Idee? Ich dachte das müsste mit ifthen funktionieren, bin aber (noch) nicht so tief in LaTeX drin.

mechanicus
15-12-2008, 21:25
Das ganze soll aber immer mit dem Befehl autoref erzeugt werden. .

Hallo,

dazu muß autoref umgeschrieben werden (renewcommand). Es ist vielleicht möglich einen neuen Befehl wie myautoref zu bauen.

Gruß
Marco