اولین بار است که به اینجا می‌آیید؟ راهنمای سایت را بخوانید!
Close Sidebar
وب‌سایت پرسش و پاسخ پارسی‌لاتک جایی برای پرسش و پاسخ درباره سیستم حروف‌چینی لاتک و بسته زی‌پرشین است. در اینجا می‌توانید سوال‌های خود را بپرسید و به سوال‌های دیگران پاسخ دهید.

محبوب‌ترین برچسب‌ها

رفع خطا جدول مراجع xepersian ریاضی‌نویسی شکل فونت فهرست مطالب شماره‌گذاری منابع bidi پانویس بیب‌تک parsilatex تک‌لایو tikz اسلاید بیمر زی‌پرشین پاورقی سربرگ bibtex نماد رسم شکل قالب فرمول‌نویسی ارجاع‌دهی biditexmaker هدر ویرایشگر beamer واژه‌نامه اندازه فونت texstudio ماتریس عنوان فصل اعمال نشدن تغییرات در پی‌دی‌اف bidipresentation رسم جدول حاشیه شماره صفحه رنگ عنوان شکل اسلاید فارسی محیط قضیه گراف مکان شکل tikzpicture حروف‌چینی کد شماره فصل tabriz_thesis enumerate زیرنویس شکل کادر align نمایه itemize listings الگوریتم بسته نیم‌فاصله متن لاتین و فارسی عدم اجرا فهرست اشکال فاصله بین خطوط نصب تک‌لایو فارسی‌تک hyperref شماره فرمول فرمول glossaries قالب پایان‌نامه حروف‌چینی چندستونی فونت فارسی و انگلیسی نمودار خروجی biditools ماکرونویسی کپشن پیوست‌ فاصله‌گذاری فرمول چندضابطه‌ای سوال امتحانی subfigure header شماره پاورقی tex لاتک biditufte-book texmaker تصویر texlive2015 میک‌تک pdf شمارنده زیرنویس خطا شماره‌گذاری صفحات دیاگرام texlive2016 فهرست جداول رسم نمودار تنظیم جدول longtable texworks caption اندیس extrafootnotefeatures lollipop iust-thesis multicol فصل‌نویسی kashida سوال چهارگزینه‌ای قاب تورفتگی آکولاد فاصله عمودی پایان نامه xindy چپ‌چینی اوبونتو شعر میکروسافت ورد بولد geometry fancyhdr تک لایو 2015 به‌روزرسانی بسته اعداد فارسی aimc46 فرمول طولانی بیرون‌زدگی کاما وسط‌چینی عنوان بخش پوستر فاصله سطرها نوشتافت شکست خط tex-programming قرآن tabriz-thesis ایتالیک winedt جستجوی معکوس texlive فلش جایابی تصویر tcolorbox صفر توخالی قالب کتاب پاراگراف‌بندی فونت اعداد pgfplots بازیابی اطلاعات فهرست نمادها شمارنده فصل محیط ریاضی رسم کادر xelatex جداکننده جدول طولانی شماره‌گذاری فرمول هایپرلینک algorithm2e proof eps جدول افقی پانویس چندستونی فهرست تصاویر شماره گذاری کمک مالی فاصله خطوط حروف‌چینی شعر فونت بولد زیرشکل equation bidipoem عکس ltrfootnote پیوست computeautoilg به‌روزرسانی فرمول چندخطی neveshtuft غلط‌گیری املایی تک‌پارسی پیکان minipage قلم پانویس پاراگرافی baselineskip شماره قسمت قسمت عنوان جدول متن فارسی و انگلیسی قالب مجله xebaposter bidihl
3 نفر آنلاین
0 عضو و 3 مهمان در سایت حاضرند
بازدید امروز: 610
بازدید دیروز: 10933
بازدید کل: 15208012

محاسبه خودکار ارتفاع هدر هر صفحه با مقدار دقیق مورد نیاز همان صفحه و تغییر اندازه textheight به همان اندازه

0 رای
269 بازدید

با توجه به این پست در مورد تغییر اندازه textheight مطابق با مقدار مورد نیاز من می‌خواهم به همان اندازه که مثلا headheight افزایش پیدا می‌کند در همان صفحه textheight به همان اندازه کاهش پیدا کند و برعکس. من با استفاده از کدی که آقای خلیقی در این پست گداشته‌اند، مقدار textheight را تغییر می‌دهم ولی هرچند مقدار تغییر headheight در همان صفحه اعمال می‌شود ولی تغییر textheight از صفحه بعد اعمال می‌شود.
کمی ویرایش برای بهتر مشخص شدن اشکالات
کد کمینه:

\documentclass[twoside]{article}
\usepackage[left=1cm,right=1cm,top=1cm,bottom=1cm,headheight=0pt,headsep=0pt,footskip=0pt,includeheadfoot]{geometry}
\usepackage{lipsum}
\usepackage{fancyhdr}
\usepackage{bidi}
\pagestyle{fancy}
\fancyhf{}
\fancyhead[CO]{\vrule height 50pt\Huge\bfseries This is a test Odd page\vrule height 50pt}
\fancyhead[CE]{\vrule height 150pt\Huge\bfseries This is a test Even page\vrule height 150pt}
%\fancyfoot[C]{\thepage}
\fancypagestyle{last}{%
    \fancyhf{}
    \fancyhead[C]{%
        \vrule height 350pt\Huge\bfseries This is a test Last page \vrule height 350pt
    }
%   \fancyfoot[C]{\thepage}
}
\makeatletter
\newcommand*{\bidi@f@nch@lh}{%
  \ifodd\count\z@
    \f@nch@olh
  \else
    \f@nch@elh
  \fi
}
\newcommand*{\bidi@f@nch@ch}{%
  \ifodd\count\z@
    \f@nch@och
  \else
    \f@nch@ech
  \fi
}
\newcommand*{\bidi@f@nch@rh}{%
  \ifodd\count\z@
    \f@nch@orh
  \else
    \f@nch@erh
  \fi
}
\bidi@BeforeHeader{%
  \setbox\@tempboxa\vbox{%
    \hbox{%
      \rlap{%
        \parbox[b]{\headwidth}{%
          \raggedright\bidi@f@nch@lh
        }%
      }%
      \hfill
      \parbox[b]{\headwidth}{%
        \centering\bidi@f@nch@ch
      }%
      \hfill
      \llap{%
        \parbox[b]{\headwidth}{%
          \raggedleft\bidi@f@nch@rh
        }%
      }%
    }%
    \headrule
  }%
    \typeout{page number ast \thepage}
    \typeout{headheight ast \the\headheight}
    \typeout{new headheight ast \the\ht\@tempboxa}
    \typeout{textheight ast \the\textheight}
    \typeout{new textheight ast \the\dimexpr\textheight+\headheight-\ht\@tempboxa\relax}
  \ifdim\headheight=\ht\@tempboxa\else
    \global\addtolength{\textheight}{\dimexpr\headheight-\ht\@tempboxa\relax}
    \global\setlength{\headheight}{\ht\@tempboxa}%
  \fi 
}
\makeatother
\begin{document}
\lipsum[5-50]
\thispagestyle{last}
\end{document}
سوال شده دی 30, 1397 توسط مجتبی (587 امتیاز)
ویرایش شده بهمن 3, 1397 توسط مجتبی
ممنون. با کمک همین لینکی که معرفی کردی قبلا درستش کردم و توی این پست http://qa.parsilatex.com/32245/ هم جوابش رو پیوست کردم. منتها پاسخی که آقای خلیقی توی همون پست داده بود به نظرم خیلی تر و تمیز‌تر بود. می‌خواستم ببینم میشه با همون جواب آقای خلیقی و بدون ذخیره در فایل به جایی رسید یا نه

1 پاسخ

+1 رای

hookی که اینجا باید استفاده کرد (برای تغییر \textheight در تمام صفحات) \AtBeginDvi هست.

\documentclass{article}
\usepackage[left=1cm,right=1cm,top=1cm,bottom=1cm,headheight=0pt,headsep=0pt,footskip=0pt,includeheadfoot]{geometry}
\usepackage{fancyhdr,lipsum}
\usepackage{bidi}
\pagestyle{fancy}
\fancyhf{}
\fancyhead[C]{\Huge\bfseries This is a test}
\makeatletter
\newcommand*{\bidi@f@nch@lh}{%
  \ifodd\count\z@
    \f@nch@olh
  \else
    \f@nch@elh
  \fi
}
\newcommand*{\bidi@f@nch@ch}{%
  \ifodd\count\z@
    \f@nch@och
  \else
    \f@nch@ech
  \fi
}
\newcommand*{\bidi@f@nch@rh}{%
  \ifodd\count\z@
    \f@nch@orh
  \else
    \f@nch@erh
  \fi
}
\AtBeginDvi{%
  \global\setbox\@tempboxa\vbox{%
    \hbox{%
      \rlap{%
        \parbox[b]{\headwidth}{%
          \raggedright\bidi@f@nch@lh
        }%
      }%
      \hfill
      \parbox[b]{\headwidth}{%
        \centering\bidi@f@nch@ch
      }%
      \hfill
      \llap{%
        \parbox[b]{\headwidth}{%
          \raggedleft\bidi@f@nch@rh
        }%
      }%
    }%
    \headrule
  }%
  \ifdim\headheight<\ht\@tempboxa
   \global\advance\textheight-\dimexpr\ht\@tempboxa-\headheight\relax
   \global\headheight=\ht\@tempboxa
  \fi 
}
\makeatother
\begin{document}
\lipsum[1-100]
\end{document}
پاسخ داده شده بهمن 1, 1397 توسط وفا (24,180 امتیاز)
بسیار عالی.
فقط اگر هدر صفحه‌ای با thispagestyle مشخص شده باشد. ارتفاع هدر آن صفحه هنوز با ارتفاع هدری که با دستور pagestyle مشخص شده است تعیین می‌شود. یا مثلا موقعی که توی یکی از صفحات هدر تغییر می‌کنه ارتفاع هدر صفحه تغییر نمی‌کنه
برای اینکه بتونم پاسخ بدم باید فایل کمینه داشته باشم که مشکل رو نشون بده.
فایل کمینه را ویرایش کردم تا مشکل نشون داده بشه.
سپاس از شما
...