多语导致字幕间距错误

多语导致字幕间距错误

请考虑以下示例:

% 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}

相关内容