با سلام
در مثال پیوست مراجع لاتین درون محیط LTRbibitems قرار گرفتهاند.
اگر به تصویر ضمیمه دقت فرمایید مشخص است که فاصله بین مراجع لاتین (کادر سبزرنگ) بیشتر از فاصلهی بین مراجع فارسی (کادر قرمزرنگ) است.
آیا برای یکسانسازی این فاصلهها باید کد این محیط توسط آقا وفا اصلاح شود؟
نقل قول از: محمود امینطوسی در جولای 24, 2012, 12:46:51 بعد از ظهر
با سلام
در مثال پیوست مراجع لاتین درون محیط LTRbibitems قرار گرفتهاند.
اگر به تصویر ضمیمه دقت فرمایید مشخص است که فاصله بین مراجع لاتین (کادر سبزرنگ) بیشتر از فاصلهی بین مراجع فارسی (کادر قرمزرنگ) است.
این بصورت مسلم باگ بسته persian-bib است که هر \bibitem لاتین را داخل یک محیط جداگانه LTRbibitems قرار میدهد در صورتی که باید همه \bibitemهای لاتین را داخل یک محیط LTRbibitems قرار دهد. فاصله عمودی که میبینید طبیعی است و علتش استفاده از محیط trivlist است که در پایان این محیط یک \par قرار میدهد و فاصله اضافهای که میبینید به خاطر این \par در آخر محیط trivlist میباشد. برای اطلاعات بیشتر تعریف \endtrivlist را در فایل latex.ltx مشاهده کنید:
\def\endtrivlist{%
\if@inlabel
\leavevmode
\global \@inlabelfalse
\fi
\if@newlist
\@noitemerr
\global \@newlistfalse
\fi
\ifhmode\unskip \par
\else
\@inmatherr{\end{\@currenvir}}%
\fi
\if@noparlist \else
\ifdim\lastskip >\z@
\@tempskipa\lastskip \vskip -\lastskip
\advance\@tempskipa\parskip \advance\@tempskipa -\@outerparskip
\vskip\@tempskipa
\fi
\@endparenv
\fi
}
نقل قول
آیا برای یکسانسازی این فاصلهها باید کد این محیط توسط آقا وفا اصلاح شود؟
خیر همانطور که گفتم باگ بسته persian-bib شما است که باید باگتان را درست کنید.
نقل قول از: وفا کارنپهلو در جولای 24, 2012, 01:49:14 بعد از ظهر
این بصورت مسلم باگ بسته persian-bib است که هر \bibitem لاتین را داخل یک محیط جداگانه LTRbibitems قرار میدهد در صورتی که باید همه \bibitemهای لاتین را داخل یک محیط LTRbibitems قرار دهد.
سلام. از پاسخ شما ممنونم.
برداشت من از محیط LTRbibitems این بود که هر مدخل به صورت جداگانه باید داخل آن قرار گیرد.
۱- درحال حاضر روشی برای اصلاح استیلها که بتواند مراجع را گروه بندی کند و گروه لاتین را داخل محیط مربوطه قرار دهد به نظرم نمیرسد و حتی نمیدانم شدنی هست یا خیر :(. کارهایی که تاکنون انجام دادهام براساس پردازش روی هر مدخل به صورت جداگانه بوده است.
۲- حتی اگر عمل فوق، شدنی باشد، باز هم مشکلی که عنوان کردم در استیلهایی که مراجع را مرتب نمیکنند وجود خواهد داشت. در این استیلها، مراجع فارسی و لاتین میتوانند لابلای هم ظاهر شوند. در این حالات پس از هر گروه از مراجع لاتین یک فاصله عمودی زیادتر خواهیم داشت.
۳- یک نکته جالب این است که اگر از استیلهایی که نیاز به بسته natbib دارند (مانند asa-fa) استفاده کنیم، به نظر میرسد فاصله عمودی مراجع لاتین به مقدار ناچیزی از فاصله عمودی مراجع فارسی کمترند (برخلاف حالت قبل). مثال به پیوست است.
۳آ) آیا این اختلاف ناچیز به سبب متفاوت بودن اندازه ارتفاع گلیفها در قلم فارسی و لاتین است؟
۳ب) آیا در هنگام استفاده از بسته natbib محیط trivlist که اشاره فرمودید بیاثر است؟
۴- آیا برای رفع مشکل نمیتوانم par\ را به انتهای هر مدخل فارسی اضافه کنم تا فاصلهها یکسان شود؟
نقل قول از: محمود امینطوسی در جولای 24, 2012, 03:28:45 بعد از ظهر
سلام. از پاسخ شما ممنونم.
برداشت من از محیط LTRbibitems این بود که هر مدخل به صورت جداگانه باید داخل آن قرار گیرد.
۱- درحال حاضر روشی برای اصلاح استیلها که بتواند مراجع را گروه بندی کند و گروه لاتین را داخل محیط مربوطه قرار دهد به نظرم نمیرسد و حتی نمیدانم شدنی هست یا خیر :(. کارهایی که تاکنون انجام دادهام براساس پردازش روی هر مدخل به صورت جداگانه بوده است.
۲- حتی اگر عمل فوق، شدنی باشد، باز هم مشکلی که عنوان کردم در استیلهایی که مراجع را مرتب نمیکنند وجود خواهد داشت. در این استیلها، مراجع فارسی و لاتین میتوانند لابلای هم ظاهر شوند. در این حالات پس از هر گروه از مراجع لاتین یک فاصله عمودی زیادتر خواهیم داشت.
۳- یک نکته جالب این است که اگر از استیلهایی که نیاز به بسته natbib دارند (مانند asa-fa) استفاده کنیم، به نظر میرسد فاصله عمودی مراجع لاتین به مقدار ناچیزی از فاصله عمودی مراجع فارسی کمترند (برخلاف حالت قبل). مثال به پیوست است.
۳آ) آیا این اختلاف ناچیز به سبب متفاوت بودن اندازه ارتفاع گلیفها در قلم فارسی و لاتین است؟
۳ب) آیا در هنگام استفاده از بسته natbib محیط trivlist که اشاره فرمودید بیاثر است؟
۴- آیا برای رفع مشکل نمیتوانم par\ را به انتهای هر مدخل فارسی اضافه کنم تا فاصلهها یکسان شود؟
نمیدانم. باگ بسته شما است و شما خودتان باید تحقیق کنید و آن را حل کنید متأسفانه من فرصت کافی برای درست کردن باگ بسته شما را ندارم.
نقل قول از: وفا کارنپهلو در جولای 24, 2012, 03:40:53 بعد از ظهر
نمیدانم. باگ بسته شما است و شما خودتان باید تحقیق کنید و آن را حل کنید متأسفانه من فرصت کافی برای درست کردن باگ بسته شما را ندارم.
فرض کنید فردی قصد استفاده از استیلهای فارسی را ندارد. اگر قرار باشد چند مرجع فارسی و لاتین لابلای هم داشته باشد (مثلا اولی و سومی فارسی و دومی و چهارمی لاتین). روش درست آن در زیپرشین که مشکل اختلاف فاصله را نداشته باشد چیست؟
نقل قول از: محمود امینطوسی در جولای 24, 2012, 09:08:23 بعد از ظهر
فرض کنید فردی قصد استفاده از استیلهای فارسی را ندارد. اگر قرار باشد چند مرجع فارسی و لاتین لابلای هم داشته باشد (مثلا اولی و سومی فارسی و دومی و چهارمی لاتین). روش درست آن در زیپرشین که مشکل اختلاف فاصله را نداشته باشد چیست؟
سوالتان را از نگهدارنده آینده بسته زیپرشین بپرسید. من دیگر وظیفهای ندارم.
من راهحلی پیدا کردم تا این مشکل حل شود. راهحل بصورت مسلم عدم استفاده از دستور \endtrivlist در انتهای محیطهای LTRitems, RTLitems, LTRbibitems و RTLbibitems میباشد. در عوض فاصله عمودی به اندازه صفر در انتهای این محیطها باید قرار بگیرد.
نقل قول از: وفا کارنپهلو در جولای 30, 2012, 08:00:16 قبل از ظهر
من راهحلی پیدا کردم تا این مشکل حل شود. راهحل بصورت مسلم عدم استفاده از دستور \endtrivlist در انتهای محیطهای LTRitems, RTLitems, LTRbibitems و RTLbibitems میباشد. در عوض فاصله عمودی به اندازه صفر در انتهای این محیطها باید قرار بگیرد.
سلام. متشکرم.
البته من هم راه حلی برای قرار دادن تمام مراجع لاتین در داخل محیط LTRbibitems به نظرم رسید که هنوز فرصت نکردهام آنرا اعمال کنم.
البته در هر صورت این راه حل فقط برای استیلهایی که خروجی آنها مرتب شده است کاربرد خواهد داشت.
به این ترتیب برای استیلهای با خروجی نامرتب، باید منتظر نگهدارنده آتی زیپرشین باشم تا راه حل شما عملیاتی گردد.
نقل قول از: محمود امینطوسی در جولای 30, 2012, 10:33:58 قبل از ظهر
...
به این ترتیب برای استیلهای با خروجی نامرتب، باید منتظر نگهدارنده آتی زیپرشین باشم تا راه حل شما عملیاتی گردد.
یا اینکه خودتان محیط را از نو تعریف کنید:
\renewenvironment{LTRbibitems}
{\par\@RTLfalse
\if@bidi@list@minipage@parbox
\parshape \@ne \dimexpr(\@totalleftmargin-\leftmargin) \linewidth
\else \if@RTLtab\if@bidi@list@minipage@parbox@not@nob
\parshape \@ne \dimexpr(\@totalleftmargin+\leftmargin) \linewidth\else
\parshape \@ne \dimexpr(\@totalleftmargin-\leftmargin) \linewidth\fi
\else \parshape \@ne \dimexpr(\@totalleftmargin+\leftmargin) \linewidth\fi\fi
\ignorespaces}{\vskip\z@}