%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Lachaise Assignment % Structure Specification File % Version 1.0 (26/6/2018) % % This template originates from: % http://www.LaTeXTemplates.com % % Authors: % Marion Lachaise & François Févotte % Vel (vel@LaTeXTemplates.com) % % License: % CC BY-NC-SA 3.0 (http://creativecommons.org/licenses/by-nc-sa/3.0/) % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %---------------------------------------------------------------------------------------- % PACKAGES AND OTHER DOCUMENT CONFIGURATIONS %---------------------------------------------------------------------------------------- \usepackage[utf8]{inputenc} % Required for inputting international characters \usepackage[T1]{fontenc} % Output font encoding for international characters \usepackage{csquotes} \usepackage{amsmath,amsfonts} % Math packages \usepackage{url} \usepackage{hyperref} \usepackage{enumerate} % Custom item numbers for enumerations \usepackage[ruled]{algorithm2e} % Algorithms \usepackage[makeroom]{cancel} \usepackage[framemethod=tikz]{mdframed} % Allows defining custom boxed/framed environments \usepackage{listings} % File listings, with syntax highlighting \usepackage[super]{nth} \usepackage{caption} \usepackage{tikz} \usepackage{subcaption} \usepackage{quiver} \usetikzlibrary{arrows,fit,positioning} \usepackage[style=authoryear]{biblatex} \lstset{ basicstyle=\ttfamily, % Typeset listings in monospace font } %---------------------------------------------------------------------------------------- % DOCUMENT MARGINS %---------------------------------------------------------------------------------------- \usepackage{geometry} % Required for adjusting page dimensions and margins \geometry{ paper=a4paper, % Paper size, change to letterpaper for US letter size top=2.5cm, % Top margin bottom=3cm, % Bottom margin left=2.5cm, % Left margin right=2.5cm, % Right margin headheight=14pt, % Header height footskip=1.5cm, % Space from the bottom margin to the baseline of the footer headsep=1.2cm, % Space from the top margin to the baseline of the header % showframe, % Uncomment to show how the type block is set on the page } %---------------------------------------------------------------------------------------- % COMMAND LINE ENVIRONMENT %---------------------------------------------------------------------------------------- % Usage: % \begin{commandline} % \begin{verbatim} % $ ls % % Applications Desktop ... % \end{verbatim} % \end{commandline} \mdfdefinestyle{commandline}{ leftmargin=10pt, rightmargin=10pt, innerleftmargin=15pt, middlelinecolor=black!50!white, middlelinewidth=2pt, frametitlerule=false, backgroundcolor=black!5!white, frametitle={\ttfamily\cmdname}, frametitlefont={\normalfont\sffamily\color{white}\hspace{-1em}}, frametitlebackgroundcolor=black!50!white, nobreak, } % Define a custom environment for command-line snapshots \newenvironment{commandline}[1][Cmd]{ \medskip \newcommand{\cmdname}{#1} \begin{mdframed}[style=commandline] }{ \end{mdframed} \medskip } %---------------------------------------------------------------------------------------- % FILE CONTENTS ENVIRONMENT %---------------------------------------------------------------------------------------- % Usage: % \begin{file}[optional filename, defaults to "File"] % File contents, for example, with a listings environment % \end{file} \mdfdefinestyle{file}{ innertopmargin=1.6\baselineskip, innerbottommargin=0.8\baselineskip, topline=false, bottomline=false, leftline=false, rightline=false, leftmargin=2cm, rightmargin=2cm, singleextra={% \draw[fill=black!10!white](P)++(0,-1.2em)rectangle(P-|O); \node[anchor=north west] at(P-|O){\ttfamily\mdfilename}; % \def\l{3em} \draw(O-|P)++(-\l,0)--++(\l,\l)--(P)--(P-|O)--(O)--cycle; \draw(O-|P)++(-\l,0)--++(0,\l)--++(\l,0); }, nobreak, } % Define a custom environment for file contents \newenvironment{file}[1][File]{ % Set the default filename to "File" \medskip \newcommand{\mdfilename}{#1} \begin{mdframed}[style=file] }{ \end{mdframed} \medskip } %---------------------------------------------------------------------------------------- % NUMBERED QUESTIONS ENVIRONMENT %---------------------------------------------------------------------------------------- % Usage: % \begin{question}[optional title] % Question contents % \end{question} \mdfdefinestyle{question}{ innertopmargin=1.2\baselineskip, innerbottommargin=0.8\baselineskip, roundcorner=5pt, nobreak, singleextra={% \draw(P-|O)node[xshift=1em,anchor=west,fill=white,draw,rounded corners=5pt]{% Question (\alph{Question})\questionTitle}; }, } \newcounter{Question}[section] % Stores the current question number that gets iterated with each new question TODO reset after each section % Define a custom environment for numbered questions \newenvironment{question}[1][\unskip]{ \bigskip \stepcounter{Question} \newcommand{\questionTitle}{~#1} \begin{mdframed}[style=question] }{ \end{mdframed} \medskip } %---------------------------------------------------------------------------------------- % WARNING TEXT ENVIRONMENT %---------------------------------------------------------------------------------------- % Usage: % \begin{warn}[optional title, defaults to "Warning:"] % Contents % \end{warn} \mdfdefinestyle{warning}{ topline=false, bottomline=false, leftline=false, rightline=false, nobreak, singleextra={% \draw(P-|O)++(-0.5em,0)node(tmp1){}; \draw(P-|O)++(0.5em,0)node(tmp2){}; \fill[black,rotate around={45:(P-|O)}](tmp1)rectangle(tmp2); \node at(P-|O){\color{white}\scriptsize\bf !}; \draw[very thick](P-|O)++(0,-1em)--(O);%--(O-|P); } } % Define a custom environment for warning text \newenvironment{warn}[1][Warning:]{ % Set the default warning to "Warning:" \medskip \begin{mdframed}[style=warning] \noindent{\textbf{#1}} }{ \end{mdframed} } %---------------------------------------------------------------------------------------- % INFORMATION ENVIRONMENT %---------------------------------------------------------------------------------------- % Usage: % \begin{info}[optional title, defaults to "Info:"] % contents % \end{info} \mdfdefinestyle{info}{% topline=false, bottomline=false, leftline=false, rightline=false, nobreak, singleextra={% \fill[black](P-|O)circle[radius=0.6em]; \node at(P-|O){\color{white}\scriptsize\bf Q}; \draw[very thick](P-|O)++(0,-0.8em)--(O);%--(O-|P); } } % Define a custom environment for information \newenvironment{info}[1][Info:]{ % Set the default title to "Info:" \medskip \begin{mdframed}[style=info] \noindent{\textbf{#1}} }{ \end{mdframed} } %---------------------------------------------------------------------------------------- % NOT FUCKED UP INFORMATION ENVIRONMENT %---------------------------------------------------------------------------------------- % Usage: % \begin{info}[optional title, defaults to "Info:"] % contents % \end{info} \mdfdefinestyle{infor}{% topline=false, bottomline=false, leftline=false, rightline=false, nobreak, singleextra={% \fill[black](P-|O)circle[radius=0.4em]; \node at(P-|O){\color{white}\scriptsize\bf i}; \draw[very thick](P-|O)++(0,-0.8em)--(O);%--(O-|P); } } % Define a custom environment for information \newenvironment{infor}[1][Disclaimer:]{ % \medskip \begin{mdframed}[style=infor] \noindent{\textbf{#1}} }{ \end{mdframed} }