![Totcount 取决于环境](https://linux22.com/image/366957/Totcount%20%E5%8F%96%E5%86%B3%E4%BA%8E%E7%8E%AF%E5%A2%83.png)
我想要一个计数器,称为ProblemPoints
MWE,它依赖于环境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
在环境内部使用。