为什么 LaTeX 在两行标题中将脚注计数器步进两次?

为什么 LaTeX 在两行标题中将脚注计数器步进两次?

下面的代码中有三幅图,每幅图都有标题和脚注。我期望它们从 1 到 3 连续编号。但实际上(使用 TL 17 和 TL 18 测试)当标题有两行时,脚注计数器会增加两次(不缩放,即第三行仍然会增加两次)。

问题

页面结束

问题:这双步走的原因是什么?

边注:我并不是在寻找解决方案,因为只需包含该包即可轻松解决问题caption。我感兴趣的是解释为什么标题中的第二行可能导致计数器混乱。

\documentclass{article}
\begin{document}
\begin{figure}
\caption{Test1\protect\footnotemark}
\end{figure}
\footnotetext{Footnote 1}
\begin{figure}
\caption{Test2 -- This is a very long caption which should still get a foonote numbered with 2\protect\footnotemark}
\end{figure}
\footnotetext{Footnote 2}
\begin{figure}[htbp] % [htbp] only added for staying on top]
\caption{Test3\protect\footnotemark}
\end{figure}
\footnotetext{Footnote 3}
\end{document}

答案1

它之所以分步进行,是因为标题要排版两次。首先,标题被放在一个行中\sbox并测量,如果一行设置适合,则框将居中,但是如果该行太长,则将整个标题放在一个行中,\parbox以便将其设置为两端对齐的段落。

可以保存/恢复计数器,例如,tabularx在进行amsmath类似的试验设置时,但由于默认浮动处理不支持脚注,所以非常当它在 1980 年代设计时,由于没有足够的空间容纳额外的保存/恢复代码,所以您需要使用\footnotemark[]当前数字,然后\footnotetext[]在标题外使用。

请注意,在此示例中,关闭单行检查的解决方案可以正常工作,因为您获得相同的\parbox设置,并且通过跳过检查您可以获得正确的数字,但如果您将其作为全局文档更改来执行,那么

\caption{a very long caption}

将会获得不同的设置,作为两端对齐的段落(因此与左对齐,因为它是一行),而不是居中。

相关内容