reutenauer / polyglossia

An alternative to Babel for XeLaTeX and LuaLaTeX
http://www.ctan.org/pkg/polyglossia
MIT License
187 stars 52 forks source link

xkeyval error for \foreignlanguage #559

Closed mrpiggi closed 1 year ago

mrpiggi commented 1 year ago

Using \foreignlanguage with an babel language name as well as passing optional arguments raises an as the (implicit) given keys can not be evaluated. Same with hyphenrules and otherlanguage*, whereas \selectlanguage and otherlanguage work as expected.

\documentclass{minimal}
\usepackage{polyglossia}
\setdefaultlanguage{english}
\setotherlanguage[spelling=old]{german}

\makeatletter
\def\fooname{BaseFoo}
\gappto\captionsgerman{%
  \def\fooname{\if@german@oldspelling OldFoo\else NewFoo\fi}%
}
\makeatother

\begin{document}
Dies ist ein Test: \fooname

\bigskip\centerline{foreignlanguage}
\foreignlanguage{german}{Dies ist ein Test: \fooname}

\foreignlanguage[spelling=new]{german}{Dies ist ein Test: \fooname}

\foreignlanguage[spelling=old]{german}{Dies ist ein Test: \fooname}

\foreignlanguage{ngerman}{Dies ist ein Test: \fooname}

\foreignlanguage{germanb}{Dies ist ein Test: \fooname}

\bigskip\centerline{hyphenrules}
\begin{hyphenrules}{german}
Dies ist ein Test: \fooname
\end{hyphenrules}

\begin{hyphenrules}[spelling=new]{german}
Dies ist ein Test: \fooname
\end{hyphenrules}

\begin{hyphenrules}[spelling=old]{german}
Dies ist ein Test: \fooname
\end{hyphenrules}

\begin{hyphenrules}{ngerman}
Dies ist ein Test: \fooname
\end{hyphenrules}

\begin{hyphenrules}{germanb}
Dies ist ein Test: \fooname
\end{hyphenrules}

\bigskip\centerline{otherlanguage*}
\begin{otherlanguage*}{german}
Dies ist ein Test: \fooname
\end{otherlanguage*}

\begin{otherlanguage*}[spelling=new]{german}
Dies ist ein Test: \fooname
\end{otherlanguage*}

\begin{otherlanguage*}[spelling=old]{german}
Dies ist ein Test: \fooname
\end{otherlanguage*}

\begin{otherlanguage*}{ngerman}
Dies ist ein Test: \fooname
\end{otherlanguage*}

\begin{otherlanguage*}{germanb}
Dies ist ein Test: \fooname
\end{otherlanguage*}

\bigskip\centerline{otherlanguage}
\begin{otherlanguage}{german}
Dies ist ein Test: \fooname
\end{otherlanguage}

\begin{otherlanguage}[spelling=new]{german}
Dies ist ein Test: \fooname
\end{otherlanguage}

\begin{otherlanguage}[spelling=old]{german}
Dies ist ein Test: \fooname
\end{otherlanguage}

\begin{otherlanguage}{ngerman}
Dies ist ein Test: \fooname
\end{otherlanguage}

\begin{otherlanguage}{germanb}
Dies ist ein Test: \fooname
\end{otherlanguage}

\bigskip\centerline{selectlanguage}
\selectlanguage{german}
Dies ist ein Test: \fooname

\selectlanguage[spelling=new]{german}
Dies ist ein Test: \fooname

\selectlanguage[spelling=old]{german}
Dies ist ein Test: \fooname

\selectlanguage{ngerman}
Dies ist ein Test: \fooname

\selectlanguage{germanb}
Dies ist ein Test: \fooname

\end{document}

BTW: I am aware that captions are not changed with the commands/environments in question, just wanted to make sure, that the general usage of the UI is valid.

jspitz commented 1 year ago

Should be fixed in master. Please check if possible.

mrpiggi commented 1 year ago

checked and confirmed