You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

109 lines
2.5 KiB

\newcommand{\prac}{}
\newcommand{\lect}{}
\newcommand{\self}{}
\newcommand{\points}[1]{{\color{red}[#1 \ifthenelse{#1=1}{point}{points}]}}
\newcommand{\setsectionnum}[1]{%
\unless\iftitle%
\setcounter{section}{#1}%
\fi%
}
\makeatletter
\newcommand\annotateFilename[1]{%
\ifannotate
\filename@parse{#1}%
\edef\filename{\detokenize\expandafter{\filename@base}.\detokenize\expandafter{\filename@ext}}%
\marginnote{\fbox{\color{red}\filename}}
\fi
}
\makeatother
\newcommand\printSolution[1]{
\begin{solutionBox}%
\input{#1}\annotateFilename{#1}%
\end{solutionBox}%
}
\newcommand\printSolutionBreakable[1]{
\begin{breakableSolutionBox}%
\input{#1}\annotateFilename{#1}%
\end{breakableSolutionBox}%
}
\newcommand\question[4][]{%
\def\BREAKABLE{#1}%
\def\FILENAME{#2}%
\def\SOLUTIONS{#3}%
\def\SPACING{#4}%
\input{\FILENAME}\annotateFilename{\FILENAME}
\ifsolution
\ifthenelse{ \equal{\BREAKABLE}{} }%
{\renewcommand*{\do}[1]{\printSolution{##1}}% How to process each item
\docsvlist{#3}}%
{\renewcommand*{\do}[1]{\printSolutionBreakable{##1}}% How to process each item
\docsvlist{#3}}%
\fi
\ifspacing
\vspace{\SPACING}
\fi
}
\newcommand\mcquestion[2]{%
\def\QUESTION{#1}%
\def\SOLUTION{#2}%
\ifsolution
\input{\SOLUTION}\annotateFilename{\SOLUTION}
\else
\input{\QUESTION}\annotateFilename{\QUESTION}
\fi
}
\newcommand\dpllquestion[2]{%
\def\QUESTION{#1}%
\def\SOLUTION{#2}%
\ifsolution
\input{\SOLUTION}
\else
\input{\QUESTION}
\fi
}
\newcommand*\widefbox[1]{%
\def\TOPBOTMARGIN{.5}
\def\LEFTMARGIN{0.5ex}
\def\SOLUTIONTEXT{#1}
\fbox{\parbox{%
\dimexpr\textwidth-11\fboxsep-4\fboxrule\relax}{
\vspace{\TOPBOTMARGIN\baselineskip}\hspace{\LEFTMARGIN}\SOLUTIONTEXT\vspace{\TOPBOTMARGIN\baselineskip}}
}
}
\newenvironment{pythonSourceCode}
{\VerbatimEnvironment\begin{minted}[mathescape, linenos, numbersep=5pt, gobble=2, frame=lines, framesep=2mm]{python}}
{\end{minted}}
\makeatletter
\NewDocumentEnvironment{refenumerate}{m}
{\begin{enumerate}[align=left,leftmargin=1.0em,itemsep=0.25em,itemindent=2.25em,label=\thesubsection.{\arabic*}]}
{\edef\@currentlabel{\arabic{\@enumctr}}\label{#1}\end{enumerate}}
\makeatother
\newcommand{\getenumcount}[1]{\getrefnumber{#1}}
\newenvironment{questionSection}[1]%
{
\subsection{#1\ifannotate{\color{red}~- \getenumcount{\thesubsection} Questions}\fi}%
\begin{refenumerate}{\thesubsection}%
}%
{%
\end{refenumerate}%
}%
\newcommand\TODONOTE[1]{
\marginnote{\color{red}\footnotesize TODO}
}