PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : ärgerliches Problem mit \vpageref (Leerzeichen)



kalli
27-05-2010, 14:42
Hallo,
der folgende Code erzeugt ein 2seitiges PDF. Per \vpageref* wollte ich erreichen, dass auf der aktuellen Seite kein Seitenverweis gesetzt wird. Mit \vpageref* erscheint jetzt auf allen anderen als der aktuellen Seite kein Leerzeichen mehr (zwei Wörter werden so zu dummerweise zu einem). Mit \vpageref gibt's dafür doppelte Leerzeichen.

Was kann ich tun?


\documentclass[ngerman]{scrbook}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{babel}

\usepackage{varioref}

\usepackage{nameref}
\usepackage{titleref}
\renewcommand{\theTitleReference}[2]{\emph{#2}}

\usepackage[pdftex,colorlinks,linkcolor=black,citecolor=black, hyperfootnotes=false]{hyperref}

\newcommand{\AbschnittSeite}[1]{\autoref{#1} \vpageref*[]{#1}}

\begin{document}

\section{Kuckuck}
\label{ku}

Siehe \AbschnittSeite{ku}. Hier ist das Problem nicht zu sehen, aber nächste Seite!

\newpage

Siehe \AbschnittSeite{ku}. Hier ist das Problem jetzt zu sehen (bei \textbf{0.1auf} fehlt das Leerzeichen dazwischen).

\end{document}

Xenara
27-05-2010, 15:06
Das Problem hatte ich auch mal. Meine Lösung sah so aus:


\newcommand{\myref}[1]{\autoref{#1}\vpageref[\hspace*{-.8ex}]{#1}}


Wenn aber jemand was eleganteres als den negativen, durch Rumprobieren rausgefundenen \hspace hat, fände ich das super.

lockstep
27-05-2010, 15:30
Zumindest auf den ersten Blick klappt



\newcommand*{\AbschnittSeite}[1]{\autoref{#1} \vpageref[\unskip]{#1}}


lockstep

kalli
27-05-2010, 20:01
Spitzenmäßig!
Danke Euch beiden!

Xenara
28-05-2010, 07:18
Von mir auch ein Dankeschön an lockstep, \unskip ist klasse! :)
Hab gemerkt, das Leerzeichen zwischen \autoref{} und \vpageref[]{} kann man auch weglassen, das scheint keinen Einfluss zu haben.

Hier hab ich mal die Varianten eingebaut inklusive direkt eingetippt. Wenn man es kompiliert und im Acrobat doppelseitig mit anzeigen lässt, kann man schnell zwischen den Seiten wechseln und sieht dabei, dass es mit \unskip nirgens "springt".

\documentclass[ngerman]{article}

\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}

\usepackage{varioref}
\usepackage[colorlinks]{hyperref}

\newcommand*{\AbschnittSeiteOriginal}[1]{\autoref{#1}\vpageref[]{#1}}
\newcommand*{\AbschnittSeiteX}[1]{\autoref{#1}\vpageref[\hspace*{-.8ex}]{#1}}
\newcommand*{\AbschnittSeiteL}[1]{\autoref{#1}\vpageref[\unskip]{#1}}

\begin{document}

\setcounter{section}{0}

\section{Kuckuck}
Siehe Abschnitt 1 blabla. Hier ist das Problem nicht zu sehen, aber nächste Seite!
\newpage
Siehe Abschnitt 1 auf der vorherigen Seite blabla. Hier ist das Problem jetzt zu sehen.
\clearpage

\setcounter{section}{0}

\section{Kuckuck}
\label{ku2}
Siehe \AbschnittSeiteL{ku2} blabla. Hier ist das Problem nicht zu sehen, aber nächste Seite!
\newpage
Siehe \AbschnittSeiteL{ku2} blabla. Hier ist das Problem jetzt zu sehen.

\clearpage

\setcounter{section}{0}

\section{Kuckuck}
\label{ku1}
Siehe \AbschnittSeiteX{ku1} blabla. Hier ist das Problem nicht zu sehen, aber nächste Seite!
\newpage
Siehe \AbschnittSeiteX{ku1} blabla. Hier ist das Problem jetzt zu sehen.

\end{document}

(Ich werd mir für so kleine Makros auch \renewcommand* merken.)

lockstep
28-05-2010, 09:46
Hab gemerkt, das Leerzeichen zwischen \autoref{} und \vpageref[]{} kann man auch weglassen, das scheint keinen Einfluss zu haben.

Stimmt - ich war so erfreut über meine Lösung, dass ich nicht mehr versucht habe, sie zu vereinfachen. :)

lockstep