این مشکل از آن مشکلی که در راهنمای بسته bidi
به آن اشاره شده است، متفاوت است هر چند هر دو یک پیام خطا را تولید میکنند.
چرا این مشکل رخ میدهد؟
دستور \paragraphfootnotes
مقداری محاسبات انجام میدهد. یکی از این محاسبات این است که \baselineskip
را تقسیم بر \hsize
میکند. در کلاس imsproc
تعدادی از بستههای ams
فراخوانی میشود و کاری که این بستهها انجام میدهند این است که در پیشدرآمد مقدار \hsize
صفر است اما بعد از شروع نوشتار، مقدارش برابر با \textwidth
است. این مطلب رو میتونید خیلی راحت خودتون امتحان کنید:
\documentclass{imsproc}
\usepackage[extrafootnotefeatures]{xepersian}
\settextfont{XB Niloofar}
\showthe\hsize
\paragraphfootnotes
\begin{document}
مقداری متن نمونه\LTRfootnote{A footnote!}
\end{document}
و مقداری که در console به شما نمایش داده میشه اینه:
> 0.0pt.
در صورتی که اگر مقدار \hsize
رو بخواهید بعد از شروع نوشتار بدونید:
\documentclass{imsproc}
\usepackage[extrafootnotefeatures]{xepersian}
\settextfont{XB Niloofar}
%\paragraphfootnotes
\begin{document}
\showthe\hsize
مقداری متن نمونه\LTRfootnote{A footnote!}
\end{document}
و حالا مقدار زیر رو بهتون نشون میده:
> 360.0pt.
خوب حالا توی فایل شما اتفاقی که میافته اینه که شما دستور \paragraphfootnotes
را در پیشدرآمد فایلتون قرار میدهید. در این مکان مقدار \hsize
صفر هست و شما دارید \baselineskip
رو تقسیم بر صفر میکنید. بنابراین این خطا رخ میدهد.
چگونه مشکل را حل کنید؟
دو راهحل برای مشکل وجود دارد:
دستور \paragraphfootnotes
را از پیشدرآمد (جایی که مقدار \hsize
صفر است) به بعد از شروع نوشتار (جایی که مقدار \hsize
برابر است با \textwidth
) انتقال دهید:
\documentclass{imsproc}
\usepackage[extrafootnotefeatures]{xepersian}
\settextfont{XB Niloofar}
%\paragraphfootnotes
\begin{document}
\paragraphfootnotes
مقداری متن نمونه\LTRfootnote{A footnote!}
\end{document}
در پیشدرآمد و قبل از دستور \paragraphfootnotes
خودتان مقدار \hsize
را مساوی \textwidth
نمایید:
\documentclass{imsproc}
\usepackage[extrafootnotefeatures]{xepersian}
\settextfont{XB Niloofar}
\setlength{\hsize}{\textwidth}
\paragraphfootnotes
\begin{document}
مقداری متن نمونه\LTRfootnote{A footnote!}
\end{document}