使用尚未定义的计数器

使用尚未定义的计数器

目前我正在编写一个用于家庭作业的模板。出于风格原因,我希望有一个标题页,其中包含一个表格,其中包含每个练习的所有最高分数以及我获得的分数的可用空间。

我定义了一个自己的定理环境,exercise它成为其中可能的最大点数exercise。例如,exercise最多有 4 个点

\begin{exercise}[4]
     Some text here...
\end{exercise}

我可以在文档的后面使用这个数字(存储为计数器),但我希望将表格作为第一页。

是否可以在定义值之前访问它?像目录这样的东西就可以了。第一次编译时所有值都存储起来,表格显示零。第二次编译时,表格显示正确的数字。简而言之,我希望在课堂上看到类似的东西exam,你可以定义点,它们会显示在标题页上。但由于我们的练习相当复杂,我想使用我自己的包并复制这种机制。

答案1

这会将信用点数存储到一个.exer文件中,该文件类似于.toc,以 开头显示\listofcredits,信用点数的总数显示在列表末尾。

\@starttoc加载.exer文件。

然而,需要更多信息来改进设计和功能。

\documentclass{article}
\usepackage{totcount}
\newcounter{exercise}

\newtotcounter{totalcredits}



\newenvironment{exercise}[1][1]{%
  \refstepcounter{exercise}%
  \addtocontents{exer}{\protect\contentsline{section}{\protect\numberline{\theexercise}}{#1}}
  \addtocounter{totalcredits}{#1}%
}{}

\AtEndDocument{%
  \addtocontents{exer}{\protect\addvspace{10pt}\par\protect\hrule}
  \addtocontents{exer}{\protect\contentsline{section}{Total}{\number\totvalue{totalcredits}}}
}


\makeatletter
\newcommand{\listofcredits}{%
  \section*{Credit points}
  \@starttoc{exer}
}
\makeatother

\begin{document}

\listofcredits

\clearpage

\begin{exercise}[4]
  Foo
\end{exercise}


\begin{exercise}[17]
  Foobar
\end{exercise}



\end{document}

在此处输入图片描述

相关内容