اگر کد
\documentclass[a4paper]{book}
\usepackage{ptext}
\usepackage{adjmulticol}
\usepackage{xepersian}
\settextfont{Yas}
\begin{document}
\begin{adjmulticols*}{2}{}{}
مقداری متن نمونه%
\RTLfootnote{یک پانویس فارسی}
\LTRfootnote{An english footnote}
\ptext[2-6]
\end{adjmulticols*}
\end{document}
رو اجرا کنید، میبینید که دو تا مشکل داره:
- محل قرارگیری پانویسهای فارسی و انگلیسی اشتباه چاپ شده.
- جای ستون اول و دوم جابجا شده.
با بررسی فایل multicol-xetex-bidi.def تونستم مشکل اول رو با قرار دادن کد زیر حل کنم:
\makeatletter
\def\adjmulticols#1#2#3{\col@number#1\relax
\def\@tempa{#2}%
\ifx\@tempa\@empty\adjmc@inner\z@\else\adjmc@inner#2\fi
\def\@tempa{#3}%
\ifx\@tempa\@empty\adjmc@outer\z@\else\adjmc@outer#3\fi
\ifnum\col@number<\@ne
\PackageWarning{adjmulticol}%
{Using `\number\col@number'
columns doesn't seem a good idea.^^J
I therefore use one columns instead}%
\col@number\@ne\fi
\ifnum\col@number>10
\PackageError{adjmulticol}%
{Too many columns}%
{Current implementation doesn't
support more than 10 columns.%
\MessageBreak
I therefore use 10 columns instead}%
\col@number10 \fi
\ifx\@footnotetext\mult@footnotetext\else
\let\orig@footnotetext\@footnotetext
\let\@footnotetext\mult@footnotetext
\fi
\ifx\@LTRfootnotetext\mult@LTRfootnotetext\else
\let\orig@LTRfootnotetext\@LTRfootnotetext
\let\@LTRfootnotetext\mult@LTRfootnotetext
\fi
\ifx\@RTLfootnotetext\mult@RTLfootnotetext\else
\let\orig@RTLfootnotetext\@RTLfootnotetext
\let\@RTLfootnotetext\mult@RTLfootnotetext
\fi
\@ifnextchar[\adjmult@cols{\adjmult@cols[]}}
\makeatother
اما متاسفانه هر چقدر فایل multicol-xetex-bidi.def رو با فایل adjmulticol.sty مقایسه میکنم، نمیتونم مشکل شماره ۲ رو حل کنم. برای نوشتن یک قالب، شدیداً به این بسته نیاز دارم. کسی از دوستان میتونه در این زمینه بهم کمک کنه؟
لازم به ذکره که بسته adjmulticol حدوداً فقط ۸۰ خط کد داره؛ پس لطفاً دوستان هم یک نگاهی بهش بندازن؛ شاید با کمک هم تونستیم مشکل شماره ۲ رو هم حل کنیم. بدیهیه که میدونیم این بسته جزو بستههای پشتیبانیشده توسط زیپرشین نیست.