我想使用\vpageref
并在其后紧跟一个逗号。问题是,尽管我将其定义\reftextcurrent
为,但还是插入了一个空格{}
。在下面的示例中,我可以通过添加 to 来解决这个问题[]
,\vpageref
但在我看来,这个技巧不知何故不起作用。额外的空格是错误吗?我该如何修复它?
\documentclass{article}
\usepackage{varioref}
\renewcommand{\reftextcurrent}{}
\begin{document}
\section{Test}
I have a problem with Figure~\ref{test}\vpageref[]{test}, which I cannot solve.
\begin{figure}[b]
\caption{A figure}
\label{test}
\end{figure}
\end{document}
答案1
使用带星号的版本\vpageref*
,或者更好的是,用 替换\ref
/\vpageref
组合\vref
。
([!] 之前的额外空格\vpageref
是一个糟糕的设计决定;有关详细信息,请参阅手册的第 2.2 节varioref
。)
\documentclass{article}
\usepackage{varioref}
\renewcommand{\reftextcurrent}{}
\begin{document}
\section{Test}
I have a problem with Figure~\ref{test}\vpageref*{test}, which I cannot solve.
I have a problem with Figure~\vref{test}, which I cannot solve.
\begin{figure}[b]
\caption{A figure}
\label{test}
\end{figure}
\end{document}
答案2
另外(也许你已经用一种特定的风格写了这本书,但不知道\vpageref*
或\vref
……),你可以
\renewcommand{\reftextcurrent}{\unskip}
这将删除您看到的跳过,并且您不必更改代码。
答案3
我刚刚定义了一个\aref
命令,它会自动添加如图所示的前缀,...并且如果需要的话,它会添加页面引用。
代码如下:
\def\aref#1{\autoref{#1}\vpageref*{#1}}
\renewcommand{\reftextcurrent}{\unskip}
\renewcommand{\reftextbefore}{\ auf der vorherigen Seite}
\renewcommand{\reftextfacebefore}{\ auf der vorherigen Seite}
\renewcommand{\reftextafter}{\ auf der nächsten Seite}
\renewcommand{\reftextfaceafter}{\ auf der nächsten Seite}
\renewcommand{\reftextfaraway}[1]{\ auf Seite \pageref{#1}}
就像平常一样使用即可\aref{fig:Figure1}
。
也许这对某些人有帮助,Michael vW