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

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

اصلاح چپ به راست بودن عنوان یک float جدید

نویسنده Sadeq, فبریه 05, 2011, 08:52:00 بعد از ظهر

« قبلی - بعدی »

Sadeq

سلام دوستان

لطفاً به فایلی که پیوست کردم نگاه کنید. این فایل شامل سورس تک، PDF، و log مربوطه است. همان طور که مشاهده می‌کنید، وقتی با استفاده از دستور \newfloat یک جسم شناور جدید تعریف می‌کنیم، عنوان (caption) آن به صورت چپ به راست است.

فکر کنم علت اینه که بسته float میاد \caption رو از نو تعریف میکنه، که در نتیجه کاری به جهت محیط نداره. ولی تعریف \caption تو این محیط خیلی پیچیده بود و من نفهمیدم کجاش میشه مثلاً \rl اضافه کرد.

نکته آخر: من از MikTeX 2.8 استفاده می‌کنم. تو بعضی پستها خوندم که توصیه کردید از TeXLive استفاده بشه، ولی در حال حاضر بهش دسترسی ندارم. اگه دوستانی به TeXLive دسترسی دارن میتونن بگن که آیا خروجی اونها هم مثل من هست یا نه. ممنون.

vafa

نقل قول از: Sadeq در فبریه 05, 2011, 08:52:00 بعد از ظهر
سلام دوستان

لطفاً به فایلی که پیوست کردم نگاه کنید. این فایل شامل سورس تک، PDF، و log مربوطه است. همان طور که مشاهده می‌کنید، وقتی با استفاده از دستور \newfloat یک جسم شناور جدید تعریف می‌کنیم، عنوان (caption) آن به صورت چپ به راست است.

فکر کنم علت اینه که بسته float میاد \caption رو از نو تعریف میکنه، که در نتیجه کاری به جهت محیط نداره. ولی تعریف \caption تو این محیط خیلی پیچیده بود و من نفهمیدم کجاش میشه مثلاً \rl اضافه کرد.

نکته آخر: من از MikTeX 2.8 استفاده می‌کنم. تو بعضی پستها خوندم که توصیه کردید از TeXLive استفاده بشه، ولی در حال حاضر بهش دسترسی ندارم. اگه دوستانی به TeXLive دسترسی دارن میتونن بگن که آیا خروجی اونها هم مثل من هست یا نه. ممنون.
حالا چه اجباریه شما بیایید از سبک float استفاده کنید. این سبک فعلاً پشتیبانی نمی‌شود و خودتون مسئول استفاده کردن ازش و مشکلات احتمالیش هستید. در ضمن فرمت مجاز برای فایلهای فشرده zip است نه rar.

vafa

نقل قول از: وفا در فبریه 06, 2011, 01:33:59 قبل از ظهر
حالا چه اجباریه شما بیایید از سبک float استفاده کنید. این سبک فعلاً پشتیبانی نمی‌شود و خودتون مسئول استفاده کردن ازش و مشکلات احتمالیش هستید. در ضمن فرمت مجاز برای فایلهای فشرده zip است نه rar.
پشتیبانی از float اضافه کردم. گونه آزمایشی bidi و xepersian را از bitbucket دریافت کنید و استفاده کنید.

Sadeq

نقل قول از: وفا در فبریه 06, 2011, 03:33:27 قبل از ظهرپشتیبانی از float اضافه کردم. گونه آزمایشی bidi و xepersian را از bitbucket دریافت کنید و استفاده کنید.
سلام ممنون!
یکم تو کدتون فضولی کردم. فهمیدم اگه کسی میخواست بدون دست زدن به bidi مشکل رو حل کنه کافی بود کد زیر رو به برنامه‌اش اضافه کنه:

\makeatletter‎\renewcommand\floatc@plain[2]{\setbox\@tempboxa\hbox{{\@fs@cfont #1:} #2}%  \ifdim\wd\@tempboxa>\hsize {\@fs@cfont #1:} #2\par    \else\hbox to\hsize{\if@RTL\beginR\fi\hfil\box\@tempboxa\hfil\if@RTL\endR\fi}\fi}‎‎\makeatother
که البته کد اصلی بسته float به صورت زیره:
\newcommand\floatc@plain[2]{\setbox\@tempboxa\hbox{{\@fs@cfont #1:} #2}%  \ifdim\wd\@tempboxa>\hsize {\@fs@cfont #1:} #2\par    \else\hbox to\hsize{\hfil\box\@tempboxa\hfil}\fi}
پ.ن.: من چون این پروژه رو دوست دارم، دوست دارم خوب ازش سر در بیارم، شاید بلکه یه روزی بتونم کمکی بکنم. امیدوارم از فضولیم تو کدتون ناراحت نشین!

vafa

نقل قول از: Sadeq در فبریه 06, 2011, 08:14:02 قبل از ظهرسلام ممنون! یکم تو کدتون فضولی کردم. فهمیدم اگه کسی میخواست بدون دست زدن به bidi مشکل رو حل کنه کافی بود کد زیر رو به برنامه‌اش اضافه کنه:  \makeatletter‎\renewcommand\floatc@plain[2]{\setbox\@tempboxa\hbox{{\@fs@cfont #1:} #2}%  \ifdim\wd\@tempboxa>\hsize {\@fs@cfont #1:} #2\par    \else\hbox to\hsize{\if@RTL\beginR\fi\hfil\box\@tempboxa\hfil\if@RTL\endR\fi}\fi}‎‎\makeatother که البته کد اصلی بسته float به صورت زیره: \newcommand\floatc@plain[2]{\setbox\@tempboxa\hbox{{\@fs@cfont #1:} #2}%  \ifdim\wd\@tempboxa>\hsize {\@fs@cfont #1:} #2\par    \else\hbox to\hsize{\hfil\box\@tempboxa\hfil}\fi} پ.ن.: من چون این پروژه رو دوست دارم، دوست دارم خوب ازش سر در بیارم، شاید بلکه یه روزی بتونم کمکی بکنم. امیدوارم از فضولیم تو کدتون ناراحت نشین!
خوب پس باید به دلیلش هم علاقه‌مند باشی. دلیلش اینه که تک توی فضای عمودی (vmode) هستش و بنابراین \caption چپ به راست چیده می‌شود. یک راه درست کردن دیگش این بود که از فضای عمودی خارج بشیم که در تغییر قبلیش اگر نگاه کردی بودی من از \leavevmode استفاده کردم بودم. \long\def\float@caption#1[#2]#3{\addcontentsline{\@nameuse{ext@#1}}{#1}%    {\protect\numberline{\@nameuse{the#1}}{\ignorespaces #2}}   \global\setbox\@floatcapt\vbox\bgroup\@parboxrestore\leavevmode     \normalsize\@fs@capt{\@nameuse{fnum@#1}}{\ignorespaces #3}%     \@ifnextchar[{\float@ccon}{\egroup}} یک راه‌حل دیگه استفاده از \hboxR به جای این راه‌حلی که شما گذاشتید یعنی: \renewcommand\floatc@plain[2]{\setbox\@tempboxa\hboxR{{\@fs@cfont #1:} #2}%   \ifdim\wd\@tempboxa>\hsize {\@fs@cfont #1:} #2\par     \else\hbox to\hsize{\hfil\box\@tempboxa\hfil}\fi} فقط لطفاً سعی کنید خودتون این کدها را دستی وارد نکنید و حتماً بسته‌ها را از bitbucket دریافت کنید و استفاده کنید تا مشکلی پیش نیاد.

Sadeq

نقل قولخوب پس باید به دلیلش هم علاقه‌مند باشی.
بله خیلی علاقه داشتم بدونم، ولی ترسیدم وقتتون رو بگیرم برای همین خودم یکم بررسی کردم و یه چیزایی هم دستگیرم شد، و لی توضیحتون راجع به vmode و \hboxR خیلی جالب بود.

نقل قولفقط لطفاً سعی کنید خودتون این کدها را دستی وارد نکنید و حتماً بسته‌ها را از bitbucket دریافت کنید و استفاده کنید تا مشکلی پیش نیاد.
بله حتماً!