包含 \vref 的居中字幕可能并不总是按预期显示

包含 \vref 的居中字幕可能并不总是按预期显示

我注意到,当居中标题包含\vref某个引用时,标题有时可能不会完全居中。我尤其会在文档中看到这种情况,其中同一页上有两幅图,第二幅图引用第一幅图,而第二幅图的标题不再完全居中。

我尝试创建一个最小示例,但很难实现此行为。不过,我设法想出了以下内容:

\documentclass[a4paper, 11pt]{article}

\usepackage{varioref}

\begin{document}
\begin{figure}[!h]
  \centering
  \framebox{1}
  \caption{test}
  \label{test}
\end{figure}

\begin{figure}[!h]
  \centering
  \framebox{2}
  \caption{bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla \vref{test}}
\end{figure}

\begin{figure}[!h]
  \centering
  \framebox{3}
  \caption{bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla \ref{test}}
\end{figure}
\end{document}

我所寻找的行为将显示在图 2 的标题中。但是,当按原样构建两次时,一切看起来都很好。但如果执行以下操作

  1. 构建一次
  2. 在第二个图的标题中添加一个额外的“bla”,然后重建。
  3. 删除刚刚添加的“bla”,然后重新构建。

现在输出如下:

在此处输入图片描述

尽管图 2 和图 3 的标题在文本上完全相同,但图 2 的标题不再居中。我在自己的文档中使用 而不是 解决了这个问题\ref\vref这些图无论如何都在同一页上),但出于好奇,我想知道发生了什么。

答案1

当 LaTeX 排版标题时,它会检查它是否至少填充一行;如果没有,则将标题居中。应该深入了解 的实现细节\vref,但最可能的原因是,在进行测量时,LaTeX“看到”一个完整的引用(稍后将由宏解析varioref),因此决定标题占用了多行文本。

相关内容