varioref: Standard-Zeichenfolge „auf der gegenüberliegenden Seite“ ändern

varioref: Standard-Zeichenfolge „auf der gegenüberliegenden Seite“ ändern

Ich würde mir wünschen, dass man die Saiten wechseln kann varioref. Insbesondere die on the facing pageeine.

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 babelzusammen 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 \renewcommands 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}

erneuert

Beachten Sie, dass durch die Übergabe englishan die Dokumentklasse (und nicht direkt an babel) andere sprachfähige Pakete die Einstellung übernehmen können.

Antwort2

babelnimmt einige Neudefinitionen direkt bei vor \AtBeginDocument, daher müssen die \renewcommandMakros \ref....auch später noch eingebunden werden, d. h. \AtBeginDocument{...}um die herum verwendet werden \renewcommandund die Änderungen werden wirksam, da diese neue \AtBeginDocumentInhaltsergänzung nach den vorherigen ausgeführt wird. (Andernfalls verwenden Sie den - Ansatz, wie von der Lösung von cfr vorgeschlagen – dies wird auch \addtoim 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}

Bildbeschreibung hier eingeben

verwandte Informationen