将章节编号更改为阿拉伯语单词

将章节编号更改为阿拉伯语单词

我想要的是“第一章”,而不是“第 1 章”,但用阿拉伯语表示。one => الأول 等等。

在英语中,存在一种解决方案:

\usepackage{fmtcount,etoolbox}
\makeatletter
\patchcmd{\@makechapterhead}{\thechapter}{\Numberstring{chapter}}{}{}
\patchcmd{\chaptermark}{\thechapter}{\NUMBERstring{chapter}}{}{}
\makeatother

但是阿拉伯语呢?MWE:

\documentclass[12pt,english]{book}
\usepackage{fancyhdr}
\usepackage{polyglossia}
\setmainlanguage[numerals=maghrib]{arabic}
\setotherlanguage{english}
\newfontfamily\arabicfont[Script=Arabic,Scale=1.5]{Arabic Typesetting}
\pagestyle{fancy}

\begin{document}
\selectlanguage{arabic}
\chapter{مقدمة}

\end{document}

答案1

我不知道这是否太晚了,但是根据这个答案,这里有一个解决你问题的方法: 章节的“文字”和数字编号还有这个章节的“文字”编号

此 MWE 支持最多 20 个章节,但当然您可以轻松地用文字添加更多章节编号:

\documentclass[12pt,english]{book}
\usepackage{fancyhdr}
\usepackage{polyglossia}
\setmainlanguage[numerals=maghrib]{arabic}
\setotherlanguage{english}
\newfontfamily\arabicfont[Script=Arabic,Scale=1.5]{Arabic Typesetting}
\pagestyle{fancy}
\gappto\captionsarabic{\renewcommand{\chaptername}{الباب}} %to name the chapter title   الباب instead of باب
\newcommand\words[1]{\expandafter\xwords\csname c@#1\endcsname}
\def\xwords#1{\ifcase#1\or
الأول\or          
الثاني\or          
الثالث\or 
الرابع\or 
الخامس\or 
السادس\or 
السابع\or 
الثامن\or 
التاسع\or 
العاشر\or 
الحادي عشر\or 
الثاني عشر\or 
الثالث عشر\or 
الرابع عشر\or 
الخامس عشر\or 
السادس عشر\or  
السابع عشر\or
الثامن عشر\or 
التاسع عشر\or 
العشرون\or 

    \else
    أحتاج إلى المزيد من ترقيمات الأبواب بالحروف في ملف arbbook.cls\fi}
%next three lines is to make chapter naming use the above wordings (literal numbering in Arabic words)

\makeatletter
\patchcmd{\@makechapterhead}{\thechapter}{\words{chapter}}{}{}
\makeatother

\begin{document}
\selectlanguage{arabic}
\chapter{مقدمة}
\end{document}

输出:

藝術本身

相关内容