我注意到,当居中标题包含\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 的标题中。但是,当按原样构建两次时,一切看起来都很好。但如果执行以下操作
- 构建一次
- 在第二个图的标题中添加一个额外的“bla”,然后重建。
- 删除刚刚添加的“bla”,然后重新构建。
现在输出如下:
尽管图 2 和图 3 的标题在文本上完全相同,但图 2 的标题不再居中。我在自己的文档中使用 而不是 解决了这个问题\ref
(\vref
这些图无论如何都在同一页上),但出于好奇,我想知道发生了什么。
答案1
当 LaTeX 排版标题时,它会检查它是否至少填充一行;如果没有,则将标题居中。应该深入了解 的实现细节\vref
,但最可能的原因是,在进行测量时,LaTeX“看到”一个完整的引用(稍后将由宏解析varioref
),因此决定标题占用了多行文本。