reutenauer / polyglossia

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

Inconsitency of lower casing of language tags #608

Closed pauloney closed 9 months ago

pauloney commented 10 months ago

When using \setlanguagealias one can use upper case aliases fine for languages being used in \text<lang>:

\documentclass{report}

\usepackage{polyglossia}
\setdefaultlanguage{english}
\setotherlanguage[variant=austrian]{german}
\setlanguagealias[variant=austrian]{german}{AT}

\begin{document}
\textAT{Das ist auf Österreichisch.}
\end{document}

but not in \setlanguagealias* for languages being used in \textlang{<lang>}

\documentclass{report}

\usepackage{polyglossia}
\setdefaultlanguage{english}
\setotherlanguage[variant=austrian]{german}
\setlanguagealias*[variant=austrian]{german}{AT}

\begin{document}
\textlang{AT}{Das ist auf Österreichisch.}
\end{document}

that generates an error.

Is it possible to have a consistent behaviour for all cases?

Udi-Fogiel commented 10 months ago

The problem is that \textlang is making the language tag lower-case, not the options, see https://github.com/reutenauer/polyglossia/blob/87a478951cdeb70739785a63a8e2b9b36a9d3094/tex/polyglossia.sty#L1982-L1985

it is probably just a simple mistake, I think the correct definition should be

\newcommand\textlang[3][]{ 
   \xpg@str@lowercase{\xpg@tmp@opt}{#1} 
   \__xpg_textlanguage:een {\xpg@tmp@opt} {#2} {#3} 
 }% 

So until it will be fixed you can do the following:

\documentclass{report}

\usepackage{polyglossia}
\setdefaultlanguage{english}
\setotherlanguage[variant=austrian]{german}
\setlanguagealias*[variant=austrian]{german}{AT}

\ExplSyntaxOn
\makeatletter
\renewcommand\textlang[3][]{
    \xpg@str@lowercase{\xpg@tmp@opt}{#1}
    \__xpg_textlanguage:een {\xpg@tmp@opt} {#2} {#3}
}
\ExplSyntaxOff
\makeatother

\begin{document}

    \textlang{AT}{Das ist auf Österreichisch.}

\end{document}
jspitz commented 10 months ago

Fixed for 1.66 with https://github.com/reutenauer/polyglossia/commit/b4e3f0d33740bfd534c42acd2de200dcbff777bd