[XeTeX] bug in xecyr

Ross Moore ross at ics.mq.edu.au
Sun May 17 07:05:34 CEST 2009


Hello Imposeren, and others,

On 17/05/2009, at 12:37 AM, Imposeren wrote:

> This is wrong:
>   \DeclareUTFcharacter[\UTFencname]{x0407}{\CYRII} % Ї
>   \DeclareUTFcharacter[\UTFencname]{x0457}{\cyrii} % ї
>   \DeclareUTFcharacter[\UTFencname]{x0406}{\CYRYI} % І
>   \DeclareUTFcharacter[\UTFencname]{x0456}{\cyryi} % і
>
> Correct:
>   \DeclareUTFcharacter[\UTFencname]{x0407}{\CYRYI} % Ї
>   \DeclareUTFcharacter[\UTFencname]{x0457}{\cyryi} % ї
>   \DeclareUTFcharacter[\UTFencname]{x0406}{\CYRII} % І
>   \DeclareUTFcharacter[\UTFencname]{x0456}{\cyrii} % і

Your correction would seem to be correct, looking at just the names
for the characters:  \CYRYI  rather than \CYRII.

But is this the way that those macro names have actually been used
previously in LaTeX ?
That is, maybe the mistake is deeper than what is in this file ?

LaTeX usage seems to be controlled by  inputenc.sty  where relevant
coding is:


\def\update at uclc@with at cyrillic{%
  \expandafter\def\expandafter\@uclclist\expandafter
   {\@uclclist
   \cyra\CYRA\cyrabhch\CYRABHCH\cyrabhchdsc\CYRABHCHDSC\cyrabhdze
   \CYRABHDZE\cyrabhha\CYRABHHA\cyrae\CYRAE\cyrb\CYRB\cyrbyus
   \CYRBYUS\cyrc\CYRC\cyrch\CYRCH\cyrchldsc\CYRCHLDSC\cyrchrdsc
   \CYRCHRDSC\cyrchvcrs\CYRCHVCRS\cyrd\CYRD\cyrdelta\CYRDELTA
   \cyrdje\CYRDJE\cyrdze\CYRDZE\cyrdzhe\CYRDZHE\cyre\CYRE\cyreps
   \CYREPS\cyrerev\CYREREV\cyrery\CYRERY\cyrf\CYRF\cyrfita
   \CYRFITA\cyrg\CYRG\cyrgdsc\CYRGDSC\cyrgdschcrs\CYRGDSCHCRS
   \cyrghcrs\CYRGHCRS\cyrghk\CYRGHK\cyrgup\CYRGUP\cyrh\CYRH
   \cyrhdsc\CYRHDSC\cyrhhcrs\CYRHHCRS\cyrhhk\CYRHHK\cyrhrdsn
   \CYRHRDSN\cyri\CYRI\cyrie\CYRIE\cyrii\CYRII\cyrishrt\CYRISHRT
   \cyrishrtdsc\CYRISHRTDSC\cyrizh\CYRIZH\cyrje\CYRJE\cyrk\CYRK
   \cyrkbeak\CYRKBEAK\cyrkdsc\CYRKDSC\cyrkhcrs\CYRKHCRS\cyrkhk
   \CYRKHK\cyrkvcrs\CYRKVCRS\cyrl\CYRL\cyrldsc\CYRLDSC\cyrlhk
   \CYRLHK\cyrlje\CYRLJE\cyrm\CYRM\cyrmdsc\CYRMDSC\cyrmhk\CYRMHK
   \cyrn\CYRN\cyrndsc\CYRNDSC\cyrng\CYRNG\cyrnhk\CYRNHK\cyrnje
   \CYRNJE\cyrnlhk\CYRNLHK\cyro\CYRO\cyrotld\CYROTLD\cyrp\CYRP
   \cyrphk\CYRPHK\cyrq\CYRQ\cyrr\CYRR\cyrrdsc\CYRRDSC\cyrrhk
   \CYRRHK\cyrrtick\CYRRTICK\cyrs\CYRS\cyrsacrs\CYRSACRS
   \cyrschwa\CYRSCHWA\cyrsdsc\CYRSDSC\cyrsemisftsn\CYRSEMISFTSN
   \cyrsftsn\CYRSFTSN\cyrsh\CYRSH\cyrshch\CYRSHCH\cyrshha\CYRSHHA
   \cyrt\CYRT\cyrtdsc\CYRTDSC\cyrtetse\CYRTETSE\cyrtshe\CYRTSHE
   \cyru\CYRU\cyrushrt\CYRUSHRT\cyrv\CYRV\cyrw\CYRW\cyry\CYRY
   \cyrya\CYRYA\cyryat\CYRYAT\cyryhcrs\CYRYHCRS\cyryi\CYRYI\cyryo
   \CYRYO\cyryu\CYRYU\cyrz\CYRZ\cyrzdsc\CYRZDSC\cyrzh\CYRZH
   \cyrzhdsc\CYRZHDSC}%
  \let\update at uclc@with at cyrillic\relax
}
\DeclareOption*{%
    \let\encodingdefault\CurrentOption
    \edef\reserved at f{%
      \lowercase{\def\noexpand\reserved at f{\CurrentOption enc.def}}}%
    \reserved at f
    \InputIfFileExists\reserved at f
         {}{\PackageError{fontenc}%
          {Encoding file `\reserved at f' not found.%
           \MessageBreak
            You might have misspelt the name of the encoding}%
          {Necessary code for this encoding was not
           loaded.\MessageBreak
           Thus calling the encoding later on will
           produce further error messages.}}%
   \let\reserved at f\relax
   \expandafter\in@\expandafter{\CurrentOption}%
                               {T2A,T2B,T2C,X2,LCY,OT2}%
   \ifin@
      \expandafter\in@\expandafter\cyra\expandafter
                               {\@uclclist}%
      \ifin@
      \else
        \update at uclc@with at cyrillic
      \fi
   \fi
}
\ProcessOptions*


Also relevant are files in  .../texmf/tex/latex/cyrillic

viz.
[GlenMorangie:tex/latex/cyrillic] rossmoor% grep CYRYI *.def
cp1251.def:\DeclareInputText{175}{\CYRYI}
cp855.def:\DeclareInputText{141}{\CYRYI}
cp866.def:\DeclareInputText{244}{\CYRYI}
cp866nav.def:\DeclareInputText{248}{\CYRYI}
iso88595.def:\DeclareInputText{167}{\CYRYI}
isoir111.def:\DeclareInputText{183}{\CYRYI}
koi8-ru.def:\DeclareInputText{183}{\CYRYI}
koi8-u.def:\DeclareInputText{183}{\CYRYI}
lcyenc.def:\DeclareTextSymbol{\CYRYI}{LCY}{248}
maccyr.def:\DeclareInputText{186}{\CYRYI}
macukr.def:\DeclareInputText{186}{\CYRYI}
t2aenc.def:\DeclareTextSymbol{\CYRYI}{T2A}{136}
x2enc.def:\DeclareTextSymbol{\CYRYI}{X2}{136}


That gives at least 9 different encoding positions in non-Unicode
fonts. Are they all accessing a glyph for
  a.  the same character ?
  b.  the *correct* character;  i.e.  Ux0407  ?
or
  c.  the incorrectly named character;  Ux0406 ?


Would  Evgenie Medvedev  or  A. Shipunov , or anyone else who has
had lots of experience with these encodings, please comment on this,
so that a possible error is not propagated any further; nor any new
error created by acting in haste.


Hope this helps,

	Ross Moore

------------------------------------------------------------------------
Ross Moore                                       ross at maths.mq.edu.au
Mathematics Department                           office: E7A-419
Macquarie University                             tel: +61 (0)2 9850 8955
Sydney, Australia  2109                          fax: +61 (0)2 9850 8114
------------------------------------------------------------------------





More information about the XeTeX mailing list