PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem mit ~\ref{}



HAWKLatex
03-07-2012, 00:18
Guten Abend,
ich habe folgendes Problem. Meine Referenzierung mache ich mit einer if-Abfrage:

\usepackage[ngerman]{varioref} % Querverweise inhaltlich automatisieren
\usepackage{ifthen} % Abfragen wie bei IF THEN ELSE unter C
% neuen Befehl mit zwei Argumenten definieren
% 1. was referenziert werden soll
% 2. das Label selbst
\newcommand{\xref}[2]{%
\ifthenelse{\equal{#1}{sec}}{siehe \textbf{Abschnitt \ref{#2}}}{}%
\ifthenelse{\equal{#1}{tab}}{siehe \textbf{Tabelle~\ref{#2}}}{}%
\ifthenelse{\equal{#1}{fig}}{siehe \textbf{Abbildung~\ref{#2}}}{}%
\ifthenelse{\equal{#1}{eqn}}{siehe \textbf{Gleichung~\ref{#2}}}{}%
\ifthenelse{\equal{#1}{app}}{siehe \textbf{Anhang, ~\ref{#2}}}{}%
\ifthenelse{\equal{#1}{lis}}{siehe \textbf{Quellcode~\ref{#2}}}{}
}%

\addtokomafont{captionlabel}{\bfseries}
dann rufe ich das ganze so auf:

text... bla... bla (\xref{sec}{label}). text bla
Das Label existiert und es gibt keine Fehlermeldung. Der ausgegebene Text sieht allerdings so aus:
text... bla... bla (siehe Abschnitt Nr ). text bla

Leider ist hinter der Nr. für den Abschnitt ein Leerzeichen. Kann ich das irgendwie unterbinden?

Achso, ich benutzte

\documentclass[
a4paper, % Papierformat
12pt, % Schriftgröße
numbers = noenddot, % Keine Punkte nach der letzten Gliederungszahl
headings = normal, % mittlere Kapitelüberschriftgröße
listof = totoc, % Seitenzahl der Tabellen- und Abbildungsverzeichnis im TOC
bibliography = totocnumbered, % Quellennachweis im TOC
index = totoc, % Index im TOC
BCOR0mm, %Bindungskorrektur
DIV10 %Seitenteiler, 1 Teil je Rand
]
{scrreprt} %Dokumentklasse%Funktionen
\usepackage[ngerman]{babel}
\usepackage[latin2]{inputenc}

Vielen Dank,
HAWKLatex

hakaze
03-07-2012, 10:02
Du hast ein(e) Leerzeichen/-zeile in der ifthenelse-Anweisung übersehen:
\usepackage{ifthen} % Abfragen wie bei IF THEN ELSE unter C
% neuen Befehl mit zwei Argumenten definieren
% 1. was referenziert werden soll
% 2. das Label selbst
\newcommand{\xref}[2]{%
\ifthenelse{\equal{#1}{sec}}{siehe \textbf{Abschnitt \ref{#2}}}{}%
\ifthenelse{\equal{#1}{tab}}{siehe \textbf{Tabelle~\ref{#2}}}{}%
\ifthenelse{\equal{#1}{fig}}{siehe \textbf{Abbildung~\ref{#2}}}{}%
\ifthenelse{\equal{#1}{eqn}}{siehe \textbf{Gleichung~\ref{#2}}}{}%
\ifthenelse{\equal{#1}{app}}{siehe \textbf{Anhang, ~\ref{#2}}}{}%
\ifthenelse{\equal{#1}{lis}}{siehe \textbf{Quellcode~\ref{#2}}}{}%
}%

PS: Es ist immer gut, ein zusammenhängendes Beispiel zu geben. Keiner will erstmal drei verschiedene Code-Blöcke zurecht kopieren. ;)

u_fischer
03-07-2012, 12:56
ich habe folgendes Problem. Meine Referenzierung mache ich mit einer if-Abfrage:

Ich würde keine immer länger werdenden if-Schleifen benutzen, sondern die Wörter in Befehlen abspeichern und per \csname ausgeben. Z.B.



\documentclass{article}

\makeatletter
\@namedef{sec-ref-prefix}{Abschnitt}
\@namedef{tab-ref-prefix}{Tabelle}
\@namedef{fig-ref-prefix}{Abbildung}
\makeatother
\newcommand\xref[2]{%
siehe \textbf{\csname #1-ref-prefix\endcsname\ \ref{#2}}}

\begin{document}

\section{A}
\label{A}
\label{B}

\xref{sec}{A}, \xref{tab}{B}


\end{document}

HAWKLatex
04-07-2012, 17:28
Dankeschön, es lag tatsächlich am fehlenden "%" Zeichen. Das nächste mal mache ich ein zusammenhängendes Codebeispiel.

LG, Nora

Der_Biba
05-11-2012, 17:00
Hallo,

ich bin gerade auf der Suchen nach einer Vereinfachung bei der Referenzierung von Bildern und Gleichungen. Das hier sieht so aus als wenn es das wäre was ich suchen.

Was such ich überhaupt?
Bei der Referenzierung von Bildern oder Gleichungen schreib ich bisher immer " wie in Abbildung \ref{fig:Bilderkürzel} zu sehen ist" oder "daraus ergibt sich Gleichung \eqref{eq:Gleichungskürzel}" es steht immer das selbe Wort vor der Referenz, entweder Abbildung oder Gleichung. Das wollt ich gern vereinfachen und diese Worte automatisch beim Referenzieren generieren.
Bei der Suche nach einer Lösung, bin ich hier drauf gestoßen. Ich kann auch das erste Beispiel nachvollziehen, aber so ganz als Beschreibung oder Doku zum selber bauen reicht es mir dann doch nicht aus. Hat jemand von euch einen geeigneten Link für mich, oder mag mir das mal nähr bringen?
Ich danke schon mal für eure Hilfe bis hier her und natürlich auch für das was noch kommt ;-)

bobmalaria
05-11-2012, 17:58
hi,

im hyperref paket gibt es auch einen \autoref{key} befehl der das mit abblidung, gleichung etc. uebernehmen kann.

gruss