From e26d31d56bc61553d5d6153f2130184643869877 Mon Sep 17 00:00:00 2001 From: John MacFarlane Date: Wed, 25 Nov 2020 08:25:30 -0800 Subject: [PATCH] latex template: disable language-specific shorthands in babel. Babel defines "shorthands" for some languages, and these can produce unexpected results. For example, in Spanish, `1.22` gets rendered as `122`, and `et~al.` as `etal`. One would think that babel's `shorthands=off` option (which we were using) would disable these, but it doesn't. So we remove `shorthands=off` and add some code that redefines the shorthands macro. Eventually this will be fixed in babel, I hope, and we can revert to something simpler. Closes #6817, closes #6887. --- data/templates/default.latex | 5 ++++- test/writers-lang-and-dir.latex | 5 ++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/data/templates/default.latex b/data/templates/default.latex index aad9ee36c..f7d2f0eac 100644 --- a/data/templates/default.latex +++ b/data/templates/default.latex @@ -336,7 +336,10 @@ $for(polyglossia-otherlangs)$ \setotherlanguage[$for(polyglossia-otherlangs.options)$$polyglossia-otherlangs.options$$sep$,$endfor$]{$polyglossia-otherlangs.name$} $endfor$ \else - \usepackage[shorthands=off,$for(babel-otherlangs)$$babel-otherlangs$,$endfor$main=$babel-lang$]{babel} + \usepackage[$for(babel-otherlangs)$$babel-otherlangs$,$endfor$main=$babel-lang$]{babel} +% get rid of language-specific shorthands (see #6817): +\let\LanguageShortHands\languageshorthands +\def\languageshorthands#1{} $if(babel-newcommands)$ $babel-newcommands$ $endif$ diff --git a/test/writers-lang-and-dir.latex b/test/writers-lang-and-dir.latex index 91f4be8c1..05465e581 100644 --- a/test/writers-lang-and-dir.latex +++ b/test/writers-lang-and-dir.latex @@ -56,7 +56,10 @@ \setotherlanguage[]{spanish} \setotherlanguage[]{french} \else - \usepackage[shorthands=off,ngerman,british,nswissgerman,spanish,french,main=english]{babel} + \usepackage[ngerman,british,nswissgerman,spanish,french,main=english]{babel} +% get rid of language-specific shorthands (see #6817): +\let\LanguageShortHands\languageshorthands +\def\languageshorthands#1{} \newcommand{\textgerman}[2][]{\foreignlanguage{ngerman}{#2}} \newenvironment{german}[2][]{\begin{otherlanguage}{ngerman}}{\end{otherlanguage}} \newcommand{\textenglish}[2][]{\foreignlanguage{british}{#2}}