%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
%	Base file of document style definitions for automatic quiz 
%	Author: Nuno Datia
%	2018
%	Version 1.0
%
% Source http:\\auto-multiple-choice
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%\usepackage[box,completemulti]{automultiplechoice}    
% lang = PT1 remove ''DRAFT'' watermark as well message below
% lang = PT remain the multiple-choice
 % ## vars - BY DEFAULT

\gdef\@theday{1}
\gdef\@themonth{1}
\gdef\@theyear{1900}
% for tests
\gdef\@theexam{0}
% only for preliminary tests
\gdef\@theminitest{1}
\gdef\@thegroup{I}

\gdef\@thetheacher{Matilde P.M. Pato}
\gdef\@thecourse{Programa\c{c}\~{a}o}
\gdef\@thegraduation{Licenciatura em Engenharia Inform\'{a}tica e de Computadores}

\gdef\@thedepartmentfont{\small\sffamily}
\gdef\@thefacultyfont{\normalsize\sffamily}
\gdef\@thecoursefont{\small\sffamily}

% Listings
%\usepackage{fancyvrb}
\usepackage[final]{listings}
\usepackage{multicol}
%\usepackage{minted}

%tables
\usepackage{longtable}
\usepackage{booktabs}
\usepackage{multirow}

%enumerados inline
\usepackage{paralist}

%Define commands that appear not to eat spaces
\usepackage{xspace} 

%dates
\usepackage[ddmmyyyy,nodayofweek]{datetime}

%programming
\RequirePackage{etoolbox}

%math
\usepackage{amsmath}
\usepackage{amssymb}

% Espaçamento das linhas
\linespread{1.05}

%comandos
%\providecommand*{\meic}{Mestrado em Engenharia Informática e de Computadores}

\providecommand\coursename{Course Name} 
%\providecommand\graduation{\@thegraduation} 
%\providecommand\quizname{1$st]$ test} 

\providecommand*{\quizname}
{
%melhorar
	\if\@theexam1
		Teste Época Normal%
	\else\if\@theexam2
		Teste Época Recurso%
	\else\if\@theexam3
		Teste Época Especial%	

	\else\if\@theminitest1
		Ficha de Avaliação n. 1%
	\else\if\@theminitest2
		Ficha de Avaliação  n. 2%
	\else\if\@theminitest3
		Ficha de Avaliação n. 3%	
	\else	
		 Ficha de Avaliação n. 4%	
	\fi\fi\fi
		\fi\fi\fi 	
}

\newcommand{\exam}[1]{
	\gdef\@theexam{#1}
}

\newcommand{\minitest}[1]{
	\gdef\@theminitest{#1}
}

\providecommand\duration{Duração} 

\newcommand\examdate[3] {
\gdef\@theday{#1}
\gdef\@themonth{#2}
\gdef\@theyear{#3}
}

\newcommand{\printdate}{
\@theyear \ - \@themonth\ - \@theday
}

\newcommand\graduation[1] {
	\gdef\@thegraduation{#1}
}

\newcommand{\printgraduation}{
	\@thegraduation
}


\providecommand*{\groupname}
{
%melhorar
	\if\@thegroup1
		\centering \large \bf Grupo I%
	\else\if\@thegroup2
		\centering \large \bf Grupo II %
	\else\if\@thegroup3
		\centering \large \bf Grupo III%
	\else\if\@thegroup4
		\centering \large \bf Grupo IV%	
	\fi	\fi 	\fi \fi
}

\newcommand{\group}[1]{
	\gdef\@thegroup{#1}
}


%%% HEADER
%\newcommand\header{
%\noindent{
%\bf \coursename  \hfill \quizname  \hfill \printdate \newline
%\hspace*{5em} \@thegraduation
%}\\[1em]
%
%\noindent\AMCcode{etu}{5}\hspace*{\fill}
%\begin{minipage}{.7\linewidth}
%\vspace{-40ex}
%\centering
%\includegraphics[width=0.5\linewidth]{/Users/matildepato/texmf/tex/latex/multiple-choice-quiz/img/logo_bw.pdf}\\[5ex]
%$\longleftarrow{}$ Indique o vosso número de estudante, e escreva o seu primeiro e último nome.
%
%\vspace{3ex}
%
%\champnom{\fbox{    
%    \begin{minipage}{.9\linewidth}
%      Nome (primeiro e último):
%      
%      \vspace*{.5cm}\dotfill
%      \vspace*{1mm}
%    \end{minipage}
%  }}
%\end{minipage}
%\vspace{1ex}
%
%\noindent\hrulefill
%
%\vspace{2ex}
%}

%%% DISCLAIMER

\newcommand\disclaimer{
\begin{center}\em
\textbf{Duração:} \duration min.

Não são permitidos folhas de rascunho e formulários. O uso de dispositivos electrónicos está proibido.

\vskip1em
\textbf{CRITÉRIOS GERAIS DE CLASSIFICAÇÃO}
\vskip1em
\begin{itemize}
\item Perguntas com o sinal  \multiSymbole{} podem ter zero, uma ou várias respostas correctas.
\item Outras questões têm uma única resposta correcta. Neste caso, se for apresentada mais do que uma resposta ao mesmo item, só é classificada a resposta que surgir em primeiro lugar.
\item Nos itens de escolha múltipla, a cotação do item só é atribuída às respostas que apresentem de forma inequívoca a opção correcta. Todas as outras respostas são classificadas com zero pontos.
\item As respostas ilegíveis são classificadas com zero pontos.
\item Em caso de omissão ou de engano na identificação de uma resposta, esta pode ser classificada se for possível identificar inequivocamente o item a que diz respeito.
\item Responda a estas questões no enunciado assinalando \textbf{apenas} a resposta correcta. Para corrigir uma resposta, e se não puder apagar, risque a resposta errada com uma cruz bem visível e assinale a resposta correcta. 
\item Pode usar lápis e borracha, não se esquecendo no final de passar as respostas a \textbf{tinta}.
\end{itemize}
\vskip1em
\textbf{Cada resposta errada desconta 1/4 da cotação da questão!}

%No documents allowed. The use of electronic devices is forbidden.
%
%  Questions using the sign \multiSymbole{} may have zero, one or several correct answers.  Other questions have a single correct answer.
%
%  Negative points may be attributed to \emph{bad} answers.
\end{center}
\vspace{1ex}
}

%%% SUBJECT UNDER EVALUATION

\newcommand\subjectevaluation[1]{
\framebox{
\parbox[t][]{1\textwidth}{
\addvspace{0.05cm}
\textbf{Matéria em avaliação}: #1}}}

\newcommand\groupnamefinal{ 
\centering \large \textbf{\groupname}
\vspace{1ex}
}


%%% FOOTER

\newcommand{\printfooter}
{
	\hfill  \@thetheacher
}


% == Color Definitions ===
\definecolor{olivegreen}    {cmyk}{0.64, 0 , 0.95, 0.40}
\definecolor{dkgreen}{rgb}{0,0.6,0}	
\definecolor{midnightblue}  {cmyk}{0.98, 0.13, 0 , 0.43}

\definecolor{ForestGreen}    {cmyk}{0.76, 0 , 0.76, 0.45}
\definecolor{BrickRed}{cmyk}{0,0.73,0.69,0.28}	
\definecolor{MidnightBlue}  {cmyk}{0.98, 0.78, 0 , 0.56}
% Listings
\usepackage{fancyvrb}
\colorlet{lstKeywordsColor}{MidnightBlue}
\colorlet{lstKeywordsAltColor}{BrickRed}
\colorlet{lstCommentsColor}{ForestGreen}
\colorlet{lstStringColor}{BrickRed}


% Usage: \begin{javalst}[Caption]{Label}
\lstnewenvironment{javalst}[2][]%
{\lstset{language=java,basicstyle=\small\tt,frame=tb,captionpos=b,caption=#1,label={lst:#2},tabsize=2}}%
{}%
\lstnewenvironment{xmllst}[2][]%
{\lstset{language=XML,basicstyle=\small\tt,frame=tb,captionpos=b,caption=#1,label={lst:#2},tabsize=2}}%
{}%
\lstnewenvironment{lst}[2][]%
{\lstset{basicstyle=\footnotesize\tt,frame=tb,captionpos=b,caption=#1,label={lst:#2},tabsize=2}}%
{}

% For inline code
% usage \code{language}{code}
\newcommand{\code}[2]{\lstinline[
		basicstyle=\tt,%
		keywordstyle=\color{lstKeywordsColor}\bfseries,%
		commentstyle=\color{lstCommentsColor},%
		stringstyle=\color{lstStringColor},% 		
		language=#1]
		|#2|
		}
		
\renewcommand{\lstlistingname}{Código}

%for code in file
% usage \lstfromfile{language}{caption}{label}{path}
\newcommand{\lstfromfile}[5]{	
	\lstinputlisting[
		language=#1,
		basicstyle=\small\tt,
		frame=tb,
		captionpos=b,
		commentstyle=\color{lstCommentsColor},
		stringstyle=\color{lstStringColor},
		keywordstyle=\color{lstKeywordsColor}\bfseries,
		caption=#2,
		label={lst:#3},
		tabsize=2,
		#5]{#4}
}

%define java language
\lstset{ %
language=java,                % choose the language of the code
basicstyle=\footnotesize\ttfamily,       % the size of the fonts that are used for the code
numbers=left,                   % where to put the line-numbers
numberstyle=\tiny,      % the size of the fonts that are used for the line-numbers
stepnumber=1,                   % the step between two line-numbers. If it is 1 each line will be numbered
numbersep=5pt,                  % how far the line-numbers are from the code
backgroundcolor=\color{white},  % choose the background color. You must add \usepackage{color}
showspaces=false,               % show spaces adding particular underscores
showstringspaces=false,         % underline spaces within strings
showtabs=false,                 % show tabs within strings adding particular underscores
frame=single,           % adds a frame around the code
tabsize=2,          % sets default tabsize to 2 spaces
captionpos=b,           % sets the caption-position to bottom
breaklines=true,        % sets automatic line breaking
breakatwhitespace=false,    % sets if automatic breaks should only happen at whitespace
escapeinside={\%*}{*)},          % if you want to add a comment within your code
stringstyle= \color{lstStringColor},
keywordstyle = \color{lstKeywordsColor}\bfseries,
commentstyle=\color{lstCommentsColor}\itshape,
}

\lstset{literate=
  {á}{{\'a}}1 {é}{{\'e}}1 {í}{{\'i}}1 {ó}{{\'o}}1 {ú}{{\'u}}1
  {Á}{{\'A}}1 {É}{{\'E}}1 {Í}{{\'I}}1 {Ó}{{\'O}}1 {Ú}{{\'U}}1
  {à}{{\`a}}1 {è}{{\`e}}1 {ì}{{\`i}}1 {ò}{{\`o}}1 {ù}{{\`u}}1
  {À}{{\`A}}1 {È}{{\'E}}1 {Ì}{{\`I}}1 {Ò}{{\`O}}1 {Ù}{{\`U}}1
  {ä}{{\"a}}1 {ë}{{\"e}}1 {ï}{{\"i}}1 {ö}{{\"o}}1 {ü}{{\"u}}1
  {Ä}{{\"A}}1 {Ë}{{\"E}}1 {Ï}{{\"I}}1 {Ö}{{\"O}}1 {Ü}{{\"U}}1
  {â}{{\^a}}1 {ê}{{\^e}}1 {î}{{\^i}}1 {ô}{{\^o}}1 {û}{{\^u}}1
  {Â}{{\^A}}1 {Ê}{{\^E}}1 {Î}{{\^I}}1 {Ô}{{\^O}}1 {Û}{{\^U}}1
  {œ}{{\oe}}1 {Œ}{{\OE}}1 {æ}{{\ae}}1 {Æ}{{\AE}}1 {ß}{{\ss}}1
  {ű}{{\H{u}}}1 {Ű}{{\H{U}}}1 {ő}{{\H{o}}}1 {Ő}{{\H{O}}}1
  {ç}{{\c c}}1 {Ç}{{\c C}}1 {ø}{{\o}}1 {å}{{\r a}}1 {Å}{{\r A}}1
  {€}{{\euro}}1 {£}{{\pounds}}1 {«}{{\guillemotleft}}1
  {»}{{\guillemotright}}1 {ñ}{{\~n}}1 {Ñ}{{\~N}}1 {¿}{{?`}}1
}