diff options
author | Karl Berry <karl@freefriends.org> | 2020-07-01 20:50:38 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2020-07-01 20:50:38 +0000 |
commit | 878146825f50960945da8b9c18fa11f718c79c7b (patch) | |
tree | 74adb41797a7bbd17d0b1ce33a27a5f4845d60d3 /Master/texmf-dist/source | |
parent | 217f4d072b9ff774eb8b4399999744824cac8d9a (diff) |
verifiche (1jul20)
git-svn-id: svn://tug.org/texlive/trunk@55720 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source')
-rw-r--r-- | Master/texmf-dist/source/latex/verifiche/verifiche.dtx | 1295 | ||||
-rw-r--r-- | Master/texmf-dist/source/latex/verifiche/verifiche.ins | 41 |
2 files changed, 1336 insertions, 0 deletions
diff --git a/Master/texmf-dist/source/latex/verifiche/verifiche.dtx b/Master/texmf-dist/source/latex/verifiche/verifiche.dtx new file mode 100644 index 00000000000..8bad5377772 --- /dev/null +++ b/Master/texmf-dist/source/latex/verifiche/verifiche.dtx @@ -0,0 +1,1295 @@ +% \iffalse meta-comment +% +% Copyright (LPPL) 2020 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 any later version. +% The latest version of this license is in: +% +% http://www.latex-project.org/lppl.txt +% +% and version 1.3 or later is part of all distributions of +% LaTeX version 2005/12/01 or later. +% +% \fi +% +% \iffalse +%<package>\NeedsTeXFormat{LaTeX2e} +%<package>\ProvidesPackage{verifiche} [2020/07/01 v2.2 .dtx verifiche file] +%<*driver> +\documentclass{ltxdoc} +\usepackage[utf8]{inputenc} +\usepackage[T1]{fontenc} +\usepackage[italian]{babel} +\usepackage{listings} +\lstset{ + language=[LaTeX]TeX, + morekeywords={\institute, \asyear, \testtype, \instruction, \duration, \printheading, + \institutefont, \asyearfont, \testtypefont, \instructiondelimiter, \instrunctionfont, + \durationfont, \eserciziolabel, \solutionfont, \diffsymb, \closedquestionitem, + \inlinesol, \completetext, \truefalse, \openquestion, \linedopenquestion, \squaredopenquestion, \checked, \finderror, \textandimage, \partialpt}, + 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} +} +% +\EnableCrossrefs +\CodelineIndex +\RecordChanges +\begin{document} + \DocInput{verifiche.dtx} +\end{document} +%</driver> +% \fi +% +% \CheckSum{537} +% \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.} +% \changes{v2.2}{2020/07/01}{Modify reference to points of an exercise.} +% \GetFileInfo{verifiche.sty} +% \DoNotIndex{\newcommand,\newenvironment,\def,\begin,\end,\par} +% \DoNotIndex{\DeclareOption,\ExecuteOptions,\ProcessOptions,\RequirePackage} +% \DoNotIndex{\LoadClass,\AtBeginDocument,\SetSymbolFont} +% \DoNotIndex{\tiny, \scriptsize, \footnotesize, \normalfont, \large, \Large, \Large, \huge, \Huge} +% \DoNotIndex{\newif,\geometry,\pagestyle,\setISOcompliance,\IntelligentComma} +% \DoNotIndex{\relax,\let,\phi,\theta,\varphi,\vartheta,\else,\fi,\undefined} +% \DoNotIndex{\renewcommand,\newlength,\hline,\textbf,\textit,\\,\setlength} +% \DoNotIndex{\DeclarePairedDelimiter,\MakeUppercase,\MessageBreak,\ClassError} +% \DoNotIndex{\widthof,\textwidth,\ifdefined,\null,\vspace,\noindent,\hfill} +% \DoNotIndex{\hrulefill,\makebox,\linewidth,\small,\centering,\lvert,\rvert} +% \DoNotIndex{\newunicodechar,\ensuremath,\circ,\textsuperscript,\,} +% \DoNotIndex{\varepsilon,\delta,\Delta,\displaystyle,\mathbb,\arraystretch} +% \DoNotIndex{\bm,\box,\DeclareFontShape,\DeclareFontFamily,\DeclareMathAccent} +% \DoNotIndex{\DeclareSymbolFont,\doublespacing,\frac,\mathstrut,\bfseries} +% \DoNotIndex{\usefont,\symbol,\mathpalette,\sbox,\vbox,\hbox,\box} +% \DoNotIndex{\m@th,\wd,\resizebox,\height,\nointerlineskip,\mathord} +% \DoNotIndex{\mathrm,\labelitemi,\blacktriangleright,\textup,\fbox,\parbox} +% \DoNotIndex{\alph,\newlist,\renewlist,\setlist,\hspace,\iflanguage,\protect} +% \DoNotIndex{\ifdim,\newcounter,\newsavebox,\savebox,\setcounter,\linenumbers} +% \DoNotIndex{\thelinenumbers,\addtocounter,\multido,\i,\phantom,\newline} +% \DoNotIndex{\value,\leavevmode,\leaders,\hss,\kern,\real,\tabcolsep,\space} +% \DoNotIndex{\doublespacing,\singlespacing,\@nil,\@nnil,\vphantom,\today} +% \DoNotIndex{\nolinebreak,\null,\textsc,\ifx,\tmp,\mbox,\vfill,\LARGE,\Huge} +% \DoNotIndex{\enitkv@key,\item,\@ifpackageloaded,\@ifpackagewith} +% \DoNotIndex{\addvspace, \baselineskip, \bgroup, \cdot, \color, \CurrentOption} +% \DoNotIndex{\DeclareOptionX, \define@choicekey, \define@key, \draw, \egroup} +% \DoNotIndex{\ExectureOptionsX, \fill, \foreach, \gdef, \ifmmode, \IfSubStr, \IfValueT} +% \DoNotIndex{\ignorespaces, \ignorespacesafterend, \item, \itshape, \marginpar, \marginparwidth, \mathit} +% \DoNotIndex{\NewDocumentCommand, \NewDocumentEnvironment, \newlabel, \nobreak, \node, \nr} +% \DoNotIndex{\or, \overset, \PackageError, \PackageWarning, \parindent, \pgfmathparse, \pgfmathresult} +% \DoNotIndex{\ProcessOptionsX, \protected@write, \ref, \refstepcounter, \reversemarginpar, \rule} +% \DoNotIndex{\scshape, setkeys, \sffamily, \sisetup, \spacedim, \string, \tikz, \underline, \usetikzlibrary} +% \DoNotIndex{\val, \xout, \y, \usebox} +% +% +% \title{Il pacchetto \textsf{verifiche} +% \thanks{Questo documento corrisponde al pacchetto \textsf{verifiche}~\fileversion, +% in data~\filedate.}} +% \author{Francesco Raccanello\\ \texttt{raccanello.francesco@gmail.com}} +% +% \maketitle +%\begin{abstract} +%Il presente pacchetto si propone di gestire gli elementi che generalmente compongono +%una prova scritta per le scuole secondarie di primo e secondo grado. +%I comandi e gli ambienti implementati permettono di gestire l'intestazione della pagina +% e alcuni strumenti utili alla stesura di test scolastici. +% Il pacchetto, inoltre, permette di riportare soluzioni degli esercizi riportandoli, o meno, nello stesso documento in base ad un'apposita opzione. +%\end{abstract} +% +%\tableofcontents +%\clearpage +% +%\section{Introduzione} +%Il pacchetto \textsf{verifiche} nasce dalla necessità di creare verifiche cartacee per la scuola secondaria di primo e secondo grado. +%L'intento è di ottenere un supporto che controlli la parte di test, nonché la gestione delle soluzioni all'interno dello stesso documento.\par +%Riguardo la parte di esercizi, il presente pacchetto si occupa della suddivisione delle domande (numerate o meno) e della gestione del loro punteggio inserendolo a mano, oppure calcolandolo come totale di punteggi parziali (si veda pagina \pageref{sec:esercizio}). +%Sono presenti comandi o ambienti ad hoc per realizzare quesiti di vero/falso, domande aperte o chiuse, +%esercizi di "caccia all'errore" e la gestione di testi e immagini affiancate. +% +%Per quanto riguarda le soluzioni, ogni elemento di test presenta la possibilità di mostrare la soluzione corretta, qualora venga venga inserita una specifica opzione del pacchetto che attivi la così detta in "modalità \texttt{solutions}" indicata nel seguito anche con "modalità soluzioni". +% +%Infine, il codice carica alcuni pacchetti necessari per la gestioni dei comandi implementati, ma anche +% per rendere fruibili da subito comandi utili soprattutto per la gestione della matematica, le unità di misura, +% e la parte grafica. Nel seguito si riportano i pacchetti principali: +%\begin{itemize} +%\item |enumitem| per la gestione avanzata degli elenchi puntati e numerati (sono attivate le opzioni |shortlabels| e |inline| +%\item |amsmath|, |amssymb| per la gestione della matematica; +%\item |siunitx| per la gestione delle unità di misura; +%\item |graphicx|, |xcolor| e |tikz| per la gestione grafica; +%\item |famcyhdr| per la gestione delle testatine. +%\end{itemize} +% +%\section{Come usare il pacchetto \textsf{verifiche}} +%Per usare il pacchetto \textsf{verifiche} è sufficiente copiare il file \texttt{\filename} nella cartella di lavoro +%o installarlo secondo le procedure relative al proprio sistema operativo. +% +%Una volta installato è sufficiente caricare il pacchetto attraverso il comando:\\ +%\begin{center}|\usepackage{verifiche}|\end{center} +% +%\section{Le opzioni del pacchetto} +%Il pacchetto \textsf{verifiche} prevede alcune opzioni per modificare globalmente il proprio comportamento. +%\begin{center} |\usepackage|\oarg{options}|{verifiche}|\end{center} +%Queste gestiscono l'aspetto dell'intestazione, la numerazione globale dei quesiti nonché l'attivazione della "modalità soluzioni" per poter visualizzare, nel documento, le soluzioni e variarne il colore del font. +% +%\begin{center} +%\begin{tabular}{ll} +%\textbf{\meta{options}}& \textbf{Descrizione} \\[.5em] +%\hline\\ +%|noinstitute| & non stampa il nome dell'istituto (si veda pag. \pageref{par:institute}).\\ +%|nocandidatename| & non stampa la sezione per il nome del candidato\\ +%|noinstruction| & non stampa le istruzioni della prova\\ +%|noduration| & non stampa la durata della prova\\ +%|noasyear| & non stampa l'anno scolastico\\ +%|notesttype| & non stampa il tipo di prova \\ +%|nonumbered| & quesiti non numerati\\ +%|solutions| & stampa le soluzioni degli esercizi (si veda pag.\pageref{sec:solutions})\\ +%|red| & il colore del font delle soluzioni è rosso\\ +%|blue| & il colore del font delle soluzioni è blu\\ +%|color|=\meta{color} & il colore del font delle soluzioni è \meta{color}\\[.5em] +%\hline +%\end{tabular} +%\end{center} +%Nel seguito si indicherà con "modalità test", il pacchetto caricato senza l'opzione |solutions|, altrimenti questa verrà detta "modalità soluzione" o "modalità solutions". +% +%\section{Intestazione}\label{sec:intestazione} +%Il pacchetto \textsf{verifiche} fornisce alcuni comandi per realizzare una semplice intestazione del documento che prevede il nome dell'istituto, l'anno scolastico il tipo di prova, le istruzioni e la durata della prova. +%Tutte queste voci vanno dichiarate prima del comando |\printheading| che si occupa della produzione del risultato finale. +%Le \emph{opzioni} del pacchetto permettono la soprressione della visualizzazione di alcune di queste voci. +% +%\vspace{1em} +%\DescribeMacro{\institute}\label{par:institute}Il nome dell'istituto può essere indicato tramite il comando: +% +%\iffalse +%<*example> +%\fi +\begin{lstlisting} +\institute*@\marg{nome dell'istituto}@* +\end{lstlisting} +%\iffalse +%</example> +%\fi +% +%il cui argomento verrà stampato al centro dell'intestazione della pagina con un font largo, senza grazie e di colore grigio scuro e separato dal resto del documento attraverso una riga orizzontale. +%Il font può essere modificato ridefinendo il comando |\institutefont|. +% +%\DescribeMacro{\asyear}\label{par:asyear}L'anno scolastico viene indicato tramite l'apposito comando: +%\iffalse +%<*example> +%\fi +\begin{lstlisting} +\asyear*@\oarg{preambolo}\marg{anno scolastico}@* +\end{lstlisting} +%\iffalse +%</example> +%\fi +%il cui argomento viene riportato, al centro della pagina, anteponendo il \meta{preambolo} (che di default riporta la dicitura ‘‘Anno scolastico’’). Il font ed il posizionamento del testo possono essere cambiati ridefinendo il comando |\asyearfont|. +% +%\DescribeMacro{\testtype}\label{par:testtype}La tipologia di prova può essere indicata tramite il comando: +%\iffalse +%<*example> +%\fi +\begin{lstlisting} +\testtype*@\marg{tipo di compito}@* +\end{lstlisting} +%\iffalse +%</example> +%\fi +%il cui argomento viene riportato, per default, al centro della pagina. La modifica del font e del posizionamento può essere operato ridefinendo il comando |\testtypefont|. +% +%\DescribeMacro{\instruction}\label{par:instruction}Le istruzioni della prova possono essere racchiuse all'interno del comando: +%\iffalse +%<*example> +%\fi +\begin{lstlisting} +\instruction*@\marg{istruzioni}@* +\end{lstlisting} +%\iffalse +%</example> +%\fi +%che provvede a racchiudere tra due delimitatori (di default una riga orizzontale) il testo delle istruzioni. Ridefinendo il comando |\instrunctionfont| è possibile cambiare il font delle istruzioni. +% +%\DescribeMacro{\duration}La durata della prova può venir indicata tramite il comando: +%\iffalse +%<*example> +%\fi +\begin{lstlisting} +\duration*@\oarg{preambolo}\marg{durata}@* +\end{lstlisting} +%\iffalse +%</example> +%\fi +% che viene riportata sotto le istruzioni, al centro, anteponendo all'argomento il \meta{preambolo} (che di default riporta la dicitura ‘‘’Tempo della prova:’’). L'aspetto di questo comando può essere modificato ridefinendo il comando |\durationfont|. +% +%\vspace{1em} +%\DescribeMacro{\printheading}\label{par:printheading}L'intestazione, ovvero l'output di tutti i comandi appena definiti, viene riportata nel documento solo in presenza del comando +%\iffalse +%<*example> +%\fi +\begin{lstlisting} +\printheading +\end{lstlisting} +%\iffalse +%</example> +%\fi +%Salvo esplicite opzioni del pacchetto, il comando richiede di definire \emph{tutte} le voci (al limite indicandole con argomento vuoto |{}|), per non generare alcun errore di compilazione. +% +%\vspace{1em} +%Riassumendo, il pacchetto fornisce i seguenti comandi per gestire e la stampa dell'intestazione del documento: +% +%\begin{center} +%\begin{tabular}{lll} +%\textbf{Comando} & \textbf{Font} & \textbf{Descrizione}\\ +%\hline +%|\institute| & |\institutefont| & Definisce il nome dell'istituto.\\ +%|\asyear| & |\asyearfont| & Definisce l'anno scolastico.\\ +%|\testtype| & |\testtypefont| & Definisce il tipo di prova.\\ +%|\instruction| & |\instrunctionfont|& Definisce le istruzioni delle prove.\\ +%|\duration| & |\durationfont| & Definisce la durata della prova.\\ +%|\printheading| & & Stampa l'intestazione.\\ +%\hline +%\end{tabular} +%\end{center} +% +%\section{Comandi ed ambienti per le \textsf{verifiche}} +%Nel seguito verranno presentati i comandi che permettono di strutturare un test. +%Il pacchetto fornisce un ambiente di esercizio in cui racchiudere le domande. +%Vi è la possibilità di predisporre domande chiuse a scelta multipla, prove di vero-falso, ‘‘trova l'errore’’ e domande a risposta aperta (fornendo una base su cui scrivere come un foglio a quadretti o a righe). +%Ogni comando prevede la possibilità di fornire le soluzioni che vengono visualizzato quando il pacchetto è caricato attivando l'opzione |solutions|. +% +%\vspace{1em} +% \DescribeEnv{esercizio}\label{sec:esercizio}L'ambiente esercizio viene usato per definire il quesito. +%Esso produce il testo contenuto nel corpo preponendo la dicitura ‘‘Quesito” seguito da un numero. +%Questo può essere oggetto di riferimenti incrociati trami tramite un'etichetta dichiarata tramite l'usuale comando |\label=|\marg{label} dichiarato dopo l'apertura dell'ambiente |esercizio|. +%I riferimenti incrociati possono essere richiamati tramite l'usuale comando |\ref|\marg{label}, che produce il numero dell'esercizio e |\pageref|\marg{label} che stampa la pagina del riferimento. +%L'ambiente prevede, inoltre, alcune opzioni espresse nel formato \texttt{key=val}, eventualmente separate da virgola se presenti in contemporanea.\par +%\vspace{1em} +%\begin{tabular}{ll} +%|label|=\meta{label} & definisce il titolo del quesito\\ +%|diff|=\meta{number} & definisce la difficoltà sotto forma di stelle\\ +%|pt|=\meta{number} & definisce il punteggio della prova\\ +%|partialpt| & somma in automatico i punteggi parziali\\ +%\end{tabular} +% +% \iffalse +%<*example> +% \fi +\begin{lstlisting} +\begin{esercizio}[label=*@\meta{label}@*,diff=*@\meta{number}@*,pt=*@\meta{number}@*,partialpt] +... +\end{esercizio} +\end{lstlisting} +% \iffalse +%</example> +% \fi +%Nel seguito si mostrano alcuni dei possibili risultati visivi. +% +% \iffalse +%<*example> +% \fi +\example +{\begin{esercizio} +Testo dell'esercizio +che voglio somministrare +\end{esercizio}} +{\begin{esercizio} +Testo dell'esercizio +che voglio somministrare +\end{esercizio}} +% +% \iffalse +%</example> +% \fi +% +% \iffalse +%<*example> +% \fi +\example +{\begin{esercizio}[label=Esercizio] +Testo dell'esercizio +che voglio somministrare +\end{esercizio}} +{\begin{esercizio}[label=Esercizio] +Testo dell'esercizio +che voglio somministrare +\end{esercizio}} +% \iffalse +%</example> +% \fi +% +% \iffalse +%<*example> +% \fi +\example +{\begin{esercizio}[diff=2] +Testo dell'esercizio +che voglio somministrare +\end{esercizio}} +{\begin{minipage}{.2\linewidth} +\hfill$\bigstar\bigstar$ +\end{minipage} +\raisebox{-1.3\baselineskip}{ +\begin{minipage}{.7\linewidth} +\begin{esercizio} +Testo dell'esercizio +che voglio somministrare +\end{esercizio} +\end{minipage}}} +% \iffalse +%</example> +% \fi +% +% \iffalse +%<*example> +% \fi +\example +{\begin{esercizio}[pt=2] +Testo dell'esercizio +che voglio somministrare +\end{esercizio}} +{\begin{minipage}{.4\linewidth} +\underline{\phantom{1cm}}/ 2 pt +\end{minipage} +\raisebox{-1.7\baselineskip}{ +\begin{minipage}{.5\linewidth} +\begin{esercizio} +Testo dell'esercizio +che voglio somministrare +\end{esercizio} +\end{minipage}}} +% \iffalse +%</example> +% \fi +% +% \iffalse +%<*example> +% \fi +\example +{\begin{esercizio}[pt=2, diff=2] +Testo dell'esercizio +che voglio somministrare +\end{esercizio}} +{\begin{minipage}{.4\linewidth} +\hfill$\bigstar\bigstar$\newline +\underline{\phantom{1cm}}/ 2 pt +\end{minipage} +\raisebox{-1.3\baselineskip}{ +\begin{minipage}{.5\linewidth} +\begin{esercizio} +Testo dell'esercizio +che voglio somministrare +\end{esercizio} +\end{minipage}}} +% \iffalse +%</example> +% \fi +% +% +%\DescribeMacro{\partialpt}Il comando |\partialpt|, da non confondere con l'opzione omonima |partialpt| dell'ambiente |esercizio|, permette di riportare il punteggio parziale per le domande di un esercizio. Questo viene stampato a margine e racchiuso tra parentesi tonde.\\ +% \iffalse +%<*example> +% \fi +\example +{\begin{esercizio} +\begin{enumerate} +\item\partialpt{1} Domanda 1 +\item\partialpt{3} Domanda 2 +\end{enumerate} +\end{esercizio}} +{\begin{minipage}[t]{.3\linewidth} +\vspace{-1.3em} +\phantom{1cm/ 4 pt\\[.5em]} +\vspace{.9em} +(1 pt)\\ +(3 pt) +\end{minipage} +\raisebox{\baselineskip}{ +\begin{minipage}[t]{.6\linewidth} +\begin{esercizio} +\begin{enumerate}[leftmargin=*] +\item Domanda 1 +\item Domanda 2 +\end{enumerate} +\end{esercizio} +\end{minipage}} +} +% \iffalse +%</example> +% \fi +% +%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.\\ +% +% \iffalse +%<*example> +% \fi +\example +{\begin{esercizio}[partialpt] +\begin{enumerate} +\item\partialpt{1} Domanda 1 +\item\partialpt{3} Domanda 2 +\end{enumerate} +\end{esercizio}} +{\begin{minipage}[t]{.4\linewidth} +\vspace{-1.3em} +\underline{\phantom{1cm}}/ 4 pt\\[.5em] +\vspace{.8em} +(1 pt)\\ +(3 pt) +\end{minipage} +\raisebox{.5\baselineskip}{ +\begin{minipage}[t]{.53\linewidth} +\begin{esercizio} +\begin{enumerate}[leftmargin=*] +\footnotesize +\item Domanda 1 +\item Domanda 2 +\end{enumerate} +\end{esercizio} +\end{minipage}} +} +% \iffalse +%</example> +% \fi +% +% +%Il punteggio dei quesiti può essere richiamato in qualunque punto del documento attraverso il comando +%\begin{center} |\ref{ptes@|\meta{n.es}|}|\end{center} +%dove \meta{n.es} indica il numero dell'esercizio riportato nell'intestazione dello stesso. +% +%\vspace{1em} +%\DescribeEnv{esercizio*}L'ambiente |esercizio| produce sempre quesiti numerati. Se si desidera indicare test non numerati è possibile farlo tramite l'ambiente |esercizio*| che prevede gli stessi argomenti opzionali definiti per l'ambiente precedente. +% +% \iffalse +%<*example> +% \fi +\begin{lstlisting} +\begin{esercizio*}[label=*@\meta{label}@*,diff=*@\meta{number}@*,pt=*@\meta{number}@*,partialpt] +... +\end{esercizio*} +\end{lstlisting} +% \iffalse +%</example> +% \fi +% +% \iffalse +%<*example> +% \fi +\example +{\begin{esercizio*}[pt=2] +Testo dell'esercizio +che voglio somministrare +\end{esercizio*}} +{\begin{minipage}{.4\linewidth} +\underline{\phantom{1cm}}/ 2 pt +\end{minipage} +\raisebox{-1.8\baselineskip}{ +\begin{minipage}{.5\linewidth} +\begin{esercizio*} +Testo dell'esercizio +che voglio somministrare +\end{esercizio*} +\end{minipage}}} +% \iffalse +%</example> +% \fi +% +% +%\vspace{1em} +%\DescribeEnv{soluzione}\label{sec:solutions}L'ambiente |soluzione| racchiude al suo interno tutto il materiale utile ad essere visualizzato solo in presenza dell'\emph{opzione} |solutions| del pacchetto \textsf{verifiche}. Quando il pacchetto è in modalità "test" il contenuto dell'ambiente |soluzione| viene ignorato. +% +% \iffalse +%<*example> +% \fi +\begin{lstlisting} +\begin{soluzione} +... +\end{soluzione} +\end{lstlisting} +% \iffalse +%</example> +% \fi +% +% \iffalse +%<*example> +% \fi +\example +{\begin{soluzione} +Testo della soluzione +dell'esercizio somministrato +\end{soluzione}} +{\begin{soluzione} +Testo della soluzione +dell'esercizio somministrato +\end{soluzione}} +% \iffalse +%</example> +% \fi +% +%\DescribeMacro{\inlinesol}Il pacchetto presenta il comando |\inlinesol| per produrre soluzioni in line, ovvero testo che in modalità "test" viene ignorato, ma che invece viene visualizzato nella modalità "soluzioni" (opzione |solutions| del pacchetto). +% \iffalse +%<*example> +% \fi +\begin{lstlisting} +\inlinesol*@\marg{testo}@* +\end{lstlisting} +% \iffalse +%</example> +% \fi +% +% \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} +% \iffalse +%</example> +% \fi +% +% +%\DescribeMacro{\completetext}Gli esercizi di completamento del testo possono venir realizzati tramite il comando: +% \iffalse +%<*example> +% \fi +\begin{lstlisting} +\completetext*@\oarg{dim}\marg{testo}@* +\end{lstlisting} +% \iffalse +%</example> +% \fi +%che produce uno spazio vuoto largo \meta{dim} (che di default è di \SI{4.5}{cm}) e che in modalità "soluzioni" riproduce il \meta{testo}. +% +% \iffalse +%<*example> +% \fi +\example{La \completetext[2cm]{soluzione}}{ +\solfalse La \completetext[2cm]{soluzione}\\ +\soltrue La \completetext[2cm]{soluzione}} +% \iffalse +%</example> +% \fi +% +% +%\DescribeMacro{\truefalse}I quesiti con domande vero-falso possono essere realizzati tramite il comando +% \iffalse +%<*example> +% \fi +\begin{lstlisting} +\truefalse*@\marg{V/F}@* +\end{lstlisting} +% \iffalse +%</example> +% \fi +%Il comando produce due riquadri quadrati allineati con le lettere \texttt V e \texttt F; l'argomento obbligatorio richiede di indicare la lettera |V| o |F| al fine di poter realizzare un segno di spunta ($\checkmark$) sulla casella giusta nella modalità |solutions| del pacchetto. +% \iffalse +%<*example> +% \fi +\example{Vero o Falso? \truefalse{V}}{ +\solfalse Vero o Falso? \truefalse{V}\\ +\soltrue Vero o Falso? \truefalse{V}} +% \iffalse +%</example> +% \fi +% +% +%\DescribeEnv{closedquestion}Le domande a scelta multipla possono essere realizzate tramite l'ambiente |closedquestion|. Ogni opzione deve essere anticipata dal comando \DescribeMacro{\item}|\item| che realizza un quadrato davanti ad ogni voce. Queste poi vengono spaziate orizzontalmente in modo da riempire tutto lo spazio disponibile. Eventuali elenchi verticali possono essere realizzati introducendo a mano una nuova linea (|\\|). La soluzione (o le soluzioni) possono essere segnate tramite il comando \DescribeMacro{\checked}|\checked| posto come argomento opzionale del comando |\item| e che, nella modalità |solutions|, produce un segno di spunta ($\checkmark$) sulla casella selezionata. +% +% \iffalse +%<*example> +% \fi +\example +{\begin{closedquestion} +\item Primo +\item[\checked] Secondo\\ +\item Terzo +\item Quarto +\end{closedquestion}} +{\begin{closedquestion} +\item Primo +\item[\checked] Secondo +\end{closedquestion}\\ +\begin{closedquestion} +\item Terzo +\item Quarto +\end{closedquestion}} +% \iffalse +%</example> +% \fi +% +% +%\DescribeMacro{\openquestion}Il comando produce una base di supporto per la scrittura, ovvero delle linee o dei quadretti. La sintassi del comando è la seguente: +% \iffalse +%<*example> +% \fi +\begin{lstlisting} +\openquestion[type=*@\meta{lines/squares}@*, width=*@\meta{dim}@*, height=*@\meta{dim}@*, + spacedim=*@\meta{dim}@*, linecolor=*@\meta{color}@*]*@\marg{soluzione}@* +\end{lstlisting} +% \iffalse +%</example> +% \fi +%La il testo dell'argomento obbligatorio (\meta{soluzione}) viene visualizzato solo in modalità |solutions|. +%Il comando gestisce alcune opzioni:\\ +% +%\begin{tabular}{ll} +%|type| & accetta due valori: \texttt{lines} e \texttt{squares} (default: |lines|)\\ +%|width| & gestisce la dimensione orizzontale del campo di testo (default: 12 cm)\\ +%|height| & gestisce la dimensione verticale del campo di testo (default: 20 cm)\\ +%|spacedim|& gestisce la dimensione dei quadretti o delle linee (default: 0.5 cm)\\ +%|linecolor| & colore delle linee guida (default: gray) +%\end{tabular} +%\vspace{1em} +% +% +% \iffalse +%<*example> +% \fi +\example +{\openquestion{ + Prova del testo della soluzione + della domanda aperta +}} +{\openquestion[width=4cm, height=2cm]{Prova del testo della soluzione della domanda aperta}} +% \iffalse +%</example> +% \fi +% +% \iffalse +%<*example> +% \fi +\example +{\openquestion[type=squared]{ + Prova del testo della soluzione + della domanda aperta +}} +{\openquestion[type=squares, width=4cm, height=2cm]{Prova del testo della soluzione della domanda aperta}} +% \iffalse +%</example> +% \fi +% +% +%\DescribeMacro{\finderror}Gli esercizi della tipologia ‘‘trova l'errore’’ possono essere composti tramite il comando +% \iffalse +%<*example> +% \fi +\begin{lstlisting} +\finderror*@\marg{testo sbagliato}\marg{testo giusto}@* +\end{lstlisting} +% \iffalse +%</example> +% \fi +%Il comando visualizza la stringa \meta{testo sbagliato} nella modalità "test", mentre mostra una cancellatura ed il testo corretto nella modalità |solutions|.\\ +% +% +% \iffalse +%<*example> +% \fi +\example +{\finderror{sbagliato}{corretto}} +{\finderror{sbagliato}{corretto}} +% \iffalse +%</example> +% \fi +% +% +%\vspace{1em} +%\DescribeMacro{\textandimage}L'impaginazione del testo con affiancato un'immagine viene agevolato dal comando |\textandimage| che ha la seguente sintassi: +% \iffalse +%<*example> +% \fi +\begin{lstlisting} +\textandimage*@\oarg{left width}\oarg{right width}\marg{rx material}\marg{dx material}@* +\end{lstlisting} +% \iffalse +%</example> +% \fi +%Il \meta{rx material} viene affiancato all'\meta{dx material}. La larghezza della colonna sinistra (risp. destra) è controllata tramite l'argomento opzionale \meta{left width} (risp. \meta{right width}).\\ +% \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)}}} +% \iffalse +%</example> +% \fi +% +%\section{Personalizzazione} +%Il pacchetto prevede un certo numero di comandi definiti al fine di gestire l'aspetto del documento finale.\par +%Per l'intestazione tutti i font sono definiti secondo lo schema: +%\begin{center} +%\meta{comando intestazione}|font| +%\end{center} +%ed oltre a gestire l'aspetto del carattere, alcuni di questi, specificano la posizione occupata del testo ed eventuali prefissi. + +%\DescribeMacro{\institutefont}Il font dell'istituto, generato dal comando |\institute|, è gestito dal comando |\institutefont|. Per variare le caratteristiche del font è necessario ridefinire il comando: +%\iffalse +%<*example> +%\fi +\begin{lstlisting} +\renewcommand{\institutefont}[1]*@\marg{...}@* +\end{lstlisting} +%\iffalse +%</example> +%\fi +% +%\DescribeMacro{\asyearfont}Il font dell'anno scolastico, generato dal comando |\asyear|, è gestito dal comando |\asyearfont|. Per variare le caratteristiche del font è necessario ridefinire il comando: +%\iffalse +%<*example> +%\fi +\begin{lstlisting} +\renewcommand{\asyearfont}[1]*@\marg{...}@* +\end{lstlisting} +%\iffalse +%</example> +%\fi +% +%\DescribeMacro{\testtypefont}Il font tipo di test, generato dal comando |\testtype|, è gestito dal comando |\testtypefont|. Per variare le caratteristiche del font è necessario ridefinire il comando: +%\iffalse +%<*example> +%\fi +\begin{lstlisting} +\renewcommand{\testtypefont}[1]*@\marg{...}@* +\end{lstlisting} +%\iffalse +%</example> +%\fi +% +%\DescribeMacro{\instrunctionfont}Il font delle istruzioni, generate dal comando |\instrunction|, è gestito dal comando |\instrunctionfont|. Per variare le caratteristiche del font è necessario ridefinire il comando: +%\iffalse +%<*example> +%\fi +\begin{lstlisting} +\renewcommand{\instrunctionfont}[1]*@\marg{...}@* +\end{lstlisting} +%\iffalse +%</example> +%\fi +% +%\DescribeMacro{\instructiondelimiter}Le istruzioni e la durata della prova sono racchiuse tra due delimitatori che normalmente sono due righe orizzontali. Per cambiare, o rimuovere, questi delimitatori è sufficiente ridefinire il seguente comando: +%\iffalse +%<*example> +%\fi +\begin{lstlisting} +\renewcommand{\instructiondelimiter}*@\marg{...}@* +\end{lstlisting} +%\iffalse +%</example> +%\fi +% +%\DescribeMacro{\eserciziolabel}Gli esercizi vengono inseriti anteponendo al loro testo la dicitura ‘‘Quesito’’ seguito (eventualmente) da un numero. Per cambiare questa dicitura, a livello globale, ovvero per ogni esercizio, è sufficiente ridefinire il comando |\eserciziolabel|. +%\iffalse +%<*example> +%\fi +\begin{lstlisting} +\renewcommand{\eserciziolabel}*@\marg{Preambolo dell'esercizio}@* +\end{lstlisting} +%\iffalse +%</example> +%\fi +% +%\DescribeMacro{\diffsymb}L'ambiente esercizi prevede di poter descrivere la difficoltà tramite un simbolo grafico. Di default questo è una stella ($\bigstar$), tuttavia è possibile cambiare il tipo di simbolo ridefinendo il comando |\diffsymb|: +%\iffalse +%<*example> +%\fi +\begin{lstlisting} +\renewcommand{\diffsymb}*@\marg{codice del simbolo}@* +\end{lstlisting} +%\iffalse +%</example> +%\fi +% +%\DescribeMacro{\closedquestionitem}Il simbolo delle domande chiuse è controllato dal comando |\closedquestionitem| che di default è un quadrato ($\square$). Per modificare questo simbolo è sufficiente ridefinire il comando: +%\iffalse +%<*example> +%\fi +\begin{lstlisting} +\renewcommand{\closedquestionitem}*@\marg{codice del simbolo}@* +\end{lstlisting} +%\iffalse +%</example> +%\fi + +% +%\DescribeMacro{\solutionfont}Le soluzioni degli esercizi vengono stampate, quando viene esplicitata l'opzione |solutions| quando viene caricato il pacchetto, con un font più piccolo e in corsivo. Per modificare il font delle soluzioni è sufficiente ridefinire il comando |\solutionfont|: +%\iffalse +%<*example> +%\fi +\begin{lstlisting} +\renewcommand{\solutionfont}*@\marg{...}@* +\end{lstlisting} +%\iffalse +%</example> +%\fi +% +% +% \StopEventually{\clearpage\PrintChanges \clearpage\PrintIndex} +% \section{Implementation} +%\subsection{Require packages} +% The implementation of the \textsf{verifiche} package starts with the required packages: +% \begin{macrocode} +\RequirePackage{xparse} +\RequirePackage{xkeyval} +\RequirePackage{amsmath} +\RequirePackage{amssymb} +\RequirePackage{pgffor} +\RequirePackage[shortlabels, inline]{enumitem} +\RequirePackage{siunitx} +\RequirePackage{graphicx} +\RequirePackage{xcolor} +\RequirePackage{tikz} +\RequirePackage{booktabs} +\RequirePackage{fancyhdr} +\RequirePackage[normalem]{ulem} +\RequirePackage{xstring} +% \end{macrocode} +% +% +%\subsection{Packages and library options} +%The package loads |tikz| and some useful library. +%The |siunitx| package is tuned in order to be used for the Italian math document. +%\iffalse +%%Forse si può cancellare questo +%\fi +% \begin{macrocode} +\usetikzlibrary{calc,shapes.geometric,patterns,positioning,angles,quotes} +\sisetup{ + output-decimal-marker = {,}, + exponent-product = \cdot, + per-mode=symbol-or-fraction, + separate-uncertainty +} +% \end{macrocode} +%Finally the indentation is turned off. +% \begin{macrocode} +\setlength\parindent{0pt} +% \end{macrocode} +% +%\subsection{newif} +%Some conditionals are defined and initiated: +%\iffalse +%%newif +%\fi +% \begin{macrocode} +\newif\ifsol +\newif\ifinstitute\institutetrue +\newif\ifinstruction\instructiontrue +\newif\ifduration\durationtrue +\newif\ifasyear\asyeartrue +\newif\ifsolutionscolor\solutionscolorfalse +\newif\ifcandidatename\candidatenametrue +\newif\iftesttype\testtypetrue +\newif\ifprintedheading\printedheadingfalse +\newif\ifexercisesnumbered\exercisesnumberedtrue +\newif\ifshowmarginexercise\showmarginexercisefalse +\newif\ifopenquestionlines\openquestionlinesfalse +\newif\ifopenquestionsquared\openquestionsquaredfalse +% \end{macrocode} +%\subsection{Package options declaration} +%The package provides some options to control the aspect of the document and the mode of the document ("test" mode or "solutions" mode). +%\iffalse +%%Package option declaration +%\fi +% \begin{macrocode} +\DeclareOptionX{solutions}[]{\soltrue} +\DeclareOptionX{noinstitute}[]{\institutefalse} +\DeclareOptionX{noinstruction}[]{\instructionfalse} +\DeclareOptionX{noduration}[]{\durationfalse} +\DeclareOptionX{noasyear}[]{\asyearfalse} +\DeclareOptionX{nocandidatename}[]{\candidatenamefalse} +\DeclareOptionX{notesttype}[]{\testtypefalse} +\DeclareOptionX{nonumbered}[]{\exercisesnumberedfalse} +\DeclareOptionX{color}[red]{\solutionscolortrue\def\solutionscolor{#1}} +\DeclareOptionX{red}[]{\ExecuteOptionsX{color=red}} +\DeclareOptionX{blue}[]{\ExecuteOptionsX{color=blue}} +\DeclareOptionX*{\PackageWarning{verifiche}{Unknown ‘\CurrentOption’}} +\ProcessOptionsX +% \end{macrocode} +% +%\subsection{Counters} +%The package use some predefined counters: the number of the exercise is controlled by |exercisenumber|, while the partial points of an exercise are summed into |partialpoints| (and it's reseted every new exercise) to produce the sum of the partial points for a given exercise. +%\iffalse +%%counters +%\fi +% \begin{macrocode} +\newcounter{exercisenumber} +\newcounter{partialpoints}[exercisenumber] +% \end{macrocode} +%\subsection{Macro and environment} +%\iffalse +%%macro and environment +%\fi +%\paragraph{Global variables}The package defined some global variable, that are used to indicate the institute, the year, the duration of the test, its type, the instructions and the scolar year. +%\iffalse +%%global variable +%\fi +% \begin{macrocode} +\newcommand{\institute}[1]{% + \gdef\@institute{#1}} +\newcommand{\duration}[2][Tempo della prova:]{% + \gdef\@durationpreamble{#1}\gdef\@duration{#2}} +\newcommand{\testtype}[1]{% + \gdef\@testtype{#1}} +\newcommand{\instruction}[1]{% + \gdef\@instruction{#1}} +\newcommand{\asyear}[2][Anno scolastico]{% + \gdef\@asyearpreamble{#1}\gdef\@asyear{#2}} +% \end{macrocode} +% +%\paragraph{Fonts and aspects} +%One of the feature of this package is the flexibility about the aspect of the final result. All the main font or typographic elements (like instructions delimiters or the difficulty symbol) are defined as macro. +%\iffalse +%%fonts and aspects +%\fi +% \begin{macrocode} +\newcommand{\institutefont}[1]{% + \large \sffamily\color{darkgray}#1} +% \end{macrocode} +% \begin{macrocode} +\newcommand{\asyearfont}[1]{% + \hspace*{\fill} #1\hspace*{\fill}\\[.5em]} +% \end{macrocode} +% \begin{macrocode} +\newcommand{\testtypefont}[1]{% + \hspace*{\fill}\scshape\huge#1\hspace*{\fill}} +% \end{macrocode} +% \begin{macrocode} +\newcommand{\instructiondelimiter}{% + \rule{\textwidth}{.5pt}} +% \end{macrocode} +% \begin{macrocode} +\newcommand{\instrunctionfont}[1]{% + \sffamily#1} +% \end{macrocode} +% \begin{macrocode} +\newcommand{\durationfont}[1]{% + \hspace*{\fill}\@durationpreamble\space\bfseries #1\hspace*{\fill}} +% \end{macrocode} +% \begin{macrocode} +\newcommand{\eserciziolabel}{% + Quesito} +% \end{macrocode} +% \begin{macrocode} +\newcommand{\solutionfont}{% + \footnotesize\ifsolutionscolor\color{\solutionscolor}\fi\itshape} +% \end{macrocode} +% \begin{macrocode} +\newcommand{\diffsymb}{% + $\bigstar$} +% \end{macrocode} +% \begin{macrocode} +\newcommand{\closedquestionitem}{% + $\square$} +% \end{macrocode} +% +%\paragraph{Print the heading}The purpose of |\printheading| macro is to typeset the headings of the page, printing the name of the institute (if included), the type of the test (if included) and so on. +%\iffalse +%%print headings +%\fi +% \begin{macrocode} +\newcommand{\printheading}{% + \ifinstitute\pagestyle{fancy}\fi% + {\ifinstitute\chead{\institutefont{\@institute}}\fi}% + {\ifcandidatename\vspace*{.25em}Nome e Cognome \underline{\hspace{6cm}}% + \hfill Classe \underline{\hspace{1.5cm}} \hfill Data \underline{\hspace{2.5cm}}\\[1em]\fi}% + {\ifasyear \asyearfont{\@asyearpreamble\space\@asyear}\fi}% + {\iftesttype\testtypefont{\@testtype}\fi}\\% + {\ifinstruction\instructiondelimiter\\{\instrunctionfont{\@instruction}}\\% + \ifduration{\durationfont\@duration\\}\fi\instructiondelimiter\fi}% +} +% \end{macrocode} + +%\paragraph{Esercizio.} The main element of the package is the |esericizio| environment. +%It accepts some options define via |xkeyval| package. The element that are reproduced in the left margin are stored into a box and produce if |showmargin| boolean variable is switch to \textit{true}.\par +%\iffalse +%%ambiente esercizio +%\fi +% \begin{macrocode} +\define@key{esercizio}{label}[Quesito]{% + \def\tempeserciziolabel{#1}}% +\define@key{esercizio}{diff}[none]{ + \def\diffstar{\hfill\foreach \i in {1,..., #1}{\diffsymb}}% + \showmarginexercisetrue}% +\define@key{esercizio}{pt}[none]{ + \def\pointes{#1}% + \def\espoint{\hfill\underline{\hspace{1cm}}/\pointes pt}% + \showmarginexercisetrue}% +\define@key{esercizio}{partialpt}[none]{% + \def\sumpartialpt{\underline{\hspace{1cm}}/\ref{ptes@\theexercisenumber} pt}% + \showmarginexercisetrue}% +% \end{macrocode} +% +% +%The part of the exercise (i.e. the title and the margin note) are stored into macro in order to streamline the code. +% \begin{macrocode} +\newcommand{\exercisetitle}{% + \ifdefined\tempeserciziolabel\tempeserciziolabel% + \else \eserciziolabel\fi% +} +% \end{macrocode} +% +% \begin{macrocode} +\newsavebox{\box@marginexercise} +% \end{macrocode} +% +% \begin{macrocode} +\newcommand{\exercisemargin}{% + \sbox{\box@marginexercise}{\parbox[t]{\marginparwidth}{% + \ifdefined\diffstar\hfill\diffstar\par\fi% stelle di difficoltà + \ifdefined\espoint\hfill\espoint\par\fi%[-\baselineskip] %punteggio + \ifdefined\sumpartialpt\hfill\sumpartialpt\fi} %punteggio parziale automatico + }% + \reversemarginpar\marginpar{\usebox{\box@marginexercise}}% +}% +% \end{macrocode} +% +% If the exercise admit points, they are stored in the .aux file of the main document in order to be recalled via |\ref| command. +% \begin{macrocode} +\newcommand{\savepointsaux}{% + \ifdefined\sumpartialpt% + \protected@write \@auxout {}{\string\newlabel {ptes@\theexercisenumber}{{\thepartialpoints}{}}}% + \fi% + \ifdefined\espoint% + \protected@write \@auxout {}{\string\newlabel {ptes@\theexercisenumber}{{\pointes}{}}}% + \fi% +}% +% \end{macrocode} + +%\begin{environment}{esercizio} +%The content of the exercise are managed by the |esercizio| environment. +%For every |esercizio| the counter |exercisenumber| is increased, the |showmarginexercise| are reset to false (to avoid the generation of spurious margin note if unnecessary) and the keys are set. +%After that, the code produces the label of the environment, the body and manages the space before e after the environment in the page. If the exercise presents some scores, they are stored via |savepointsaux|. +% \begin{macrocode} +\NewDocumentEnvironment{esercizio}{o +b}{% + \refstepcounter{exercisenumber}% + \showmarginexercisefalse% + \IfValueT{#1}{\setkeys{esercizio}{#1}}% + \par\addvspace{\baselineskip}% + {\noindent\bfseries\exercisetitle\ifexercisesnumbered\space\theexercisenumber\fi}% + \ifshowmarginexercise\exercisemargin\fi% + \par% newline after label + \nobreak\noindent\ignorespaces#2%body of the environment +}{% + \par% + \ignorespacesafterend% + \savepointsaux% +}% +% \end{macrocode} +%\end{environment} +% +% +%\begin{environment}{esercizio*} +%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}{% + \showmarginexercisefalse% + \IfValueT{#1}{\setkeys{esercizio}{#1}}% + \par\addvspace{\baselineskip}{\noindent\bfseries\exercisetitle}% + \ifshowmarginexercise\exercisemargin\fi% + \par% newline after label + \nobreak\noindent\ignorespaces#2% body of the environment +}{% + \par% + \ignorespacesafterend + \savepointsaux%print partial pt sum +}% +% \end{macrocode} +%\end{environment} +% +%\begin{macro}{\partialpt}The |partialpt| macro define the content of the margin note where it's used. +% \begin{macrocode} +\NewDocumentCommand{\partialpt}{m}{% + \leavevmode\reversemarginpar\marginpar{\hfill(#1 pt)\addtocounter{partialpoints}{#1}}% +} +% \end{macrocode} +%\end{macro} +%\paragraph{Soluzione} +%\begin{environment}{soluzione} +%The main element for the "solutions" mode is the |soluzione| environment. +% \begin{macrocode} +\NewDocumentEnvironment{soluzione}{+b}{% + \ifsol% + \par\addvspace{\baselineskip}% + {\noindent\bfseries Soluzione}% + \par\nobreak\noindent\ignorespaces% + \solutionfont #1% + \fi% +}{% + \ifsol% + \par\ignorespacesafterend + \fi% +}% +% \end{macrocode} +%\end{environment} +% +%\begin{macro}{\inlinesol} +%The code inside |\inlinesol| is composed only if in "solutions" mode. +% \begin{macrocode} +\newcommand{\inlinesol}[1]{% + \ifsol% + \bgroup% + \ifmmode\mathit{\solutionfont#1}% + \else{\solutionfont#1}% + \fi% + \egroup% + \else\ignorespaces% + \fi% +} +% \end{macrocode} +%\end{macro} +% +% +%\begin{macro}{\completetext} +%The |\completetext| print a horizontal line on which write the solution if the "solutions" mode is active. +% \begin{macrocode} +\newcommand{\completetext}[2][4.5cm]{% + \ifsol% + $\overset{\displaystyle\text{\solutionfont#2}}{\underline{\hspace{#1}}}$% + \else% + $\overset{\relax}{\underline{\hspace{#1}}}$% + \fi}% +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\truefalse} +%The |\truefalse| is generated via |\tikz| macro. +% \begin{macrocode} +\newcommand{\truefalse}[1]{% + \tikz[baseline=-.8ex]{% + %true part + \node[draw, rectangle, minimum size=1.5em] {V};% + \ifsol\IfSubStr{#1}{V}{\node[shift={(1pt,1pt)}]{% + $\Large\ifsolutionscolor\color{\solutionscolor}\fi\checkmark$}}{};\fi% + %false part + \node[xshift=1cm, draw, rectangle, minimum size=1.5em]{F};% + \ifsol\IfSubStr{#1}{F}{\node[xshift=1cm, shift={(1pt,1pt)}]{% + $\Large\ifsolutionscolor\color{\solutionscolor}\fi\checkmark$}}{};\fi% + }% +} +% \end{macrocode} +%\end{macro} +% +% +%\begin{macro}{\finderror} +%The |\finderror| write the wrong text in "test mode" and than superimpose some mark (thanks to \textsf{ulem} package) and the correct text in "solutions mode". +% \begin{macrocode} +\newcommand{\finderror}[2]{% + \ifsol% + $\overset{\text{{\solutionfont#2}}}{\text{\xout{#1}}}$% + \else% + #1% + \fi% +} +% \end{macrocode} +%\end{macro} +% +% +%\begin{environment}{closedquestion} +%The |closedquestion| environment define a new list whose item elements are preceded by square symbol, and every item is |\hfill| spaced. The |\checked| symbol is controlled and generated (in the "solutions mode") via |\tikz|. +% \begin{macrocode} +\newlist{crocette}{itemize*}{1}% +\setlist[crocette]{label=\closedquestionitem, itemjoin={\hfill}}% +\newcommand{\checked}{% + \ifsol% + \closedquestionitem\tikz[remember picture, overlay, baseline=-1ex, xshift=-.7ex] + {\node{\ifsolutionscolor\color{\solutionscolor}\fi$\checkmark$};} + \else + \closedquestionitem + \fi} +\NewDocumentEnvironment{closedquestion}{+b}{% + \begin{crocette}#1% +}{% + \end{crocette} +} +% \end{macrocode} +%\end{environment} + +%\begin{macro}{\openquestion} +%The |\openquestion| use key-value options defined as following presented. +% \begin{macrocode} +\define@key{openquestion}{width}[\linewidth]{\def\openquestionwidth{#1}} +\define@key{openquestion}{height}[19cm]{\def\openquestionheight{#1}} +\define@key{openquestion}{spacedim}[0.5cm]{\def\spacedim{#1}} +\define@key{openquestion}{linecolor}[gray]{\def\openquestionlinecolor{#1}} +\define@choicekey*+{openquestion}{type}[\val\nr]{lines, squares}[lines]{% + \ifcase\nr\relax% + % lines + \openquestionsquaredfalse\openquestionlinestrue% + \or% + % squares + \openquestionsquaredtrue\openquestionlinesfalse% + \fi}% + {\PackageError{verifiche}{Errore nell'opzione openquestion}{Inserire lines o squares}} +% \end{macrocode} +% +%The macro starts with an initiation of predefined type of |\openquestion|, than possible options are overloaded. +%Depending on the |type| of the |\openquestion|, squared or ruled background is composed and in the foreground is reproduce the text of the argument of the command (in the "solutions mode"). +% \begin{macrocode} +\NewDocumentCommand{\openquestion}{o m}{% + \setkeys{openquestion}{type, width, height, linecolor, spacedim} %init + \IfValueT{#1}{\setkeys{openquestion}{#1}}% + \ifopenquestionsquared% if squared open question + \begin{tikzpicture}% + \draw[step=\spacedim, \openquestionlinecolor]% + (0,0) grid (\openquestionwidth,-\openquestionheight);% + \node[anchor=base west, align=left, text width=\openquestionwidth,% + inner sep=0cm, font=\solutionfont, execute at begin node=\setlength{\baselineskip}{\spacedim}]% + at (0, -\spacedim){\ifsol#2\fi}; + \end{tikzpicture}% + \else% if lined open question + \begin{tikzpicture}% + \pgfmathparse{int(\openquestionheight/\spacedim)}% + \foreach \y in {1, ..., \pgfmathresult}% + \draw[\openquestionlinecolor] (0, -\y*\spacedim) -- +(\openquestionwidth,0);% + \node[anchor=base west,align=left, text width=\openquestionwidth,% + inner sep=0cm, font=\solutionfont, execute at begin node=\setlength{\baselineskip}{\spacedim}]% + at (0, -\spacedim){\ifsol#2\fi};% + \end{tikzpicture}% + \fi% +} +% \end{macrocode} +%\end{macro} +% +% +%\begin{macro}{\textandimage} +%The |\textandimage| manages two column material via |minipage| environment. +% \begin{macrocode} +\NewDocumentCommand{\textandimage}{O{.7\textwidth} O{.3\textwidth} m m}{% + \begin{minipage}{#1} + {#3} + \end{minipage} + \hfill + \begin{minipage}{#2} + {#4} + \end{minipage} +} +% \end{macrocode} +%\end{macro} +% \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 new file mode 100644 index 00000000000..8063f393f6c --- /dev/null +++ b/Master/texmf-dist/source/latex/verifiche/verifiche.ins @@ -0,0 +1,41 @@ +%% +%% Copyright (C) 2020 i 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 +%% version. The latest version of this license is in: +%% +%% http://www.latex-project.org/lppl.txt +%% +%% and version 1.3 or later is part of all distributions of +%% LaTeX version 2005/12/01 or later. +%% +\input docstrip.tex +\keepsilent +\usedir{tex/latex/verifiche} +\preamble +This is a generated file. +Copyright (C) 2020 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 +version. The latest version of this license is in: +http://www.latex-project.org/lppl.txt +and version 1.3 or later is part of all distributions of +LaTeX version 2005/12/01 or later. +\endpreamble +\generate{\file{verifiche.sty}{\from{verifiche.dtx}{package}}} +\Msg{*********************************************************} +\Msg{*} +\Msg{* To finish the installation you have to move the} +\Msg{* following file into a directory searched by TeX:} +\Msg{*} +\Msg{* \space\space verifiche.sty} +\Msg{*} +\Msg{* To produce the documentation run the file verifiche.dtx} +\Msg{* through LaTeX.} +\Msg{*} +\Msg{* Happy TeXing!} +\Msg{*********************************************************} +\endbatchfile
\ No newline at end of file |