summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/cesenaexam
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/cesenaexam
Initial commit
Diffstat (limited to 'macros/latex/contrib/cesenaexam')
-rw-r--r--macros/latex/contrib/cesenaexam/Makefile44
-rw-r--r--macros/latex/contrib/cesenaexam/README.md34
-rw-r--r--macros/latex/contrib/cesenaexam/cesenaexam.dtx660
-rw-r--r--macros/latex/contrib/cesenaexam/cesenaexam.ins87
-rw-r--r--macros/latex/contrib/cesenaexam/cesenaexam.pdfbin0 -> 308888 bytes
-rw-r--r--macros/latex/contrib/cesenaexam/cesenaexam_example.pdfbin0 -> 202507 bytes
-rw-r--r--macros/latex/contrib/cesenaexam/cesenaexam_example.tex353
7 files changed, 1178 insertions, 0 deletions
diff --git a/macros/latex/contrib/cesenaexam/Makefile b/macros/latex/contrib/cesenaexam/Makefile
new file mode 100644
index 0000000000..914ddb5a72
--- /dev/null
+++ b/macros/latex/contrib/cesenaexam/Makefile
@@ -0,0 +1,44 @@
+.PHONY : example cls all clean clsfast ctan
+
+all: cls example clean
+
+clsfast:
+ cp cesenaexam.dtx ./build/cesenaexam.dtx
+ cd ./build && \
+ pdflatex cesenaexam.dtx && \
+ rm cesenaexam.dtx
+
+cls:
+ cp cesenaexam.dtx ./build/cesenaexam.dtx
+ cd ./build && \
+ latexmk -pdf -pdflatex="pdflatex -interaction=nonstopmode" cesenaexam.dtx && \
+ makeindex -s gglo.ist -o cesenaexam.gls cesenaexam.glo && \
+ makeindex -s gind.ist -o cesenaexam.ind cesenaexam.idx && \
+ latexmk -pdf -pdflatex="pdflatex -interaction=nonstopmode" cesenaexam.dtx && \
+ rm cesenaexam.dtx && \
+ cp README.md ../
+
+example:
+ cp cesenaexam_example.tex ./build/cesenaexam_example.tex
+ cp -r images ./build/
+ cd ./build && \
+ latexmk -pdf -pdflatex="pdflatex -interaction=nonstopmode" cesenaexam_example.tex && \
+ rm cesenaexam_example.tex &&\
+ rm -r images
+
+clean:
+ cd ./build && \
+ rm -r *.aux *_latexmk *.fls *.glo *.gls *.hd *.idx *.ilg *.ind *.log *.out *.toc README.md
+
+ctan:
+ mkdir cesenaexam
+ cp Makefile ./cesenaexam/
+ cp README.md ./cesenaexam/
+ cp cesenaexam.dtx ./cesenaexam/
+ cp ./build/cesenaexam.pdf ./cesenaexam/
+ cp ./build/cesenaexam.ins ./cesenaexam/
+ cp ./build/cesenaexam.cls ./cesenaexam/
+ cp ./build/cesenaexam.sty ./cesenaexam/
+ cp cesenaexam_example.tex ./cesenaexam/
+ cp ./build/cesenaexam_example.pdf ./cesenaexam/
+ zip -r9 cesenaexam.zip ./cesenaexam
diff --git a/macros/latex/contrib/cesenaexam/README.md b/macros/latex/contrib/cesenaexam/README.md
new file mode 100644
index 0000000000..a8eb8c113d
--- /dev/null
+++ b/macros/latex/contrib/cesenaexam/README.md
@@ -0,0 +1,34 @@
+# cesenaexam LaTeX class
+```
+----------------------------------------------------------------
+cesenaexam --- class file to typeset exams
+E-mail: alexpacini90@gmail.com
+Released under the LaTeX Project Public License v1.3c or later
+See http://www.latex-project.org/lppl.txt
+Contributions to this repository as pull requests are welcome!
+----------------------------------------------------------------
+```
+
+This LaTeX document class has been designed to typeset exams.
+To make the ```.cls``` from the ```.dtx``` one, just run
+```make```.
+Read the manual for more informations.
+
+The processed files ready to be included can be downloaded from
+the following links:
+
+[Download cesenaexam Manual](https://alexpacini.github.io/cesenaexam/build/cesenaexam.pdf)
+
+[Download cesenaexam Example](https://alexpacini.github.io/cesenaexam/build/cesenaexam_example.pdf)
+
+<a href="https://alexpacini.github.io/cesenaexam/build/cesenaexam.cls" download="cesenaexam.cls">Download cesenaexam Class File</a>
+
+To use the class file, just drop it in the same folder as the ```.tex``` source file and use ```cesenaexam``` in the
+```\documentclass[a4paper, 10pt]{cesenaexam}``` or download the last published version from the archive below.
+
+## [Tag Archive](https://github.com/alexpacini/cesenaexam/tags)
+- [2017-08-04 - cesenaexam v0.2](https://github.com/alexpacini/cesenaexam/archive/v0.2.zip)
+
+
+
+
diff --git a/macros/latex/contrib/cesenaexam/cesenaexam.dtx b/macros/latex/contrib/cesenaexam/cesenaexam.dtx
new file mode 100644
index 0000000000..a1ee7241c2
--- /dev/null
+++ b/macros/latex/contrib/cesenaexam/cesenaexam.dtx
@@ -0,0 +1,660 @@
+% \iffalse meta-comment
+% !TEX program = pdfLaTeX
+%<*internal>
+\iffalse
+%</internal>
+%<*readme>
+# cesenaexam LaTeX class
+```
+----------------------------------------------------------------
+cesenaexam --- class file to typeset exams
+E-mail: alexpacini90@gmail.com
+Released under the LaTeX Project Public License v1.3c or later
+See http://www.latex-project.org/lppl.txt
+Contributions to this repository as pull requests are welcome!
+----------------------------------------------------------------
+```
+
+This LaTeX document class has been designed to typeset exams.
+To make the ```.cls``` from the ```.dtx``` one, just run
+```make```.
+Read the manual for more informations.
+
+The processed files ready to be included can be downloaded from
+the following links:
+
+[Download cesenaexam Manual](https://alexpacini.github.io/cesenaexam/build/cesenaexam.pdf)
+
+[Download cesenaexam Example](https://alexpacini.github.io/cesenaexam/build/cesenaexam_example.pdf)
+
+<a href="https://alexpacini.github.io/cesenaexam/build/cesenaexam.cls" download="cesenaexam.cls">Download cesenaexam Class File</a>
+
+To use the class file, just drop it in the same folder as the ```.tex``` source file and use ```cesenaexam``` in the
+```\documentclass[a4paper, 10pt]{cesenaexam}``` or download the last published version from the archive below.
+
+## [Tag Archive](https://github.com/alexpacini/cesenaexam/tags)
+- [2017-08-04 - cesenaexam v0.2](https://github.com/alexpacini/cesenaexam/archive/v0.2.zip)
+
+%</readme>
+%<*internal>
+\fi
+\def\nameofplainTeX{plain}
+\ifx\fmtname\nameofplainTeX\else
+ \expandafter\begingroup
+\fi
+%</internal>
+%<*install>
+\input docstrip.tex
+\keepsilent
+\askforoverwritefalse
+\preamble
+----------------------------------------------------------------
+cesenaexam --- class file to typeset exams
+E-mail: alexpacini90@gmail.com
+Released under the LaTeX Project Public License v1.3c or later
+See http://www.latex-project.org/lppl.txt
+Contributions to this repository as pull requests are welcome!
+----------------------------------------------------------------
+
+This LaTeX document class has been designed to typeset exams.
+To make the .cls from the .dtx one, just run
+```make```.
+
+\endpreamble
+\postamble
+
+Copyright (C) 2017 by Alex Pacini <alexpacini90@gmail.com>
+
+This work may be distributed and/or modified under the
+conditions of the LaTeX Project Public License (LPPL), either
+version 1.3c of this license or (at your option) any later
+version. The latest version of this license is in the file:
+
+http://www.latex-project.org/lppl.txt
+
+This work is "maintained" (as per LPPL maintenance status) by
+Alex Pacini.
+
+This work consists of the file cesenaexam.dtx
+and the derived files cesenaexam.ins,
+ cesenaexam.pdf and
+ cesenaexam.cls.
+
+\endpostamble
+\usedir{tex/latex/cesenaexam}
+\generate{
+ \file{\jobname.cls}{\from{\jobname.dtx}{class,classpackage}}
+}
+\generate{
+ \file{\jobname.sty}{\from{\jobname.dtx}{package,classpackage}}
+}
+%</install>
+%<install>\endbatchfile
+%<*internal>
+\usedir{source/latex/cesenaexam}
+\generate{
+ \file{\jobname.ins}{\from{\jobname.dtx}{install}}
+}
+\nopreamble\nopostamble
+\usedir{doc/latex/cesenaexam}
+\generate{
+ \file{README.md}{\from{\jobname.dtx}{readme}}
+}
+\ifx\fmtname\nameofplainTeX
+ \expandafter\endbatchfile
+\else
+ \expandafter\endgroup
+\fi
+%</internal>
+%<*class>
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesClass{cesenaexam}[2017/08/03 - v0.2 Cesena Exam]
+\def\cesenaexamversion{0.2}
+%</class>
+%<*package>
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{cesenaexam}[2017/08/03 - v0.2 Cesena Exam]
+\def\cesenaexamversion{0.2}
+%</package>
+%<*driver>
+\documentclass{ltxdoc}
+
+\makeatletter% Do not index foreign macros: tex.stackexchange.com/questions/46085
+\def\SpecialMainIndex#1{%
+\@bsphack
+\immediate\write\@auxout{%
+\global\noexpand\expandafter\let\noexpand\csname MAIN:\noexpand\string\string#1\endcsname\noexpand\@empty}%
+\SpecialIndex@{#1}{\encapchar main}\@esphack}
+\def\SpecialIndex#1{%
+\@bsphack
+ \expandafter\ifx\csname MAIN:\string#1\endcsname\@empty
+ \special@index{\expandafter\@gobble
+ \string#1\actualchar
+ \string\verb\quotechar*\verbatimchar\string#1\verbatimchar}%
+ \fi
+ \@esphack}
+\makeatother
+
+\usepackage[T1]{fontenc}
+\usepackage[utf8]{inputenc}
+%\usepackage{lmodern}
+\usepackage[numbered]{hypdoc}
+\usepackage{booktabs}
+\usepackage{amsfonts, amssymb, amsmath, textcomp, gensymb, mathtools}
+\interdisplaylinepenalty=2500
+\usepackage{array}
+\usepackage{url}
+\usepackage{microtype, datetime}
+\usepackage{color, soul}
+\let\oldsection\section
+\let\oldmaketitle\maketitle
+\usepackage{\jobname}
+\let\section\oldsection
+\let\maketitle\oldmaketitle
+\EnableCrossrefs
+\CodelineIndex
+\RecordChanges
+\begin{document}
+ \DocInput{\jobname.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+% \def\fileversion{v0.2}
+% \def\filedate{2017/08/03}
+%
+%\title{^^A
+% \textsf{cesenaexam} --- class file to typeset exams\thanks{^^A
+% This file describes version \fileversion, last revised \filedate.^^A
+% }^^A
+%}
+%\author{^^A
+% Alex Pacini\thanks{E-mail: alexpacini90@gmail.com}^^A
+%}
+%\date{Released \filedate}
+%
+%\maketitle
+%\tableofcontents
+%
+%\changes{v0.2}{2017/08/03}{First public release}
+%
+% \section{How to make}
+% This class is also provided with a Makefile and an example document.
+%
+% Just execute the Makefile with \verb|make| and the class file \verb|cesenaexam.cls|, the package file \verb|cesenaexam.sty|, this manual \verb|cesenaexam.pdf| and the example document \verb|cesenaexam_example.pdf| will be produced.
+%
+% \section{The cesenaexam document class}
+% \verb|\documentclass[a4paper, 10pts]{cesenaexam}|\\
+% \newline
+% The document class for the \texttt{cesenaexam}, which has few additional optional arguments listed in the following:
+% \begin{itemize}
+% \item \oarg{boxed}: Draws boxes around blocks.
+% The red box is the tikz bounding box, the black one is the minipage bounding box.
+% Useful for the layout of the page.
+% \item \oarg{times}: Sets a times font.
+% \item \oarg{noversion}: Hides the footer.
+% \item \oarg{left=2cm, right=2cm, top=2.5cm, bottom=2.5cm}: Set the page margins using the geometry package, the defaults are indicated here in the options.
+% \end{itemize}
+%
+%\section{The cesenaexam package}
+% \verb|\usepackage{cesenaexam}|\\
+% \newline
+% \noindent \textcolor{red}{\bfseries Not intended to be used with the class which already defines all the macros}
+%
+% All the macros are defined also without the class in a standalone package, which is used to make this manual.
+% There could be other uses, but those are not guaranteed.
+%
+%\StopEventually{^^A
+%\PrintChanges
+%\PrintIndex
+%}
+%
+% \iffalse
+%<*classpackage>
+% \fi
+%
+% \section[Class and package settings and definitions]{{\color{red}Class} and {\color{blue}package} settings and definitions}
+%
+% In both {\color{red}\verb|cesenaexam.cls|} and {\color{blue}\verb|cesenaexam.sty|}.
+% \begin{macrocode}
+%% Custom options
+\RequirePackage{etoolbox}
+%% I decided to use the etoolbox ifbool because the if else fi
+%% has issues with docstrip and needs a dirty hack
+%% tex.stackexchange.com/questions/162762
+%% No version option
+\newbool{exam@version}\booltrue{exam@version}
+%% Box the blocks option
+\newbool{exam@boxed}\boolfalse{exam@boxed}
+%% Times font option
+\newbool{exam@times}\boolfalse{exam@times}
+% \end{macrocode}
+%\iffalse
+%</classpackage>
+%<*class>
+%\fi
+% \noindent
+% Only in {\color{red}\verb|cesenaexam.cls|}.
+% \begin{macrocode}
+%% No version option
+\DeclareOption{noversion}{\boolfalse{exam@version}}
+%% Box the blocks option
+\DeclareOption{boxed}{\booltrue{exam@boxed}}
+%% Times font option
+\DeclareOption{times}{\booltrue{exam@times}}
+%% This class extends the article class
+%% Read all the documentclass options; pass them to article,
+\DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}}
+\ProcessOptions \relax
+%%
+\LoadClass{article}
+%%
+\RequirePackage{pgfkeys}
+\RequirePackage{pgfopts}
+%%
+%% Options to pass to geometry using pgfopts
+\pgfkeys{
+ /myexamgeometry/.is family, /myexamgeometry,
+ left/.default = 2cm,
+ right/.default = 2cm,
+ top/.default = 2.5cm,
+ bottom/.default = 2.5cm,
+ left/.store in =\exam@geometryleft,
+ right/.store in =\exam@geometryright,
+ top/.store in =\exam@geometrytop,
+ bottom/.store in =\exam@geometrybottom,
+ left, right, bottom, top,
+}
+\ProcessPgfOptions{/myexamgeometry}
+%%
+%% Page layout, check if the boxed option is used to load
+%% geometry with the showframe option
+\ifbool{exam@boxed}{%
+\RequirePackage[showframe,%
+left=\exam@geometryleft, right=\exam@geometryright,%
+top=\exam@geometrytop,bottom=\exam@geometrybottom]{geometry}%
+}{%
+\RequirePackage[left=\exam@geometryleft, right=\exam@geometryright,%
+top=\exam@geometrytop, bottom=\exam@geometrybottom]{geometry}%
+}
+%%
+%% Set the times font if the option is times
+\ifbool{exam@times}{%
+\RequirePackage{newtxtext,newtxmath}%
+}{}
+% \end{macrocode}
+%\iffalse
+%</class>
+%<*classpackage>
+%\fi
+% In both {\color{red}\verb|cesenaexam.cls|} and {\color{blue}\verb|cesenaexam.sty|}.
+% \begin{macrocode}
+%% Loading graphicx before tikz removes a
+%% strange issue with the \graphicspath
+\RequirePackage[pdftex]{graphicx}
+%% Tikz and circuitikz
+\RequirePackage{tikz}
+\RequirePackage[betterproportions]{circuitikz}
+\usetikzlibrary{arrows.meta,arrows,intersections,%
+positioning,fit,calc,through,babel}
+\usetikzlibrary{decorations.pathmorphing,backgrounds}
+%% Some settings for Tikz
+\tikzset{switcharc/.style={draw, thick, >=stealth},
+ every picture/.append style={tight background,%
+ baseline={([yshift=-1em] current bounding box.north)}}}
+% \end{macrocode}
+%\iffalse
+%</classpackage>
+%<*class>
+%\fi
+% Only in {\color{red}\verb|cesenaexam.cls|}.
+% \begin{macrocode}
+%% Set the Header
+\RequirePackage{fancyhdr}
+\renewcommand{\headrulewidth}{0pt}
+\setlength{\headheight}{25pt}
+\addtolength{\headheight}{\baselineskip}
+\fancypagestyle{plain}{
+\fancyhead[C]{
+\ifbool{exam@boxed}{%
+\tikzset{every picture/.style={framed, tight background},%
+background rectangle/.style={draw=red}}%
+}{}
+\begin{tikzpicture}
+\node (header) [align=center] at (0,0) {\@title};
+\end{tikzpicture}%
+}%
+\ifbool{exam@version}{%
+\fancyfoot[L]{{\it Proudly made with} \LaTeX}%
+\fancyfoot[R]{CesenaExam v\cesenaexamversion { }- {\it A. Pacini}}%
+}{}
+}
+\pagestyle{plain}
+% \end{macrocode}
+%\iffalse
+%</class>
+%<*classpackage>
+%\fi
+% In both {\color{red}\verb|cesenaexam.cls|} and {\color{blue}\verb|cesenaexam.sty|}.
+% \begin{macrocode}
+%% Redefine the section to have bigger font and to be
+%% delimited between two lines
+\RequirePackage{titlesec}
+\newcommand{\sectionfont}{\Large}
+\renewcommand\thesection{\bfseries \arabic{section}}
+\titleformat{\section}
+ {\titlerule
+ \vspace{0.5ex}%
+ \sectionfont}
+ {\thesection}{1em}
+ {\sectionfont \bfseries}[\titlerule]
+%% Redefine the enumerate item to be bold
+\renewcommand\labelenumi{\bfseries\theenumi.}
+%% Options for the titlebox processed from the
+%% maketitle optional arguments
+\pgfkeys{
+ /mytitlebox/.is family, /mytitlebox,
+ textboxheight/.default = 0.6cm,
+ whiteboxheight/.default = 1cm,
+ textboxheight/.store in = \minheighttext@title,
+ whiteboxheight/.store in = \minwhiteboxheight@title,
+ textboxone/.default = {\relax},
+ textboxtwo/.default = {\relax},
+ textboxthree/.default = {\relax},
+ textboxfour/.default = {\relax},
+ textboxone/.store in = \textboxone@title,
+ textboxtwo/.store in = \textboxtwo@title,
+ textboxthree/.store in = \textboxthree@title,
+ textboxfour/.store in = \textboxfour@title,
+ %% Executing them to assign the default value
+ %% (Tikz manual 82.3.2 or tex.stackexchange.com/questions/85754)
+ textboxheight, whiteboxheight, textboxone,
+ textboxtwo, textboxthree, textboxfour,
+}
+% \end{macrocode}
+%\iffalse
+%</classpackage>
+%\fi
+
+%\iffalse
+%<*internal>
+\iffalse
+%</internal>
+%<*comment>
+%% Just two example definition to be copied and pasted
+%
+%% Example definition of a macro with starred version, using describe macro:
+%
+%\DescribeMacro{\macroname}
+% Usage: \verb|\macroname|\marg{mandatory 1}\marg{mandatory 2} \\
+% Description.\\
+%
+%\DescribeMacro{\macroname*}
+% Usage: \verb|\macroname*|\marg{mandatory 1}\marg{mandatory 2} \\
+% Description.\\
+%
+% Definition of \cs{macroname} and \cs{macroname*}:
+%\DoNotIndex{\def,\@ifstar} ^^A Not really needed with the modified index macro in the doc document (see above)
+% \begin{macrocode} ^^A The four spaces are mandatory!
+%% Comment
+\def\macroname{\@ifstar\macro@name\macro@@name}
+\def\macro@name#1#2{\relax}
+\def\macro@@name#1#2{\relax}
+% \end{macrocode}
+%
+%% Example definition of a macro:
+%
+%\begin{macro}{\macroname}
+% Usage: \verb|\macroname|\marg{mandatory 1}\marg{mandatory 2} \\
+% Description.\\
+%
+% Definition of \cs{macroname}:
+%\DoNotIndex{\def} ^^A Not really needed with the modified index macro in the doc document (see above)
+%^^A The four spaces are mandatory!
+% \begin{macrocode}
+%% Comment
+\def\macroname#1#2{\relax}
+% \end{macrocode}
+%\end{macro}
+%</comment>
+%<*internal>
+\fi
+%</internal>
+%\fi
+
+%\iffalse
+%<*classpackage>
+%\fi
+% \section{Defined Macros} \indent
+%
+%\DescribeMacro{\examsection}
+% Usage: \verb|\examsection|\marg{bold title}\marg{italic text} \\
+% Prints the title between two lines \textbf{with} numbering.\\
+%
+%\DescribeMacro{\examsection*}
+% Usage: \verb|\examsection*|\marg{bold title}\marg{italic text} \\
+% Prints the title between two lines \textbf{without} numbering.\\
+%
+% Definition of \cs{examsection} and \cs{examsection*}:
+%\DoNotIndex{\def,\@ifstar,\@examsection,\@@examsection,\textmd,\textit,\noindent,\section}
+% \begin{macrocode}
+%% Define examsection and examsection*
+\def\examsection{\@ifstar\@examsection\@@examsection}
+\def\@examsection#1#2{\section*{#1 \textmd{(\textit{#2})}}\noindent}
+\def\@@examsection#1#2{\section{#1 \textmd{(\textit{#2})}}\noindent}
+% \end{macrocode}
+%
+%\begin{macro}{\boxempty}
+% Usage: \verb|\boxempty| $\to$ \boxempty \\
+% Prints an empty box.
+%
+% Definition of \verb|\boxempty|:
+%\DoNotIndex{\newcommand,\square,\;}
+% \begin{macrocode}
+%% Definition of empty tick box
+\newcommand{\boxempty}{$ \square \;$}
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\boxcheck}
+% Usage: \verb|\boxcheck| $\to$ \boxcheck \\
+% Prints a black or \textit{checked} box.
+%
+% Definition of \verb|\boxcheck|:
+%\DoNotIndex{\newcommand,\square,\;}
+% \begin{macrocode}
+%% Definition of empty tick box
+\newcommand{\boxcheck}{$ \blacksquare \;$}
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\examparts}
+% Usage: \verb|\examparts|\marg{}
+%\begin{verbatim}
+%\examparts{\bfseries Parts done: \hspace{1cm}%
+% E1 \boxempty \hspace{1cm}%
+% E2 \boxempty \hspace{1cm}%
+% D \boxempty}
+% \end{verbatim}
+% Used to include the checkboxes in \cs{maketitle} by passing the code to the \cs{examparts\{\}} macro.
+% It is internally assigned to the variable \cs{ex@parts}.
+%
+% Definition of \verb|\examparts{}|:
+% \begin{macrocode}
+%% Assigns to ex@parts what is passed to the function examparts{}.
+%% Works similarly similarly to author{}
+\def\examparts#1{\def\ex@parts{#1}}
+% \end{macrocode}
+%\end{macro}
+%
+%\DescribeMacro{\maketitle}
+% Usage: \cs{maketitle}\oarg{opt. args}\marg{Surname}\marg{Name}\marg{Id}\marg{Signature}\marg{N} \\
+% Redefines the \cs{maketitle}.\\
+% The mandatory arguments label the text (or top) boxes, where the last one used to give the exam type using one char or number.
+% It is also possible to give optional arguments:
+% \begin{itemize}
+% \item \oarg{textboxheight=0.6cm, whiteboxheight=1cm}: To set the height of the textboxes (\verb|textboxheight|) and of the whiteboxes (\verb|whiteboxheight|), the defaults are indicated here in the options;
+% \item \oarg{textboxone={Guglielmo}, textboxtwo={Marconi}, textboxthree={000},%\\ textboxfour={Signature.pdf}}: To fill the whiteboxes, default are empty.
+% \end{itemize}
+% A usage example is:
+%\begin{verbatim}
+%\maketitle[textboxheight=0.6cm, whiteboxheight=1cm,%
+% textboxone={Guglielmo}, textboxtwo={Marconi}, textboxthree={00000000},%
+% textboxfour={\includegraphics[width=3cm]{Guglielmo_Marconi_Signature}}]%
+% {Cognome}{Nome}{Matricola}{Firma}{1}
+% \end{verbatim}
+%
+%\DescribeMacro{\maketitle*}
+% Not implemented at the moment.\\
+%
+% Definition of \cs{maketitle} and \cs{maketitle*}:
+%\DoNotIndex{\def,\@ifstar} ^^A Not really needed with the modified index macro in the doc document (see above)
+% \begin{macrocode}
+%% Redefine maketitle
+%% Just for a future starred version
+\def\maketitle{\@ifstar\make@@title\make@title}%
+%% Define the unstarred version maketitle (make@title)
+\newcommand\make@title[6][]{%
+ \pgfkeys{/mytitlebox, #1}%
+ \make@@@title{#2}{#3}{#4}{#5}{#6}}%
+%% Define the common command
+\def\make@@@title#1#2#3#4#5{%
+\ifbool{exam@boxed}{%
+\tikzset{every picture/.append style={framed},%
+background rectangle/.style={draw=red}}}{}%
+\begin{center}%
+\begin{tikzpicture}%
+\pgfmathsetmacro{\boxlen}{(\textwidth-1.6cm)/4}%
+\pgfmathsetmacro{\lastboxlen}{\textwidth - 4*\boxlen - 1mm}%
+\node (surname) [draw, align=center, minimum width=\boxlen,%
+minimum height = \minheighttext@title] at (0,0) {\bf #1};%
+\node (surname box) [draw, anchor=north, minimum width=\boxlen,%
+minimum height = \minwhiteboxheight@title] at%
+($(surname.south)+(0,\pgflinewidth)$) {\textboxone@title};%
+\node (name) [draw, align=center, right=0 and -\pgflinewidth of surname,%
+minimum width=\boxlen, minimum height = \minheighttext@title] {\bf #2};%
+\node (name box) [draw, anchor=north, minimum width=\boxlen,%
+minimum height = \minwhiteboxheight@title] at%
+($(name.south)+(0,\pgflinewidth)$) {\textboxtwo@title};%
+\node (id) [draw, align=center, right=0 and -\pgflinewidth of name,%
+minimum width=\boxlen, minimum height = \minheighttext@title] {\bf #3};%
+\node (id box) [draw, anchor=north, minimum width=\boxlen,%
+minimum height = \minwhiteboxheight@title] at%
+($(id.south)+(0,\pgflinewidth)$) {\textboxthree@title};%
+\node (signature) [draw, align=center, right=0 and -\pgflinewidth of id,%
+minimum width=\boxlen, minimum height = \minheighttext@title] {\bf #4};%
+\node (signature box) [draw, anchor=north, minimum width=\boxlen,%
+minimum height = \minwhiteboxheight@title] at%
+($(signature.south)+(0,\pgflinewidth)$) {\textboxfour@title};%
+%%
+\pgfmathsetmacro{\minheighttypebox}{\minheighttext@title +%
+\minwhiteboxheight@title}%
+\node (examtype) [draw, align=center, anchor=north west,%
+minimum width=\lastboxlen, minimum height = \minheighttypebox] at%
+($(signature.north east)+(-\pgflinewidth,0)$) {\Huge \bfseries #5};%
+\node (checkboxes) [align=left, anchor=north west] at%
+(surname box.south west) {\ex@parts};%
+\end{tikzpicture}%
+\end{center}%
+}
+% \end{macrocode}
+%
+%\begin{macro}{\examtwoblocks}
+% Usage: \verb|\examtwoblocks|\marg{B1 length}\marg{B2 length}\marg{B1}\marg{B2} \\
+% Defines the macro \cs{examtwoblocks}.\\
+% The mandatory arguments are the lenght of the first block and of the second block, and their content, respectively.
+% They two boxes are vertically aligned to their centre.
+%
+% Definition of \cs{examtwoblocks}:
+%\DoNotIndex{\def} ^^A Not really needed with the modified index macro in the doc document (see above)
+% \begin{macrocode}
+%% Macro for two blocks centre aligned
+\def\examtwoblocks#1#2#3#4{%
+\noindent%
+\begin{minipage}[c]{#1}\flushleft#3\end{minipage}%
+\hfill%
+\begin{minipage}[c]{#2}#4\end{minipage}
+\par\vspace{5mm}\noindent%
+}
+\def\examtwoblocks@box#1#2#3#4{%
+\noindent%
+\tikzset{every picture/.append style={framed},
+ background rectangle/.style={draw=red}}%
+\let\bak@fboxsep\fboxsep%
+\def\fboxsep{0pt}%
+\fbox{\begin{minipage}[c]{#1}\flushleft#3\end{minipage}}%
+\hfill%
+\fbox{\begin{minipage}[c]{#2}#4\end{minipage}}%
+\let\fboxsep\bak@fboxsep%
+\par\vspace{5mm}\noindent%
+}
+\ifbool{exam@boxed}{%
+\renewcommand{\examtwoblocks}{\examtwoblocks@box}}{}
+% \end{macrocode}
+%\end{macro}
+%
+%
+%\begin{macro}{\examtwoblockstop}
+% Usage: \verb|\examtwoblockstop|\marg{B1 length}\marg{B2 length}\marg{B1}\marg{B2} \\
+% Defines the macro \cs{examtwoblockstop}.\\
+% The mandatory arguments are the lenght of the first block and of the second block, and their content, respectively.
+% They two boxes are vertically aligned to their top, which is useful if used inside an itemize or an enumerate environment.
+%
+% Definition of \cs{examtwoblockstop}:
+%\DoNotIndex{\def} ^^A Not really needed with the modified index macro in the doc document (see above)
+% \begin{macrocode}
+%% Macro for two blocks top aligned
+\def\examtwoblockstop#1#2#3#4{%
+\noindent%
+\begin{minipage}[t]{#1}\flushleft#3\end{minipage}%
+\hfill%
+\begin{minipage}[t]{#2}\flushright#4\end{minipage}%
+}
+\def\examtwoblockstop@box#1#2#3#4{%
+\noindent%
+\tikzset{every picture/.append style={framed},
+ background rectangle/.style={draw=red}}%
+\let\bak@fboxsep\fboxsep%
+\def\fboxsep{0pt}%
+\fbox{\begin{minipage}[t]{#1}\flushleft#3\end{minipage}}%
+\hfill%
+\fbox{\begin{minipage}[t]{#2}\flushright#4\end{minipage}}%
+\let\fboxsep\bak@fboxsep%
+}
+\ifbool{exam@boxed}{%
+\renewcommand{\examtwoblockstop}{\examtwoblockstop@box}}{}
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\examoneblocktop}
+% Usage: \verb|\examoneblocktop|\marg{B length}\marg{B} \\
+% Defines the macro \cs{examoneblock}.\\
+% The mandatory arguments are the lenght of the block and its content.
+% They box is vertically aligned to its top, which is useful if used inside an itemize or an enumerate environment.
+%
+% Definition of \cs{examoneblock}:
+%\DoNotIndex{\def} ^^A Not really needed with the modified index macro in the doc document (see above)
+% \begin{macrocode}
+%% Macro for one block top aligned
+\def\examoneblocktop#1#2{%
+\noindent%
+\begin{minipage}[t]{#1}\flushleft#2\end{minipage}}%
+\def\examoneblocktop@box#1#2{%
+\noindent%
+\tikzset{every picture/.append style={framed},
+ background rectangle/.style={draw=red}}%
+\let\bak@fboxsep\fboxsep%
+\def\fboxsep{0pt}%
+\fbox{\begin{minipage}[t]{#1}\flushleft#2\end{minipage}}%
+\let\fboxsep\bak@fboxsep%
+}
+\ifbool{exam@boxed}{%
+\renewcommand{\examoneblocktop}{\examoneblocktop@box}}{}
+% \end{macrocode}
+%\end{macro}
+%
+%\iffalse
+%</classpackage>
+%\fi
+
+%\Finale
diff --git a/macros/latex/contrib/cesenaexam/cesenaexam.ins b/macros/latex/contrib/cesenaexam/cesenaexam.ins
new file mode 100644
index 0000000000..19404aced5
--- /dev/null
+++ b/macros/latex/contrib/cesenaexam/cesenaexam.ins
@@ -0,0 +1,87 @@
+%%
+%% This is file `cesenaexam.ins',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% cesenaexam.dtx (with options: `install')
+%% ----------------------------------------------------------------
+%% cesenaexam --- class file to typeset exams
+%% E-mail: alexpacini90@gmail.com
+%% Released under the LaTeX Project Public License v1.3c or later
+%% See http://www.latex-project.org/lppl.txt
+%% Contributions to this repository as pull requests are welcome!
+%% ----------------------------------------------------------------
+%%
+%% This LaTeX document class has been designed to typeset exams.
+%% To make the .cls from the .dtx one, just run
+%% ```make```.
+%%
+\input docstrip.tex
+\keepsilent
+\askforoverwritefalse
+\preamble
+----------------------------------------------------------------
+cesenaexam --- class file to typeset exams
+E-mail: alexpacini90@gmail.com
+Released under the LaTeX Project Public License v1.3c or later
+See http://www.latex-project.org/lppl.txt
+Contributions to this repository as pull requests are welcome!
+----------------------------------------------------------------
+
+This LaTeX document class has been designed to typeset exams.
+To make the .cls from the .dtx one, just run
+```make```.
+
+\endpreamble
+\postamble
+
+Copyright (C) 2017 by Alex Pacini <alexpacini90@gmail.com>
+
+This work may be distributed and/or modified under the
+conditions of the LaTeX Project Public License (LPPL), either
+version 1.3c of this license or (at your option) any later
+version. The latest version of this license is in the file:
+
+http://www.latex-project.org/lppl.txt
+
+This work is "maintained" (as per LPPL maintenance status) by
+Alex Pacini.
+
+This work consists of the file cesenaexam.dtx
+and the derived files cesenaexam.ins,
+ cesenaexam.pdf and
+ cesenaexam.cls.
+
+\endpostamble
+\usedir{tex/latex/cesenaexam}
+\generate{
+ \file{\jobname.cls}{\from{\jobname.dtx}{class,classpackage}}
+}
+\generate{
+ \file{\jobname.sty}{\from{\jobname.dtx}{package,classpackage}}
+}
+\endbatchfile
+
+
+
+%%
+%% Copyright (C) 2017 by Alex Pacini <alexpacini90@gmail.com>
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License (LPPL), either
+%% version 1.3c of this license or (at your option) any later
+%% version. The latest version of this license is in the file:
+%%
+%% http://www.latex-project.org/lppl.txt
+%%
+%% This work is "maintained" (as per LPPL maintenance status) by
+%% Alex Pacini.
+%%
+%% This work consists of the file cesenaexam.dtx
+%% and the derived files cesenaexam.ins,
+%% cesenaexam.pdf and
+%% cesenaexam.cls.
+%%
+%%
+%% End of file `cesenaexam.ins'.
diff --git a/macros/latex/contrib/cesenaexam/cesenaexam.pdf b/macros/latex/contrib/cesenaexam/cesenaexam.pdf
new file mode 100644
index 0000000000..15c9665f3d
--- /dev/null
+++ b/macros/latex/contrib/cesenaexam/cesenaexam.pdf
Binary files differ
diff --git a/macros/latex/contrib/cesenaexam/cesenaexam_example.pdf b/macros/latex/contrib/cesenaexam/cesenaexam_example.pdf
new file mode 100644
index 0000000000..410bc3d5b2
--- /dev/null
+++ b/macros/latex/contrib/cesenaexam/cesenaexam_example.pdf
Binary files differ
diff --git a/macros/latex/contrib/cesenaexam/cesenaexam_example.tex b/macros/latex/contrib/cesenaexam/cesenaexam_example.tex
new file mode 100644
index 0000000000..45e4bb4678
--- /dev/null
+++ b/macros/latex/contrib/cesenaexam/cesenaexam_example.tex
@@ -0,0 +1,353 @@
+\documentclass[a4paper, 10pt]{cesenaexam}
+\usepackage[T1]{fontenc}
+\usepackage[utf8]{inputenc}
+%\usepackage{lmodern}
+\usepackage[italian]{babel}
+\usepackage{booktabs}
+\usepackage{cite}
+\graphicspath{{./images/}}
+\usepackage{amsfonts, amssymb, amsmath, textcomp, gensymb, mathtools}
+\interdisplaylinepenalty=2500
+\usepackage{array}
+\usepackage{url}
+\usepackage{microtype, datetime}
+\usepackage{color, soul}
+\usepackage[capitalise]{cleveref}
+\usepackage{siunitx}
+
+\newcommand{\R}{\mathbb{R}}
+\newcommand{\C}{\mathbb{C}}
+\renewcommand{\Re}{\operatorname{Re}}
+\renewcommand{\Im}{\operatorname{Im}}
+
+%%
+% Set the title and parts here
+%%
+\title{\bf Elettrotecnica - Ing. Aerospaziale, Ing. Meccanica \\
+ \bf A.A. 2016/17 - Prova n.3 - 21 luglio 2017}
+
+\examparts{\bfseries Parti Svolte: \hspace{1cm}%
+ E1 \boxempty \hspace{1cm}%
+ E2 \boxempty \hspace{1cm}%
+ D \boxempty}
+
+\begin{document}
+\maketitle{Cognome}{Nome}{Matricola}{Firma}{1}
+
+\examsection*{Esercizio 1}{11 punti}
+\examtwoblocks{0.385\textwidth}{0.58\textwidth}{
+\begin{tikzpicture}
+\draw (0,0)
+node [label={below:$D$}] {}
+to [short, *-] ++(2.5,0)
+to [R, l=$R_4$, i_=$I_4$] ++(0,3)
+node [label={right:$C$}] {} coordinate (C)
+-- ++(0,1.5)
+to [controlled voltage source, v_=$\mu V_4$] ++(-5,0)
+-- ++(0,-1.5)
+node [label={left:$A$}] {} coordinate (A)
+to [short, *-, i={\relax}] ++(0.5,0) ++(-0.5,0)
+to [R, l=$R_1$, -*] ++(2.5,0)
+node [label={above:$B$}] {} coordinate (B)
+to [controlled current source, l=$\alpha I_4$, i_={\relax}, -*] ++(2.5,0)
+;
+\draw (0,0)
+to [V, v_=$V_{G3}$] ++(0,1.5)
+to [R, l=$R_3$] ($(B) - (0,0.5)$)
+to [short, i<={\relax}] (B)
+;
+\draw (0,0)
+-- ++(-2.5,0)
+to [R, l=$R_2$, i={\relax}] (A)
+;
+\end{tikzpicture}
+}{%
+Supponendo noti i parametri dei componenti, illustrare il procedimento di risoluzione del circuito rappresentato in figura con il {\bf metodo delle tensioni di nodo}:%
+\begin{enumerate}
+\item indicare quali grandezze vengono scelte come incognite del sistema risolvente;
+\item scrivere le espressioni della matrice dei coefficienti e del vettore dei termini noti del sistema risolvente;
+\item scrivere le espressioni in funzione delle incognite indicate al punto 1 delle correnti dei resistori;
+\item scrivere le espressioni in funzione delle incognite e delle correnti determinate al punto 3 delle potenze erogate dai generatori.
+\end{enumerate}%
+}
+
+\examsection*{Esercizio 2}{11 punti}
+\examtwoblocks{0.65\textwidth}{0.32\textwidth}{
+\begin{tikzpicture}
+\draw (0,0) coordinate (ref)
+to [V, v=$V_G$] ++(0,1.5)
+to [ european resistor, l=$\mathbf{Z}_G$] ++(0,1.5) coordinate (topZG)
+-- ++(1.5,0) coordinate (T1top)
+(T1top |- 0,0) coordinate (T1bot)
+-- (0,0)
+;
+\newlength{\myRT}\pgfmathsetlength{\myRT}{0.5cm}
+\coordinate (T2bot) at ($(1.8,0) + (0.8*\myRT,0)$);
+\coordinate (T2top) at (T2bot |- 0,3);
+\draw (T1bot)
+-- ($(T1bot)!0.5!(T1top) - (0,\myRT)$) coordinate (T1mtop);
+\draw (T2bot)
+-- ($(T2bot)!0.5!(T2top) - (0,\myRT)$) coordinate (T2mtop);
+\draw [thick] (T1mtop)
+arc [start angle=-90, end angle=90, radius=\myRT] coordinate (T1ptop);
+\draw [thick] (T2mtop)
+arc [start angle=-90, end angle=-270, radius=\myRT] coordinate (T2ptop);
+\node (Tname) [anchor=south] at ($(T1ptop) + (0.8\myRT,0)$) {$k$};
+\draw (T1ptop) to (T1top);
+\draw (T2ptop) to (T2top);
+\draw (T2top)
+to [european resistor, l=$X$] ++(2,0) coordinate (Xright);
+\draw (Xright)
+-- ++(0,0.5)
+to [short,i>^=$i_1$] ++(0.5,0)
+to [R, l=$R_1$] ++(1,0)
+to [L, l=$L_1$] ++(1.5,0)
+-- ++(0,-1)
+to [controlled current source, i<=\relax, l=$\alpha i_1$] ++(-3,0)
+to [short, -*] (Xright)
+;
+\draw ($(Xright)+(3,0)$)
+to [short, *-] ++(1,0)
+to [short, -*] ++(0,-0.5) coordinate (R2C2centop)
+to [short] ++(0.5,0)
+to [C, l_=$C_2$] ++(0,-2)
+to [short] ++(-1.3,0)
+to [R, l=$R_2$] ++(0,2)
+-- ++(0.8,0)
+;
+\draw (T2bot)
+-- (T2bot -| R2C2centop)
+to [short, -*] ++(0,0.5)
+;
+\draw ($(T2bot) + (0,0.5)$)
+to [open, v=$v$] ($(T2bot) + (0,2.5)$);
+\draw [dashed] ($(Xright) + (-0.2,1.4)$) rectangle (9.2,-0.2);
+\end{tikzpicture}
+}{\begin{tabular}{ll}%
+$R_1 =$ \SI{4}{\ohm} & $L_1 =$ \SI{4}{mH} \\
+$R_2 =$ \SI{20}{\ohm} & $C_2 =$ \SI{100}{\mu F} \\
+$\alpha =$ \si{3} \\
+\multicolumn{2}{l}{$V_G =$ $\mathrm{120\sqrt{5} \cos(\omega t + \phi)}$ \si{V}} \\
+$\cos \phi = \mathrm{\sqrt{5}/5}$ & $\sin \phi = \mathrm{-2\sqrt{5}/5}$ \\
+$\omega =$ \SI{100}{rad/s} \\
+\multicolumn{2}{l}{$\mathbf{Z}_G = \mathrm{180 + 180j}$ \si{\ohm}}
+\end{tabular}%
+}
+Il circuito rappresentato in figura è in condizioni di regime sinusoidale. Determinare:
+\begin{enumerate}
+\item l’impedenza equivalente, $\mathbf{Z}_{eq}$, del bipolo racchiuso dalla linea tratteggiata;
+\item la potenza disponibile, $P_d$, del bipolo formato dal generatore $V_G$ e dall’impedenza $\mathbf{Z}_{G}$;
+\item i valori da attribuire al rapporto di trasformazione $k$ e alla reattanza $X$ affinché la potenza attiva assorbita da $\mathbf{Z}_{eq}$ sia uguale a $P_d$;
+\item l’espressione della tensione $v(t)$ (con i valori di $k$ e $X$ determinati al punto precedente).
+\end{enumerate}
+
+\newpage
+\examsection*{Domande}{10 punti}
+\begin{enumerate}
+\item \examtwoblockstop{9cm}{6cm}{
+ \begin{tikzpicture}
+ \node (text) [align=justify, text width=0.97\textwidth] {%
+ Le tensioni concatenate costituiscono una terna diretta di valore efficace \SI{866}{V}.
+ Determinare il valore efficace $I$ delle correnti di linea e il valore efficace $I_{\Delta}$ delle correnti nei resistori $R_2$. (\textit{2 punti})\\
+ $R_1 =$ \SI{5}{\ohm}, $R_2 =$ \SI{30}{\ohm}, $\omega L =$ \SI{10}{\ohm}.
+ };
+ \node (I) [draw, anchor=north west, minimum width=1cm, minimum height = 1cm] at (text.south west) {$I$};
+ \node (I box) [draw, anchor=north west, minimum width=3cm, minimum height = 1cm] at ($(I.north east)+(-\pgflinewidth,0)$) {};
+ \node (Idelta) [draw, anchor=north west, minimum width=1cm, minimum height = 1cm] at ($(I box.north east)+(-\pgflinewidth,0)$) {$I_{\Delta}$};
+ \node (Idelta box) [draw, anchor=north west, minimum width=3cm, minimum height = 1cm] at ($(Idelta.north east)+(-\pgflinewidth,0)$) {};
+ \end{tikzpicture}%
+ }{%
+ \begin{tikzpicture}[scale=0.7, transform shape]
+ \draw (0,0)
+ node [label={left:$1$}] {}
+ to [short, *-, i=\relax] ++(1,0)
+ to [R, l=$R_1$] ++(1,0) coordinate (L1p)
+ -- ++(2.5,0) coordinate (R21)
+ to [R, l=$R_2$, *-] ++(2,0) coordinate
+ -- ++(0,-0.5) coordinate (R21p)
+ to [short, i=\relax] (R21p -| R21)
+ to [short, -*] ++(0,-1) coordinate (R22)
+ to [R, l=$R_2$, *-] ++(2,0)
+ -- ++(0,-0.5) coordinate (R22p)
+ to [short, i=\relax] (R22p -| R22)
+ to [short, -*] ++(0,-1) coordinate (R23)
+ to [R, l=$R_2$, *-] ++(2,0)
+ -- ++(0.5,0)
+ to [short, i=\relax] ++(0,4)
+ -- ++(-2.5,0)
+ -- ++(0,-1)
+ ;
+ \draw (R22)
+ -- ++(-2.5,0)
+ to [R, l_=$R_1$] ++(-1,0)
+ to [short, i<=\relax, -*] ++(-1,0)
+ node [label={left:$2$}] {}
+ ;
+ \draw (R23)
+ -- ++(-2.5,0)
+ to [R, l_=$R_1$] ++(-1,0)
+ to [short, i<=\relax, -*] ++(-1,0)
+ node [label={left:$3$}] {}
+ ;
+ \draw ($(L1p)!0.1!(R21)$)
+ to [short, *-] ++(0,-3.5)
+ to [L, l_=$L$] ++(0,-1)
+ -- ++(0,-0.5) coordinate (L1m)
+ ;
+ \draw ($(L1p)!0.5!(R21) + (0,-1.5)$)
+ to [short, *-] ++(0,-2)
+ to [L, l_=$L$] ++(0,-1)
+ -- ++(0,-0.5) coordinate (L2m)
+ ;
+ \draw ($(L1p)!0.9!(R21) + (0,-3)$)
+ to [short, *-] ++(0,-0.5)
+ to [L, l_=$L$] ++(0,-1)
+ -- ++(0,-0.5) coordinate (L3m)
+ ;
+ \draw (L1m)
+ to [short, -*] (L2m)
+ -- (L3m)
+ ;
+ \end{tikzpicture}}
+\item \examtwoblockstop{10cm}{5cm}{
+ \begin{tikzpicture}
+ \node (text) [align=justify, text width=0.97\textwidth] {%
+ Per $t<0$ il circuito è in condizioni di regime stazionario e l’interruttore è chiuso.
+ All’istante $t=0$ si apre l’interruttore.
+ Determinare l’espressione di $i_{L}(t)$ per $t>0$.
+ (\textit{2 punti})
+ };
+ \node (iL) [draw, anchor=north west, minimum width=1cm, minimum height = 1cm] at (text.south west) {$i_{L} (t)$};
+ \node (iL box) [draw, anchor=north west, minimum width=7cm, minimum height = 1cm] at ($(iL.north east)+(-\pgflinewidth,0)$) {};
+ \end{tikzpicture}%
+ }{%
+ \begin{tikzpicture} [scale=0.8, transform shape]
+ \draw (0,0) coordinate (circuit north west)
+ to [short, -*] ++(0,-1)
+ to [R, l=$R$] ++(0,-2)
+ -- ++(2,0)
+ to [short, *-] ++(2,0)
+ to [L, -*, i_<=$i_L$, l=$L$] ++(0,2)
+ to [R, -*, l_=$R$] ++(-2,0) coordinate (IGp)
+ to [R, -*, l_=$R$] ++(-2,0);
+ \draw (IGp) to [I, i<=\relax, l=$I_G$] ++(0,-2);
+ \draw (circuit north west) -- ++(1.5,0) coordinate (Swm);
+ \coordinate (Swp) at ($(Swm)+(1,0)$);
+ \draw (Swp)
+ -- ++(1.5,0)
+ -- ++(0,-1)
+ ;
+ \node [circ] at (Swm){};
+ \node [circ] at (Swp){};
+ \draw [thick] (Swm) -- (Swp);
+ \draw [densely dotted,thin] let \p1 = ($(Swp)-(Swm)$) in (Swm) -- ++(30:({veclen(\x1,\y1)}););
+ \coordinate (Swmiddown) at ($(Swm)!0.5!(Swp) + (0,-0.2)$);
+ \draw [->, switcharc] (Swmiddown) arc [start angle=-10, end angle=60, radius=0.6cm];
+ \end{tikzpicture}}
+\item \examtwoblockstop{11cm}{4cm}{
+ \begin{tikzpicture}
+ \node (text) [align=justify, text width=0.97\textwidth] {%
+ Il carico trifase rappresentato nella figura viene alimentato mediante una terna simmetrica di tensioni concatenate.
+ Se la potenza assorbita quando l’interruttore è chiuso è $P_c =$ \SI{3}{\kW}, qual è la potenza $P_a$ assorbita con l’interruttore aperto? (\textit{2 punti})
+ };
+ \node (Pa) [draw, anchor=north west, minimum width=1cm, minimum height = 1cm] at (text.south west) {$P_{a}$};
+ \node (Pa box) [draw, anchor=north west, minimum width=7cm, minimum height = 1cm] at ($(Pa.north east)+(-\pgflinewidth,0)$) {};
+ \end{tikzpicture}
+ }{
+ \begin{tikzpicture}[scale=0.8, transform shape]
+ \draw (0,0)
+ node [label={left:$1$}] {}
+ to [short, *-, i=\relax] ++(1,0) coordinate (R1p);
+ \draw (0,1.5)
+ node [label={left:$2$}] {}
+ to [short, *-, i=\relax] ++(1,0) coordinate (R2p);
+ \draw (0,3)
+ node [label={left:$3$}] {}
+ to [short, *-, i=\relax] ++(1,0) coordinate (R3p);
+ \draw (R1p)
+ to [short] ++(0.5,0)
+ to [R, l=$R$] ++(1,0)
+ to [short] ++(0.5,0)
+ to [short, -*] ++(0,1)
+ ;
+ \draw (R2p)
+ to [short, *-] ++(0,0.5)
+ -- ++(0.5,0)
+ to [R, l=$2R$] ++(1,0)
+ to [short] ++(0.5,0)
+ -- ++(0,-0.2) coordinate (Swm)
+ ;
+ \draw (R2p)
+ to [short] ++(0,-0.5)
+ -- ++(0.5,0)
+ to [R, l=$2R$] ++(1,0)
+ to [short] ++(0.5,0)
+ -- ++(0,+0.2) coordinate (Swp)
+ ;
+ \draw (R3p)
+ to [short] ++(0.5,0)
+ to [R, l=$R$] ++(1,0)
+ to [short] ++(0.5,0)
+ to [short, -*] ++(0,-1)
+ ;
+ \node [circ] at (Swm){};
+ \node [circ] at (Swp){};
+ \draw [thick] (Swm) -- (Swp);
+ \draw [densely dotted] let \p1 = ($(Swp)-(Swm)$) in (Swm) -- ++(-60:({veclen(\x1,\y1)}););
+ \coordinate (Swmiddown) at ($(Swm)!0.5!(Swp) + (-0.1,0)$);
+ \draw [->, switcharc] let \p1 = ($(Swp)-(Swm)$) in (Swmiddown) arc [start angle=-100, end angle=-45, radius=({veclen(\x1,\y1)})];
+ \end{tikzpicture}
+ }
+\item \examtwoblockstop{11cm}{5cm}{
+ \begin{tikzpicture}
+ \node (text) [align=justify, text width=0.97\textwidth] {%
+ Si considerino due avvolgimenti di $N_1$ e $N_2$ spire disposti su un nucleo toroidale avente raggio medio $r$ e sezione $S$.
+ Se il raggio $r$ viene raddoppiato, è possibile mantenere invariato il coefficiente di mutua induzione dei due avvolgimenti: (\textit{1 punto})
+ };
+ \node (choices) [anchor=north west, text width=0.97\textwidth] at (text.south west) {%
+ $\square \;$ dimezzando il numero di spire di entrambi gli avvolgimenti\\
+ $\square \;$ raddoppiando il numero di spire di entrambi gli avvolgimenti\\
+ $\square \;$ raddoppiando il numero di spire di uno degli avvolgimenti\\
+ $\square \;$ raddoppiando il valore delle correnti nei due avvolgimenti};
+ \end{tikzpicture}
+ }{
+ \begin{tikzpicture}
+ \node (image) {\includegraphics[width=0.9\textwidth]{toroid_mutual}};
+ \end{tikzpicture}
+ }
+\item \examoneblocktop{15cm}{
+ \begin{tikzpicture}
+ \node (text) [align=justify, text width=0.97\textwidth] {%
+ L’area racchiusa da un ciclo di isteresi nel piano H-B corrisponde: (\textit{1 punto})
+ };
+ \node (choices) [anchor=north west, text width=0.97\textwidth] at (text.south west) {%
+ $\square \;$ alla potenza dissipata in un ciclo di isteresi\\
+ $\square \;$ alla densità volumetrica di energia dissipata in un ciclo di isteresi\\
+ $\square \;$ all’energia accumulata nel campo magnetico in un ciclo di isteresi};
+ \end{tikzpicture}
+ }
+\item \examoneblocktop{15cm}{
+ \begin{tikzpicture}
+ \node (text) [align=justify, text width=0.97\textwidth] {%
+ In condizioni di risonanza il fattore di potenza di un bipolo RLC serie è: (\textit{1 punto})
+ };
+ \node (choices) [anchor=north west, text width=0.97\textwidth] at (text.south west) {%
+ $\square \;$ nullo\\
+ $\square \;$ minimo\\
+ $\square \;$ massimo};
+ \end{tikzpicture}
+ }
+\item \examoneblocktop{15cm}{
+ \begin{tikzpicture}
+ \node (text) [align=justify, text width=0.97\textwidth] {%
+ Il valore medio della potenza istantanea reattiva assorbita da un bipolo passivo in regime sinusoidale: (\textit{1 punto})
+ };
+ \node (choices) [anchor=north west, text width=0.97\textwidth] at (text.south west) {%
+ $\square \;$ è sempre $\geq$ 0 \\
+ $\square \;$ è sempre $\leq$ 0 \\
+ $\square \;$ è sempre nullo \\
+ $\square \;$ è $\geq$ 0 per i bipoli RL e $\leq$ 0 per i bipoli RC};
+ \end{tikzpicture}
+ }
+\end{enumerate}
+\end{document} \ No newline at end of file