1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
|
--------------------------------------------------------------------------
XSIM -- eXercise Sheets IMproved
--------------------------------------------------------------------------
Clemens Niederberger
Web: https://github.com/cgnieder/xsim
E-Mail: contact@mychemistry.eu
--------------------------------------------------------------------------
Copyright 2017--2021 Clemens Niederberger
This work may be distributed and/or modified under the
conditions of the LaTeX Project Public License, either version 1.3c
of this license or (at your option) any later version.
The latest version of this license is in
http://www.latex-project.org/lppl.txt
and version 1.3c or later is part of all distributions of LaTeX
version 2008/05/04 or later.
This work has the LPPL maintenance status `maintained'.
The Current Maintainer of this work is Clemens Niederberger.
--------------------------------------------------------------------------
HISTORY:
v0.0 2017/02/09 - start with coding the first ideas
v0.1 2017/03/19 - first draft which actually seems to do everything as
planned
v0.2 2017/03/21 - bugfix in the verbwrite module
- add `use!' and `print!' properties
- add the concepts of `noupdate' and `boolean' properties
v0.4 2017/03/24 - \IfExerciseBooleanPropertyTF
- \GetExercisePropertyTF, \PropertyValue
- \printallsolutions
- \UseExerciseTemplate
- bug fix in solution environments: now get printed again
when option `print=true' is used
- bug fix to the translations of the solution list headings:
exercise name instead of exercise type is now printed
- \AddtoExerciseTypeGoal, \AddtoExerciseGoal
\AddtoExerciseTypeGoalPrint, \AddtoExerciseGoalPrint,
\ExerciseGoalValuePrint
- \addpoints, \addbonus, \points, \printgoal
v0.5 2017/03/30 - add style file mechanism
- make solution print conditions `section' and `chapter'
combinable
v0.5a 2017/04/15 - fix wrong translation of the `default-heading'
v0.5b 2017/04/16 - add \SetExerciseProperty
v0.6 2017/04/27 - official interface for grade distributions
- refine hook management (environment module)
v0.6a 2017/04/28 - refine \blank command, add documentation for said command
v0.7 2017/05/09 - \xsim_list_length:n
- new boolean property `used'
- when an exercise is collected the counter isn't stepped
but only when the exercise is inserted for the first
time; when this happens the new property `used' is set to
`true'
- make setting boolean properties case insensitive
- add missing pieces to manual (eg `page' property...)
- \TotalExerciseGoals and \TotalExerciseTypeGoals
- \XSIMifchapterTF
- \xsim_if_goal_sum:nnnTF and friends,
\IfExerciseTypeGoalsSumTF and \IfExerciseGoalsSumTF
- some more hints in the manual regarding collections
v0.8 2017/05/18 - bug fix in \xsim_set_property:nnnn
- random exercise lists from collections
- \xsim_collection_count:n
- \GetExerciseIdForProperty and \GetExerciseTypeForProperty
for unique properties
- set property `print=false' during collection and only to
true when the corresponding exercises actually are
printed
- do not insert \par at the beginning and end of exercises
and solutions; this should be left to the templates!
- new option `print-collection/print' which allows to
choose between exercises, solutions, and both to be
printed
- new parameter `solution-counter' in order to avoid
possible conflicts with existing counters
v0.8a 2017/05/19 - \IfPrintSolutionTF
v0.8b 2017/05/23 - use \printgoal in default environment template
- \xsim_print_goal:nnn now expands input to a number
v0.9 2017/06/20 - \xsimstyle's behaviour now matches the description in
the manual
- add style file `layouts' which at the moment provides the
two exercise templates `runin' and `margin'
- \printforexercises , \xsim_print_type_code:nnnnn
- \IfExerciseParameterSetTF
- \GetExerciseParameterTF
- change syntax of \SetExerciseProperty
- \SetExpandedExerciseProperty
- \ExerciseSetProperty, \ExerciseSetExpandedProperty
- property `sectioning'
- \IfExistSolutionTF
v0.10 2017/09/19 - \xsim_input:nnn
- \GetExerciseBody
- option `blank/fill'
- bug fix in \xsim_start_collection:nn
- added further examples to package
- new option `file-extension'
v0.10a 2017/10/01 - bug fix: grading table options can now be set with
\xsimsetup (issue 15)
v0.11 2018/02/12 - change name requirement for style files in order to
prevent possible name clashes with module files
- fix bug in \SetExerciseProperty and
\SetExpandedExerciseProperty
- fix bug when xsimverb is used standalone (issue 21)
- add option `split-aux-lists' (issue 18)
- \IfExerciseTagSetTF and \IfExerciseTopicSetTF
- introduce a \xsim_if_<tagging>_value:nTF for each tag
kind
- \ProvideExerciseTagging
v0.12 2019/09/30 - add parameter versions for the plural forms of exercise
and solution names
- bug fixes (issues 37, 39, 43, 47)
v0.13 2019/10/06 - experimental package option `no-files'
v0.14 2019/10/13 - new exercise parameters `exercise-heading' and
`solution-heading'
- new options `exercise/heading' and `solution/heading' as
interface for setting the new parameters
- new command \GetExerciseHeadingF for using the new
parameters in environment templates
- change the environment template `default' to use the new
\GetExerciseHeadingF and output a \par at the end
- make argument of \xsimsetup long
- new template `minimal'
- new option `load-style'
- new example `texwelt-23968' (long and short solutions)
v0.14a 2019/10/19 - fix \xsim_if_exercise_exist:nnTF to obey the `no-files'
option
v0.15 2019/11/02 - use own auxiliary file per default and add option
`use-aux'
v0.16 2019/11/10 - fix issue due to usage of own auxiliary file
- \XSIMatbegindocument and \XSIMatenddocument
- \xprintexercise, \xprintsolution, \xsimprint, \xsimxprint
2019/12/29 - bugfix in `xsimverb'
v0.16a 2020/01/16 - adapt to renaming of string case changing functions
v0.17 2020/02/21 - prefer lazy boolean evaluation if possible
- remove spurious \par at the beginning of typeset
exercises
- add `blank' option, implements issue #31
- add `solution' property, implements issue #33
- fix issue #27
- implement issue #2
- don't allow package options to be set with \xsimsetup
v0.18 2020/02/23 - fix issue #56
- change \printexercise and \printsolution to accept a
clist of either ids or IDs (or mixed)
- new templates in the `layouts' style
v0.19 2020/03/16 - improve performance
- only set \ExerciseID and \ExerciseType locally to ensure
correct values when exercises (of different types) are
nested
- new load-time option `debug' - only for development
v0.19a 2020/03/19 - fix missing-variant-bug introduced with the last update
v0.19b 2020/04/04 - fix bug in new attribute mechanism which was a problem
when `no-files` has been used
v0.20 2021/01/31 - switch to one sty file per package
- use LaTeX's new hooks
- declare undeclared variables
- new exercise setup mechanism which clearly determines the
difference between definition, usage, and printing of an
exercise; this also solves the problem with added goals
in the exercise body in a collection
- re-write collection mechanism:
* changes the behaviour of \collectexercises but doesn't
require external files any more and more importantly
doesn't require inputting files several times for
multiple collections
* drop \collectexercisestype
* new \(de)activatecollection
* new options `collect' and `<type>/collect'
- small improvements in performance
- new parameters `within' and `the-counter'
- make `no-files' the default
- new examples
- various small fixes
v0.20a 2021/02/01 - re-add missing `layouts' style
- add example texsx-549540
v0.20b 2021/02/02 - fix issue #78
v0.20c 2021/02/03 - fix issue #80
- add missing test in \xsim_if_exist:nnnTF
|