با سلام
هنگامی که با بسته glossaries و xepersian نوشتاری را تهییه می کنم با چهار نوع نمایه سروکار دارم.
الف) نمایه معمولی:
\index{شبکه}
ب) نمایه انگلیسی:
\index{Hello World}
که البته نمایه انگلیسی باید در بین \lr{} باشد.
\index{\lr{Hello World}}
ج و د) نمایههایی که به صورت یک واژه و یا اختصار با بسته glossaries تعریف شده است، و می خواهیم فقط در index، برچسب آن ها داده شود، و خود نمایه در متن چاپ شود.
با استفاده از نکته ای که در پیوند
مشکل تولید نمایه با بسته glossariesبیان شد، من دستور index را به گونه ای overwrite کردم که بتوان بدون این که دستور جدیدی تعریف کرد همه این چهار نوع را با index درست کنیم.
\let\oldindex\index
\renewcommand{\index}[1]{
\ifthenelse{\equal{\glsentrytype{#1}}{english}}
{\expandafter\oldindex\expandafter{\glsentrytext{#1}}}
{ \ifthenelse{\equal{\glsentrytype{#1}}{acronym}}
{\expandafter\oldindex\expandafter{\glsentrytext{#1}}}
{\oldindex{#1}}
}
}
اما دو مشکل:
۱) با استفاده از این تعریف دیگر نمایه های به صورت :
\index{\lr{Hello World}}
با خطا مواجه می شوند.
۲) ویرگول نمایه های اختصارات در سمت راست کلمه قرار داده می شود که این یعنی کلمه انگلیسی از سمت درستی چاپ نشده است.
مثال نمونه اتچ شده است.
باتشکر