¿Cómo personalizar la solución de la pregunta de opción múltiple en la clase de documento del examen?

¿Cómo personalizar la solución de la pregunta de opción múltiple en la clase de documento del examen?

Quiero que mi documento se muestre como esta imagen.

\documentclass[cancelspace,10pt]{exam}
\usepackage{multicol}
%**********************************************************  End of Listing Setting
\usepackage[explicit]{titlesec}
\usepackage[dotinlabels]{titletoc}
\usepackage{pifont}
\usepackage{times,color}
\usepackage{tikz}
\usepackage{circuitikz}
\usepackage{enumerate}

\usepackage{xepersian}
% *********************************************************** Document Font
\settextfont[Scale=1.2]{B Nazanin}
%*******************************************
\renewcommand*\questionlabel{\color{blue}\thequestion-}
\renewcommand*\thechoice{\arabic{choice}} 
\renewcommand*\choicelabel{\thechoice)}
%*******************************answer
\renewcommand{\solutiontitle}{\noindent\textbf{solution:}\par\noindent}
\shadedsolutions
\definecolor{SolutionColor}{rgb}{0.8,0.9,1}
\printanswers
% *********************************************************** begin Doc
%\DefaultMathsDigits
\begin{document}
% ----------------------------------------------------------------
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%end-title
\begin{persian}
\begin{questions}
% *********************************************************** Start Doc

\begin{latin}
%#############################################################################
% *********************************************************** Start     QUESTION #1
\question
She's not very .............. in the way she treats her children;they may be punished today for somthing they were rewarded for yesterday!
% *********************************************************** Choices
\begin{multicols}{4}
\begin{choices}
        %****************************************************************************     Choice 1
    \choice
    a
    %****************************************************************************     Choice 2
    \choice
           b
    %****************************************************************************     Choice 3
    \choice
    c
    %****************************************************************************     Choice 4
    \choice
    d
\end{choices}
\end{multicols}
  \begin{solutionorbox}[2in]

a

\end{solutionorbox}
% *********************************************************** End QUESTION #1


\end{latin}
\end{questions}
\end{persian}
\end{document}

Respuesta1

Creo que puedes usar este código para modificar el tuyo.

\documentclass{exam}

\usepackage{xcolor}
\usepackage{ifthen}

\shadedsolutions
\definecolor{SolutionColor}{rgb}{0.8,0.9,1}
\printanswers

\newcommand{\answer}{unknown}

\newcommand{\correct}[1]
{
    \ifthenelse{\equal{#1}{a}}{\renewcommand{\answer}{The first }}{}
    \ifthenelse{\equal{#1}{b}}{\renewcommand{\answer}{The second }}{}
    \ifthenelse{\equal{#1}{c}}{\renewcommand{\answer}{The third }}{}
    \ifthenelse{\equal{#1}{d}}{\renewcommand{\answer}{The fourth }}{}

    \renewcommand{\solutiontitle}{\noindent \textbf{Solution:} \answer option is correct.\par\noindent}

    \begin{solutionorbox}[2in]
        #1 
    \end{solutionorbox}
}

\begin{document}

\correct{a}

\correct{b}

\correct{c}

\correct{d}

\end{document}

Mostrará

ingrese la descripción de la imagen aquí

Editar

En \correctel comando editado, debe escribir el formato \correct{option}{the answer}con optionMUST en el formato de número. En su ejemplo, la opción es 1, 2, 3o 4.

\documentclass{exam}

\usepackage{xcolor}
\usepackage{ifthen}

\usepackage{fmtcount}

\shadedsolutions
\definecolor{SolutionColor}{rgb}{0.8,0.9,1}
\printanswers

\newcommand{\correct}[2]
{ 
    \renewcommand{\solutiontitle}{\noindent \textbf{Solution:} The \textcolor{red}{\ordinalstringnum{#1}} option is correct.\par\noindent}

    \begin{solutionorbox}[2in]
        \textcolor{red}{#2}
    \end{solutionorbox}
}

\begin{document}

\correct{1}{c}

\correct{2}{d}

\correct{1}{You should choose this as your answer}

\correct{2}{I think this is the right answer}

\end{document}

ingrese la descripción de la imagen aquí

Segunda edición:

Reemplace \newcommand{\correct}[2]el código anterior con este.

\newcommand{\answer}{unknown}

\newcommand{\correct}[2]
{    

   \ifthenelse{\equal{#1}{1}}{\renewcommand{\answer}{pertama }}{}
   \ifthenelse{\equal{#1}{2}}{\renewcommand{\answer}{kedua }}{}
   \ifthenelse{\equal{#1}{3}}{\renewcommand{\answer}{ketiga }}{}
   \ifthenelse{\equal{#1}{4}}{\renewcommand{\answer}{keempat }}{}


   \renewcommand{\solutiontitle}{\noindent \textbf{Solution:} The \answer option is correct.\par\noindent}

   \begin{solutionorbox}[2in]
       #2
   \end{solutionorbox}
}

Si necesita utilizar el idioma persa, simplemente reemplace pertama, kedua, ketigay keempatcon el suyo.

Respuesta2

Aquí hay una posible solución. Definí un \CorrectSolutioncomando con un argumento opcional que se pasará al argumento opcional de solutionorbox:

\CorrectSolution[2in]

y un \coreectoptioncomando que se utilizará dentro del choicesentorno para seleccionar la respuesta correcta:

\begin{choices}
    \correctoption{a}
    \choice b
    \choice c
    \choice d
\end{choices}

luego \CorrectSolutiontomará automáticamente el valor de la respuesta correcta y lo convertirá a su cadena ordinal asociada con la ayuda del fmtcountpaquete.

El código:

\documentclass[cancelspace,10pt]{exam}
\usepackage{multicol}
\usepackage{fmtcount}
\usepackage{color}

\renewcommand*\questionlabel{\color{blue}\thequestion-}
\renewcommand*\thechoice{\arabic{choice}} 
\renewcommand*\choicelabel{\thechoice)}

%*******************************answer
\renewcommand{\solutiontitle}{\noindent\textbf{solution:}\par\noindent}
\shadedsolutions
\definecolor{SolutionColor}{rgb}{0.8,0.9,1}

\newcounter{tmp}
\newcommand\correctoption[1]{\gdef\Correctoption{#1}\choice#1\setcounter{tmp}{\value{choice}}}
\newcommand\CorrectSolution[1][-1t]{%
  \begin{solutionorbox}[#1]
    The  \ordinalstring{tmp} option is correct.\par\Correctoption  
  \end{solutionorbox}%
}

\printanswers

\begin{document}

\begin{questions}
\question
She's not very .............. in the way she treats her children;they may be punished today for somthing they were rewarded for yesterday!
\begin{multicols}{4}
\begin{choices}
    \correctoption{a}
    \choice b
    \choice c
    \choice d
\end{choices}
\end{multicols}
\CorrectSolution[2in]

\question
What is the answer to the ultimate question of life, the universe, and everything?\begin{multicols}{4}
\begin{choices}
    \choice 15
    \choice 23
    \choice $\pi$
    \correctoption{42}
    \choice 31
\end{choices}
\end{multicols}
\CorrectSolution[2in]

\end{questions}

\end{document}

ingrese la descripción de la imagen aquí

Como mi sistema no tiene la B Nazaninfuente, comenté esa línea. También eliminé paquetes y configuraciones que no eran relevantes para la respuesta.

información relacionada