Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

problem with casing change for ngerman #321

Closed
u-fischer opened this issue Nov 25, 2024 · 4 comments
Closed

problem with casing change for ngerman #321

u-fischer opened this issue Nov 25, 2024 · 4 comments

Comments

@u-fischer
Copy link
Member

I wanted to demonstrate the change of the casing to eszett for german. With traditional german it works with (and without) ldf-files without problems:

\documentclass[]{article}
\usepackage[german]{babel}
\babelprovide[casing=eszett]{german} 
\usepackage{fontspec}
\setmainfont{dejavusans}
\begin{document}
\MakeUppercase{grüße}
\end{document}

image

But the same fails if the language is ngerman:

\documentclass[]{article}
\usepackage[ngerman]{babel}
\babelprovide[casing=eszett]{ngerman} %german doesn't work either
\usepackage{fontspec}
\setmainfont{dejavusans}
\begin{document}
\MakeUppercase{grüße}
\end{document}

image

So how should it be done there? (It should naturally also work if more language like french are loaded with ldf-files.)

Side remark: I do find it highly confusing that "german" sometimes mean "new german" (in babelprovide) and sometimes "german-traditional" and would not mind if german generally means ngerman.

@jbezos
Copy link
Contributor

jbezos commented Nov 26, 2024

At a quick glance, I’ve found some code in \extrasngerman resetting the value of the tag to de. It doesn’t belong to the babel core (which sets correctly the tag to de-x-eszett), so I have to investigate, but I’d say there is some issue in ngerman.ldf.

On the side remark. Agreed. Currently almost all languages names has been normalized to the Unicode CLDR.

@u-fischer
Copy link
Member Author

Ok looking at the documentation of babel-german I found that this works:

\documentclass[]{article}
\usepackage[ngerman.capsz]{babel}
\usepackage{fontspec}
\setmainfont{dejavusans}
\begin{document}
\MakeUppercase{grüße}
\end{document}

But I think that should be handled in a better way. Now we have \babelprovide[casing=eszett]{german} for german-traditional (hoping that this doesn't active ngerman hyphenation patterns) , \usepackage[ngerman.capsz]{babel} for ngerman, \MakeUppercase[locale=de-x-eszett]{grüße} for local adjustments and \setmainlanguage[capitaleszett]{german} with polyglossia. @jspitz, @josephwright, @FrankMittelbach

On the side remark. Agreed. Currently almost all languages names has been normalized to the Unicode CLDR.

Well I think this should be done here too. While trying out different variants I wasn't even able to tell which hyphenation patterns and german variant I actually got at the end. german and ngerman should be synonyms everywhere and whoever wants traditional writing should use german-traditional.

@jbezos
Copy link
Contributor

jbezos commented Nov 27, 2024

@u-fischer:

Ok looking at the documentation of babel-german I found that this works:

\documentclass[]{article}
\usepackage[ngerman.capsz]{babel}
...

These have also been my findings. The casing option was introduced into babel in December June 2023, and it was functional at that time with ngerman, but a few week months after the modifier capsz was added to ngerman and casing has become no-op. @jspitz, please, could you revise the code in ngerman so that casing is still honored and the tag isn’t reset when the language is selected? Of course, having a modifier for this task is fine, but it shouldn’t interfere with a standard babel functionality.

Well I think this should be done here too.

Many styles have evolved and the language name kept – russian, spanish and polish are examples. I think the same should apply to any other language, indeed. There is another problematic language, namely serbian, because the ‘correct’ one is serbianc (and there is also swissgerman, which is a separate language with tag gsw).

@jbezos
Copy link
Contributor

jbezos commented Nov 29, 2024

I’m closing this issue because the problem is in the language style (reported to the maintainer).

@jbezos jbezos closed this as completed Nov 29, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants