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