summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/verifiche
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2020-07-01 20:50:38 +0000
committerKarl Berry <karl@freefriends.org>2020-07-01 20:50:38 +0000
commit878146825f50960945da8b9c18fa11f718c79c7b (patch)
tree74adb41797a7bbd17d0b1ce33a27a5f4845d60d3 /Master/texmf-dist/tex/latex/verifiche
parent217f4d072b9ff774eb8b4399999744824cac8d9a (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.sty292
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'.