Merci @touhami pour votre réponse. Ça a résolu le problème partiellement parce que les colonnes sont encore inversées.
Le problème est résolu avec l'ajout de la commande `\usepackage{multicols}` dans le préambule et en plaçant la commande `\RTLmulticolcolumns` *avant* la commande `\printindex`.
Voici donc l'ECM avec la solution :
\documentclass[12pt]{book}
\usepackage[xindy]{indextools}
\makeindex[title=\textarabic{فهرس اﻷسماء},program=xindy, columns=2]
\usepackage{polyglossia}
\setmainlanguage{french}
\setotherlanguage[locale = tunisia]{arabic}
\newfontfamily\arabicfont[Script = Arabic]{Amiri}
\newfontfamily\ayafont[Script = Arabic, Mapping = arabicdigits]{Amiri}
\usepackage{multicols}
\usepackage{etoolbox}
\AtBeginDocument{\patchcmd{\theindex}{\raggedright}{}{}{}}
\begin{document}
\begin{Arabic}
خلافاَ للاعتقاد السائد فإن لوريم إيبسوم ليس نصاَ عشوائياً، بل إن له جذور في الأدب اللاتيني الكلاسيكي منذ العام 45 قبل الميلاد، مما يجعله أكثر من 2000 عام في القدم. قام البروفيسور "ريتشارد ماك لينتوك" (Richard McClintock) وهو \index{أسيل}
\index{رجب}
\index{أولاد!جلال}
\index{مرشد}
\index{نجم}
\index{سراج}
\index{أولاد!احمد}
\index{علي}
\index{أولاد!حسن}
\index{زكريا}
\index{يحيى}
\index{بنات!نور}
\index{بنات!رغد}
\index{ياسمين}
\index{بنات!عائشة}
\index{فتيحة}
\index{ليلى}
\index{هاجر}
بروفيسور اللغة اللاتينية في جامعة هامبدن-سيدني في فيرجينيا بالبحث عن أصول كلمة لاتينية غامضة في نص لوريم إيبسوم وهي "consectetur"، وخلال تتبعه لهذه الكلمة في الأدب اللاتيني اكتشف المصدر الغير قابل للشك. فلقد اتضح أن كلمات نص لوريم إيبسوم تأتي من الأقسام 1.10.32 و 1.10.33 من كتاب "حول أقاصي الخير والشر''
\newpage
\index{فاطمة|seealso{علي}}
\index{علي}
\index{أسيل}
\index{أمينة}
(\textfrench{de Finibus Bonorum et Malorum}) للمفكر شيشيرون (\textfrench{Cicero}) والذي كتبه في عام 45 قبل الميلاد. هذا الكتاب هو بمثابة مقالة علمية مطولة في نظرية الأخلاق، وكان له شعبية كبيرة في عصر النهضة. السطر الأول من لوريم إيبسوم "\textfrench{Lorem ipsum dolor sit amet...}" يأتي من سطر في القسم 1.20.32 من هذا الكتاب.\index{آية}
\index{بنات!نور}
\index{بنات!رغد}
\newpage
كذلك
\index{وائل}
\index{أسيل}
\index{أمينة}
\index{سمية}
\index{رجب|see{علي}}
\index{أولاد!احمد}
\RTLmulticolcolumns
\printindex
\end{Arabic}
\end{document}
En utlisant le fichier style suivant, le problème de la place de la lettre ya', ainsi que le problème de l'inversement des pages quand il s'agit d'intervalle de pages, tous deux, sont résolu. résolus. Je suis sûr qu'il y a des solutions plus élégantes. Mais, pour le moment cela marche pour moi.
Voici donc le fichier test.xdy.
(markup-index :open "\begin{theindex}~n
\providecommand*\lettergroupDefault[1]{}
\providecommand*\lettergroup[1]{%
\par}"
:close "~n~n\end{theindex}~n"
:tree)
;;(define-crossref-class "see also")
;;(define-location-class "arabic-page-numbers"
;; ("arabic-numbers") :min-range-length 1)
;;(markup-letter-group-list :sep "~n\indexspace")
(markup-locclass-list :open " : " :sep "، ")
;; delim_n <string> ", "
(markup-locref-list :sep "، ")
;; delim_r <string> "--"
(markup-range :sep"\hspace{-.2cm}\textfrench{--}")
;; no letter groups at the beginning of each new set of letters
(define-letter-groups (""))
;; location list separators
(markup-locref-list :sep "، ")
;;(markup-range :close "" "\range{" :sep "}{" :open "}")
(markup-indexentry :open "~n \item "
:close ""
:depth 0)
(markup-indexentry :open "~n \subitem " :depth 1)
(markup-indexentry :open "~n \subsubitem " :depth 2)
;; Local Variables:
;; mode: lisp
;; End: