iflang 警告:\language(模式)与 \languagename 设置不匹配

iflang 警告:\language(模式)与 \languagename 设置不匹配

我目前正在编写一个类,我需要测试当前的语言。因此我使用包iflang。当我更改默认语言时会弹出一个奇怪的警告,请考虑:

\documentclass{article}
\usepackage{polyglossia}
\setdefaultlanguage{english}
\usepackage{iflang}
\begin{document}
\makeatletter
\noindent PATT: \the\l@dutch \\
LANG: \the\language
\makeatother
\end{document}

该代码不会产生任何警告,但如果我将代码更改为\setdefaultlanguage{dutch},则包iflang会产生警告:

Package iflang Warning: Mismatch between \language (patterns)
(iflang)                and setting of \languagename.

尽管两个变量具有相同的值。这是软件包中的错误吗?

答案1

\usepackage{polyglossia}
\setdefaultlanguage{dutch}

语言名称为dutch,但语言设置仍为默认语言 0 (USenglish)。因此警告是正确的。包polyglossia稍后会在 中设置语言\begin{document}

可以避免该警告:

  • 稍后加载包,polyglossia设置语言时:

    \usepackage{polyglossia}
    \setdefaultlanguage{dutch}
    \AtBeginDocument{\usepackage{iflang}}
    
  • 或者明确设置语言:

    \usepackage{polyglossia}
    \setdefaultlangauge{dutch}
    \selectlanguage{dutch}
    \usepackage{iflang}
    
  • 或者提前加载包iflang

    \usepackage{iflang}
    \usepackage{polyglossia}
    \setdefaultlanguage{dutch}
    

相关内容