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/tex/latex/verifiche | |
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/tex/latex/verifiche')
-rw-r--r-- | Master/texmf-dist/tex/latex/verifiche/verifiche.sty | 292 |
1 files changed, 292 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/verifiche/verifiche.sty b/Master/texmf-dist/tex/latex/verifiche/verifiche.sty new file mode 100644 index 00000000000..13ca6420ddc --- /dev/null +++ b/Master/texmf-dist/tex/latex/verifiche/verifiche.sty @@ -0,0 +1,292 @@ +%% +%% This is file `verifiche.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% verifiche.dtx (with options: `package') +%% 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. +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{verifiche} [2020/07/01 v2.2 .dtx verifiche file] + + +\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} +%%Forse si può cancellare questo +\usetikzlibrary{calc,shapes.geometric,patterns,positioning,angles,quotes} +\sisetup{ + output-decimal-marker = {,}, + exponent-product = \cdot, + per-mode=symbol-or-fraction, + separate-uncertainty +} +\setlength\parindent{0pt} +%%newif +\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 +%%Package option declaration +\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 +%%counters +\newcounter{exercisenumber} +\newcounter{partialpoints}[exercisenumber] +%%macro and environment +%%global variable +\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}} +%%fonts and aspects +\newcommand{\institutefont}[1]{% + \large \sffamily\color{darkgray}#1} +\newcommand{\asyearfont}[1]{% + \hspace*{\fill} #1\hspace*{\fill}\\[.5em]} +\newcommand{\testtypefont}[1]{% + \hspace*{\fill}\scshape\huge#1\hspace*{\fill}} +\newcommand{\instructiondelimiter}{% + \rule{\textwidth}{.5pt}} +\newcommand{\instrunctionfont}[1]{% + \sffamily#1} +\newcommand{\durationfont}[1]{% + \hspace*{\fill}\@durationpreamble\space\bfseries #1\hspace*{\fill}} +\newcommand{\eserciziolabel}{% + Quesito} +\newcommand{\solutionfont}{% + \footnotesize\ifsolutionscolor\color{\solutionscolor}\fi\itshape} +\newcommand{\diffsymb}{% + $\bigstar$} +\newcommand{\closedquestionitem}{% + $\square$} +%%print headings +\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}% +} + +%%ambiente esercizio +\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}% +\newcommand{\exercisetitle}{% + \ifdefined\tempeserciziolabel\tempeserciziolabel% + \else \eserciziolabel\fi% +} +\newsavebox{\box@marginexercise} +\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}}% +}% +\newcommand{\savepointsaux}{% + \ifdefined\sumpartialpt% + \protected@write \@auxout {}{\string\newlabel {ptes@\theexercisenumber}{{\thepartialpoints}{}}}% + \fi% + \ifdefined\espoint% + \protected@write \@auxout {}{\string\newlabel {ptes@\theexercisenumber}{{\pointes}{}}}% + \fi% +}% + +\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% +}% +\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 +}% +\NewDocumentCommand{\partialpt}{m}{% + \leavevmode\reversemarginpar\marginpar{\hfill(#1 pt)\addtocounter{partialpoints}{#1}}% +} +\NewDocumentEnvironment{soluzione}{+b}{% + \ifsol% + \par\addvspace{\baselineskip}% + {\noindent\bfseries Soluzione}% + \par\nobreak\noindent\ignorespaces% + \solutionfont #1% + \fi% +}{% + \ifsol% + \par\ignorespacesafterend + \fi% +}% +\newcommand{\inlinesol}[1]{% + \ifsol% + \bgroup% + \ifmmode\mathit{\solutionfont#1}% + \else{\solutionfont#1}% + \fi% + \egroup% + \else\ignorespaces% + \fi% +} +\newcommand{\completetext}[2][4.5cm]{% + \ifsol% + $\overset{\displaystyle\text{\solutionfont#2}}{\underline{\hspace{#1}}}$% + \else% + $\overset{\relax}{\underline{\hspace{#1}}}$% + \fi}% +\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% + }% +} +\newcommand{\finderror}[2]{% + \ifsol% + $\overset{\text{{\solutionfont#2}}}{\text{\xout{#1}}}$% + \else% + #1% + \fi% +} +\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} +} + +\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}} +\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% +} +\NewDocumentCommand{\textandimage}{O{.7\textwidth} O{.3\textwidth} m m}{% + \begin{minipage}{#1} + {#3} + \end{minipage} + \hfill + \begin{minipage}{#2} + {#4} + \end{minipage} +} +\endinput +%% +%% End of file `verifiche.sty'. |