[tex-live] Serious (?) problem with Babel and language attributes

Javier Bezos listas at tex-tipografia.com
Mon Jun 2 18:02:03 CEST 2014


Norbert,

 > Javier, please take care ... this is the case for *not*onlY*russian*,
 > but also latin, and probably others, too.
 >
 > Are you *really*really* sure that this is not bug in babel core itself?
 >
 > If not, then at least the documentation how to write the attribute
 > code needs to be fixed/updated/changed/whatever.

Latin and russian behave exactly as coded, and the issues are not
directly related with how attributes are defined in the babel core
and how they are used -- just slips. And a coincidence you have
found two bugs.

Attributes are executed only once, in the preamble. So in the case
of latin, \languageattribute{latin}{medieval} just defines \november
to be  Nouembris. However, when latin is selected, \datelatin is
executed:

\def\datelatin{%
   \def\november{Novembris}%
   \def\today{%
     {\check at mathfonts\fontsize\sf at size\z@\math at fontsfalse\selectfont
       \uppercase\expandafter{\romannumeral\day}}~\ifcase\month\or
     Ianuarii\or Februarii\or Martii\or Aprilis\or Maii\or Iunii\or
     Iulii\or Augusti\or Septembris\or Octobris\or \november\or
     Decembris\fi
     \space{\uppercase\expandafter{\romannumeral\year}}}}

Note it restores the non-medieval value. I presume this line should
be placed outside \datelatin. And Ulrike also showed string are
reversed in russian.

Oddly enough, I tested the medieval attribute with \prefacename, which
as noted by Ulrike (iirc) works as expected.

Javier




More information about the tex-live mailing list