%% %% This is file `xepersian-multiplechoice.sty', %% generated with the docstrip utility. %% %% The original source files were: %% %% xepersian.dtx (with options: `table,xepersian-multiplechoice.sty') %% %% __________________________________________________ %% Copyright (c) 2008--2015 Vafa Khalighi %% %% It may be distributed and/or modified under the LaTeX Project Public License, %% version 1.3c or higher (your choice). The latest version of %% this license is at: http://www.latex-project.org/lppl.txt %% %% This work is “author-maintained” (as per LPPL maintenance status) %% by Vafa Khalighi. %% %% %% \CheckSum{10076} %% \CharacterTable %% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z %% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z %% Digits \0\1\2\3\4\5\6\7\8\9 %% Exclamation \! Double quote \" Hash (number) \# %% Dollar \$ Percent \% Ampersand \& %% Acute accent \' Left paren \( Right paren \) %% Asterisk \* Plus \+ Comma \, %% Minus \- Point \. Solidus \/ %% Colon \: Semicolon \; Less than \< %% Equals \= Greater than \> Question mark \? %% Commercial at \@ Left bracket \[ Backslash \\ %% Right bracket \] Circumflex \^ Underscore \_ %% Grave accent \` Left brace \{ Vertical bar \| %% Right brace \} Tilde \~} %% \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{xepersian-multiplechoice}[2010/07/25 v0.2 Multiple Choice Questionnaire class for Persian in XeLaTeX] \RequirePackage{pifont} \RequirePackage{fullpage} \RequirePackage{ifthen} \RequirePackage{calc} \RequirePackage{verbatim} \RequirePackage{tabularx} \def\@headerfont{\bfseries} \newcommand\headerfont[1]{\gdef\@headerfont{#1}} \def\@X{X} \newcommand\X[1]{\gdef\@X{#1}} \def\pbs#1{\let\tmp=\\#1\let\\=\tmp} \newcolumntype{D}{>{\pbs\centering}X} \newcolumntype{Q}{>{\@headerfont}X} \renewcommand\tabularxcolumn[1]{m{#1}} \newcommand\makeform@nocorrection{% \addtocontents{frm}{\protect\end{tabularx}} \@starttoc{frm}} \newcommand\makeform@correction{% \addtocontents{frm}{\protect\end{tabularx}}} \newcommand\makemask@nocorrection{% \addtocontents{msk}{\protect\end{tabularx}} \@starttoc{msk}} \newcommand\makemask@correction{% \addtocontents{msk}{\protect\end{tabularx}}} \newlength\questionspace \setlength\questionspace{0pt} \newcommand\answerstitle[1]{\gdef\@answerstitle{#1}} \def\@answerstitlefont{\bfseries} \newcommand\answerstitlefont[1]{\gdef\@answerstitlefont{#1}} \def\@answernumberfont{\bfseries} \newcommand\answernumberfont[1]{\gdef\@answernumberfont{#1}} \newcounter{question}\stepcounter{question} \newcounter{@choice} \def\@initorcheck{% \xdef\@choices{\the@choice}% \setcounter{@choice}{1}% \gdef\@arraydesc{|Q||}% \gdef\@headerline{}% \whiledo{\not{\value{@choice}>\@choices}}{ \xdef\@arraydesc{\@arraydesc D|} \def\@appendheader{\g@addto@macro\@headerline} \@appendheader{&\protect\@headerfont} \edef\@the@choice{{\alph{@choice}}} \expandafter\@appendheader\@the@choice \stepcounter{@choice}}% \addtocontents{frm}{% \protect\begin{tabularx}{\protect\linewidth}{\@arraydesc} \protect\hline \@headerline\protect\\\protect\hline\protect\hline}% \addtocontents{msk}{% \protect\begin{tabularx}{\protect\linewidth}{\@arraydesc} \protect\hline \@headerline\protect\\\protect\hline\protect\hline}% \gdef\@initorcheck{% \ifthenelse{\value{@choice} = \@choices}{}{% \ClassError{xepersian-multiplechoice}{Question \thequestion: wrong number of choices (\the@choice\space instead of \@choices)}{% Questions must all have the same number of proposed answers.% \MessageBreak Type X to quit, fix your MCQ (multiple choice question) and rerun XeLaTeX.}}}} \newenvironment{question}[1]{% %% \begin{question} \begin{minipage}{\textwidth} \xdef\@formanswerline{\@questionheader}% \xdef\@maskanswerline{\@questionheader}% \fbox{\parbox[c]{\linewidth}{#1}} \vspace\questionspace\par {\@answerstitlefont\@answerstitle} \begin{list}{\@answernumberfont\alph{@choice})~}{\usecounter{@choice}}}{% %% \end{question} \end{list} \@initorcheck% \addtocontents{frm}{\@formanswerline\protect\\\protect\hline}% \addtocontents{msk}{\@maskanswerline\protect\\\protect\hline}% \end{minipage} \stepcounter{question}} \def\@truesymbol{\ding{52}~} \def\@falsesymbol{\ding{56}~} \newcommand\truesymbol[1]{\gdef\@truesymbol{#1}} \newcommand\falsesymbol[1]{\gdef\@falsesymbol{#1}} \def\@true@nocorrection{\item} \def\@false@nocorrection{\item} \def\@true@correction{\item[\@truesymbol\refstepcounter{@choice}]} \def\@false@correction{\item[\@falsesymbol\refstepcounter{@choice}]} \newcommand\true{% \xdef\@formanswerline{\@formanswerline&}% \xdef\@maskanswerline{\@maskanswerline&\@X}% \@true}% \newcommand\false{% \xdef\@formanswerline{\@formanswerline&}% \xdef\@maskanswerline{\@maskanswerline&}% \@false}% \def\@correctionstyle{\itshape} \newcommand\correctionstyle[1]{\gdef\@correctionstyle{#1}} \newenvironment{@correction}{\@correctionstyle}{} \def\@questionheader{سؤال \thequestion} \answerstitle{جوابهای ممکن:} \DeclareOption{nocorrection}{% \let\@true\@true@nocorrection \let\@false\@false@nocorrection \let\correction\comment \let\endcorrection\endcomment \def\makeform{\makeform@nocorrection} \def\makemask{\makemask@nocorrection}} \DeclareOption{correction}{% \let\@true\@true@correction \let\@false\@false@correction \let\correction\@correction \let\endcorrection\end@correction \def\makeform{\makeform@correction} \def\makemask{\makemask@correction}} \ExecuteOptions{nocorrection} \newcommand\questiontitle[1]{\gdef\@questiontitle{#1}} \def\@questiontitlefont{\bfseries} \newcommand\questiontitlefont[1]{\gdef\@questiontitlefont{#1}} \newlength\questiontitlespace \setlength\questiontitlespace{5pt} \newlength\questionsepspace \setlength\questionsepspace{20pt} \gdef\@questionsepspace{0pt} \let\old@question\question \let\old@endquestion\endquestion \renewenvironment{question}[1]{% %% \begin{question} \vspace\@questionsepspace \fbox{\parbox[c]{0.25\linewidth}{\@questiontitlefont\@questiontitle}} \nopagebreak\vspace\questiontitlespace\par \old@question{#1}}{% %% \end{question} \old@endquestion \gdef\@questionsepspace{\questionsepspace}} \questiontitle{سؤال \thequestion:} \ProcessOptions \endinput %% %% End of file `xepersian-multiplechoice.sty'.