Ich kann dies hier anbieten:
Code:
\documentclass[ngerman]{scrreprt}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
%\usepackage{ifthen}
\usepackage{caption}
\usepackage{varioref}
\usepackage{hyperref}
\begin{document}
%+++++++++++++++++++++++++++++++++++++++ Umgebungsbezeichnungen (automatisch)
\setcounter{secnumdepth}{5}
\makeatletter
% Diese Ebenen sollen nicht nummeriert werden und bei \myref intern \nameref verwenden
\caption@g@addto@list\nonumberlevelslist{paragraph,subparagraph}
% \othersectionlevelsformat so umdefinieren,
% daß bei \paragraph und \subparagraph nix ausgegeben wird:
\let\othersectionlevelsformat@ORI\othersectionlevelsformat
\renewcommand\othersectionlevelsformat[3]{%
\caption@ifin@list\nonumberlevelslist{#1}{}{%
\othersectionlevelsformat@ORI{#1}{#2}{#3}}}
% Hilfsmakros, um aus dem Label in der AUX-Datei den Namen (section,subsection,...) zu gewinnen
\newcommand*\myautorefname[2]{% modifiziertes \HyPsd@@@autoref aus hyperref
\expandafter\ifx\csname r@#2\endcsname\relax
??%
\else
\expandafter\expandafter\expandafter#1%
\csname r@#2\endcsname{}{}{}{}\@nil
\fi
}
\def\@myname#1#2#3#4#5\@nil{\@@myname#4.\@nil}
\def\@@myname#1.#2\@nil{#1}
\newcommand*\myautoref[1]{%
\myautorefname\HyPsd@autorefname{#1}%
}
% \myvref verwendet je nach Gliederungsebene \nameref oder \vref
\newcommand*\myvref[1]{%
\caption@ifin@list\nonumberlevelslist{\myautorefname\@myname{#1}}%
{\nameref{#1}}{\vref{#1}}%
}
\makeatother
%Anwendungsbeispiel: \myautoref{label}
%+++++++++++++++++++++++++++++++++++++++ Umgebungsbezeichnungen (automatisch)
\newcommand{\myref}[1]{\myautoref{#1}\myvref{#1}}
\section{Einleitung}
Das ist ein deutscher Beispieltext.Das ist ein deutscher Beispieltext.Das ist ein deutscher Beispieltext.Das ist ein deutscher Beispieltext.Das ist ein deutscher Beispieltext.
\subsection{Sub Einleitung}
\label{subsec:test}
Test Test Test Test.
%\newpage
\paragraph{Para1}
\label{para:test}
Das ist ein deutscher Beispieltext.Das ist ein deutscher Beispieltext.Das ist ein deutscher Beispieltext.Das ist ein deutscher Beispieltext.Das ist ein deutscher Beispieltext.Das ist ein deutscher Beispieltext.
\subparagraph{Sub Para1}
\label{subpara:test}
Das ist ein deutscher Beispieltext.Das ist ein deutscher Beispieltext.Das ist ein deutscher Beispieltext.Das ist ein deutscher Beispieltext.Das ist ein deutscher Beispieltext.Das ist ein deutscher Beispieltext.Das ist ein deutscher Beispieltext.Das ist ein deutscher Beispieltext.
\begin{figure}[htbp]
\centering
\caption{Test}
\label{fig:test}
\end{figure}
\newpage
\section{Zweite Einleitung}
Hier möchte ich auf \myref{fig:test} verweisen und hier auf \myref{subsec:test} und hier auf \myref{para:test} und hier auf \myref{subpara:test}.
\end{document}
Dies verwendet immerhin schon 'mal je nach Gliederungsebene \vref oder \nameref.
Um jetzt auf das Ergebnis zu kommen, was du haben möchtest, müsste man sich "nur" noch in varioref einarbeiten und den Test, ob nun die Nummer oder der Titel ausgegeben werden soll (und der im Moment in \myvref drin steckt), mit varioref verheiraten.
(Mit varioref kenne ich mich aber nicht im geringsten aus.)
Lesezeichen