目前我正在编写一个用于家庭作业的模板。出于风格原因,我希望有一个标题页,其中包含一个表格,其中包含每个练习的所有最高分数以及我获得的分数的可用空间。
我定义了一个自己的定理环境,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}