Bug Tracker 
| ID | 316🔗 |
|---|---|
| Submitted by: | Denis Bitouzé |
| Date: | 2026-05-16 13:19:11 |
| Last update: | 2026-05-16 14:14:08 |
| Status | Open Sign in if you want to bump this report. |
| Category | glossaries-extra |
| Version | 2.1 |
| Summary | French instead of English rules applied in case both languages are loaded in this order at \documentclass' level |
| Cross Ref | 315 |
Sign in to subscribe to notifications about this report.
Description
When thebabel's languages french and english are loaded in this order at \documentclass' level, the rules applied regarding the plural of the short forms of abbreviations are the French ones instead of the English ones. Note that this issue:
- doesn't arise if only the
englishlanguage is loaded, - doesn't arise if the
frenchandenglishlanguages are loaded (only) at the\usepackage{babel}' level, - arises with the
glossariespackage as well.
MWE
Download (739B)
\listfiles
\documentclass[a4paper,french,english]{article}
\usepackage{babel}
\usepackage{glossaries-extra}
\makeglossaries
\newabbreviation{dvd}{DVD}{Digital Video Disc}
\newabbreviation{lug}{LUG}{Linux Users Group}
\begin{document}
\begin{itemize}
\item The current language is English: \today{}.
\item But \texttt{glsxtrabbrvpluralsuffix=\glsxtrabbrvpluralsuffix}.
\item \renewcommand{\glsxtrabbrvpluralsuffix}{s}%
Despite \verb|\renewcommand{\glsxtrabbrvpluralsuffix}{s}|
(now \texttt{glsxtrabbrvpluralsuffix=\glsxtrabbrvpluralsuffix}), the
shortplural forms are not followed by an `s':
\begin{itemize}
\item \gls{dvd}, \glspl{dvd}.
\item \glspl{lug}, \gls{lug}.
\end{itemize}
\end{itemize}
\printglossary
\end{document}
Evaluation
The plural suffix expands by default when the abbreviation is defined. This allows the suffix to be changed before a block of abbreviations are defined that require a particular suffix.
You can test this with \showgloshortplural{dvd} (after the dvd abbreviation is defined) which shows DVD because the French setting has redefined \glsacrpluralsuffix to expand to nothing. With the language passed through the document class as in your example, French is the language currently in effect when the abbreviations are defined.
If the language settings are passed to babel using
\usepackage[french,main=english]{babel}
Then the language in effect when the abbreviations are defined is English, so \glsacrpluralsuffix expands to \glspluralsuffix which expands to “s”. In this case, \showgloshortplural{dvd} shows DVDs.
If you want to retain the language-sensitive command within the shortplural field you will need to prevent it from expanding:
\renewcommand\glsxtrabbrvpluralsuffix{\noexpand\glsacrpluralsuffix}
\newabbreviation{dvd}{DVD}{Digital Video Disc}
\newabbreviation{lug}{LUG}{Linux Users Group}
Comments
0 comments.
Add Comment
Page permalink: https://www.dickimaw-books.com/bugtracker.php?key=316
