در پاسخ قبلی فقط یک ستاره کنار پاسخ درست چاپ می شد که نتوانستم نتیجه را در قالب یک جدول در انتهای سند بیاورم. در این پاسخ به جای چاپ جوابهای درست در سند آنها را در داخل یک فایل متنی قرار می دهم. به این منظور اگر فرض کنیم اولین پاسخ در بانک سؤالات، جواب درست هست، با تغییر کد زیر در فایل commandsPerm از پرسش مورد اشاره:
\newcommand{\answer}[4]{%
\pgfmathdeclarerandomlist{some numbers}{{1}{2}{3}{4}}
\pgfmathrandomlistcopy{tmp}{some numbers}
\pgfmathrandomitemwithoutreplacement\j{tmp}
\def\javab{1}
\sbox\answera{\ifx\j\javab * \fi\ifcase\j\relax\or#1\or#2\or#3\or#4\fi}%
\pgfmathrandomitemwithoutreplacement\j{tmp}
\sbox\answerb{\ifx\j\javab * \fi\ifcase\j\relax\or#1\or#2\or#3\or#4\fi}%
\pgfmathrandomitemwithoutreplacement\j{tmp}
\sbox\answerc{\ifx\j\javab * \fi\ifcase\j\relax\or#1\or#2\or#3\or#4\fi}%
\pgfmathrandomitemwithoutreplacement\j{tmp}
\sbox\answerd{\ifx\j\javab * \fi\ifcase\j\relax\or#1\or#2\or#3\or#4\fi}%
به
\newcommand{\darjPasokhDorost}[1]{\ifx\j\javab \immediate\write\file{\thequestion- #1} \fi}
\def\javab{1}
\newcommand{\answer}[4]{%
\pgfmathdeclarerandomlist{some numbers}{{1}{2}{3}{4}}
\pgfmathrandomlistcopy{tmp}{some numbers}
\pgfmathrandomitemwithoutreplacement\j{tmp}
\sbox\answera{\darjPasokhDorost{1}\ifcase\j\relax\or#1\or#2\or#3\or#4\fi}%
\pgfmathrandomitemwithoutreplacement\j{tmp}
\sbox\answerb{\darjPasokhDorost{2}\ifcase\j\relax\or#1\or#2\or#3\or#4\fi}%
\pgfmathrandomitemwithoutreplacement\j{tmp}
\sbox\answerc{\darjPasokhDorost{3}\ifcase\j\relax\or#1\or#2\or#3\or#4\fi}%
\pgfmathrandomitemwithoutreplacement\j{tmp}
\sbox\answerd{\darjPasokhDorost{4}\ifcase\j\relax\or#1\or#2\or#3\or#4\fi}%
شماره سوال به همراه شماره پاسخ درست آن سوال در فایلی که در سند اصلی مشخص می شود ذخیره خواهد شد. فایل اصلی باید به صورت زیر تغییر یابد که pasokhnameh.txt نام فایلی است که پاسخنامه در آن نوشته می شود.
\documentclass{article}
\input{commandsPermInFile}
\usepackage{xepersian}
\settextfont{Yas}
\begin{document}
\newwrite\file
\immediate\openout\file=pasokhnameh.txt
\begin{mcquestions}
\randomquestionsfrombank{bankA.tex}{5}
\end{mcquestions}
\closeout\file
\end{document}
متاسفانه این کد و کد ذکر شده در پاسخ قبلی برای پرسشهایی که هر جوابشان در یک خط جدا چاپ می شود درست کار نمی کند. شاید دیگر دوستان بتوانند مشکل کار را ذکر کنند.
به نظرم در هر کجا که از آرگومانها (#1,#2,#3,#4
) استفاده شده است باید عملیات فوق انجام شود.