در این پست سعی خواهم کرد تمام تغییراتی رو که در ساختار زیرنویس بستههای bidi و xepersian برای نسخه ۱۲ انجام میدهم لیست کنم:
۱- الگوریتم قدیمی خط زیرنویس خودکار را حذف کردهام و بجای آن الگوریتمی جدید جایگزین کردم که مشکلات زیر را ندارد:
الف- زیرنویسهای داخل محیط float نظم زیرنویس خودکار را بر هم نخواهد زد.
ب- اگر زیرنویسی در دو صفحه شکسته شود، باز هم نظم خط زیرنویس به هم نخواهد خورد.
تنها عیب الگوریتم جدید این است که برای داشتن خط زیرنویس خودکار مناسب بایستی xelatex را بیش از یک بار روی فایل خود run کنید اما در عوض الگوریتم خیلی سادهای است که فقط با استفاده از برچسبگذاری جهت اولین زیرنویس را در صفحه مشخص میکند و بسیاری از مشکلات الگوریتم پیشین را ندارد.
۲- ماکروهای داخلی زیرنویس و خط زیرنویس خودکار کاملاً از نو نوشته شدهاند.
۳- تعریف دستور \SplitFootnoteRule: اگر از این دستور در آغاز نوشتار استفاده کنید و زیرنویسشما برای مثال در صفحات ۱ و ۲ نوشته شده باشد (زیرنویس در صفحه ۱ شروع شده و در صفحه ۲ تموم شده)، در اینصورت خط زیرنویس در صفحه دوم به اندازه پهنای متن خواهد بود. یک نمونه ضمیمه کردم.
۴- تعریف دستور \debugfootnotedirection: با استفاده از این دستور جهت اولین زیرنویس در هر صفحه در فایل log نمایش داده میشود. این دستور بیشتر برای debugging خط زیرنویس خودکار کاربرد دارد.
مورد ب رو تست کردم و همه چی عالی کار میکنه. بنابراین مشکل گفته شده در این تاپیک (http://www.parsilatex.com/forum/SMF/index.php?topic=3430.0) هم حل شد. واقعاً ازت ممنونیم.
فقط دو پیشنهاد:
۱- توضیحات مربوط به دو دستور \SplitFootnoteRule و \debugfootnotedirection به راهنماها اضافه بشه.
۲- بهتر نیست کاری کنی که دستور \SplitFootnoteRule قبل از \begin{document} کار کنه؟ چون اکثر کاربرا عادت دارن که همه دستورات رو قبل از \begin{document} قرار بدن.
نقل قول از: وحید دامنافشان در اکتبر 29, 2012, 03:04:47 بعد از ظهر
۱- توضیحات مربوط به دو دستور \SplitFootnoteRule و \debugfootnotedirection به راهنماها اضافه بشه.
اضافه کردم.
نقل قول
۲- بهتر نیست کاری کنی که دستور \SplitFootnoteRule قبل از \begin{document} کار کنه؟ چون اکثر کاربرا عادت دارن که همه دستورات رو قبل از \begin{document} قرار بدن.
دستور \autoffotnoterule اول نوشتار فعال هست پس برای اینکه دستور \SplitFootnoteRule کار کنه باید اول نوشتار بعذ از دستور \autofootnoterule استفاده بشه.