PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Wo bin ich hier? -- Per Makro kontextabhängig Text einfügen



pi-c
04-01-2012, 17:45
Hallo,
ich habe mal eine etwas kniffelige Frage. Ich benutze eine Kombination aus prettyref und varioref, um u.a. Verweise auf Abbildungen oder Tabellen einzufügen. Dabei möchte ich unterschiedliche Verweise in Abhängigkeit vom Kontext ausgeben:

"Wie im Bild (Abb. 1, siehe S. 123) dargestellt, ..." oder
"Wie in Abb. 1 (siehe S. 123) dargestellt, ..."

Ich müsste also irgendwie herausfinden, ob der Verweis gerade zwischen Klammern oder im normalen Fliesstext steht, und das dann in der Definition der \reftext*-Makros verwenden.

Hier ein Minimalbeispiel -- dass dort bei der zweiten Variante noch ein Leerzeichen vor den Kommas eingefügt wird, nehme ich für dieses Beispiel in Kauf.



\documentclass{article}
\usepackage[ngerman]{babel}
\usepackage{prettyref}
\usepackage{varioref}

\newrefformat{fig}{Abb.~\ref{#1}\vpageref{#1}}

\addto\extrasngerman{%
\renewcommand{\reftextbefore}{, S.\,\thevpagerefnum}%
\renewcommand{\reftextafter}{, S.\,\thevpagerefnum}%
\renewcommand{\reftextfaraway}[1]{, S.\,\thevpagerefnum}%
\renewcommand{\reftextcurrent}{}
}

\begin{document}
\section{Soll}
Hier kommt Text. In Abb.~\ref{fig:a} (siehe S.\,\pageref{fig:a}) gibt es nicht viel zu sehen (in Abb.~\ref{fig:b}, S.\,\pageref{fig:b}, aber auch nicht).

\section{Ist}
Hier kommt Text. In \prettyref{fig:a}, gibt es nicht viel zu sehen (in \prettyref{fig:b} aber auch nicht).
\newpage

\begin{figure}
\centering
\fbox{Ein Bild.}
\caption{Ein Bild}\label{fig:a}
\end{figure}

\begin{figure}
\centering
\fbox{Noch ein Bild.}
\caption{Noch ein Bild}\label{fig:b}
\end{figure}

\end{document}


Weiß vielleicht jemand, wie ich da weiterkommen kann?

Schönen Gruß,

Andreas