So setzen Sie den Trainingszähler in XSIM zurück

So setzen Sie den Trainingszähler in XSIM zurück

Wie kann ich den Übungszähler innerhalb desselben Übungstyps zurücksetzen? Ich möchte keine unterschiedlichen Übungstypen erstellen, da ich eine Fragendatenbank erstellen und die Sammlungsoption verwenden möchte. Ich habe MWE und die erforderliche Ausgabe angehängt. Ich bin Anfänger und offen, auch wenn jemand meinen Code mithilfe von XSIM verbessern kann.

Mein MWE

\documentclass[a4paper,12pt]{article}
\usepackage{xsim}
\usepackage{tasks}


\settasks{
label = (\theexercise\arabic*) ,
label-width = 5ex,
item-indent=6ex
}

\DeclareExerciseType{question}{
  exercise-env = question ,
  solution-env = answer ,
  exercise-name = Question ,
  solution-name = Answer ,
  exercise-template = item ,
  solution-template = solution ,
%   exercise/the-counter = \arabic{exercise}. ,
  counter = exercise, % shares a counter with the `exercise' type
}

\DeclareExerciseEnvironmentTemplate{item}
  {\item[\GetExerciseProperty{counter}]
  \GetExercisePropertyT{points}
    {%
    \marginpar
      {%
      \par\vspace{2.5ex plus .2ex}
      [\printgoal{\PropertyValue}]%
      }%
    }%
  }%
  {}

     
  \DeclareExerciseEnvironmentTemplate{solution}
  {\item[\GetExerciseProperty{counter}]}
  {}


\newenvironment{questions}
   {\itemize}
   {\enditemize}

   \newenvironment{answers}
   {\itemize}
   {\enditemize}

\usepackage{lipsum}
    


\xsimsetup{
    exercise/the-counter = \arabic{exercise}.,
    % exercise/within = section,
    % answer/print = true,
}

\begin{document}

\section*{Section A}

\begin{questions}

  \begin{question}[points=4]
    \lipsum[66]
  \end{question}
  \begin{answer}
    \lipsum[66]
  \end{answer}

  \begin{question}
    Answer the following questions.
    \begin{tasks}
      \task \lipsum[75]
      \task question.
    \end{tasks}
  \end{question}

  \begin{question}
    \lipsum[66]
  \end{question}
  \begin{answer}
    \lipsum[75]
  \end{answer}



\end{questions}

\section*{Section B}


\begin{questions}

  \begin{question}[points=4]
    \lipsum[66]
  \end{question}
  \begin{answer}
    \lipsum[66]
  \end{answer}

  \begin{question}
    Answer the following questions.
    \begin{tasks}
      \task \lipsum[75]
      \task question.
    \end{tasks}
  \end{question}

  \begin{question}
    \lipsum[66]
  \end{question}
  \begin{answer}
    \lipsum[75]
  \end{answer}


\end{questions}



% \begin{answers}
%   \item[] \printsolutions
% \end{answers}

\end{document}

Erforderliche Ausgabe:

Bildbeschreibung hier eingeben

Antwort1

Der BenutzerAbonnierenhat in den Kommentaren die richtige Richtung zur Lösung angegeben.

Nachdem Sie die Einstellung within=sectionzu hinzugefügt haben \DeclareExerciseType, müssen Sie den \sectionBefehl nur noch neu definieren, damit er den Zahlenabschnitt nicht mehr vor ihm anzeigt. Dies können Sie mit demTitelsecPaket, wie gezeigt.

In dieser Lösung verwenden Sie den \sectionBefehl und nicht die mit einem Sternchen versehene Version \section*.

Also mit diesem Code:

\documentclass[a4paper,12pt]{article}
\usepackage{xsim}
\usepackage{tasks}

\settasks{
label = (\theexercise\arabic*) ,
label-width = 5ex,
item-indent=6ex
}

\DeclareExerciseType{question}{
  exercise-env = question ,
  solution-env = answer ,
  exercise-name = Question ,
  solution-name = Answer ,
  exercise-template = item ,
  solution-template = solution ,
%   exercise/the-counter = \arabic{exercise}. ,
  counter = exercise, % shares a counter with the `exercise' type
  within=section %% ADDED via comment by "cabohah"
}

\DeclareExerciseEnvironmentTemplate{item}
  {\item[\GetExerciseProperty{counter}]
  \GetExercisePropertyT{points}
    {%
    \marginpar
      {%
      \par\vspace{2.5ex plus .2ex}
      [\printgoal{\PropertyValue}]%
      }%
    }%
  }%
  {}

     
  \DeclareExerciseEnvironmentTemplate{solution}
  {\item[\GetExerciseProperty{counter}]}
  {}


\newenvironment{questions}
   {\itemize}
   {\enditemize}

   \newenvironment{answers}
   {\itemize}
   {\enditemize}

\usepackage{lipsum}
    
\xsimsetup{
    exercise/the-counter = \arabic{exercise}.,
    %exercise/within = section,
    % answer/print = true,
}

% Modifying the \section command
\usepackage{titlesec}
\titleformat{\section}[hang]%
{}%
{}%
{0pt}%
{\Large\textbf}%

\begin{document}

\section{Section A}

\begin{questions}

  \begin{question}[points=4]
    \lipsum[66]
  \end{question}
  \begin{answer}
    \lipsum[66]
  \end{answer}

  \begin{question}
    Answer the following questions.
    \begin{tasks}
      \task \lipsum[75]
      \task question.
    \end{tasks}
  \end{question}

  \begin{question}
    \lipsum[66]
  \end{question}
  \begin{answer}
    \lipsum[75]
  \end{answer}

\end{questions}


\section{Section B}

\begin{questions}

  \begin{question}[points=4]
    \lipsum[66]
  \end{question}
  \begin{answer}
    \lipsum[66]
  \end{answer}

  \begin{question}
    Answer the following questions.
    \begin{tasks}
      \task \lipsum[75]
      \task question.
    \end{tasks}
  \end{question}

  \begin{question}
    \lipsum[66]
  \end{question}
  \begin{answer}
    \lipsum[75]
  \end{answer}

\end{questions}

\end{document}

Sie erhalten Folgendes:

Bildbeschreibung hier eingeben

verwandte Informationen