새로운 명령으로 \problem
수학 학생들을 위한 테스트를 조판하는 데 사용합니다. 때로는 특정 문제에서 얼마나 많은 크레딧을 모을 수 있는지도 포함합니다. 키 를 사용하면 credits
모든 것이 잘 작동합니다. 하지만 \task[<credits>]
사소한 질문과 그 크레딧을 인쇄할 수 있는 명령 도 있습니다 (아래 MWE 참조). 현재 직면하고 있는 문제는 명령과 함께 제공된 크레딧이 \task
한 번이 아닌 여러 번 적용된다는 것입니다. 어떤 팁이 있나요? 감사합니다!
\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}