我目前正在编写一本教科书。它包含大量练习,我希望它在书的末尾包含答案。答案应该具有与书相同的结构,即所有章节/部分标题和正确的练习编号。我不知道如何处理 ConTeXt 中的一些问题。
下面是我的最小示例,使用方式如下\definelist
:
\definelist[Answers]
\setuplist[Answers][criterium=all,pagenumber=no]
\defineenumeration[Exercise][alternative=top,inbetween={\blank[nowhite]},text=Task,way=bychapter]
\def\Task{\dosingleempty\doTask}
\long\def\doTask[#1]#2{
\startExercise
#2
\writetolist[Answers]{}{\getnumber[Exercise] #1}
\stopExercise
}
\starttext
\chapter{First chapter}
Some text
\Task[Answer 1]{Content here}
\Task[Answer 2]{Text goes here}
\chapter{Second chapter}
\Task{Question three without answer}
\Task[Answer 4]{Number four}
\completelist[Answers]
\stoptext
问题:
- 为什么不起作用
\getnumber[Exercise]
?(没有问题编号的答案没有意义。) - 如何在答案中适当的位置包含章节标题/编号?(使结构和导航清晰并防止歧义。)
- 如何处理关键中没有答案的问题?
- [可选] 如何在答案的页眉/页脚中包含答案所指的实际内容的页码(例如答案第 76-100 页)?
编辑:扫描答案
答案1
我稍后会更详细地写,但这可能会帮助你入门:
\defineenumeration
[Task]
[
title=yes,
text=Task,
way=bychapter,
titlecommand=\gobbleoneargument,
]
\starttext
\chapter{First chapter}
Some text
\startTask{Answer 1}
Content here
\stopTask
\startTask{Answer 2}
Content here
\stopTask
\chapter{Second chapter}
\startTask
Content here
\stopTask
\startTask{Answer 4}
Content here
\stopTask
\completelist[Task][criterium=all, pagenumber=no]
\stoptext
另一个选择是使用 Wolfgang Schuster 的注释模块,它提供了一个键值驱动的接口,因此您可以编写:
\startTask[list={....}] .... \stopTask