使用带有 polyglossia 的枚举包显示标签的问题

使用带有 polyglossia 的枚举包显示标签的问题

有了这个 MWE

\documentclass{article}
\usepackage{enumerate}
\usepackage{fontspec}
\usepackage{polyglossia}
\newfontfamily\arabicfont[Script=Arabic,Scale=1.3]{Amiri}
\setdefaultlanguage{arabic}
\setotherlanguage{english}
\begin{document}

\begin{english}
\begin{enumerate}[{example}- a)]
\item text
\item text
\item text
\item text
\end{enumerate}
\end{english}

\end{document}

使用XeLaTeX标签 'a'、'b' 等进行编译... 未出现在输出中 在此处输入图片描述

这个问题有解决办法吗?

答案1

当默认语言为阿拉伯语时,polyglossia重新定义为使用阿拉伯字母,但在使用\@alph时显然不会恢复定义。english

应该有更好的方法来做到这一点,但在没有更好的方法之前,请使用以下方法:

\documentclass{article}
\usepackage{fontspec}
\usepackage{polyglossia}
\usepackage{enumitem}

\makeatletter
\appto\blockextras@english{%
  \let\@savealph\@alph
  \let\@alph\@origalph
}
\appto\noextras@english{\let\@alph@savealph}
\makeatother

\newfontfamily\arabicfont[Script=Arabic,Scale=1.3]{Amiri}
\setdefaultlanguage{arabic}
\setotherlanguage{english}

\begin{document}

\begin{english}
\begin{enumerate}[label=example-\alph*)]
\item text
\item text
\item text
\item text
\end{enumerate}
\end{english}

\end{document}

enumerate可以起作用,但enumitem功能更强大。

在此处输入图片描述

相关内容