blob: fe6152ed961cc4ff3d6e2c10d3026a9b7e7079f7 (
plain)
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
|
\documentclass{article}
\usepackage{xsim,tcolorbox,needspace}
% declare a boolean property:
\DeclareExerciseProperty*{short}
% declare a tag like property:
\DeclareExerciseTagging{level}
% declare a template which typesets exercises differently according to given
% properties:
\DeclareExerciseEnvironmentTemplate{exercise}
{%
\renewcommand*\theenumi{\theexercise.\arabic{enumi}}%
\par\addvspace{\baselineskip}
\Needspace*{2\baselineskip}
\noindent
\GetExercisePropertyT{level}{\marginpar{\sffamily Level: #1}}%
\textbf{\XSIMmixedcase{\GetExerciseName}~\GetExerciseProperty{counter}.} %
\GetExercisePropertyT{subtitle}{\textit{#1}}%
\IfExerciseBooleanPropertyF{short}{\par\noindent}%
}
{}
% declare a tcolorbox template for the solutions:
\DeclareExerciseEnvironmentTemplate{solution}
{\tcolorbox[colback=yellow,colframe=red]}
{\endtcolorbox}
% declare a user command for short answers:
\NewDocumentCommand\answer{m}{%
\IfSolutionPrintT{%
\UseExerciseTemplate{begin}{solution}%
#1%
\UseExerciseTemplate{end}{solution}%
}{}%
}
% setup exercises and solutions:
\SetExerciseParameters{exercise}{
exercise-template = exercise ,
solution-template = solution
}
% remove this option to hide the answers:
\xsimsetup{solution/print=true}
\usepackage{lipsum}
\begin{document}
\begin{exercise}[level=hard,short]
Just a short exercise
\end{exercise}
\begin{solution}
The somewhat longer solution to the short exercise. \lipsum[1]
\end{solution}
\begin{exercise}[subtitle=This one has a title,level=easy]
Answer the following questions.
\begin{enumerate}
\item question \answer{answer}
\item question \answer{answer}
\end{enumerate}
\end{exercise}
\begin{exercise}
A long exercise. \lipsum[4]\answer{The answer}
\end{exercise}
\begin{exercise}[level=medium,short]
Another short exercise.\answer{The answer}
\end{exercise}
\end{document}
|