将枚举更改为泰语标签

将枚举更改为泰语标签
\documentclass[a4paper, 12pt]{article}

\usepackage{fontspec}
\newfontfamily{\defaultfont}{CMU Serif}
\newfontfamily{\thaifont}[Scale=MatchLowercase]{TH Sarabun Chula}

\usepackage{polyglossia}
\setdefaultlanguage{thai}
\setotherlanguages{english}

\usepackage[Latin, Thai]{ucharclasses}
\setDefaultTransitions{\defaultfont}{}
\setTransitionTo{Thai}{\thaifont}

\XeTeXlinebreaklocale "th"
\XeTeXlinebreakskip = 0pt plus 1pt

\linespread{1.25}

\usepackage{amsmath, amsthm, amssymb}

\begin{document}
\begin{enumerate}
   \item A
         \begin{enumerate}
             \item a
             \item b
         \end{enumerate}
   \item B
         \begin{enumerate}
             \item c
             \item d
         \end{enumerate}
\end{enumerate}
\end{document}

给出

在此处输入图片描述

我想将 (a)、(b)、... 更改为 ก.、ข.、...(泰语)。我尝试过使用enumitem包,但它与polyglossia包发生冲突并导致许多问题。使用polyglossia更改枚举可能是可行的方法,但我不知道该怎么做。

答案1

让我们看看默认枚举计数器的定义source2e

在此处输入图片描述

现在可以创建一个自定义计数器进行枚举,在本例中为泰语字母

\makeatletter
\newcommand*{\@thaialph}[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 ผ\or ฝ\or พ\or 
 ฟ\or ภ\or ม\or ย\or ร\or ฤ\or 
 ล\or ฦ\or ว\or ศ\or ษ\or ส\or 
 ห\or ฬ\or อ\or ฮ\or ฯ\or \else\@ctrerr\fi}
\newcommand*{\thaialph}[1]{\expandafter\@thaialph\csname c@#1\endcsname}
\makeatother

无论何时您想要使用计数器,请在enumerate环境之前添加此命令。

\renewcommand{\theenumi}{\thaialph{enumi}}

或者,您可以通过更改\labelenumi、、、等来重新定义每个枚举级别的样式\labelenumii\labelenumiii\labelenumiv

例如,设置此项将使所有第一级列表都有1),,2)...编号,并且所有第二级枚举列表将在括号中具有泰语字母编号。

\renewcommand*\labelenumi{\arabic{enumi})}
\renewcommand*\labelenumii{(\thaialph{enumii})}

相关内容