سلام
اگه به تعریف محیط traditionalpoem مراجعه کنیم، میبینیم که از دستور poemskip معادل با \medskip، در انتهای این محیط استفاده شده است. دستور medskip فاصلهٔ عمودی اضافه میکند؛ پس میتونیم این دستور رو از این محیط برداریم. کافیه بعد از بستهٔ xepersian از این کدها استفاده کنیم:
\makeatletter
\bidi@patchcmd{\@endtraditionalpoem}{\poemskip}{\relax}{}{}
\makeatother
اگه هم بخواهید این فاصله رو کمتر کنید (صفر نکنید)، بهجای \relax بنویسید \smallskip.
ایجاد محیط جدید که فاصله ندارد
اگه قصد استفادهٔ محلی از حالت بدون فضای اضافه دارید، میتونید محیط جدید تعریف کنید:
\makeatletter
\newenvironment{mypoem}%
{\bidi@patchcmd{\@endtraditionalpoem}{\poemskip}{\relax}{}{}
\@traditionalpoem}%
{\@endtraditionalpoem}
\makeatother
و در متن، بهجای traditionalpoem از mypoem استفاده کنید.
جلوگیری از تداخل با پاورقی
در کلاسهایی که پاورقی ممکنه در پایینترین قسمت صفحه قرار نگیره، میتونیم از دستور زیر استفاده کنیم:
\bidi@pretocmd{\footnoterule}{\vfill}{}{}
یا
\AddToHook{cmd/footnoterule/before}{\vfill}
✨