summaryrefslogtreecommitdiff
path: root/macros/latex
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2022-10-24 03:03:39 +0000
committerNorbert Preining <norbert@preining.info>2022-10-24 03:03:39 +0000
commit74697976d2ffe935077542593ccbb18a00603251 (patch)
treeca88ce389275df22be5c2c843de613d8003bf684 /macros/latex
parent588d4f81788b3a24bd9bd480ec40bb55be4d1da1 (diff)
CTAN sync 202210240303
Diffstat (limited to 'macros/latex')
-rw-r--r--macros/latex/contrib/iexec/iexec.dtx26
-rw-r--r--macros/latex/contrib/iexec/iexec.pdfbin326148 -> 327771 bytes
-rw-r--r--macros/latex/contrib/siunitx/CHANGELOG.md12
-rw-r--r--macros/latex/contrib/siunitx/siunitx-code.pdfbin617674 -> 617655 bytes
-rw-r--r--macros/latex/contrib/siunitx/siunitx-complex.dtx48
-rw-r--r--macros/latex/contrib/siunitx/siunitx.dtx2
-rw-r--r--macros/latex/contrib/siunitx/siunitx.pdfbin665420 -> 666267 bytes
-rw-r--r--macros/latex/contrib/siunitx/siunitx.tex10
-rw-r--r--macros/latex/contrib/srdp-mathematik/README.md2
-rw-r--r--macros/latex/contrib/srdp-mathematik/srdp-mathematik.pdfbin180179 -> 180259 bytes
-rw-r--r--macros/latex/contrib/srdp-mathematik/srdp-mathematik.sty588
-rw-r--r--macros/latex/contrib/srdp-mathematik/srdp-mathematik.tex2
-rw-r--r--macros/latex/required/babel/base/README.md27
-rw-r--r--macros/latex/required/babel/base/babel.dtx205
-rw-r--r--macros/latex/required/babel/base/babel.ins2
-rw-r--r--macros/latex/required/babel/base/babel.pdfbin885961 -> 885304 bytes
-rw-r--r--macros/latex/required/babel/base/bbcompat.dtx2
17 files changed, 720 insertions, 206 deletions
diff --git a/macros/latex/contrib/iexec/iexec.dtx b/macros/latex/contrib/iexec/iexec.dtx
index 30f44bdbf9..94b924652a 100644
--- a/macros/latex/contrib/iexec/iexec.dtx
+++ b/macros/latex/contrib/iexec/iexec.dtx
@@ -50,12 +50,13 @@
%<package>\NeedsTeXFormat{LaTeX2e}
%<package>\ProvidesPackage{iexec}
%<*package>
-[2022-10-22 0.11.0 Inputable Shell Executions]
+[2022-10-23 0.11.1 Inputable Shell Executions]
%</package>
%<*driver>
\documentclass{ltxdoc}
\usepackage[tt=false, type1=true]{libertine}
\usepackage{microtype}
+\usepackage{xcolor}
\usepackage[dtx]{docshots}
\usepackage{iexec}
\usepackage{href-ul}
@@ -77,6 +78,9 @@
%
% \maketitle
%
+% \textbf{\color{red}NB!}
+% This package doesn't work on Windows!
+%
% \section{Introduction}
%
% This package helps you execute shell commands right from the
@@ -324,7 +328,7 @@ This file won't be deleted: \iexec[stdout=me.txt]{whoami}.
\fi%
\begingroup%
% \end{macrocode}
-% Then, start the log from a clean line:
+% Then, we start the log from a clean line:
% \begin{macrocode}
\ifdefined\iexec@log%
\message{^^J}%
@@ -339,27 +343,28 @@ This file won't be deleted: \iexec[stdout=me.txt]{whoami}.
\let\{\@charlb%
\let\}\@charrb%
% \end{macrocode}
-% Then, we execute it:
+% Then, we execute it and save exit code into a file (where we also add \% in order to trim the content to exactly one number, as suggested \href{https://tex.stackexchange.com/questions/662756}{here}):
% \changes{0.10.0}{2022/10/19}{The ability to track exit code was added. Now, the code is saved into "iexec.ret" file, which is then read and checked for zero value.}
% \changes{0.8.0}{2022/10/05}{The option "null" was introduced, allowing redirection of stdout to "/dev/null". Doesn't work on Windows, though.}
% \changes{0.9.0}{2022/10/15}{The option "stderr" was introduced, allowing redirection of stderr to a file. Without this option specified, stderr will go to stdout.}
% \changes{0.11.0}{2022/10/22}{The file with exit code now contains just numbers, without end of line.}
+% \changes{0.11.1}{2022/10/23}{When exit code is printed to the file, we add percentchar at the end of line in order to avoid extra space when reading it back.}
% \begin{macrocode}
\def\iexec@cmd{(#2)
\ifdefined\iexec@append>\fi>
\ifdefined\iexec@null/dev/null\else\iexec@stdout\fi
\space\ifdefined\iexec@stderr2>\iexec@stderr\else2>&1\fi;
- /bin/echo -n $? >\iexec@exit}
+ /bin/echo -n $?\% >\iexec@exit}
\ShellEscape{\iexec@cmd}%
% \end{macrocode}
-% Then, a message is printed to TeX log:
+% Then, a message is printed to \TeX{} log:
% \begin{macrocode}
\ifdefined\iexec@log%
\message{iexec: [\iexec@cmd]^^J}%
\fi%
\endgroup%
% \end{macrocode}
-% Then, if required, the content of the stdout file will be printed to the log:
+% Then, if required, we print the content of the stdout file to \TeX{} log:
% \begin{macrocode}
\ifdefined\iexec@null\else%
\ifdefined\iexec@log%
@@ -368,11 +373,14 @@ This file won't be deleted: \iexec[stdout=me.txt]{whoami}.
\message{<EOF>^^J}%
\fi\fi%
% \end{macrocode}
-% Then, we check exit code, unless there is |ignore| option:
+% Then, we read back the exit code, from the file:
% \begin{macrocode}
\immediate\openin\iexec@exitfile=\iexec@exit%
\read\iexec@exitfile to \iexec@code%
\immediate\closein\iexec@exitfile%
+% \end{macrocode}
+% Then, we check whether it's zero or not (if not zero, we either print a message or fail the build, depending on the presence of |ignore| option):
+% \begin{macrocode}
\ifnum\iexec@code=0\else%
\ifdefined\iexec@ignore%
\ifdefined\iexec@log%
@@ -385,7 +393,7 @@ This file won't be deleted: \iexec[stdout=me.txt]{whoami}.
\fi%
\fi%
% \end{macrocode}
-% Then, include the produced output into the current document:
+% Then, we include the produced output into the current document:
% \begin{macrocode}
\ifdefined\iexec@null\else%
\ifdefined\iexec@quiet%
@@ -406,7 +414,7 @@ This file won't be deleted: \iexec[stdout=me.txt]{whoami}.
was included into the document^^J}%
\fi\fi%
% \end{macrocode}
-% Finally, delete the file or leave it untouched:
+% Finally, we delete the file or leave it untouched:
% \begin{macrocode}
\ifdefined\iexec@null\else%
\ifiexec@trace%
diff --git a/macros/latex/contrib/iexec/iexec.pdf b/macros/latex/contrib/iexec/iexec.pdf
index e4633ab765..c3d51f4982 100644
--- a/macros/latex/contrib/iexec/iexec.pdf
+++ b/macros/latex/contrib/iexec/iexec.pdf
Binary files differ
diff --git a/macros/latex/contrib/siunitx/CHANGELOG.md b/macros/latex/contrib/siunitx/CHANGELOG.md
index 7cdde2cf78..d1d7b1c61f 100644
--- a/macros/latex/contrib/siunitx/CHANGELOG.md
+++ b/macros/latex/contrib/siunitx/CHANGELOG.md
@@ -7,6 +7,15 @@ Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to
## [Unreleased]
+## [v3.1.9] - 2022-10-23
+
+### Added
+- Option `print-complex-unity`
+
+## Fixed
+- Printing of complex values of exactly one (see issue
+ [\#625](https://github.com/josephwright/siunitx/issues/625))
+
## [v3.1.8] - 2022-10-04
### Fixed
@@ -1817,7 +1826,8 @@ Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to
### Added
- First public testing release (as `si`)
-[Unreleased]: https://github.com/josephwright/siunitx/compare/v3.1.8...HEAD
+[Unreleased]: https://github.com/josephwright/siunitx/compare/v3.1.9...HEAD
+[v3.1.9]: https://github.com/josephwright/siunitx/compare/v3.1.8...v3.1.9
[v3.1.8]: https://github.com/josephwright/siunitx/compare/v3.1.7...v3.1.8
[v3.1.7]: https://github.com/josephwright/siunitx/compare/v3.1.6...v3.1.7
[v3.1.6]: https://github.com/josephwright/siunitx/compare/v3.1.5...v3.1.6
diff --git a/macros/latex/contrib/siunitx/siunitx-code.pdf b/macros/latex/contrib/siunitx/siunitx-code.pdf
index cf6bc8c78c..7bfe53e8a8 100644
--- a/macros/latex/contrib/siunitx/siunitx-code.pdf
+++ b/macros/latex/contrib/siunitx/siunitx-code.pdf
Binary files differ
diff --git a/macros/latex/contrib/siunitx/siunitx-complex.dtx b/macros/latex/contrib/siunitx/siunitx-complex.dtx
index 9cd595d28f..8303c9f302 100644
--- a/macros/latex/contrib/siunitx/siunitx-complex.dtx
+++ b/macros/latex/contrib/siunitx/siunitx-complex.dtx
@@ -164,6 +164,14 @@
% is |\mathrm{i}|.
% \end{function}
%
+% \begin{function}{print-complex-unity}
+% \begin{syntax}
+% |print-complex-unity| = |true|\verb"|"|false|
+% \end{syntax}
+% Switch to determine if the number \num{1} is printed for a complex
+% part which is exactly unity.
+% \end{function}
+%
% \end{documentation}
%
% \begin{implementation}
@@ -286,7 +294,9 @@
input-complex-root .tl_set:N =
\l_@@_input_root_tl ,
output-complex-root .tl_set:N =
- \l_@@_output_root_tl
+ \l_@@_output_root_tl ,
+ print-complex-unity .bool_set:N =
+ \l_@@_print_unity_bool
}
% \end{macrocode}
% \end{variable}
@@ -860,8 +870,7 @@
\cs_new_protected:Npn \@@_drop_exponent:nnnnnnn #1#2#3#4#5#6#7
{ \tl_set:Nn \l_@@_real_tl { {#1} {#2} {#3} {#4} {#5} { } { 0 } } }
% \end{macrocode}
-% Ensure the imaginary part has a sign, and also deal with the case
-% where there is no mantissa to print (as it is $1$).
+% Ensure the imaginary part has a sign.
% \begin{macrocode}
\cs_new_protected:Npn \@@_format_sign:nnnnnnn #1#2#3#4#5#6#7
{
@@ -873,14 +882,7 @@
{ \tl_if_empty:NF \l_@@_real_tl { + } }
{ \exp_not:n {#2} }
}
- \tl_if_blank:nTF {#4}
- {
- \str_if_eq:nnTF {#3} { 1 }
- { { } { } }
- { \exp_not:n { {#3} {#4} } }
- }
- { \exp_not:n { {#3} {#4} } }
- \exp_not:n { {#5} {#6} {#7} }
+ \exp_not:n { {#3} {#4} {#5} {#6} {#7} }
}
}
% \end{macrocode}
@@ -893,9 +895,12 @@
\q_nil #9 \q_stop
{
\tl_set:Nn \l_@@_sign_tl {#1#2}
- \bool_lazy_and:nnTF
- { \str_if_eq_p:nn {#3} { 1 } }
- { \tl_if_blank_p:n {#5} }
+ \bool_lazy_all:nTF
+ {
+ { ! \l_@@_print_unity_bool }
+ { \str_if_eq_p:nn {#3} { 1 } }
+ { \tl_if_blank_p:n {#5} }
+ }
{ \@@_extract_exponent_aux:nw {#6#7#8} }
{ \@@_extract_exponent_aux:nw {#3#4#5#6#7#8} }
#9 \q_stop
@@ -1200,13 +1205,14 @@
% \begin{macrocode}
\keys_set:nn { siunitx }
{
- complex-angle-unit = degrees ,
- complex-mode = input ,
- complex-root-position = after-number ,
- complex-symbol-angle = \angle ,
- complex-symbol-degree = \degree ,
- input-complex-root = ij ,
- output-complex-root = \mathrm { i }
+ complex-angle-unit = degrees ,
+ complex-mode = input ,
+ complex-root-position = after-number ,
+ complex-symbol-angle = \angle ,
+ complex-symbol-degree = \degree ,
+ input-complex-root = ij ,
+ output-complex-root = \mathrm { i } ,
+ print-complex-unity = false
}
% \end{macrocode}
%
diff --git a/macros/latex/contrib/siunitx/siunitx.dtx b/macros/latex/contrib/siunitx/siunitx.dtx
index 3e61bbb85c..b39fdd662e 100644
--- a/macros/latex/contrib/siunitx/siunitx.dtx
+++ b/macros/latex/contrib/siunitx/siunitx.dtx
@@ -121,7 +121,7 @@
%
% Identify the package and give the over all version information.
% \begin{macrocode}
-\ProvidesExplPackage {siunitx} {2022-10-04} {3.1.8}
+\ProvidesExplPackage {siunitx} {2022-10-23} {3.1.9}
{A comprehensive (SI) units package}
% \end{macrocode}
%
diff --git a/macros/latex/contrib/siunitx/siunitx.pdf b/macros/latex/contrib/siunitx/siunitx.pdf
index 15032f9957..92efe61c67 100644
--- a/macros/latex/contrib/siunitx/siunitx.pdf
+++ b/macros/latex/contrib/siunitx/siunitx.pdf
Binary files differ
diff --git a/macros/latex/contrib/siunitx/siunitx.tex b/macros/latex/contrib/siunitx/siunitx.tex
index 05c3e70ffa..1c4b9ab910 100644
--- a/macros/latex/contrib/siunitx/siunitx.tex
+++ b/macros/latex/contrib/siunitx/siunitx.tex
@@ -2055,6 +2055,7 @@ numbers; these are summarised in Table~\ref{tab:opt:num:complex}.
complex-symbol-degree & Literal & \cs{degree} \\
input-complex-root & Literal & ij \\
output-complex-root & Literal & \verb=\mathrm{i}= \\
+ print-complex-unity & Switch & false \\
\bottomrule
\end{tabular}
\end{table}
@@ -2121,6 +2122,15 @@ are controlled by the options \opt{complex-symbol-angle} and
\complexqty[complex-symbol-degree = d]{1:1}{\ohm}
\end{LaTeXdemo}
+\DescribeOption{print-complex-unity}
+When the complex part of a number is exactly \num{1}, it is possible to either
+print or suppress the value. This is controlled by the switch
+\opt{print-complex-unity}.
+\begin{LaTeXdemo}
+ \complexqty{1i}{\ohm} \\
+ \complexqty[print-complex-unity]{1i}{\ohm}
+\end{LaTeXdemo}
+
\subsection{Angles}
Angle processing provided by the \cs{ang} function has a set of options which
diff --git a/macros/latex/contrib/srdp-mathematik/README.md b/macros/latex/contrib/srdp-mathematik/README.md
index d9add6410e..7039bb45d1 100644
--- a/macros/latex/contrib/srdp-mathematik/README.md
+++ b/macros/latex/contrib/srdp-mathematik/README.md
@@ -1,4 +1,4 @@
-# srdp-mathematik.sty v1.10.2
+# srdp-mathematik.sty v1.10.3
This package provides basic commands for the defined formats of the Austrian sRDP in mathematics.
Furthermore, it includes ways to implement answers in the tex file, which can be voluntarily displayed in the pdf file and
diff --git a/macros/latex/contrib/srdp-mathematik/srdp-mathematik.pdf b/macros/latex/contrib/srdp-mathematik/srdp-mathematik.pdf
index 3fa05e4243..8f0b92a267 100644
--- a/macros/latex/contrib/srdp-mathematik/srdp-mathematik.pdf
+++ b/macros/latex/contrib/srdp-mathematik/srdp-mathematik.pdf
Binary files differ
diff --git a/macros/latex/contrib/srdp-mathematik/srdp-mathematik.sty b/macros/latex/contrib/srdp-mathematik/srdp-mathematik.sty
index d0bbee7b01..db631f2e19 100644
--- a/macros/latex/contrib/srdp-mathematik/srdp-mathematik.sty
+++ b/macros/latex/contrib/srdp-mathematik/srdp-mathematik.sty
@@ -10,7 +10,7 @@
%
\NeedsTeXFormat{LaTeX2e}[1996/12/26]
-\ProvidesPackage{srdp-mathematik}[2022/10/02 v1.10.2 Standard-Schularbeitsformate]
+\ProvidesPackage{srdp-mathematik}[2022/10/23 v1.10.3 Standard-Schularbeitsformate]
\usepackage{color}
@@ -934,41 +934,277 @@ Complete the following sentence by putting a cross next to one of the given poss
\ifthenelse{\numexpr#1 > 7}{\pgfmathrandomitem\z{group}\setcounter{antworth}{\z}\prunelist{group}}{}
\ifthenelse{\numexpr#1 > 8}{\pgfmathrandomitem\z{group}\setcounter{antworti}{\z}\prunelist{group}}{}
-%\begin{minipage}{0.85\linewidth}
+
\begin{tabu}{|A|c|c|}%
\hline%
\small \textsc{#2} & \small\textsc{Richtig} & \small \textsc{Falsch} \\ \hline
\forloop{ct}{1}{\value{ct}<\numexpr#1}%
-{\ifthenelse{\value{ct}=\theantworta}{\jeroen@get{L1}}{\ifthenelse{\value{ct}=\theantwortb}{\jeroen@get{L2}}{\ifthenelse{\value{ct}=\theantwortc}{\jeroen@get{L3}}{\ifthenelse{\value{ct}=\theantwortd}{\jeroen@get{L4}}{\ifthenelse{\value{ct}=\theantworte}{\jeroen@get{L5}}{\ifthenelse{\value{ct}=\theantwortf}{\jeroen@get{L6}}{\ifthenelse{\value{ct}=\theantwortg}{\jeroen@get{L7}}{\ifthenelse{\value{ct}=\theantworth}{\jeroen@get{L8}}{{\jeroen@get{L9}}}}}}}}}}&%
-%
+{\ifthenelse{\value{ct}=\theantworta}{\jeroen@get{L1}}{%
+\ifthenelse{\value{ct}=\theantwortb}{\jeroen@get{L2}}{%
+\ifthenelse{\value{ct}=\theantwortc}{\jeroen@get{L3}}{%
+\ifthenelse{\value{ct}=\theantwortd}{\jeroen@get{L4}}{%
+\ifthenelse{\value{ct}=\theantworte}{\jeroen@get{L5}}{%
+\ifthenelse{\value{ct}=\theantwortf}{\jeroen@get{L6}}{%
+\ifthenelse{\value{ct}=\theantwortg}{\jeroen@get{L7}}{%
+\ifthenelse{\value{ct}=\theantworth}{\jeroen@get{L8}}{{%
+\jeroen@get{L9}}}}}}}}}}&%
+%%%
%%% Spalte 'Richtig' %%%%
-%
-\ifnum\theAntworten=1%
-\ifthenelse{\jeroen@get{A1}=1 \OR \jeroen@get{A2}=1 \OR \jeroen@get{A3}=1\OR \jeroen@get{A4}=1 \OR \jeroen@get{A5}=1 \OR \jeroen@get{A6}=1 \OR \jeroen@get{A7}=1 \OR \jeroen@get{A8}=1 \OR \jeroen@get{A9}=1 \AND \value{ct}=\theantworta}{\color[rgb]{1,0,0}\XBox\color[rgb]{0,0,0}\setcounter{acheck}{1}}{}\ifthenelse{\jeroen@get{A1}=2 \OR \jeroen@get{A2}=2 \OR \jeroen@get{A3}=2\OR \jeroen@get{A4}=2\OR \jeroen@get{A5}=2\OR \jeroen@get{A6}=2 \OR \jeroen@get{A7}=2 \OR \jeroen@get{A8}=2 \OR \jeroen@get{A9}=2 \AND \value{ct}=\theantwortb}{\color[rgb]{1,0,0}\XBox\color[rgb]{0,0,0}\setcounter{bcheck}{1}}{}\ifthenelse{\jeroen@get{A1}=3 \OR \jeroen@get{A2}=3 \OR \jeroen@get{A3}=3\OR \jeroen@get{A4}=3\OR \jeroen@get{A5}=3 \OR \jeroen@get{A6}=3 \OR \jeroen@get{A7}=3 \OR \jeroen@get{A8}=3 \OR \jeroen@get{A9}=3 \AND \value{ct}=\theantwortc}{\color[rgb]{1,0,0}\XBox\color[rgb]{0,0,0}\setcounter{ccheck}{1}}{}\ifthenelse{\jeroen@get{A1}=4 \OR \jeroen@get{A2}=4 \OR \jeroen@get{A3}=4\OR \jeroen@get{A4}=4\OR \jeroen@get{A5}=4\OR \jeroen@get{A6}=4 \OR \jeroen@get{A7}=4 \OR \jeroen@get{A8}=4 \OR \jeroen@get{A9}=4 \AND \value{ct}=\theantwortd}{\color[rgb]{1,0,0}\XBox\color[rgb]{0,0,0}\setcounter{dcheck}{1}}{}\ifthenelse{\jeroen@get{A1}=5 \OR \jeroen@get{A2}=5 \OR \jeroen@get{A3}=5\OR \jeroen@get{A4}=5\OR \jeroen@get{A5}=5\OR \jeroen@get{A6}=5 \OR \jeroen@get{A7}=5 \OR \jeroen@get{A8}=5 \OR \jeroen@get{A9}=5 \AND \value{ct}=\theantworte}{\color[rgb]{1,0,0}\XBox\color[rgb]{0,0,0}\setcounter{echeck}{1}}{}\ifthenelse{\jeroen@get{A1}=6 \OR \jeroen@get{A2}=6 \OR \jeroen@get{A3}=6\OR \jeroen@get{A4}=6\OR \jeroen@get{A5}=6\OR \jeroen@get{A6}=6 \OR \jeroen@get{A7}=6 \OR \jeroen@get{A8}=6 \OR \jeroen@get{A9}=6 \AND \value{ct}=\theantwortf}{\color[rgb]{1,0,0}\XBox\color[rgb]{0,0,0}\setcounter{fcheck}{1}}{}\ifthenelse{\jeroen@get{A1}=7 \OR \jeroen@get{A2}=7 \OR \jeroen@get{A3}=7\OR \jeroen@get{A4}=7\OR \jeroen@get{A5}=7\OR \jeroen@get{A6}=7 \OR \jeroen@get{A7}=7 \OR \jeroen@get{A8}=7 \OR \jeroen@get{A9}=7 \AND \value{ct}=\theantwortg}{\color[rgb]{1,0,0}\XBox\color[rgb]{0,0,0}\setcounter{gcheck}{1}}{}\ifthenelse{\jeroen@get{A1}=8 \OR \jeroen@get{A2}=8 \OR \jeroen@get{A3}=8\OR \jeroen@get{A4}=8\OR \jeroen@get{A5}=8\OR \jeroen@get{A6}=8 \OR \jeroen@get{A7}=8 \OR \jeroen@get{A8}=8 \OR \jeroen@get{A9}=8 \AND \value{ct}=\theantworth}{\color[rgb]{1,0,0}\XBox\color[rgb]{0,0,0}\setcounter{hcheck}{1}}{}\ifthenelse{\jeroen@get{A1}=9 \OR \jeroen@get{A2}=9 \OR \jeroen@get{A3}=9\OR \jeroen@get{A4}=9\OR \jeroen@get{A5}=9\OR \jeroen@get{A6}=9 \OR \jeroen@get{A7}=9 \OR \jeroen@get{A8}=9 \OR \jeroen@get{A9}=9 \AND \value{ct}=\theantworti}{\color[rgb]{1,0,0}\XBox\color[rgb]{0,0,0}\setcounter{icheck}{1}}{}%
-\else%
-\Square\fi&%
-%
+%%%
+\ifthenelse{\theAntworten=1}{%
+\ifthenelse{%
+\jeroen@get{A1}=1\OR%
+\jeroen@get{A2}=1\OR%
+\jeroen@get{A3}=1\OR%
+\jeroen@get{A4}=1\OR%
+\jeroen@get{A5}=1\OR%
+\jeroen@get{A6}=1\OR%
+\jeroen@get{A7}=1\OR%
+\jeroen@get{A8}=1\OR%
+\jeroen@get{A9}=1\AND%
+\value{ct}=\theantworta}{%
+\color[rgb]{1,0,0}\XBox\color[rgb]{0,0,0}\setcounter{acheck}{1}}{}\ifthenelse{%
+\jeroen@get{A1}=2\OR%
+\jeroen@get{A2}=2\OR%
+\jeroen@get{A3}=2\OR%
+\jeroen@get{A4}=2\OR%
+\jeroen@get{A5}=2\OR%
+\jeroen@get{A6}=2\OR%
+\jeroen@get{A7}=2\OR%
+\jeroen@get{A8}=2\OR%
+\jeroen@get{A9}=2\AND%
+\value{ct}=\theantwortb}{%
+\color[rgb]{1,0,0}\XBox\color[rgb]{0,0,0}\setcounter{bcheck}{1}}{}\ifthenelse{%
+\jeroen@get{A1}=3\OR%
+\jeroen@get{A2}=3\OR%
+\jeroen@get{A3}=3\OR%
+\jeroen@get{A4}=3\OR%
+\jeroen@get{A5}=3\OR%
+\jeroen@get{A6}=3\OR%
+\jeroen@get{A7}=3\OR%
+\jeroen@get{A8}=3\OR%
+\jeroen@get{A9}=3\AND%
+\value{ct}=\theantwortc}{%
+\color[rgb]{1,0,0}\XBox\color[rgb]{0,0,0}\setcounter{ccheck}{1}}{}\ifthenelse{%
+\jeroen@get{A1}=4\OR%
+\jeroen@get{A2}=4\OR%
+\jeroen@get{A3}=4\OR%
+\jeroen@get{A4}=4\OR%
+\jeroen@get{A5}=4\OR%
+\jeroen@get{A6}=4\OR%
+\jeroen@get{A7}=4\OR%
+\jeroen@get{A8}=4\OR%
+\jeroen@get{A9}=4\AND%
+\value{ct}=\theantwortd}{%
+\color[rgb]{1,0,0}\XBox\color[rgb]{0,0,0}\setcounter{dcheck}{1}}{}\ifthenelse{%
+\jeroen@get{A1}=5\OR%
+\jeroen@get{A2}=5\OR%
+\jeroen@get{A3}=5\OR%
+\jeroen@get{A4}=5\OR%
+\jeroen@get{A5}=5\OR%
+\jeroen@get{A6}=5\OR%
+\jeroen@get{A7}=5\OR%
+\jeroen@get{A8}=5\OR%
+\jeroen@get{A9}=5\AND%
+\value{ct}=\theantworte}{%
+\color[rgb]{1,0,0}\XBox\color[rgb]{0,0,0}\setcounter{echeck}{1}}{}\ifthenelse{%
+\jeroen@get{A1}=6\OR%
+\jeroen@get{A2}=6\OR%
+\jeroen@get{A3}=6\OR%
+\jeroen@get{A4}=6\OR%
+\jeroen@get{A5}=6\OR%
+\jeroen@get{A6}=6\OR%
+\jeroen@get{A7}=6\OR%
+\jeroen@get{A8}=6\OR%
+\jeroen@get{A9}=6\AND%
+\value{ct}=\theantwortf}{%
+\color[rgb]{1,0,0}\XBox\color[rgb]{0,0,0}\setcounter{fcheck}{1}}{}\ifthenelse{%
+\jeroen@get{A1}=7\OR%
+\jeroen@get{A2}=7\OR%
+\jeroen@get{A3}=7\OR%
+\jeroen@get{A4}=7\OR%
+\jeroen@get{A5}=7\OR%
+\jeroen@get{A6}=7\OR%
+\jeroen@get{A7}=7\OR%
+\jeroen@get{A8}=7\OR%
+\jeroen@get{A9}=7\AND%
+\value{ct}=\theantwortg}{%
+\color[rgb]{1,0,0}\XBox\color[rgb]{0,0,0}\setcounter{gcheck}{1}}{}\ifthenelse{%
+\jeroen@get{A1}=8\OR%
+\jeroen@get{A2}=8\OR%
+\jeroen@get{A3}=8\OR%
+\jeroen@get{A4}=8\OR%
+\jeroen@get{A5}=8\OR%
+\jeroen@get{A6}=8\OR%
+\jeroen@get{A7}=8\OR%
+\jeroen@get{A8}=8\OR%
+\jeroen@get{A9}=8\AND%
+\value{ct}=\theantworth}{%
+\color[rgb]{1,0,0}\XBox\color[rgb]{0,0,0}\setcounter{hcheck}{1}}{}\ifthenelse{%
+\jeroen@get{A1}=9\OR%
+\jeroen@get{A2}=9\OR%
+\jeroen@get{A3}=9\OR%
+\jeroen@get{A4}=9\OR%
+\jeroen@get{A5}=9\OR%
+\jeroen@get{A6}=9\OR%
+\jeroen@get{A7}=9\OR%
+\jeroen@get{A8}=9\OR%
+\jeroen@get{A9}=9\AND%
+\value{ct}=\theantworti}{\color[rgb]{1,0,0}\XBox\color[rgb]{0,0,0}\setcounter{icheck}{1}}{}%
+}{\Square}&%
+%%%%
%%%% Spalte 'falsch'
-%
-\ifnum\theAntworten=1%
-\ifthenelse{\value{acheck}=0 \AND \value{ct}=\theantworta}{\color[rgb]{1,0,0}\XBox\color[rgb]{0,0,0}}{}\ifthenelse{\value{bcheck}=0 \AND \value{ct}=\theantwortb}{\color[rgb]{1,0,0}\XBox\color[rgb]{0,0,0}}{}\ifthenelse{\value{ccheck}=0 \AND \value{ct}=\theantwortc}{\color[rgb]{1,0,0}\XBox\color[rgb]{0,0,0}}{}\ifthenelse{\value{dcheck}=0 \AND \value{ct}=\theantwortd}{\color[rgb]{1,0,0}\XBox\color[rgb]{0,0,0}}{}\ifthenelse{\value{echeck}=0 \AND \value{ct}=\theantworte}{\color[rgb]{1,0,0}\XBox\color[rgb]{0,0,0}}{}\ifthenelse{\value{fcheck}=0 \AND \value{ct}=\theantwortf}{\color[rgb]{1,0,0}\XBox\color[rgb]{0,0,0}}{}\ifthenelse{\value{gcheck}=0 \AND \value{ct}=\theantwortg}{\color[rgb]{1,0,0}\XBox\color[rgb]{0,0,0}}{}\ifthenelse{\value{hcheck}=0 \AND \value{ct}=\theantworth}{\color[rgb]{1,0,0}\XBox\color[rgb]{0,0,0}}{}\ifthenelse{\value{icheck}=0 \AND \value{ct}=\theantworti}{\color[rgb]{1,0,0}\XBox\color[rgb]{0,0,0}}{}%
-\else%
-\Square\fi\\ \hline}%
-%
+%%%%
+\ifthenelse{\theAntworten=1}{%
+\ifthenelse{\value{acheck}=0\AND%
+\value{ct}=\theantworta}{\color[rgb]{1,0,0}\XBox\color[rgb]{0,0,0}}{}%
+\ifthenelse{%
+\value{bcheck}=0 \AND \value{ct}=\theantwortb}{\color[rgb]{1,0,0}\XBox\color[rgb]{0,0,0}}{}%
+\ifthenelse{%
+\value{ccheck}=0 \AND \value{ct}=\theantwortc}{\color[rgb]{1,0,0}\XBox\color[rgb]{0,0,0}}{}%
+\ifthenelse{%
+\value{dcheck}=0 \AND \value{ct}=\theantwortd}{\color[rgb]{1,0,0}\XBox\color[rgb]{0,0,0}}{}%
+\ifthenelse{%
+\value{echeck}=0 \AND \value{ct}=\theantworte}{\color[rgb]{1,0,0}\XBox\color[rgb]{0,0,0}}{}%
+\ifthenelse{%
+\value{fcheck}=0 \AND \value{ct}=\theantwortf}{\color[rgb]{1,0,0}\XBox\color[rgb]{0,0,0}}{}%
+\ifthenelse{%
+\value{gcheck}=0 \AND \value{ct}=\theantwortg}{\color[rgb]{1,0,0}\XBox\color[rgb]{0,0,0}}{}%
+\ifthenelse{%
+\value{hcheck}=0 \AND \value{ct}=\theantworth}{\color[rgb]{1,0,0}\XBox\color[rgb]{0,0,0}}{}%
+\ifthenelse{%
+\value{icheck}=0 \AND \value{ct}=\theantworti}{\color[rgb]{1,0,0}\XBox\color[rgb]{0,0,0}}{}%
+}{\Square}\\ \hline}%
+
+%%%%
%%%%% Spalte 'richtig' (letzte Zeile)
-\ifthenelse{\theantworta=#1}{\jeroen@get{L1}}{\ifthenelse{\theantwortb=#1}{\jeroen@get{L2}}{\ifthenelse{\theantwortc=#1}{\jeroen@get{L3}}{\ifthenelse{\theantwortd=#1}{\jeroen@get{L4}}{\ifthenelse{\theantworte=#1}{\jeroen@get{L5}}{\ifthenelse{\theantwortf=#1}{\jeroen@get{L6}}{\ifthenelse{\theantwortg=#1}{\jeroen@get{L7}}{\ifthenelse{\theantworth=#1}{\jeroen@get{L8}}{{\jeroen@get{L9}}}}}}}}}} &%
-%
-%
-%
-\ifnum\theAntworten=1%
-\ifthenelse{\jeroen@get{A1}=1 \OR \jeroen@get{A2}=1 \OR \jeroen@get{A3}=1\OR \jeroen@get{A4}=1\OR \jeroen@get{A5}=1\OR \jeroen@get{A6}=1 \OR \jeroen@get{A7}=1 \OR \jeroen@get{A8}=1 \OR \jeroen@get{A9}=1 \AND \theantworta=#1}{\color[rgb]{1,0,0}\XBox\color[rgb]{0,0,0}\setcounter{acheck}{1}}{}\ifthenelse{\jeroen@get{A1}=2 \OR \jeroen@get{A2}=2 \OR \jeroen@get{A3}=2\OR \jeroen@get{A4}=2\OR \jeroen@get{A5}=2\OR \jeroen@get{A6}=2 \OR \jeroen@get{A7}=2 \OR \jeroen@get{A8}=2 \OR \jeroen@get{A9}=2 \AND \theantwortb=#1}{\color[rgb]{1,0,0}\XBox\color[rgb]{0,0,0}\setcounter{bcheck}{1}}{}\ifthenelse{\jeroen@get{A1}=3 \OR \jeroen@get{A2}=3 \OR \jeroen@get{A3}=3\OR \jeroen@get{A4}=3\OR \jeroen@get{A5}=3\OR \jeroen@get{A6}=3 \OR \jeroen@get{A7}=3 \OR \jeroen@get{A8}=3 \OR \jeroen@get{A9}=3 \AND \theantwortc=#1}{\color[rgb]{1,0,0}\XBox\color[rgb]{0,0,0}\setcounter{ccheck}{1}}{}\ifthenelse{\jeroen@get{A1}=4 \OR \jeroen@get{A2}=4 \OR \jeroen@get{A3}=4\OR \jeroen@get{A4}=4\OR \jeroen@get{A5}=4\OR \jeroen@get{A6}=4 \OR \jeroen@get{A7}=4 \OR \jeroen@get{A8}=4 \OR \jeroen@get{A9}=4 \AND \theantwortd=#1}{\color[rgb]{1,0,0}\XBox\color[rgb]{0,0,0}\setcounter{dcheck}{1}}{}\ifthenelse{\jeroen@get{A1}=5 \OR \jeroen@get{A2}=5 \OR \jeroen@get{A3}=5\OR \jeroen@get{A4}=5\OR \jeroen@get{A5}=5\OR \jeroen@get{A6}=5 \OR \jeroen@get{A7}=5 \OR \jeroen@get{A8}=5 \OR \jeroen@get{A9}=5 \AND \theantworte=#1}{\color[rgb]{1,0,0}\XBox\color[rgb]{0,0,0}\setcounter{echeck}{1}}{}\ifthenelse{\jeroen@get{A1}=6 \OR \jeroen@get{A2}=6 \OR \jeroen@get{A3}=6\OR \jeroen@get{A4}=6\OR \jeroen@get{A5}=6\OR \jeroen@get{A6}=6 \OR \jeroen@get{A7}=6 \OR \jeroen@get{A8}=6 \OR \jeroen@get{A9}=6 \AND \theantwortf=#1}{\color[rgb]{1,0,0}\XBox\color[rgb]{0,0,0}\setcounter{fcheck}{1}}{}\ifthenelse{\jeroen@get{A1}=7 \OR \jeroen@get{A2}=7 \OR \jeroen@get{A3}=7\OR \jeroen@get{A4}=7\OR \jeroen@get{A5}=7\OR \jeroen@get{A6}=7 \OR \jeroen@get{A7}=7 \OR \jeroen@get{A8}=7 \OR \jeroen@get{A9}=7 \AND \theantwortg=#1}{\color[rgb]{1,0,0}\XBox\color[rgb]{0,0,0}\setcounter{gcheck}{1}}{}\ifthenelse{\jeroen@get{A1}=8 \OR \jeroen@get{A2}=8 \OR \jeroen@get{A3}=8\OR \jeroen@get{A4}=8\OR \jeroen@get{A5}=8\OR \jeroen@get{A6}=8 \OR \jeroen@get{A7}=8 \OR \jeroen@get{A8}=8 \OR \jeroen@get{A9}=8 \AND \theantworth=#1}{\color[rgb]{1,0,0}\XBox\color[rgb]{0,0,0}\setcounter{hcheck}{1}}{}\ifthenelse{\jeroen@get{A1}=9 \OR \jeroen@get{A2}=9 \OR \jeroen@get{A3}=9\OR \jeroen@get{A4}=9\OR \jeroen@get{A5}=9\OR \jeroen@get{A6}=9 \OR \jeroen@get{A7}=9 \OR \jeroen@get{A8}=9 \OR \jeroen@get{A9}=9 \AND \theantworti=#1}{\color[rgb]{1,0,0}\XBox\color[rgb]{0,0,0}\setcounter{icheck}{1}}{}%
-\else%
-\Square\fi%
-&%
-%
+%%%%
+\ifthenelse{\theantworta=#1}{\jeroen@get{L1}}{%
+\ifthenelse{\theantwortb=#1}{\jeroen@get{L2}}{%
+\ifthenelse{\theantwortc=#1}{\jeroen@get{L3}}{%
+\ifthenelse{\theantwortd=#1}{\jeroen@get{L4}}{%
+\ifthenelse{\theantworte=#1}{\jeroen@get{L5}}{%
+\ifthenelse{\theantwortf=#1}{\jeroen@get{L6}}{%
+\ifthenelse{\theantwortg=#1}{\jeroen@get{L7}}{%
+\ifthenelse{\theantworth=#1}{\jeroen@get{L8}}{{%
+\jeroen@get{L9}}}}}}}}}}&%
+%%
+%%
+%%
+\ifthenelse{\theAntworten=1}{%
+\ifthenelse{%
+\jeroen@get{A1}=1\OR%
+\jeroen@get{A2}=1\OR%
+\jeroen@get{A3}=1\OR%
+\jeroen@get{A4}=1\OR%
+\jeroen@get{A5}=1\OR%
+\jeroen@get{A6}=1\OR%
+\jeroen@get{A7}=1\OR%
+\jeroen@get{A8}=1\OR%
+\jeroen@get{A9}=1\AND%
+\theantworta=#1}{%
+\color[rgb]{1,0,0}\XBox\color[rgb]{0,0,0}\setcounter{acheck}{1}}{}%
+\ifthenelse{%
+\jeroen@get{A1}=2\OR%
+\jeroen@get{A2}=2\OR%
+\jeroen@get{A3}=2\OR%
+\jeroen@get{A4}=2\OR%
+\jeroen@get{A5}=2\OR%
+\jeroen@get{A6}=2\OR%
+\jeroen@get{A7}=2\OR%
+\jeroen@get{A8}=2\OR%
+\jeroen@get{A9}=2\AND%
+\theantwortb=#1}{%
+\color[rgb]{1,0,0}\XBox\color[rgb]{0,0,0}\setcounter{bcheck}{1}}{}%
+\ifthenelse{%
+\jeroen@get{A1}=3\OR%
+\jeroen@get{A2}=3\OR%
+\jeroen@get{A3}=3\OR%
+\jeroen@get{A4}=3\OR%
+\jeroen@get{A5}=3\OR%
+\jeroen@get{A6}=3\OR%
+\jeroen@get{A7}=3\OR%
+\jeroen@get{A8}=3\OR%
+\jeroen@get{A9}=3\AND%
+\theantwortc=#1}{%
+\color[rgb]{1,0,0}\XBox\color[rgb]{0,0,0}\setcounter{ccheck}{1}}{}%
+\ifthenelse{%
+\jeroen@get{A1}=4\OR%
+\jeroen@get{A2}=4\OR%
+\jeroen@get{A3}=4\OR%
+\jeroen@get{A4}=4\OR%
+\jeroen@get{A5}=4\OR%
+\jeroen@get{A6}=4\OR%
+\jeroen@get{A7}=4\OR%
+\jeroen@get{A8}=4\OR%
+\jeroen@get{A9}=4\AND%
+\theantwortd=#1}{%
+\color[rgb]{1,0,0}\XBox\color[rgb]{0,0,0}\setcounter{dcheck}{1}}{}%
+\ifthenelse{%
+\jeroen@get{A1}=5\OR%
+\jeroen@get{A2}=5\OR%
+\jeroen@get{A3}=5\OR%
+\jeroen@get{A4}=5\OR%
+\jeroen@get{A5}=5\OR%
+\jeroen@get{A6}=5\OR%
+\jeroen@get{A7}=5\OR%
+\jeroen@get{A8}=5\OR%
+\jeroen@get{A9}=5\AND%
+\theantworte=#1}{%
+\color[rgb]{1,0,0}\XBox\color[rgb]{0,0,0}\setcounter{echeck}{1}}{}%
+\ifthenelse{%
+\jeroen@get{A1}=6\OR%
+\jeroen@get{A2}=6\OR%
+\jeroen@get{A3}=6\OR%
+\jeroen@get{A4}=6\OR%
+\jeroen@get{A5}=6\OR%
+\jeroen@get{A6}=6\OR%
+\jeroen@get{A7}=6\OR%
+\jeroen@get{A8}=6\OR%
+\jeroen@get{A9}=6\AND%
+\theantwortf=#1}{%
+\color[rgb]{1,0,0}\XBox\color[rgb]{0,0,0}\setcounter{fcheck}{1}}{}%
+\ifthenelse{%
+\jeroen@get{A1}=7\OR%
+\jeroen@get{A2}=7\OR%
+\jeroen@get{A3}=7\OR%
+\jeroen@get{A4}=7\OR%
+\jeroen@get{A5}=7\OR%
+\jeroen@get{A6}=7\OR%
+\jeroen@get{A7}=7\OR%
+\jeroen@get{A8}=7\OR%
+\jeroen@get{A9}=7\AND%
+\theantwortg=#1}{%
+\color[rgb]{1,0,0}\XBox\color[rgb]{0,0,0}\setcounter{gcheck}{1}}{}%
+\ifthenelse{%
+\jeroen@get{A1}=8\OR%
+\jeroen@get{A2}=8\OR%
+\jeroen@get{A3}=8\OR%
+\jeroen@get{A4}=8\OR%
+\jeroen@get{A5}=8\OR%
+\jeroen@get{A6}=8\OR%
+\jeroen@get{A7}=8\OR%
+\jeroen@get{A8}=8\OR%
+\jeroen@get{A9}=8\AND%
+\theantworth=#1}{%
+\color[rgb]{1,0,0}\XBox\color[rgb]{0,0,0}\setcounter{hcheck}{1}}{}%
+\ifthenelse{%
+\jeroen@get{A1}=9\OR%
+\jeroen@get{A2}=9\OR%
+\jeroen@get{A3}=9\OR%
+\jeroen@get{A4}=9\OR%
+\jeroen@get{A5}=9\OR%
+\jeroen@get{A6}=9\OR%
+\jeroen@get{A7}=9\OR%
+\jeroen@get{A8}=9\OR%
+\jeroen@get{A9}=9\AND%
+\theantworti=#1}{%
+\color[rgb]{1,0,0}\XBox\color[rgb]{0,0,0}\setcounter{icheck}{1}}{}%
+}{\Square}&%
+%%%
%%%% Spalte 'falsch' (letzte Zeile)
-%
-\ifnum\theAntworten=1%
+%%%
+\ifthenelse{\theAntworten=1}{%
\ifthenelse{\theantworta=#1 \AND \value{acheck}=0 \AND \value{counter}<#1}{\color[rgb]{1,0,0}\XBox\color[rgb]{0,0,0}}{\addtocounter{counter}{1}%
\ifthenelse{\theantwortb=#1 \AND \value{bcheck}=0 \AND \value{counter}<#1}{\color[rgb]{1,0,0}\XBox\color[rgb]{0,0,0}}{\addtocounter{counter}{1}%
\ifthenelse{\theantwortc=#1 \AND \value{ccheck}=0 \AND \value{counter}<#1}{\color[rgb]{1,0,0}\XBox\color[rgb]{0,0,0}}{\addtocounter{counter}{1}%
@@ -979,8 +1215,7 @@ Complete the following sentence by putting a cross next to one of the given poss
\ifthenelse{\theantworth=#1 \AND \value{hcheck}=0 \AND \value{counter}<#1}{\color[rgb]{1,0,0}\XBox\color[rgb]{0,0,0}}{\addtocounter{counter}{1}%
\ifthenelse{\theantworti=#1 \AND \value{icheck}=0 \AND \value{counter}<#1}{\color[rgb]{1,0,0}\XBox\color[rgb]{0,0,0}}{\addtocounter{counter}{1}%
}}}}}}}}}%
-\else%
-\Square\fi\\ \hline
+}{\Square}\\ \hline
\end{tabu}\leer
\egroup}
@@ -1010,41 +1245,277 @@ Complete the following sentence by putting a cross next to one of the given poss
\ifthenelse{\numexpr#1 > 7}{\pgfmathrandomitem\z{group}\setcounter{antworth}{\z}\prunelist{group}}{}
\ifthenelse{\numexpr#1 > 8}{\pgfmathrandomitem\z{group}\setcounter{antworti}{\z}\prunelist{group}}{}
-%\begin{minipage}{0.85\linewidth}
+
\begin{tabu}{|A|c|c|}%
\hline%
\small \textsc{#2} & \small\textsc{True} & \small \textsc{False} \\ \hline
\forloop{ct}{1}{\value{ct}<\numexpr#1}%
-{\ifthenelse{\value{ct}=\theantworta}{\jeroen@get{L1}}{\ifthenelse{\value{ct}=\theantwortb}{\jeroen@get{L2}}{\ifthenelse{\value{ct}=\theantwortc}{\jeroen@get{L3}}{\ifthenelse{\value{ct}=\theantwortd}{\jeroen@get{L4}}{\ifthenelse{\value{ct}=\theantworte}{\jeroen@get{L5}}{\ifthenelse{\value{ct}=\theantwortf}{\jeroen@get{L6}}{\ifthenelse{\value{ct}=\theantwortg}{\jeroen@get{L7}}{\ifthenelse{\value{ct}=\theantworth}{\jeroen@get{L8}}{{\jeroen@get{L9}}}}}}}}}}&%
-%
+{\ifthenelse{\value{ct}=\theantworta}{\jeroen@get{L1}}{%
+\ifthenelse{\value{ct}=\theantwortb}{\jeroen@get{L2}}{%
+\ifthenelse{\value{ct}=\theantwortc}{\jeroen@get{L3}}{%
+\ifthenelse{\value{ct}=\theantwortd}{\jeroen@get{L4}}{%
+\ifthenelse{\value{ct}=\theantworte}{\jeroen@get{L5}}{%
+\ifthenelse{\value{ct}=\theantwortf}{\jeroen@get{L6}}{%
+\ifthenelse{\value{ct}=\theantwortg}{\jeroen@get{L7}}{%
+\ifthenelse{\value{ct}=\theantworth}{\jeroen@get{L8}}{{%
+\jeroen@get{L9}}}}}}}}}}&%
+%%%
%%% Spalte 'Richtig' %%%%
-%
-\ifnum\theAntworten=1%
-\ifthenelse{\jeroen@get{A1}=1 \OR \jeroen@get{A2}=1 \OR \jeroen@get{A3}=1\OR \jeroen@get{A4}=1 \OR \jeroen@get{A5}=1 \OR \jeroen@get{A6}=1 \OR \jeroen@get{A7}=1 \OR \jeroen@get{A8}=1 \OR \jeroen@get{A9}=1 \AND \value{ct}=\theantworta}{\color[rgb]{1,0,0}\XBox\color[rgb]{0,0,0}\setcounter{acheck}{1}}{}\ifthenelse{\jeroen@get{A1}=2 \OR \jeroen@get{A2}=2 \OR \jeroen@get{A3}=2\OR \jeroen@get{A4}=2\OR \jeroen@get{A5}=2\OR \jeroen@get{A6}=2 \OR \jeroen@get{A7}=2 \OR \jeroen@get{A8}=2 \OR \jeroen@get{A9}=2 \AND \value{ct}=\theantwortb}{\color[rgb]{1,0,0}\XBox\color[rgb]{0,0,0}\setcounter{bcheck}{1}}{}\ifthenelse{\jeroen@get{A1}=3 \OR \jeroen@get{A2}=3 \OR \jeroen@get{A3}=3\OR \jeroen@get{A4}=3\OR \jeroen@get{A5}=3 \OR \jeroen@get{A6}=3 \OR \jeroen@get{A7}=3 \OR \jeroen@get{A8}=3 \OR \jeroen@get{A9}=3 \AND \value{ct}=\theantwortc}{\color[rgb]{1,0,0}\XBox\color[rgb]{0,0,0}\setcounter{ccheck}{1}}{}\ifthenelse{\jeroen@get{A1}=4 \OR \jeroen@get{A2}=4 \OR \jeroen@get{A3}=4\OR \jeroen@get{A4}=4\OR \jeroen@get{A5}=4\OR \jeroen@get{A6}=4 \OR \jeroen@get{A7}=4 \OR \jeroen@get{A8}=4 \OR \jeroen@get{A9}=4 \AND \value{ct}=\theantwortd}{\color[rgb]{1,0,0}\XBox\color[rgb]{0,0,0}\setcounter{dcheck}{1}}{}\ifthenelse{\jeroen@get{A1}=5 \OR \jeroen@get{A2}=5 \OR \jeroen@get{A3}=5\OR \jeroen@get{A4}=5\OR \jeroen@get{A5}=5\OR \jeroen@get{A6}=5 \OR \jeroen@get{A7}=5 \OR \jeroen@get{A8}=5 \OR \jeroen@get{A9}=5 \AND \value{ct}=\theantworte}{\color[rgb]{1,0,0}\XBox\color[rgb]{0,0,0}\setcounter{echeck}{1}}{}\ifthenelse{\jeroen@get{A1}=6 \OR \jeroen@get{A2}=6 \OR \jeroen@get{A3}=6\OR \jeroen@get{A4}=6\OR \jeroen@get{A5}=6\OR \jeroen@get{A6}=6 \OR \jeroen@get{A7}=6 \OR \jeroen@get{A8}=6 \OR \jeroen@get{A9}=6 \AND \value{ct}=\theantwortf}{\color[rgb]{1,0,0}\XBox\color[rgb]{0,0,0}\setcounter{fcheck}{1}}{}\ifthenelse{\jeroen@get{A1}=7 \OR \jeroen@get{A2}=7 \OR \jeroen@get{A3}=7\OR \jeroen@get{A4}=7\OR \jeroen@get{A5}=7\OR \jeroen@get{A6}=7 \OR \jeroen@get{A7}=7 \OR \jeroen@get{A8}=7 \OR \jeroen@get{A9}=7 \AND \value{ct}=\theantwortg}{\color[rgb]{1,0,0}\XBox\color[rgb]{0,0,0}\setcounter{gcheck}{1}}{}\ifthenelse{\jeroen@get{A1}=8 \OR \jeroen@get{A2}=8 \OR \jeroen@get{A3}=8\OR \jeroen@get{A4}=8\OR \jeroen@get{A5}=8\OR \jeroen@get{A6}=8 \OR \jeroen@get{A7}=8 \OR \jeroen@get{A8}=8 \OR \jeroen@get{A9}=8 \AND \value{ct}=\theantworth}{\color[rgb]{1,0,0}\XBox\color[rgb]{0,0,0}\setcounter{hcheck}{1}}{}\ifthenelse{\jeroen@get{A1}=9 \OR \jeroen@get{A2}=9 \OR \jeroen@get{A3}=9\OR \jeroen@get{A4}=9\OR \jeroen@get{A5}=9\OR \jeroen@get{A6}=9 \OR \jeroen@get{A7}=9 \OR \jeroen@get{A8}=9 \OR \jeroen@get{A9}=9 \AND \value{ct}=\theantworti}{\color[rgb]{1,0,0}\XBox\color[rgb]{0,0,0}\setcounter{icheck}{1}}{}%
-\else%
-\Square\fi&%
-%
+%%%
+\ifthenelse{\theAntworten=1}{%
+\ifthenelse{%
+\jeroen@get{A1}=1\OR%
+\jeroen@get{A2}=1\OR%
+\jeroen@get{A3}=1\OR%
+\jeroen@get{A4}=1\OR%
+\jeroen@get{A5}=1\OR%
+\jeroen@get{A6}=1\OR%
+\jeroen@get{A7}=1\OR%
+\jeroen@get{A8}=1\OR%
+\jeroen@get{A9}=1\AND%
+\value{ct}=\theantworta}{%
+\color[rgb]{1,0,0}\XBox\color[rgb]{0,0,0}\setcounter{acheck}{1}}{}\ifthenelse{%
+\jeroen@get{A1}=2\OR%
+\jeroen@get{A2}=2\OR%
+\jeroen@get{A3}=2\OR%
+\jeroen@get{A4}=2\OR%
+\jeroen@get{A5}=2\OR%
+\jeroen@get{A6}=2\OR%
+\jeroen@get{A7}=2\OR%
+\jeroen@get{A8}=2\OR%
+\jeroen@get{A9}=2\AND%
+\value{ct}=\theantwortb}{%
+\color[rgb]{1,0,0}\XBox\color[rgb]{0,0,0}\setcounter{bcheck}{1}}{}\ifthenelse{%
+\jeroen@get{A1}=3\OR%
+\jeroen@get{A2}=3\OR%
+\jeroen@get{A3}=3\OR%
+\jeroen@get{A4}=3\OR%
+\jeroen@get{A5}=3\OR%
+\jeroen@get{A6}=3\OR%
+\jeroen@get{A7}=3\OR%
+\jeroen@get{A8}=3\OR%
+\jeroen@get{A9}=3\AND%
+\value{ct}=\theantwortc}{%
+\color[rgb]{1,0,0}\XBox\color[rgb]{0,0,0}\setcounter{ccheck}{1}}{}\ifthenelse{%
+\jeroen@get{A1}=4\OR%
+\jeroen@get{A2}=4\OR%
+\jeroen@get{A3}=4\OR%
+\jeroen@get{A4}=4\OR%
+\jeroen@get{A5}=4\OR%
+\jeroen@get{A6}=4\OR%
+\jeroen@get{A7}=4\OR%
+\jeroen@get{A8}=4\OR%
+\jeroen@get{A9}=4\AND%
+\value{ct}=\theantwortd}{%
+\color[rgb]{1,0,0}\XBox\color[rgb]{0,0,0}\setcounter{dcheck}{1}}{}\ifthenelse{%
+\jeroen@get{A1}=5\OR%
+\jeroen@get{A2}=5\OR%
+\jeroen@get{A3}=5\OR%
+\jeroen@get{A4}=5\OR%
+\jeroen@get{A5}=5\OR%
+\jeroen@get{A6}=5\OR%
+\jeroen@get{A7}=5\OR%
+\jeroen@get{A8}=5\OR%
+\jeroen@get{A9}=5\AND%
+\value{ct}=\theantworte}{%
+\color[rgb]{1,0,0}\XBox\color[rgb]{0,0,0}\setcounter{echeck}{1}}{}\ifthenelse{%
+\jeroen@get{A1}=6\OR%
+\jeroen@get{A2}=6\OR%
+\jeroen@get{A3}=6\OR%
+\jeroen@get{A4}=6\OR%
+\jeroen@get{A5}=6\OR%
+\jeroen@get{A6}=6\OR%
+\jeroen@get{A7}=6\OR%
+\jeroen@get{A8}=6\OR%
+\jeroen@get{A9}=6\AND%
+\value{ct}=\theantwortf}{%
+\color[rgb]{1,0,0}\XBox\color[rgb]{0,0,0}\setcounter{fcheck}{1}}{}\ifthenelse{%
+\jeroen@get{A1}=7\OR%
+\jeroen@get{A2}=7\OR%
+\jeroen@get{A3}=7\OR%
+\jeroen@get{A4}=7\OR%
+\jeroen@get{A5}=7\OR%
+\jeroen@get{A6}=7\OR%
+\jeroen@get{A7}=7\OR%
+\jeroen@get{A8}=7\OR%
+\jeroen@get{A9}=7\AND%
+\value{ct}=\theantwortg}{%
+\color[rgb]{1,0,0}\XBox\color[rgb]{0,0,0}\setcounter{gcheck}{1}}{}\ifthenelse{%
+\jeroen@get{A1}=8\OR%
+\jeroen@get{A2}=8\OR%
+\jeroen@get{A3}=8\OR%
+\jeroen@get{A4}=8\OR%
+\jeroen@get{A5}=8\OR%
+\jeroen@get{A6}=8\OR%
+\jeroen@get{A7}=8\OR%
+\jeroen@get{A8}=8\OR%
+\jeroen@get{A9}=8\AND%
+\value{ct}=\theantworth}{%
+\color[rgb]{1,0,0}\XBox\color[rgb]{0,0,0}\setcounter{hcheck}{1}}{}\ifthenelse{%
+\jeroen@get{A1}=9\OR%
+\jeroen@get{A2}=9\OR%
+\jeroen@get{A3}=9\OR%
+\jeroen@get{A4}=9\OR%
+\jeroen@get{A5}=9\OR%
+\jeroen@get{A6}=9\OR%
+\jeroen@get{A7}=9\OR%
+\jeroen@get{A8}=9\OR%
+\jeroen@get{A9}=9\AND%
+\value{ct}=\theantworti}{\color[rgb]{1,0,0}\XBox\color[rgb]{0,0,0}\setcounter{icheck}{1}}{}%
+}{\Square}&%
+%%%%
%%%% Spalte 'falsch'
-%
-\ifnum\theAntworten=1%
-\ifthenelse{\value{acheck}=0 \AND \value{ct}=\theantworta}{\color[rgb]{1,0,0}\XBox\color[rgb]{0,0,0}}{}\ifthenelse{\value{bcheck}=0 \AND \value{ct}=\theantwortb}{\color[rgb]{1,0,0}\XBox\color[rgb]{0,0,0}}{}\ifthenelse{\value{ccheck}=0 \AND \value{ct}=\theantwortc}{\color[rgb]{1,0,0}\XBox\color[rgb]{0,0,0}}{}\ifthenelse{\value{dcheck}=0 \AND \value{ct}=\theantwortd}{\color[rgb]{1,0,0}\XBox\color[rgb]{0,0,0}}{}\ifthenelse{\value{echeck}=0 \AND \value{ct}=\theantworte}{\color[rgb]{1,0,0}\XBox\color[rgb]{0,0,0}}{}\ifthenelse{\value{fcheck}=0 \AND \value{ct}=\theantwortf}{\color[rgb]{1,0,0}\XBox\color[rgb]{0,0,0}}{}\ifthenelse{\value{gcheck}=0 \AND \value{ct}=\theantwortg}{\color[rgb]{1,0,0}\XBox\color[rgb]{0,0,0}}{}\ifthenelse{\value{hcheck}=0 \AND \value{ct}=\theantworth}{\color[rgb]{1,0,0}\XBox\color[rgb]{0,0,0}}{}\ifthenelse{\value{icheck}=0 \AND \value{ct}=\theantworti}{\color[rgb]{1,0,0}\XBox\color[rgb]{0,0,0}}{}%
-\else%
-\Square\fi\\ \hline}%
-%
+%%%%
+\ifthenelse{\theAntworten=1}{%
+\ifthenelse{\value{acheck}=0\AND%
+\value{ct}=\theantworta}{\color[rgb]{1,0,0}\XBox\color[rgb]{0,0,0}}{}%
+\ifthenelse{%
+\value{bcheck}=0 \AND \value{ct}=\theantwortb}{\color[rgb]{1,0,0}\XBox\color[rgb]{0,0,0}}{}%
+\ifthenelse{%
+\value{ccheck}=0 \AND \value{ct}=\theantwortc}{\color[rgb]{1,0,0}\XBox\color[rgb]{0,0,0}}{}%
+\ifthenelse{%
+\value{dcheck}=0 \AND \value{ct}=\theantwortd}{\color[rgb]{1,0,0}\XBox\color[rgb]{0,0,0}}{}%
+\ifthenelse{%
+\value{echeck}=0 \AND \value{ct}=\theantworte}{\color[rgb]{1,0,0}\XBox\color[rgb]{0,0,0}}{}%
+\ifthenelse{%
+\value{fcheck}=0 \AND \value{ct}=\theantwortf}{\color[rgb]{1,0,0}\XBox\color[rgb]{0,0,0}}{}%
+\ifthenelse{%
+\value{gcheck}=0 \AND \value{ct}=\theantwortg}{\color[rgb]{1,0,0}\XBox\color[rgb]{0,0,0}}{}%
+\ifthenelse{%
+\value{hcheck}=0 \AND \value{ct}=\theantworth}{\color[rgb]{1,0,0}\XBox\color[rgb]{0,0,0}}{}%
+\ifthenelse{%
+\value{icheck}=0 \AND \value{ct}=\theantworti}{\color[rgb]{1,0,0}\XBox\color[rgb]{0,0,0}}{}%
+}{\Square}\\ \hline}%
+
+%%%%
%%%%% Spalte 'richtig' (letzte Zeile)
-\ifthenelse{\theantworta=#1}{\jeroen@get{L1}}{\ifthenelse{\theantwortb=#1}{\jeroen@get{L2}}{\ifthenelse{\theantwortc=#1}{\jeroen@get{L3}}{\ifthenelse{\theantwortd=#1}{\jeroen@get{L4}}{\ifthenelse{\theantworte=#1}{\jeroen@get{L5}}{\ifthenelse{\theantwortf=#1}{\jeroen@get{L6}}{\ifthenelse{\theantwortg=#1}{\jeroen@get{L7}}{\ifthenelse{\theantworth=#1}{\jeroen@get{L8}}{{\jeroen@get{L9}}}}}}}}}} &%
-%
-%
-%
-\ifnum\theAntworten=1%
-\ifthenelse{\jeroen@get{A1}=1 \OR \jeroen@get{A2}=1 \OR \jeroen@get{A3}=1\OR \jeroen@get{A4}=1\OR \jeroen@get{A5}=1\OR \jeroen@get{A6}=1 \OR \jeroen@get{A7}=1 \OR \jeroen@get{A8}=1 \OR \jeroen@get{A9}=1 \AND \theantworta=#1}{\color[rgb]{1,0,0}\XBox\color[rgb]{0,0,0}\setcounter{acheck}{1}}{}\ifthenelse{\jeroen@get{A1}=2 \OR \jeroen@get{A2}=2 \OR \jeroen@get{A3}=2\OR \jeroen@get{A4}=2\OR \jeroen@get{A5}=2\OR \jeroen@get{A6}=2 \OR \jeroen@get{A7}=2 \OR \jeroen@get{A8}=2 \OR \jeroen@get{A9}=2 \AND \theantwortb=#1}{\color[rgb]{1,0,0}\XBox\color[rgb]{0,0,0}\setcounter{bcheck}{1}}{}\ifthenelse{\jeroen@get{A1}=3 \OR \jeroen@get{A2}=3 \OR \jeroen@get{A3}=3\OR \jeroen@get{A4}=3\OR \jeroen@get{A5}=3\OR \jeroen@get{A6}=3 \OR \jeroen@get{A7}=3 \OR \jeroen@get{A8}=3 \OR \jeroen@get{A9}=3 \AND \theantwortc=#1}{\color[rgb]{1,0,0}\XBox\color[rgb]{0,0,0}\setcounter{ccheck}{1}}{}\ifthenelse{\jeroen@get{A1}=4 \OR \jeroen@get{A2}=4 \OR \jeroen@get{A3}=4\OR \jeroen@get{A4}=4\OR \jeroen@get{A5}=4\OR \jeroen@get{A6}=4 \OR \jeroen@get{A7}=4 \OR \jeroen@get{A8}=4 \OR \jeroen@get{A9}=4 \AND \theantwortd=#1}{\color[rgb]{1,0,0}\XBox\color[rgb]{0,0,0}\setcounter{dcheck}{1}}{}\ifthenelse{\jeroen@get{A1}=5 \OR \jeroen@get{A2}=5 \OR \jeroen@get{A3}=5\OR \jeroen@get{A4}=5\OR \jeroen@get{A5}=5\OR \jeroen@get{A6}=5 \OR \jeroen@get{A7}=5 \OR \jeroen@get{A8}=5 \OR \jeroen@get{A9}=5 \AND \theantworte=#1}{\color[rgb]{1,0,0}\XBox\color[rgb]{0,0,0}\setcounter{echeck}{1}}{}\ifthenelse{\jeroen@get{A1}=6 \OR \jeroen@get{A2}=6 \OR \jeroen@get{A3}=6\OR \jeroen@get{A4}=6\OR \jeroen@get{A5}=6\OR \jeroen@get{A6}=6 \OR \jeroen@get{A7}=6 \OR \jeroen@get{A8}=6 \OR \jeroen@get{A9}=6 \AND \theantwortf=#1}{\color[rgb]{1,0,0}\XBox\color[rgb]{0,0,0}\setcounter{fcheck}{1}}{}\ifthenelse{\jeroen@get{A1}=7 \OR \jeroen@get{A2}=7 \OR \jeroen@get{A3}=7\OR \jeroen@get{A4}=7\OR \jeroen@get{A5}=7\OR \jeroen@get{A6}=7 \OR \jeroen@get{A7}=7 \OR \jeroen@get{A8}=7 \OR \jeroen@get{A9}=7 \AND \theantwortg=#1}{\color[rgb]{1,0,0}\XBox\color[rgb]{0,0,0}\setcounter{gcheck}{1}}{}\ifthenelse{\jeroen@get{A1}=8 \OR \jeroen@get{A2}=8 \OR \jeroen@get{A3}=8\OR \jeroen@get{A4}=8\OR \jeroen@get{A5}=8\OR \jeroen@get{A6}=8 \OR \jeroen@get{A7}=8 \OR \jeroen@get{A8}=8 \OR \jeroen@get{A9}=8 \AND \theantworth=#1}{\color[rgb]{1,0,0}\XBox\color[rgb]{0,0,0}\setcounter{hcheck}{1}}{}\ifthenelse{\jeroen@get{A1}=9 \OR \jeroen@get{A2}=9 \OR \jeroen@get{A3}=9\OR \jeroen@get{A4}=9\OR \jeroen@get{A5}=9\OR \jeroen@get{A6}=9 \OR \jeroen@get{A7}=9 \OR \jeroen@get{A8}=9 \OR \jeroen@get{A9}=9 \AND \theantworti=#1}{\color[rgb]{1,0,0}\XBox\color[rgb]{0,0,0}\setcounter{icheck}{1}}{}%
-\else%
-\Square\fi%
-&%
-%
+%%%%
+\ifthenelse{\theantworta=#1}{\jeroen@get{L1}}{%
+\ifthenelse{\theantwortb=#1}{\jeroen@get{L2}}{%
+\ifthenelse{\theantwortc=#1}{\jeroen@get{L3}}{%
+\ifthenelse{\theantwortd=#1}{\jeroen@get{L4}}{%
+\ifthenelse{\theantworte=#1}{\jeroen@get{L5}}{%
+\ifthenelse{\theantwortf=#1}{\jeroen@get{L6}}{%
+\ifthenelse{\theantwortg=#1}{\jeroen@get{L7}}{%
+\ifthenelse{\theantworth=#1}{\jeroen@get{L8}}{{%
+\jeroen@get{L9}}}}}}}}}}&%
+%%
+%%
+%%
+\ifthenelse{\theAntworten=1}{%
+\ifthenelse{%
+\jeroen@get{A1}=1\OR%
+\jeroen@get{A2}=1\OR%
+\jeroen@get{A3}=1\OR%
+\jeroen@get{A4}=1\OR%
+\jeroen@get{A5}=1\OR%
+\jeroen@get{A6}=1\OR%
+\jeroen@get{A7}=1\OR%
+\jeroen@get{A8}=1\OR%
+\jeroen@get{A9}=1\AND%
+\theantworta=#1}{%
+\color[rgb]{1,0,0}\XBox\color[rgb]{0,0,0}\setcounter{acheck}{1}}{}%
+\ifthenelse{%
+\jeroen@get{A1}=2\OR%
+\jeroen@get{A2}=2\OR%
+\jeroen@get{A3}=2\OR%
+\jeroen@get{A4}=2\OR%
+\jeroen@get{A5}=2\OR%
+\jeroen@get{A6}=2\OR%
+\jeroen@get{A7}=2\OR%
+\jeroen@get{A8}=2\OR%
+\jeroen@get{A9}=2\AND%
+\theantwortb=#1}{%
+\color[rgb]{1,0,0}\XBox\color[rgb]{0,0,0}\setcounter{bcheck}{1}}{}%
+\ifthenelse{%
+\jeroen@get{A1}=3\OR%
+\jeroen@get{A2}=3\OR%
+\jeroen@get{A3}=3\OR%
+\jeroen@get{A4}=3\OR%
+\jeroen@get{A5}=3\OR%
+\jeroen@get{A6}=3\OR%
+\jeroen@get{A7}=3\OR%
+\jeroen@get{A8}=3\OR%
+\jeroen@get{A9}=3\AND%
+\theantwortc=#1}{%
+\color[rgb]{1,0,0}\XBox\color[rgb]{0,0,0}\setcounter{ccheck}{1}}{}%
+\ifthenelse{%
+\jeroen@get{A1}=4\OR%
+\jeroen@get{A2}=4\OR%
+\jeroen@get{A3}=4\OR%
+\jeroen@get{A4}=4\OR%
+\jeroen@get{A5}=4\OR%
+\jeroen@get{A6}=4\OR%
+\jeroen@get{A7}=4\OR%
+\jeroen@get{A8}=4\OR%
+\jeroen@get{A9}=4\AND%
+\theantwortd=#1}{%
+\color[rgb]{1,0,0}\XBox\color[rgb]{0,0,0}\setcounter{dcheck}{1}}{}%
+\ifthenelse{%
+\jeroen@get{A1}=5\OR%
+\jeroen@get{A2}=5\OR%
+\jeroen@get{A3}=5\OR%
+\jeroen@get{A4}=5\OR%
+\jeroen@get{A5}=5\OR%
+\jeroen@get{A6}=5\OR%
+\jeroen@get{A7}=5\OR%
+\jeroen@get{A8}=5\OR%
+\jeroen@get{A9}=5\AND%
+\theantworte=#1}{%
+\color[rgb]{1,0,0}\XBox\color[rgb]{0,0,0}\setcounter{echeck}{1}}{}%
+\ifthenelse{%
+\jeroen@get{A1}=6\OR%
+\jeroen@get{A2}=6\OR%
+\jeroen@get{A3}=6\OR%
+\jeroen@get{A4}=6\OR%
+\jeroen@get{A5}=6\OR%
+\jeroen@get{A6}=6\OR%
+\jeroen@get{A7}=6\OR%
+\jeroen@get{A8}=6\OR%
+\jeroen@get{A9}=6\AND%
+\theantwortf=#1}{%
+\color[rgb]{1,0,0}\XBox\color[rgb]{0,0,0}\setcounter{fcheck}{1}}{}%
+\ifthenelse{%
+\jeroen@get{A1}=7\OR%
+\jeroen@get{A2}=7\OR%
+\jeroen@get{A3}=7\OR%
+\jeroen@get{A4}=7\OR%
+\jeroen@get{A5}=7\OR%
+\jeroen@get{A6}=7\OR%
+\jeroen@get{A7}=7\OR%
+\jeroen@get{A8}=7\OR%
+\jeroen@get{A9}=7\AND%
+\theantwortg=#1}{%
+\color[rgb]{1,0,0}\XBox\color[rgb]{0,0,0}\setcounter{gcheck}{1}}{}%
+\ifthenelse{%
+\jeroen@get{A1}=8\OR%
+\jeroen@get{A2}=8\OR%
+\jeroen@get{A3}=8\OR%
+\jeroen@get{A4}=8\OR%
+\jeroen@get{A5}=8\OR%
+\jeroen@get{A6}=8\OR%
+\jeroen@get{A7}=8\OR%
+\jeroen@get{A8}=8\OR%
+\jeroen@get{A9}=8\AND%
+\theantworth=#1}{%
+\color[rgb]{1,0,0}\XBox\color[rgb]{0,0,0}\setcounter{hcheck}{1}}{}%
+\ifthenelse{%
+\jeroen@get{A1}=9\OR%
+\jeroen@get{A2}=9\OR%
+\jeroen@get{A3}=9\OR%
+\jeroen@get{A4}=9\OR%
+\jeroen@get{A5}=9\OR%
+\jeroen@get{A6}=9\OR%
+\jeroen@get{A7}=9\OR%
+\jeroen@get{A8}=9\OR%
+\jeroen@get{A9}=9\AND%
+\theantworti=#1}{%
+\color[rgb]{1,0,0}\XBox\color[rgb]{0,0,0}\setcounter{icheck}{1}}{}%
+}{\Square}&%
+%%%
%%%% Spalte 'falsch' (letzte Zeile)
-%
-\ifnum\theAntworten=1%
+%%%
+\ifthenelse{\theAntworten=1}{%
\ifthenelse{\theantworta=#1 \AND \value{acheck}=0 \AND \value{counter}<#1}{\color[rgb]{1,0,0}\XBox\color[rgb]{0,0,0}}{\addtocounter{counter}{1}%
\ifthenelse{\theantwortb=#1 \AND \value{bcheck}=0 \AND \value{counter}<#1}{\color[rgb]{1,0,0}\XBox\color[rgb]{0,0,0}}{\addtocounter{counter}{1}%
\ifthenelse{\theantwortc=#1 \AND \value{ccheck}=0 \AND \value{counter}<#1}{\color[rgb]{1,0,0}\XBox\color[rgb]{0,0,0}}{\addtocounter{counter}{1}%
@@ -1055,8 +1526,7 @@ Complete the following sentence by putting a cross next to one of the given poss
\ifthenelse{\theantworth=#1 \AND \value{hcheck}=0 \AND \value{counter}<#1}{\color[rgb]{1,0,0}\XBox\color[rgb]{0,0,0}}{\addtocounter{counter}{1}%
\ifthenelse{\theantworti=#1 \AND \value{icheck}=0 \AND \value{counter}<#1}{\color[rgb]{1,0,0}\XBox\color[rgb]{0,0,0}}{\addtocounter{counter}{1}%
}}}}}}}}}%
-\else%
-\Square\fi\\ \hline
+}{\Square}\\ \hline
\end{tabu}\leer
\egroup}
diff --git a/macros/latex/contrib/srdp-mathematik/srdp-mathematik.tex b/macros/latex/contrib/srdp-mathematik/srdp-mathematik.tex
index 1c7d82e696..ad225837ed 100644
--- a/macros/latex/contrib/srdp-mathematik/srdp-mathematik.tex
+++ b/macros/latex/contrib/srdp-mathematik/srdp-mathematik.tex
@@ -55,7 +55,7 @@ hidelinks
\vfill
-\Huge The \textit{srdp-mathematik} package v1.10.2\\[1cm]
+\Huge The \textit{srdp-mathematik} package v1.10.3\\[1cm]
Documentation \\ [1cm]
diff --git a/macros/latex/required/babel/base/README.md b/macros/latex/required/babel/base/README.md
index 173be3799d..c431f70b1e 100644
--- a/macros/latex/required/babel/base/README.md
+++ b/macros/latex/required/babel/base/README.md
@@ -1,6 +1,4 @@
-## Babel 3.81
-
-**Development**
+## Babel 3.82
This package manages culturally-determined typographical (and other)
rules, and hyphenation patterns for a wide range of languages. Many
@@ -10,9 +8,9 @@ is a set of ini files for about 250 languages.
The latest stable version is available on <https://ctan.org/pkg/babel>.
-Changes in version 3.81 are described in:
+Changes in version 3.82 are described in:
-https://latex3.github.io/babel/news/whats-new-in-babel-3.81.html
+https://latex3.github.io/babel/news/whats-new-in-babel-3.82.html
Apart from the manual, you can find information on some aspects of babel at:
@@ -48,14 +46,17 @@ respective authors.
### Summary of latest changes
```
-3.81 2022-10-04
- * Tibetan line breaking and justification (lines padded with
- trailing tshegs).
- * New option 'letters' for 'onchar'.
- * Conceal 'fontspec' warnings about unknown languages and
- scripts with \babelfont.
- * More updates to the CLDR 41: Burmese, Dutch, Kwasio, Malay,
- Marathi, Mazanderani, Nepali, Norwegian, Norwegian Nynorsk.
+3.82 2022-10-23
+ * Predefined transforms can be activated after the first
+ \babelprovide (lua).
+ * Tibetan for XeTeX.
+ * More updates to the CLDR 41: Albanian, Kinyarwanda, Maltese,
+ Odia, Ossetic, Pashto, Polish, Portuguese, Punjabi, Romanian,
+ Romansh, Russian, Sakha, Sinhala, Slovak, Slovenian, Somali.
+ * Fixes:
+ - \MakeXXXcase: a (hopefully) better hack for #189 (see
+ also #193).
+ - Thai (with xetex): #182 wasn’t quite fixed.
```
### Previous changes
diff --git a/macros/latex/required/babel/base/babel.dtx b/macros/latex/required/babel/base/babel.dtx
index 3d8eddc505..44ed19a8f2 100644
--- a/macros/latex/required/babel/base/babel.dtx
+++ b/macros/latex/required/babel/base/babel.dtx
@@ -32,7 +32,7 @@
%
% \iffalse
%<*filedriver>
-\ProvidesFile{babel.dtx}[2022/10/04 v3.81 The Babel package]
+\ProvidesFile{babel.dtx}[2022/10/23 v3.82 The Babel package]
\documentclass{ltxdoc}
\GetFileInfo{babel.dtx}
\usepackage{fontspec}
@@ -1232,18 +1232,6 @@ are incompatibilities with other packages.
written to the log file.\footnote{You can use alternatively the
package \textsf{silence}.}
-\Describe{strings=}{\texttt{generic} $\string|$ \texttt{unicode}
-$\string|$ \texttt{encoded} $\string|$ \meta{label} $\string|$
-\meta{font encoding}} Selects the encoding of strings in languages
-supporting this feature. Predefined labels are |generic| (for
-traditional \TeX, LICR and ASCII strings), |unicode| (for engines like
-\xetex{} and \luatex) and |encoded| (for special cases requiring mixed
-encodings). Other allowed values are font encoding codes (|T1|, |T2A|,
-|LGR|, |L7X|...), but only in languages supporting them. Be aware with
-|encoded| captions are protected, but they work in |\MakeUppercase|
-and the like (this feature misuses some internal \LaTeX\ tools, so use
-it only as a last resort).
-
\Describe{hyphenmap=}{\texttt{off} $\string|$ \texttt{first}
$\string|$ \texttt{select} $\string|$ \texttt{other} $\string|$
\texttt{other*}}
@@ -2503,11 +2491,11 @@ If the language has been loaded as an argument in |\documentclass| or
Unicode engines load the UTF-8 variants, while 8-bit engines load the
LICR (ie, with macros like |\'| or |\ss|) ones.
-\New{3.23} It may be used without a value. In such a case, the |ini|
-file set in the corresponding |babel-<language>.tex| (where
-|<language>| is the last argument in |\babelprovide|) is imported. See
-the list of recognized languages above. So, the previous example can
-be written:
+\New{3.23} It may be used without a value, and that is often the
+recommended option. In such a case, the |ini| file set in the
+corresponding |babel-<language>.tex| (where |<language>| is the last
+argument in |\babelprovide|) is imported. See the list of recognized
+languages above. So, the previous example is best written as:
\begin{verbatim}
\babelprovide[_import_]{hungarian}
\end{verbatim}
@@ -2616,8 +2604,7 @@ it acts on characters, not on spaces). There are currently two
‘actions’, which can be used at the same time (separated by a space):
with |ids| the |\language| and the |\localeid| are set to the values of
this locale; with |fonts|, the fonts are changed to those of this
-locale (as set with |\babelfont|). This option is not compatible with
-|mapfont|. Characters can be added or modified with
+locale (as set with |\babelfont|). Characters can be added or modified with
|\babelcharproperty|.
\New{3.81} Option |letters| restricts the ‘actions’ to letters, in the
@@ -2665,16 +2652,6 @@ It’s still somewhat experimental. Again, there is an explanation in the
\Describe{linebreaking=}{}
\New{3.59} Just a synonymous for \texttt{justification}.
-\Describe{mapfont=}{\texttt{direction}}
-Assigns the font for the writing direction of this language (only with
-|bidi=basic|). Whenever possible, instead of this option use |onchar|,
-based on the script, which usually makes more sense. More precisely,
-what |mapfont=direction| means is, ‘when a character has the same
-direction as the script for the “provided” language, then change its
-font to that set for this language’. There are 3 directions, following
-the bidi Unicode algorithm, namely, Arabic-like, Hebrew-like and left
-to right. So, there should be at most 3 directives of this kind.
-
\begin{note}
(1) If you need shorthands, you can define them with |\useshorthands|
and |\defineshorthand| as described above. (2) Captions and |\today|
@@ -5176,8 +5153,8 @@ help from Bernd Raichle, for which I am grateful.
% \section{Tools}
%
% \begin{macrocode}
-%<<version=3.81>>
-%<<date=2022/10/04>>
+%<<version=3.82>>
+%<<date=2022/10/23>>
% \end{macrocode}
%
% \textbf{Do not use the following macros in \texttt{ldf} files. They
@@ -5202,6 +5179,10 @@ help from Bernd Raichle, for which I am grateful.
{\def#1{#2}}%
{\expandafter\def\expandafter#1\expandafter{#1#2}}}
\def\bbl@xin@{\@expandtwoargs\in@}
+\def\bbl@carg#1#2{\expandafter#1\csname#2\endcsname}%
+\def\bbl@ncarg#1#2#3{\expandafter#1\expandafter#2\csname#3\endcsname}%
+\def\bbl@ccarg#1#2#3{%
+ \expandafter#1\csname#2\expandafter\endcsname\csname#3\endcsname}%
\def\bbl@csarg#1#2{\expandafter#1\csname bbl@#2\endcsname}%
\def\bbl@cs#1{\csname bbl@#1\endcsname}
\def\bbl@cl#1{\csname bbl@#1@\languagename\endcsname}
@@ -5340,8 +5321,8 @@ help from Bernd Raichle, for which I am grateful.
\def\bbl@ifblank#1{%
\bbl@ifblank@i#1\@nil\@nil\@secondoftwo\@firstoftwo\@nil}
\long\def\bbl@ifblank@i#1#2\@nil#3#4#5\@nil{#4}
-\def\bbl@ifset#1#2#3{%
- \bbl@ifunset{#1}{#3}{\bbl@exp{\\\bbl@ifblank{#1}}{#3}{#2}}}
+\def\bbl@ifset#1#2#3{%
+ \bbl@ifunset{#1}{#3}{\bbl@exp{\\\bbl@ifblank{\@nameuse{#1}}}{#3}{#2}}}
% \end{macrocode}
% \end{macro}
%
@@ -7054,7 +7035,7 @@ help from Bernd Raichle, for which I am grateful.
\def\bbl@redefine@long#1{%
\edef\bbl@tempa{\bbl@stripslash#1}%
\expandafter\let\csname org@\bbl@tempa\endcsname#1%
- \expandafter\long\expandafter\def\csname\bbl@tempa\endcsname}
+ \long\expandafter\def\csname\bbl@tempa\endcsname}
\@onlypreamble\bbl@redefine@long
% \end{macrocode}
%
@@ -7631,7 +7612,7 @@ help from Bernd Raichle, for which I am grateful.
\bbl@csarg\edef{normal@#2}{%
\noexpand\active@prefix\noexpand#1%
\expandafter\noexpand\csname normal@char#2\endcsname}%
- \expandafter\let\expandafter#1\csname bbl@normal@#2\endcsname
+ \bbl@ncarg\let#1{bbl@normal@#2}%
% \end{macrocode}
%
% The next level of the code checks whether a user has defined a
@@ -8018,10 +7999,8 @@ help from Bernd Raichle, for which I am grateful.
\@notshorthand{#2}%
\else
\initiate@active@char{#2}%
- \expandafter\let\csname active@char\string#2\expandafter\endcsname
- \csname active@char\string#1\endcsname
- \expandafter\let\csname normal@char\string#2\expandafter\endcsname
- \csname normal@char\string#1\endcsname
+ \bbl@ccarg\let{active@char\string#2}{active@char\string#1}%
+ \bbl@ccarg\let{normal@char\string#2}{normal@char\string#1}%
\bbl@activate{#2}%
\fi
\fi}%
@@ -8714,22 +8693,46 @@ help from Bernd Raichle, for which I am grateful.
% A temporary hack:
\ifx\BabelCaseHack\@undefined
\AtBeginDocument{%
- \bbl@exp{%
- \\\in@{\string\@uclclist}%
- {\expandafter\meaning\csname MakeUppercase \endcsname}}%
+ \bbl@xin@{\string\@uclclist}%
+ {\bbl@carg\meaning{MakeUppercase }}%
\ifin@\else
- \expandafter\let\expandafter\bbl@newuc\csname MakeUppercase \endcsname
+ \chardef\bbl@ulflag\z@
+ \bbl@ncarg\let\bbl@newuc{MakeUppercase }%
\protected\@namedef{MakeUppercase }#1{{%
- \def\reserved@a##1##2{\let##1##2\reserved@a}%
- \expandafter\reserved@a\@uclclist\reserved@b{\reserved@b\@gobble}%
- \protected@edef\reserved@a{\bbl@newuc{#1}}\reserved@a}}%
- \expandafter\let\expandafter\bbl@newlc\csname MakeLowercase \endcsname
+ \chardef\bbl@ulflag\@ne
+ \ifx\bbl@uclc\@undefined
+ \bbl@newuc{#1}%
+ \else
+ \bbl@ifunset{\languagename @bbl@uclc}%
+ {\bbl@newuc{#1}}%
+ {\def\reserved@a##1##2{\let##1##2\reserved@a}%
+ \bbl@uclc\reserved@a\reserved@b{\reserved@b\@gobble}%
+ \protected@edef\reserved@a{\bbl@newuc{#1}}% Pre-expand
+ \reserved@a}%
+ \fi}}%
+ \bbl@ncarg\let\bbl@newlc{MakeLowercase }%
\protected\@namedef{MakeLowercase }#1{{%
- \def\reserved@a##1##2{\let##2##1\reserved@a}%
- \expandafter\reserved@a\@uclclist\reserved@b{\reserved@b\@gobble}%
- \protected@edef\reserved@a{\bbl@newlc{#1}}\reserved@a}}%
+ \chardef\bbl@ulflag\tw@
+ \ifx\bbl@uclc\@undefined
+ \bbl@newlc{#1}%
+ \else
+ \bbl@ifunset{\languagename @bbl@uclc}%
+ {\bbl@newlc{#1}}%
+ {\def\reserved@a##1##2{\let##2##1\reserved@a}%
+ \bbl@uclc\reserved@a\reserved@b{\reserved@b\@gobble}%
+ \protected@edef\reserved@a{\bbl@newlc{#1}}% Pre-expand
+ \reserved@a}%
+ \fi}}%
+ \def\bbl@cased{%
+ \ifcase\bbl@ulflag
+ \expandafter\@firstofone
+ \or
+ \expandafter\MakeUppercase
+ \or
+ \expandafter\MakeLowercase
+ \fi}%
\fi}
-\fi
+\fi
% \end{macrocode}
%
% \begin{macrocode}
@@ -9012,12 +9015,9 @@ help from Bernd Raichle, for which I am grateful.
\newcommand\SetCase[3][]{%
\bbl@patchuclc
\bbl@forlang\bbl@tempa{%
- \expandafter\bbl@encstring
- \csname\bbl@tempa @bbl@uclc\endcsname{\bbl@tempa##1}%
- \expandafter\bbl@encstring
- \csname\bbl@tempa @bbl@uc\endcsname{##2}%
- \expandafter\bbl@encstring
- \csname\bbl@tempa @bbl@lc\endcsname{##3}}}%
+ \bbl@carg\bbl@encstring{\bbl@tempa @bbl@uclc}{\bbl@tempa##1}%
+ \bbl@carg\bbl@encstring{\bbl@tempa @bbl@uc}{##2}%
+ \bbl@carg\bbl@encstring{\bbl@tempa @bbl@lc}{##3}}}%
%<</Macros local to BabelCommands>>
% \end{macrocode}
%
@@ -9520,7 +9520,7 @@ help from Bernd Raichle, for which I am grateful.
% \begin{macrocode}
\def\umlauthigh{%
\def\bbl@umlauta##1{\leavevmode\bgroup%
- \expandafter\accent\csname\f@encoding dqpos\endcsname
+ \accent\csname\f@encoding dqpos\endcsname
##1\bbl@allowhyphens\egroup}%
\let\bbl@umlaute\bbl@umlauta}
\def\umlautlow{%
@@ -9566,10 +9566,10 @@ help from Bernd Raichle, for which I am grateful.
\leavevmode\bgroup
\U@D 1ex%
{\setbox\z@\hbox{%
- \expandafter\char\csname\f@encoding dqpos\endcsname}%
+ \char\csname\f@encoding dqpos\endcsname}%
\dimen@ -.45ex\advance\dimen@\ht\z@
\ifdim 1ex<\dimen@ \fontdimen5\font\dimen@ \fi}%
- \expandafter\accent\csname\f@encoding dqpos\endcsname
+ \accent\csname\f@encoding dqpos\endcsname
\fontdimen5\font\U@D #1%
\egroup}
% \end{macrocode}
@@ -9953,7 +9953,7 @@ help from Bernd Raichle, for which I am grateful.
\ifin@\else\bbl@xin@{/k}{/\bbl@cl{lnbrk}}\fi
\ifin@\bbl@arabicjust\fi
\bbl@xin@{/p}{/\bbl@cl{lnbrk}}%
- \ifin@\AtBeginDocument{\bbl@tibetanjust}\fi
+ \ifin@\AtBeginDocument{\@nameuse{bbl@tibetanjust}}\fi
% == Line breaking: hyphenate.other.(locale|script) ==
\ifx\bbl@lbkflag\@empty
\bbl@ifunset{bbl@hyotl@\languagename}{}%
@@ -10104,8 +10104,20 @@ help from Bernd Raichle, for which I am grateful.
{\bbl@pre@fs}%
{\bbl@post@fs}%
\fi
- % == Release saved transforms ==
- \bbl@release@transforms\relax % \relax closes the last item.
+ % == transforms ==
+ \ifodd\bbl@engine
+ \ifx\bbl@KVP@transforms\@nnil\else
+ \def\bbl@elt##1##2##3{%
+ \in@{$transforms.}{$##1}%
+ \ifin@
+ \def\bbl@tempa{##1}%
+ \bbl@replace\bbl@tempa{transforms.}{}%
+ \bbl@carg\bbl@transforms{babel\bbl@tempa}{##2}{##3}%
+ \fi}%
+ \csname bbl@inidata@\languagename\endcsname
+ \bbl@release@transforms\relax % \relax closes the last item.
+ \fi
+ \fi
% == main ==
\ifx\bbl@KVP@main\@nnil % Restore only if not 'main'
\let\languagename\bbl@savelangname
@@ -10911,44 +10923,40 @@ help from Bernd Raichle, for which I am grateful.
%
% \begin{macrocode}
\let\bbl@release@transforms\@empty
-\@namedef{bbl@inikv@transforms.prehyphenation}{%
- \bbl@transforms\babelprehyphenation}
-\@namedef{bbl@inikv@transforms.posthyphenation}{%
- \bbl@transforms\babelposthyphenation}
+\bbl@csarg\let{inikv@transforms.prehyphenation}\bbl@inikv
+\bbl@csarg\let{inikv@transforms.posthyphenation}\bbl@inikv
\def\bbl@transforms@aux#1#2#3#4,#5\relax{%
#1[#2]{#3}{#4}{#5}}
\begingroup % A hack. TODO. Don't require an specific order
\catcode`\%=12
\catcode`\&=14
\gdef\bbl@transforms#1#2#3{&%
- \ifx\bbl@KVP@transforms\@nnil\else
- \directlua{
- local str = [==[#2]==]
- str = str:gsub('%.%d+%.%d+$', '')
- tex.print([[\def\string\babeltempa{]] .. str .. [[}]])
- }&%
- \bbl@xin@{,\babeltempa,}{,\bbl@KVP@transforms,}&%
+ \directlua{
+ local str = [==[#2]==]
+ str = str:gsub('%.%d+%.%d+$', '')
+ tex.print([[\def\string\babeltempa{]] .. str .. [[}]])
+ }&%
+ \bbl@xin@{,\babeltempa,}{,\bbl@KVP@transforms,}&%
+ \ifin@
+ \in@{.0$}{#2$}&%
\ifin@
- \in@{.0$}{#2$}&%
- \ifin@
- \directlua{
- local str = string.match([[\bbl@KVP@transforms]],
- '%(([^%(]-)%)[^%)]-\babeltempa')
- if str == nil then
- tex.print([[\def\string\babeltempb{}]])
- else
- tex.print([[\def\string\babeltempb{,attribute=]] .. str .. [[}]])
- end
- }
- \toks@{#3}&%
- \bbl@exp{&%
- \\\g@addto@macro\\\bbl@release@transforms{&%
- \relax &% Closes previous \bbl@transforms@aux
- \\\bbl@transforms@aux
- \\#1{label=\babeltempa\babeltempb}{\languagename}{\the\toks@}}}&%
- \else
- \g@addto@macro\bbl@release@transforms{, {#3}}&%
- \fi
+ \directlua{&% (\attribute) syntax
+ local str = string.match([[\bbl@KVP@transforms]],
+ '%(([^%(]-)%)[^%)]-\babeltempa')
+ if str == nil then
+ tex.print([[\def\string\babeltempb{}]])
+ else
+ tex.print([[\def\string\babeltempb{,attribute=]] .. str .. [[}]])
+ end
+ }
+ \toks@{#3}&%
+ \bbl@exp{&%
+ \\\g@addto@macro\\\bbl@release@transforms{&%
+ \relax &% Closes previous \bbl@transforms@aux
+ \\\bbl@transforms@aux
+ \\#1{label=\babeltempa\babeltempb}{\languagename}{\the\toks@}}}&%
+ \else
+ \g@addto@macro\bbl@release@transforms{, {#3}}&%
\fi
\fi}
\endgroup
@@ -10996,7 +11004,8 @@ help from Bernd Raichle, for which I am grateful.
in the current font, and therefore the hyphen\\%
will be printed. Try changing the fontspec's\\%
'HyphenChar' to another value, but be aware\\%
- this setting is not safe (see the manual)}%
+ this setting is not safe (see the manual).\\%
+ Reported}%
\hyphenchar\font\defaulthyphenchar
\fi\fi
\fi}%
@@ -12369,7 +12378,7 @@ help from Bernd Raichle, for which I am grateful.
%
% \begin{macrocode}
\ifx\bbl@opt@main\@nnil\else
- \bbl@csarg\let{loadmain\expandafter}\csname ds@\bbl@opt@main\endcsname
+ \bbl@ncarg\let\bbl@loadmain{ds@\bbl@opt@main}%
\expandafter\let\csname ds@\bbl@opt@main\endcsname\relax
\fi
% \end{macrocode}
@@ -13246,7 +13255,7 @@ help from Bernd Raichle, for which I am grateful.
\<bbl@xeipn@\languagename>}%
\\\bbl@toglobal\<extras\languagename>%
\\\bbl@add\<noextras\languagename>{%
- \XeTeXlinebreaklocale "en"}%
+ \XeTeXlinebreaklocale ""}%
\\\bbl@toglobal\<noextras\languagename>}%
\ifx\bbl@ispacesize\@undefined
\gdef\bbl@ispacesize{\bbl@cl{xeisp}}%
diff --git a/macros/latex/required/babel/base/babel.ins b/macros/latex/required/babel/base/babel.ins
index a40cfd79f3..5128ec755d 100644
--- a/macros/latex/required/babel/base/babel.ins
+++ b/macros/latex/required/babel/base/babel.ins
@@ -26,7 +26,7 @@
%% and covered by LPPL is defined by the unpacking scripts (with
%% extension .ins) which are part of the distribution.
%%
-\def\filedate{2022/10/04}
+\def\filedate{2022/10/23}
\def\batchfile{babel.ins}
\input docstrip.tex
diff --git a/macros/latex/required/babel/base/babel.pdf b/macros/latex/required/babel/base/babel.pdf
index c667f527ac..161bd23b21 100644
--- a/macros/latex/required/babel/base/babel.pdf
+++ b/macros/latex/required/babel/base/babel.pdf
Binary files differ
diff --git a/macros/latex/required/babel/base/bbcompat.dtx b/macros/latex/required/babel/base/bbcompat.dtx
index 0bc850a585..2ad2e626b7 100644
--- a/macros/latex/required/babel/base/bbcompat.dtx
+++ b/macros/latex/required/babel/base/bbcompat.dtx
@@ -30,7 +30,7 @@
%
% \iffalse
%<*dtx>
-\ProvidesFile{bbcompat.dtx}[2022/10/04 v3.81]
+\ProvidesFile{bbcompat.dtx}[2022/10/23 v3.82]
%</dtx>
%
%% File 'bbcompat.dtx'