表格和图片的编号与匈牙利语和希腊语 Babel 不一致

表格和图片的编号与匈牙利语和希腊语 Babel 不一致

当使用 babel 加载匈牙利语和希腊语(带有provide+=*)时,我遇到了标题中的表格编号和标签的位置被还原的情况,即不再是“表 1”,而是“1. 表”。使用 的图形也会发生同样的情况\includegraphics

它只发生在这种特定的语言组合中。如果我省略匈牙利语,那就没问题,如果我省略provide+=*希腊语选项,那就没问题。但是,对于我的更大设置,我依赖于provide+=*希腊语选项。(我的文档中总共有 16 种语言,它们都运行良好。正是这个小问题阻止了我最终实现 babel。)

我花了一段时间才将问题缩小到这个组合,但最终我设法想出了一个可以重现该问题的 MWE。该问题在使用 xelatex 和 lualatex 进行编译时发生。

\documentclass{article}

\usepackage[hungarian,greek,provide+=*,english]{babel}

\begin{document}

\begin{table}
    \caption{\label{tab:table1}Example Table}
    \begin{tabular}{ c c c }
        cell1 & cell2 & cell3 \\ 
        cell4 & cell5 & cell6 \\  
        cell7 & cell8 & cell9    
    \end{tabular}
\end{table}

\end{document}

在此处输入图片描述

我是否遗漏了其中一种语言的选项?如何将编号恢复到正确位置?

答案1

我无法确认希腊语是否相关。只要加载匈牙利语,标题就会改变,因为匈牙利语提供了模板。

我认为您目前有两个选项可以重置标题:

  • 使用 caption 包(babel 之后):
\documentclass{article}

\usepackage[
hungarian,
provide+=*,
english
]{babel}

\usepackage{caption}
\captionsetup{labelformat=simple} %original doesn't work

\begin{document}

\begin{table}[t]
    \caption{Example Table}
    

    \begin{tabular}{ c c c }
        cell1 & cell2 & cell3 \\ 
        cell4 & cell5 & cell6 \\  
        cell7 & cell8 & cell9    
    \end{tabular}
\end{table}

\selectlanguage{hungarian}

\begin{table}[t]
    \caption{Example Table}
    

    \begin{tabular}{ c c c }
        cell1 & cell2 & cell3 \\ 
        cell4 & cell5 & cell6 \\  
        cell7 & cell8 & cell9    
    \end{tabular}
\end{table}

xxx
\end{document}

或者通过重置模板(对于图形也必须这样做):

\documentclass{article}

\usepackage[
hungarian,
provide+=*,
english
]{babel}

\setlocalecaption{hungarian}{table.template}{[[table]]\nobreakspace[table]}
...

在此处输入图片描述

相关内容