混合语言嵌套枚举

混合语言嵌套枚举

在之前的问题我得到了一个简单的方法,可以enumerate在阅读阿拉伯语mainlanguage文档时暂时切换到英语。

此解决方案适用于第一的枚举级别。它不适用于嵌套enumerate情况下的下一级。

我现在想问的是,如果足够简单的话,如何达到下一个级别 — — 或者甚至是更高级别。

下面的 MWE 包含有限的原始解决方案并清楚地显示了问题:

图片

\documentclass{article}
\usepackage{polyglossia}

% the next 3 lines are a solution from @selim-bou
\makeatletter
\newcommand{\restarabic}{\let\@arabic\orig@arabic}
\makeatother

\setmainlanguage{arabic}
\setotherlanguage{english}
\newfontfamily\arabicfont[Script=Arabic, Scale=1.50]{Times New Roman}
\newfontfamily\englishfont[Script=Latin]{Times New Roman}

\begin{document}
\begin{english}
This is going to be  a nested, numbered list.  The document is elsewhere mainly Arabic.
\begin{enumerate}
\restarabic
\item The first item
\item The second item 
\begin{enumerate}
\item A sub-item.
\item  Another sub-item  
\end{enumerate}
\item A third, main item.
\end{enumerate}
\end{english}

\end{document}

答案1

只需\let\@alph\@origalph在第二级枚举环境中添加恢复字母格式 a,b,c。

\documentclass{article}
\usepackage{polyglossia}

\makeatletter
\newcommand{\restcount}{
\let\@arabic\orig@arabic%
\let\@alph\@origalph%
\let\@Alph\@origAlph%
}
\makeatother

\setmainlanguage{arabic}
\setotherlanguage{english}
\newfontfamily\arabicfont[Script=Arabic, Scale=1.50]{Times New Roman}
\newfontfamily\englishfont[Script=Latin]{Times New Roman}

\begin{document}
\begin{english}
This is going to be  a nested, numbered list.  The document is elsewhere mainly Arabic.
\begin{enumerate}
\restcount
\item The first item
\item The second item 
\begin{enumerate}
\item A sub-item.
\item  Another sub-item  
\end{enumerate}
\item A third, main item.
\end{enumerate}
\end{english}

\end{document}

相关内容