Wie kann ich eine von Xparse generierte Liste in „abschnittsähnliche“ Umgebungen unterteilen?

Wie kann ich eine von Xparse generierte Liste in „abschnittsähnliche“ Umgebungen unterteilen?

Ich verwende die xparseBibliothek hauptsächlich, um organisierte Listen zu erstellen. Hier ist ein MWE:

\documentclass{article}
\usepackage{xparse}
\newcounter{quest}
\newcommand{\quest}{\noindent\stepcounter{quest}{\bf Q}{\bf \arabic{quest}.\ }}

\ExplSyntaxOn

\NewDocumentCommand{\answer}{ m }{ \malmedal_input_add:n { #1 } }
\NewDocumentCommand{\listanswers}{ }{ \malmedal_output_direct: }

\seq_new:N \g_malmedal_input_seq
\seq_new:N \l_malmedal_temp_seq
\int_new:N \l_malmedal_count_int

\cs_new:Npn \malmedal_input_add:n #1
 {
  \seq_gput_right:Nn \g_malmedal_input_seq { #1 }
 }

\cs_new_protected:Npn \malmedal_output_direct:
 {
  \int_zero:N \l_malmedal_count_int
  \seq_map_inline:Nn \g_malmedal_input_seq
   {
    \int_incr:N \l_malmedal_count_int
    \malmedal_print:n { ##1 }
   }
 }

\cs_new:Npn \malmedal_print:n #1
 {
  \noindent{\textbf{Question } ~ \bfseries\int_to_arabic:n { \l_malmedal_count_int }} ~ : ~ #1 \par
 }
\ExplSyntaxOff

\begin{document}

\section{Math}
\quest $1 + 1 = ?$
\answer{$2$.}

\quest If $a = 2$ and $b = 5$, then $a - b = ?$
\answer{$-3$.}

\quest Are there any natural numbers between $8$ and $9$?
\answer{No.}

\section{Physics}
\quest What's the speed of light in vacuum?
\answer{$\approx 3\cdot 10^8$ m/s}

\quest Name one thing one can't do without atmospheric pressure.
\answer{To drink water with a straw.}
\section{Answer Key}

\listanswers
\end{document}

Das Ergebnis:

Bildbeschreibung hier eingeben

Ich habe mich gefragt, ob es eine Möglichkeit gibt, die generierte Liste wie folgt nach den einzelnen Abschnitten aufzuteilen:

Bildbeschreibung hier eingeben

Und bitte, wenn Sie helfen möchten, sagen Sie nicht einfach, dass es einen einfacheren Weg gibt, Antwortschlüssel zu generieren. Ich brauche eine Lösung im xparse-Paket. Vielen Dank schon mal!

verwandte Informationen