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

لاتک LATEX => سبک نوشتار => نويسنده: فکورپور در مه 05, 2013, 12:21:30 am

عنوان: چرا sepmark روی شناورهای تعریف شده با DeclareFloatingEnvironment بی اثر است؟
رسال شده توسط: فکورپور در مه 05, 2013, 12:21:30 am
من از دستور sepmark برای تغییر جداکننده از نقطه به تیره استفاده کردم. از کلاس تز شریف هم استفاده میکنم. ولی جداکننده شرح‌های دو نوع محیط شناور که تعریف کرده ام همان نقطه باقی مانده است. چه کنم؟

فایل کمینه هم ضمیمه شده است.
عنوان: پاسخ : چرا sepmark روی شناورهای تعریف شده با DeclareFloatingEnvironment بی اثر است؟
رسال شده توسط: وحید دامن‌افشان در مه 05, 2013, 02:37:52 am
لطفاً یه فایل کمینه (ترجیحاً بدون استفاده از استایل شریف) پیوست کنین تا ببینیم مشکل از کجاست.
عنوان: پاسخ : چرا sepmark روی شناورهای تعریف شده با DeclareFloatingEnvironment بی اثر است؟
رسال شده توسط: vafa در مه 05, 2013, 05:45:29 am
من از دستور sepmark برای تغییر جداکننده از نقطه به تیره استفاده کردم. از کلاس تز شریف هم استفاده میکنم. ولی جداکننده شرح‌های دو نوع محیط شناور که تعریف کرده ام همان نقطه باقی مانده است. چه کنم؟

فایل کمینه هم ضمیمه شده است.
از بسته newfloat استفاده نکن. این بسته در حال حاضر پشتیبانی نمیشه. اگر مایل به پشتیبانی از این بسته هستی مشکل را در لینک زیر گزارش بده:

https://github.com/persian-tex/bidi/issues
عنوان: پاسخ : چرا sepmark روی شناورهای تعریف شده با DeclareFloatingEnvironment بی اثر است؟
رسال شده توسط: فکورپور در مه 08, 2013, 10:18:58 pm
ببخشید من متوجه نشدم که بجای بسته newfloat  از چه بسته ای استفاده کنم تا جواب بگیرم؟
عنوان: پاسخ : چرا sepmark روی شناورهای تعریف شده با DeclareFloatingEnvironment بی اثر است؟
رسال شده توسط: vafa در مه 09, 2013, 04:14:29 am
ببخشید من متوجه نشدم که بجای بسته newfloat  از چه بسته ای استفاده کنم تا جواب بگیرم؟
بقیه‌ش رو متوجه شدی؟ اصلاً احتیاجی نیست از بسته‌ای استفاده کنی. هر چند اگر خواستی بسته float هست.
عنوان: پاسخ : چرا sepmark روی شناورهای تعریف شده با DeclareFloatingEnvironment بی اثر است؟
رسال شده توسط: فکورپور در مه 09, 2013, 07:25:27 pm
جناب وفا
با حرف شما معلوم شد که من خیلی خارج از مسیر افتاده‌ام! پس از میدان آزادی شروع می‌کنم: من لازم دارم که علاوه بر جدول و شکل، شناورهای جدید تعریف کنم (به فرض شِما و نمودار) و علاوه بر این میخواهم که جداکننده آنها خط تیره باشد نه نقطه.
اگر میفرمایید اصلاْ از هیچ بسته ای استفاده نکنم پس چطور این شناورها را تعریف کنم؟
ببخشید که سوالم زیر ابتدایی است ولی مشکل چنین است! ;)
عنوان: پاسخ : چرا sepmark روی شناورهای تعریف شده با DeclareFloatingEnvironment بی اثر است؟
رسال شده توسط: vafa در مه 10, 2013, 04:42:17 am
جناب وفا
با حرف شما معلوم شد که من خیلی خارج از مسیر افتاده‌ام! پس از میدان آزادی شروع می‌کنم: من لازم دارم که علاوه بر جدول و شکل، شناورهای جدید تعریف کنم (به فرض شِما و نمودار) و علاوه بر این میخواهم که جداکننده آنها خط تیره باشد نه نقطه.
اگر میفرمایید اصلاْ از هیچ بسته ای استفاده نکنم پس چطور این شناورها را تعریف کنم؟
ببخشید که سوالم زیر ابتدایی است ولی مشکل چنین است! ;)
\documentclass{book}
\usepackage{xepersian}

\makeatletter
\newcounter{scheme}[chapter]
\renewcommand \thescheme
     {\ifnum \c@chapter>\z@ \thechapter\@SepMark\fi \@arabic\c@scheme}
\def\fps@scheme{thP!}
\def\ftype@scheme{3}
\def\ext@scheme{los}
\def\fnum@scheme{\schemename\nobreakspace\thescheme}
\newenvironment{scheme}
               {\@float{scheme}}
               {\end@float}
\newenvironment{scheme*}
               {\@dblfloat{scheme}}
               {\end@dblfloat}
\newcommand*{\schemename}{شمای}
\newcommand*{\listschemename}{فهرست شِماها}
\newcommand\listofschemes{%
    \if@twocolumn
      \@restonecoltrue\onecolumn
    \else
      \@restonecolfalse
    \fi
    \chapter*{\listschemename}%
      \@mkboth{%
          \MakeUppercase\listschemename}%
         {\MakeUppercase\listschemename}%
    \@starttoc{los}%
    \if@restonecol\twocolumn\fi
    }
\let\l@scheme\l@figure
\makeatother




\SepMark{-}
\begin{document}
\listofschemes
\فصل{اول}
\قسمت{بدون مشکل }
\زیرقسمت{بدون مشکل}

\شروع{figure}
\شرح{بدون مشکل}
\پایان{figure}


\شروع{scheme}
\شرح{مشکل اینجا معلوم می‌شود.}
\پایان{scheme}
\end{document}

عنوان: پاسخ : چرا sepmark روی شناورهای تعریف شده با DeclareFloatingEnvironment بی اثر است؟
رسال شده توسط: محسن شریفی تبار در مه 10, 2013, 08:50:40 am
جناب وفا
با حرف شما معلوم شد که من خیلی خارج از مسیر افتاده‌ام! پس از میدان آزادی شروع می‌کنم: من لازم دارم که علاوه بر جدول و شکل، شناورهای جدید تعریف کنم (به فرض شِما و نمودار) و علاوه بر این میخواهم که جداکننده آنها خط تیره باشد نه نقطه.
اگر میفرمایید اصلاْ از هیچ بسته ای استفاده نکنم پس چطور این شناورها را تعریف کنم؟
ببخشید که سوالم زیر ابتدایی است ولی مشکل چنین است! ;)
البته می‌توانید مسأله را به شکل زیر هم حل کنید. بایستی دستور زیر را بعد از تعریف شما قرار دهید،
\renewcommand\thescheme{\thechapter\hskip0pt-\hskip0pt\arabic{scheme}}
عنوان: پاسخ : چرا sepmark روی شناورهای تعریف شده با DeclareFloatingEnvironment بی اثر است؟
رسال شده توسط: vafa در مه 10, 2013, 09:50:03 am
البته می‌توانید مسأله را به شکل زیر هم حل کنید. بایستی دستور زیر را بعد از تعریف شما قرار دهید،
\renewcommand\thescheme{\thechapter\hskip0pt-\hskip0pt\arabic{scheme}}
این روش مشکلی دارد. البته مشکل را یادم نیست اما یادم هست که دو سال پیش آقای دامن‌افشان این مشکل را گزارش کرده بودند.
عنوان: پاسخ : چرا sepmark روی شناورهای تعریف شده با DeclareFloatingEnvironment بی اثر است؟
رسال شده توسط: vafa در مه 10, 2013, 10:24:25 am
این روش مشکلی دارد. البته مشکل را یادم نیست اما یادم هست که دو سال پیش آقای دامن‌افشان این مشکل را گزارش کرده بودند.
پست زیر در رابطه با مشکلی هست که اشاره کردم:

http://www.parsilatex.com/forum/SMF/index.php?topic=1305.0
عنوان: پاسخ : چرا sepmark روی شناورهای تعریف شده با DeclareFloatingEnvironment بی اثر است؟
رسال شده توسط: محسن شریفی تبار در مه 16, 2013, 07:33:49 am
بسیار خوب، منطقی هم هست. یعنی استفاده از hskip می‌تواند باعث شکسته شدن در جای نامناسب باشد. من نحوه تعریف را در bidi دوباره نگاه کردم. با این حساب در موارد این‌چنینی، آیا استفاده از نیم‌فاصله در تعریف بالا به جای hskip، راه حل درستی است یا باز هم مشکلی دارد؟
عنوان: پاسخ : چرا sepmark روی شناورهای تعریف شده با DeclareFloatingEnvironment بی اثر است؟
رسال شده توسط: vafa در مه 16, 2013, 07:46:25 am
بسیار خوب، منطقی هم هست. یعنی استفاده از hskip می‌تواند باعث شکسته شدن در جای نامناسب باشد. من نحوه تعریف را در bidi دوباره نگاه کردم. با این حساب در موارد این‌چنینی، آیا استفاده از نیم‌فاصله در تعریف بالا به جای hskip، راه حل درستی است یا باز هم مشکلی دارد؟
نباید بی مشکل باشد. چرا از تعریف زیر استفاده نمی‌کنید:
\makeatletter
\renewcommand\thescheme{\thechapter\@SepMark\arabic{scheme}}
\makeatother
عنوان: پاسخ : چرا sepmark روی شناورهای تعریف شده با DeclareFloatingEnvironment بی اثر است؟
رسال شده توسط: محسن شریفی تبار در مه 16, 2013, 08:11:16 am
نباید بی مشکل باشد. چرا از تعریف زیر استفاده نمی‌کنید:
\makeatletter
\renewcommand\thescheme{\thechapter\@SepMark\arabic{scheme}}
\makeatother
مسأله اینجاست که مثلا خودم در پایان‌نامه دکتری، به شکل معمول از نقطه برای جداسازی استفاده می‌کردم، اما می‌خواستم جداساز در شماره section ها، علامت خط تیره باشد. برای این منظور، عوض کردن متوالی تعریف SepMark منطقی نبود و فکر کنم کار هم نکند. لذا تعریف thesection را مشابه بالا عوض کردم. فکر نمی‌کنم در bidi قرار دادن امکان اینکه چند نوع علامت جداساز داشته باشیم، منطقی باشد. اما راه حل درست در موارد این‌چنینی، آیا همین روش مورد استفاده بنده است؟ از این نظر که ساده است و به نوعی برای هر حالت دیگر هم مشابه همین است و فقط یک تعریف جدید باید صورت بگیرد.
عنوان: پاسخ : چرا sepmark روی شناورهای تعریف شده با DeclareFloatingEnvironment بی اثر است؟
رسال شده توسط: vafa در مه 16, 2013, 08:39:30 am
مسأله اینجاست که مثلا خودم در پایان‌نامه دکتری، به شکل معمول از نقطه برای جداسازی استفاده می‌کردم، اما می‌خواستم جداساز در شماره section ها، علامت خط تیره باشد. برای این منظور، عوض کردن متوالی تعریف SepMark منطقی نبود و فکر کنم کار هم نکند. لذا تعریف thesection را مشابه بالا عوض کردم. فکر نمی‌کنم در bidi قرار دادن امکان اینکه چند نوع علامت جداساز داشته باشیم، منطقی باشد. اما راه حل درست در موارد این‌چنینی، آیا همین روش مورد استفاده بنده است؟ از این نظر که ساده است و به نوعی برای هر حالت دیگر هم مشابه همین است و فقط یک تعریف جدید باید صورت بگیرد.
\documentclass{book}
\usepackage{xepersian}
\makeatletter
\newcount\my@sec@level
\def\@sect#1#2#3#4#5#6[#7]#8{%
 \my@sec@level=#2%
  \ifnum #2>\c@secnumdepth
    \let\@svsec\@empty
  \else
    \refstepcounter{#1}%
    \protected@edef\@svsec{\@seccntformat{#1}\relax}%
  \fi
  \@tempskipa #5\relax
  \ifdim \@tempskipa>\z@
    \begingroup
      #6{%
        \@hangfrom{\hskip #3\relax\@svsec}%
          \interlinepenalty \@M #8\@@par}%
    \endgroup
    \csname #1mark\endcsname{#7}%
    \addcontentsline{toc}{#1}{%
      \ifnum #2>\c@secnumdepth \else
        \protect\numberline{\csname the#1\endcsname}%
      \fi
      #7}%
  \else
    \def\@svsechd{%
      #6{\hskip #3\relax
      \@svsec #8}%
      \csname #1mark\endcsname{#7}%
      \addcontentsline{toc}{#1}{%
        \ifnum #2>\c@secnumdepth \else
          \protect\numberline{\csname the#1\endcsname}%
        \fi
        #7}}%
  \fi
  \@xsect{#5}}
\SepMark{\ifnum\my@sec@level=\@ne -\else .\fi}
\makeatother
\begin{document}
\chapter{}
\section{}
\subsection{}
\end{document}