تالار گفتگوی پارسی‌لاتک

لاتک LATEX => گرافیک، جدول و شکل => نويسنده: Sadeq در فوریه 05, 2011, 08:52:00 pm

عنوان: اصلاح چپ به راست بودن عنوان یک float جدید
رسال شده توسط: Sadeq در فوریه 05, 2011, 08:52:00 pm
سلام دوستان

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

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

نکته آخر: من از MikTeX 2.8 استفاده می‌کنم. تو بعضی پستها خوندم که توصیه کردید از TeXLive استفاده بشه، ولی در حال حاضر بهش دسترسی ندارم. اگه دوستانی به TeXLive دسترسی دارن میتونن بگن که آیا خروجی اونها هم مثل من هست یا نه. ممنون.
عنوان: پاسخ : اصلاح چپ به راست بودن عنوان یک float جدید
رسال شده توسط: vafa در فوریه 06, 2011, 01:33:59 am
سلام دوستان

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

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

نکته آخر: من از MikTeX 2.8 استفاده می‌کنم. تو بعضی پستها خوندم که توصیه کردید از TeXLive استفاده بشه، ولی در حال حاضر بهش دسترسی ندارم. اگه دوستانی به TeXLive دسترسی دارن میتونن بگن که آیا خروجی اونها هم مثل من هست یا نه. ممنون.
حالا چه اجباریه شما بیایید از سبک float استفاده کنید. این سبک فعلاً پشتیبانی نمی‌شود و خودتون مسئول استفاده کردن ازش و مشکلات احتمالیش هستید. در ضمن فرمت مجاز برای فایلهای فشرده zip است نه rar.
عنوان: پاسخ : اصلاح چپ به راست بودن عنوان یک float جدید
رسال شده توسط: vafa در فوریه 06, 2011, 03:33:27 am
حالا چه اجباریه شما بیایید از سبک float استفاده کنید. این سبک فعلاً پشتیبانی نمی‌شود و خودتون مسئول استفاده کردن ازش و مشکلات احتمالیش هستید. در ضمن فرمت مجاز برای فایلهای فشرده zip است نه rar.
پشتیبانی از float اضافه کردم. گونه آزمایشی bidi و xepersian را از bitbucket دریافت کنید و استفاده کنید.
عنوان: پاسخ : اصلاح چپ به راست بودن عنوان یک float جدید
رسال شده توسط: Sadeq در فوریه 06, 2011, 08:14:02 am
پشتیبانی از 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}پ.ن.: من چون این پروژه رو دوست دارم، دوست دارم خوب ازش سر در بیارم، شاید بلکه یه روزی بتونم کمکی بکنم. امیدوارم از فضولیم تو کدتون ناراحت نشین!
عنوان: پاسخ : اصلاح چپ به راست بودن عنوان یک float جدید
رسال شده توسط: vafa در فوریه 06, 2011, 08:34:27 am
سلام ممنون! یکم تو کدتون فضولی کردم. فهمیدم اگه کسی میخواست بدون دست زدن به 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 دریافت کنید و استفاده کنید تا مشکلی پیش نیاد.
عنوان: پاسخ : اصلاح چپ به راست بودن عنوان یک float جدید
رسال شده توسط: Sadeq در فوریه 06, 2011, 09:51:49 am
نقل قول
خوب پس باید به دلیلش هم علاقه‌مند باشی.
بله خیلی علاقه داشتم بدونم، ولی ترسیدم وقتتون رو بگیرم برای همین خودم یکم بررسی کردم و یه چیزایی هم دستگیرم شد، و لی توضیحتون راجع به vmode و \hboxR خیلی جالب بود.

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