texlive[72983] Master/texmf-dist: verifiche (27nov24)
commits+karl at tug.org
commits+karl at tug.org
Wed Nov 27 21:53:26 CET 2024
Revision: 72983
https://tug.org/svn/texlive?view=revision&revision=72983
Author: karl
Date: 2024-11-27 21:53:26 +0100 (Wed, 27 Nov 2024)
Log Message:
-----------
verifiche (27nov24)
Modified Paths:
--------------
trunk/Master/texmf-dist/doc/latex/verifiche/verifiche-example.pdf
trunk/Master/texmf-dist/doc/latex/verifiche/verifiche-example.tex
trunk/Master/texmf-dist/doc/latex/verifiche/verifiche.pdf
trunk/Master/texmf-dist/source/latex/verifiche/verifiche.dtx
trunk/Master/texmf-dist/source/latex/verifiche/verifiche.ins
trunk/Master/texmf-dist/tex/latex/verifiche/verifiche.sty
Modified: trunk/Master/texmf-dist/doc/latex/verifiche/verifiche-example.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/doc/latex/verifiche/verifiche-example.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/verifiche/verifiche-example.tex 2024-11-27 00:42:03 UTC (rev 72982)
+++ trunk/Master/texmf-dist/doc/latex/verifiche/verifiche-example.tex 2024-11-27 20:53:26 UTC (rev 72983)
@@ -309,6 +309,45 @@
\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
Modified: trunk/Master/texmf-dist/doc/latex/verifiche/verifiche.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/source/latex/verifiche/verifiche.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/verifiche/verifiche.dtx 2024-11-27 00:42:03 UTC (rev 72982)
+++ trunk/Master/texmf-dist/source/latex/verifiche/verifiche.dtx 2024-11-27 20:53:26 UTC (rev 72983)
@@ -16,16 +16,18 @@
%
% \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,
@@ -32,39 +34,53 @@
\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}
@@ -71,7 +87,7 @@
%</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 @@
% \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 @@
% \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 @@
% \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 @@
% \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 @@
% \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,7 +539,7 @@
\end{enumerate}
\end{esercizio}
\end{minipage}}
-}
+\end{render}
% \iffalse
%</example>
% \fi
@@ -505,36 +546,37 @@
%
%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 @@
%<*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 @@
% \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 @@
% \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 @@
% \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 @@
% \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 @@
% \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,14 +784,17 @@
% \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}
@@ -730,7 +801,8 @@
\begin{closedquestion}
\item Terzo
\item Quarto
-\end{closedquestion}}
+\end{closedquestion}
+\end{render}
% \iffalse
%</example>
% \fi
@@ -777,12 +849,16 @@
% \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 @@
% \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 @@
% \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 @@
% \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 @@
% \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 @@
\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 @@
\RequirePackage[shortlabels, inline]{enumitem}
\RequirePackage{tikz}
\RequirePackage[normalem]{ulem}
+\RequirePackage[nomessages]{fp}
+\RequirePackage{randomlist}
% \end{macrocode}
%
%
@@ -1275,8 +1525,9 @@
%%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 @@
\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 @@
\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 @@
\@rpt at delimiter}
\showmarginexercisetrue
\fi}%
+\define at key{esercizio}{sumpoints}[none]{%
+ \ifshowexercisept%
+ \def\@totalpartialpt{\convertreftonum{ptes@\theexercisenumber}}%
+ \def\sumpartialpt{%
+ \ptfont%
+ \@ptprefix\@lpt at delimiter%
+ \@totalpartialpt\space\@useptlabel{\@totalpartialpt}%
+ \@rpt at delimiter}%
+ \showmarginexercisetrue
+ \fi}%
\define at key{esercizio}{partialpt}[none]{%
\ifshowexercisept%
\def\@totalpartialpt{\convertreftonum{ptes@\theexercisenumber}}%
@@ -1728,7 +1989,8 @@
% \begin{macrocode}
\newcommand{\savepointsaux}{%
\ifdefined\sumpartialpt%
- \protected at write \@auxout {}{\string\newlabel {ptes@\theexercisenumber}{{\thepartialpoints}{}}}%
+ \FPeval\sommafinale{clip(partialpoints)}%
+ \protected at write \@auxout {}{\string\newlabel {ptes@\theexercisenumber}{{\sommafinale}{}}}%
\fi%
\ifdefined\espoint%
\protected at write \@auxout {}{\string\newlabel {ptes@\theexercisenumber}{{\pointes}{}}}%
@@ -1743,6 +2005,7 @@
% \begin{macrocode}
\NewDocumentEnvironment{esercizio}{o +b}{%
\refstepcounter{exercisenumber}%
+ \FPset\partialpoints{0}%
\showmarginexercisefalse%
\IfValueT{#1}{\setkeys{esercizio}{#1}}%
\par\addvspace{\baselineskip}%
@@ -1764,6 +2027,7 @@
%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 @@
\ptfont\hfill\@partialptprefix%
\@lpartialpt at delimiter#1\space\@usepartialptlabel{#1}%
\@rpartialpt at delimiter%
- \addtocounter{partialpoints}{#1}}\ignorespaces%
+ \FPadd\partialpoints\partialpoints{#1}%
+ \xdef\partialpoints{\partialpoints}}\ignorespaces%
\fi}%
% \end{macrocode}
%\end{macro}
@@ -2009,6 +2274,77 @@
}{}
% \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 at 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 at listname{lista\theshuffleitemscount}%
+ \expandafter\NewList\expandafter{\verifiche at listname}%
+ #2%
+}{%
+ \begin{enumerate}[#1]%
+ \ForEachRandomItem{\verifiche at listname}{items}{\items}%
+ \end{enumerate}%
+ \expandafter\ClearList\expandafter{\verifiche at 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 at listname{lista\theshuffleitemscount}%
+ \expandafter\NewList\expandafter{\verifiche at listname}%
+ #2%
+}{%
+ \begin{itemize}[#1]%
+ \ForEachRandomItem{\verifiche at listname}{items}{\items}%
+ \end{itemize}%
+ \expandafter\ClearList\expandafter{\verifiche at 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 at listname{lista\theshuffleitemscount}%
+ \expandafter\NewList\expandafter{\verifiche at listname}%
+ #1%
+}{%
+ \begin{closedquestion}%
+ \ForEachRandomItem{\verifiche at listname}{items}{\items}%
+ \end{closedquestion}%
+ \expandafter\ClearList\expandafter{\verifiche at listname}%
+ \addtocounter{shuffleitemscount}{-1}%
+}%
+% \end{macrocode}
+%\end{environment}
+%
+%
% \Finale
\endinput
\ No newline at end of file
Modified: trunk/Master/texmf-dist/source/latex/verifiche/verifiche.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex/verifiche/verifiche.ins 2024-11-27 00:42:03 UTC (rev 72982)
+++ trunk/Master/texmf-dist/source/latex/verifiche/verifiche.ins 2024-11-27 20:53:26 UTC (rev 72983)
@@ -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
Modified: trunk/Master/texmf-dist/tex/latex/verifiche/verifiche.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/verifiche/verifiche.sty 2024-11-27 00:42:03 UTC (rev 72982)
+++ trunk/Master/texmf-dist/tex/latex/verifiche/verifiche.sty 2024-11-27 20:53:26 UTC (rev 72983)
@@ -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,9 +15,10 @@
%% 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}
\RequirePackage{xkeyval}
\RequirePackage{pgffor}
@@ -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 at delimiter}{(}
\newcommand{\@rpartialpt at delimiter}{)}
@@ -341,6 +345,16 @@
\@rpt at delimiter}
\showmarginexercisetrue
\fi}%
+\define at key{esercizio}{sumpoints}[none]{%
+ \ifshowexercisept%
+ \def\@totalpartialpt{\convertreftonum{ptes@\theexercisenumber}}%
+ \def\sumpartialpt{%
+ \ptfont%
+ \@ptprefix\@lpt at delimiter%
+ \@totalpartialpt\space\@useptlabel{\@totalpartialpt}%
+ \@rpt at delimiter}%
+ \showmarginexercisetrue
+ \fi}%
\define at key{esercizio}{partialpt}[none]{%
\ifshowexercisept%
\def\@totalpartialpt{\convertreftonum{ptes@\theexercisenumber}}%
@@ -366,7 +380,8 @@
}%
\newcommand{\savepointsaux}{%
\ifdefined\sumpartialpt%
- \protected at write \@auxout {}{\string\newlabel {ptes@\theexercisenumber}{{\thepartialpoints}{}}}%
+ \FPeval\sommafinale{clip(partialpoints)}%
+ \protected at write \@auxout {}{\string\newlabel {ptes@\theexercisenumber}{{\sommafinale}{}}}%
\fi%
\ifdefined\espoint%
\protected at 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 at delimiter#1\space\@usepartialptlabel{#1}%
\@rpartialpt at delimiter%
- \addtocounter{partialpoints}{#1}}\ignorespaces%
+ \FPadd\partialpoints\partialpoints{#1}%
+ \xdef\partialpoints{\partialpoints}}\ignorespaces%
\fi}%
\define at key{soluzione}{label}[\solutionlabel]{%
\def\verifiche at tempsoluzionelabel{#1}%
@@ -559,7 +577,44 @@
\clearpage%
}%
}{}
-
+\newcommand{\shuffleseed}[1]{\RLsetrandomseed{#1}}%
+\newcommand{\sitem}[1]{\InsertFirstItem{\verifiche at listname}{#1}}%
+\NewDocumentEnvironment{shuffledenumerate}{O{} m}{%
+\addtocounter{shuffleitemscount}{1}%
+\edef\verifiche at listname{lista\theshuffleitemscount}%
+\expandafter\NewList\expandafter{\verifiche at listname}%
+#2%
+}{%
+ \begin{enumerate}[#1]%
+\ForEachRandomItem{\verifiche at listname}{items}{\items}%
+ \end{enumerate}%
+\expandafter\ClearList\expandafter{\verifiche at listname}%
+\addtocounter{shuffleitemscount}{-1}%
+}%
+\NewDocumentEnvironment{shuffleditemize}{O{} m}{%
+\addtocounter{shuffleitemscount}{1}%
+\edef\verifiche at listname{lista\theshuffleitemscount}%
+\expandafter\NewList\expandafter{\verifiche at listname}%
+#2%
+}{%
+ \begin{itemize}[#1]%
+\ForEachRandomItem{\verifiche at listname}{items}{\items}%
+ \end{itemize}%
+\expandafter\ClearList\expandafter{\verifiche at listname}%
+\addtocounter{shuffleitemscount}{-1}%
+}%
+\NewDocumentEnvironment{shuffledclosed}{m}{%
+\addtocounter{shuffleitemscount}{1}%
+\edef\verifiche at listname{lista\theshuffleitemscount}%
+\expandafter\NewList\expandafter{\verifiche at listname}%
+#1%
+}{%
+ \begin{closedquestion}%
+\ForEachRandomItem{\verifiche at listname}{items}{\items}%
+ \end{closedquestion}%
+\expandafter\ClearList\expandafter{\verifiche at listname}%
+\addtocounter{shuffleitemscount}{-1}%
+}%
\endinput
%%
%% End of file `verifiche.sty'.
More information about the tex-live-commits
mailing list.