برای اینکه بتوانیم مکان افقی یا عمودی در صفحه را بدانیم، موتور PDFTeX دستورات بدوی \pdfsavepos
، \pdflastxpos
و \pdflastypos
را داراست. این دستورات همچنین از موتور PDFTeX به موتور زیتک انتقال پیدا کردهاند.
این دستورات با الگوریتم TeX--XeT و در حروفچینی راست به چپ درست کار نمیکنند. بنابراین در نسخه 36 بسته bidi
دستورات کاربری زیر تعریف شدهاند که سطح بالا هستند و مشکلات دستورات بدوی را ندارد و مکان را به درستی محاسبه میکنند.
\WriteStartXPostoaux
این دستور آغاز مکان افقی را مشخص میکند.
\WriteEndXPostoaux
این دستور پایان مکان افقی را مشخص میکند.
\WriteStartYPostoaux
این دستور آغاز مکان عمودی را مشخص میکند.
\WriteEndYPostoaux
این دستور پایان مکان عمودی را مشخص میکند.
\WriteStartXYPostoaux
این دستور آغاز مکان افقی و عمودی را مشخص میکند.
\WriteEndXYPostoaux
این دستور پایان مکان افقی و عمودی را مشخص میکند.
\currentposxwidth
این دستور پهنای بین مکان آغازین افقی و مکان پایانی افقی را بر میگرداند.
\currentposyheight
این دستور ارتفاع بین مکان آغازین عمودی و مکان پایانی عمودی را بر میگرداند.
چند نکته:
- مکان تنها زمانی مشخص میشود که تک یک پاراگراف را به سطرها شکسته باشد بنابراین حداقل دو بار اجرا لازم است.
- در صورتی که مکانی مشخص نباشد یک پیام هشدار ظاهر میشود و از کاربر میخواهد که یک بار دیگر اجرا کند.
هنگام اجرای فایل کمینه زیر
\documentclass{article}
\usepackage{bidi}
\setRTL
\begin{document}
Let's \WriteStartXPostoaux
Write Something Here.\WriteEndXPostoaux
\the\currentposxwidth
\setbox0=\hbox{Write Something Here.}
\the\wd0
\end{document}
در بار نخست اجرا هشدارهای زیر
Package biditools Warning: The start x position `1' is not known yet. Rerun to
get this x position.
Package biditools Warning: The end x position `1' is not known yet. Rerun to ge
t this x position.
و خروجی زیر را خواهد داد.
در بار دوم هشداری وجود نخواهد داشت و خروجی زیر گرفته میشود.