diff options
author | Karl Berry <karl@freefriends.org> | 2022-05-18 19:51:01 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2022-05-18 19:51:01 +0000 |
commit | 962a8106e245c2c413cead0a91a63f7d1bae4fd7 (patch) | |
tree | 6061cbebb0f29c538d1c799f3c4947cf35fec667 /Master/texmf-dist/source | |
parent | 335102bbbea18c3b58bb585739ed7e74ed5648c2 (diff) |
verifiche (18may22)
git-svn-id: svn://tug.org/texlive/trunk@63331 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source')
-rw-r--r-- | Master/texmf-dist/source/latex/verifiche/verifiche.dtx | 247 |
1 files changed, 185 insertions, 62 deletions
diff --git a/Master/texmf-dist/source/latex/verifiche/verifiche.dtx b/Master/texmf-dist/source/latex/verifiche/verifiche.dtx index 4172a0771ff..90f9978a642 100644 --- a/Master/texmf-dist/source/latex/verifiche/verifiche.dtx +++ b/Master/texmf-dist/source/latex/verifiche/verifiche.dtx @@ -16,7 +16,7 @@ % % \iffalse %<package>\NeedsTeXFormat{LaTeX2e} -%<package>\ProvidesPackage{verifiche} [2022/03/10 v4.4 .dtx verifiche file] +%<package>\ProvidesPackage{verifiche} [2022/03/10 v5.0 .dtx verifiche file] %<*driver> \documentclass{ltxdoc} \usepackage[utf8]{inputenc} @@ -28,7 +28,10 @@ morekeywords={\setlength, \institute, \asyear, \testtype, \instruction, \duration, \printheading, \institutefont, \asyearfont, \testtypefont, \instructiondelimiter, \headerfont, \instrunctionfont, \durationfont, \exerciselabel, \solutionfont, \solutionlabel, \diffsymb, \closedquestionitem, - \inlinesol, \completetext, \truefalse, \openquestion, \linedopenquestion, \squaredopenquestion, \headercandidatenamelabel, \checked, \finderror, \textandimage, \partialpt, \ptprefix, \ptlabel, \partialptlabel, \partialptdelimiters, \ptdelimiters, \partialptprefix}, + \inlinesol, \completetext, \truefalse, \openquestion, \linedopenquestion, \squaredopenquestion, + \headercandidatenamelabel, \checked, \finderror, \textandimage, \partialpt, \ptprefix, \ptlabel, + \partialptlabel, \partialptdelimiters, \ptdelimiters, \partialptprefix, \checkmaker, \ref, \tikz, \makecolumn, + \columnseparation}, keywordstyle=\color{blue}, escapeinside={*@}{@*}, inputencoding=utf8, @@ -60,13 +63,14 @@ \EnableCrossrefs \CodelineIndex \RecordChanges +\parindent0pt \begin{document} \DocInput{verifiche.dtx} \end{document} %</driver> % \fi % -% \CheckSum{820} +% \CheckSum{863} % \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.} @@ -77,6 +81,7 @@ % \changes{v4.2}{2021/08/18}{Solved truefalse issue in solutionsmode. Add noexercisept global option to hide the score of each exercise.} % \changes{v4.3}{2022/02/10}{Move |parindent{0pt}| inside the environment.} % \changes{v4.4}{2022/03/10}{Minor update. Fixed labels issues.} +% \changes{v5.0}{2022/05/18}{Major update. Remove some unnecessary packages. Remove spurious space in closedquestion environment. Add a starred version of closedquestion environment. Add the possibility to add local label to soluzione environment. Add a new command: makecolumn.} % \GetFileInfo{verifiche.sty} % \DoNotIndex{\newcommand,\newenvironment,\def,\begin,\end,\par} % \DoNotIndex{\DeclareOption,\ExecuteOptions,\ProcessOptions,\RequirePackage} @@ -110,7 +115,7 @@ % \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, \romannumeral, \@ifundefined, \ltx@zero, \rc@default, \rc@extract@, \chardef} +% \DoNotIndex{\val, \xout, \y, \usebox, \romannumeral, \@ifundefined, \ltx@zero, \rc@default, \rc@extract@, \chardef, \llap} % % % \title{Il pacchetto \textsf{verifiche} @@ -545,13 +550,13 @@ che voglio somministrare % % %\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. +%\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. L'etichetta che introduce l'ambiente può essere modificata localmente tramite l'opzione |label|. % % \iffalse %<*example> % \fi \begin{lstlisting} -\begin{soluzione} +\begin{soluzione}[label=*@\meta{label}@*] ... \end{soluzione} \end{lstlisting} @@ -631,7 +636,16 @@ dell'esercizio somministrato % \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. +%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. Tale simbolo può essere modificato ridefinendo il comando \DescribeMacro{\checkmaker}|\checkmaker|. Il pacchetto ammette degli argomenti opzionali che possono essere tutti quelli descritti nel pacchetto |enumitem|. +% \iffalse +%<*example> +% \fi +\begin{lstlisting} +\renewcommand{\checkmaker}*@\marg{...}@* +\end{lstlisting} +% \iffalse +%</example> +% \fi % \iffalse %<*example> % \fi @@ -643,7 +657,28 @@ dell'esercizio somministrato % \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. +%\DescribeEnv{closedquestion}Le domande a scelta multipla possono essere realizzate tramite l'ambiente |closedquestion|. Questo comando genera un elenco verticale di elementi ciascuno introdotto dal comando \DescribeMacro{\item}|\item| che realizza un quadrato davanti ad ogni voce. +% \iffalse +%<*example> +% \fi +\begin{lstlisting} +\begin{closedquestion}[...] +\item ... +\end{closedquestion} +\end{lstlisting} +% \iffalse +%</example> +% \fi +%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. Anche in questo caso tale simbolo può essere modificato ridefinendo il comando |\checkmaker|. Il pacchetto ammette degli argomenti opzionali che possono essere tutti quelli descritti nel pacchetto |enumitem|. +% \iffalse +%<*example> +% \fi +\begin{lstlisting} +\renewcommand{\checkmaker}*@\marg{...}@* +\end{lstlisting} +% \iffalse +%</example> +% \fi % % \iffalse %<*example> @@ -651,14 +686,14 @@ dell'esercizio somministrato \example {\begin{closedquestion} \item Primo -\item[\checked] Secondo\\ +\item[\checked] Secondo \item Terzo \item Quarto \end{closedquestion}} {\begin{closedquestion} \item Primo \item[\checked] Secondo -\end{closedquestion}\\ +\end{closedquestion} \begin{closedquestion} \item Terzo \item Quarto @@ -668,6 +703,20 @@ dell'esercizio somministrato % \fi % % +% L'ambiente \DescribeMacro{closeduestion}|closeduestion*| è analogo al precedente, fatto salvo che è adibito a produrre elenchi in linea; gli elementi vengono spaziati orizzontalmente in modo da riempire tutto lo spazio disponibile. Anche in questo caso i comandi del pacchetto |enumitem| possono essere usati tra le opzioni dell'ambiente. +% \iffalse +%<*example> +% \fi +\begin{lstlisting} +\begin{closedquestion*}[...] +\item ... +\end{closedquestion*} +\end{lstlisting} +% \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> @@ -766,6 +815,39 @@ dell'esercizio somministrato %</example> % \fi % +% +%\vspace{1em} +%\DescribeMacro{\makecolumn} Il pacchetto |verifiche| definisce anche un proprio comando per produrre del testo in colonna tramite il comando |\makecolumn| che ha la seguente sintassi: +% \iffalse +%<*example> +% \fi +\begin{lstlisting} +\makecolumn*@\marg{width}\marg{text}@* +\end{lstlisting} +% \iffalse +%</example> +% \fi +% La larghezza è controllata tramite l'argomento opzionale \meta{width}, mentre il testo da mettere in colonne può risiedere, anche con paragrafi, entro il campo \meta{text}. La spaziatura tra le colonne può essere modificata ridefinendo la lunghezza |\columnseparation| (di default viene inizializzata col valore |\hfill|). +% \iffalse +%<*example> +% \fi +\begin{lstlisting} +\setlength{\columnseparation}*@\marg{dim}@* +\end{lstlisting} +% \iffalse +%</example> +% \fi +% \iffalse +%<*example> +% \fi +\example +{\makecolumn{.3\textwidth}{Colonna 1} +\makecolumn{.3\textwidth}{Colonna 2}} +{\makecolumn{2.5cm}{Colonna 1} \makecolumn{2.5cm}{Colonna 2}}% \iffalse +%</example> +% \fi +% +% %\section{Personalizzazione} %Il pacchetto prevede un certo numero di comandi definiti al fine di gestire l'aspetto del documento finale. %\subsection*{Font} @@ -979,7 +1061,6 @@ dell'esercizio somministrato \RequirePackage{tikz} \RequirePackage{booktabs} \RequirePackage[normalem]{ulem} -\RequirePackage{xstring} % \end{macrocode} % % @@ -1061,10 +1142,12 @@ dell'esercizio somministrato \newlength{\classrulerlength} \newlength{\daterulerlength} \newlength{\ptrulerlength} +\newlength{\columnseparation} \setlength{\candidatenamerulerlength}{.35\textwidth} \setlength{\classrulerlength}{.1\textwidth} \setlength{\daterulerlength}{.15\textwidth} \setlength{\ptrulerlength}{1cm} +\setlength{\columnseparation}{\fill} % \end{macrocode} % %\subsection{Labels} @@ -1074,34 +1157,34 @@ dell'esercizio somministrato %Some labels are define as a variable in order to leave the user the possibility of customization the predefine texts. %If the package \textsf{babel} or \textsf{polyglossia} is loaded with the italian language specify, than the predefine labels are redefine: % \begin{macrocode} -\@ifpackageloaded{babel}{% - \addto\captionsitalian{% - \def\@verifiche@durationlabeldefault{Tempo della prova:}% - \def\@verifiche@asyearlabeldefault{Anno scolastico}% - \def\@verifiche@headercandidatenamelabel{Nome e Cognome}% - \def\@verifiche@headerclasslabel{Classe}% - \def\@verifichhe@headerdatelabel{Data}% - \def\@verifiche@exerciselabel{Quesito}% - \def\@verifiche@solutionlabel{Soluzione}% - }}{% -\@ifpackageloaded{polyglossia}{% - \addto\captionsitalian{% - \def\@verifiche@durationlabeldefault{Tempo della prova:}% - \def\@verifiche@asyearlabeldefault{Anno scolastico}% - \def\@verifiche@headercandidatenamelabel{Nome e Cognome}% - \def\@verifiche@headerclasslabel{Classe}% - \def\@verifichhe@headerdatelabel{Data}% - \def\@verifiche@exerciselabel{Quesito}% - \def\@verifiche@solutionlabel{Soluzione}% - }}{ - \def\@verifiche@durationlabeldefault{Time:}% - \def\@verifiche@asyearlabeldefault{School year}% - \def\@verifiche@headercandidatenamelabel{Name and Surname}% - \def\@verifiche@headerclasslabel{Class}% - \def\@verifichhe@headerdatelabel{Date}% - \def\@verifiche@exerciselabel{Exercise}% - \def\@verifiche@solutionlabel{Solution}% - }}% +\newcommand{\@verifiche@durationlabeldefault}{Time:}% +\newcommand{\@verifiche@asyearlabeldefault}{School year}% +\newcommand{\@verifiche@headercandidatenamelabel}{Name and Surname}% +\newcommand{\@verifiche@headerclasslabel}{Class}% +\newcommand{\@verifichhe@headerdatelabel}{Date}% +\newcommand{\@verifiche@exerciselabel}{Exercise}% +\newcommand{\@verifiche@solutionlabel}{Solution}% +\newcommand{\@verifiche@Tletter}{T}% +\newcommand{\@verifiche@Fletter}{F}% +% +\newcommand{\italiandictiornary}{% + \renewcommand{\@verifiche@durationlabeldefault}{Tempo della prova:}% + \renewcommand{\@verifiche@asyearlabeldefault}{Anno scolastico}% + \renewcommand{\@verifiche@headercandidatenamelabel}{Nome e Cognome}% + \renewcommand{\@verifiche@headerclasslabel}{Classe}% + \renewcommand{\@verifichhe@headerdatelabel}{Data}% + \renewcommand{\@verifiche@exerciselabel}{Quesito}% + \renewcommand{\@verifiche@solutionlabel}{Soluzione}% + \renewcommand{\@verifiche@Tletter}{V}% + \renewcommand{\@verifiche@Fletter}{F}% +}% +\@ifpackageloaded{babel}{% if babel is loaded + \addto\captionsitalian{\italiandictiornary}% +}{%else if polyglossia is loaded + \@ifpackageloaded{polyglossia}{% + \addto\captionsitalian{\italiandictiornary}% + }{}% +}% % \end{macrocode} % \begin{macrocode} \newcommand{\@durationlabeldefault}{\@verifiche@durationlabeldefault}% @@ -1259,6 +1342,13 @@ dell'esercizio somministrato \@defineptdelimiter#1} % \end{macrocode} %\iffalse +%% checkmaker +%\fi +% \begin{macrocode} +\newcommand{\checkmarker}{$\checkmark$}% +\newcommand{\verifiche@checkmarker}{\bgroup\ifsolutionscolor\color{\solutionscolor}\fi\checkmarker\egroup}% +% \end{macfrocode} +%\iffalse %% convert ref to num %\fi % \begin{macrocode} @@ -1436,13 +1526,23 @@ dell'esercizio somministrato %\begin{environment}{soluzione} %The main element for the "solutions" mode is the |soluzione| environment. % \begin{macrocode} -\NewDocumentEnvironment{soluzione}{+b}{% +\define@key{soluzione}{label}[\solutionlabel]{% + \def\verifiche@tempsoluzionelabel{#1}% +} +\newcommand{\verifiche@solutionlabel}{% + \ifdefined\verifiche@tempsoluzionelabel\verifiche@tempsoluzionelabel% + \else\solutionlabel\fi% +}% +\NewDocumentEnvironment{soluzione}{o +b}{% + \IfValueT{#1}{\setkeys{soluzione}{#1}}% \ifsol% \par\addvspace{\baselineskip}% - {\noindent\bfseries \solutionlabel}% + {\noindent\bfseries% + \ifsolutionscolor\color{\solutionscolor}\fi% + \verifiche@solutionlabel}% \par\nobreak\noindent\ignorespaces% \setlength\parindent{0pt}%no parindent - \solutionfont #1% + \solutionfont #2% \fi% }{% \ifsol% @@ -1485,16 +1585,21 @@ dell'esercizio somministrato %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[inner sep=0pt, 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[inner sep=0pt, xshift=1cm, shift={(1pt,1pt)}]{% - $\Large\ifsolutionscolor\color{\solutionscolor}\fi\checkmark$}}{};\fi% - }% + %True + \fbox{\@verifiche@Tletter}% + \ifsol\llap{% + \if#1\@verifiche@Tletter% + \Large\verifiche@checkmarker% + \fi}% + \fi% + \quad% + %False + \fbox{\@verifiche@Fletter}% + \ifsol\llap{% + \if#1\@verifiche@Fletter% + \Large\verifiche@checkmarker% + \fi}% + \fi%% } % \end{macrocode} %\end{macro} @@ -1517,20 +1622,26 @@ dell'esercizio somministrato %\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}}% +\newlist{crocette}{itemize}{1}% +\newlist{crocette*}{itemize*}{1}% +\setlist[crocette]{label=\closedquestionitem, leftmargin=*, parsep=0pt }% +\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 + \closedquestionitem\llap{\verifiche@checkmarker\hspace{-1pt}}% + \else% + \closedquestionitem% \fi} -\NewDocumentEnvironment{closedquestion}{+b}{% - \begin{crocette}#1% +\NewDocumentEnvironment{closedquestion}{O{}+b}{% + \begin{crocette}[#1]#2% }{% - \end{crocette} -} + \end{crocette}% +}% +\NewDocumentEnvironment{closedquestion*}{O{} +b}{% + \begin{crocette*}[#1]#2% +}{% + \end{crocette*}% +}% % \end{macrocode} %\end{environment} @@ -1602,5 +1713,17 @@ dell'esercizio somministrato } % \end{macrocode} %\end{macro} +% +% +%\begin{macro}{\makecolumn} +%The |\makecolumn| give the possibility to create multiple column in the document. +% \begin{macrocode} +\NewDocumentCommand{\makecolumn}{O{t} m +m}{% + \parbox[#1]{#2}{#3}% + \@ifnextchar\makecolumn{\hspace*{\columnseparation}}{}% +}% +% \end{macrocode} +%\end{macro} +% % \Finale \endinput
\ No newline at end of file |