![使用带有 polyglossia 的枚举包显示标签的问题](https://linux22.com/image/295488/%E4%BD%BF%E7%94%A8%E5%B8%A6%E6%9C%89%20polyglossia%20%E7%9A%84%E6%9E%9A%E4%B8%BE%E5%8C%85%E6%98%BE%E7%A4%BA%E6%A0%87%E7%AD%BE%E7%9A%84%E9%97%AE%E9%A2%98.png)
有了这个 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
功能更强大。