سلام، لطفا وارد شوید یا عضو شوید.

نویسنده موضوع: چگونه می توان در sidebar بخش ها به صورت خودکار واردشوند.  (دفعات بازدید: 3414 بار)

آفلاین ابوالفضل دیانت

  • همکاران
  • Hero Member
  • ***
  • تشکر
  • -اهدا شده: 192
  • -دریافت شده: 271
  • ارسال: 812
    • ديدن مشخصات
با سلام
همان طور که در مثال کوچک زیر مشاهده می کنید من مجبورم برای وارد کردن در sidebar به صورت دستی همه را خودم hyperref‌ کنم. چگونه می شود این کار به صورت خودکار انجام شود و تمامی بخش ها و زیر بخش ها
به طور خودکار در وسط sidebar بیایند.
باتشکر

آفلاین vafa

  • مشاور
  • Hero Member
  • *
  • تشکر
  • -اهدا شده: 78
  • -دریافت شده: 2012
  • ارسال: 4,429
    • ديدن مشخصات
راحت‌ترین راه اینه که تعریف دستور \tableofcontennts رو تغییر بدی:
\renewcommand\tableofcontents{%
\begin{staticcontents*}{sidebar}
\begin{center}
    \@starttoc{toc}%
        \end{center}
\end{staticcontents*}
    }
از اونجایی که در side bar معمولاً احتیاجی به شماره \section یعنی همون \thsection نیست باید کاری کنی که این شماره در side bar نیاد:
\def\@sect#1#2#3#4#5#6[#7]#8{%
  \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}{%
      #7}%
  \else
    \def\@svsechd{%
      #6{\hskip #3\relax
      \@svsec #8}%
      \csname #1mark\endcsname{#7}%
      \addcontentsline{toc}{#1}{%
        #7}}%
  \fi
  \@xsect{#5}}
همچنین در side bar احتیاجی به شماره صفحه \section هم نیست پس باید از شر شماره صفحه هم در side bar خلاص بشی:
\renewcommand*\l@section[2]{%
  \ifnum \c@tocdepth >\z@
    \addpenalty\@secpenalty
    \addvspace{0.1em \@plus\p@}%
    \setlength\@tempdima{1.5em}%
    \begingroup
      \parindent \z@ \if@RTL\leftskip\else\rightskip\fi \@pnumwidth
      \parfillskip -\@pnumwidth
      \leavevmode \bfseries
      \advance\if@RTL\rightskip\else\leftskip\fi\@tempdima
      \hskip -\if@RTL\rightskip\else\leftskip\fi
      \tiny#1\hfill\nobreak\par
    \endgroup
  \fi}
حالا فقط کافیه در شروع نوشتار از دستور \tableofcontents استفاده کنی.

آفلاین ابوالفضل دیانت

  • همکاران
  • Hero Member
  • ***
  • تشکر
  • -اهدا شده: 192
  • -دریافت شده: 271
  • ارسال: 812
    • ديدن مشخصات
با سلام و تشکر از زحمات شما
من کدی را که شما زحمت کشیده بودید اجرا کردم ولی با خطا مواجه شدم
و هر چه سعی کردم نتوانستم بفهمم خطا از چیست؟

آفلاین vafa

  • مشاور
  • Hero Member
  • *
  • تشکر
  • -اهدا شده: 78
  • -دریافت شده: 2012
  • ارسال: 4,429
    • ديدن مشخصات
این کد برای من خطا نمی‌ده. در ضمن با این کد من جواب دو تا از سوال‌های شما را می‌دهم.
\documentclass[12pt,oneside]{bidipresentation}
\usepackage[RL]{flowfram}
\geometry{paperwidth=225mm,paperheight=180mm,rmargin=40mm,lmargin=4mm,top=10mm,bottom=10mm}
\usepackage{hyperref}
\newstaticframe{30mm}{\paperheight}%
{\dimexpr(\paperwidth-40mm)}% Why minus 40mm? because your rmargin=40mm in your geometry setup
{0.5\paperheight}[sidebar]
\setstaticframe*{sidebar}{valign=b}
\usepackage{xepersian}
\makeatletter
\renewcommand\tableofcontents{%
\begin{staticcontents*}{sidebar}
    \@starttoc{toc}%
\end{staticcontents*}
    }
\def\@sect#1#2#3#4#5#6[#7]#8{%
  \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}{%
      #7}%
  \else
    \def\@svsechd{%
      #6{\hskip #3\relax
      \@svsec #8}%
      \csname #1mark\endcsname{#7}%
      \addcontentsline{toc}{#1}{%
        #7}}%
  \fi
  \@xsect{#5}}
\renewcommand*\l@section[2]{%
  \ifnum \c@tocdepth >\z@
    \addpenalty\@secpenalty
    \addvspace{0.1em \@plus\p@}%
    \setlength\@tempdima{1.5em}%
    \begingroup
      \parindent \z@ \if@RTL\leftskip\else\rightskip\fi \@pnumwidth
      \parfillskip -\@pnumwidth
      \leavevmode \bfseries
      \advance\if@RTL\rightskip\else\leftskip\fi\@tempdima
      \hskip -\if@RTL\rightskip\else\leftskip\fi
      \footnotesize#1\hfill\nobreak\par
    \endgroup
  \fi}
\makeatother
\begin{document}
\tableofcontents
\section{مقدمه} \label{sec:Intro}\newpage
\section{لایه فیزیکی} \label{sec:section2}
\end{document}



آفلاین vafa

  • مشاور
  • Hero Member
  • *
  • تشکر
  • -اهدا شده: 78
  • -دریافت شده: 2012
  • ارسال: 4,429
    • ديدن مشخصات
با سلام و تشکر از زحمات شما
من کدی را که شما زحمت کشیده بودید اجرا کردم ولی با خطا مواجه شدم
و هر چه سعی کردم نتوانستم بفهمم خطا از چیست؟
برای اینکه دستوراتی که من به شما دادم از @ استفاده شد بنابراین باید دستورات من را بین \makeatletter و \makeatother قرار می‌دادی.

آفلاین ابوالفضل دیانت

  • همکاران
  • Hero Member
  • ***
  • تشکر
  • -اهدا شده: 192
  • -دریافت شده: 271
  • ارسال: 812
    • ديدن مشخصات
 با سلام
عرض پوزش به خاطر بی دقتی که از سوی من انجام گرفت.
با تشکر از زحمات شما

آفلاین ابوالفضل دیانت

  • همکاران
  • Hero Member
  • ***
  • تشکر
  • -اهدا شده: 192
  • -دریافت شده: 271
  • ارسال: 812
    • ديدن مشخصات
با سلام و تشکر
سوال من این بود که با باز تعریف دستور tableofcontent دیگر نمی توانیم در ابتدای اسلایدها از این دستور برای آوردن فهرست مطالب استفاده کنیم، چرا که این دستور را برای سایدبار باز تعریف نمودیم.
من خیلی تلاش کردم یه جوری این ها را بکنم دو دستور ولی کاملا ناموفق بودم. به نظر شما راه حلی دارد؟
یعنی هم یک جوری این دستور را برای سایدبار طراحی کنیم و هم بتوانیم در ابتدای متن برای آوردن فهرست مطالب استفاده کنیم.
باتشکر

آفلاین vafa

  • مشاور
  • Hero Member
  • *
  • تشکر
  • -اهدا شده: 78
  • -دریافت شده: 2012
  • ارسال: 4,429
    • ديدن مشخصات
با سلام و تشکر
سوال من این بود که با باز تعریف دستور tableofcontent دیگر نمی توانیم در ابتدای اسلایدها از این دستور برای آوردن فهرست مطالب استفاده کنیم، چرا که این دستور را برای سایدبار باز تعریف نمودیم.
من خیلی تلاش کردم یه جوری این ها را بکنم دو دستور ولی کاملا ناموفق بودم. به نظر شما راه حلی دارد؟
یعنی هم یک جوری این دستور را برای سایدبار طراحی کنیم و هم بتوانیم در ابتدای متن برای آوردن فهرست مطالب استفاده کنیم.
باتشکر
خیلی سادست دستور \tableofcontents  را از نو تعریف نکن در عوض یک دستور با نام متفاوت تعریف کن.

آفلاین ابوالفضل دیانت

  • همکاران
  • Hero Member
  • ***
  • تشکر
  • -اهدا شده: 192
  • -دریافت شده: 271
  • ارسال: 812
    • ديدن مشخصات
با سلام
این کار را کردم. ولی نشد، چون ظاهرا دو قسمت بعدی که از دستورات لطف کرده بودید، خود محیط tableofcontent را تغییر می داد.
یک نکته جالب تر این که وقتی این کار را می کردم، فهرست مطالب را می گذاشت ولی سایدبار را نمی گذاشت.
سعی می کنم یک مثال کمینه برایتان اماده و اتچ نمایم.
باتشکر

آفلاین vafa

  • مشاور
  • Hero Member
  • *
  • تشکر
  • -اهدا شده: 78
  • -دریافت شده: 2012
  • ارسال: 4,429
    • ديدن مشخصات
با سلام
این کار را کردم. ولی نشد، چون ظاهرا دو قسمت بعدی که از دستورات لطف کرده بودید، خود محیط tableofcontent را تغییر می داد.
یک نکته جالب تر این که وقتی این کار را می کردم، فهرست مطالب را می گذاشت ولی سایدبار را نمی گذاشت.
سعی می کنم یک مثال کمینه برایتان اماده و اتچ نمایم.
باتشکر
حتماً درست انجام ندادی. من وقت ندارم خودت مشکلتو حل کن.

آفلاین هادی صفی‌اقدم

  • ویرایشگر
  • Hero Member
  • *
  • تشکر
  • -اهدا شده: 789
  • -دریافت شده: 1353
  • ارسال: 5,644
    • ديدن مشخصات
فایل جدیدی را که مشکلات بالا را ندارد را در اولین پست در موضوع «BidiPresentation + sidebar + background -- بی‌دی پرزنتیشن+نوار کناری+ پس‌زمینه» آپلود کردم.
باز تشکر می‌کنم از آقای نکومهر که این اسلایدها و استایلش را آماده کردند و همچنین از دکتر کارن‌پهلو که اگر راهنمایی‌های ایشون نبود، نمیشد.
« آخرين ويرايش: اكتبر 23, 2012, 11:00:52 pm توسط هادی صفی‌اقدم »

 

چگونه می‌توان هنگام input کردن، فایل به صورت trim شده خوانده شود.

نویسنده فرشاد ترابیانجمن حروف‌چینی مستندات

پاسخ ها: 7
مشاهده: 5111
آخرين ارسال اكتبر 09, 2014, 05:32:26 pm
توسط فرشاد ترابی
چگونه می‌توان فهرست مطالب را به صورت فایل tex داشت.

نویسنده فرشاد ترابیانجمن حروف‌چینی مستندات

پاسخ ها: 7
مشاهده: 5392
آخرين ارسال اكتبر 21, 2014, 03:23:23 am
توسط vafa
چگونه می‏توان در تک‏میکر نیم‏فاصله را تایپ نمود؟

نویسنده mohsen.khaxarانجمن Texmaker

پاسخ ها: 3
مشاهده: 10388
آخرين ارسال نوامبر 08, 2009, 11:26:24 pm
توسط محمود امین‌طوسی
چگونه مي‌توان در زي‌پرشين گونه اي زير نويس را نوشت كه كمترين جا را بگيرد؟

نویسنده meim007انجمن زی‌تک

پاسخ ها: 21
مشاهده: 8179
آخرين ارسال اوت 20, 2010, 04:28:45 pm
توسط هادی صفی‌اقدم
چگونه می‌توان در کلاس یک طرفه سربرگهای زوج و فرد داشت؟

نویسنده meim007انجمن طراحی صفحه

پاسخ ها: 20
مشاهده: 9599
آخرين ارسال فوریه 09, 2011, 07:12:34 pm
توسط meim007
چگونه می توان یک استایل جدید ساخت یا استایل را ویرایش کرد.

نویسنده mali_vانجمن مراجع و بیب‌تک BibTeX

پاسخ ها: 1
مشاهده: 2632
آخرين ارسال ژوئیه 11, 2011, 07:31:57 pm
توسط محمود امین‌طوسی
راهنمایی مختصر برای تولید فهرست اختصارات به صورت خودکار

نویسنده ابوالفضل دیانتانجمن حروف‌چینی مستندات

پاسخ ها: 3
مشاهده: 2074
آخرين ارسال دسامبر 02, 2013, 10:31:58 pm
توسط Farhadi
چگونه فهرست مطالب پایان نامه رو به صورت لینک تبدیل کنیم

نویسنده jamshidانجمن انجمن تازه‌کاران

پاسخ ها: 3
مشاهده: 2818
آخرين ارسال مه 10, 2012, 07:21:40 pm
توسط هادی صفی‌اقدم