texlive[41850] Master/texmf-dist: exsheets (14aug16)
commits+karl at tug.org
commits+karl at tug.org
Sun Aug 14 23:59:50 CEST 2016
Revision: 41850
http://tug.org/svn/texlive?view=revision&revision=41850
Author: karl
Date: 2016-08-14 23:59:50 +0200 (Sun, 14 Aug 2016)
Log Message:
-----------
exsheets (14aug16)
Modified Paths:
--------------
trunk/Master/texmf-dist/doc/latex/exsheets/README
trunk/Master/texmf-dist/doc/latex/exsheets/exsheets_en.pdf
trunk/Master/texmf-dist/doc/latex/exsheets/exsheets_en.tex
trunk/Master/texmf-dist/tex/latex/exsheets/exsheets.sty
trunk/Master/texmf-dist/tex/latex/exsheets/exsheets_headings.cfg
trunk/Master/texmf-dist/tex/latex/exsheets/exsheets_headings.def
Modified: trunk/Master/texmf-dist/doc/latex/exsheets/README
===================================================================
--- trunk/Master/texmf-dist/doc/latex/exsheets/README 2016-08-14 21:59:33 UTC (rev 41849)
+++ trunk/Master/texmf-dist/doc/latex/exsheets/README 2016-08-14 21:59:50 UTC (rev 41850)
@@ -1,9 +1,9 @@
--------------------------------------------------------------------------
-EXSHEETS 2016/02/01
+EXSHEETS 2016/08/14 v0.21d
bundled packages:
-the EXSHEETS package v0.21b
+the EXSHEETS package
Yet another package for the creation of exercise sheets
-the EXSHEETS-LISTINGS package v0.21b
+the EXSHEETS-LISTINGS package
Using listings in exsheets
--------------------------------------------------------------------------
Modified: trunk/Master/texmf-dist/doc/latex/exsheets/exsheets_en.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/doc/latex/exsheets/exsheets_en.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/exsheets/exsheets_en.tex 2016-08-14 21:59:33 UTC (rev 41849)
+++ trunk/Master/texmf-dist/doc/latex/exsheets/exsheets_en.tex 2016-08-14 21:59:50 UTC (rev 41850)
@@ -342,8 +342,8 @@
% released independently. You can find it as every other package on \ctan\ and
% in a full \TeX~Live or \hologo{MiKTeX} installation.
-\section{News}
-\begin{description}
+% \section{News}
+% \begin{description}
% \item[Version 0.7]
% With version~0.7 there has been a potentially breaking change: the
% \code{tasks} environment previously provided by \ExSheets\ has been
@@ -379,121 +379,121 @@
% the \ExSheets\ bundle. From now on (July~17.\@ 2013) it is provided as a
% package of its own.
-\item[Version 0.10]
- The \ExSheets\ family has got a new member: \ExSheetslistings. This package
- proposes a solution for the problem of using verbatim material in \ExSheets'
- \env{question} and \env{solution} environments. It is presented in
- part~\ref{part:listings}.
+% \item[Version 0.10]
+% The \ExSheets\ family has got a new member: \ExSheetslistings. This package
+% proposes a solution for the problem of using verbatim material in \ExSheets'
+% \env{question} and \env{solution} environments. It is presented in
+% part~\ref{part:listings}.
- Question now can get subtitles that are printed if the heading instance
- supports it, see section~\ref{sec:subtitles-questions}.
+% Question now can get subtitles that are printed if the heading instance
+% supports it, see section~\ref{sec:subtitles-questions}.
-\item[Version 0.11]
- The commands \cs{GetQuestionClass} and \cs{PrintQuestionClassTF} have been
- added. They're explained in section~\ref{sec:retr-class-value}.
+% \item[Version 0.11]
+% The commands \cs{GetQuestionClass} and \cs{PrintQuestionClassTF} have been
+% added. They're explained in section~\ref{sec:retr-class-value}.
-\item[Version 0.12]
- The \option{auto-label} is now more flexible to allow the use together with
- packages \pkg{cleveref}.
+% \item[Version 0.12]
+% The \option{auto-label} is now more flexible to allow the use together with
+% packages \pkg{cleveref}.
- Question properties can now be retrieved before the question is printed (by
- writing the properties to the \code{aux} file).
+% Question properties can now be retrieved before the question is printed (by
+% writing the properties to the \code{aux} file).
-\item[Version 0.13]
- New options:
- \begin{itemize}
- \item \option{chapter-hook} allows to add code to the list of solutions
- when the solutions of a new chapter are printed, see
- section~\ref{sec:solutions-print-all}.
- \item \option{section-hook} allows to add code to the list of solutions
- when the solutions of a new section are printed, see
- section~\ref{sec:solutions-print-all}.
- \end{itemize}
+% \item[Version 0.13]
+% New options:
+% \begin{itemize}
+% \item \option{chapter-hook} allows to add code to the list of solutions
+% when the solutions of a new chapter are printed, see
+% section~\ref{sec:solutions-print-all}.
+% \item \option{section-hook} allows to add code to the list of solutions
+% when the solutions of a new section are printed, see
+% section~\ref{sec:solutions-print-all}.
+% \end{itemize}
-\item[Version 0.14]
- New options:
- \begin{itemize}
- \item New option \option{pre-hook} to the \env{question} environment that
- allows to add code directly before the question body, see
- section~\ref{sec:opti-ques-envir}.
- \item New option \option{post-hook} to the \env{question} environment that
- allows to add code directly after the question body, see
- section~\ref{sec:opti-ques-envir}.
- \item New command \cs{ExSheetsHeading}, see
- section~\ref{sec:using-an-exsheets}.
- \item New pre-defined question properties \code{question-body},
- \code{bonus-points} and \code{counter}, see
- section~\ref{sec:additional_info}.
- \item New option \option{save-to-aux}, see
- section~\ref{sec:additional_info}.
- \end{itemize}
+% \item[Version 0.14]
+% New options:
+% \begin{itemize}
+% \item New option \option{pre-hook} to the \env{question} environment that
+% allows to add code directly before the question body, see
+% section~\ref{sec:opti-ques-envir}.
+% \item New option \option{post-hook} to the \env{question} environment that
+% allows to add code directly after the question body, see
+% section~\ref{sec:opti-ques-envir}.
+% \item New command \cs{ExSheetsHeading}, see
+% section~\ref{sec:using-an-exsheets}.
+% \item New pre-defined question properties \code{question-body},
+% \code{bonus-points} and \code{counter}, see
+% section~\ref{sec:additional_info}.
+% \item New option \option{save-to-aux}, see
+% section~\ref{sec:additional_info}.
+% \end{itemize}
-\item[Version 0.15]
- \begin{itemize}
- \item The packages \pkg{tasks} and \pkg{cntformats} have been removed from
- the bundle and are now distributed as packages of their own.
- \item The options \option*{load-headings} and \option*{load-tasks} have
- been dropped. The optional functionality they provided is now provided
- all the time.
- \item New command \cs{IfQuestionPropertyTF}, see
- section~\ref{sec:additional_info}.
- \end{itemize}
+% \item[Version 0.15]
+% \begin{itemize}
+% \item The packages \pkg{tasks} and \pkg{cntformats} have been removed from
+% the bundle and are now distributed as packages of their own.
+% \item The options \option*{load-headings} and \option*{load-tasks} have
+% been dropped. The optional functionality they provided is now provided
+% all the time.
+% \item New command \cs{IfQuestionPropertyTF}, see
+% section~\ref{sec:additional_info}.
+% \end{itemize}
-\item[Version 0.16]
- New options/changes:
- \begin{itemize}
- \item The option \option{pre-hook} to the \env{question} environment now
- places its contents before the question heading, see
- section~\ref{sec:opti-ques-envir}.
- \item New option \option{pre-body-hook} to the \env{question} environment
- which adds its contents before the question body, see
- section~\ref{sec:opti-ques-envir}.
- \item New option \option{post-body-hook} to the \env{question} environment
- which adds its contents after the question body, see
- section~\ref{sec:opti-ques-envir}.
- \item New option \option{pre-hook} to the \env{solution} environment which
- adds code before a solution, see section~\ref{sec:opti-soli-envir}.
- \item New option \option{post-hook} to the \env{solution} environment which
- adds code after a solution, see section~\ref{sec:opti-soli-envir}.
- \item New option \option{pre-body-hook} to the \env{solution} environment
- which adds its contents before the solution body, see
- section~\ref{sec:opti-soli-envir}.
- \item New option \option{post-body-hook} to the \env{solution} environment
- which adds its contents after the solution body, see
- section~\ref{sec:opti-soli-envir}.
- \end{itemize}
+% \item[Version 0.16]
+% New options/changes:
+% \begin{itemize}
+% \item The option \option{pre-hook} to the \env{question} environment now
+% places its contents before the question heading, see
+% section~\ref{sec:opti-ques-envir}.
+% \item New option \option{pre-body-hook} to the \env{question} environment
+% which adds its contents before the question body, see
+% section~\ref{sec:opti-ques-envir}.
+% \item New option \option{post-body-hook} to the \env{question} environment
+% which adds its contents after the question body, see
+% section~\ref{sec:opti-ques-envir}.
+% \item New option \option{pre-hook} to the \env{solution} environment which
+% adds code before a solution, see section~\ref{sec:opti-soli-envir}.
+% \item New option \option{post-hook} to the \env{solution} environment which
+% adds code after a solution, see section~\ref{sec:opti-soli-envir}.
+% \item New option \option{pre-body-hook} to the \env{solution} environment
+% which adds its contents before the solution body, see
+% section~\ref{sec:opti-soli-envir}.
+% \item New option \option{post-body-hook} to the \env{solution} environment
+% which adds its contents after the solution body, see
+% section~\ref{sec:opti-soli-envir}.
+% \end{itemize}
-\item[Version 0.17]
- New option:
- \begin{itemize}
- \item The option \option{use-saved-counter-format} has been introduced. It
- is described in section~\ref{sec:solutions} on
- page~\pageref{option:use-saved-counter-format}.
- \end{itemize}
+% \item[Version 0.17]
+% New option:
+% \begin{itemize}
+% \item The option \option{use-saved-counter-format} has been introduced. It
+% is described in section~\ref{sec:solutions} on
+% page~\pageref{option:use-saved-counter-format}.
+% \end{itemize}
-\item[Version 0.18]
- The package now provides the correct Danish translations, thanks to Jonas
- Nyrup.
+% \item[Version 0.18]
+% The package now provides the correct Danish translations, thanks to Jonas
+% Nyrup.
- The macro \cs{exsheetsprintsolution} is introduced, see
- page~\pageref{exsheetsprintsolution} for a little bit of an explanation.
+% The macro \cs{exsheetsprintsolution} is introduced, see
+% page~\pageref{exsheetsprintsolution} for a little bit of an explanation.
- The option \option{no-skip-below} is introduced which disables the insertion
- of vertical space after the question and solution environments.
+% The option \option{no-skip-below} is introduced which disables the insertion
+% of vertical space after the question and solution environments.
-\item[Version 0.20]
- New command \cs{DeclareExSheetsHeadingContainer}.
+% \item[Version 0.20]
+% New command \cs{DeclareExSheetsHeadingContainer}.
-\item[Version 0.21] Changes:
- \begin{itemize}
- \item \cs{includequestions} issues an error if it can't find the file to
- include.
- \item question properties are now also accessable when the corresponding
- question isn't printed.
- \item The variables \verbcode+\l_exsheets_counter_qu_int+ and \\
- \verbcode+\g_exsheets_question_identification_prop+ are now public.
- \end{itemize}
-\end{description}
+% \item[Version 0.21] Changes:
+% \begin{itemize}
+% \item \cs{includequestions} issues an error if it can't find the file to
+% include.
+% \item question properties are now also accessable when the corresponding
+% question isn't printed.
+% \item The variables \verbcode+\l_exsheets_counter_qu_int+ and \\
+% \verbcode+\g_exsheets_question_identification_prop+ are now public.
+% \end{itemize}
+% \end{description}
\section{Thanks}
I need to thank the many users who gave me feedback so far! For one thing
@@ -669,7 +669,7 @@
Beware that this also prevents bonus points. The points simply will be
written where the heading instance puts them.
-\sinceversion{0.3}On additional thing: you might want to define custom
+\sinceversion{0.3}One additional thing: you might want to define custom
commands that should behave differently if they're inside or outside of the
\env{question} environment. In this case you can use these commands:
\begin{commands}
@@ -692,7 +692,7 @@
from ``Exercise'' to ``Question''. These default names are language
dependent.\par
If you use \cs*{usepackage}\oarg{ngerman}\marg{babel}, for example, then
- the names are ``\"Ubung and ``Aufgabe''.
+ the names are ``Übung'' and ``Aufgabe''.
\keyval{name}{name}\Module{question}\Default
Sets a custom name. All predefined names are discarded.
\keyval{subtitle}{subtitle}\Module{question}\Default
@@ -1074,17 +1074,17 @@
with the exercises and one with the solutions, and you want to add different
titles to these versions, for instance.
-When solutions are saved a lot of information is saved. One of them is the
-current counter format. The following option determines wether the saved
-counter format or the currently active one is used when \cs{printsolutions} is
-called:
-\begin{options}
- \keybool{use-saved-counter-format}\Default{true}
- \changedversion{0.21}When set to true the counter format of solutions
- printed by \cs{printsolutions}\label{option:use-saved-counter-format} are
- independent from the setting of \option{counter-format}. The saved format
- is used instead.
-\end{options}
+% When solutions are saved a lot of information is saved. One of them is the
+% current counter format. The following option determines wether the saved
+% counter format or the currently active one is used when \cs{printsolutions} is
+% called:
+% \begin{options}
+% \keybool{use-saved-counter-format}\Default{true}
+% \changedversion{0.21}When set to true the counter format of solutions
+% printed by \cs{printsolutions}\label{option:use-saved-counter-format} are
+% independent from the setting of \option{counter-format}. The saved format
+% is used instead.
+% \end{options}
\subsection{Print all}\label{sec:solutions-print-all}
The first and easiest usage of \cs{printsolutions} is the following:
@@ -1773,7 +1773,7 @@
\section{Own Question/Solution Pairs}
-\noindent\changedversion{0.9}\ExSheets\ provides he possibility to create new
+\noindent\changedversion{0.9}\ExSheets\ provides the possibility to create new
environments that behave like the \env{question} and \env{solution}
environments. This would allow, for example, to define a
\env*{question*}/\env*{solution*} environment pair for bonus questions. The
@@ -2463,8 +2463,8 @@
vscale = 2 ,
pre-code = \rule{\linewidth}{1pt} ,
post-code = \rule{\linewidth}{1pt} ,
- title-format = \large\scshape\color{exsheetsred} ,
- number-format = \large\bfseries\color{exsheetsblue} ,
+ title-format = \large\scshape\color{rgb:red,0.65;green,0.04;blue,0.07} ,
+ number-format = \large\bfseries\color{rgb:red,0.02;green,0.04;blue,0.48} ,
points-format = \itshape ,
join = { number[r,B]title[l,B](.333em,0pt) } ,
attach =
@@ -2487,8 +2487,8 @@
vscale = 2 ,
pre-code = \rule{\linewidth}{1pt} ,
post-code = \rule{\linewidth}{1pt} ,
- title-format = \large\scshape\color{exsheetsred} ,
- number-format = \large\bfseries\color{exsheetsblue} ,
+ title-format = \large\scshape\color{rgb:red,0.65;green,0.04;blue,0.07} ,
+ number-format = \large\bfseries\color{rgb:red,0.02;green,0.04;blue,0.48} ,
points-format = \itshape ,
points-pre-code = ( ,
points-post-code = ) ,
Modified: trunk/Master/texmf-dist/tex/latex/exsheets/exsheets.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/exsheets/exsheets.sty 2016-08-14 21:59:33 UTC (rev 41849)
+++ trunk/Master/texmf-dist/tex/latex/exsheets/exsheets.sty 2016-08-14 21:59:50 UTC (rev 41850)
@@ -28,8 +28,8 @@
\RequirePackage { expl3 , xparse }
\ExplSyntaxOn
-\tl_const:Nn \c_exsheets_date_tl {2016/02/01}
-\tl_const:Nn \c_exsheets_version_tl {0.21b}
+\tl_const:Nn \c_exsheets_date_tl {2016/08/14}
+\tl_const:Nn \c_exsheets_version_tl {0.21d}
\tl_const:Nn \c_exsheets_info_tl
{Yet~ another~ package~ for~ the~ creation~ of~ exercise~ sheets~ and~ exams.}
@@ -41,11 +41,11 @@
% ----------------------------------------------------------------------------
% variants of kernel functions:
-\cs_generate_variant:Nn \prop_get:NnN { NV , Nx , cV , cf }
-\cs_generate_variant:Nn \prop_get:NnNF { NV , Nx , cV , cf }
-\cs_generate_variant:Nn \prop_get:NnNT { NV , Nx , cV , cf }
-\cs_generate_variant:Nn \prop_get:NnNTF { NV , Nx , cV , cf }
-\cs_generate_variant:Nn \prop_gput:Nnn { Nf , Nff , Nfx , Nx , Nxx , NxV , cf , cff }
+\cs_generate_variant:Nn \prop_get:NnN { NV , Nx , cV , cx }
+\cs_generate_variant:Nn \prop_get:NnNF { NV , Nx , cV , cx }
+\cs_generate_variant:Nn \prop_get:NnNT { NV , Nx , cV , cx }
+\cs_generate_variant:Nn \prop_get:NnNTF { NV , Nx , cV , cx }
+\cs_generate_variant:Nn \prop_gput:Nnn { Nf , Nff , Nfx , Nx , Nxx , NxV , cx , cxx }
\cs_generate_variant:Nn \prop_gput_if_new:Nnn { Nxx }
\cs_generate_variant:Nn \tl_if_blank:nTF { x }
\cs_generate_variant:Nn \tl_if_eq:nnF { x }
@@ -63,6 +63,7 @@
\int_new:N \l__exsheets_tmpc_int
\int_new:N \l__exsheets_tmpd_int
\int_new:N \l__exsheets_tmpe_int
+\int_new:N \g__exsheets_tmpa_int
\dim_new:N \l__exsheets_tmpa_dim
\dim_new:N \l__exsheets_tmpb_dim
\seq_new:N \l__exsheets_tmpa_seq
@@ -166,16 +167,9 @@
% ----------------------------------------------------------------------------
\RequirePackage
- { xtemplate , l3sort , l3keys2e , xcolor , etoolbox , environ , pgfcore }
+ { xtemplate , l3sort , l3keys2e , etoolbox , environ , pgfcore }
% ----------------------------------------------------------------------------
-% color:
-\xdefinecolor { exsheetsblue } { rgb } { 0.02 , 0.04 , 0.48 }
-\xdefinecolor { exsheetsred } { rgb } { 0.65 , 0.04 , 0.07 }
-% \tl_new:N \g__exsheets_color_tl
-\tl_const:Nn \c__exsheets_color_tl { exsheetsblue }
-
-% ----------------------------------------------------------------------------
% write to aux file:
\cs_new_protected:Npn \exsheets_write_to_aux_x:n #1
{ \if at filesw \iow_now:Nx \@auxout {#1} \fi }
@@ -188,78 +182,220 @@
\exp_not:N \providecommand \exp_not:N \exsheets at save@number[2]{} ^^J
\exp_not:N \providecommand \exp_not:N \exsheets at sum@of at points[1]{} ^^J
\exp_not:N \providecommand \exp_not:N \exsheets at sum@of at bonus[1]{} ^^J
- \exp_not:N \providecommand \exp_not:N \exsheets at use@id[2]{} ^^J
- % \exp_not:N \providecommand \exp_not:N \exsheets at number@of at questions[1]{} ^^J
- % \exp_not:N \providecommand \exp_not:N \numberofquestions{}
+ \exp_not:N \providecommand \exp_not:N \exsheets at used@id[2]{} ^^J
}
}
% ----------------------------------------------------------------------------
-% how are questions/solutions/... counted?
-\bool_new:N \l__exsheets_print_number_bool
-\bool_set_true:N \l__exsheets_print_number_bool
+% variables:
+\bool_new:N \l__exsheets_print_number_bool
+\bool_set_true:N \l__exsheets_print_number_bool
+\bool_new:N \l__exsheets_solutions_by_ref_bool
+\bool_new:N \l__exsheets_questions_totoc_bool
+\bool_new:N \l__exsheets_solutions_totoc_bool
+\bool_new:N \l__exsheets_auto_label_bool
+\bool_new:N \l__exsheets_no_skip_after_bool
+\bool_new:N \l__exsheets_points_questions_default_bool
+\bool_set_false:N \l__exsheets_points_questions_default_bool
+\bool_new:N \l__exsheets_parse_points_bool
+\bool_set_true:N \l__exsheets_parse_points_bool
+\bool_new:N \l__exsheets_points_name_bool
+\bool_set_true:N \l__exsheets_points_name_bool
+\bool_new:N \l__exsheets_points_separate_bonus_bool
+\bool_new:N \l__exsheets_grades_half_bool
+\bool_new:N \g__exsheets_questions_use_bool
+\bool_gset_true:N \g__exsheets_questions_use_bool
+\bool_new:N \l__exsheets_questions_use_bool
+\bool_set_true:N \l__exsheets_questions_use_bool
+\bool_new:N \l__exsheets_questions_deactivate_bool
+\bool_new:N \l__exsheets_save_question_body_to_aux_bool
+\bool_set_false:N \l__exsheets_save_question_body_to_aux_bool
+\bool_new:N \l__exsheets_solutions_use_bool
+\bool_set_true:N \l__exsheets_solutions_use_bool
+\bool_new:N \l__exsheets_use_this_question_bool
+\bool_new:N \l__exsheets_questions_print_bool
+\bool_set_true:N \l__exsheets_questions_print_bool
+\bool_new:N \l__exsheets_inside_question_bool
+\bool_new:N \l__exsheets_only_print_points_bool
+\bool_new:N \l__exsheets_exam_bool
+\bool_set_false:N \l__exsheets_exam_bool
+\bool_new:N \l__exsheets_questions_runin_bool
+\bool_set_false:N \l__exsheets_questions_runin_bool
+\bool_new:N \l__exsheets_questions_debug_bool
+\bool_set_false:N \l__exsheets_questions_debug_bool
+\bool_new:N \l__exsheets_select_questions_bool
+\bool_new:N \l__exsheets_include_all_bool
+\bool_new:N \l__exsheets_include_random_bool
+\bool_new:N \l__exsheets_include_by_id_bool
+\bool_set_true:N \l__exsheets_include_all_bool
+\bool_new:N \l__exsheets_use_selection_bool
+\bool_new:N \l__exsheets_solutions_print_bool
+\bool_set_false:N \l__exsheets_solutions_print_bool
+\bool_new:N \l__exsheets_solutions_print_here_bool
+\bool_set_false:N \l__exsheets_solutions_print_here_bool
+\bool_new:N \l__exsheets_solutions_print_section_bool
+\bool_set_false:N \l__exsheets_solutions_print_section_bool
+\bool_new:N \l__exsheets_solutions_print_chapter_bool
+\bool_set_false:N \l__exsheets_solutions_print_chapter_bool
+\bool_new:N \l__exsheets_solutions_print_all_bool
+\bool_set_false:N \l__exsheets_solutions_print_all_bool
+\bool_new:N \l__exsheets_inside_solution_bool
+\bool_set_false:N \l__exsheets_inside_solution_bool
+\bool_new:N \l__exsheets_solutions_runin_bool
+\bool_set_false:N \l__exsheets_solutions_runin_bool
+\bool_new:N \l__exsheets_print_byID_sorted_bool
+\bool_set_true:N \l__exsheets_print_byID_sorted_bool
+\bool_new:N \l__exsheets_blank_width_bool
+\bool_new:N \l__exsheets_blank_linespread_bool
+\tl_new:N \l__exsheets_points_name_tl
+\tl_set:Nn \l__exsheets_points_name_tl {P.}
+\tl_new:N \l__exsheets_points_name_plural_tl
+\tl_set:Nn \l__exsheets_points_name_plural_tl {P.}
+\tl_new:N \l__exsheets_bonus_name_tl
+\tl_set:Nn \l__exsheets_bonus_name_tl {P.}
+\tl_new:N \l__exsheets_bonus_name_plural_tl
+\tl_set:Nn \l__exsheets_bonus_name_plural_tl {P.}
+\tl_new:N \l__exsheets_points_number_format_tl
+\tl_new:N \l__exsheets_bonus_number_format_tl
+\tl_new:N \l__exsheets_points_pre_bonus_marker_tl
+\tl_set:Nn \l__exsheets_points_pre_bonus_marker_tl { \space(+ }
+\tl_new:N \l__exsheets_points_post_bonus_marker_tl
+\tl_set:Nn \l__exsheets_points_post_bonus_marker_tl { ) }
+\tl_new:N \l__exsheets_points_format_tl
+\tl_set:Nn \l__exsheets_points_format_tl { \use:n }
\tl_new:N \l__exsheets_qu_counter_pattern_tl
\tl_set:Nn \l__exsheets_qu_counter_pattern_tl { qu. }
\tl_new:N \l__exsheets_qu_counter_interpretation_tl
\tl_new:N \l__exsheets_counter_patterns_tl
-\tl_new:N \l__exsheets_current_pattern_interpretation_tl
-\tl_new:N \l__exsheets_current_pattern_tl
+\tl_new:N \l__exsheets_heading_instance_tl
+\tl_set:Nn \l__exsheets_heading_instance_tl {block}
+\tl_new:N \l__exsheets_question_heading_instance_tl
+\tl_new:N \l__exsheets_solution_heading_instance_tl
+\tl_new:N \l_exsheets_heading_title_user_format_tl
+\tl_set:Nn \l_exsheets_heading_title_user_format_tl { \normalsize\bfseries }
+\tl_new:N \l_exsheets_heading_subtitle_user_format_tl
+\tl_set:Nn \l_exsheets_heading_subtitle_user_format_tl { \normalsize\itshape }
+\tl_new:N \l__exsheets_questions_toclevel_tl
+\tl_set:Nn \l__exsheets_questions_toclevel_tl {subsection}
+\tl_new:N \l__exsheets_solutions_toclevel_tl
+\tl_set:Nn \l__exsheets_solutions_toclevel_tl {subsection}
+\tl_new:N \l__exsheets_new_chapter_hook_tl
+\tl_new:N \l__exsheets_new_section_hook_tl
+\tl_new:N \g__exsheets_use_current_question_tl
+\tl_new:N \l__exsheets_questions_name_tl
+\tl_set:Nn \l__exsheets_questions_name_tl {Question}
+\tl_new:N \l__exsheets_exercise_name_tl
+\tl_set:Nn \l__exsheets_exercise_name_tl {Exercise}
+\tl_new:N \l__exsheets_questions_pre_hook_tl
+\tl_new:N \l__exsheets_questions_post_hook_tl
+\tl_new:N \l__exsheets_questions_pre_body_hook_tl
+\tl_new:N \l__exsheets_questions_post_body_hook_tl
+\tl_new:N \l__exsheets_after_begin_question_tl
+\tl_new:N \CurrentQuestionID
+\tl_new:N \l__exsheets_questions_id_tl
+\tl_new:N \l__exsheets_questions_subtitle_tl
+\tl_new:N \g__exsheets_questions_current_id_tl
+\tl_new:N \l__exsheets_questions_title_tl
+\tl_new:N \l__exsheets_questions_label_tl
+\tl_new:N \l__exsheets_questions_points_tl
+\tl_new:N \l__exsheets_include_id_tl
+\tl_new:N \l__exsheets_solutions_name_tl
+\tl_set:Nn \l__exsheets_solutions_name_tl {Solution}
+\tl_new:N \l__exsheets_solutions_pre_body_hook_tl
+\tl_new:N \l__exsheets_solutions_post_body_hook_tl
+\tl_new:N \l__exsheets_solutions_pre_hook_tl
+\tl_new:N \l__exsheets_solutions_post_hook_tl
+\tl_new:N \l__exsheets_blank_linespread_tl
+\tl_set:Nn \l__exsheets_blank_linespread_tl { 1 }
+\tl_new:N \l__exsheets_blank_scale_tl
+\tl_set:Nn \l__exsheets_blank_scale_tl { 1 }
+\tl_new:N \l__exsheets_use_solution_tl
+\tl_new:N \l_exsheets_solutions_name_style_tl
+\tl_set:Nn \l_exsheets_solutions_name_style_tl { \normalsize \bfseries }
-\RequirePackage { cntformats }
+\int_zero_new:N \l__exsheets_variations_int
+\int_new:N \g__exsheets_questions_id_int
+\int_gzero:N \g__exsheets_questions_id_int
+\int_new:N \g__exsheets_questions_used_int
+\int_zero_new:N \l__exsheets_include_random_int
+\int_new:N \l__exsheets_questions_set_int
+\int_new:N \g__exsheets_select_random_int
+\int_new:N \g__exsheets_selection_number_int
+\int_new:N \l__exsheets_counter_ch_int
+\int_new:N \l__exsheets_current_ch_int
+\int_new:N \l__exsheets_counter_sec_int
+\int_new:N \l__exsheets_current_sec_int
+\int_new:N \l_exsheets_counter_qu_int
+\fp_new:N \g__exsheets_points_sum_fp
+\fp_new:N \l__exsheets_points_default_fp
+\fp_set:Nn \l__exsheets_points_default_fp {1}
+\fp_new:N \l__exsheets_question_points_fp
+\fp_new:N \g_exsheets_total_points_fp
+\fp_new:N \g__exsheets_bonus_sum_fp
+\fp_new:N \l__exsheets_question_bonus_fp
+\fp_new:N \g_exsheets_total_bonus_fp
+\fp_new:N \l__exsheets_grade_round_fp
+\fp_zero:N \l__exsheets_grade_round_fp
+\fp_new:N \g__exsheets_this_question_points_fp
+\fp_new:N \g__exsheets_this_question_bonus_fp
+
+\dim_new:N \l__exsheets_questions_skip_below_dim
+\dim_set:Nn \l__exsheets_questions_skip_below_dim { .5\baselineskip }
+\dim_new:N \l__exsheets_solutions_skip_below_dim
+\dim_set:Nn \l__exsheets_solutions_skip_below_dim { .5\baselineskip }
+\dim_new:N \l__exsheets_blank_dim
+
+\seq_new:N \l__exsheets_use_tags_seq
+\seq_new:N \g_exsheets_included_questions_seq
+
+\prop_new:N \l__exsheets_relgrades_prop
+\prop_new:N \l__exsheets_class_prop
+\prop_new:N \g__exsheets_tags_prop
+\prop_new:N \g__exsheets_questions_id_prop
+\prop_new:N \g__exsheets_questions_subtitle_prop
+\prop_new:N \g__exsheets_questions_used_prop
+\prop_new:N \g_exsheets_question_identification_prop
+\prop_new:N \g__exsheets_included_questions_prop
+\prop_new:N \g__exsheets_solutions_content_prop
+\prop_new:N \g__exsheets_solutions_questions_id_prop
+\prop_new:N \g__exsheets_solutions_names_prop
+\prop_new:N \g__exsheets_solutions_counter_prop
+
+\clist_new:N \l__exsheets_include_id_clist
+\clist_new:N \l__exsheets_exclude_id_clist
+\clist_new:N \questionsincludedlast
+
+\box_new:N \l__exsheets_blank_box
+
+% ----------------------------------------------------------------------------
+% how are questions/solutions/... counted?
+\RequirePackage {cntformats}
+
\cs_if_exist:NT \thechapter
{
- \AddCounterPattern* [ exsheets ] { chapter } { ch }
- \ReadCounterFrom [ exsheets ] { chapter } \l__exsheets_counter_ch_int
+ \AddCounterPattern* [exsheets] {chapter} {ch}
+ \ReadCounterFrom [exsheets] {chapter} \l__exsheets_counter_ch_int
}
-\AddCounterPattern* [ exsheets ] { section } { se }
-\ReadCounterFrom [ exsheets ] { section } \l__exsheets_counter_sec_int
+\AddCounterPattern* [exsheets] {section} {se}
+\ReadCounterFrom [exsheets] {section} \l__exsheets_counter_sec_int
-\NewCounterPattern* [ exsheets ] { question } { qu }
-\ReadCounterFrom [ exsheets ] { question } \l_exsheets_counter_qu_int
+\NewCounterPattern* [exsheets] {question} {qu}
+\ReadCounterFrom [exsheets] {question} \l_exsheets_counter_qu_int
% ----------------------------------------------------------------------------
% (also) package options:
-\bool_new:N \l__exsheets_solutions_by_ref_bool
-\bool_new:N \l__exsheets_questions_totoc_bool
-\bool_new:N \l__exsheets_solutions_totoc_bool
-\bool_new:N \l__exsheets_auto_label_bool
-\bool_new:N \l__exsheets_no_skip_after_bool
-\bool_new:N \l__exsheets_use_saved_pattern_bool
-\bool_set_true:N \l__exsheets_use_saved_pattern_bool
-
-\tl_new:N \l__exsheets_heading_instance_tl
-\tl_set:Nn \l__exsheets_heading_instance_tl {block}
-\tl_new:N \l__exsheets_question_heading_instance_tl
-\tl_new:N \l__exsheets_solution_heading_instance_tl
-\tl_new:N \l_exsheets_heading_title_user_format_tl
-\tl_set:Nn \l_exsheets_heading_title_user_format_tl { \normalsize\bfseries }
-\tl_new:N \l_exsheets_heading_subtitle_user_format_tl
-\tl_set:Nn \l_exsheets_heading_subtitle_user_format_tl { \normalsize\itshape }
-\tl_new:N \l__exsheets_questions_toclevel_tl
-\tl_set:Nn \l__exsheets_questions_toclevel_tl {subsection}
-\tl_new:N \l__exsheets_solutions_toclevel_tl
-\tl_set:Nn \l__exsheets_solutions_toclevel_tl {subsection}
-\tl_new:N \l__exsheets_new_chapter_hook_tl
-\tl_new:N \l__exsheets_new_section_hook_tl
-
-\dim_new:N \l__exsheets_questions_skip_below_dim
-\dim_set:Nn \l__exsheets_questions_skip_below_dim { .5\baselineskip }
-\dim_new:N \l__exsheets_solutions_skip_below_dim
-\dim_set:Nn \l__exsheets_solutions_skip_below_dim { .5\baselineskip }
-
\keys_define:nn {exsheets}
{
- color .code:n =
- \exsheets_option_dropped:n {color} ,
counter-format .code:n =
- \SaveCounterPattern [ exsheets ]
+ \SaveCounterPattern [exsheets]
\l__exsheets_qu_counter_pattern_tl
\l__exsheets_qu_counter_interpretation_tl
{#1} ,
- counter-within .code:n = \@addtoreset{question}{#1} ,
+ counter-format .initial:n = qu. ,
+ counter-within .code:n = \@addtoreset {question} {#1} ,
headings .tl_set:N = \l__exsheets_heading_instance_tl ,
load-headings .code:n =
\exsheets_option_dropped:n {load-headings} ,
@@ -303,52 +439,16 @@
\cs_set:Npn \__exsheets_pageref:n {#1}
\exsheets_update_referencing_commands: ,
chapter-hook .tl_set:N = \l__exsheets_new_chapter_hook_tl ,
- section-hook .tl_set:N = \l__exsheets_new_section_hook_tl ,
- use-saved-counter-format .bool_set:N = \l__exsheets_use_saved_pattern_bool
+ section-hook .tl_set:N = \l__exsheets_new_section_hook_tl %,
+% use-saved-counter-format .bool_set:N = \l__exsheets_use_saved_pattern_bool
}
-\keys_set:nn {exsheets} { counter-format = qu. }
+% TODO: remove this in a v1.0:
% process package options:
\ProcessKeysOptions {exsheets}
% ----------------------------------------------------------------------------
% points for exercises
-\bool_new:N \l__exsheets_points_questions_default_bool
-\bool_set_false:N \l__exsheets_points_questions_default_bool
-\bool_new:N \l__exsheets_parse_points_bool
-\bool_set_true:N \l__exsheets_parse_points_bool
-\bool_new:N \l__exsheets_points_name_bool
-\bool_set_true:N \l__exsheets_points_name_bool
-\bool_new:N \l__exsheets_points_separate_bonus_bool
-
-\fp_new:N \g__exsheets_points_sum_fp
-\fp_new:N \l__exsheets_points_default_fp
-\fp_set:Nn \l__exsheets_points_default_fp { 1 }
-\fp_new:N \l__exsheets_question_points_fp
-% this one should be public:
-\fp_new:N \g_exsheets_total_points_fp
-\fp_new:N \g__exsheets_bonus_sum_fp
-\fp_new:N \l__exsheets_question_bonus_fp
-% this one should be public
-\fp_new:N \g_exsheets_total_bonus_fp
-
-\tl_new:N \l__exsheets_points_name_tl
-\tl_set:Nn \l__exsheets_points_name_tl {P.}
-\tl_new:N \l__exsheets_points_name_plural_tl
-\tl_set:Nn \l__exsheets_points_name_plural_tl {P.}
-\tl_new:N \l__exsheets_bonus_name_tl
-\tl_set:Nn \l__exsheets_bonus_name_tl {P.}
-\tl_new:N \l__exsheets_bonus_name_plural_tl
-\tl_set:Nn \l__exsheets_bonus_name_plural_tl {P.}
-\tl_new:N \l__exsheets_points_number_format_tl
-\tl_new:N \l__exsheets_bonus_number_format_tl
-\tl_new:N \l__exsheets_points_pre_bonus_marker_tl
-\tl_set:Nn \l__exsheets_points_pre_bonus_marker_tl { \space(+ }
-\tl_new:N \l__exsheets_points_post_bonus_marker_tl
-\tl_set:Nn \l__exsheets_points_post_bonus_marker_tl { ) }
-\tl_new:N \l__exsheets_points_format_tl
-\tl_set:Nn \l__exsheets_points_format_tl { \use:n }
-
\cs_new_protected:Npn \__exsheets_set_points_name:nNN #1#2#3
{
\tl_if_in:nnTF {#1} { / }
@@ -403,7 +503,7 @@
\tl_use:N #2
{
\bool_if:NTF \l__exsheets_parse_points_bool
- { \exsheets_num:n { \fp_to_decimal:n {#1} } }
+ { \exsheets_num:n {#1} }
{ \use:n {#1} }
}
\group_end:
@@ -646,8 +746,6 @@
% ----------------------------------------------------------------------------
% variations of an exam, see http://tex.stackexchange.com/q/57012/5049 for
% inspiration of the following features
-\int_zero_new:N \l__exsheets_variations_int
-
\cs_new_protected:Npn \exsheets_set_variations:n #1
{
\int_compare:nNnTF {#1} < { 2 }
@@ -736,11 +834,6 @@
% ----------------------------------------------------------------------------
% grades distribution
-\prop_new:N \l__exsheets_relgrades_prop
-\fp_new:N \l__exsheets_grade_round_fp
-\fp_zero:N \l__exsheets_grade_round_fp
-\bool_new:N \l__exsheets_grades_half_bool
-
\cs_new:Npn \__exsheets_fp_round_to_half:n #1
{ round( 2*(#1),0)/2 }
@@ -818,25 +911,10 @@
% ----------------------------------------------------------------------------
% Aufgaben und Lösungen
-\bool_new:N \g__exsheets_questions_use_bool
-\bool_gset_true:N \g__exsheets_questions_use_bool
-\bool_new:N \l__exsheets_questions_use_bool
-\bool_set_true:N \l__exsheets_questions_use_bool
-\bool_new:N \l__exsheets_questions_deactivate_bool
-\bool_new:N \l__exsheets_save_question_body_to_aux_bool
-\bool_set_false:N \l__exsheets_save_question_body_to_aux_bool
-
-\bool_new:N \l__exsheets_solutions_use_bool
-\bool_set_true:N \l__exsheets_solutions_use_bool
-
\cs_new:Npn \exsheets_glue:N #1
{ \cleaders \vbox:n {} \skip_vertical:N #1 }
% classes, topics and other group concepts:
-\prop_new:N \l__exsheets_class_prop
-\tl_new:N \g__exsheets_use_current_question_tl
-\bool_new:N \l__exsheets_use_this_question_bool
-
\cs_new_protected:Npn \exsheets_new_question_class:nn #1#2
{
\prop_put:Nnn \l__exsheets_class_prop {#2} {#1}
@@ -874,16 +952,16 @@
\bool_if:cT { l__exsheets_questions_#1_bool }
{
% add #1 to questions property
- \prop_gput:cff { g__exsheets_questions_#1_prop }
+ \prop_gput:cxx { g__exsheets_questions_#1_prop }
{ \int_to_arabic:n { \g__exsheets_questions_id_int } }
- { \tl_use:c { l__exsheets_questions_#1_tl } }
+ { \exp_not:v { l__exsheets_questions_#1_tl } }
% add to #2 list, if it's a new one
- \prop_get:cfNF { g__exsheets_#2_prop }
- { \tl_use:c { l__exsheets_questions_#1_tl } }
+ \prop_get:cxNF { g__exsheets_#2_prop }
+ { \exp_not:v { l__exsheets_questions_#1_tl } }
\l__exsheets_tmpa_tl
{
- \prop_gput:cfn { g__exsheets_#2_prop }
- { \tl_use:c { l__exsheets_questions_#1_tl } }
+ \prop_gput:cxn { g__exsheets_#2_prop }
+ { \exp_not:v { l__exsheets_questions_#1_tl } }
{ \__exsheets_dummy: }
}
}
@@ -891,8 +969,8 @@
\bool_if:cT { g__exsheets_use_#2_bool }
{
% is this question an active one?
- \prop_get:cfNTF { g__exsheets_#2_active_prop }
- { \tl_use:c { l__exsheets_questions_#1_tl } }
+ \prop_get:cxNTF { g__exsheets_#2_active_prop }
+ { \exp_not:v { l__exsheets_questions_#1_tl } }
\l__exsheets_tmpa_tl
{
\bool_set_true:c { l__exsheets_#1_active_bool }
@@ -923,6 +1001,7 @@
\l__exsheets_tmpb_tl
\l__exsheets_tmpc_tl
{ \bool_set_false:N \l__exsheets_solutions_use_bool }
+ % \bool_show:N \l__exsheets_solutions_use_bool
}
}
}
@@ -979,9 +1058,6 @@
% ----------------------------------------------------------------------------
% question tags:
-\prop_new:N \g__exsheets_tags_prop
-\seq_new:N \l__exsheets_use_tags_seq
-
% #1: ID
% #2: tags
\cs_new_protected:Npn \exsheets_set_question_tags:nn #1#2
@@ -1023,26 +1099,6 @@
% ----------------------------------------------------------------------------
% die 'question' Umgebung
-\tl_new:N \l__exsheets_questions_name_tl
-\tl_set:Nn \l__exsheets_questions_name_tl {Question}
-\tl_new:N \l__exsheets_exercise_name_tl
-\tl_set:Nn \l__exsheets_exercise_name_tl {Exercise}
-
-\tl_new:N \l__exsheets_questions_pre_hook_tl
-\tl_new:N \l__exsheets_questions_post_hook_tl
-\tl_new:N \l__exsheets_questions_pre_body_hook_tl
-\tl_new:N \l__exsheets_questions_post_body_hook_tl
-\tl_new:N \l__exsheets_after_begin_question_tl
-
-\tl_new:N \CurrentQuestionID
-
-\bool_new:N \l__exsheets_questions_print_bool
-\bool_set_true:N \l__exsheets_questions_print_bool
-\bool_new:N \l__exsheets_inside_question_bool
-
-\int_new:N \g__exsheets_questions_id_int
-\int_gzero:N \g__exsheets_questions_id_int
-
\cs_new:Npn \IfInsideQuestionTF
{ \bool_if:NTF \l__exsheets_inside_question_bool }
\cs_new:Npn \IfInsideQuestionT
@@ -1131,26 +1187,12 @@
\group_end:
\bool_if:NT \l__exsheets_questions_print_bool
{
- #2
- { #1 }
- #3
+ #2 { #1 } #3
\exsheets_add_space:N \l__exsheets_questions_skip_below_dim
}
}
\cs_generate_variant:Nn \__exsheets_save_and_print_question_body:nnn { VVV }
-\prop_new:N \g__exsheets_questions_id_prop
-\prop_new:N \g__exsheets_questions_subtitle_prop
-\prop_new:N \g__exsheets_questions_used_prop
-\int_new:N \g__exsheets_questions_used_int
-
-\tl_new:N \l__exsheets_questions_id_tl
-\tl_new:N \l__exsheets_questions_subtitle_tl
-\tl_new:N \g__exsheets_questions_current_id_tl
-\tl_new:N \l__exsheets_questions_title_tl
-\tl_new:N \l__exsheets_questions_label_tl
-\tl_new:N \l__exsheets_questions_points_tl
-
\prg_new_conditional:Npnn \exsheets_if_question_subtitle: { p,T,F,TF }
{
\tl_if_blank:VTF \l__exsheets_questions_subtitle_tl
@@ -1162,11 +1204,6 @@
\cs_new:Npn \IfQuestionSubtitleT { \exsheets_if_question_subtitle:T }
\cs_new:Npn \IfQuestionSubtitleF { \exsheets_if_question_subtitle:F }
-\bool_new:N \l__exsheets_only_print_points_bool
-
-\fp_new:N \g__exsheets_this_question_points_fp
-\fp_new:N \g__exsheets_this_question_bonus_fp
-
\cs_new_protected:Npn \__exsheets_read_points:w #1 ! #2 ! #3 \q_stop
{
\tl_if_blank:nTF {#1}
@@ -1370,7 +1407,7 @@
{
\__exsheets_determine_question_usage:
\exsheets_if_current_question_is_used:T
- { \refstepcounter{question} }
+ { \refstepcounter {question} }
\__exsheets_get_sectioning_numbers:
\bool_if:nT
{
@@ -1434,8 +1471,8 @@
\l__exsheets_question_heading_instance_tl
\l__exsheets_questions_title_tl
\l__exsheets_qu_counter_interpretation_tl
- { 0 }
- { 0 }
+ {0}
+ {0}
\l__exsheets_tmpa_tl
}
{
@@ -1445,7 +1482,7 @@
\l__exsheets_questions_title_tl
\l__exsheets_qu_counter_interpretation_tl
\l__exsheets_questions_points_tl
- { 0 }
+ {0}
\l__exsheets_tmpa_tl
}
}
@@ -1467,8 +1504,6 @@
}
% current question number:
-\prop_new:N \g_exsheets_question_identification_prop
-
\cs_new_protected:Npn \exsheets at save@number #1#2
{ \expandafter\global\expandafter\edef\csname exsheets at question@#1\endcsname{#2} }
@@ -1509,6 +1544,9 @@
}
}
+% #1: prop
+% #2: id
+% #3: code
\cs_new_protected:Npn \__exsheets_restore_number_from_and_do:Nnn #1#2#3
{
\prop_get:NnNT #1 {#2} \l__exsheets_tmpc_tl
@@ -1522,7 +1560,7 @@
}
\cs_generate_variant:Nn \__exsheets_restore_number_from_and_do:Nnn { NV }
-\NewDocumentCommand \QuestionNumber { m }
+\NewDocumentCommand \QuestionNumber {m}
{ \exsheets_question_number:n {#1} }
\cs_new_protected:Npn \exsheets_question_number:n #1
@@ -1529,7 +1567,7 @@
{
\prop_get:NnNTF \g__exsheets_questions_id_prop {#1} \l__exsheets_tmpa_tl
{ \__exsheets_question_number:c { exsheets at question@\l__exsheets_tmpa_tl } }
- { \textbf{??} }
+ { \textbf {??} }
}
\cs_new_protected:Npn \__exsheets_question_number:N #1
@@ -1537,9 +1575,9 @@
\cs_if_exist:NTF #1
{
\exp_after:wN \__exsheets_get_question_number:w #1 \q_stop
- \ReadCounterPatternFrom [ exsheets ] \l__exsheets_qu_counter_pattern_tl
+ \ReadCounterPatternFrom [exsheets] \l__exsheets_qu_counter_pattern_tl
}
- { \textbf{??} }
+ { \textbf {??} }
}
\cs_generate_variant:Nn \__exsheets_question_number:N { c }
@@ -1591,11 +1629,6 @@
\NewDocumentCommand \ExSheetsHeading { mmmmmm }
{ \exsheets_use_heading:nnnnnn {#1} {#2} {#3} {#4} {#5} {#6} }
-\bool_new:N \l__exsheets_exam_bool
-\bool_set_false:N \l__exsheets_exam_bool
-\bool_new:N \l__exsheets_questions_runin_bool
-\bool_set_false:N \l__exsheets_questions_runin_bool
-
% options for the questions:
\keys_define:nn { exsheets / question }
{
@@ -1705,15 +1738,8 @@
{ \prop_item:cn { g__exsheets_question_property_#1_prop } {#2} }
{ ?? }
}
-\cs_generate_variant:Nn \exsheets_get_question_property:nn { no }
+\cs_generate_variant:Nn \exsheets_get_question_property:nn { no , nV }
-\int_new:N \g__exsheets_tmpa_int
-% \cs_new_protected:Npn \ForEachQuestion #1
-% {
-% \int_gzero:N \g__exsheets_tmpa_int
-% \int_step_inline:nnnn {1} {1} {\numberofquestions}
-% { \int_gincr:N \g__exsheets_tmpa_int #1 }
-% }
\cs_new_protected:Npn \ForEachQuestion #1
{
\int_gzero:N \g__exsheets_tmpa_int
@@ -1735,11 +1761,9 @@
% ----------------------------------------------------------------------------
% debug-Info:
-\bool_new:N \l__exsheets_questions_debug_bool
-\bool_set_false:N \l__exsheets_questions_debug_bool
+\RequirePackage {xcolor}
+\colorlet {exsheetsdebugcolor} {yellow}
-\colorlet { exsheetsdebugcolor } { yellow }
-
\keys_define:nn {exsheets}
{
debug .bool_set:N = \l__exsheets_questions_debug_bool
@@ -1751,7 +1775,7 @@
\noindent
\group_begin:
\normalfont\normalsize\normalcolor
- \colorbox { exsheetsdebugcolor }
+ \colorbox {exsheetsdebugcolor}
{ \parbox { \dim_eval:n { #1 - 2 \fboxsep } } {#2} }
\group_end:
\par
@@ -1797,22 +1821,6 @@
% ----------------------------------------------------------------------------
% include random/selected questions from a file:
-\bool_new:N \l__exsheets_select_questions_bool
-\bool_new:N \l__exsheets_include_all_bool
-\bool_new:N \l__exsheets_include_random_bool
-\bool_new:N \l__exsheets_include_by_id_bool
-\bool_set_true:N \l__exsheets_include_all_bool
-
-\prop_new:N \g__exsheets_included_questions_prop
-\clist_new:N \l__exsheets_include_id_clist
-\clist_new:N \l__exsheets_exclude_id_clist
-\clist_new:N \questionsincludedlast
-
-\seq_new:N \g_exsheets_included_questions_seq
-
-\int_new:N \l__exsheets_include_random_int
-\int_zero:N \l__exsheets_include_random_int
-
\cs_new_protected:Npn \exsheets_file_input_if_exist:n #1
{ \file_if_exist:nT {#1} { \file_input:n {#1} } }
\cs_new_protected:Npn \exsheets_file_input_if_exist:nF #1#2
@@ -1840,9 +1848,6 @@
\group_end:
}
-\int_new:N \l__exsheets_questions_set_int
-\int_new:N \g__exsheets_select_random_int
-
\cs_new_protected:Npn \exsheets_include_questions:n #1
{
\bool_set_true:N \l__exsheets_select_questions_bool
@@ -1915,8 +1920,6 @@
\int_set:Nn \l__exsheets_include_random_int {#1}
}
-\int_new:N \g__exsheets_selection_number_int
-
\cs_new_protected:Npn \__exsheets_select_question:n #1
{
\bool_if:NT \l__exsheets_select_questions_bool
@@ -2016,8 +2019,6 @@
}
\cs_generate_variant:Nn \__exsheets_select_question_by_id:n { V }
-\tl_new:N \l__exsheets_include_id_tl
-\bool_new:N \l__exsheets_use_selection_bool
% TODO: poor efficiency -- there should be no need to map through
% \l__exsheets_class_prop *two* times
\cs_new_protected:Npn \__exsheets_select_question_random:n #1
@@ -2144,26 +2145,6 @@
% ----------------------------------------------------------------------------
% die 'solution' Umgebung:
-\bool_new:N \l__exsheets_solutions_print_bool
-\bool_set_false:N \l__exsheets_solutions_print_bool
-\bool_new:N \l__exsheets_solutions_print_here_bool
-\bool_set_false:N \l__exsheets_solutions_print_here_bool
-\bool_new:N \l__exsheets_solutions_print_section_bool
-\bool_set_false:N \l__exsheets_solutions_print_section_bool
-\bool_new:N \l__exsheets_solutions_print_chapter_bool
-\bool_set_false:N \l__exsheets_solutions_print_chapter_bool
-\bool_new:N \l__exsheets_solutions_print_all_bool
-\bool_set_false:N \l__exsheets_solutions_print_all_bool
-
-% \prop_new:N \g_exsheets_question_identification_prop
-\prop_new:N \g__exsheets_solutions_content_prop
-\prop_new:N \g__exsheets_solutions_questions_id_prop
-\prop_new:N \g__exsheets_solutions_names_prop
-\prop_new:N \g__exsheets_solutions_counter_prop
-
-\tl_new:N \l__exsheets_solutions_name_tl
-\tl_set:Nn \l__exsheets_solutions_name_tl { Solution }
-
\cs_new_protected:Npn \__exsheets_save_solution:n #1
{
% save for later use
@@ -2187,12 +2168,11 @@
{
\bool_if:NT \l__exsheets_solutions_print_here_bool
{
- \int_set:Nn \l_exsheets_counter_qu_int { \arabic{question} }
+ \int_set:Nn \l_exsheets_counter_qu_int { \arabic {question} }
\__exsheets_get_sectioning_numbers:
- \__exsheets_print_solution:VVVn
- \l__exsheets_qu_counter_interpretation_tl
+ \__exsheets_print_solution:VVn
+ \g__exsheets_questions_current_id_tl
\l__exsheets_solutions_name_tl
- \g__exsheets_questions_current_id_tl
{#1}
}
}
@@ -2206,32 +2186,28 @@
{ \__exsheets_save_solution:V \BODY }
}
-\bool_new:N \l__exsheets_inside_solution_bool
-\bool_set_false:N \l__exsheets_inside_solution_bool
-
-\tl_new:N \l__exsheets_use_solution_tl
-
-\newenvironment { __exsheets_solution: } [1]
+\newenvironment {__exsheets_solution:} [1]
{
\tl_clear:N \l__exsheets_use_solution_tl
+ % \prop_show:N \l__exsheets_class_prop
\prop_map_inline:Nn \l__exsheets_class_prop
{
- \use:c { __exsheets_solutions_use_##1: }
+ \use:c {__exsheets_solutions_use_##1:}
\bool_if:nTF
{
+ \l__exsheets_solutions_use_bool
+ &&
(
- \l__exsheets_solutions_use_bool
- &&
- \bool_if_p:c { l__exsheets_##2_active_bool }
+ !\bool_if_p:c {g__exsheets_use_##1_bool}
+ ||
+ \bool_if_p:c {l__exsheets_##2_active_bool}
)
- ||
- ! \bool_if_p:c { g__exsheets_use_##1_bool }
}
- { \tl_put_right:Nn \l__exsheets_use_solution_tl { y } }
- { \tl_put_right:Nn \l__exsheets_use_solution_tl { n } }
+ { \tl_put_right:Nn \l__exsheets_use_solution_tl {y} }
+ { \tl_put_right:Nn \l__exsheets_use_solution_tl {n} }
}
% verwende, wenn ein Ja dabei war:
- \tl_if_in:NnT \l__exsheets_use_solution_tl { y }
+ \tl_if_in:NnT \l__exsheets_use_solution_tl {y}
{ \bool_set_true:N \l__exsheets_solutions_use_bool }
\bool_if:NT \l__exsheets_questions_deactivate_bool
{ \bool_set_false:N \l__exsheets_solutions_use_bool }
@@ -2238,7 +2214,7 @@
\bool_if:NT \l__exsheets_solutions_use_bool
{
\bool_set_true:N \l__exsheets_inside_solution_bool
- \IfNoValueF {#1} { \keys_set:nn { exsheets / solution } {#1} }
+ \IfNoValueF {#1} { \keys_set:nn {exsheets/solution} {#1} }
}
\tl_if_blank:VT \l__exsheets_solution_heading_instance_tl
{
@@ -2250,9 +2226,6 @@
}
{ \end__exsheets_solution_internal: }
-\bool_new:N \l__exsheets_solutions_runin_bool
-\bool_set_false:N \l__exsheets_solutions_runin_bool
-
\cs_new_protected:Npn \__exsheets_solutions_name:nnn #1#2#3
{
\tl_if_blank:VT \l__exsheets_solution_heading_instance_tl
@@ -2267,9 +2240,6 @@
}
\cs_generate_variant:Nn \__exsheets_solutions_name:nnn { VV , VVV }
-\tl_new:N \l_exsheets_solutions_name_style_tl
-\tl_set:Nn \l_exsheets_solutions_name_style_tl { \normalsize \bfseries }
-
\cs_new:Npn \exsheets_solutions_name_style:n #1
{ \l_exsheets_solutions_name_style_tl #1 }
@@ -2282,7 +2252,7 @@
\exsheets_write_to_aux_x:n
{
\token_to_str:N \newlabel { exse:#1 }
- { { \arabic { section } } { \thepage } }
+ { { \arabic {section} } { \thepage } }
}
\cs_if_exist:NT \thechapter
{
@@ -2289,7 +2259,7 @@
\exsheets_write_to_aux_x:n
{
\token_to_str:N \newlabel { exch:#1 }
- { { \arabic { chapter } } { \thepage } }
+ { { \arabic {chapter} } { \thepage } }
}
}
\@esphack
@@ -2339,12 +2309,6 @@
\group_end:
}
-\int_new:N \l__exsheets_counter_ch_int
-\int_new:N \l__exsheets_current_ch_int
-\int_new:N \l__exsheets_counter_sec_int
-\int_new:N \l__exsheets_current_sec_int
-\int_new:N \l_exsheets_counter_qu_int
-
\keys_define:nn {exsheets}
{
exsheets_print_solutions .choice: ,
@@ -2361,9 +2325,9 @@
\cs_new_protected:Npn \__exsheets_get_sectioning_numbers:
{
\cs_if_exist:NT \chapter
- { \int_set:Nn \l__exsheets_counter_ch_int { \arabic{chapter} } }
- \int_set:Nn \l__exsheets_counter_sec_int { \arabic{section} }
- \int_set:Nn \l_exsheets_counter_qu_int { \arabic{question} }
+ { \int_set:Nn \l__exsheets_counter_ch_int { \arabic {chapter} } }
+ \int_set:Nn \l__exsheets_counter_sec_int { \arabic {section} }
+ \int_set:Nn \l_exsheets_counter_qu_int { \arabic {question} }
}
% #1: numeric ID
@@ -2388,23 +2352,9 @@
\__exsheets_sectioning_hook:nV {sec}
\l__exsheets_new_section_hook_tl
\group_end:
- \bool_if:NTF \l__exsheets_use_saved_pattern_bool
- {
- \eSaveCounterPatternFrom [ exsheets ]
- \l__exsheets_current_pattern_interpretation_tl
- \l__exsheets_current_pattern_tl
- \l__exsheets_tmpd_tl
- }
- {
- \eSaveCounterPatternFrom [ exsheets ]
- \l__exsheets_current_pattern_interpretation_tl
- \l__exsheets_current_pattern_tl
- \l__exsheets_qu_counter_pattern_tl
- }
- \__exsheets_print_solution:VVVV
- \l__exsheets_current_pattern_tl
+ \__exsheets_print_solution:VVV
+ \l__exsheets_tmpc_tl
\l__exsheets_tmpa_tl
- \l__exsheets_tmpc_tl
\l__exsheets_tmpb_tl
}
}
@@ -2558,6 +2508,7 @@
\__exsheets_print_solution_if:nn {#2} {#1}
}
}
+\cs_generate_variant:Nn \exsheets_print_solutions_if:nnn {nnV}
% print by ID:
\seq_new:N \l__exsheets_solutions_byID_seq
@@ -2582,44 +2533,14 @@
}
\seq_map_inline:Nn \l__exsheets_tmpa_seq
{
- \group_begin:
- \tl_if_eq:nnF {##1} { \q_no_value }
- {
- \prop_get:NnNT \g__exsheets_solutions_names_prop
- {##1} \l__exsheets_tmpa_tl
- {
- \prop_get:NnN \g__exsheets_solutions_content_prop
- {##1} \l__exsheets_tmpb_tl
- \prop_get:NnN \g__exsheets_solutions_questions_id_prop
- {##1} \l__exsheets_tmpc_tl
- \prop_get:NnN \g__exsheets_solutions_counter_prop
- {##1} \l__exsheets_tmpd_tl
- \__exsheets_restore_number_from_and_do:Nnn
- \g_exsheets_question_identification_prop
- {##1}
- {
- \bool_if:NTF \l__exsheets_use_saved_pattern_bool
- {
- \eSaveCounterPatternFrom [ exsheets ]
- \l__exsheets_current_pattern_interpretation_tl
- \l__exsheets_current_pattern_tl
- \l__exsheets_tmpd_tl
- }
- {
- \eSaveCounterPatternFrom [ exsheets ]
- \l__exsheets_current_pattern_interpretation_tl
- \l__exsheets_current_pattern_tl
- \l__exsheets_qu_counter_pattern_tl
- }
- \__exsheets_print_solution:VVVV
- \l__exsheets_current_pattern_tl
- \l__exsheets_tmpa_tl
- \l__exsheets_tmpc_tl
- \l__exsheets_tmpb_tl
- }
- }
- }
- \group_end:
+ \prop_get:NnNT \g_exsheets_question_identification_prop {##1}
+ \l__exsheets_tmpa_tl
+ {
+ \exsheets_print_solutions_if:nnV
+ { \c_true_bool }
+ {##1}
+ \l__exsheets_tmpa_tl
+ }
}
}
@@ -2643,10 +2564,10 @@
{ \char_set_catcode_letter:N \@ } {#1}
\tl_if_in:nnTF {#1} { @@@ }
{ \__exsheets_solutions_name:nnn { } {#2} {#3} }
- { \__exsheets_solutions_name:nnn {#1} { #2 } {#3} }
+ { \__exsheets_solutions_name:nnn {#1} {#2} {#3} }
\tex_penalty:D \c_ten_thousand
}
-\cs_generate_variant:Nn \exsheets_solutions_print_name:nnn { VVV }
+\cs_generate_variant:Nn \exsheets_solutions_print_name:nnn { V , VVV }
\cs_new:Npn \__exsheets_surround_with:nnn #1#2#3 { #2#1#3 }
\cs_generate_variant:Nn \__exsheets_surround_with:nnn { nVV }
@@ -2654,22 +2575,23 @@
% think about the interface with \exsheetsprintsolution a bit more, especially
% about the placement of the hooks!
-% #1: number
+% #1: ID
% #2: name
-% #3: ID
-% #4: body
-\cs_new_protected:Npn \__exsheets_print_solution:nnnn #1#2#3#4
+% #3: body
+\cs_new_protected:Npn \__exsheets_print_solution:nnn #1#2#3
{
\group_begin:
- \tl_set:Nn \CurrentQuestionID {#3}
+ \tl_set:Nn \CurrentQuestionID {#1}
+ \tl_set:Nx \l__exsheets_tmpa_tl
+ { \exsheets_get_question_property:nn {counter} {#1} }
\__exsheets_surround_with:nVV
{
\exp_args:Nnx
\exsheetsprintsolution
- { \exsheets_solutions_print_name:nnn {#1} {#2} {#3} }
+ { \exsheets_solutions_print_name:Vnn \l__exsheets_tmpa_tl {#2} {#1} }
{
\exp_not:V \l__exsheets_solutions_pre_body_hook_tl
- \exp_not:n {#4}
+ \exp_not:n {#3}
\exp_not:V \l__exsheets_solutions_post_body_hook_tl
}
}
@@ -2678,7 +2600,7 @@
\exsheets_add_space:N \l__exsheets_solutions_skip_below_dim
\group_end:
}
-\cs_generate_variant:Nn \__exsheets_print_solution:nnnn { VVV, VVVV }
+\cs_generate_variant:Nn \__exsheets_print_solution:nnn { VV , VVV }
% a user command to be redefined as needed; must have two mandatory arguments!
% #1: heading
@@ -2692,14 +2614,6 @@
\cs_new:Npn \PrintSolutionsF
{ \bool_if:NF \l__exsheets_solutions_print_bool }
-\bool_new:N \l__exsheets_print_byID_sorted_bool
-\bool_set_true:N \l__exsheets_print_byID_sorted_bool
-
-\tl_new:N \l__exsheets_solutions_pre_body_hook_tl
-\tl_new:N \l__exsheets_solutions_post_body_hook_tl
-\tl_new:N \l__exsheets_solutions_pre_hook_tl
-\tl_new:N \l__exsheets_solutions_post_hook_tl
-
\keys_define:nn { exsheets / solution }
{
headings .tl_set:N = \l__exsheets_solution_heading_instance_tl ,
@@ -2767,15 +2681,6 @@
% the \blank{<words>} command
\RequirePackage {ulem} \normalem
-\dim_new:N \l__exsheets_blank_dim
-\tl_new:N \l__exsheets_blank_linespread_tl
-\tl_set:Nn \l__exsheets_blank_linespread_tl { 1 }
-\tl_new:N \l__exsheets_blank_scale_tl
-\tl_set:Nn \l__exsheets_blank_scale_tl { 1 }
-\box_new:N \l__exsheets_blank_box
-\bool_new:N \l__exsheets_blank_width_bool
-\bool_new:N \l__exsheets_blank_linespread_bool
-
\cs_new:Npn \exsheets_write_blank:n #1 {#1}
\cs_set_eq:NN \exsheets_write_blank:n \uline
@@ -2936,83 +2841,83 @@
% ----------------------------------------------------------------------------
% default definitions:
% question / solution pair:
-\NewQuSolPair{question}{solution}
+\NewQuSolPair {question} {solution}
% properties:
% \DeclareQuestionProperty{number}
-\DeclareQuestionProperty{counter}
-\DeclareQuestionProperty{subtitle}
-\DeclareQuestionProperty{question-body}
-\DeclareQuestionProperty{points}
-\DeclareQuestionProperty{bonus-points}
+\DeclareQuestionProperty {counter}
+\DeclareQuestionProperty {subtitle}
+\DeclareQuestionProperty {question-body}
+\DeclareQuestionProperty {points}
+\DeclareQuestionProperty {bonus-points}
\bool_if:NT \l__exsheets_auto_label_bool
{
- \DeclareQuestionProperty{ref}
- \DeclareQuestionProperty{pageref}
+ \DeclareQuestionProperty {ref}
+ \DeclareQuestionProperty {pageref}
}
% classes:
-\DeclareQuestionClass{class}{classes}
-\DeclareQuestionClass{topic}{topics}
+\DeclareQuestionClass {class} {classes}
+\DeclareQuestionClass {topic} {topics}
% ----------------------------------------------------------------------------
% Sprachanpassungen
-\RequirePackage { translations }
+\RequirePackage {translations}
% translation for the exercises
-\DeclareTranslationFallback { exsheets-exercise-name } { Exercise }
-\DeclareTranslation { English } { exsheets-exercise-name } { Exercise }
-\DeclareTranslation { British } { exsheets-exercise-name } { Exercise }
-\DeclareTranslation { American } { exsheets-exercise-name } { Exercise }
-\DeclareTranslation { French } { exsheets-exercise-name } { Exercice }
-\DeclareTranslation { German } { exsheets-exercise-name } { \"Ubung }
-\DeclareTranslation { Italian } { exsheets-exercise-name } { Esercizio }
-\DeclareTranslation { Spanish } { exsheets-exercise-name } { Ejercicio }
-\DeclareTranslation { Catalan } { exsheets-exercise-name } { Exercici }
-\DeclareTranslation { Turkish } { exsheets-exercise-name } { Egzersiz }
-\DeclareTranslation { Croatian } { exsheets-exercise-name } { Primjer }
-\DeclareTranslation { Hungarian } { exsheets-exercise-name } { Gyakorol }
-\DeclareTranslation { Danish } { exsheets-exercise-name } { Opgave }
-\DeclareTranslation { Norsk } { exsheets-exercise-name } { Oppgave }
-\DeclareTranslation { Portuges } { exsheets-exercise-name } { Exerc\'\i cio }
+\DeclareTranslationFallback {exsheets-exercise-name} {Exercise}
+\DeclareTranslation {English} {exsheets-exercise-name} {Exercise}
+\DeclareTranslation {British} {exsheets-exercise-name} {Exercise}
+\DeclareTranslation {American} {exsheets-exercise-name} {Exercise}
+\DeclareTranslation {French} {exsheets-exercise-name} {Exercice}
+\DeclareTranslation {German} {exsheets-exercise-name} {\"Ubung}
+\DeclareTranslation {Italian} {exsheets-exercise-name} {Esercizio}
+\DeclareTranslation {Spanish} {exsheets-exercise-name} {Ejercicio}
+\DeclareTranslation {Catalan} {exsheets-exercise-name} {Exercici}
+\DeclareTranslation {Turkish} {exsheets-exercise-name} {Egzersiz}
+\DeclareTranslation {Croatian} {exsheets-exercise-name} {Primjer}
+\DeclareTranslation {Hungarian} {exsheets-exercise-name} {Gyakorol}
+\DeclareTranslation {Danish} {exsheets-exercise-name} {Opgave}
+\DeclareTranslation {Norsk} {exsheets-exercise-name} {Oppgave}
+\DeclareTranslation {Portuges} {exsheets-exercise-name} {Exerc\'\i cio}
% translation for the question
-\DeclareTranslationFallback { exsheets-question-name } { Question }
-\DeclareTranslation { English } { exsheets-question-name } { Question }
-\DeclareTranslation { British } { exsheets-question-name } { Question }
-\DeclareTranslation { American } { exsheets-question-name } { Question }
-\DeclareTranslation { French } { exsheets-question-name } { Question }
-\DeclareTranslation { German } { exsheets-question-name } { Aufgabe }
-\DeclareTranslation { Italian } { exsheets-question-name } { Questione }
-\DeclareTranslation { Spanish } { exsheets-question-name } { Pregunta }
-\DeclareTranslation { Catalan } { exsheets-question-name } { Q\"uesti\'o }
-\DeclareTranslation { Turkish } { exsheets-question-name } { Soru }
-\DeclareTranslation { Croatian } { exsheets-question-name } { Zadatak }
-\DeclareTranslation { Hungarian } { exsheets-question-name } { Feladat }
-\DeclareTranslation { Danish } { exsheets-question-name } { Opgave }
-\DeclareTranslation { Norsk } { exsheets-question-name } { Oppgave }
-\DeclareTranslation { Portuges } { exsheets-question-name } { Quest\~ao }
+\DeclareTranslationFallback {exsheets-question-name} {Question}
+\DeclareTranslation {English} {exsheets-question-name} {Question}
+\DeclareTranslation {British} {exsheets-question-name} {Question}
+\DeclareTranslation {American} {exsheets-question-name} {Question}
+\DeclareTranslation {French} {exsheets-question-name} {Question}
+\DeclareTranslation {German} {exsheets-question-name} {Aufgabe}
+\DeclareTranslation {Italian} {exsheets-question-name} {Questione}
+\DeclareTranslation {Spanish} {exsheets-question-name} {Pregunta}
+\DeclareTranslation {Catalan} {exsheets-question-name} {Q\"uesti\'o}
+\DeclareTranslation {Turkish} {exsheets-question-name} {Soru}
+\DeclareTranslation {Croatian} {exsheets-question-name} {Zadatak}
+\DeclareTranslation {Hungarian} {exsheets-question-name} {Feladat}
+\DeclareTranslation {Danish} {exsheets-question-name} {Opgave}
+\DeclareTranslation {Norsk} {exsheets-question-name} {Oppgave}
+\DeclareTranslation {Portuges} {exsheets-question-name} {Quest\~ao}
% translation for the solutions
-\DeclareTranslationFallback { exsheets-solution-name } { Solution }
-\DeclareTranslation { English } { exsheets-solution-name } { Solution }
-\DeclareTranslation { British } { exsheets-solution-name } { Solution }
-\DeclareTranslation { American } { exsheets-solution-name } { Solution }
-\DeclareTranslation { French } { exsheets-solution-name } { Solution }
-\DeclareTranslation { German } { exsheets-solution-name } { L\"osung }
-\DeclareTranslation { Italian } { exsheets-solution-name } { Soluzione }
-\DeclareTranslation { Spanish } { exsheets-solution-name } { Soluci\'on }
-\DeclareTranslation { Catalan } { exsheets-solution-name } { Soluci\'o }
-\DeclareTranslation { Turkish } { exsheets-solution-name } { \c C\"oz\"um }
-\DeclareTranslation { Croatian } { exsheets-solution-name } { Rje\v{s}enje }
-\DeclareTranslation { Hungarian } { exsheets-solution-name } { Megold\'{a}s }
-\DeclareTranslation { Danish } { exsheets-solution-name } { L\o sning }
-\DeclareTranslation { Norsk } { exsheets-solution-name } { L\o sning }
-\DeclareTranslation { Portuges } { exsheets-solution-name } { Solu\c c\~ao }
+\DeclareTranslationFallback {exsheets-solution-name} {Solution}
+\DeclareTranslation {English} {exsheets-solution-name} {Solution}
+\DeclareTranslation {British} {exsheets-solution-name} {Solution}
+\DeclareTranslation {American} {exsheets-solution-name} {Solution}
+\DeclareTranslation {French} {exsheets-solution-name} {Solution}
+\DeclareTranslation {German} {exsheets-solution-name} {L\"osung}
+\DeclareTranslation {Italian} {exsheets-solution-name} {Soluzione}
+\DeclareTranslation {Spanish} {exsheets-solution-name} {Soluci\'on}
+\DeclareTranslation {Catalan} {exsheets-solution-name} {Soluci\'o}
+\DeclareTranslation {Turkish} {exsheets-solution-name} {\c C\"oz\"um}
+\DeclareTranslation {Croatian} {exsheets-solution-name} {Rje\v{s}enje}
+\DeclareTranslation {Hungarian} {exsheets-solution-name} {Megold\'{a}s}
+\DeclareTranslation {Danish} {exsheets-solution-name} {L\o sning}
+\DeclareTranslation {Norsk} {exsheets-solution-name} {L\o sning}
+\DeclareTranslation {Portuges} {exsheets-solution-name} {Solu\c c\~ao}
% the actual translating
\tl_set:Nn \l__exsheets_exercise_name_tl
- { \GetTranslation { exsheets-exercise-name } }
+ { \GetTranslation {exsheets-exercise-name} }
\tl_set:Nn \l__exsheets_questions_name_tl
- { \GetTranslation { exsheets-question-name } }
+ { \GetTranslation {exsheets-question-name} }
\tl_set:Nn \l__exsheets_solutions_name_tl
- { \GetTranslation { exsheets-solution-name } }
+ { \GetTranslation {exsheets-solution-name} }
% ----------------------------------------------------------------------------
@@ -3285,9 +3190,20 @@
not printed
2016/01/26 v0.21a - remove deprecated \prop_get:Nn (=> \prop_item:Nn)
2016/02/01 v0.21b - fix annoying bug in \exsheets_print_solutions_if:nnn
+2016/03/21 v0.21c - use question property `counter' for retrieving the
+ counter patterns in solution's headings (this
+ resolves http://tex.stackexchange.com/q/299898)
+ - remove option `use-saved-counter-format': solutions
+ should always have the same number pattern as the
+ corresponding questions
+2016/08/14 v0.21d - fix issue #32
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% TODO:
+- solve the problem using verbatim material in questions and solutions
+ (difficult)
+- allow for different kinds of problems/solutions using an independant counter
+ (not trivial)
- points/decimal-marker, points/frac (?), points/format (?,im interface)
- points: swedish style
- \examspace inside {tasks} => possible? (\pagegoal-\pagetotal) gives wrong
Modified: trunk/Master/texmf-dist/tex/latex/exsheets/exsheets_headings.cfg
===================================================================
--- trunk/Master/texmf-dist/tex/latex/exsheets/exsheets_headings.cfg 2016-08-14 21:59:33 UTC (rev 41849)
+++ trunk/Master/texmf-dist/tex/latex/exsheets/exsheets_headings.cfg 2016-08-14 21:59:50 UTC (rev 41850)
@@ -326,8 +326,8 @@
vscale = 2 ,
pre-code = \rule{\linewidth}{1pt} ,
post-code = \rule{\linewidth}{1pt} ,
- title-format = \large\scshape\color{exsheetsred} ,
- number-format = \large\bfseries\color{exsheetsblue} ,
+ title-format = \large\scshape\color{rgb:red,0.65;green,0.04;blue,0.07} ,
+ number-format = \large\bfseries\color{rgb:red,0.02;green,0.04;blue,0.48} ,
points-format = \itshape ,
join = { number[r,B] title[l,B] (.333em,0pt) } ,
attach =
@@ -345,8 +345,8 @@
vscale = 2 ,
pre-code = \rule{\linewidth}{1pt} ,
post-code = \rule{\linewidth}{1pt} ,
- title-format = \large\scshape\color{exsheetsred} ,
- number-format = \large\bfseries\color{exsheetsblue} ,
+ title-format = \large\scshape\color{rgb:red,0.65;green,0.04;blue,0.07} ,
+ number-format = \large\bfseries\color{rgb:red,0.02;green,0.04;blue,0.48} ,
points-format = \itshape ,
points-pre-code = ( ,
points-post-code = ) ,
Modified: trunk/Master/texmf-dist/tex/latex/exsheets/exsheets_headings.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/exsheets/exsheets_headings.def 2016-08-14 21:59:33 UTC (rev 41849)
+++ trunk/Master/texmf-dist/tex/latex/exsheets/exsheets_headings.def 2016-08-14 21:59:50 UTC (rev 41850)
@@ -223,7 +223,7 @@
number-format = \l__exsheets_heading_number_format_tl ,
number-pre-code = \l__exsheets_heading_number_pre_code_tl ,
number-post-code = \l__exsheets_heading_number_post_code_tl ,
- subtitle-format = \l__exsheets_heading_title_format_tl ,
+ subtitle-format = \l__exsheets_heading_subtitle_format_tl ,
subtitle-pre-code = \l__exsheets_heading_subtitle_pre_code_tl ,
subtitle-post-code = \l__exsheets_heading_subtitle_post_code_tl ,
points-format = \l__exsheets_heading_points_format_tl ,
More information about the tex-live-commits
mailing list