我希望能够更换琴弦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
如果将\renewcommand
s 放在 之后\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
内容添加是在先前的内容之后执行的。(否则,使用\addto
cfr 解决方案建议的 - 方法——这在包手册中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}