• Welcome to پارسی‌لاتک.
 
از تاریخ ۱۳۹۳/۸/۱۴ به دلیل ارائه خدمات بهتر به سایت جدید پرسش و پاسخ مهاجرت کرده‌ایم؛ از این رو امکان عضویت و ارسال پست در تالار غیرفعال شده است. لطفاً برای پرسیدن سوال‌های خود به سایت جدید مراجعه کنید.

ورود به سایت جدید

مشکل با نمایه در هنگامی که نمایه انگلیسی و فارسی با glossaries

نویسنده ابوالفضل دیانت, سپتامبر 08, 2014, 09:59:49 قبل از ظهر

« قبلی - بعدی »

ابوالفضل دیانت

با سلام
هنگامی که با بسته 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}}


با خطا مواجه می شوند.
۲) ویرگول نمایه های اختصارات در سمت راست کلمه قرار داده می شود که این یعنی کلمه انگلیسی از سمت درستی چاپ نشده است.

مثال نمونه اتچ شده است.
باتشکر


vafa

مشکل اول مشکل expansion هست که درست انجام نمی‌دهی. اگر به جای \lr هر دستر دیگری قرار بدهی، همین خطا رو می‌گیری (برای امتحان به جای \lr دستور \textbf بگذار). مشکل دوم را هم قبلاً بهت توضیح داده‌ام.