Hello,
Werner Lemberg wrote:
> > Thank you, I now think that my first approach with changing uccode and lccode
> > values foe russian letters in LCY encoding is not as good as I thought of it
> > some time ago... I changed Babel LCY support to the `canonical' LaTeX solutions,
> > and it works well (although slower than the simple approach; but this approach
> > is more general and more stable in a multilingual environment).
> > But what about sfcodes (and mathcodes) for russian letters?
> > May one safely change 'em (and restore) when doing language switching?
>
> I think so. The only reason to be careful with lccodes is hyphenation.
> AFAIK the effects of sfcodes will be applied immediately. Please correct
> me if I'm wrong.
I noticed two problems with using the `canonical' approach (with \DeclareInputText)
in the LCY encoding:
first, when I do not redefine \lccode and \uccode values, and use \inputenc,
then all seems Ok, because russian letters become active characters after
the line \usepackage[...]{inputenc}. But if I do not use inputenc, then
russian letters are not active,  and I get incorrect results in \MakeUppercase
(as well as \uppercase). So, the user is forced to use \inputenc in this approach.
[probably, this could be solved by including \inputenc for russian letters
via \AtBeginDocument by examining the catcode of russian letter].
Second, I ran a LaTeX file which contained
\setbox0=\hbox{...} % Here ... mean all (33) *uppercase* russian letters
\showbox0
\setbox0=\hbox{\MakeUppercase{...}} % Here ... mean all (33) *lowercase* russian letters
\showbox0
I expected to get the same results for these two \showbox commands.
However, all kernings between letters disappeared in the second box. :(
I've got in a transcript file:
> \box0=
\hbox(7.5+1.94444)x261.195
.\LCY/cmr/m/n/10 ^^80
.\LCY/cmr/m/n/10 ^^81
.\LCY/cmr/m/n/10 ^^82
.\LCY/cmr/m/n/10 ^^83
.\kern0.83334
.\LCY/cmr/m/n/10 ^^84
.\LCY/cmr/m/n/10 ^^85
.\LCY/cmr/m/n/10 ^^f0
.\LCY/cmr/m/n/10 ^^86
.\LCY/cmr/m/n/10 ^^87
.\LCY/cmr/m/n/10 ^^88
.\LCY/cmr/m/n/10 ^^89
.\LCY/cmr/m/n/10 ^^8a
.\LCY/cmr/m/n/10 ^^8b
.\LCY/cmr/m/n/10 ^^8c
.\LCY/cmr/m/n/10 ^^8d
.\LCY/cmr/m/n/10 ^^8e
.\LCY/cmr/m/n/10 ^^8f
.\LCY/cmr/m/n/10 ^^90
.\LCY/cmr/m/n/10 ^^91
.\kern0.27779
.\LCY/cmr/m/n/10 ^^92
.\LCY/cmr/m/n/10 ^^93
.\LCY/cmr/m/n/10 ^^94
.\kern0.27779
.\LCY/cmr/m/n/10 ^^95
.\LCY/cmr/m/n/10 ^^96
.\LCY/cmr/m/n/10 ^^97
.\LCY/cmr/m/n/10 ^^98
.\LCY/cmr/m/n/10 ^^99
.\LCY/cmr/m/n/10 ^^9a
.\LCY/cmr/m/n/10 ^^9b
.\LCY/cmr/m/n/10 ^^9c
.\LCY/cmr/m/n/10 ^^9d
.\LCY/cmr/m/n/10 ^^9e
.\LCY/cmr/m/n/10 ^^9f
! OK.
l.15 \showbox0
?
> \box0=
\hbox(7.5+1.94444)x262.58392
.\LCY/cmr/m/n/10 ^^80
.\LCY/cmr/m/n/10 ^^81
.\LCY/cmr/m/n/10 ^^82
.\LCY/cmr/m/n/10 ^^83
.\LCY/cmr/m/n/10 ^^84
.\LCY/cmr/m/n/10 ^^85
.\LCY/cmr/m/n/10 ^^f0
.\LCY/cmr/m/n/10 ^^86
.\LCY/cmr/m/n/10 ^^87
.\LCY/cmr/m/n/10 ^^88
.\LCY/cmr/m/n/10 ^^89
.\LCY/cmr/m/n/10 ^^8a
.\LCY/cmr/m/n/10 ^^8b
.\LCY/cmr/m/n/10 ^^8c
.\LCY/cmr/m/n/10 ^^8d
.\LCY/cmr/m/n/10 ^^8e
.\LCY/cmr/m/n/10 ^^8f
.\LCY/cmr/m/n/10 ^^90
.\LCY/cmr/m/n/10 ^^91
.\LCY/cmr/m/n/10 ^^92
.\LCY/cmr/m/n/10 ^^93
.\LCY/cmr/m/n/10 ^^94
.\LCY/cmr/m/n/10 ^^95
.\LCY/cmr/m/n/10 ^^96
.\LCY/cmr/m/n/10 ^^97
.\LCY/cmr/m/n/10 ^^98
.\LCY/cmr/m/n/10 ^^99
.\LCY/cmr/m/n/10 ^^9a
.\LCY/cmr/m/n/10 ^^9b
.\LCY/cmr/m/n/10 ^^9c
.\LCY/cmr/m/n/10 ^^9d
.\LCY/cmr/m/n/10 ^^9e
.\LCY/cmr/m/n/10 ^^9f
! OK.
l.27 \showbox0
? x
I've got also some problem with sans serif math alphabet for LCY encoding
(in this approach), but I'll try to look at it more.

With best regards,
Vladimir.
