删除 \vpageref 后的空格

删除 \vpageref 后的空格

我想使用\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

相关内容