من چند سال میشه که از لاتک استفاده نکردم و دیشب هم دیروقت جواب دادم اینه که خودم رو مقداری گیج کردم و کدی که دادم خیلی سادهتر هم میشه نوشت. کافیه برای اینکه خط از چپ به راست کشیده شه (برای خطهای افقی سمتچپ) شیب منفی بهش بدی و برای اینکه خط از بالا به پائین کشیده بشه (برای خطهای عمودی بالا) شیب منفی داشته باشه. کد قبلی رو از نو با روش جدید نوشتم که بسیار ساده هست و اون محاسبه سرانگشتی هم که گفتم احتیاج نیست:
\documentclass[a4paper]{book}
\usepackage{ptext}
\usepackage[total={16.3cm,23.5cm},centering,includehead=true,paperwidth=20.8cm, paperheight=28cm]{geometry}
\usepackage{bidi-atbegshi}
\usepackage[preloadedlatintextfont]{xepersian}
\settextfont{XB Niloofar}
\AtBeginShipout{%
\AtBeginShipoutUpperLeft{%
\setlength{\unitlength}{1mm}
\put(-1,-5){\line(-1,0){10}}
\put(-1,-5){\line(0,-1){10}}
}
\AtBeginShipoutUpperRight{%
\setlength{\unitlength}{1mm}
\put(1,-5){\line(1,0){10}}
\put(1,-5){\line(0,-1){10}}
}
\AtBeginShipoutLowerLeft{%
\setlength{\unitlength}{1mm}
\put(-1,5){\line(-1,0){10}}
\put(-1,5){\line(0,1){10}}
}
\AtBeginShipoutLowerRight{%
\setlength{\unitlength}{1mm}
\put(1,5){\line(1,0){10}}
\put(1,5){\line(0,1){10}}
}
}
\begin{document}
\chapter{مقداری متن}
\section{مقداری متن دیگر}
\ptext[1-10]
\newpage
\newgeometry{total={14.3cm,21.9cm},centering,includehead=true}
\ptext[1-10]
\newpage
\restoregeometry
\ptext[1-10]
\end{document}
فکر میکنم کد به اندازه کافی خوانا باشه و احتیاجی به توضیح نداشته باشه.