diff options
-rw-r--r-- | Master/texmf-dist/doc/latex/exsheets/README | 2 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/exsheets/exsheets_en.pdf | bin | 649299 -> 651906 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/exsheets/exsheets_en.tex | 138 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/exsheets/grading-table.pdf | bin | 26403 -> 26406 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/exsheets/grading-table.tex | 1 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/exsheets/exsheets.sty | 169 |
6 files changed, 223 insertions, 87 deletions
diff --git a/Master/texmf-dist/doc/latex/exsheets/README b/Master/texmf-dist/doc/latex/exsheets/README index 71d92d02bb0..44746a43b46 100644 --- a/Master/texmf-dist/doc/latex/exsheets/README +++ b/Master/texmf-dist/doc/latex/exsheets/README @@ -1,5 +1,5 @@ -------------------------------------------------------------------------- -EXSHEETS v0.5a - 2012/12/06 +EXSHEETS v0.6 - 2012/12/18 bundled packages: the EXSHEETS package diff --git a/Master/texmf-dist/doc/latex/exsheets/exsheets_en.pdf b/Master/texmf-dist/doc/latex/exsheets/exsheets_en.pdf Binary files differindex b53965922c9..ce878434f15 100644 --- a/Master/texmf-dist/doc/latex/exsheets/exsheets_en.pdf +++ b/Master/texmf-dist/doc/latex/exsheets/exsheets_en.pdf diff --git a/Master/texmf-dist/doc/latex/exsheets/exsheets_en.tex b/Master/texmf-dist/doc/latex/exsheets/exsheets_en.tex index 9add39fd108..9e8d9faf667 100644 --- a/Master/texmf-dist/doc/latex/exsheets/exsheets_en.tex +++ b/Master/texmf-dist/doc/latex/exsheets/exsheets_en.tex @@ -85,17 +85,20 @@ % code examples % ExSheets: \addcmds{ - acs, addpoints, blank, bigstar, bottomrule, checkedchoicebox, choice, choicebox, - citetitle, cmd, color, correct, + acs, addpoints, + blank, bigstar, bottomrule, + checkedchoicebox, choice, choicebox, citetitle, cmd, color, correct, DeclareInstance, DeclareTemplateInterface, DeclareQuestionProperty, - DebugExSheets, endspacing, examspace, ForEachQuestion, GetQuestionProperty, + DebugExSheets, endspacing, examspace, ForEachQuestion, GetQuestionProperty, grade, includequestions, iflastquestion, midrule, NewQuSolPair, NewTasks, numberofquestions, points, PrintIfIncludeActiveF, PrintIfIncludeActiveT, PrintIfIncludeActiveTF, - printsolutions, PrintSolutionsF, PrintSolutionsTF, PrintSolutionsT, + printsolutions, PrintSolutionsF, PrintSolutionsTF, PrintSolutionsT, QuestionNumber, RenewQuSolPair, rightarrow, s, sample, setlength, - SetQuestionProperties, SetupExSheets, spacing, square, sumpoints, - tabcolsep, task, textcite, textcolor, toprule, totalpoints + SetQuestionProperties, SetupExSheets, SetVariations, spacing, square, + sumpoints, + tabcolsep, task, textcite, textcolor, toprule, totalpoints, + variant, vary } % translations: @@ -770,50 +773,6 @@ You have two possibilities to display and count them: \end{beispiel} \secidx*{Counting Points} -\subsection{A Grade Distribution}\secidx{Grade Distribution} -Probably this is a rather esoteric feature but it could proof useful in some cases. -Suppose you are a German math teacher and want to grade exactly corresponding to -the number of points relative to the sum of total points, regardless of how big -that might be. You could do something like this to present your grading decisions -for the exam: -\begin{beispiel} - % preamble: - % \DeclareRelGrades{ - % 1 = 1 , - % {1,5} = .9167 , - % 2 = .8333 , - % {2,5} = .75 , - % 3 = .6667 , - % {3,5} = .5833 , - % 4 = .5 - % } - \small\setlength\tabcolsep{2pt} - \begin{tabular}{r|*8c} - Punkte - & $\grade*{1}$ & $\le\grade*{1}$ & $\le\grade*{1,5}$ & $\le\grade*{2}$ - & $\le\grade*{2,5}$ & $\le\grade*{3}$ & $\le\grade*{3,5}$ & $<\grade*{4}$ \\ - Note - & 1 & 1--2 & 2 & 2--3 & 3 & 3--4 & 4 & 5 - \end{tabular} -\end{beispiel} - -These are the available commands and options: -\begin{beschreibung} - \Befehl{DeclareRelGrades}{<grade>=<num>,...}\newline - This command is used to define grades and assign the percentage of total - points to them. - \Befehl{grade}*{<grade>}\newline - Gives the number of points corresponding to a grade depending on the value - of \cmd{pointssum} with or without (starred version) ``unit''. - \Option[grades]{round}{<num>}\Default{0} - The number of decimals the points of a grade are rounded to. This doesn't apply - to the maximum number of points if the rounded number would be bigger than the - actual sum. - \Option[grades]{half}{\default{true}|false}\Default{false} - If set to \code{true} points are rounded either to full or to half points. -\end{beschreibung} -\secidx*{Grade Distribution} - \subsection{Printing Solutions}\label{sec:solutions}\secidx[print]{solutions} You have already seen that you can print solutions where they are using the \key[solution]{print} option. But \ExSheets offers you quite more possibilities. @@ -943,8 +902,8 @@ has an \acs{id}. To see which \acs{id} a question has you can call the following command: \begin{beschreibung} \Befehl{DebugExSheets}{true|false} - \befehl{CurrentQuestionID} \sinceversion{0.4a}expands to the current question - \acs{id} (after two expansions). + \Befehl{CurrentQuestionID}\sinceversion{0.4a}\newline + expands to the current question \acs{id} (after two expansions). \end{beschreibung} Let's create some more questions and take a look what this command does: \begin{beispiel} @@ -1036,6 +995,81 @@ supported yet. \bool_set_false:N \g__exsheets_use_topics_bool \ExplSyntaxOff +\subsection{Variations of an Exam}\secidx{Variations} +\noindent\sinceversion{0.6}It is a quite common task to design an exam in two +different variants. This is of course possible with \ExSheets' classes (see +section~\ref{sec:classes}). However, often not the whole question is to be +different but only small details, the numbers in a maths exam, say. For this +purpose \ExSheets provides the following commands: +\begin{beschreibung} + \Befehl{SetVariations}{<num>}\newline + Set the number of different variants. This will determine how many arguments + the command \cmd*{vary} will get. \code{<num>} must at least be \code{2} and + is initially set to \code{2}. + \Befehl{variant}{<num>}\newline + Choose the active variant. The argument must be a number between \code{1} + and the number set with \cmd*{variations}. Initially set to \code{1}. + \Befehl{vary}{<variant 1>}\ma{<variant 2>}\newline + This command is the one actually used in the document. It has a number of + required arguments equal to the number set with \cmd*{variations}. All of its + arguments are discarded except the one specified with \cmd*{variant}. +\end{beschreibung} + +\begin{beispiel} + \SetVariations{6}% + \variant{6}\vary{A}{B}{C}{D}{E}{F} + \variant{1}\vary{A}{B}{C}{D}{E}{F} + \variant{5}\vary{A}{B}{C}{D}{E}{F} + \variant{2}\vary{A}{B}{C}{D}{E}{F} + \variant{4}\vary{A}{B}{C}{D}{E}{F} + \variant{3}\vary{A}{B}{C}{D}{E}{F} +\end{beispiel} +\secidx*{Variations} + +\subsection{A Grade Distribution}\secidx{Grade Distribution} +Probably this is a rather esoteric feature but it could proof useful in some cases. +Suppose you are a German math teacher and want to grade exactly corresponding to +the number of points relative to the sum of total points, regardless of how big +that might be. You could do something like this to present your grading decisions +for the exam: +\begin{beispiel} + % preamble: + % \DeclareRelGrades{ + % 1 = 1 , + % {1,5} = .9167 , + % 2 = .8333 , + % {2,5} = .75 , + % 3 = .6667 , + % {3,5} = .5833 , + % 4 = .5 + % } + \small\setlength\tabcolsep{2pt} + \begin{tabular}{r|*8c} + Punkte + & $\grade*{1}$ & $\le\grade*{1}$ & $\le\grade*{1,5}$ & $\le\grade*{2}$ + & $\le\grade*{2,5}$ & $\le\grade*{3}$ & $\le\grade*{3,5}$ & $<\grade*{4}$ \\ + Note + & 1 & 1--2 & 2 & 2--3 & 3 & 3--4 & 4 & 5 + \end{tabular} +\end{beispiel} + +These are the available commands and options: +\begin{beschreibung} + \Befehl{DeclareRelGrades}{<grade>=<num>,...}\newline + This command is used to define grades and assign the percentage of total + points to them. + \Befehl{grade}*{<grade>}\newline + Gives the number of points corresponding to a grade depending on the value + of \cmd{pointssum} with or without (starred version) ``unit''. + \Option[grades]{round}{<num>}\Default{0} + The number of decimals the points of a grade are rounded to. This doesn't apply + to the maximum number of points if the rounded number would be bigger than the + actual sum. + \Option[grades]{half}{\default{true}|false}\Default{false} + If set to \code{true} points are rounded either to full or to half points. +\end{beschreibung} +\secidx*{Grade Distribution} + \subsection{Adding and Using Additional Information to Questions}\label{sec:additional_info} \secidx{Additional Information to Questions} For managing lots of questions and corresponding solutions it can be very useful diff --git a/Master/texmf-dist/doc/latex/exsheets/grading-table.pdf b/Master/texmf-dist/doc/latex/exsheets/grading-table.pdf Binary files differindex 424286f0916..a11f8cbea66 100644 --- a/Master/texmf-dist/doc/latex/exsheets/grading-table.pdf +++ b/Master/texmf-dist/doc/latex/exsheets/grading-table.pdf diff --git a/Master/texmf-dist/doc/latex/exsheets/grading-table.tex b/Master/texmf-dist/doc/latex/exsheets/grading-table.tex index 85239f69181..6b65f8c475e 100644 --- a/Master/texmf-dist/doc/latex/exsheets/grading-table.tex +++ b/Master/texmf-dist/doc/latex/exsheets/grading-table.tex @@ -1,6 +1,5 @@ \documentclass{scrartcl} \usepackage{exsheets} -\DeclareQuestionProperty{points} \begin{document} diff --git a/Master/texmf-dist/tex/latex/exsheets/exsheets.sty b/Master/texmf-dist/tex/latex/exsheets/exsheets.sty index 772c760b610..0aac0c3bf6f 100644 --- a/Master/texmf-dist/tex/latex/exsheets/exsheets.sty +++ b/Master/texmf-dist/tex/latex/exsheets/exsheets.sty @@ -31,8 +31,8 @@ % If you have any ideas, questions, suggestions or bugs to report, please % feel free to contact me. % ---------------------------------------------------------------------------- -\def\exsheets@date{2012/12/06} -\def\exsheets@version{0.5a} +\def\exsheets@date{2012/12/18} +\def\exsheets@version{0.6} \RequirePackage { expl3 , xparse } \ProvidesExplPackage @@ -99,6 +99,18 @@ `points/parse=false'. } +\msg_new:nnn { exsheets } { variations } + { + The~number~of~variations~must~at~least~be~`2'.~You~chose~`#1'~hence~I'm~ + doing~nothing. + } + +\msg_new:nnn { exsheets } { variant } + { + You~must~choose~an~integer~between~`1'~and~`#1'.~You~chose~`#2'~hence~ + I'm~doing~nothing. + } + \cs_new:Npn \exsheets_depr_cmd:nn #1#2 { \cs_new:Npn #1 @@ -511,7 +523,89 @@ } % ---------------------------------------------------------------------------- -% Noten-Verteilung +% 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:Npn \exsheets_set_variations:n #1 + { + \int_compare:nNnTF { #1 } < { 2 } + { \msg_warning:nnn { exsheets } { variations } { #1 } } + { + \int_set:Nn \l__exsheets_variations_int { #1 } + \int_zero:N \l__exsheets_tmpa_int + \int_do_while:nNnn + { \l__exsheets_tmpa_int } < { \l__exsheets_variations_int } + { + \int_incr:N \l__exsheets_tmpa_int + \__exsheets_generate_variation_auxiliary:n + { \l__exsheets_tmpa_int } + \__exsheets_reset_variation_auxiliary:x + { \int_use:N \l__exsheets_tmpa_int } + } + \__exsheets_generate_variation_auxiliary:n + { \l__exsheets_variations_int + 1 } + \exsheets_variant:n { 1 } + } + } + +\cs_new:Npn \exsheets_variant:n #1 + { + \bool_if:nTF + { + \int_compare_p:nNn { #1 } > { 0 } && + \int_compare_p:nNn { #1 } < { \l__exsheets_variations_int + 1 } + } + { + \int_zero:N \l__exsheets_tmpa_int + \int_do_while:nNnn + { \l__exsheets_tmpa_int } < { \l__exsheets_variations_int } + { + \int_incr:N \l__exsheets_tmpa_int + \__exsheets_reset_variation_auxiliary:x + { \int_use:N \l__exsheets_tmpa_int } + } + \cs_set:cpn { __exsheets_variation_ \int_to_roman:n { #1 } :n } ##1 + { ##1 \use:c { __exsheets_variation_ \int_to_roman:n { #1 + 1 } :n } } + } + { + \msg_warning:nnxx { exsheets } { variant } + { \int_use:N \l__exsheets_variations_int } { #1 } + } + } + +\cs_new:Npn \exsheets_vary:w + { \__exsheets_variation_i:n } + +\cs_new:Npn \__exsheets_generate_variation_auxiliary:n #1 + { + \cs_if_exist:cTF { __exsheets_variation_ \int_to_roman:n { #1 } :n } + { \cs_set:cpn { __exsheets_variation_ \int_to_roman:n { #1 } :n } { } } + { \cs_new:cpn { __exsheets_variation_ \int_to_roman:n { #1 } :n } { } } + } + +\cs_new:Npn \__exsheets_reset_variation_auxiliary:n #1 + { + \cs_set:cpn { __exsheets_variation_ \int_to_roman:n { #1 } :n } ##1 + { \use:c { __exsheets_variation_ \int_to_roman:n { #1 + 1 } :n } } + } +\cs_generate_variant:Nn \__exsheets_reset_variation_auxiliary:n { x } + +\NewDocumentCommand \SetVariations { m } + { \exsheets_set_variations:n { #1 } } + +\NewDocumentCommand \variant { m } + { \exsheets_variant:n { #1 } } + +\NewDocumentCommand \vary { } + { \exsheets_vary:w } + +% initiate: two variations, first is default +\SetVariations { 2 } +\variant { 1 } + +% ---------------------------------------------------------------------------- +% 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 @@ -2116,38 +2210,44 @@ { \RequirePackage { translations } % translation for the exercises - \DeclareTranslation { English } { exsheets-exercise-name } { Exercise } - \DeclareTranslation { British } { exsheets-exercise-name } { Exercise } - \DeclareTranslation { American } { exsheets-exercise-name } { Exercise } - \DeclareTranslation { French } { exsheets-exercise-name } { Exercise } - \DeclareTranslation { German } { exsheets-exercise-name } { \"Ubung } - \DeclareTranslation { Italian } { exsheets-exercise-name } { Esercizio } - \DeclareTranslation { Spanish } { exsheets-exercise-name } { Ejercicio } - \DeclareTranslation { Catalan } { exsheets-exercise-name } { Exercir } - \DeclareTranslation { Turkish } { exsheets-exercise-name } { Egzersiz } - \DeclareTranslation { Croatian } { exsheets-exercise-name } { Primjer } + \DeclareTranslation { English } { exsheets-exercise-name } { Exercise } + \DeclareTranslation { British } { exsheets-exercise-name } { Exercise } + \DeclareTranslation { American } { exsheets-exercise-name } { Exercise } + \DeclareTranslation { French } { exsheets-exercise-name } { Exercise } + \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 } { \O{}velse } % translation for the 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 { 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 } % translation for the solutions - \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 { 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 } { Opl\o{}sning } % the actual translating \tl_set:Nn \l__exsheets_exsheets_name_tl { \GetTranslation { exsheets-exercise-name } } @@ -2252,6 +2352,9 @@ HISTORY: 2012/12/02 v0.5 - added \CurrentQuestionID 2012/12/06 v0.5a - bug fix: solutions had wrong numbers with counter-format=se.qu and [print] option +2012/12/18 v0.6 - variations, Hungarian translations, corrected Catalanian + translations + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % TODO: |