سلام، لطفا وارد شوید یا عضو شوید.

نویسنده موضوع: اشکال در واژه نامه با بروزرسانی بسته glossaries  (دفعات بازدید: 3452 بار)

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

  • همکاران
  • Hero Member
  • ***
  • تشکر
  • -اهدا شده: 192
  • -دریافت شده: 271
  • ارسال: 812
    • ديدن مشخصات
با سلام
من امروز بسته glossaries را بروز کردم، ولی در هنگام کامپایل با مشکل عجیبی روبه رو شدم، یکسری کاراکترهای غیره در فایل خروجی ظاهر می شود.
البته این مشکل را سعی می کنم به مولف بسته glossaries گزارش دهم.

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

  • همکاران
  • Hero Member
  • ***
  • تشکر
  • -اهدا شده: 192
  • -دریافت شده: 271
  • ارسال: 812
    • ديدن مشخصات
با سلام
من خطا را گزارش دادم، اما الان امتحان کردم که اگر بسته glossaries را بعد از xepersian بیاورم، مشکل حل می شود، اما خوب خطای آوردن بسته بعد از xepersian‌ظاهر می شود.
باتشکر

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

  • همکاران
  • Hero Member
  • ***
  • تشکر
  • -اهدا شده: 192
  • -دریافت شده: 271
  • ارسال: 812
    • ديدن مشخصات
با سلام
جواب مولف glossaries‌ به صورت زیر بود.
البته در پاسخ ایشان فکر کنم به جای newcommand باید renewcommand بگذارند.
Hi,

I've found the problem. The xepersian package redefines the internal command \@@do@wrglossary used by glossaries
 in a manner that now conflicts with the new version of glossaries.
These internal commands aren't supposed to be used outside of glossaries.sty
and it's a somewhat dangerous thing for another package to assume the definition of an internal command won't change
but I'll see if I can find some workaround.

Here's a patch for now (after loading xepersian):
\makeatletter
\newcommand*{\@@do@wrglossary}[1]{%
  \begingroup
    \let\orgthe\the
    \let\orgnumber\number
    \let\orgromannumeral\romannumeral
    \let\orgalph\@alph
    \let\orgAlph\@Alph
    \let\orgRoman\@Roman
    \let\orgharfi\@harfi
    \let\orgadadi\@adadi
    \let\orgtartibi\@tartibi
    \def\the##1{%
      \ifx##1\c@page \gls@numberpage\else\orgthe##1\fi}%
    \def\number##1{%
      \ifx##1\c@page \gls@numberpage\else\orgnumber##1\fi}%
    \def\romannumeral##1{%
      \ifx##1\c@page \gls@romanpage\else\orgromannumeral##1\fi}%
    \def\@Roman##1{%
      \ifx##1\c@page \gls@Romanpage\else\orgRoman##1\fi}%
    \def\@alph##1{%
      \ifx##1\c@page \gls@alphpage\else\orgalph##1\fi}%
    \def\@Alph##1{%
      \ifx##1\c@page \gls@Alphpage\else\orgAlph##1\fi}%
    \gls@disablepagerefexpansion
    \protected@xdef\@glslocref{\theglsentrycounter}%
  \endgroup
  \@gls@checkmkidxchars\@glslocref
  \expandafter\ifx\theHglsentrycounter\theglsentrycounter\relax
    \def\@glo@counterprefix{}%
  \else
    \protected@edef\@glsHlocref{\theHglsentrycounter}%
    \@gls@checkmkidxchars\@glsHlocref
    \edef\@do@gls@getcounterprefix{\noexpand\@gls@getcounterprefix
      {\@glslocref}{\@glsHlocref}%
    }%
    \@do@gls@getcounterprefix
  \fi
  \edef\@gls@label{\glsdetoklabel{#1}}%
  \@@do@@wrglossary
}
\makeatother

« آخرين ويرايش: سپتامبر 01, 2014, 03:40:16 pm توسط ابوالفضل دیانت »

آفلاین vafa

  • مشاور
  • Hero Member
  • *
  • تشکر
  • -اهدا شده: 78
  • -دریافت شده: 2012
  • ارسال: 4,429
    • ديدن مشخصات
با سلام
جواب مولف glossaries‌ به صورت زیر بود.
البته در پاسخ ایشان فکر کنم به جای newcommand باید renewcommand بگذارند.
Hi,

I've found the problem. The xepersian package redefines the internal command \@@do@wrglossary used by glossaries
 in a manner that now conflicts with the new version of glossaries.
These internal commands aren't supposed to be used outside of glossaries.sty
and it's a somewhat dangerous thing for another package to assume the definition of an internal command won't change
but I'll see if I can find some workaround.

Here's a patch for now (after loading xepersian):
\makeatletter
\newcommand*{\@@do@wrglossary}[1]{%
  \begingroup
    \let\orgthe\the
    \let\orgnumber\number
    \let\orgromannumeral\romannumeral
    \let\orgalph\@alph
    \let\orgAlph\@Alph
    \let\orgRoman\@Roman
    \let\orgharfi\@harfi
    \let\orgadadi\@adadi
    \let\orgtartibi\@tartibi
    \def\the##1{%
      \ifx##1\c@page \gls@numberpage\else\orgthe##1\fi}%
    \def\number##1{%
      \ifx##1\c@page \gls@numberpage\else\orgnumber##1\fi}%
    \def\romannumeral##1{%
      \ifx##1\c@page \gls@romanpage\else\orgromannumeral##1\fi}%
    \def\@Roman##1{%
      \ifx##1\c@page \gls@Romanpage\else\orgRoman##1\fi}%
    \def\@alph##1{%
      \ifx##1\c@page \gls@alphpage\else\orgalph##1\fi}%
    \def\@Alph##1{%
      \ifx##1\c@page \gls@Alphpage\else\orgAlph##1\fi}%
    \gls@disablepagerefexpansion
    \protected@xdef\@glslocref{\theglsentrycounter}%
  \endgroup
  \@gls@checkmkidxchars\@glslocref
  \expandafter\ifx\theHglsentrycounter\theglsentrycounter\relax
    \def\@glo@counterprefix{}%
  \else
    \protected@edef\@glsHlocref{\theHglsentrycounter}%
    \@gls@checkmkidxchars\@glsHlocref
    \edef\@do@gls@getcounterprefix{\noexpand\@gls@getcounterprefix
      {\@glslocref}{\@glsHlocref}%
    }%
    \@do@gls@getcounterprefix
  \fi
  \edef\@gls@label{\glsdetoklabel{#1}}%
  \@@do@@wrglossary
}
\makeatother

تغییرات ایشون درست نیست. در نسخه تغییر یافته این دستور، شمارنده‌های محلی زی‌پرشین نیز باید باشند که در حال حاضر نیستند. تغییر درست بروز کردن تعریف این دستور در بسته زی‌پرشین است. اگر یادتان باشد مدتی قبل شما در استفاده از شمارنده حرفی یا عددی مشکل داشتید و تغییر فوق برای درست کردن آن مشکل بود.

در مورد تغییرات دستورا داخلی من با نظر ایشون موافق نیستم. بسیاری از بسته‌ها دستورات داخلی بسته‌های دیگر را از نو تعریف می‌کنند و آن را تغییر می‌دهند چون در غیر اینصورت باید قسمت بزرگی از آن بسته از نو نوشته شود. اندیشه من هم عوض شدن ثابت ماندن دستورات داخلی این بسته نبوده بلکه هر زمان که این بسته بروز می‌شد اگر تغییری در تعریفهایی که زی‌پرشین تغییر می‌داد انجام میشد این تغییرات در زی‌پرشین هم منعکس می‌شد. نه تنها بسته glossaries بلکه برای تمامی بسته‌های دیگر. این یکی از مشکلات/مزیات زی‌پرشین است که هیچگاه نمی‌تواند بروز نشود و همواره باید با تغییر در بسته‌های دیگر، آن هم تغییر کند تا مشکلی پیش نیاید.

آفلاین vafa

  • مشاور
  • Hero Member
  • *
  • تشکر
  • -اهدا شده: 78
  • -دریافت شده: 2012
  • ارسال: 4,429
    • ديدن مشخصات
این مطلب را هم اضافه کنم که ایشون تقصیر را بر گردن من گذاشتند من هم تقصیر را بر گردن ایشون می‌گذارم. شمارنده یک مسئله بسیار مهم است که کاربرد زیادی دارد و احتیاج به تغییر در آن وجود دارد. اینکه ایشون تنظیمات مربوط به شمارنده را در یک دستور داخلی مخفی کردند اشتباه ناشیانه‌ای در ماکرونویسی است چرا که خواسته یا ناخواسته بسته دیگر مجبور به تغییر دستورات داخلی خواهد شد. کار درست این است که ایشون تنظیمان مربوط به شمارنده را در یک ماکرو انجام دهند و این ماکرو را داخل این ماکروی داخلی قرار دهند به این ترتیب زی‌پرشین یا هر بسته دیگر تنها در صورت نیاز ماکروی تنظیمات شمارنده را تغییر خواهد داد نه ماکروی داخلی را و به این ترتیب مشکلی پیش نخواهد آمد.

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

  • همکاران
  • Hero Member
  • ***
  • تشکر
  • -اهدا شده: 192
  • -دریافت شده: 271
  • ارسال: 812
    • ديدن مشخصات
با سلام

صلاح می دانید نکاتی را که گفتید دوباره به ایشان به صورت ایمیلی بگویم؟

باتشکر

آفلاین vafa

  • مشاور
  • Hero Member
  • *
  • تشکر
  • -اهدا شده: 78
  • -دریافت شده: 2012
  • ارسال: 4,429
    • ديدن مشخصات
اگر ایمیل ایشان را برای من forward کنید خودم جواب می‌دهم، یک نسخه هم برای شما می‌فرستم. در ضمن آقای مهران با من تماس گرفتند و از نگهداری بسته‌ها منصرف شدند که آن را در پیغامی جدا خواهم گفت.

vafak@me.com

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

  • همکاران
  • Hero Member
  • ***
  • تشکر
  • -اهدا شده: 192
  • -دریافت شده: 271
  • ارسال: 812
    • ديدن مشخصات
با سلام و تشکر از لطف شما
به ایمیل شما ارسال کردم.
باتشکر

آفلاین vafa

  • مشاور
  • Hero Member
  • *
  • تشکر
  • -اهدا شده: 78
  • -دریافت شده: 2012
  • ارسال: 4,429
    • ديدن مشخصات
مشکل را در github درست کردم اما در حال حاضر فرصت upload آن را به CTAN ندارم:

https://github.com/vafak/xepersian/commit/3ab9a74a135bd9d1396ea0bebf071e19d7b3660d

 

مشکل با تولید واژه نامه بسته glossaries

نویسنده ابوالفضل دیانتانجمن حروف‌چینی مستندات

پاسخ ها: 2
مشاهده: 2706
آخرين ارسال دسامبر 07, 2013, 08:38:44 am
توسط vafa
تولید واژه نامه و فهرست اختصارات توسط بسته Glossaries

نویسنده ابوالفضل دیانتانجمن حروف‌چینی مستندات

پاسخ ها: 0
مشاهده: 2830
آخرين ارسال ژوئن 03, 2014, 10:01:35 pm
توسط ابوالفضل دیانت
واژه‌نامه با زیندی -Glossaries with Xindy

نویسنده هادی صفی‌اقدمانجمن Xindy

پاسخ ها: 19
مشاهده: 15251
آخرين ارسال آوریل 25, 2012, 09:54:12 am
توسط vafa
آپدیت glossaries و مشکل واژه نامه

نویسنده fatemeh1600انجمن Xindy

پاسخ ها: 4
مشاهده: 4040
آخرين ارسال دسامبر 01, 2013, 12:22:46 am
توسط vafa
مشکل ایجاد واژه‌نامه در زی‌پرشین

نویسنده وحید دامن‌افشانانجمن زی‌تک

پاسخ ها: 6
مشاهده: 6431
آخرين ارسال اكتبر 19, 2009, 11:32:18 am
توسط آسیه
تولید واژه‌نامه در زی‌پرشین

نویسنده مهدی امیدعلیانجمن عمومی

پاسخ ها: 23
مشاهده: 16097
آخرين ارسال سپتامبر 15, 2011, 10:58:28 pm
توسط کشفی
مشکل با بروزرسانی بسته hyperref

نویسنده محمد چهارسوقیانجمن عمومی

پاسخ ها: 4
مشاهده: 3184
آخرين ارسال مه 30, 2010, 07:11:56 pm
توسط محمد چهارسوقی
مناسب‌ترین بسته برای رسم اشکال مختلف در مقالات

نویسنده amirjadidiانجمن گرافیک، جدول و شکل

پاسخ ها: 2
مشاهده: 4646
آخرين ارسال مه 23, 2010, 05:32:57 pm
توسط محمود امین‌طوسی