
Ich würde mir wünschen, dass man die Saiten wechseln kann varioref
. Insbesondere die on the facing page
eine.
Das sollte kein Problem sein. In der Dokumentation sind die verschiedenen verwendeten Makros klar aufgeführt und ich denke, ich könnte sie folgendermaßen ändern:
\renewcommand\reftextfaceafter{on the following page}
\renewcommand\reftextafter {on the next page}
\renewcommand\reftextfacebefore{on the previous page}
\renewcommand\reftextbefore {on the previous page}
Dies funktioniert einwandfrei, sofern ich es nicht babel
zusammen mit verwende varioref
.
MWE folgt:
\documentclass{book}
\usepackage[english]{babel} % works if this line is commented out
\usepackage{varioref}
\renewcommand\reftextfaceafter{on the following page}
\renewcommand\reftextafter {on the next page}
\renewcommand\reftextfacebefore{on the previous page}
\renewcommand\reftextbefore {on the previous page}
\begin{document}
empty page
\clearpage
\begin{figure}
\centering
\rule{5cm}{3cm}
\caption{Caption}
\label{fig}
\end{figure}
\clearpage
Figure \vref{fig}
\end{document}
Antwort1
Wenn Sie die \renewcommand
s nach einfügen \begin{document}
, funktioniert es einwandfrei. Wenn Sie sie in die Präambel einfügen, werden sie überschrieben, wenn Dinge am Ende der Präambel/am Anfang des Dokuments konfiguriert werden.
Ich glaube jedoch nicht, dass es \begin{document}
die richtige Lösung ist, sie danach zu platzieren.VarioReffinden wir modifizierte Anweisungen für Dokumente, diebabel. Diese schlagen den folgenden Code vor:
\documentclass[english]{book}
\usepackage{babel} % works if this line is commented out
\usepackage{varioref}
\addto\extrasenglish{% page 5 of varioref's manual
\renewcommand\reftextfaceafter{on the following page}%
\renewcommand\reftextafter {on the next page}%
\renewcommand\reftextfacebefore{on the previous page}%
\renewcommand\reftextbefore {on the previous page}%
}
\begin{document}
empty page
\clearpage
\begin{figure}
\centering
\rule{5cm}{3cm}
\caption{Caption}
\label{fig}
\end{figure}
\clearpage
Figure \vref{fig}
\end{document}
Beachten Sie, dass durch die Übergabe english
an die Dokumentklasse (und nicht direkt an babel
) andere sprachfähige Pakete die Einstellung übernehmen können.
Antwort2
babel
nimmt einige Neudefinitionen direkt bei vor \AtBeginDocument
, daher müssen die \renewcommand
Makros \ref....
auch später noch eingebunden werden, d. h. \AtBeginDocument{...}
um die herum verwendet werden \renewcommand
und die Änderungen werden wirksam, da diese neue \AtBeginDocument
Inhaltsergänzung nach den vorherigen ausgeführt wird. (Andernfalls verwenden Sie den - Ansatz, wie von der Lösung von cfr vorgeschlagen – dies wird auch \addto
im Handbuch des Pakets erwähnt .)varioref
\documentclass{book}
\usepackage[english]{babel} % works if this line is commented out
\usepackage{varioref}
\AtBeginDocument{%
\renewcommand\reftextfaceafter{on the following page}
\renewcommand\reftextafter{on the next page}
\renewcommand\reftextfacebefore{on the previous page}
\renewcommand\reftextbefore{on the previous page}
}
\begin{document}
empty page
\clearpage
\begin{figure}
\centering
\rule{5cm}{3cm}
\caption{Caption}
\label{fig}
\end{figure}
\clearpage
Figure \vref{fig}
\end{document}