summaryrefslogtreecommitdiff
path: root/Master/texmf-dist
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2024-11-27 20:53:26 +0000
committerKarl Berry <karl@freefriends.org>2024-11-27 20:53:26 +0000
commit2fedfb43a7c35af4e3a08406633bdc3ed3eeac76 (patch)
tree3b6e2be859bb19a19ccdccde08840c520221d04b /Master/texmf-dist
parent9c3d9a1f7da3424ad64f352bee32fe2c0d7217ab (diff)
verifiche (27nov24)
git-svn-id: svn://tug.org/texlive/trunk@72983 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist')
-rw-r--r--Master/texmf-dist/doc/latex/verifiche/verifiche-example.pdfbin259227 -> 260661 bytes
-rw-r--r--Master/texmf-dist/doc/latex/verifiche/verifiche-example.tex39
-rw-r--r--Master/texmf-dist/doc/latex/verifiche/verifiche.pdfbin627088 -> 651831 bytes
-rw-r--r--Master/texmf-dist/source/latex/verifiche/verifiche.dtx614
-rw-r--r--Master/texmf-dist/source/latex/verifiche/verifiche.ins2
-rw-r--r--Master/texmf-dist/tex/latex/verifiche/verifiche.sty73
6 files changed, 579 insertions, 149 deletions
diff --git a/Master/texmf-dist/doc/latex/verifiche/verifiche-example.pdf b/Master/texmf-dist/doc/latex/verifiche/verifiche-example.pdf
index d2e1cc358a0..5edd4afd7f5 100644
--- a/Master/texmf-dist/doc/latex/verifiche/verifiche-example.pdf
+++ b/Master/texmf-dist/doc/latex/verifiche/verifiche-example.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/verifiche/verifiche-example.tex b/Master/texmf-dist/doc/latex/verifiche/verifiche-example.tex
index a72fa36937c..a6c5216fa1b 100644
--- a/Master/texmf-dist/doc/latex/verifiche/verifiche-example.tex
+++ b/Master/texmf-dist/doc/latex/verifiche/verifiche-example.tex
@@ -309,6 +309,45 @@ d(A, B)= \sqrt{(x_A - x_B) ^2 + (y_A- y_B)^2} = \pgfmathparse{sqrt((\ax-\bx)^2+(
\end{soluzione}
\end{multitest}
+\begin{esercizio}
+ Per ogni domanda indicare quale delle risposte è quella corretta.
+\begin{shuffledenumerate}[(i)]
+\sitem{\item Il corpo rigido è:
+ \begin{shuffledclosed}
+ \sitem{\item un oggetto assolutamente non elastico.}
+ \sitem{\item un oggetto esteso che subisce deformazioni quando gli vengono applicate forze molto intense.}
+ \sitem{\item[\checked] un oggetto esteso che non subisce deformazioni qualsiasi siano le forze che gli vengono applicate.}
+ \sitem{\item un modello che descrive il comportamento del punto materiale.}
+ \end{shuffledclosed}
+}
+\sitem{\item È possibile mantenere in equilibrio un ombrello sulla punta di un dito solo se:
+ \begin{shuffledclosed}
+ \sitem{\item il peso dell’ombrello è equilibrato dalla forza esercitata dal dito.}
+ \sitem{\item[\checked] il baricentro dell’ombrello sta sulla retta verticale che passa per la punta del dito.}
+ \sitem{\item il momento totale agente sull’ombrello è positivo.}
+ \sitem{\item la forza totale agente sull'ombrello è positivo.}
+ \end{shuffledclosed}
+}
+
+\sitem{\item La condizione di equilibrio per un punto materiale è che:
+ \begin{shuffledclosed}
+ \sitem{\item non ci sia alcuna forza agente su di esso.}
+ \sitem{\item ci siano soltanto forze vincolari agenti su di esso.}
+ \sitem{\item[\checked] la somma delle forze ad esso applicate sia uguale a zero.}
+ \sitem{\item la somma delle forze vincolari agenti su di esso sia uguale a zero.}
+ \end{shuffledclosed}
+}
+
+\sitem{\item Quale delle seguenti definizioni è corretta?
+ \begin{shuffledclosed}
+ \sitem{\item Il baricentro di un oggetto qualunque è il centro geometrico dell'oggetto.}
+ \sitem{\item Il centro di simmetria di un oggetto qualunque è il centro geometrico dell'oggetto.}
+ \sitem{\item[\checked] II baricentro di un oggetto qualunque è il punto di applicazione della forza-peso totale agente sull'oggetto.}
+ \sitem{\item Il centro di simmetria di un oggetto qualunque è il punto di applicazione della forza-peso totale agente sull'oggetto.}
+ \end{shuffledclosed}
+}
+\end{shuffledenumerate}
+\end{esercizio}
\end{document} \ No newline at end of file
diff --git a/Master/texmf-dist/doc/latex/verifiche/verifiche.pdf b/Master/texmf-dist/doc/latex/verifiche/verifiche.pdf
index 75d1792fd7a..4027150b358 100644
--- a/Master/texmf-dist/doc/latex/verifiche/verifiche.pdf
+++ b/Master/texmf-dist/doc/latex/verifiche/verifiche.pdf
Binary files differ
diff --git a/Master/texmf-dist/source/latex/verifiche/verifiche.dtx b/Master/texmf-dist/source/latex/verifiche/verifiche.dtx
index fead99f3485..9ac9095b803 100644
--- a/Master/texmf-dist/source/latex/verifiche/verifiche.dtx
+++ b/Master/texmf-dist/source/latex/verifiche/verifiche.dtx
@@ -16,62 +16,78 @@
%
% \iffalse
%<package>\NeedsTeXFormat{LaTeX2e}
-%<package>\ProvidesPackage{verifiche} [2024/02/05 v7.1 .dtx verifiche file]
+%<package>\ProvidesPackage{verifiche} [2024/11/27 v8.0 .dtx verifiche file]
%<*driver>
\documentclass{ltxdoc}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[english, italian]{babel}
-%\usepackage[a4paper]{geometry}
-\usepackage{listings}
-\lstset{
- language=[LaTeX]TeX,
+\usepackage{tcolorbox}
+\tcbuselibrary{listings, skins}
+\usepackage{xparse}
+\usepackage[solutions]{verifiche}
+\lstset{%
+ language=[LaTeX]TeX,
morekeywords={\setlength, \institute, \asyear, \testtype, \instruction, \duration, \printheading,
\institutefont, \asyearfont, \testtypefont, \instructiondelimiter, \headerfont, \instrunctionfont,
\durationfont, \exerciselabel, \solutionfont, \solutionlabel, \diffsymb, \closedquestionitem,
\inlinesol, \completetext, \truefalse, \openquestion, \linedopenquestion, \squaredopenquestion,
\headercandidatenamelabel, \checked, \finderror, \textandimage, \partialpt, \ptprefix, \ptlabel,
\partialptlabel, \partialptdelimiters, \ptdelimiters, \partialptprefix, \checkmaker, \ref, \tikz, \makecolumn,
- \columnseparation, \subtitle, \subtitlefont, \ptfont, \defineheadingstyle, \headingstyle},
+ \columnseparation, \subtitle, \subtitlefont, \ptfont, \defineheadingstyle, \headingstyle, \sitem},
keywordstyle=\color{blue},
escapeinside={*@}{@*},
inputencoding=utf8,
basicstyle=\small\ttfamily}
-\usepackage{xparse}
-\usepackage{tcolorbox}
-\tcbuselibrary{listingsutf8, skins}
-\tcbset{listing engine=listings}
-\usepackage[solutions]{verifiche}
+%
\newcounter{id}
-\newtcblisting{esempio}{listing outside text, righthand width=.3\textwidth,lower separated=true, skin=bicolor, colbacklower=red!50!white}
-\newcommand{\esempiodicodice}[1]{\begin{esempio}#1\end{esempio}}
-\NewDocumentCommand{\example}{+v m}{%
- \stepcounter{id}%
- \begin{minipage}{.6\textwidth}%
- \begin{tcolorbox}[equal height group=\theid, title={Esempio di codice}, sharp corners=east, leftupper=.5ex, halign=left]%
- \begin{lstlisting}%
- ^^J#1^^J
- \end{lstlisting}
- \end{tcolorbox}
- \end{minipage}
- \begin{minipage}{.4\textwidth}
- \begin{tcolorbox}[colback=red!5!white,colframe=red!75!black, equal height group=\theid, title={Esempio visivo}, sharp corners=west, halign=left]
- #2
- \end{tcolorbox}
- \end{minipage}
+\NewTCBListing{sourcecode}{}{
+ before={},
+ after={\hfill},
+ width=.597\textwidth,
+ equal height group=\theid,
+ title={Esempio di codice},
+ sharp corners=east,
+ leftupper=.5ex,
+ halign=left,
+ listing only,
+ listing options={%
+ language={[LaTeX]TeX},
+ morekeywords={\setlength, \institute, \asyear, \testtype, \instruction, \duration, \printheading,%
+ \institutefont, \asyearfont, \testtypefont, \instructiondelimiter, \headerfont, \instrunctionfont,%
+ \durationfont, \exerciselabel, \solutionfont, \solutionlabel, \diffsymb, \closedquestionitem,%
+ \inlinesol, \completetext, \truefalse, \openquestion, \linedopenquestion, \squaredopenquestion,%
+ \headercandidatenamelabel, \checked, \finderror, \textandimage, \partialpt, \sumpoints, \ptprefix, \ptlabel,%
+ \partialptlabel, \partialptdelimiters, \ptdelimiters, \partialptprefix, \checkmaker, \ref, \tikz, \makecolumn,%
+ \columnseparation, \subtitle, \subtitlefont, \ptfont, \defineheadingstyle, \headingstyle, \sitem},
+ keywordstyle=\color{blue},
+ basicstyle=\small\ttfamily
+ }
+}%
+\NewTColorBox{render}{}{
+ before={},
+ after={\\},
+ width=.397\textwidth,
+ colback=red!5!white,colframe=red!75!black,
+ equal height group=\theid,
+ title={Esempio visivo},
+ sharp corners=west,
+ halign=left,
}
+\NewDocumentEnvironment{example}{m m}{}{}
%
\EnableCrossrefs
\CodelineIndex
\RecordChanges
\parindent0pt
+\shuffleseed{42}
\begin{document}
\DocInput{verifiche.dtx}
\end{document}
%</driver>
% \fi
%
-% \CheckSum{1211}
+% \CheckSum{1307}
% \changes{v1.0}{2020/06/14}{Initial version.}
% \changes{v2.0}{2020/06/26}{Better performance in exercise environment.}
% \changes{v2.1}{2020/06/30}{Introduced closedquestionitem to control |item| symbol.}
@@ -87,6 +103,7 @@
% \changes{v5.2}{2022/06/21}{Minor update. Resolve bugs in printheading command.}
% \changes{v7.0}{2023/08/22}{Major update. Remove some unnecessary packages. Add ptfont command to manage points font. Modify environments to avoid page break after the name of the environment. Adding the possibility to define own heading aspect. Define three types of headings: galilei, einstein and cattaneo.}
% \changes{v7.1}{2024/02/05}{Minor update. Add ptfont to partialpt.}
+% \changes{v8.0}{2024/11/27}{Major update. Add sumpoints instead of partialpt (that remain defined for legacy reason). The partial points, now, can be decimal. Adding shuffled itemize, enumerate and closedquestion environment.}
% \GetFileInfo{verifiche.sty}
% \DoNotIndex{\newcommand,\newenvironment,\def,\begin,\end,\par}
% \DoNotIndex{\DeclareOption,\ExecuteOptions,\ProcessOptions,\RequirePackage}
@@ -165,7 +182,9 @@
%\item |pgffor| e per la gestione dei cicli for;
%\item |amssymb| per la gestione dei simboli matematici;
%\item |tikz| per la gestione di alcuni aspetti grafici avanzati;
-%\item |ulem| per la gestione della formattazione avanzata del testo.
+%\item |ulem| per la gestione della formattazione avanzata del testo;
+%\item |fp| per la gestione dei punteggi decimali dei punti;
+%\item |randomlist| per la gestione di liste ordinate casualmente.
%\end{itemize}
%
%\section{Come usare il pacchetto \textsf{verifiche} e le sue opzioni}
@@ -346,7 +365,7 @@
%<*example>
% \fi
\begin{lstlisting}
-\begin{esercizio}[label=*@\meta{label}@*,diff=*@\meta{number}@*,pt=*@\meta{number}@*,partialpt]
+\begin{esercizio}[label=*@\meta{label}@*,diff=*@\meta{number}@*,pt=*@\meta{number}@*,sumpoints]
...
\end{esercizio}
\end{lstlisting}
@@ -360,6 +379,7 @@
%|label|=\meta{label} & definisce il titolo del quesito\\
%|diff|=\meta{number} & definisce la difficoltà sotto forma di punti\\
%|pt|=\meta{number} & definisce il punteggio della prova\\
+%|sumpoints| & somma in automatico i punteggi parziali\\
%|partialpt| & somma in automatico i punteggi parziali\\
%\end{tabular}
%\end{center}
@@ -369,15 +389,19 @@
% \iffalse
%<*example>
% \fi
-\example
-{\begin{esercizio}
+\stepcounter{id}
+\begin{sourcecode}
+\begin{esercizio}
Testo dell'esercizio
che voglio somministrare
-\end{esercizio}}
-{\begin{esercizio}
+\end{esercizio}
+\end{sourcecode}
+\begin{render}
+\begin{esercizio}
Testo dell'esercizio
che voglio somministrare
-\end{esercizio}}
+\end{esercizio}
+\end{render}
%
% \iffalse
%</example>
@@ -386,15 +410,19 @@ che voglio somministrare
% \iffalse
%<*example>
% \fi
-\example
-{\begin{esercizio}[label=Esercizio]
+\stepcounter{id}
+\begin{sourcecode}
+\begin{esercizio}[label=Esercizio]
Testo dell'esercizio
che voglio somministrare
-\end{esercizio}}
-{\begin{esercizio}[label=Esercizio]
+\end{esercizio}
+\end{sourcecode}
+\begin{render}
+\begin{esercizio}[label=Esercizio]
Testo dell'esercizio
che voglio somministrare
-\end{esercizio}}
+\end{esercizio}
+\end{render}
% \iffalse
%</example>
% \fi
@@ -402,21 +430,25 @@ che voglio somministrare
% \iffalse
%<*example>
% \fi
-\example
-{\begin{esercizio}[diff=2]
+\stepcounter{id}
+\begin{sourcecode}
+\begin{esercizio}[diff=2]
Testo dell'esercizio
che voglio somministrare
-\end{esercizio}}
-{\begin{minipage}{.2\linewidth}
+\end{esercizio}
+\end{sourcecode}
+\begin{render}
+\begin{minipage}{.1\linewidth}
\hfill$\bullet\bullet$
\end{minipage}
\raisebox{-1.3\baselineskip}{
-\begin{minipage}{.7\linewidth}
+\begin{minipage}{.8\linewidth}
\begin{esercizio}
Testo dell'esercizio
che voglio somministrare
\end{esercizio}
-\end{minipage}}}
+\end{minipage}}
+\end{render}
% \iffalse
%</example>
% \fi
@@ -424,21 +456,25 @@ che voglio somministrare
% \iffalse
%<*example>
% \fi
-\example
-{\begin{esercizio}[pt=2]
+\stepcounter{id}
+\begin{sourcecode}
+\begin{esercizio}[pt=2]
Testo dell'esercizio
che voglio somministrare
-\end{esercizio}}
-{\begin{minipage}{.4\linewidth}
+\end{esercizio}
+\end{sourcecode}
+\begin{render}
+\begin{minipage}{.45\linewidth}
\underline{\phantom{1cm}}/ 2 pt
\end{minipage}
-\raisebox{-1.7\baselineskip}{
-\begin{minipage}{.5\linewidth}
+\raisebox{-2.5\baselineskip}{
+\begin{minipage}{.45\linewidth}
\begin{esercizio}
Testo dell'esercizio
che voglio somministrare
\end{esercizio}
-\end{minipage}}}
+\end{minipage}}
+\end{render}
% \iffalse
%</example>
% \fi
@@ -446,22 +482,26 @@ che voglio somministrare
% \iffalse
%<*example>
% \fi
-\example
-{\begin{esercizio}[pt=2, diff=2]
+\stepcounter{id}
+\begin{sourcecode}
+\begin{esercizio}[pt=2, diff=2]
Testo dell'esercizio
che voglio somministrare
-\end{esercizio}}
-{\begin{minipage}{.4\linewidth}
+\end{esercizio}
+\end{sourcecode}
+\begin{render}
+\begin{minipage}{.41\linewidth}
\hfill$\bullet\bullet$\newline
-\underline{\phantom{1cm}}/ 2 pt
+\hspace*{\fill}\underline{\phantom{1cm}}/ 2 pt
\end{minipage}
-\raisebox{-1.3\baselineskip}{
-\begin{minipage}{.5\linewidth}
+\raisebox{-1.5\baselineskip}{
+\begin{minipage}{.52\linewidth}
\begin{esercizio}
Testo dell'esercizio
che voglio somministrare
\end{esercizio}
-\end{minipage}}}
+\end{minipage}}
+\end{render}
% \iffalse
%</example>
% \fi
@@ -475,18 +515,19 @@ che voglio somministrare
% \iffalse
%<*example>
% \fi
-\example
-{\begin{esercizio}
+\stepcounter{id}
+\begin{sourcecode}
+\begin{esercizio}
\begin{enumerate}
\item\partialpt{1} Domanda 1
\item\partialpt{3} Domanda 2
\end{enumerate}
-\end{esercizio}}
-{\begin{minipage}[t]{.3\linewidth}
-\vspace{-.4em}
-\phantom{1cm/ 4 pt\\[.5em]}
-\vspace{.8em}
-(1 pt)\\
+\end{esercizio}
+\end{sourcecode}
+\begin{render}
+\begin{minipage}[t]{.3\linewidth}
+\vspace*{0em}
+(1 pt)\\[.7em]
(3 pt)
\end{minipage}
\raisebox{\baselineskip}{
@@ -498,43 +539,44 @@ che voglio somministrare
\end{enumerate}
\end{esercizio}
\end{minipage}}
-}
+\end{render}
% \iffalse
%</example>
% \fi
%
%Quando usato negli ambienti |enumerate| o |itemize|, il comando introduce uno spazio spurio che può essere rimosso posponendo il comando |\noindent|.
%
-%Quando viene esplicitata l'\emph{opzione} |partialpt| nella definizione dell'ambiente esercizio, il pacchetto si occupa della somma complessiva dei singoli punteggi parziali riportandola come punteggio totale del quesito. In questo caso il documento dev'essere compilato \emph{due volte} per ottenere correttamente il risultato finale.\\
+%Quando viene esplicitata l'\emph{opzione} |sumpoints| nella definizione dell'ambiente esercizio, il pacchetto si occupa della somma complessiva dei singoli punteggi parziali riportandola come punteggio totale del quesito. In questo caso il documento dev'essere compilato \emph{due volte} per ottenere correttamente il risultato finale. (Dalle versioni precedenti la 8.0 il comando |sumpoints| era |partialpt|. Tale comando rimane definito per compatibilità.\\
%
% \iffalse
%<*example>
% \fi
-\example
-{\begin{esercizio}[partialpt]
+\stepcounter{id}
+\begin{sourcecode}
+\begin{esercizio}[sumpoints]
\begin{enumerate}
-\item\partialpt{1} Domanda 1
-\item\partialpt{3} Domanda 2
+\item\partialpt{1.5} Domanda 1
+\item\partialpt{2.5} Domanda 2
\end{enumerate}
-\end{esercizio}}
-{\begin{minipage}[t]{.39\linewidth}
-\vspace{-.7em}
-\underline{\hspace{.7cm}}/4 pt\\[.9em]
-\vspace{.8em}
-\hspace*{\fill}(1 pt)\\
-\hspace*{\fill}(3 pt)
+\end{esercizio}
+\end{sourcecode}
+\begin{render}
+\begin{minipage}[t]{.35\linewidth}
+\vspace*{0pt}
+\underline{\hspace{.5cm}}/4 pt\\[.5em]
+(1.5 pt)\\[.7em]
+(2.5 pt)
\end{minipage}
-\raisebox{.5\baselineskip}{
-\begin{minipage}[t]{.54\linewidth}
+\begin{minipage}[t]{.58\linewidth}
\begin{esercizio}
+\medskip
\begin{enumerate}[leftmargin=*]
-\small
\item Domanda 1
\item Domanda 2
\end{enumerate}
\end{esercizio}
-\end{minipage}}
-}
+\end{minipage}
+\end{render}
% \iffalse
%</example>
% \fi
@@ -551,7 +593,10 @@ che voglio somministrare
%<*example>
% \fi
\begin{lstlisting}
-\begin{esercizio*}[label=*@\meta{label}@*,diff=*@\meta{number}@*,pt=*@\meta{number}@*,partialpt]
+\begin{esercizio*}[label=*@\meta{label}@*,
+ diff=*@\meta{number}@*,
+ pt=*@\meta{number}@*,
+ sumpoints ]
...
\end{esercizio*}
\end{lstlisting}
@@ -562,21 +607,25 @@ che voglio somministrare
% \iffalse
%<*example>
% \fi
-\example
-{\begin{esercizio*}[pt=2]
+\stepcounter{id}
+\begin{sourcecode}
+\begin{esercizio*}[pt=2]
Testo dell'esercizio
che voglio somministrare
-\end{esercizio*}}
-{\begin{minipage}{.4\linewidth}
+\end{esercizio*}
+\end{sourcecode}
+\begin{render}
+\begin{minipage}{.45\linewidth}
\underline{\phantom{1cm}}/ 2 pt
\end{minipage}
-\raisebox{-1.8\baselineskip}{
-\begin{minipage}{.5\linewidth}
+\raisebox{-2.5\baselineskip}{
+\begin{minipage}{.45\linewidth}
\begin{esercizio*}
Testo dell'esercizio
che voglio somministrare
\end{esercizio*}
-\end{minipage}}}
+\end{minipage}}
+\end{render}
% \iffalse
%</example>
% \fi
@@ -600,15 +649,19 @@ che voglio somministrare
% \iffalse
%<*example>
% \fi
-\example
-{\begin{soluzione}
+\stepcounter{id}
+\begin{sourcecode}
+\begin{soluzione}
Testo della soluzione
dell'esercizio somministrato
-\end{soluzione}}
-{\begin{soluzione}
+\end{soluzione}
+\end{sourcecode}
+\begin{render}
+\begin{soluzione}
Testo della soluzione
dell'esercizio somministrato
-\end{soluzione}}
+\end{soluzione}
+\end{render}
% \iffalse
%</example>
% \fi
@@ -627,10 +680,15 @@ dell'esercizio somministrato
% \iffalse
%<*example>
% \fi
-\example{Questa e' una \inlinesol{soluzione}
- in linea}
-{\solfalse Questa e' una \inlinesol{soluzione} in linea.\\
- \soltrue Questa e' una \inlinesol{soluzione} in linea}
+\stepcounter{id}
+\begin{sourcecode}
+Questa e' una \inlinesol{soluzione}
+ in linea
+ \end{sourcecode}
+ \begin{render}
+\solfalse Questa e' una \inlinesol{soluzione} in linea.\\
+ \soltrue Questa e' una \inlinesol{soluzione} in linea
+ \end{render}
% \iffalse
%</example>
% \fi
@@ -651,9 +709,14 @@ dell'esercizio somministrato
% \iffalse
%<*example>
% \fi
-\example{La \completetext[2cm]{soluzione}}{
+\stepcounter{id}
+\begin{sourcecode}
+La \completetext[2cm]{soluzione}
+\end{sourcecode}
+\begin{render}
\solfalse La \completetext[2cm]{soluzione}\\
-\soltrue La \completetext[2cm]{soluzione}}
+\soltrue La \completetext[2cm]{soluzione}
+\end{render}
% \iffalse
%</example>
% \fi
@@ -682,9 +745,14 @@ dell'esercizio somministrato
% \iffalse
%<*example>
% \fi
-\example{Vero o Falso? \truefalse{V}}{
+\stepcounter{id}
+\begin{sourcecode}
+Vero o Falso? \truefalse{V}}
+\end{sourcecode}
+\begin{render}
\solfalse Vero o Falso? \truefalse{V}\\
-\soltrue Vero o Falso? \truefalse{V}}
+\soltrue Vero o Falso? \truefalse{V}
+\end{render}
% \iffalse
%</example>
% \fi
@@ -716,21 +784,25 @@ dell'esercizio somministrato
% \iffalse
%<*example>
% \fi
-\example
-{\begin{closedquestion}
+\stepcounter{id}
+\begin{sourcecode}
+\begin{closedquestion}
\item Primo
\item[\checked] Secondo
\item Terzo
\item Quarto
-\end{closedquestion}}
-{\begin{closedquestion}
+\end{closedquestion}
+\end{sourcecode}
+\begin{render}
+\begin{closedquestion}
\item Primo
\item[\checked] Secondo
\end{closedquestion}
\begin{closedquestion}
\item Terzo
\item Quarto
-\end{closedquestion}}
+\end{closedquestion}
+\end{render}
% \iffalse
%</example>
% \fi
@@ -777,12 +849,16 @@ dell'esercizio somministrato
% \iffalse
%<*example>
% \fi
-\example
-{\openquestion{
+\stepcounter{id}
+\begin{sourcecode}
+\openquestion{
Prova del testo della soluzione
della domanda aperta
-}}
-{\vspace*{1em}\openquestion[width=4cm, height=2cm]{Prova del testo della soluzione della domanda aperta}}
+}
+\end{sourcecode}
+\begin{render}
+\vspace*{1em}\openquestion[width=4cm, height=2cm]{Prova del testo della soluzione della domanda aperta}
+\end{render}
% \iffalse
%</example>
% \fi
@@ -790,12 +866,16 @@ dell'esercizio somministrato
% \iffalse
%<*example>
% \fi
-\example
-{\openquestion[type=lines]{
+\stepcounter{id}
+\begin{sourcecode}
+\openquestion[type=lines]{
Prova del testo della soluzione
della domanda aperta
-}}
-{\vspace*{1em}\openquestion[type=lines, width=4cm, height=2cm]{Prova del testo della soluzione della domanda aperta}}
+}
+\end{sourcecode}
+\begin{render}
+\vspace*{1em}\openquestion[type=lines, width=4cm, height=2cm]{Prova del testo della soluzione della domanda aperta}
+\end{render}
% \iffalse
%</example>
% \fi
@@ -817,9 +897,13 @@ dell'esercizio somministrato
% \iffalse
%<*example>
% \fi
-\example
-{\finderror{sbagliato}{corretto}}
-{\finderror{sbagliato}{corretto}}
+\stepcounter{id}
+\begin{sourcecode}
+\finderror{sbagliato}{corretto}
+\end{sourcecode}
+\begin{render}
+\finderror{sbagliato}{corretto}
+\end{render}
% \iffalse
%</example>
% \fi
@@ -840,10 +924,14 @@ dell'esercizio somministrato
% \iffalse
%<*example>
% \fi
-\example
-{\textandimage[2cm][1cm]{Testo}{
-\tikz{\draw(0,0) circle (.4cm)}}}
-{\phantom{.}\vspace{1em}\textandimage[2cm][1cm]{Testo}{\tikz{\draw(0,0) circle (.4cm)}}}
+\stepcounter{id}
+\begin{sourcecode}
+\textandimage[2cm][1cm]{Testo}{
+\tikz{\draw(0,0) circle (.4cm)}}
+\end{sourcecode}
+\begin{render}
+\phantom{.}\vspace{1em}\textandimage[2cm][1cm]{Testo}{\tikz{\draw(0,0) circle (.4cm)}}
+\end{render}
% \iffalse
%</example>
% \fi
@@ -873,10 +961,15 @@ dell'esercizio somministrato
% \iffalse
%<*example>
% \fi
-\example
-{\makecolumn{.3\textwidth}{Colonna 1}
-\makecolumn{.3\textwidth}{Colonna 2}}
-{\makecolumn{2.5cm}{Colonna 1} \makecolumn{2.5cm}{Colonna 2}}% \iffalse
+\stepcounter{id}
+\begin{sourcecode}
+\makecolumn{.3\textwidth}{Colonna 1}
+\makecolumn{.3\textwidth}{Colonna 2}
+\end{sourcecode}
+\begin{render}
+\makecolumn{2.5cm}{Colonna 1} \makecolumn{2.5cm}{Colonna 2}
+\end{render}
+% \iffalse
%</example>
% \fi
%
@@ -1202,11 +1295,166 @@ dell'esercizio somministrato
\pgfmathrandomitem*@\marg{macro}\marg{nome lista}@*
\pgfmathsetseed*@\marg{numero intero}@*
\end{lstlisting}
+%\iffalse
+%</example>
+%\fi
%Il comando inizializza il seme dei numeri casuali col numero del compito prodotto, in modo tale da produrre gli stessi compiti casuali ad ogni compilazione.
%\DescribeMacro{multitestcounter}Il contatore |multitestcounter| permette di identificare il numero della traccia generata.
+%\subsection*{Gli ambienti |suffled*|}
+% I test multipli possono richiedere elenchi puntati, numerati o domande chiuse che vengano automaticamente mescolate ad ogni nuova versione del documento. Per questo scopo il pacchetto definisce gli ambienti |shuffledenumerate|, |shuffleditemize| e |shuffledclosed|.
+%
+%\bigskip\DescribeMacro{shuffledenumerate} L'ambiente |shuffledenumerate| viene utilizzato per produrre elenchi numerati in cui l'ordine degli elementi venga randomicamente mescolato. Ogni elemento deve essere introdotto dal comando |\sitem{...}|. L'usuale comando |\item| deve essere indicato all'interno di |\sitem|. L'ambiente accetta una lista separata da virgole di opzioni definite dal pacchetto |enumitem|. La sintassi è la seguente:
+%\iffalse
+%<*example>
+%\fi
+\begin{lstlisting}
+\begin{shuffledenumerate}[*@\meta{enumitem options}@*]
+ \sitem{ ... }
+\end{shuffledenumerate}
+\end{lstlisting}
+%\iffalse
+%</example>
+%\fi
+% \iffalse
+%<*example>
+% \fi
+\stepcounter{id}
+\begin{sourcecode}
+\begin{shuffledenumerate}[(i)]
+ \sitem{\item Domanda 1}
+ \sitem{\item Domanda 2}
+ \sitem{\item Domanda 3}
+\end{shuffledenumerate}
+\end{sourcecode}
+\begin{render}
+\begin{shuffledenumerate}[(i)]
+ \sitem{\item Domanda 1}
+ \sitem{\item Domanda 2}
+ \sitem{\item Domanda 3}
+\end{shuffledenumerate}
+\end{render}
+% \iffalse
+%</example>
+% \fi
+%
+%\bigskip\DescribeMacro{shuffleditemize} L'ambiente |shuffleditemize| viene utilizzato per produrre elenchi puntati in cui l'ordine degli elementi venga randomicamente mescolato. Ogni elemento deve essere introdotto dal comando |\sitem{...}|. L'usuale comando |\item| deve essere indicato all'interno di |\sitem|. L'ambiente accetta una lista separata da virgole di opzioni definite dal pacchetto |enumitem|. La sintassi è la seguente:
+%\iffalse
+%<*example>
+%\fi
+\begin{lstlisting}
+\begin{shuffleditemize}[*@\meta{enumitem options}@*]
+ \sitem{ ... }
+\end{shuffleditemize}
+\end{lstlisting}
%\iffalse
%</example>
%\fi
+% \iffalse
+%<*example>
+% \fi
+\stepcounter{id}
+\begin{sourcecode}
+\begin{shuffleditemize}[$\rhd$]
+ \sitem{\item Domanda 1}
+ \sitem{\item Domanda 2}
+ \sitem{\item Domanda 3}
+\end{shuffleditemize}
+\end{sourcecode}
+\begin{render}
+\begin{shuffleditemize}[$\rhd$]
+ \sitem{\item Domanda 1}
+ \sitem{\item Domanda 2}
+ \sitem{\item Domanda 3}
+\end{shuffleditemize}
+\end{render}
+% \iffalse
+%</example>
+% \fi
+%
+%\bigskip\DescribeMacro{shuffledclosed} L'ambiente |shuffledclosed| viene utilizzato per produrre elenchi di domande a crocette in cui l'ordine degli elementi venga randomicamente mescolato. Ogni elemento deve essere introdotto dal comando |\sitem{...}|. L'usuale comando |\item| deve essere indicato all'interno di |\sitem|. L'ambiente accetta una lista separata da virgole di opzioni definite dall'ambiente |closedquestion|. La sintassi è la seguente:
+%\iffalse
+%<*example>
+%\fi
+\begin{lstlisting}
+\begin{shuffledclosed}[*@\meta{closedquestion options}@*]
+ \sitem{ ... }
+\end{shuffledclosed}
+\end{lstlisting}
+%\iffalse
+%</example>
+%\fi
+% \iffalse
+%<*example>
+% \fi
+\stepcounter{id}
+\begin{sourcecode}
+\begin{shuffledclosed}
+ \sitem{\item Domanda 1}
+ \sitem{\item[\checked] Domanda 2}
+ \sitem{\item Domanda 3}
+\end{shuffledclosed}
+\end{sourcecode}
+\begin{render}
+\begin{shuffledclosed}
+ \sitem{\item Domanda 1}
+ \sitem{\item[\checked] Domanda 2}
+ \sitem{\item Domanda 3}
+\end{shuffledclosed}
+\end{render}
+% \iffalse
+%</example>
+% \fi
+%
+%\bigskip Gli ambienti possono anche essere annidati l'uno dentro l'altro.
+%
+% \iffalse
+%<*example>
+% \fi
+\stepcounter{id}
+\begin{sourcecode}
+\begin{shuffledenumerate}
+ \sitem{\item Primo}
+ \sitem{\item Secondo
+ \begin{shuffleditemize}
+ \sitem{\item $\alpha$}
+ \sitem{\item $\beta$}
+ \sitem{\item $\gamma$}
+ \end{shuffleditemize}
+ }
+ \sitem{\item Terzo
+ \begin{shuffledclosed}
+ \sitem{\item Q 1}
+ \sitem{\item Q 2}
+ \sitem{\item[\checked] Q 3}
+ \end{shuffledclosed}
+ }
+\end{shuffledenumerate}
+\end{sourcecode}
+\begin{render}
+\begin{shuffledenumerate}
+ \sitem{\item Primo}
+ \sitem{\item Secondo
+ \begin{shuffleditemize}
+ \sitem{\item $\alpha$}
+ \sitem{\item $\beta$}
+ \sitem{\item $\gamma$}
+ \end{shuffleditemize}
+ }
+ \sitem{\item Terzo
+ \begin{shuffledclosed}
+ \sitem{\item Q 1}
+ \sitem{\item Q 2}
+ \sitem{\item[\checked] Q 3}
+ \end{shuffledclosed}
+ }
+\end{shuffledenumerate}
+\end{render}
+% \iffalse
+%</example>
+% \fi
+
+
+
%\clearpage
% \StopEventually{\clearpage\PrintChanges \clearpage\PrintIndex}
% \section{Implementation}
@@ -1220,6 +1468,8 @@ dell'esercizio somministrato
\RequirePackage[shortlabels, inline]{enumitem}
\RequirePackage{tikz}
\RequirePackage[normalem]{ulem}
+\RequirePackage[nomessages]{fp}
+\RequirePackage{randomlist}
% \end{macrocode}
%
%
@@ -1275,8 +1525,9 @@ dell'esercizio somministrato
%%counters
%\fi
% \begin{macrocode}
-\newcounter{exercisenumber}
-\newcounter{partialpoints}[exercisenumber]
+\newcounter{exercisenumber}%
+\newcounter{partialpoints}[exercisenumber]%
+\newcounter{shuffleitemscount}%
% \end{macrocode}
%\subsection{Length}
%\iffalse
@@ -1465,7 +1716,7 @@ dell'esercizio somministrato
\renewcommand{\@ptplurlabel}{#2}%
\renewcommand{\@ptsinglabel}{\IfNoValueTF{#1}{#2}{#1}}}%
\newcommand{\@useptlabel}[1]{%
- \ifnum#1=1 \@ptsinglabel \else \@ptplurlabel\fi}
+ \FPifeq{#1}{1} \@ptsinglabel \else \@ptplurlabel\fi}%
% \end{macrocode}
%\iffalse
%%partialpt label
@@ -1477,7 +1728,7 @@ dell'esercizio somministrato
\renewcommand{\@partialptplurlabel}{#2}%
\renewcommand{\@partialptsinglabel}{\IfNoValueTF{#1}{#2}{#1}}}%
\newcommand{\@usepartialptlabel}[1]{%
- \ifnum#1=1 \@partialptsinglabel \else \@partialptplurlabel\fi}
+ \FPifeq{#1}{1} \@partialptsinglabel \else \@partialptplurlabel\fi}%
% \end{macrocode}
%\iffalse
%%partialpt delimiter
@@ -1688,6 +1939,16 @@ dell'esercizio somministrato
\@rpt@delimiter}
\showmarginexercisetrue
\fi}%
+\define@key{esercizio}{sumpoints}[none]{%
+ \ifshowexercisept%
+ \def\@totalpartialpt{\convertreftonum{ptes@\theexercisenumber}}%
+ \def\sumpartialpt{%
+ \ptfont%
+ \@ptprefix\@lpt@delimiter%
+ \@totalpartialpt\space\@useptlabel{\@totalpartialpt}%
+ \@rpt@delimiter}%
+ \showmarginexercisetrue
+ \fi}%
\define@key{esercizio}{partialpt}[none]{%
\ifshowexercisept%
\def\@totalpartialpt{\convertreftonum{ptes@\theexercisenumber}}%
@@ -1728,7 +1989,8 @@ dell'esercizio somministrato
% \begin{macrocode}
\newcommand{\savepointsaux}{%
\ifdefined\sumpartialpt%
- \protected@write \@auxout {}{\string\newlabel {ptes@\theexercisenumber}{{\thepartialpoints}{}}}%
+ \FPeval\sommafinale{clip(partialpoints)}%
+ \protected@write \@auxout {}{\string\newlabel {ptes@\theexercisenumber}{{\sommafinale}{}}}%
\fi%
\ifdefined\espoint%
\protected@write \@auxout {}{\string\newlabel {ptes@\theexercisenumber}{{\pointes}{}}}%
@@ -1743,6 +2005,7 @@ dell'esercizio somministrato
% \begin{macrocode}
\NewDocumentEnvironment{esercizio}{o +b}{%
\refstepcounter{exercisenumber}%
+ \FPset\partialpoints{0}%
\showmarginexercisefalse%
\IfValueT{#1}{\setkeys{esercizio}{#1}}%
\par\addvspace{\baselineskip}%
@@ -1764,6 +2027,7 @@ dell'esercizio somministrato
%The |esercizio*| environment has the same structure of the previous one, except for the code used to show the number of the exercise.
% \begin{macrocode}
\NewDocumentEnvironment{esercizio*}{o +b}{%
+ \FPset\partialpoints{0}%
\showmarginexercisefalse%
\IfValueT{#1}{\setkeys{esercizio}{#1}}%
\par\addvspace{\baselineskip}{\noindent\bfseries\exercisetitle}%
@@ -1787,7 +2051,8 @@ dell'esercizio somministrato
\ptfont\hfill\@partialptprefix%
\@lpartialpt@delimiter#1\space\@usepartialptlabel{#1}%
\@rpartialpt@delimiter%
- \addtocounter{partialpoints}{#1}}\ignorespaces%
+ \FPadd\partialpoints\partialpoints{#1}%
+ \xdef\partialpoints{\partialpoints}}\ignorespaces%
\fi}%
% \end{macrocode}
%\end{macro}
@@ -2009,6 +2274,77 @@ dell'esercizio somministrato
}{}
% \end{macrocode}
%\end{environment}
-
+%
+%
+%\begin{macro}{\shuffleseed}
+%The |\shuffleseed| command set the seed of the shuffled environments
+% \begin{macrocode}
+\newcommand{\shuffleseed}[1]{\RLsetrandomseed{#1}}%
+% \end{macrocode}
+% \end{macro}
+%
+%
+%\begin{macro}{\sitem}
+%The |\sitem| command load the shuffled item for the shuffled environments
+% \begin{macrocode}
+\newcommand{\sitem}[1]{\InsertFirstItem{\verifiche@listname}{#1}}%
+% \end{macrocode}
+% \end{macro}
+%
+%
+%\begin{environment}{shufflenumerate} The environment |shufflenumerate| handle shuffled enumerate lists.
+% \begin{macrocode}
+\NewDocumentEnvironment{shuffledenumerate}{O{} m}{%
+ \addtocounter{shuffleitemscount}{1}%
+ \edef\verifiche@listname{lista\theshuffleitemscount}%
+ \expandafter\NewList\expandafter{\verifiche@listname}%
+ #2%
+}{%
+ \begin{enumerate}[#1]%
+ \ForEachRandomItem{\verifiche@listname}{items}{\items}%
+ \end{enumerate}%
+ \expandafter\ClearList\expandafter{\verifiche@listname}%
+ \addtocounter{shuffleitemscount}{-1}%
+}%
+% \end{macrocode}
+%\end{environment}
+%
+%
+%\begin{environment}{shuffleitemize} The environment |shuffleitemize| handle shuffled itemize lists.
+% \begin{macrocode}
+\NewDocumentEnvironment{shuffleditemize}{O{} m}{%
+ \addtocounter{shuffleitemscount}{1}%
+ \edef\verifiche@listname{lista\theshuffleitemscount}%
+ \expandafter\NewList\expandafter{\verifiche@listname}%
+ #2%
+}{%
+ \begin{itemize}[#1]%
+ \ForEachRandomItem{\verifiche@listname}{items}{\items}%
+ \end{itemize}%
+ \expandafter\ClearList\expandafter{\verifiche@listname}%
+ \addtocounter{shuffleitemscount}{-1}%
+}%
+% \end{macrocode}
+%\end{environment}
+%
+%
+%\begin{environment}{shuffleclosed} The environment |shuffleclosed| handle shuffled closedquestion lists.
+% \begin{macrocode}
+\NewDocumentEnvironment{shuffledclosed}{m}{%
+ \addtocounter{shuffleitemscount}{1}%
+ \edef\verifiche@listname{lista\theshuffleitemscount}%
+ \expandafter\NewList\expandafter{\verifiche@listname}%
+ #1%
+}{%
+ \begin{closedquestion}%
+ \ForEachRandomItem{\verifiche@listname}{items}{\items}%
+ \end{closedquestion}%
+ \expandafter\ClearList\expandafter{\verifiche@listname}%
+ \addtocounter{shuffleitemscount}{-1}%
+}%
+% \end{macrocode}
+%\end{environment}
+%
+%
% \Finale
\endinput \ No newline at end of file
diff --git a/Master/texmf-dist/source/latex/verifiche/verifiche.ins b/Master/texmf-dist/source/latex/verifiche/verifiche.ins
index e9c99f3502b..15f2a5a1f9c 100644
--- a/Master/texmf-dist/source/latex/verifiche/verifiche.ins
+++ b/Master/texmf-dist/source/latex/verifiche/verifiche.ins
@@ -16,7 +16,7 @@
\usedir{tex/latex/verifiche}
\preamble
This is a generated file.
-Copyright (C) 2020 - 2023 by Francesco Raccanello
+Copyright (C) 2020 - 2024 by Francesco Raccanello
This file may be distributed and/or modified under the
conditions of the LaTeX Project Public License, either
version 1.3 of this license or (at your option) any later
diff --git a/Master/texmf-dist/tex/latex/verifiche/verifiche.sty b/Master/texmf-dist/tex/latex/verifiche/verifiche.sty
index 917894db6ba..75d1b26a553 100644
--- a/Master/texmf-dist/tex/latex/verifiche/verifiche.sty
+++ b/Master/texmf-dist/tex/latex/verifiche/verifiche.sty
@@ -6,7 +6,7 @@
%%
%% verifiche.dtx (with options: `package')
%% This is a generated file.
-%% Copyright (C) 2020 - 2023 by Francesco Raccanello
+%% Copyright (C) 2020 - 2024 by Francesco Raccanello
%% This file may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either
%% version 1.3 of this license or (at your option) any later
@@ -15,7 +15,8 @@
%% and version 1.3 or later is part of all distributions of
%% LaTeX version 2005/12/01 or later.
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{verifiche} [2024/02/05 v7.1 .dtx verifiche file]
+\ProvidesPackage{verifiche} [2024/11/27 v8.0 .dtx verifiche file]
+
\RequirePackage{xparse}
@@ -25,6 +26,8 @@
\RequirePackage[shortlabels, inline]{enumitem}
\RequirePackage{tikz}
\RequirePackage[normalem]{ulem}
+\RequirePackage[nomessages]{fp}
+\RequirePackage{randomlist}
%%newif
\newif\ifsol
\newif\ifinstitute\institutetrue
@@ -59,8 +62,9 @@
\DeclareOptionX*{\PackageWarning{verifiche}{Unknown ‘\CurrentOption’}}
\ProcessOptionsX
%%counters
-\newcounter{exercisenumber}
-\newcounter{partialpoints}[exercisenumber]
+\newcounter{exercisenumber}%
+\newcounter{partialpoints}[exercisenumber]%
+\newcounter{shuffleitemscount}%
%%newlenght
\newlength{\candidatenamerulerlength}
\newlength{\classrulerlength}
@@ -181,7 +185,7 @@
\renewcommand{\@ptplurlabel}{#2}%
\renewcommand{\@ptsinglabel}{\IfNoValueTF{#1}{#2}{#1}}}%
\newcommand{\@useptlabel}[1]{%
- \ifnum#1=1 \@ptsinglabel \else \@ptplurlabel\fi}
+ \FPifeq{#1}{1} \@ptsinglabel \else \@ptplurlabel\fi}%
%%partialpt label
\newcommand{\@partialptsinglabel}{pt}
\newcommand{\@partialptplurlabel}{pt}
@@ -189,7 +193,7 @@
\renewcommand{\@partialptplurlabel}{#2}%
\renewcommand{\@partialptsinglabel}{\IfNoValueTF{#1}{#2}{#1}}}%
\newcommand{\@usepartialptlabel}[1]{%
- \ifnum#1=1 \@partialptsinglabel \else \@partialptplurlabel\fi}
+ \FPifeq{#1}{1} \@partialptsinglabel \else \@partialptplurlabel\fi}%
%%partialpt delimiter
\newcommand{\@lpartialpt@delimiter}{(}
\newcommand{\@rpartialpt@delimiter}{)}
@@ -341,6 +345,16 @@
\@rpt@delimiter}
\showmarginexercisetrue
\fi}%
+\define@key{esercizio}{sumpoints}[none]{%
+ \ifshowexercisept%
+ \def\@totalpartialpt{\convertreftonum{ptes@\theexercisenumber}}%
+ \def\sumpartialpt{%
+ \ptfont%
+ \@ptprefix\@lpt@delimiter%
+ \@totalpartialpt\space\@useptlabel{\@totalpartialpt}%
+ \@rpt@delimiter}%
+ \showmarginexercisetrue
+ \fi}%
\define@key{esercizio}{partialpt}[none]{%
\ifshowexercisept%
\def\@totalpartialpt{\convertreftonum{ptes@\theexercisenumber}}%
@@ -366,7 +380,8 @@
}%
\newcommand{\savepointsaux}{%
\ifdefined\sumpartialpt%
- \protected@write \@auxout {}{\string\newlabel {ptes@\theexercisenumber}{{\thepartialpoints}{}}}%
+ \FPeval\sommafinale{clip(partialpoints)}%
+ \protected@write \@auxout {}{\string\newlabel {ptes@\theexercisenumber}{{\sommafinale}{}}}%
\fi%
\ifdefined\espoint%
\protected@write \@auxout {}{\string\newlabel {ptes@\theexercisenumber}{{\pointes}{}}}%
@@ -375,6 +390,7 @@
\NewDocumentEnvironment{esercizio}{o +b}{%
\refstepcounter{exercisenumber}%
+ \FPset\partialpoints{0}%
\showmarginexercisefalse%
\IfValueT{#1}{\setkeys{esercizio}{#1}}%
\par\addvspace{\baselineskip}%
@@ -389,6 +405,7 @@
\savepointsaux%
}%
\NewDocumentEnvironment{esercizio*}{o +b}{%
+ \FPset\partialpoints{0}%
\showmarginexercisefalse%
\IfValueT{#1}{\setkeys{esercizio}{#1}}%
\par\addvspace{\baselineskip}{\noindent\bfseries\exercisetitle}%
@@ -407,7 +424,8 @@
\ptfont\hfill\@partialptprefix%
\@lpartialpt@delimiter#1\space\@usepartialptlabel{#1}%
\@rpartialpt@delimiter%
- \addtocounter{partialpoints}{#1}}\ignorespaces%
+ \FPadd\partialpoints\partialpoints{#1}%
+ \xdef\partialpoints{\partialpoints}}\ignorespaces%
\fi}%
\define@key{soluzione}{label}[\solutionlabel]{%
\def\verifiche@tempsoluzionelabel{#1}%
@@ -559,7 +577,44 @@
\clearpage%
}%
}{}
-
+\newcommand{\shuffleseed}[1]{\RLsetrandomseed{#1}}%
+\newcommand{\sitem}[1]{\InsertFirstItem{\verifiche@listname}{#1}}%
+\NewDocumentEnvironment{shuffledenumerate}{O{} m}{%
+\addtocounter{shuffleitemscount}{1}%
+\edef\verifiche@listname{lista\theshuffleitemscount}%
+\expandafter\NewList\expandafter{\verifiche@listname}%
+#2%
+}{%
+ \begin{enumerate}[#1]%
+\ForEachRandomItem{\verifiche@listname}{items}{\items}%
+ \end{enumerate}%
+\expandafter\ClearList\expandafter{\verifiche@listname}%
+\addtocounter{shuffleitemscount}{-1}%
+}%
+\NewDocumentEnvironment{shuffleditemize}{O{} m}{%
+\addtocounter{shuffleitemscount}{1}%
+\edef\verifiche@listname{lista\theshuffleitemscount}%
+\expandafter\NewList\expandafter{\verifiche@listname}%
+#2%
+}{%
+ \begin{itemize}[#1]%
+\ForEachRandomItem{\verifiche@listname}{items}{\items}%
+ \end{itemize}%
+\expandafter\ClearList\expandafter{\verifiche@listname}%
+\addtocounter{shuffleitemscount}{-1}%
+}%
+\NewDocumentEnvironment{shuffledclosed}{m}{%
+\addtocounter{shuffleitemscount}{1}%
+\edef\verifiche@listname{lista\theshuffleitemscount}%
+\expandafter\NewList\expandafter{\verifiche@listname}%
+#1%
+}{%
+ \begin{closedquestion}%
+\ForEachRandomItem{\verifiche@listname}{items}{\items}%
+ \end{closedquestion}%
+\expandafter\ClearList\expandafter{\verifiche@listname}%
+\addtocounter{shuffleitemscount}{-1}%
+}%
\endinput
%%
%% End of file `verifiche.sty'.