
Как мне сбросить счетчик упражнений в пределах одного типа упражнений. Я не хочу создавать разные типы упражнений, так как хочу создать банк вопросов и использовать опцию сбора. Я прикрепил MWE и требуемый вывод. Я новичок и я открыт, даже если кто-то может улучшить мой код с помощью XSIM.
Мой МВЭ
\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}
Требуемый результат:
решение1
Пользователькабохадал правильное направление решению в комментариях.
После добавления настройки within=section
в \DeclareExerciseType
, все, что вам нужно сделать, это переопределить команду \section
так, чтобы она не отображала раздел чисел перед собой. Это можно сделать с помощьютитулсекупаковка, как показано.
В этом решении вы используете \section
команду, а не отмеченную звездочкой версию \section*
.
Итак, с помощью этого кода:
\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}
вы получаете, что: