
我在不斷更新的文檔中有俄語字母數字編號。最近,編號出現嚴重錯誤。微量元素:
\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(右)時出現了問題。
阿拉伯編號按預期工作。
據推測,該錯誤是在十月的最後一次更新中引入的。
我應該在哪裡提交錯誤?任何人都可以指出解決方法嗎?
答案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}