\asbuk 번호 매기기에 버그가 있나요?

\asbuk 번호 매기기에 버그가 있나요?

지속적으로 업데이트되는 문서에는 러시아어 영숫자 번호가 있습니다. 최근에 번호 매기기가 크게 잘못되었습니다. 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}

pdflatex를 사용하여 올바른 출력을 얻었지만(왼쪽) xelatex를 사용하면 문제가 발생합니다(오른쪽).: pdflatex 출력 --- 오른쪽 xelatex 출력 --- 잘못됨

아랍어 번호 매기기가 예상대로 작동합니다.

아마도 이 버그는 빠르면 10월에 마지막 업데이트에서 소개되었을 것입니다.

버그는 어디에 제출해야 하나요? 누구든지 해결 방법을 지적할 수 있나요?

답변1

분명히 polyglossia개발자들은 따르기로 결정했습니다.https://en.wikipedia.org/wiki/Cyrillic_numerals간단한 알파벳 번호 매기기를 제거했습니다.

표준 러시아어 알파벳을 사용하기 위한 인터페이스를 남겨두어야 하며 사용자에게 이전 스타일의 알파벳 번호 매기기를 사용하도록 강요해서는 안 됩니다.

다행스럽게도 코드는 아직 제거되지 않았으므로 복사할 수 있습니다.

\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}

여기에 이미지 설명을 입력하세요

관련 정보