Xindy、indextools 和阿拉伯语

Xindy、indextools 和阿拉伯语

我正在尝试让 Xindy 处理阿拉伯语。一切都很顺利,除了最终结果,索引项没有从右到左对齐,并且一些字母没有按顺序排列。我无法解决这个问题,非常感谢您的帮助。以下是 MWE:

\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}

我应用到文件的索引样式: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:

首次运行 XeLaTex 后的命令行是:

xindy -L persian-variant3 -C utf8 -M numeric-sort -M latex -M latex-loc-fmts -M texindy -M test index-MWE.idx

答案1

我收到了法国对第一个问题的答复TeXnique.fr感谢@touhami。我更新了最初的问题以包含答案。通过将以下行添加到文件 text.xdy,解决了有关字母顺序的第二个问题:

(define-letter-groups (""))

我也正在更换线路

(markup-range :sep"-")

按线

(markup-range :sep"\hspace{-.2cm}\textfrench{--}")

不确定这是否是一个优雅的解决方案,但它会在您引用页面范围时注意数字的变化。我更新了 test.xdy 文件。

相关内容