بسته 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