diff options
18 files changed, 973 insertions, 35 deletions
diff --git a/Master/texmf-dist/doc/latex/esami/doc/esami-doc-en.pdf b/Master/texmf-dist/doc/latex/esami/doc/esami-doc-en.pdf Binary files differindex 50f4ea70ac2..76d9c2c4237 100644 --- a/Master/texmf-dist/doc/latex/esami/doc/esami-doc-en.pdf +++ b/Master/texmf-dist/doc/latex/esami/doc/esami-doc-en.pdf diff --git a/Master/texmf-dist/doc/latex/esami/doc/esami-doc-en.tex b/Master/texmf-dist/doc/latex/esami/doc/esami-doc-en.tex index d7d835c16ce..80e2e2e7cd2 100644 --- a/Master/texmf-dist/doc/latex/esami/doc/esami-doc-en.tex +++ b/Master/texmf-dist/doc/latex/esami/doc/esami-doc-en.tex @@ -69,7 +69,8 @@ % Right brace \} Tilde \~} % -\changes{Versione 1.0}{2012/03/08}{First version released to CTAN} +\changes{Version 1.0}{2013/03/08}{First version released to CTAN} +\changes{Version 1.1}{2013/12/09}{Inserted the dependance on the package \texttt{environ} to remove some errors in the \LaTeX\ compilation. Removed the dependance on the package \texttt{icomma} in the italian localization file es-italian.lng because of the introduction of new features in the package \texttt{babel} for the Italian langaguage (macro \texttt{IntelligentComma}).} \IndexPrologue{\section*{Index} Numbers written in italic refer to the page where the item is described; underlined numebers refer to the line of code in which the item is described; other references are to the line of code where the item is used.} \GlossaryPrologue{\section*{Changelog}} @@ -79,8 +80,8 @@ \fontshape\updefault \footnotesize} \GetFileInfo{esami.sty} -\def\fileversion{version 1.0} -\def\filedate{2013/03/08} +\def\fileversion{versione 1.1} +\def\filedate{2013/12/09} \title{Package esami\thanks{This document @@ -117,9 +118,10 @@ Moreover following packages are optional, but recommended: \item \pkgname{lmodern} and \pkgname{amsfonts}: useful for a good pdf output; \item \pkgname{numprint}: to have a better output and different formats for numbers, depending on language; \item \pkgname{icomma}: from \pkgname{ws} package, for a correct format of commas; -\item \pkgname{eurosym}: (optional) to use the euro symbol in Financial Mathematics exercises. +\item \pkgname{eurosym}: (optional) to use the euro symbol in Financial Mathematics exercises; +\item \pkgname{icomma}: from the package \pkgname{ws} for a correct formatting of commas. This package can be substituted, for the Italian language, by the macro \cmd{\IntelligentComma} of the package \pkgname{babel}: this is the default option in the italian localization file \texttt{es-italian.lng} and can be modified by commenting the macro \cmd{\IntelligentComma} (or by using the macro \cmd{\NoIntelligentComma}). \end{enumerate} -All these packages are available both in \TeX Live and in Mik\TeX. %%%FLAVIO +All these packages are available both in \TeX Live and in Mik\TeX. \section{Installation} @@ -686,7 +688,7 @@ The elements of the list must be comma separated. With the command \cmd{\estraialfa[2]\{a,b,c,d\}\{alpha\}} you choose 2 elements from the set, preserving the alphabetical order, and these elements will be named \cmd{\alphai} and \cmd{\alphaii}. \end{esempio} -\DescribeMacro{\estraies} \label{estraies} The command \cmd{\estraies}\oarg{m}\marg{list}\marg{name} works as the command \cmd{\estrai}, but only on a list of exercises. Once the elements nave been chosen, it prints them as the command \cmd{\esercizi}. +\DescribeMacro{\estraies} \label{estraies} The command \cmd{\estraies}\oarg{m}\marg{list}\marg{name} works as the command \cmd{\estrai}, but only on a list of exercises. Once the elements have been chosen, it prints them as the command \cmd{\esercizi}. \section{The auxiliary files} \subsection{The localisation file}\label{sec:lng} @@ -705,6 +707,11 @@ It is also possible to define the name of the parts in which the test is divided The file \texttt{totale-versioni} is used to generate all the variants of an exercise. With this file the package has always the option \optname{prova} and you can use the option \optname{param} to generate the parametric version of exercises. Inside this file you should use only one command, \cmd{\def \textbackslash esercizio \{name\}}, that should contain the name of the exercise to compile. If you compile the parametric version, the parameters and their intervals are shown at the end of the exercise. +\section{Changelog} +\begin{description} + \item[Version 1.0 (2013/03/08)]First version released to CTAN. + \item[Version 1.1 (2013/12/09)] Inserted the dependance on the package \texttt{environ} to remove some errors in the \LaTeX\ compilation. Removed the dependance on the package \texttt{icomma} in the italian localization file es-italian.lng because of the introduction of new features in the package \texttt{babel} for the Italian langaguage (macro \texttt{IntelligentComma}). +\end{description} \bibliographystyle{plain} \bibliography{esami} diff --git a/Master/texmf-dist/doc/latex/esami/doc/esami-doc-it.dtx b/Master/texmf-dist/doc/latex/esami/doc/esami-doc-it.dtx new file mode 100644 index 00000000000..53f0ad10dae --- /dev/null +++ b/Master/texmf-dist/doc/latex/esami/doc/esami-doc-it.dtx @@ -0,0 +1,827 @@ +%\documentclass[10pt]{article} + +%\iffalse This is a METACOMMENT +% +%<*driver> +%\ProvidesFile{esami.dtx} +\documentclass{ltxdoc} +%\usepackage[colorlinks,hyperindex]{hyperref} +%\usepackage{esami} +\usepackage[braces]{colordoc} +\usepackage[T1]{fontenc} +\usepackage{calc} +%\usepackage{textcomp} +\usepackage{lmodern} +\usepackage{comandi} +\usepackage[utf8]{inputenc} +\usepackage[italian]{babel} +\usepackage{graphicx} +\usepackage[dvipsnames,svgnames]{xcolor} +\usepackage{fancyvrb} +\usepackage[lmargin=3.5cm,rmargin=3.5cm]{geometry} +\usepackage[colorlinks=true,pdftex,hyperindex=true]{hyperref} +\newcounter{esempio} +\newsavebox{\fcolbox} %\newlength{\fcolwidth} +\newenvironment{esempio} +{\par \medskip +\begin{example} + } + {\end{example}\medskip} + +\newenvironment{example} +{\noindent\stepcounter{esempio}%\setlength{\fcolwidth}{\textwidth-2\fboxsep-2\fboxrule}% +\begin{lrbox}{\fcolbox}% +\begin{minipage}[c]{\textwidth-2\fboxsep-2\fboxrule} +\textbf{\textsf{Esempio \theesempio.}} +} +{\end{minipage}\end{lrbox}\fbox{\usebox{\fcolbox}}} + + +\EnableCrossrefs +\CodelineIndex +\PageIndex +\RecordChanges +\OnlyDescription +\CheckSum{345} +\begin{document} +%\GetFileInfo{esami.sty} +% \DocInput{esami.dtx} + %\PrintChanges + %\PrintIndex + +%</driver> +%\fi +% +% \CharacterTable +% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +% Digits \0\1\2\3\4\5\6\7\8\9 +% Exclamation \! Double quote \" Hash (number) \# +% Dollar \$ Percent \% Ampersand \& +% Acute accent \' Left paren \( Right paren \) +% Asterisk \* Plus \+ Comma \, +% Minus \- Point \. Solidus \/ +% Colon \: Semicolon \; Less than \< +% Equals \= Greater than \> Question mark \? +% Commercial at \@ Left bracket \[ Backslash \\ +% Right bracket \] Circumflex \^ Underscore \_ +% Grave accent \` Left brace \{ Vertical bar \| +% Right brace \} Tilde \~} +% + +\changes{Versione 1.0}{2013/03/08}{Prima versione rilasciata al CTAN} +\changes{Versione 1.1}{2013/12/09}{Reinserita la dipendenza dal pacchetto \texttt{environ} per eliminare alcuni errori nella compilazione con \LaTeX. Eliminata +la dipendenza dal pacchetto \texttt{icomma} nel file di localizzazione es-italian.lng a seguito dell'introduzione di nuove funzionalità nel pacchetto +\texttt{babel} per la lingua italiana (comando \texttt{IntelligentComma}).} + +%\IndexPrologue{\section*{Indice} I numeri scritti in italico rimandano alla pagina dove è descritto l'item; i numeri sottolineati rimandano alla riga di +codice in cui l'item è descritto; le altre referenze sono alla riga di codice dove l'item è usato. +\GlossaryPrologue{\section*{Changelog}} +\def\MacroFont{\fontencoding\encodingdefault +\fontfamily\ttdefault +\fontseries\mddefault +\fontshape\updefault +\footnotesize} +\GetFileInfo{esami.sty} +\def\fileversion{versione 1.1} +\def\filedate{2013/12/09} + + + \title{Il pacchetto esami\thanks{Questo documento + corrisponde al pacchetto \textsf{esami}~\fileversion, con data \filedate.}} + \author{Grazia Messineo <grazia.messineo@unicatt.it> \\ Salvatore Vassallo <salvatore.vassallo@unicatt.it>} +\newcommand{\nuovo}[1]{\marginpar{\raggedleft{ \footnotesize{\textsf{Nuovo #1}}}}} + + \maketitle + + \tableofcontents + \newpage +\newcommand*\pkgname[1]{\texttt{#1}} +\newcommand*\clsname[1]{\texttt{#1}} +\newcommand*\optname[1]{\emph{#1}} +\newcommand*\envname[1]{\textsf{#1}} + +%\section{Il pacchetto esami} +\section{Introduzione e motivazioni} +Il pacchetto \texttt{esami} è stato creato per produrre i testi e le soluzioni per gli esami di Matematica nella Facoltà di Economia dell'Università Cattolica +di Milano e nasce dall'esigenza di poter generare molte versioni (da 12 a 50 solitamente) di una stessa prova d'esame contenenti esercizi simili, ma diversi e +di stampare le soluzioni e, se fossero presenti domande a risposta chiusa, la stringa delle soluzioni. + +Il pacchetto consente di scrivere esercizi di vario tipo (a risposta multipla con risposte che variano in ordine casuale, a risposta chiusa o aperta, +\emph{matching}, problemi, ecc.). Le domande di ogni gruppo ruotano in modo casuale all'interno del compito e le varianti di ciascun esercizio vengono scelte +in modo casuale da un file che le contiene tutte e, a nostra conoscenza, è l'unico che permetta di ottenere tali risultati senza utilizzare programmi esterni a +\LaTeX. + +Lo sviluppo del pacchetto è iniziato nel 2008 con l'intento di estendere e unificare alcune proprietà dei pacchetti \pkgname{exerquiz} e \pkgname{eqexam} di +D.P. Story \cite{acrotex} e \pkgname{probsoln} di N.Talbot \cite{probsoln}. +\section{Pacchetti richiesti} +Il pacchetto \pkgname{esami} dipende da alcuni altri pacchetti non standard: +\begin{enumerate} +\item \pkgname{fp}: per le operazioni matematiche; +\item \pkgname{currfile}: per ottenere il nome del file e della cartella di lavoro; +\item \pkgname{xargs}: per avere più di un parametro opzionale; +\item \pkgname{pstricks}, \pkgname{pstricks-add} e \pkgname{auto-pst-pdf}: per i grafici; +\item \pkgname{environ}: per trasformare comandi in ambienti. +\end{enumerate} +Inoltre i seguenti pacchetti sono opzionali, ma raccomandati: +\begin{enumerate} + \item \pkgname{lmodern} and \pkgname{amsfonts}: necessari per un buon output in pdf; +\item \pkgname{numprint}: per un output migliore dei numeri e per avere formati numerici diversi a seconda del linguaggio; + \item \pkgname{eurosym}: per usare la valuta + \item \pkgname{icomma}: dal pacchetto \pkgname{ws} per una corretta formattazione delle virgole. Tale pacchetto può essere sostituito per la lingua + italiana dal comando \cmd{IntelligentComma} di \pkgname{babel}: questa opzione è di default nel file di localizzazione \texttt{es-italian.lng} e può + essere modificata commentando il comando \cmd{IntelligentComma} (o usando il comando \cmd{NoIntelligentComma}). +\end{enumerate} +Tutti i pacchetti sono disponibili sia in \TeX Live che in Mik\TeX. + +\section{Installazione} Il pacchetto è composto dal file {\tt esami.sty}, da alcuni file di configurazione {\tt *.cfg}, da 3 template per la compilazione e +dalla documentazione. Il file {\tt sty} e i file {\tt cfg} e {\tt lng} devono essere copiati in una cartella dove possano essere trovati da \LaTeX\ (ad esempio +{\tt texmf-local/tex/latex/esami} e in seguito deve essere aggiornato il database. + +\section{Come scrivere un esame} +In questa sezione si vedrà come costruire una prova d'esame usando il pacchetto \pkgname{esami}. + +\subsection{Il preambolo} +\begin{verbatim} +\documentclass[italian]{article} +\usepackage[<opzioni>]{esami} +\end{verbatim} +Le opzioni sono discusse nella sezione \ref{sec:opzioni} +\begin{verbatim} +\def\numcompiti{10} +\date{2013/04/21}%%% THE DATE IN THE FORMAT YYYY/MM/DD +\def\Data{\longdate}%%% or \shortdate: the date in the heading +\end{verbatim} +Il comando \cmd{\date} è quello solito di \LaTeX, ma la data deve essere scritta nel formato YYYY/MM/DD, mentre il comando \cmd{\numcompiti} serve a definire +il numero di versioni che devono essere generate. +Il comando \cmd{\Data} stamperà la data in formato lungo (D MMMM YYYY \cmd{\longdate}) o corto (D/M/YYYY \cmd{\shortdate}). +\subsection{Il documento} +\begin{verbatim} +\begin{document} +\pagestyle{esame} +%% \immediate\openout\sols=\thenomefile.sol.tex +\end{verbatim} + Il comando \cmd{\pagestyle} è definito in un file di configurazione (si veda la sezione \ref{sec:cfg}) e definisce gli header e i footer, il comando + commentato si usa nel file delle soluzioni per generare il file che contiene la stringa delle soluzioni. +\begin{verbatim} + \whiledo{\thevers<\numcompiti}{\stepvers +\end{verbatim} +inizia la routine di compilazione delle varianti che terminerà alla fine del documento. +\begin{verbatim} +\FPeval\seme{round((\thenomefile+\thevers):0)} +\randomi=\seme +\end{verbatim} +genera il seme per i processi di randomizzazione e lo assegna anche a \cmd{\randomi} +\begin{verbatim} +%%\immediate\write\sols{\string\begin{minipage}{.33\string\textwidth} + \string\large\string\textbf{Soluzione Versione n. \thevers}} +\testa +\istruzionii +\end{verbatim} + \cmd{\testa}, \cmd{\istruzionii} vengono definiti nel file di configurazione e contengono le istruzioni per la testata e delle eventuali istruzioni per lo + svolgimento dell'esame, mentre l'istruzione commentata serve nel file soluzioni per la stringa delle soluzioni. +\begin{verbatim} +\begin{test}[punti] +\begin{questions} +\esercizi{test1,test2,test3,test4} +\end{questions} +\end{test} +%%\immediate\write\sols{\string\par\string\end\string{enumerate\string}\string\end{minipage} +%% \string\vspace{1.5cm}} +\end{verbatim} +In questo modo si definisce un ambiente per un test tipicamente con domande a risposta multipla, il comando \cmd{\esercizi} serve per scegliere casualmente gli +esercizi dai file indicati e per rimescolarli. Come sopra i comandi commentati servono per il file soluzioni per generare la stringa delle soluzioni. +\begin{verbatim} +\esercizi{problema1, problema2} +\end{verbatim} + sceglie tra due esercizi a risposta aperta. +\begin{verbatim} +\closevers +} +%%\immediate\closeout\sols +%%\stringasol +\end{document} +\end{verbatim} +Termina la routine di compilazione, e, nel file delle soluzioni, chiude il file della stringa delle risposte. + + +\section{Le opzioni del pacchetto}\label{sec:opzioni} +Per usare il pacchetto bisogna usare il solito comando +\cmd{\usepackage}[\meta{options}]\{esami\}. Le opzioni possibili sono: + \begin{itemize} + \item {\color{blue}{\optname{allowrandomize}}} e {\color{blue}{\optname{norandomize}}}: la prima permette di permutare in modo casuale l'ordine delle + risposte nelle domande a risposta chiusa, la seconda di non permutarlo (di default le risposte vengono permutate in modo casuale). + \item {\color{blue}{\optname{shuffle}}}, {\color{blue}{\optname{shufflerandom}}} e {\color{blue}{\optname{noshuffle}}}: la prime due permettono di + permutare gli esercizi, la prima in modo deterministico se il numero degli esercizi è minore di 9 e casuale se è maggiore, la seconda del tutto + casualmente, la terza di non permutarli (l'opzione di default è \optname{shuffle}). + \item {\color{blue}{\optname{xyz}}}: Fa caricare un file di configurazione (\texttt{esami-xyz.cfg}) con nome dell'esame, istruzioni, ecc. relative a questo + esame. Nel file {\tt esami.sty} sono predefiniti alcune opzioni; è possibile caricare altre configurazioni definendole in {\tt esami.sty} o creare un + proprio file di configurazione e farlo leggere senza modificare il file {\tt esami.sty}: è sufficiente scrivere un'opzione sconosciuta (ad esempio + \verb|math|) e scrivere il file {\tt esami-math.cfg}. + \item {\color{blue}{\optname{pointsonright}}}: fa apparire la casella con il punteggio sulla destra dell'esercizio. Se l'opzione non è specificata, la + casella non appare. + \item {\color{blue}{\optname{nosolutions}}}: questa opzione genera il compito senza soluzioni (default). + \item {\color{blue}{\optname{solutions}}}: genera il file delle soluzioni. + \item {\color{blue}{\optname{prova}}}: si usa solo con il file {\tt totale-versioni} (si veda \ref{sec:totale}) e serve per visualizzare tutte le + varianti di un esercizio. Fa visualizzare automaticamente le risposte esatte negli esercizi a risposta multipla e la soluzione nei problemi da + svolgere. + \item {\color{blue}{\optname{param}}}: serve per visualizzare le lettere che rappresentano i parametri casuali anziché il valore numerico attribuito. + Stampa anche una frase iniziale, nella quale sono contenuti il valore iniziale e finale attribuiti ai parametri usati nell'esercizio. Può essere + usata solo insieme all'opzione \texttt{prova}. + \item {\color{blue}{\optname{correzione}}}: stampa solo i testi di tutti gli esercizi, senza soluzioni (funziona solo nel file {\tt totale-versioni}). + \item {\color{blue}{\optname{fillb}}}: da usare se nel compito ci sono esercizi di tipo \texttt{fillin}, per poter inserire le risposte corrette nella + stringa delle soluzioni. + \item {\color{blue}{\optname{twocolumns}}}: per scrivere il testo delle domande a risposta chiusa su due colonne (ma si veda anche \ref{duecolonne}). + \item {\color{blue}{\optname{sansserif}}}: usa caratteri sans serif: utile soprattutto se si usano le due colonne. + \item {\color{blue}{\optname{autopston}}} e {\color{blue}{\optname{autopstoff}}}: caricano il pacchetto \pkgname{auto-pst-pdf} e permettono di compilare + il file direttamente con pdflatex (anche se contiene codice di \pkgname{pstricks}). La prima opzione crea e include direttamente nel documento i file + delle immagini, la seconda non crea i file delle immagini (e rende più veloce la compilazione)\VerbatimFootnotes +\footnote{Per usare \pkgname{auto-pst-pdf} è necessario +abilitare \texttt{shell-escape} (\TeX Live) o \texttt{write18} (MiK\TeX) nell'esecuzione di pdflatex.}. +\item {\color{blue}{\optname{language}}}: legge il file di localizzazione es-language.lng (si veda \ref{sec:lngsec:lng}). Nel file sono contenute le + traduzioni delle etichette (esercizio, soluzione, \dots), dei messaggi d'errore, delle intestazioni contenute nel file (\texttt{esami-xyz.cfg}). Di + default viene caricato il file della lingua italiana. Poiché le opzioni linguistiche hanno lo stesso nome di quelle usate in \pkgname{babel} è possibile + passare l'opzione in \cmd{\documentclass}. + \end{itemize} + + \section{Gli esercizi} + \subsection{Le varianti} + Ogni esercizio (con tutte le sue varianti) va scritto in un file separato. +\DescribeMacro{\newproblem} +Ogni variante è racchiusa nel comando +\cmd{\newproblem\{ .... \}} (che non ha alcun argomento opzionale). +\begin{esempio} +\begin{verbatim} +%%%% Questo è il file file1.tex con 2 varianti di un esercizio +\newproblem{ Testo della prima variante} +\newproblem{Testo della seconda variante} +\end{verbatim} +\end{esempio} +Il comando \cmd{\newproblem} è una versione molto modificata dell'analogo comando del pacchetto \pkgname{probsoln}. +\subsection{L'ambiente test} +\DescribeEnv{test} +L'ambiente \envname{test} consente di scrivere esercizi a risposta multipla o a risposta aperta breve, in cui ciascuno dei quesiti è tratto casualmente da uno +dei file nel quale sono contenuti tutti gli esercizi con le rispettive varianti. + +L'ambiente viene creato dal comando +\begin{verbatim} + \begin{test}[punti] + ... + \end{test} +\end{verbatim} +\DescribeMacro{punti} +Il parametro opzionale \oarg{punti} può essere solo un numero intero maggiore o uguale a 1, che indica il punteggio \textbf{totale} attribuito all'intero +gruppo di domande. + +\DescribeEnv{questions} +I quesiti del gruppo, nel documento principale, sono racchiusi nell'ambiente \emph{questions} che è una versione modificata dell'ambiente omonimo del pacchetto +\pkgname{exerquiz}: +\begin{verbatim} + \begin{questions} + .... + \end{questions} +\end{verbatim} +È possibile inserire all'intero di un unico ambiente \envname{test} più ambienti \envname{questions}. Gli esercizi di ogni gruppo saranno mescolati +indipendentemente. +\begin{esempio} +\begin{verbatim} +\begin{test} + \begin{questions} + .... + \end{questions} +.... + \begin{questions} + .... + \end{questions} +\end{test} +\end{verbatim} +\end{esempio} +\DescribeMacro{\esercizi} +All'interno di tale ambiente, i quesiti vengono ``caricati'' dal comando +\begin{verbatim} + \esercizi{nome file sorgente 1, nome file sorgente 2,...} +\end{verbatim} +Il parametro obbligatorio è il nome di ciascuno degli esercizi +che si vogliono inserire nel test, separati da una virgola\footnote{In seguito +verranno introdotti altri comandi per il caricamento di esercizi}. + +È possibile sia inserire tutti gli esercizi con un unico comando, sia usare +più comandi \cmd{\esercizi} o \cmd{\estraies} (si veda \ref{estraies}).\label{duecolonne} +Questa possibilità è utile ad esempio se si vuole che ci siano esercizi da due +sottoinsiemi diversi (5 esercizi sui limiti scelti tra 7 e 3 esercizi sulle derivate scelti tra 5) o se si vuole per esigenze di impaginazione avere alcuni +esercizi su due colonne ed altri su una colonna: in tale caso +si deve introdurre la parte che deve essere su due colonne con +\cmd{\begin\{multicols\}\{2\}} e concluderla con \cmd{\end\{multicols\}}. \textbf{Non} si usa l'opzione \optname{twocolumns}. +\begin{esempio} +\begin{verbatim} + \begin{test}[punti] + \begin{multicols}{2} + \esercizi{es1,es2,es3} + \end{multicols} + \esercizi{es4,es5,es6} + \end{test} +\end{verbatim} +\end{esempio} +In questo modo gli esercizi \texttt{es1,es2,es3} sono formattati su due colonne mentre gli esercizi \texttt{es4,es5,es6} sono formattati su una colonna. + +Nel file degli esercizi, la sintassi da usare all'interno di +\cmd{\newproblem} è la seguente: +\begin{verbatim} \item \PTs{punteggio} +...testo... \begin{answers}{numero colonne} + \bChoices[random] +\Ans0 risposta errata \eAns +\Ans0 risposta errata \eAns +\Ans1 risposta esatta \eAns + \eFreeze +\Ans0 nessuna delle precedenti \eAns + \eChoices +\end{answers} + \end{verbatim} +nella quale: +\begin{itemize} + \item {\color{blue}{\begin{verbatim} +\item \PTs{punteggio} +\end{verbatim}}} +\DescribeMacro{\PTs} +introduce una domanda con punteggio indicato in \cmd{\PTs} (può essere anche un numero decimale e il separatore può essere la virgola). + +\item {\color{blue}{\begin{verbatim} +\begin{answers}{numero colonne} + \bChoices[random] + ... + \eChoices +\end{answers} +\end{verbatim}}} +\DescribeEnv{answers} +\DescribeMacro{\Ans0} +\DescribeMacro{\Ans1} +\DescribeMacro{\bChoices} +\DescribeMacro{\eChoices} +\DescribeMacro{\eFreeze} +introduce le risposte disposte sul numero di colonne specificate. Le risposte vengono permutate in modo casuale solo se è specificata l'opzione +(\optname{random}). + +\item {\color{blue}{\cmd{\Ans0} }} introduce una risposta errata +\item {\color{blue}{\cmd{\Ans1}}} introduce la risposta esatta +\item {\color{blue}{\cmd{\eFreeze}}} introduce (se si vuole) una o più risposte che non saranno in ordine casuale. +\end{itemize} +\begin{esempio} + \begin{verbatim} +\newproblem{ +\item \PTs{1} Le soluzioni dell'equazione +\[x^2-5x+6=0\] +sono: +\begin{answers}{2} + \bChoices[random] +\Ans0 $x=3$ e $x=-2$ \eAns +\Ans0 $x=-3$ e $x=-2$ \eAns +\Ans1 $x=3$ e $x=2$ \eAns + \eFreeze +\Ans0 nessuna delle precedenti \eAns + \eChoices +\end{answers} +} + +\newproblem{ +\item \PTs{1} Le soluzioni dell'equazione +\[x^2+5x+6=0\] +sono: +\begin{answers}{2} + \bChoices[random] +\Ans0 $x=3$ e $x=-2$ \eAns +\Ans1 $x=-3$ e $x=-2$ \eAns +\Ans0 $x=3$ e $x=2$ \eAns + \eFreeze +\Ans0 nessuna delle precedenti \eAns + \eChoices +\end{answers} +} + \end{verbatim} +\end{esempio} + +Oltre alle domande a risposta multipla è possibile inserire nell'ambiente \envname{test} altri tipi di domande che verranno descritti nella sezione +\ref{sec:altri_esercizi}, ma se si usano esercizi di tipo \texttt{fill-in} se ci sono più spazi bianchi da riempire la stringa delle soluzioni avrà un utilità +minore poiché non seguirà la numerazione delle risposte. + +\subsection{Gli ambienti problem e problem*} +\DescribeEnv{problem} +\DescribeEnv{problem*} +Servono per scrivere problemi con risposte aperte. Si usano all'interno del file che contiene le varianti dell'esercizio, annidati nel comando +\cmd{\newproblem}, con la seguente sintassi: +\begin{verbatim} +\begin{problem} + ... +\end{problem} +\end{verbatim} +se si sceglie di scrivere un esercizio a risposta aperta in una sola parte; con la sintassi +\begin{verbatim} +\begin{problem*} + ... +\end{problem*} +\end{verbatim} +se invece si sceglie di scrivere un esercizio a risposta aperta in più parti. Il codice di questi ambienti è derivato, con molte modificazioni, dal codice +dell'ambiente \envname{exercise} del pacchetto \pkgname{exerquiz} \footnote{L'ambiente \envname{exercise} è rimasto e può essere usato come template per la +costruzione di altri ambienti come nuovi esercizi, esempi o altro.}. + \paragraph{Esercizio senza parti} + È introdotto, come si è detto, dall'ambiente \envname{problem}. +\begin{verbatim} +\begin{problem} [punteggio] +........Testo.......... +\begin{solution}[spazio_soluzione] +.... testo soluzione ...... +\end{solution} +\end{problem} + \end{verbatim} + \DescribeEnv{solution} +In \oarg{punteggio} va il punteggio dell'esercizio, in \oarg{spazio\_soluzione} va l'\emph{eventuale} spazio bianco che deve essere lasciato per la soluzione. +\paragraph{Esercizio in più parti} +\DescribeEnv{parts} +È introdotto dall'ambiente \envname{problem*}. + \begin{verbatim} +\begin{problem*} [punteggio] +....testo.... +\begin{parts} +\item \PTs{punteggio della parte} +....testo.... + \begin{solution}[spazio_soluzione] + .... testo soluzione ...... + \end{solution} +\item \PTs{punteggio della parte} +..... +\end{parts} \end{problem*} + \end{verbatim} +Con \cmd{\PTs\{punteggio della parte\}} si indica il punteggio della singola parte. +\subsection{Altre tipologie di esercizi}\label{sec:altri_esercizi} +Sono state definite alcune nuove tipologie di esercizio: +\paragraph{fillin:} \DescribeMacro{\fillin} +serve per creare esercizi ``a riempimento''. Parte del testo viene lasciata vuota e deve essere riempita dallo studente. Può essere usato anche per creare +esercizi a risposta aperta breve. Anche questo tipo di esercizio è simile ad un tipo di esercizio introdotto da D.P. Story nel pacchetto \pkgname{eqexam}. + +La sintassi è +\begin{verbatim} + \fillin[u|e|b]{larghezza dello spazio}{risposta} +\end{verbatim} +I due parametri obbligatori sono la \marg{larghezza dello spazio} da lasciare, che deve essere espressa con una lunghezza (cm, pt, ecc.) e la \marg{risposta} +esatta (parola o numero) che lo studente dovrebbe inserire (che verrà stampata solo nel file delle soluzioni). + +Il parametro opzionale definisce come deve essere segnalato lo spazio in cui inserire la risposta: \emph{u} (\emph{underlined}), che è l'opzione di default, fa +sì che lo spazio sia evidenziato mediante una riga su cui va inserita la risposta, \emph{e} (\emph{empty}) crea uno spazio vuoto (non evidenziato in alcun +modo), \emph{b} (\emph{boxed}) crea uno spazio circondato da un riquadro. + +All'interno del comando \cmd{\fillin} (nello spazio per la risposta) non è possibile usare i comandi \cmd{\sempli} o \cmd{\semplix} (si veda la sezione +\ref{sec:comandi}). +\paragraph{domanda:}\DescribeEnv{problema} questo ambiente deve contenere il testo dell'esercizio (non le soluzioni). Viene usato negli ambienti +\envname{problema} e \envname{problema*}, con l'opzione \optname{solutionsonly} non viene stampato il testo degli esercizi, ma solo la soluzione. Nelle +versioni precedenti del pacchetto per lo stesso scopo veniva usato un altro ambiente. +\paragraph{risposta:}\DescribeEnv{risposta} serve per creare, in esercizi a risposta aperta lunga, lo spazio per inserire la risposta in un box o su righe. + +La sintassi del comando è +\begin{verbatim} + \begin{risposta}{b|l}{spazio verticale} + \end{risposta} +\end{verbatim} +Il primo parametro definisce se lo spazio per la risposta deve essere riquadrato (opzione \emph{b}, di default) oppure diviso in righe su cui andrà scritta la +risposta (opzione \emph{l}). Il secondo parametro definisce invece l'altezza dello spazio per la risposta (in cm se con opzione \emph{b}, in numero di righe se +con opzione \emph{l}) \paragraph{matching:}\DescribeMacro{\matching} è basato su un'idea del pacchetto \pkgname{examdesign} \cite{examdesign}. Serve per creare +esercizi in cui le parole o formule contenute su due colonne vanno abbinate dallo studente in modo corretto. + +\DescribeMacro{\pair}Le coppie vengono definite dal comando \cmd{\pair}: +\begin{verbatim} + \pair{nome 1}{nome 2} +\end{verbatim} +che va inserito tante volte quanti sono i nomi o le formule da abbinare. + +L'elenco dei nomi (mischiati in ordine casuale su ciascuna colonna) viene visualizzato con il comando \cmd{\matching}. + +\begin{esempio} + +\begin{minipage}{.4\textwidth} +\begin{verbatim} + \pair{Regno Unito}{Londra} + \pair{Francia}{Parigi} + \pair{Italia}{Roma} + \pair{Germania}{Berlino} + \pair{Grecia}{Atene} + \matching +\end{verbatim} +\end{minipage} +\begin{minipage}{.4\textwidth} +\begin{center} +\begin{tabular}{l l l } +\rule{1cm}{1pt}& Grecia & (A) Parigi\\ +\rule{1cm}{1pt}& Regno Unito & (B) Berlino\\ +\rule{1cm}{1pt}& Francia & (C) Roma\\ +\rule{1cm}{1pt}& Italia & (D) Londra\\ +\rule{1cm}{1pt}& Germania & (E) Atene +\end{tabular} +\end{center} +\end{minipage} +\end{esempio} +Nelle soluzioni viene invece visualizzato l'abbinamento corretto. +\paragraph{tabella:}\DescribeEnv{tabella} serve per creare esercizi con più risposte aperte incolonnate. + +La sintassi è +\begin{verbatim} + \begin{tabella}[numero colonne sempre visibili] + {allineamento colonne visibili}{allineamento colonna nascosta} + \dots & \dots \cr + \end{tabella} +\end{verbatim} +Il primo parametro (il cui valore di default è 2) indica il numero di colonne della tabella il cui contenuto deve essere visibile anche nel testo +dell'esercizio (e non solo nella soluzione), mentre è possibile avere solo una colonna il cui contenuto è invisibile nel testo, ma appare nella soluzione. Il +secondo parametro consente di scegliere l'allineamento delle colonne il cui contenuto è sempre visibile e il terzo l'allineamento della colonna invisibile. + +\begin{esempio} +Con il codice +\begin{verbatim} +\begin{center} +\renewcommand\arraystretch{3} +\begin{tabella}[1]{r}{c} +\hline + Il dominio della funzione è & $D_f=(-\infty;2]$\cr + \hline + L'insieme immagine della funzione è & $Im(f)=(-\infty,0]$ \cr + \hline + \end{tabella} +\end{center} + \end{verbatim} + + si ottiene il seguente risultato + \renewcommand\arraystretch{3} + \begin{center} +\DeleteShortVerb{\|} + \MakeShortVerb{\!} +\begin{tabular}{r|c} + \hline + Il dominio della funzione è & \color{red}{$D_f=(-\infty;2]$}\\ + \hline + L'insieme immagine della funzione è & \color{red}{$Im(f)=(-\infty,0]$} \\ + \hline + \end{tabular} +\end{center} + +\end{esempio} +\paragraph{workarea:}\DescribeEnv{workarea} non è una tipologia di esercizi, ma serve a creare un'area di lavoro, cioè uno spazio bianco sul foglio in cui lo +studente possa scrivere. La sintassi è +\begin{verbatim} +\begin{solution}{lunghezza} + \begin{workarea}[larghezza]{lunghezza} + \end{workarea} + \end{solution} +\end{verbatim} +La lunghezza dello spazio soluzione e della workarea dovrebbero essere uguali caso contrario il testo presente nella workarea +viene posizionato male nello spazio della soluzione, sovrapponendosi al testo dell’esercizio +se la sua lunghezza è maggiore di quella della soluzione. La larghezza della workarea è opzionale e di default è uguale alla larghezza del testo. A differenza +dell’ambiente \envname{solution}, nella workarea è possibile inserire testo, grafici, ecc.; ad esempio, è possibile inserire degli assi +coordinati per disegnare un grafico. + +\subsection{Altri comandi} +Il pacchetto definisce altri due comandi utilizzati nel file {\tt totale-versioni} (si veda \ref{sec:totale}) +\begin{itemize} + \item {\color{blue}{\cmd{\selectallproblems\{\textbackslash esercizio\}}}}:\DescribeMacro{\selectallproblems}\ si usa all'interno del file che serve per + visualizzare tutte le varianti di un esercizio, con i parametri calcolati oppure no. + \item {\color{blue}{\cmd{\esercizio}}}:\DescribeMacro{\esercizio}\ si usa all'interno del file che serve per visualizzare tutte le varianti di un esercizio + e serve per definire il nome dell'esercizio sul quale si sta lavorando, che verrà usato nel comando \cmd{\selectallproblems} visto in precedenza e + verrà stampato come titolo del file pdf prodotto. La sintassi per definire il nome di un esercizio è \cmd{\def\textbackslash esercizio\{nome\}}. + \end{itemize} +%\section{Il pacchetto comandi} +%\subsection{Introduzione} +% Il pacchetto \texttt{comandi} contiene alcune macro per la formattazione del testo matematico e per l'esecuzione dei calcoli (sia all'interno degli esami +che in altri file). Alcuni di questi comandi sono disponibili nel pacchetto \verb|esami| senza bisogno di caricare il pacchetto +% +% Per utilizzarlo all'interno di un documento occorre scrivere: +% +%\begin{verbatim} +% \usepackage{comandi} +%\end{verbatim} +% Il pacchetto non prevede opzioni. +\section{I comandi per lavorare con i parametri e con le liste} +\subsection{Comandi per lavorare con i parametri (casuali)} \label{sec:comandi} +Sono stati definiti alcuni comandi per lavorare con i parametri (casuali). + +Questi comandi si basano sul pacchetto \pkgname{fp} \cite{fp}, che permette di eseguire calcoli anche molto complessi all'interno di un documento \LaTeX. +Il comando fondamentale che serve per definire un parametro è {\color{blue}{\cmd{\FPsetpar}\oarg{seme}\marg{nome-parametro}\marg{primo valore}\marg{ultimo +valore}\oarg{{valori esclusi}}}} che serve per dichiarare i parametri casuali all'interno di un esercizio (a risposta chiusa o aperta). Il parametro avrà nome +\cmd{\nome-parametro} e varierà tra il primo valore e l'ultimo valore (inclusi).\DescribeMacro{\FPsetpar} \ Il parametro sarà un numero +intero\footnote{Anche se è possibile definire parametri razionali o (pseudo)reali, come nel pacchetto \pkgname{rangen} \cite{rangen} abbiamo preferito +restringere la scelta al caso intero e ottenere gli altri casi operando sui parametri}. +Il parametro opzionale \oarg{seme}, serve a imporre un seme diverso per la generazione del numero casuale. Il valore di default del parametro è \cmd{\seme} ed +è definito a partire dalla data dell'esame e dal numero della versione. + È possibile escludere dalla scelta uno o più valori (ultimo parametro tra parentesi quadre). Se i valori sono più di uno devono essere posti tra parentesi + graffe e separati tra virgole; tra i valori esclusi ci possono essere anche altri parametri purché già definiti in precedenza (anche il primo e l'ultimo + valore possono essere parametri: in questo caso bisogna prestare attenzione al fatto che il primo valore deve essere minore dell'ultimo). + \DescribeMacro{\maxLoopLimit}Il meccanismo usato per soddisfare tali condizioni consiste nel ripetere la generazione più volte: il numero massimo di + ripetizioni è determinato dal parametro \cmd{\maxLoopLimit}, il cui valore di default è 10, ma che è definibile anche in fase di compilazione. +\begin{esempio} +\begin{verbatim} + \FPsetpar{a}{2}{10} +\end{verbatim} +crea una variabile \cmd{\a} che può assumere un valore casuale tra $2$ e $10$, in questo caso, il seme è quello stabilito nel preambolo del documento. +I comandi +\begin{verbatim} +\FPsetpar{a}{2}{10}[3] +\FPsetpar{b}{4}{12}[{\a,6}] +\end{verbatim} +creano due variabili \cmd{\a} (che può assumere un valore casuale tra 2 e 10, escluso 3) e \cmd{\b} (che può assumere un valore tra 4 e 12, + escluso 6 e il valore già assegnato ad \cmd{\a}). +\end{esempio} + +Sui parametri definiti è possibile operare come su numeri e sono stati definiti comandi che permettono di operare su tali parametri mostrando il risultato +numerico o le operazioni in forma parametrica. + +\begin{itemize} + \item {\color{blue}{\cmd{\FPsv}\oarg{numero di cifre decimali}\marg{parametro/operazione su parametri}}}:\DescribeMacro{\FPsv}\ serve ad eseguire + operazioni su parametri e restituirne il valore numerico (con il numero prescelto di cifre decimali) o stampare l'operazione eseguita (se si sceglie + l'opzione \optname{param} nel pacchetto esami). + +\begin{esempio} + \begin{center} + \begin{tabular}{l|l|l} + \color{blue}{Istruzione} & \color{blue}{Risultato numerico} & \color{blue}{Opzione \texttt{param}}\\ + \hline + \hline + \verb|\FPsv{2*k+1}| & $5$& $2*k+1$ \\ + \verb|\FPsv[2]{(2*k+1)/2}| & $2.50$& $(2*k+1)/2$ \\ + \end{tabular} + \end{center} +\end{esempio} +Le principali caratteristiche del comando \cmd{\FPsv} sono (negli esempi, $k=2$): +\begin{itemize} +\item le operazioni devono essere sempre indicate in modo esplicito +\begin{esempio} +\begin{center} +\begin{tabular}{lr} +\verb!$\FPsv{2*k}$! & $4$\\ +\end{tabular} +\end{center} +\end{esempio} +\item in via automatica, ogni operazione viene racchiusa tra parentesi tonde. La parentesi non viene visualizzata quando si vuole il risultato numerico, + mentre lo è con l'opzione \optname{param} + \begin{esempio} + \begin{center} + \begin{tabular}{l|l|l} + \color{blue}{Istruzione} & \color{blue}{Risultato numerico} & \color{blue}{Opzione \texttt{param}}\\ + \verb|$\FPsv{2*k+1}x$| & $5x$ & $(2*k+1)x$ + \end{tabular} + \end{center} + \end{esempio} +\item Si possono usare i seguenti simboli per le operazioni: \verb|+,-,*,/,^| +\item Occorre prestare attenzione al fatto che il pacchetto \pkgname{fp} non può gestire potenze con base negativa +\end{itemize} + + \item {\color{blue}{\cmd{\FPval}\marg{nome}\marg{parametro/operazione su parametri}}}:\DescribeMacro{\FPval}\ + assegna a \marg{nome} il valore dell'operazione arrotondato (è il comando \cmd{\FPeval} di \pkgname{fp} modificato) o stampare l'operazione eseguita se si + sceglie l'opzione \optname{param} nel pacchetto esami, come + con \cmd{\FPsv}. +\begin{esempio} +Sia $k=2$. Il codice + \begin{verbatim} + \FPsetpar{k}{1}{3} + \FPval{a}{2*k+1} + \FPsetpar{b}{2}{20}[\a] + \end{verbatim} + genera una variabile \cmd{\b} che assume un valore casuale tra $2$ e $20$, escluso (in questo caso) il valore $5$. Nella versione parametrica appare invece + una stringa di questo tipo (per quanto riguarda la variabile \cmd{\b}) + \begin{center} + Il parametro $b$ varia da $2$ a $20$. $b\neq (2*k+1)$. Il seme vale 209. + \end{center} + \end{esempio} + \item {\color{blue}{\cmd{\sempli}\marg{num}\marg{den}}}:\DescribeMacro{\sempli}\ serve per scrivere delle frazioni in cui il numeratore o il denominatore + contengono parametri e che potrebbero dover essere ridotte ai minimi termini. + All'interno del comando \cmd{\sempli} non si deve usare \cmd{\FPsv}. +\begin{esempio} + +Se $k=1$: +\begin{center} + \begin{tabular}{lr} +\verb!$\sempli{2*k}{3*k+1}$! & $ \frac12$\\[2mm] +\hline\\ + \verb!$\frac{\FPsv{2*k}}{\FPsv{3*k+1}}$! & $\frac24$\\ +\end{tabular} +\end{center} +\end{esempio} + \item {\color{blue}{\cmd{\semplix}\marg{num}\marg{den}}}:\DescribeMacro{\semplix}\ serve per scrivere delle frazioni in cui il numeratore o il denominatore + contengono parametri e che potrebbero dover essere ridotte ai minimi termini, ma nelle quali il risultato pari ad $1$ non deve apparire (ad esempio + perché davanti ad una incognita). + + Il funzionamento è identico a quello del comando \cmd{\sempli}. + + Il comando può essere utilizzato ponendo il denominatore uguale ad 1 anche per la formattazione di coefficienti affinché non appaia il valore $1$ e il + valore $-1$ appaia come $-$. +\begin{esempio} + +Se il parametro $k$ assume valore $2$: +\begin{center} + \begin{tabular}{lr} +\verb|$\FPsv{k-1}x$| & $1x$\\[2mm] +\hline\\ +\verb!$\semplix{k-1}{1}x$! & $x$\\[2mm] +\hline\\ +\verb|$\semplix{1-k}{1}x$| & $-x$\\[2mm] +\hline\\ +\verb|$\semplix{2*k}{k+2}x$| & $x$\\ +\end{tabular} +\end{center} + \end{esempio} + \item {\color{blue}{\cmd{\esempli}\marg{num}\marg{den}}}:\DescribeMacro{\esempli}\ serve per scrivere delle frazioni in cui il numeratore o il denominatore + contengono parametri e che potrebbero dover essere ridotte ai minimi termini, ma nelle quali il risultato pari ad $1$ non deve apparire, ma deve + apparire esplicitamente il valore $-1$ (ad esempio per gli esponenti). + + Il funzionamento è identico a quello del comando \cmd{\sempli}. + + Il comando può essere utilizzato ponendo il denominatore uguale ad 1 anche per la formattazione di esponenti affinché non appaia il valore $1$ e il + valore $-1$ appaia come $-1$. +\begin{esempio} + +Se il parametro $k$ assume valore $2$: +\begin{center} +\begin{tabular}{lr} +\verb|$x^{\FPsv{k-1}}$| & $x^1$\\[2mm] +\hline\\ +\verb|$x^{\esempli{k-1}{1}}$| & $x$\\[2mm] +\hline\\ +\verb|$x^{\esempli{1-k}{1}}$| & $x^{-1}$ + \end{tabular} + \end{center} + \end{esempio} + \item {\color{blue}{\cmd\sempliz\marg{num}\marg{den}}}:\DescribeMacro{\sempliz}\ serve per scrivere delle frazioni in cui il numeratore o il denominatore + contengono parametri e che potrebbero dover essere ridotte ai minimi termini e che possono assumere il valore $0$ (ad esempio nelle risposte). Mentre + con gli altri comandi il risultato $0$ dà luogo a un errore e al blocco della compilazione, con il comando \cmd{\sempliz} viene scritto il risultato + $0$. + + Il funzionamento è identico a quello del comando \cmd{\sempli}. + \item {\color{blue}{\cmd{\simpsqrt}\marg{ind}\marg{rad}}}:\DescribeMacro{\simpsqrt}\ serve per portar fuori da una radice tutti i fattori possibili. I + fattori portati fuori dalla radice non possono essere semplificati con altri (ad esempio, se la radice è al numeratore di una frazione, non è possibile + eseguire eventuali semplificazioni tra numeratore e denominatore). Il primo parametro obbligatorio, \marg{ind}, è l'indice della radice; il secondo, + \marg{rad}, il radicando. Il primo può contenere un numero o un parametro; il secondo un numero, un parametro o un'operazione su parametri (anche in + questo caso non si deve usare all'interno \cmd{\FPsv}). +\begin{esempio} + +Se $a$ vale $2$ e $b$ vale $1$ + + \begin{tabular}{lr} +\verb|$\simpsqrt{2}{a^2+4*b}$| & $2\sqrt{2}$ +\end{tabular} + \end{esempio} + \item {\color{blue}{\cmd{\RandS}}}:\DescribeMacro{\RandS}\ serve per attribuire un segno casuale ($+$ o $-$) ad un numero. Il comando è simile a quello + del pacchetto \pkgname{rangen}. + \end{itemize} +\subsection{Comandi per la scelta da una lista } +Oltre al comando \cmd{\esercizi} già visto esistono altri comandi per la scelta di esercizi da una lista o, più in generale, di oggetti da una lista. + +Il primo comando permette di scegliere casualmente $n-m$ elementi di una lista +\DescribeMacro{\estrai}.\ Il comando \cmd{\estrai}\oarg{m}\marg{lista}\marg{nome} è il comando utente per estrarre gli elementi +dalla lista \marg{lista} escludendone \oarg{m}. Gli elementi estratti avranno nome \cmd{\nomei}, \cmd{\nomeii}, \dots. +Gli elementi della lista devono essere separati da virgole. +\begin{esempio} + +Con il comando \cmd{\estrai[1]\{insiemi,logica,potenze\}\{alpha\}} si scelgono 2 elementi dell'insieme e questi due elementi si chiameranno \cmd{\alphai} e +\cmd{\alphaii}. Se questi nomi corrispondono a nomi di file di esercizi è possibile inserire nella lista di file argomento del comando \cmd{\esercizi} anche +\cmd{\alphai} e \cmd{\alphaii}. +\end{esempio} +\DescribeMacro{\estraialfa} Il comando \cmd{\estraialfa}\marg{m}\marg{lista}\marg{nome} estrae \marg{m} oggetti casuali dalla lista +\marg{lista} mantenendo l'ordine fissato. Gli elementi estratti avranno nome \cmd{\nomei}, \cmd{\nomeii}, \dots. +Gli elementi della lista devono essere separati da virgole. +\begin{esempio} + +Con il comando \cmd{\estraialfa[2]\{a,b,c,d\}\{alpha\}} si scelgono 2 elementi dell'insieme, mantenendo l'ordine +alfabetico e questi due elementi si chiameranno \cmd{\alphai} e \cmd{\alphaii}. +\end{esempio} +\DescribeMacro{\estraies} \label{estraies} Il comando \cmd{\estraies}\oarg{m}\marg{lista}\marg{nome} funziona come il comando \cmd{\estrai}, ma esclusivamente +su una lista di esercizi. Una volta effettuata l'estrazione, li stampa come il comando \cmd{\esercizi}. + +\section{I file ausiliari} +\subsection{Il file di localizzazione}\label{sec:lng} + Al momento sono presenti le localizzazioni in italiano (default), inglese (UK), inglese (US), francese, spagnolo (contributo di Maria Hernandez Cifre), + tedesco (contributo di Kerstin von Kirschhausen), greco (contributo di Sotiris Hasapis). Usando la lingua greca (e forse altre localizzazioni in caratteri non + latini) è necessario caricare i pacchetti \pkgname{fontenc}, \pkgname{inputenc} e \pkgname{babel} prima del caricamento del pacchetto + \pkgname{esami}\footnote{L'opzione \optname{greek} prevede al momento l'utilizzo dell'opzione \optname{iso-8859-7} per il pacchetto \pkgname{inputenc}}. In + questo file possono venire caricati anche alcuni pacchetti dipendenti dalla localizzazione, quali \pkgname{numprint}, \pkgname{geometry}, ecc. e vengono + definiti i comandi \cmd{\shortdate} e \cmd{\longdate} per esprimere la data. +\subsection{Il file di configurazione}\label{sec:cfg} +Il file di configurazione \texttt{esami-xyz.cfg} contiene varie definizioni tra cui la testata (comando \cmd{\testa}), il piè di pagina, la formattazione della +stringa delle soluzioni, lo stile di pagina, le istruzioni per l'esame. +\subsection{I file \texttt{master} e \texttt{master-sol}} +Questi due file differiscono solo perché il secondo mostra le soluzioni e contengono le istruzioni per generare effettivamente la prova d'esame. \textbf{I +file vanno rinominati prima della compilazione}: in caso contrario la compilazione si arresta con un messaggio di errore. In entrambi è necessario indicare la +data (comando \cmd{\date}) in formato YYYY/MM/DD, %il modulo dell'esame (comando \verb!\modulo!), +il numero di compiti da generare (comando \cmd{\numcompiti}), +%se si tratta di prova completa o parziale (comando \verb|\compito|) +e, ovviamente, gli esercizi. Il tema d'esame può essere diviso in più parti e in ognuna si può usare uno o più degli ambienti introdotti e uno o più comandi +per la stampa degli esercizi. + +Nel file possono essere definiti anche il numero massimo di ripetizioni che il comando \cmd{\FPsetpar} deve eseguire per cercare di soddisfare le condizioni +poste (comando \cmd{\maxLoopLimit}) e il meccanismo di calcolo del seme iniziale per la generazione dei numeri casuali (comando \cmd{\seme}). + +È anche possibile definire il nome delle parti in cui è diviso il tema d'esame. +\subsection{Il file \texttt{totale-versioni}}\label{sec:totale} +Il file \texttt{totale-versioni} serve per generare tutte le varianti di un esercizio. Con questo file il pacchetto ha sempre l'opzione \optname{prova} e può +essere definita l'opzione \optname{param} per generare la versione parametrica degli esercizi. + +Al suo interno si deve usare un solo comando, \cmd{\def \textbackslash esercizio\{nome\}\textbackslash}, che deve contenere il nome dell'esercizio da +compilare. Se si compila la versione parametrica, i parametri e i loro intervalli di variazione vengono indicati alla fine dell'esercizio. + + +\bibliographystyle{plain} +\bibliography{esami} + \end{document} diff --git a/Master/texmf-dist/doc/latex/esami/doc/esami-doc-it.pdf b/Master/texmf-dist/doc/latex/esami/doc/esami-doc-it.pdf Binary files differindex 952db57699d..f084556822a 100644 --- a/Master/texmf-dist/doc/latex/esami/doc/esami-doc-it.pdf +++ b/Master/texmf-dist/doc/latex/esami/doc/esami-doc-it.pdf diff --git a/Master/texmf-dist/doc/latex/esami/doc/esami-doc-it.tex b/Master/texmf-dist/doc/latex/esami/doc/esami-doc-it.tex index a619e7748fa..73e151fa562 100644 --- a/Master/texmf-dist/doc/latex/esami/doc/esami-doc-it.tex +++ b/Master/texmf-dist/doc/latex/esami/doc/esami-doc-it.tex @@ -69,7 +69,8 @@ % Right brace \} Tilde \~} % -\changes{Versione 1.0}{2012/03/08}{Prima versione rilasciata al CTAN} +\changes{Versione 1.0}{2013/03/08}{Prima versione rilasciata al CTAN} +\changes{Versione 1.1}{2013/12/09}{Reinserita la dipendenza dal pacchetto \texttt{environ} per eliminare alcuni errori nella compilazione con \LaTeX. Eliminata la dipendenza dal pacchetto \texttt{icomma} nel file di localizzazione es-italian.lng a seguito dell'introduzione di nuove funzionalità nel pacchetto \texttt{babel} per la lingua italiana (comando \texttt{IntelligentComma}).} %\IndexPrologue{\section*{Indice} I numeri scritti in italico rimandano alla pagina dove è descritto l'item; i numeri sottolineati rimandano alla riga di codice in cui l'item è descritto; le altre referenze sono alla riga di codice dove l'item è usato.} \GlossaryPrologue{\section*{Changelog}} @@ -79,8 +80,8 @@ \fontshape\updefault \footnotesize} \GetFileInfo{esami.sty} -\def\fileversion{versione 1.0} -\def\filedate{2013/03/08} +\def\fileversion{versione 1.1} +\def\filedate{2013/12/09} \title{Il pacchetto esami\thanks{Questo documento @@ -110,14 +111,15 @@ Il pacchetto \pkgname{esami} dipende da alcuni altri pacchetti non standard: \item \pkgname{fp}: per le operazioni matematiche; \item \pkgname{currfile}: per ottenere il nome del file e della cartella di lavoro; \item \pkgname{xargs}: per avere più di un parametro opzionale; -\item \pkgname{pstricks}, \pkgname{pstricks-add} e \pkgname{auto-pst-pdf}: per i grafici. +\item \pkgname{pstricks}, \pkgname{pstricks-add} e \pkgname{auto-pst-pdf}: per i grafici; +\item \pkgname{environ}: per trasformare comandi in ambienti. \end{enumerate} Inoltre i seguenti pacchetti sono opzionali, ma raccomandati: \begin{enumerate} \item \pkgname{lmodern} and \pkgname{amsfonts}: necessari per un buon output in pdf; \item \pkgname{numprint}: per un output migliore dei numeri e per avere formati numerici diversi a seconda del linguaggio; \item \pkgname{eurosym}: per usare la valuta - \item \pkgname{icomma}: dal pacchetto \pkgname{ws} per una corretta formattazione delle virgole. + \item \pkgname{icomma}: dal pacchetto \pkgname{ws} per una corretta formattazione delle virgole. Tale pacchetto può essere sostituito per la lingua italiana dal comando \cmd{\IntelligentComma} di \pkgname{babel}: questa opzione è di default nel file di localizzazione \texttt{es-italian.lng} e può essere modificata commentando il comando \cmd{\IntelligentComma} (o usando il comando \cmd{\NoIntelligentComma}). \end{enumerate} Tutti i pacchetti sono disponibili sia in \TeX Live che in Mik\TeX. @@ -709,7 +711,13 @@ Nel file possono essere definiti anche il numero massimo di ripetizioni che il c \subsection{Il file \texttt{totale-versioni}}\label{sec:totale} Il file \texttt{totale-versioni} serve per generare tutte le varianti di un esercizio. Con questo file il pacchetto ha sempre l'opzione \optname{prova} e può essere definita l'opzione \optname{param} per generare la versione parametrica degli esercizi. -Al suo interno si deve usare un solo comando, \cmd{\def \textbackslash esercizio\{nome\}\textbackslash}, che deve contenere il nome dell'esercizio da compilare. Se si compila la versione parametrica, i parametri e i loro intervalli di variazione vengono indicati alla fine dell'esercizio. +Al suo interno si deve usare un solo comando, \cmd{\def \textbackslash esercizio\{nome\}}, che deve contenere il nome dell'esercizio da compilare. Se si compila la versione parametrica, i parametri e i loro intervalli di variazione vengono indicati alla fine dell'esercizio. + +\section{Changelog} +\begin{description} + \item[Versione 1.0 (2013/03/08)]Prima versione rilasciata al CTAN + \item[Versione 1.1 (2013/12/09)] Reinserita la dipendenza dal pacchetto \texttt{environ} per eliminare alcuni errori nella compilazione con \LaTeX. Eliminata la dipendenza dal pacchetto \texttt{icomma} nel file di localizzazione es-italian.lng a seguito dell'introduzione di nuove funzionalità nel pacchetto \texttt{babel} per la lingua italiana (comando \texttt{IntelligentComma}). +\end{description} \bibliographystyle{plain} diff --git a/Master/texmf-dist/doc/latex/esami/doc/examples/esami-xyz.cfg b/Master/texmf-dist/doc/latex/esami/doc/examples/esami-xyz.cfg new file mode 100644 index 00000000000..c7ed8b63de9 --- /dev/null +++ b/Master/texmf-dist/doc/latex/esami/doc/examples/esami-xyz.cfg @@ -0,0 +1,88 @@ +%% Package `esami' to use with LaTeX 2e +%% Copyright (C) 2008-2013 G. Messineo e S. Vassallo +%% +%% This is file `esami-xyz.cfg', +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% esami-xyz.cfg, 2013-03-20 %% +%% Copyright (C) 2008-2013 G. Messineo e S. Vassallo %% +%% %% +%% This program can be redistributed and/or modified %% +%% under the terms of the LaTeX Project Public License %% +%% Distributed from CTAN archives in directory %% +%% macros/latex/base/lppl.txt; either version 1 of the %% +%% License, or (at your option) any later version. %% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +% +=============================+ +% | THE HEADING | +% +=============================+ + + \@ifpackagewith{esami}{prova}{% + \def\testa{\relax}} +{% +\def\testa{ +{\bfseries\sffamily\small +\begin{center} +\begin{tabular}{|lp{.33\textwidth}|lp{.3\textwidth}|lp{.3\textwidth}|} +\hline +\multicolumn{1}{|p{.33\textwidth}|}{\examname \newline \Data}&\multicolumn{1}{|p{.3\textwidth}|}{\profname } &\multicolumn{1}{|p{.3\textwidth}|}{\studsignname}\\[4ex] +\hline +\multicolumn{1}{|p{.33\textwidth}|}{\studlastname:}&\multicolumn{1}{|p{.3\textwidth}|}{\studfirstname:}&\multicolumn{1}{|p{.3\textwidth}|}{\studid:}\\[4ex] +\hline +\end{tabular}\\[3ex] +\end{center}} + } + } + +% +=============================+ +% | THE FOOTER | +% +=============================+ + +\ifes@solutions%%%solutions +\def\ps@esame{\let\@oddhead\@empty\def\@oddfoot{\hfil \textbf{\versionname\ +n. \thevers} -- %% +\textbf{\solutionsname} -- %% + \pagename\ \thepage +\hfil}\let\@evenhead\@empty\let\@evenfoot\@empty} +\else%%% no solutions + \def\ps@esame{ + \let\@oddhead\@empty\def\@oddfoot%% + {\hfil \textbf{\versionname\ n. \thevers\ + -- \pagename\ \thepage}\hfil}\let\@evenhead\@empty\let\@evenfoot\@empty} +\fi + +% +=============================+ +% | THE SOLUTION STRING | +% +=============================+ + +\def\ps@soltest{\let\@oddhead\@empty\def\@oddfoot{\hfil %\textbf{\versionname\ n. \thevers} -- %% +\textbf{\solutionsname} -- \pagename\ \thepage +\hfil}\let\@evenhead\@empty\let\@evenfoot\@empty} + +\ifes@solutions +\newcommand{\stringasol}{\newpage% +\vspace{.8cm} +\pagestyle{soltest} + \input{\jobname.sol.tex} % +} +\else +\newcommand{\stringasol}{\relax} +\fi + + +% +=============================+ +% | SOME INTRUCTIONS | +% +=============================+ + +\def\istruzionii{{ +\sffamily \textbf{INSTRUCTIONS} +\begin{itemize} + \item Write here your instructions + \item two + \item three +\end{itemize}}} + +\def\istruzioniii{\setlength{\fboxsep}{1.5ex}\setlength{\fboxrule}{1.2pt}{\sffamily +\framebox{\parbox{\textwidth}{\textbf{Some other instructions.}}}}\\[3ex]} diff --git a/Master/texmf-dist/doc/latex/esami/doc/examples/testA-sol.pdf b/Master/texmf-dist/doc/latex/esami/doc/examples/testA-sol.pdf Binary files differnew file mode 100644 index 00000000000..ebe91fad1f5 --- /dev/null +++ b/Master/texmf-dist/doc/latex/esami/doc/examples/testA-sol.pdf diff --git a/Master/texmf-dist/doc/latex/esami/doc/examples/testA.pdf b/Master/texmf-dist/doc/latex/esami/doc/examples/testA.pdf Binary files differindex 328a5014083..273b37c8cb5 100644 --- a/Master/texmf-dist/doc/latex/esami/doc/examples/testA.pdf +++ b/Master/texmf-dist/doc/latex/esami/doc/examples/testA.pdf diff --git a/Master/texmf-dist/doc/latex/esami/doc/examples/testA.tex b/Master/texmf-dist/doc/latex/esami/doc/examples/testA.tex index 46d31de17a8..10518d63d81 100644 --- a/Master/texmf-dist/doc/latex/esami/doc/examples/testA.tex +++ b/Master/texmf-dist/doc/latex/esami/doc/examples/testA.tex @@ -1,5 +1,5 @@ \documentclass[a4paper,UKenglish]{article} -\usepackage[shufflerandom,xyz,pointsonright,autopstoff,twocolumns,fillb,solutionsonly]{esami}%%%%% TEMA +\usepackage[shufflerandom,xyz,pointsonright,autopstoff,twocolumns,nosolutions]{esami}%%%%% TEMA \usepackage{lmodern,textcomp} \usepackage[utf8]{inputenc} \usepackage[T1]{fontenc} @@ -9,7 +9,7 @@ \def\examname{The name of the exam} \def\numcompiti{4}%%% The number of the versions -\date{2013/3/22}%%% THE DATE IN THE FORMAT AAAA/M/D +\date{2014/1/3}%%% THE DATE IN THE FORMAT AAAA/M/D \def\Data{\longdate}%%% or \shortdate: the date in the heading %\def\cartella{d:/folder}%%% The folder where are the exercises: by default the current folder% @@ -39,7 +39,7 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section*{Part One} -\today + \begin{test}[8] @@ -49,8 +49,8 @@ test1, test2, test3, -test4,%} -test5-fillin} +test4} +%test5-fillin} \end{questions} \begin{questions} \esercizi{test11, @@ -62,7 +62,7 @@ test14, \end{test} \newpage -\part{One} + \section*{Part two} \istruzioniii%%% Some other instructons diff --git a/Master/texmf-dist/doc/latex/esami/es-UKenglish.lng b/Master/texmf-dist/tex/latex/esami/es-UKenglish.lng index 4ff77e3ecb5..4ff77e3ecb5 100644 --- a/Master/texmf-dist/doc/latex/esami/es-UKenglish.lng +++ b/Master/texmf-dist/tex/latex/esami/es-UKenglish.lng diff --git a/Master/texmf-dist/doc/latex/esami/es-USenglish.lng b/Master/texmf-dist/tex/latex/esami/es-USenglish.lng index f66b0be2389..f66b0be2389 100644 --- a/Master/texmf-dist/doc/latex/esami/es-USenglish.lng +++ b/Master/texmf-dist/tex/latex/esami/es-USenglish.lng diff --git a/Master/texmf-dist/doc/latex/esami/es-french.lng b/Master/texmf-dist/tex/latex/esami/es-french.lng index cd3ba18bc4e..cd3ba18bc4e 100644 --- a/Master/texmf-dist/doc/latex/esami/es-french.lng +++ b/Master/texmf-dist/tex/latex/esami/es-french.lng diff --git a/Master/texmf-dist/doc/latex/esami/es-german.lng b/Master/texmf-dist/tex/latex/esami/es-german.lng index 92d46829705..92d46829705 100644 --- a/Master/texmf-dist/doc/latex/esami/es-german.lng +++ b/Master/texmf-dist/tex/latex/esami/es-german.lng diff --git a/Master/texmf-dist/doc/latex/esami/es-greek.lng b/Master/texmf-dist/tex/latex/esami/es-greek.lng index 97a2cda12a0..97a2cda12a0 100644 --- a/Master/texmf-dist/doc/latex/esami/es-greek.lng +++ b/Master/texmf-dist/tex/latex/esami/es-greek.lng diff --git a/Master/texmf-dist/doc/latex/esami/es-italian.lng b/Master/texmf-dist/tex/latex/esami/es-italian.lng index ab4ba64b484..38037620658 100644 --- a/Master/texmf-dist/doc/latex/esami/es-italian.lng +++ b/Master/texmf-dist/tex/latex/esami/es-italian.lng @@ -50,9 +50,11 @@ %%% Useful Language dependent packages \AtEndOfPackage{ +\usepackage{babel} +\IntelligentComma \usepackage{geometry} -\geometry{a4paper,lmargin=6mm,rmargin=18mm,tmargin=6mm,bmargin=18mm,marginparsep=2mm,footskip=1cm} -\usepackage{icomma} +\geometry{a4paper,lmargin=6mm,rmargin=22mm,tmargin=10mm,bmargin=18mm,marginparsep=2mm,footskip=1cm} +%\usepackage{icomma} \usepackage{eurosym} \usepackage[np,autolanguage]{numprint} \newcommand*\npstyleitalian{% @@ -62,4 +64,5 @@ \npunitseparator{~}% \npthousandthpartsep{} } + \npfourdigitnosep } diff --git a/Master/texmf-dist/doc/latex/esami/es-spanish.lng b/Master/texmf-dist/tex/latex/esami/es-spanish.lng index d0543ab483a..d0543ab483a 100644 --- a/Master/texmf-dist/doc/latex/esami/es-spanish.lng +++ b/Master/texmf-dist/tex/latex/esami/es-spanish.lng diff --git a/Master/texmf-dist/tex/latex/esami/esami.sty b/Master/texmf-dist/tex/latex/esami/esami.sty index c9dd1e51bc7..ad26df52236 100644 --- a/Master/texmf-dist/tex/latex/esami/esami.sty +++ b/Master/texmf-dist/tex/latex/esami/esami.sty @@ -15,9 +15,13 @@ %%%%%% CHANGELOG %%%%%%% % Version 1.0 % First release to CTAN +% Version 1.1 +% Update: Inserted the dependance on the package \texttt{environ} to remove some errors in the \LaTeX\ compilation. +%Removed the dependance on the package \texttt{icomma} in the italian localization file es-italian.lng because of the introduction +%of new features in the package \texttt{babel} for the Italian langaguage (macro \texttt{IntelligentComma}). \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{esami} - [2012/03/08 v1.0 An Exam Construction Package] + [2013/12/09 v1.1 An Exam Construction Package] % +=============================+ % | THE OPTIONS | @@ -25,7 +29,7 @@ \newif\ifes@language \es@languagefalse \DeclareOption{italian}{\InputIfFileExists{es-\CurrentOption.lng}% - { \es@languagetrue \typeout{esami: Verr\`{a} usata la lingua italiana}}% + { \es@languagetrue \typeout{esami: Verrà usata la lingua italiana}}% {\typeout{esami: Il file es-\CurrentOption.lng non esiste.}}} \DeclareOption{UKenglish}{\InputIfFileExists{es-\CurrentOption.lng}% {\typeout{esami: English Language will be used} \es@languagetrue}% @@ -37,10 +41,10 @@ { \typeout{esami: English Language will be used}\es@languagetrue}% { \typeout{esami: The file es-\CurrentOption.lng does not exists.}}} \DeclareOption{french}{\InputIfFileExists{es-\CurrentOption.lng}% - { \typeout{esami: La langue fran\c{c}aise sera utilis\'{e}e}\es@languagetrue} + { \typeout{esami: La langue française sera utilisée}\es@languagetrue} { \typeout{esami: The file es-\CurrentOption.lng does not exists.}}} \DeclareOption{spanish}{\InputIfFileExists{es-\CurrentOption.lng}% - { \typeout{esami:Se utilizar\'{a} el idioma espa\~{n}ol}\es@languagetrue} + { \typeout{esami:Se utilizará el idioma español}\es@languagetrue} { \typeout{esami: The file es-\CurrentOption.lng does not exists.}}} \DeclareOption{german}{\InputIfFileExists{es-\CurrentOption.lng}% { \typeout{esami:Deutsch als Sprache soll angewandt werden}\es@languagetrue} @@ -149,6 +153,7 @@ \usepackage{currfile} \usepackage{array} \usepackage{ifthen} +\usepackage{environ} \usepackage{xargs} \usepackage{multicol} \usepackage{pstricks,pstricks-add} @@ -548,16 +553,16 @@ %%%%% Other commands %%%%%% -\long\def\Collect@Body#1{%%%%% This command is taken from the environ package %%%% - \@envbody{\expandafter#1\expandafter{\the\@envbody}}% - \edef\process@envbody{\the\@envbody\noexpand\end{\@currenvir}}% - \@envbody\@emptytoks \def\begin@stack{b}% - \begingroup - \expandafter\let\csname\@currenvir\endcsname\Collect@@Body - \edef\process@envbody{% - \expandafter\noexpand\csname\@currenvir\endcsname}% - \process@envbody -} +%\long\def\Collect@Body#1{%%%%% This command is taken from the environ package %%%% +% \@envbody{\expandafter#1\expandafter{\the\@envbody}}% +% \edef\process@envbody{\the\@envbody\noexpand\end{\@currenvir}}% +% \@envbody\@emptytoks \def\begin@stack{b}% +% \begingroup +% \expandafter\let\csname\@currenvir\endcsname\Collect@@Body +% \edef\process@envbody{% +% \expandafter\noexpand\csname\@currenvir\endcsname}% +% \process@envbody +%} \newcommand\stepvers{\stepcounter{vers}\ifes@solutions \immediate\write\sols{\string\begin{minipage}{.33\string\textwidth}\string\large\string\textbf{\es@solutionname\ \versionname\ n. \thevers}}\fi} diff --git a/Master/tlpkg/libexec/ctan2tds b/Master/tlpkg/libexec/ctan2tds index d05427a78e0..b593a01f080 100755 --- a/Master/tlpkg/libexec/ctan2tds +++ b/Master/tlpkg/libexec/ctan2tds @@ -1383,7 +1383,7 @@ $standardtex='\.(.bx|cfg|sty|clo|ldf|cls|def|fd|cmap|4ht)$'; 'easy', 'easy.*\.sty', # no mydoc.sty 'ecv', '\.sty|\.cls|\.ldf', # no docstrip.cfg, else system-wide 'edmac', 'edmac.tex|edstanza.tex|\.sty', - 'esami', '\.sty', # no example .cfg + 'esami', '\.sty|\.lng', # no example .cfg 'expex', '\.tex|' . $standardtex, 'exsheets', 'dicts|' . $standardtex, 'eijkhout', '\.tex', |