From 8b2a6f09ef8e79cfa16a0770186b869f2029d356 Mon Sep 17 00:00:00 2001 From: "Achim D. Brucker" Date: Sun, 12 Feb 2017 22:28:09 +0000 Subject: [PATCH] Basic implementation of multiple-choice questions. --- lh-lecture/lh-exercise.cls | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/lh-lecture/lh-exercise.cls b/lh-lecture/lh-exercise.cls index 5d2e56b..ac5af94 100644 --- a/lh-lecture/lh-exercise.cls +++ b/lh-lecture/lh-exercise.cls @@ -12,12 +12,19 @@ \ProvidesClass{lh-exercise}% [2016/12/28 v0.0 LaTeX class for home work / exercise sheets followign the cooperate design of LogicalHacking.com] - + \PassOptionsToClass{\CurrentOption}{scrartcl} \LoadClass[abstracton,DIV11, 11pt,a4paper]{scrartcl}[] -\DeclareOption{noanswer} {\PassOptionsToPackage{noanswer}{exercise}} -\DeclareOption{answeronly} {\PassOptionsToPackage{answeronly}{exercise}} +\RequirePackage{ifthen} + +\newboolean{lh@lecture@answers} +\setboolean{lh@lecture@answers}{false} + +\DeclareOption{noanswer} {\PassOptionsToPackage{noanswer}{exercise}% + \setBoolean{lh@lecture@answers}{true}} +\DeclareOption{answeronly} {\PassOptionsToPackage{answeronly}{exercise} + \setBoolean{lh@lecture@answers}{true}} \DeclareOption{noexercise} {\PassOptionsToPackage{noexercise}{exercise}} \DeclareOption{exerciseonly} {\PassOptionsToPackage{exerciseonly}{exercise}} \DeclareOption{outputnothing} {\PassOptionsToPackage{outputnothing}{exercise}} @@ -36,6 +43,7 @@ \usepackage[some]{background} \usepackage{tikz} \usepackage{exercise} +\usepackage{enumitem} \usepackage{hyperref} % \makeatletter @@ -95,4 +103,16 @@ \newcommand{\key}[1]{#1\sidemark{#1}} +% Basic implementation of multiple-choice-questions: +\newcommand{\checkbox}{\faSquareO} +\newlist{mcq}{enumerate}{3} +\setlist[mcq]{label={\protect\checkbox\enspace\alph*}),before=\raggedright} + +\ifthenelse{\boolean{lh@lecture@answers}{true}}{% + \newcommand{\correct} {\renewcommand{\checkbox}{\faCheckSquareO}\item} +}{% + \newcommand{\correct}{\renewcommand{\checkbox}{\hphantom{\faCheckSquare0}\llap{\faSquareO}}\item } +} +\newcommand{\incorrect}{\renewcommand{\checkbox}{\hphantom{\faCheckSquare0}\llap{\faSquareO}}\item } + \endinput