我目前正在编写一个类,我需要测试当前的语言。因此我使用包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}