请考虑以下示例:
% lualatex test.tex
\DocumentMetadata{}
\documentclass[a4paper]{article}
\usepackage{polyglossia}
\usepackage{graphicx}
\begin{document}
\begin{figure}
\centering
\includegraphics[width = 0.99\textwidth]{example-image-a}
\caption{Test caption.}
\end{figure}
\begin{figure}
\centering
\includegraphics[width = \textwidth]{example-image-a}
\caption{Test caption.}
\end{figure}
\end{document}
从输出中可以看出,第二张图片和相应标题之间的间距太大。但是,如果我删除polyglossia
包装,间距正确。
到底发生了什么事?我该如何解决?
注意:我认为这是比较新的事物(但我不确定);我不记得以前见过这种情况。
更新
软件包的一个错误修复版本已经发布;请参阅这里。
答案1
如果你添加,\ShowHook{cmd/caption/before}
你会看到polyglossia
已经将代码注入到的开始处\caption
。
-> The generic hook 'cmd/caption/before':
> Code chunks:
> polyglossia -> \addtocontents {lof}{\protect \setforeignlanguage {\langua
gename }}\addtocontents {lot}{\protect \setforeignlanguage {\languagename }}
在之前留一个空行\caption
可以解决该错误,但应向polyglossia
维护人员报告。
或者通过钩子进行修补:
\documentclass[a4paper]{article}
\AddToHook{cmd/caption/before}[polyglossia]{\par}
\usepackage{polyglossia}
\usepackage{graphicx}
\begin{document}
%\ShowHook{cmd/caption/before}
\begin{figure}
\centering
\includegraphics[width = 0.99\textwidth]{example-image-a}
\caption{Test caption.}
\end{figure}
\begin{figure}
\centering
\includegraphics[width = \textwidth]{example-image-a}
\caption{Test caption.}
\end{figure}
\end{document}