Totcount 取决于环境

Totcount 取决于环境

我想要一个计数器,称为ProblemPointsMWE,它依赖于环境problem,这样我就可以打印每个问题的总分。

\documentclass{article}
\usepackage{totcount}
\newtotcounter{ProblemPoints}

\newenvironment{problem}
{
\setcounter{ProblemPoints}{0}
Problem: (\total{ProblemPoints} points)
}
{\vspace{1cm}}

\begin{document}
\begin{problem}
Question 1: (2 points)\addtocounter{ProblemPoints}{2}
Question 2: (2 points)\addtocounter{ProblemPoints}{2}
\end{problem}
\begin{problem}
Question 1: (5 points)\addtocounter{ProblemPoints}{5}
Question 2: (1 points)\addtocounter{ProblemPoints}{1}
\end{problem}
\end{document}

这里它只在每个问题上打印 6(最后一个问题的总分)。

答案1

\total只能存储一个值。您可以使用\label-\ref方法。

\documentclass{article}

\newcounter{problem}
\newcounter{problempoints}
\renewcommand{\theproblem}{\theproblempoints}
\newcounter{question}

\newenvironment{problem}
 {%
  \par\addvspace{1cm}%
  \stepcounter{problem}%
  \setcounter{question}{0}%
  \setcounter{problempoints}{0}%
  Problem: (\ref{PB\arabic{problem}} points)\par
 }
 {%
  \addtocounter{problem}{-1}%
  \refstepcounter{problem}\label{PB\arabic{problem}}%
  \par\addvspace{1cm}%
 }
\newcommand{\question}[1]{%
  \par
  \stepcounter{question}%
  Question \thequestion: (#1 points)\addtocounter{problempoints}{#1}
}

\begin{document}
\begin{problem}
\question{2} What is $1+2$?
\question{2} What is $1+3$?
\end{problem}
\begin{problem}
\question{5} What is $100\cdot 100$?
\question{1} What is $2^4-4^2$?
\end{problem}
\end{document}

每个问题都会采取一个计数器来获取扩展到最终值的标签\theproblempoints

\stepcounter在开始时这样做,然后退后计数器并\refstepcounter再次这样做,以便在最后一刻设置当前标签,这样您也可以\label在环境内部使用。

在此处输入图片描述

相关内容