در نسخه 30.1 بسته bidi دو دستور داخلی \bidi@@convert@dimen@t@unit و \bidi@@convert@dimen@t@pt (مخصوص نویسندگان بستهها و کلاسها) و دستور \setbaselineskip (مخصوص کاربر) تعریف گشتهاند.
دستور \bidi@@convert@dimen@t@pt
این دستور یک آرگومان دارد و این آرگومان یک بعد (dimension) و واحد آن است. این دستور بعد داده شده را به واحد pt تبدیل میکند. یک نمونه
\documentclass{article}
\usepackage{fontspec}
\setmainfont{IRNazanin}
\usepackage{biditools}
\begin{document}
\makeatletter
\showthe\bidi@@convert@dimen@t@pt{1.2ex}
\makeatother
\end{document}
پاسخ تک بصورت زیر خواهد بود:
> -0.00583pt.
دستور \bidi@@convert@dimen@t@unit
این دستور دو آرگومان دارد. آرگومان نخست یک بعد و واحد آن است و آرگومان دوم یکی از واحدهایی است که برای تک شناخته شده است. این دستور بعد داده شده (آرگومان نخست) را به واحد داده شده (آرگومان دوم) تبدیل میکند. یک نمونه
\documentclass{article}
\usepackage{fontspec}
\setmainfont{IRNazanin}
\usepackage{biditools}
\begin{document}
\makeatletter
\bidi@@convert@dimen@t@unit{1.2ex}{pc}
\makeatother
\end{document}
تک در خروجی pdf مقدار -0.00049pc را نشان خواهد داد.
دستور \setbaselineskip
این دستور یک بعد را به عنوان آرگومان قبول میکند. سپس بعد داده شده را تقسیم بر \baselineskip میکند و یک نسبت به دست میاورد و سرانجام نسبت به دستآورده شده را به عنوان آرگومان دستور \linespread استفاده میکند. یک نمونه:
\documentclass{article}
\usepackage{lipsum}
\usepackage{biditools}
\begin{document}
\setbaselineskip{120pt}
\lipsum[1]
\showthe\baselineskip
\end{document}
تک مقدار \baselineskip را همان 120pt داده شده نشان میدهد.
هدف از دستور \setbaselineskip چیست؟
- \baselineskipیک دستور بدوی است و لاتک استفاده از آن را پیشنهاد نمیکند زیرا که لاتک در جاهای مختلف- \baselineskipرا بسته به اندازه قلم تغییر میدهد و چنانچه مقدار مشخصی به- \baselineskipداده باشید، با تغییر در اندازه قلم یا خود قلم، مقدار داده شده شما تأثیری نخواهد داشت. لاتک دستور- \linespreadرا در اختیار کاربر قرار داده است. دستور- \setbaselineskipواسط بین دستور بدوی- \baselineskipو دستور لاتک- \linespreadاست.
- این دستور تنها زمانی باید استفاده شود که بخواهید فاصله بین سطرها را بصورت دستی تنظیم کنید. برای تنظیم فاصله بین سطرها بصورت خودکار و پویا از گزینه computeautoilgبستهxepersianاستفاده کنید.
از آنجایی که مفهومی به نام floating point در محاسبات تک وجود ندارد (تک از fixed point استفاده میکند)، مقدار خیلی کمی خطا در محاسبات انجام شده توسط این سه دستور تازه وجود خواهد داشت که چندان در حروفچینی مهم نیست.