Je suis en train de travailler sur un index en utilisant Tout marche bien mais l'index est imprimé en mode LTR au lieu de RTL. En plus, les lettres de l'alphabet arabe ne sont pas bien ordonnées. Voici un exemple minimum, intitulé Ouvrir dans l'éditeur Overleaf
\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} \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{أولاد!احمد} \printindex \end{Arabic} \end{document} Voici la feuille de style Ouvrir dans l'éditeur Overleaf
(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-locclass-list :open " : " :sep ", ") ;; delim_n <string> ", " (markup-locref-list :sep "، ") ;; delim_r <string> "--" (markup-range :sep "-") ;; Local Variables: ;; mode: lisp ;; End: Enfin, voici la commande Ouvrir dans l'éditeur Overleaf
xindy -L persian-variant3 -C utf8 -M numeric-sort -M latex -M latex-loc-fmts -M texindy -M test index-ex.idx |
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 Voici donc l'ECM avec la solution : Ouvrir dans l'éditeur Overleaf
\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é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 providecommandlettergroupDefault[1]{} providecommandlettergroup[1]{% par}" :close "~n~nend{theindex}~n" :tree) ;;(define-crossref-class "see also") ;;(define-location-class "arabic-page-numbers" ;; ("arabic-numbers") :min-range-length 1) Ouvrir dans l'éditeur Overleaf
;;(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: Publiée 16 Nov '19, 19:57 yadaddi Oui, bravo, j'ai oublié cette détail.
(16 Nov '19, 20:23)
touhami
@yadaddi : n'hésitez pas à poster un ECM illustrant la solution trouvée. Ce sera très utile pour de futurs lecteurs confrontés à un problème analogue.
(16 Nov '19, 21:07)
Pathe ♦♦
|
Pour régler le problème de justification, il suffit d'ajouter
\usepackage{etoolbox} \AtBeginDocument{\patchcmd{\theindex}{\raggedright}{}{}{}}
Le problème des lettres non ordonnées est plus compliqué (peut-être pas, je ne sais pas pour sûr). En fait, c'est classique que les mots avec des lettres accentuées sont considérés comme des symboles, et donc ils se trouvent au début, avant tous les autres mots. Il me semble que xindy traite les mots commençant par
Ya
de la même manière. Une solution est d'intervenir manuellement lors de la version finale.