بسته setspace
برای حل این مشکل تعریف دستور \@footnotetext
لاتک را تغییر میدهد و قبل از \reset@font\footnotesize
، کد زیر را قرار میدهد:
\def\baselinestretch {\setspace@singlespace}%
از آنجایی که بسته زیپرشین آخرین بسته است که فراخوانی میشود و بسته زیپرشین تنها تعریف پیشفرض لاتک را تغییر میدهد، بنابراین تغییرات بسته setspace
پاک میشوند. این مشکل را میتوان به راحتی با استفاده از دستور \bidi@patchcmd
حل کرد. برای این کار باید دستورات \@footnotetext
، \@LTRfootnotetext
و \@RTLfootnotetext
را تغییر دهیم تا قبل از \reset@font\footnotesize
، کد زیر را قرار میدهد:
\def\baselinestretch {\setspace@singlespace}%
برای این کار بعد از فراخوانی بسته زیپرشین کد زیر را قرار میدهیم:
\makeatletter
\bidi@patchcmd[\long]{\footdir@ORG@xepersian@footnotetext}
{\reset@font\footnotesize}
{\def\baselinestretch {\setspace@singlespace}%
\reset@font\footnotesize}
{\typeout{We succeded in redefining \string\@footnotetext}}
{\typeout{We failed in redefining \string\@footnotetext}}
\bidi@patchcmd[\long]{\footdir@ORG@xepersian@LTRfootnotetext}
{\reset@font\footnotesize}
{\def\baselinestretch {\setspace@singlespace}%
\reset@font\footnotesize}
{\typeout{We succeded in redefining \string\@LTRfootnotetext}}
{\typeout{We failed in redefining \string\@LTRfootnotetext}}
\bidi@patchcmd[\long]{\footdir@ORG@xepersian@RTLfootnotetext}
{\reset@font\footnotesize}
{\def\baselinestretch {\setspace@singlespace}%
\reset@font\footnotesize}
{\typeout{We succeded in redefining \string\@RTLfootnotetext}}
{\typeout{We failed in redefining \string\@RTLfootnotetext}}
\makeatother
در صورتی که این کار با موفقیت انجام شود، متن زیر در فایل .log
و همچنین ترمینال ظاهر میشود:
We succeded in redefining \@footnotetext
We succeded in redefining \@LTRfootnotetext
We succeded in redefining \@RTLfootnotetext