
Cuento con numeración alfanumérica rusa en un documento en constante actualización. Recientemente, la numeración salió terriblemente mal. MWE:
\documentclass{article}
\usepackage{ifxetex}
\ifxetex
\usepackage{fontspec}
\usepackage{polyglossia}
\setmainlanguage{russian}
\setmainfont{CMU Serif}
\setsansfont{CMU Sans Serif}
\setmonofont{CMU Typewriter Text}
\else
\usepackage[T1,T2A]{fontenc}
\usepackage{lmodern}
\usepackage[english,russian]{babel}
\fi
\usepackage{enumitem}
\makeatletter
\AddEnumerateCounter{\asbuk}{\russian@alph}{щ}
\makeatother
%\setlist[enumerate]{itemsep=0mm, label={\asbuk*)},ref=\asbuk*}
\begin{document}
\begin{enumerate}[label={\asbuk*}, ref=\asbuk*]
\item 1
\item 2
\item 3
\item 4
\item 5
\item 6
\item 7
\item 8
\item 9
\end{enumerate}
\end{document}
Tengo el resultado correcto usando pdflatex (izquierda) y algo sale mal cuando uso xelatex (derecha):
La numeración arábiga funciona como se esperaba.
Supuestamente, el error se introdujo con la última actualización no antes de octubre.
¿Dónde debo presentar el error? ¿Alguien puede señalar una solución alternativa?
Respuesta1
Al parecer los polyglossia
desarrolladores decidieron seguirhttps://en.wikipedia.org/wiki/Cyrillic_numeralsy eliminó la numeración alfabética simple.
Deberían haber dejado una interfaz para usar el alfabeto ruso estándar y no obligar a los usuarios a emplear la numeración alfabética de estilo antiguo.
Afortunadamente, el código aún no se ha eliminado y podemos copiarlo.
\documentclass{article}
\usepackage{ifxetex}
\ifxetex
\usepackage{fontspec}
\usepackage{polyglossia}
\setmainlanguage{russian}
\setmainfont{CMU Serif}
\setsansfont{CMU Sans Serif}
\setmonofont{CMU Typewriter Text}
\else
\usepackage[T1,T2A]{fontenc}
\usepackage{lmodern}
\usepackage[english,russian]{babel}
\fi
\usepackage{enumitem}
\makeatletter
\newcommand{\realasbuk}[1]{\expandafter\russian@realalph\csname c@#1\endcsname}
\def\russian@realAlph#1{\ifcase#1\or
А\or Б\or В\or Г\or Д\or Е\or Ж\or
З\or И\or К\or Л\or М\or Н\or О\or
П\or Р\or С\or Т\or У\or Ф\or Х\or
Ц\or Ч\or Ш\or Щ\or Э\or Ю\or Я\else\xpg@ill@value{#1}{russian@Alph}\fi}
\def\russian@realalph#1{\ifcase#1\or
а\or б\or в\or г\or д\or е\or ж\or
з\or и\or к\or л\or м\or н\or о\or
п\or р\or с\or т\or у\or ф\or х\or
ц\or ч\or ш\or щ\or э\or ю\or я\else\xpg@ill@value{#1}{russian@alph}\fi}
\AddEnumerateCounter{\realasbuk}{\russian@realalph}{щ}
\makeatother
%\setlist[enumerate]{itemsep=0mm, label={\realasbuk*)},ref=\realasbuk*}
\begin{document}
\begin{enumerate}[label={\realasbuk*}, ref=\realasbuk*]
\item 1
\item 2
\item 3
\item 4
\item 5
\item 6
\item 7
\item 8
\item 9
\end{enumerate}
\end{document}