diff options
author | Karl Berry <karl@freefriends.org> | 2017-08-05 20:57:05 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2017-08-05 20:57:05 +0000 |
commit | 19f23660ffb017d26da264466d6ad957c800bd14 (patch) | |
tree | d24ba9beb9b3d1a152d19e01c7310a1128dbaab5 /Master/texmf-dist/source/latex/cesenaexam | |
parent | 180ddd3112dacd2d1cd160d1ccdd872050f0e635 (diff) |
cesenaexam (5aug17)
git-svn-id: svn://tug.org/texlive/trunk@44960 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/cesenaexam')
-rw-r--r-- | Master/texmf-dist/source/latex/cesenaexam/cesenaexam.dtx | 660 | ||||
-rw-r--r-- | Master/texmf-dist/source/latex/cesenaexam/cesenaexam.ins | 87 |
2 files changed, 747 insertions, 0 deletions
diff --git a/Master/texmf-dist/source/latex/cesenaexam/cesenaexam.dtx b/Master/texmf-dist/source/latex/cesenaexam/cesenaexam.dtx new file mode 100644 index 00000000000..a1ee7241c20 --- /dev/null +++ b/Master/texmf-dist/source/latex/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/Master/texmf-dist/source/latex/cesenaexam/cesenaexam.ins b/Master/texmf-dist/source/latex/cesenaexam/cesenaexam.ins new file mode 100644 index 00000000000..19404aced5b --- /dev/null +++ b/Master/texmf-dist/source/latex/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'. |