tabularray und \gappto

tabularray und \gappto

Als neuen Befehl setze ich \problemTests für meine Mathestudenten. Manchmal gebe ich auch an, wie viele Credits man bei einer bestimmten Aufgabe sammeln kann. Wenn ich die creditsTaste verwende, funktioniert alles einwandfrei. Ich habe aber auch einen \task[<credits>]Befehl, mit dem ich kleinere Fragen und deren Credits ausdrucken kann (siehe MWE unten). Das Problem, mit dem ich derzeit konfrontiert bin, ist, dass die mit dem Befehl angegebenen Credits \taskmehrfach statt nur einmal gesetzt werden. Habt ihr Tipps? Danke!


\documentclass[12pt]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{xifthen}    
\usepackage{tikz}
\usepackage{tabularray}
  \UseTblrLibrary{booktabs, counter}

\makeatletter
\def\credit{}
\newcounter{WS@credits}
\setcounter{WS@credits}{0}
\newcounter{subtask}
\setcounter{subtask}{1}
\renewcommand{\thesubtask}{\alph{subtask})}
\newcommand{\task}[1][]{%
    \ifthenelse{\isempty{#1}}{%
        \thesubtask%
        \stepcounter{subtask}%
    }{%
        \thesubtask%
        \addtocounter{WS@credits}{#1}%
        \ifnum\arabic{subtask}=1%
            \gappto\credit{(#1~p)}%
        \else%
            \gappto\credit{\\(#1~p)}%
        \fi%
        \stepcounter{subtask}%
    }%
}

\newcommand{\problem@credits}{}
\define@key{problem}{credits}[\problem@credits]{\renewcommand{\problem@credits}{%
    \addtocounter{WS@credits}{#1}%
    (#1~p)%
    }%
}

\newcounter{probctr}
\setcounter{probctr}{1}

\newcommand{\problem}[3][]{
    \setkeys{problem}{#1}%
    \begin{tblr}{colspec={>{\bfseries}lX}, column{1}={leftsep=0ex, rightsep=1.5ex}, column{2}={leftsep=0ex, rightsep=0ex}}
        \tikz[remember picture, baseline=(probctrbox.base)]{%
            \node[anchor=north west] (probctrbox) at (0,0) {A\arabic{probctr}};
        } &
        {#2}%
    \end{tblr}%
    \tikz[remember picture, overlay]{%
        \node at (probctrbox.south) [below, font=\scriptsize\normalfont]{\parbox{7ex}{\centering\ifdefempty{\credit}{\problem@credits}{\credit}}};
    }
    \stepcounter{probctr}
    \setcounter{subtask}{1}
    \renewcommand{\credit}{}
    \renewcommand{\problem@credits}{}
}
\makeatother

\begin{document}
\problem[credits=3]{
Write as power expressions.

\begin{tblr}{colspec={*{2}{>{\bfseries}lX}}, column{odd}={rightsep=0ex}}
    \task & $2\cdot 2\cdot 2\cdot 2$ &
        \task & $3\cdot 3\cdot 3\cdot 3\cdot 3\cdot 3$
\end{tblr}
}{
\begin{tblr}{colspec={*{2}{>{\bfseries}lX}}, column{odd}={rightsep=0ex}}
    \task & $=2^4$ &
        \task & $=3^6$
\end{tblr}
}

\problem{
Write as power expressions.

\begin{tblr}{colspec={*{2}{>{\bfseries}lX}}, column{odd}={rightsep=0ex}}
    \task[1] & $2\cdot 2\cdot 2\cdot 2$ &
        \task[3] & $3\cdot 3\cdot 3\cdot 3\cdot 3\cdot 3$
\end{tblr}
}{
\begin{tblr}{colspec={*{2}{>{\bfseries}lX}}, column{odd}={rightsep=0ex}}
    \task & $=2^4$ &
        \task & $=3^6$
\end{tblr}
}
\end{document}

verwandte Informationen