hyperref 导致图片和子标题之间出现间隙

hyperref 导致图片和子标题之间出现间隙

memoir我在使用子图标题时遇到了一个奇怪的问题hyperref。下面是一个工作示例:

\documentclass{memoir}

\usepackage{hyperref}
\newsubfloat{figure}

\begin{document}
\begin{figure}[tb]
  \rule{\textwidth}{4ex}
  \subcaption{}
\end{figure}
\end{document}

其结果如下:

在此处输入图片描述

如果我删除该hyperref包并重新编译,间隙就会消失: 在此处输入图片描述

有人知道为什么会发生这种情况,以及如何解决吗?

答案1

解决方案是将以下内容放%在线后面\rule

\documentclass{memoir}

\usepackage{hyperref}
\newsubfloat{figure}

\begin{document}
\begin{figure}[tb]
  \rule{\textwidth}{4ex}%
  \subcaption{}
\end{figure}
\end{document}

我猜想这\subcaption是为了\unskip删除换行符造成的空格,但hyperref添加了一些内部代码,这些代码会阻止\unskip返回那么远。由于空格\rule很长,如果不删除,空格就会创建新行。或者,如果您的内容比更复杂,请在前面\textwidth添加手册。\unskip\subcaption\rule

通常,在源代码行的末尾放置一个%“and”}是个好主意{。如果不小心,这种虚假的空格就会经常出现。

相关内容