varioref:更改默认的“在对页上”字符串

varioref:更改默认的“在对页上”字符串

我希望能够更换琴弦varioref。特别是那on the facing page一个。

这应该不是问题。文档清楚地说明了所使用的各种宏,我想我可以使用以下命令更改它们:

\renewcommand\reftextfaceafter{on the following page}
\renewcommand\reftextafter {on the next page}
\renewcommand\reftextfacebefore{on the previous page}
\renewcommand\reftextbefore {on the previous page}

这很好用,除非我babel与一起使用varioref

MWE 如下:

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

答案1

如果将\renewcommands 放在 之后\begin{document},则效果很好。如果将它们放在序言中,则在序言末尾/文档开头配置内容时,它们会被覆盖。

然而,我不认为把它们放在后面\begin{document}是正确的解决方案,看看手册瓦里雷夫,我们发现使用以下文档的修改说明:巴别塔.这些建议使用以下代码:

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

更新

请注意,通过传递english给文档类,而不是直接传递给babel,其他具有语言感知的包将能够获取该设置。

答案2

babel在 处进行了一些重新定义\AtBeginDocument,因此宏\renewcommand\ref....必须在稍后挂钩,即\AtBeginDocument{...}在 周围使用\renewcommand并且更改生效,因为此新\AtBeginDocument内容添加是在先前的内容之后执行的。(否则,使用\addtocfr 解决方案建议的 - 方法——这在包手册中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}

在此处输入图片描述

相关内容