diff --git a/environments/KULeuven/problemEnvironments.tex b/environments/KULeuven/problemEnvironments.tex new file mode 120000 index 0000000..e386aa6 --- /dev/null +++ b/environments/KULeuven/problemEnvironments.tex @@ -0,0 +1 @@ +../problemEnvironments.tex \ No newline at end of file diff --git a/environments/KULeuven/problemEnvironments_KULeuven.tex b/environments/KULeuven/problemEnvironments_KULeuven.tex new file mode 120000 index 0000000..e386aa6 --- /dev/null +++ b/environments/KULeuven/problemEnvironments_KULeuven.tex @@ -0,0 +1 @@ +../problemEnvironments.tex \ No newline at end of file diff --git a/environments/KULeuven/xmPreamble.tex b/environments/KULeuven/xmPreamble.tex new file mode 100644 index 0000000..ed26764 --- /dev/null +++ b/environments/KULeuven/xmPreamble.tex @@ -0,0 +1,1208 @@ +%%% Begin Laad packages + +\makeatletter +\@ifclassloaded{xourse}{% + \typeout{Start loading preamble.tex (in a XOURSE)}% + \def\isXourse{true} % automatically defined; pre 112022 it had to be set 'manually' in a xourse +}{% + \typeout{Start loading preamble.tex (NOT in a XOURSE)}% +} +\makeatother + +\def\isEn\true + +\pgfplotsset{compat=1.16} + +\usepackage{currfile} + +% 201908/202301: PAS OP: babel en doclicense lijken problemen te veroorzaken in .jax bestand +% (wegens syntax error met toegevoegde \newcommands ...) +\pdfOnly{ + %\usepackage[type={CC},modifier={by-nc-sa},version={4.0}]{doclicense} + \usepackage[hyperxmp=false,type={CC},modifier={by-nc-sa},version={4.0}]{doclicense} + \usepackage[dutch]{babel} +} + + +\usepackage[utf8]{inputenc} +\usepackage{morewrites} % nav zomercursus (answer...?) +\usepackage{multirow} +\usepackage{multicol} +\usepackage{tikzsymbols} +\usepackage{ifthen} +%\usepackage{animate} BREAKS HTML STRUCTURE USED BY XIMERA +\usepackage{relsize} + +\usepackage{eurosym} % \euro (€ werkt niet in xake ...?) +\usepackage{fontawesome} % smileys etc + +% Nuttig als ook interactieve beamer slides worden voorzien: +\providecommand{\p}{} % default nothing ; potentially usefull for slides: redefine as \pause +%providecommand{\p}{\pause} + + % Layout-parameters voor het onderschrift bij figuren +\usepackage[margin=10pt,font=small,labelfont=bf, labelsep=endash,format=hang]{caption} +%\usepackage{caption} % captionof +%\usepackage{pdflscape} % landscape environment + +% Met "\newcommand\showtodonotes{}" kan je todonotes tonen (in pdf/online) +% 201908: online werkt het niet (goed) +\providecommand\showtodonotes{disable} +%\providecommand\todo[1]{\typeout{TODO #1}} + + +\providecommand{\note}[1]{NOTE: {\color{blue}#1}} +\providecommand{\todo}[1]{TODO: {\color{red}#1}} + +\newtoggle{showreviewnotes} +\toggletrue{showreviewnotes} + +% to get it in the HTML ... +\renewcommand{\todo}[1] +{ + \typeout{TODO: #1} + \iftoggle{showreviewnotes}{ + TODO: \color{red}#1 + }{} +} +\renewcommand{\note}[1] +{ + \typeout{NOTE: #1} + \iftoggle{showreviewnotes}{ + NOTE: \color{blue}#1 + }{} +} + +%\usepackage[\showtodonotes]{todonotes} +%\usepackage{todonotes} + +% +% Poging tot aanpassen layout +% +\usepackage{tcolorbox} +\tcbuselibrary{theorems} + +%%% Einde laad packages + +%%% Begin Ximera specifieke zaken + +% \graphicspath{ +% {../../} +% {../} +% {./} +% {../../pictures/} +% {../pictures/} +% {./pictures/} +% {./explog/} % M05 in groeimodellen +% } + +%%% Einde Ximera specifieke zaken + +% +% define softer blue/red/green, use KU Leuven base colors for blue (and dark orange for red ?) +% +% todo: rather redefine blue/red/green ...? +%\definecolor{xmblue}{rgb}{0.01, 0.31, 0.59} +%\definecolor{xmred}{rgb}{0.89, 0.02, 0.17} +\definecolor{xmdarkblue}{rgb}{0.122, 0.671, 0.835} % KU Leuven Blauw +\definecolor{xmblue}{rgb}{0.114, 0.553, 0.69} % KU Leuven Blauw +\definecolor{xmgreen}{rgb}{0.13, 0.55, 0.13} % No KULeuven variant for green found ... + +\definecolor{xmaccent}{rgb}{0.867, 0.541, 0.18} % KU Leuven Accent (orange ...) +\definecolor{kuaccent}{rgb}{0.867, 0.541, 0.18} % KU Leuven Accent (orange ...) + +\colorlet{xmred}{xmaccent!50!black} % Darker version of KU Leuven Accent + +\providecommand{\blue}[1]{{\color{blue}#1}} +\providecommand{\red}[1]{{\color{red}#1}} + +\renewcommand\CancelColor{\color{xmaccent!50!black}} + +% werkt in math en text mode om MATH met oranje (of grijze...) achtergond te tonen (ook \important{\text{blabla}} lijkt te werken) +%\newcommand{\important}[1]{\ensuremath{\colorbox{xmaccent!50!white}{$#1$}}} % werkt niet in Mathjax +%\newcommand{\important}[1]{\ensuremath{\colorbox{lightgray}{$#1$}}} +\newcommand{\important}[1]{\ensuremath{\colorbox{orange}{$#1$}}} % TODO: kleur aanpassen voor mathjax; wordt overschreven infra! + + +% Uitzonderlijk kan met \pdfnl in de PDF een newline worden geforceerd, die online niet nodig/nuttig is omdat daar de regellengte hoe dan ook niet gekend is. +\ifdefined\HCode% +\providecommand{\pdfnl}{}% +\else% +\providecommand{\pdfnl}{% + \\% +}% +\fi + +% Uitzonderlijk kan met \handoutnl in de handout-PDF een newline worden geforceerd, die noch online noch in de PDF-met-antwoorden nuttig is. +\ifdefined\HCode +\providecommand{\handoutnl}{} +\else +\providecommand{\handoutnl}{% +\ifhandout% + \nl% +\fi% +} +\fi + + + +% \cellcolor IGNORED by tex4ht ? +% \begin{center} seems not to wordk + % (missing margin-left: auto; on tabular-inside-center ???) +%\newcommand{\importantcell}[1]{\ensuremath{\cellcolor{lightgray}#1}} % in tabular; usablility to be checked +\providecommand{\importantcell}[1]{\ensuremath{#1}} % no mathjax2 support for colloring array cells + +\pdfOnly{ + \renewcommand{\important}[1]{\ensuremath{\colorbox{kuaccent!50!white}{$#1$}}} + \renewcommand{\importantcell}[1]{\ensuremath{\cellcolor{kuaccent!40!white}#1}} +} + +%%% Tikz styles + + +\pgfplotsset{compat=1.16} + +\usetikzlibrary{trees,positioning,arrows,fit,shapes,math,calc,decorations.markings,through,intersections,patterns,matrix} + +\usetikzlibrary{decorations.pathreplacing,backgrounds} % 5/2023: from experimental + + +\usetikzlibrary{angles,quotes} + +\usepgfplotslibrary{fillbetween} % bepaalde_integraal +\usepgfplotslibrary{polar} % oa voor poolcoordinaten.tex + +\pgfplotsset{ownstyle/.style={axis lines = center, axis equal image, xlabel = $x$, ylabel = $y$, enlargelimits}} + +\pgfplotsset{ + plot/.style={no marks,samples=50} +} + +\newcommand{\xmPlotsColor}{ + \pgfplotsset{ + plot1/.style={darkgray,no marks,samples=100}, + plot2/.style={lightgray,no marks,samples=100}, + plotresult/.style={blue,no marks,samples=100}, + plotblue/.style={blue,no marks,samples=100}, + plotred/.style={red,no marks,samples=100}, + plotgreen/.style={green,no marks,samples=100}, + plotpurple/.style={purple,no marks,samples=100} + } +} +\newcommand{\xmPlotsBlackWhite}{ + \pgfplotsset{ + plot1/.style={black,loosely dashed,no marks,samples=100}, + plot2/.style={black,loosely dotted,no marks,samples=100}, + plotresult/.style={black,no marks,samples=100}, + plotblue/.style={black,no marks,samples=100}, + plotred/.style={black,dotted,no marks,samples=100}, + plotgreen/.style={black,dashed,no marks,samples=100}, + plotpurple/.style={black,dashdotted,no marks,samples=100} + } +} + + +\newcommand{\xmPlotsColorAndStyle}{ + \pgfplotsset{ + plot1/.style={darkgray,no marks,samples=100}, + plot2/.style={lightgray,no marks,samples=100}, + plotresult/.style={blue,no marks,samples=100}, + plotblue/.style={xmblue,no marks,samples=100}, + plotred/.style={xmred,dashed,thick,no marks,samples=100}, + plotgreen/.style={xmgreen,dotted,very thick,no marks,samples=100}, + plotpurple/.style={purple,no marks,samples=100} + } +} + + +%\iftikzexport +\xmPlotsColorAndStyle +%\else +%\xmPlotsBlackWhite +%\fi +%%% + + +% +% Om venndiagrammen te arceren ... +% +\makeatletter +\pgfdeclarepatternformonly[\hatchdistance,\hatchthickness]{north east hatch}% name +{\pgfqpoint{-1pt}{-1pt}}% below left +{\pgfqpoint{\hatchdistance}{\hatchdistance}}% above right +{\pgfpoint{\hatchdistance-1pt}{\hatchdistance-1pt}}% +{ + \pgfsetcolor{\tikz@pattern@color} + \pgfsetlinewidth{\hatchthickness} + \pgfpathmoveto{\pgfqpoint{0pt}{0pt}} + \pgfpathlineto{\pgfqpoint{\hatchdistance}{\hatchdistance}} + \pgfusepath{stroke} +} +\pgfdeclarepatternformonly[\hatchdistance,\hatchthickness]{north west hatch}% name +{\pgfqpoint{-\hatchthickness}{-\hatchthickness}}% below left +{\pgfqpoint{\hatchdistance+\hatchthickness}{\hatchdistance+\hatchthickness}}% above right +{\pgfpoint{\hatchdistance}{\hatchdistance}}% +{ + \pgfsetcolor{\tikz@pattern@color} + \pgfsetlinewidth{\hatchthickness} + \pgfpathmoveto{\pgfqpoint{\hatchdistance+\hatchthickness}{-\hatchthickness}} + \pgfpathlineto{\pgfqpoint{-\hatchthickness}{\hatchdistance+\hatchthickness}} + \pgfusepath{stroke} +} +%\makeatother + +\tikzset{ + hatch distance/.store in=\hatchdistance, + hatch distance=10pt, + hatch thickness/.store in=\hatchthickness, + hatch thickness=2pt +} + +\colorlet{circle edge}{black} +\colorlet{circle area}{blue!20} + + +\tikzset{ + filled/.style={fill=green!30, draw=circle edge, thick}, + arceerl/.style={pattern=north east hatch, pattern color=blue!50, draw=circle edge}, + arceerr/.style={pattern=north west hatch, pattern color=yellow!50, draw=circle edge}, + outline/.style={draw=circle edge, thick} +} + + + + +%%% Updaten commando's +\def\hoofding #1#2#3{\maketitle} % OBSOLETE ?? + +% we willen (bijna) altijd \geqslant ipv \geq ...! +\newcommand{\geqnoslant}{\geq} +\renewcommand{\geq}{\geqslant} +\newcommand{\leqnoslant}{\leq} +\renewcommand{\leq}{\leqslant} + +% Todo: (201908) waarom komt er (soms) underlined voor emph ...? +\renewcommand{\emph}[1]{\textit{#1}} + +% API commando's + +\newcommand{\ds}{\displaystyle} +\newcommand{\ts}{\textstyle} % tegenhanger van \ds (Ximera zet PER DEFAULT \ds!) + +% uit Zomercursus-macro's: +\newcommand{\bron}[1]{\begin{scriptsize} \emph{#1} \end{scriptsize}} % deprecated ...? + + +%definities nieuwe commando's - afkortingen veel gebruikte symbolen +\newcommand{\R}{\ensuremath{\mathbb{R}}} +\newcommand{\Rnul}{\ensuremath{\mathbb{R}_0}} +\newcommand{\Reen}{\ensuremath{\mathbb{R}\setminus\{1\}}} +\newcommand{\Rnuleen}{\ensuremath{\mathbb{R}\setminus\{0,1\}}} +\newcommand{\Rplus}{\ensuremath{\mathbb{R}^+}} +\newcommand{\Rmin}{\ensuremath{\mathbb{R}^-}} +\newcommand{\Rnulplus}{\ensuremath{\mathbb{R}_0^+}} +\newcommand{\Rnulmin}{\ensuremath{\mathbb{R}_0^-}} +\newcommand{\Rnuleenplus}{\ensuremath{\mathbb{R}^+\setminus\{0,1\}}} +\newcommand{\N}{\ensuremath{\mathbb{N}}} +\newcommand{\Nnul}{\ensuremath{\mathbb{N}_0}} +\newcommand{\Z}{\ensuremath{\mathbb{Z}}} +\newcommand{\Znul}{\ensuremath{\mathbb{Z}_0}} +\newcommand{\Zplus}{\ensuremath{\mathbb{Z}^+}} +\newcommand{\Zmin}{\ensuremath{\mathbb{Z}^-}} +\newcommand{\Znulplus}{\ensuremath{\mathbb{Z}_0^+}} +\newcommand{\Znulmin}{\ensuremath{\mathbb{Z}_0^-}} +\newcommand{\C}{\ensuremath{\mathbb{C}}} +\newcommand{\Cnul}{\ensuremath{\mathbb{C}_0}} +\newcommand{\Cplus}{\ensuremath{\mathbb{C}^+}} +\newcommand{\Cmin}{\ensuremath{\mathbb{C}^-}} +\newcommand{\Cnulplus}{\ensuremath{\mathbb{C}_0^+}} +\newcommand{\Cnulmin}{\ensuremath{\mathbb{C}_0^-}} +\newcommand{\Q}{\ensuremath{\mathbb{Q}}} +\newcommand{\Qnul}{\ensuremath{\mathbb{Q}_0}} +\newcommand{\Qplus}{\ensuremath{\mathbb{Q}^+}} +\newcommand{\Qmin}{\ensuremath{\mathbb{Q}^-}} +\newcommand{\Qnulplus}{\ensuremath{\mathbb{Q}_0^+}} +\newcommand{\Qnulmin}{\ensuremath{\mathbb{Q}_0^-}} + +\newcommand{\perdef}{\overset{\mathrm{def}}{=}} +\newcommand{\pernot}{\overset{\mathrm{notatie}}{=}} +\newcommand\perinderdaad{\overset{!}{=}} % voorlopig gebruikt in limietenrekenregels +\newcommand\perhaps{\overset{?}{=}} % voorlopig gebruikt in limietenrekenregels + +\newcommand{\degree}{^\circ} + + +\DeclareMathOperator{\dom}{dom} % domein +\DeclareMathOperator{\codom}{codom} % codomein +\DeclareMathOperator{\bld}{bld} % beeld +\DeclareMathOperator{\graf}{graf} % grafiek +\DeclareMathOperator{\rico}{rico} % richtingcoëfficient +\DeclareMathOperator{\co}{co} % coordinaat +\DeclareMathOperator{\gr}{gr} % graad + +\newcommand{\func}[5]{\ensuremath{#1: #2 \rightarrow #3: #4 \mapsto #5}} % Easy to write a function + + +% Operators +\DeclareMathOperator{\bgsin}{bgsin} +\DeclareMathOperator{\bgcos}{bgcos} +\DeclareMathOperator{\bgtan}{bgtan} +\DeclareMathOperator{\bgcot}{bgcot} +\DeclareMathOperator{\bgsinh}{bgsinh} +\DeclareMathOperator{\bgcosh}{bgcosh} +\DeclareMathOperator{\bgtanh}{bgtanh} +\DeclareMathOperator{\bgcoth}{bgcoth} + +% Oude \Bgsin etc deprecated: gebruik \bgsin, en herdefinieer dat als je Bgsin wil! +%\DeclareMathOperator{\cosec}{cosec} % not used? gebruik \csc en herdefinieer + +% operatoren voor differentialen: to be verified; 1/2020: inconsequent gebruik bij afgeleiden/integralen +\renewcommand{\d}{\mathrm{d}} +\newcommand{\dx}{\d x} +\newcommand{\dd}[1]{\frac{\mathrm{d}}{\mathrm{d}#1}} +\newcommand{\ddx}{\dd{x}} + +% om in voorbeelden/oefeningen de notatie voor afgeleiden te kunnen kiezen +% Usage: \afg{(2\sin(x))} (en wordt d/dx, of accent, of D ) +%\newcommand{\afg}[1]{{#1}'} +\newcommand{\afg}[1]{\left(#1\right)'} +%\renewcommand{\afg}[1]{\frac{\mathrm{d}#1}{\mathrm{d}x}} % include in relevant exercises ... +%\renewcommand{\afg}[1]{D{#1}} + +% +% \xmxxx commands: Extra KU Leuven functionaliteit van, boven of naast Ximera +% ( Conventie 8/2019: xm+nederlandse omschrijving, maar is niet consequent gevolgd, en misschien ook niet erg handig !) +% +% (Met een minimale ximera.cls en preamble.tex zou een bruikbare .pdf moeten kunnen worden gemaakt van eender welke ximera) +% +% Usage: \xmtitle[Mijn korte abstract]{Mijn titel}{Mijn abstract} +% Eerste command na \begin{document}: +% -> definieert de \title +% -> definieert de abstract +% -> doet \maketitle ( dus: print de hoofding als 'chapter' of 'sectie') +% Optionele parameter geeft eenn kort abstract (die met de globale setting \xmshortabstract{} al dan niet kan worden geprint. +% De optionele korte abstract kan worden gebruikt voor pseudo-grappige abtsarts, dus dus globaal al dan niet kunnen worden gebuikt... +% Globale settings: +% de (optionele) 'korte abstract' wordt enkele getoond als \xmshortabstract is gezet +\providecommand\xmshortabstract{} % default: print (only!) short abstract if present +\newcommand{\xmtitle}[3][]{ + \title{#2} + \begin{abstract} + \ifdefined\xmshortabstract + \ifstrempty{#1}{% + #3 + }{% + #1 + }% + \else + #3 + \fi + \end{abstract} + \maketitle +} + +% +% Kleine grapjes: moeten zonder verder gevolg kunnen worden verwijderd +% +%\newcommand{\xmopje}[1]{{\small#1{\reversemarginpar\marginpar{\Smiley}}}} % probleem in floats!! +\newtoggle{showxmopje} +\toggletrue{showxmopje} + +\newcommand{\xmopje}[1]{% + \iftoggle{showxmopje}{#1}{}% +} + + +% -> geef een abstracte-formule-met-rechts-een-concreet-voorbeeld +% VB: \formulevb{a^2+b^2=c^2}{3^2+4^2=5^2} +% +\ifdefined\HCode +\NewEnviron{xmdiv}[1]{\HCode{\Hnewline
\Hnewline}\BODY{\HCode{\Hnewline
\Hnewline}}} +\else +\NewEnviron{xmdiv}[1]{\BODY} +\fi + +\providecommand{\formulevb}[2]{ + {\centering + + \begin{xmdiv}{xmformulevb} % zie css voor online layout !!! + \begin{tabular}{lcl} + \important{#1} + & & + $#2$ + \end{tabular} + \end{xmdiv} + + } +} + +\ifdefined\HCode +\providecommand{\vb}[1]{% + \HCode{\Hnewline}#1\HCode{\Hnewline}% +} +\else +\providecommand{\vb}[1]{ + \colorbox{blue!10}{#1} +} +\fi + +\ifdefined\HCode +\providecommand{\xmcolorbox}[2]{ + \HCode{\Hnewline
\Hnewline}#2\HCode{\Hnewline
\Hnewline} +} +\else +\providecommand{\xmcolorbox}[2]{ + \cellcolor{#1}#2 +} +\fi + + +\ifdefined\HCode +\providecommand{\xmopmerking}[1]{ + \HCode{\Hnewline
\Hnewline}#1\HCode{\Hnewline
\Hnewline} +} +\else +\providecommand{\xmopmerking}[1]{ + {\footnotesize #1} +} +\fi +% \providecommand{\voorbeeld}[1]{ +% \colorbox{blue!10}{$#1$} +% } + + + +% Hernoem Proof naar Bewijs, nodig voor HTML versie +\renewcommand*{\proofname}{\nlen{Bewijs}{Proof}} + +% Om opgave van oefening (wordt niet geprint bij oplossingenblad) +% (to be tested test) +\NewEnviron{statement}{\BODY} + +% Environment 'oplossing' en 'uitkomst' +% voor resp. volledige 'uitwerking' dan wel 'enkel eindresultaat' +% geimplementeerd via feedback, omdat er in de ximera-server adhoc feedback-code is toegevoegd +%% Niet tonen indien handout +%% Te gebruiken om volledige oplossingen/uitwerkingen van oefeningen te tonen +%% \begin{oplossing} De optelling is commutatief \end{oplossing} : verschijnt online enkel 'op vraag' +%% \begin{oplossing}[toon] De optelling is commutatief \end{oplossing} : verschijnt steeds onmiddellijk online (bv te gebruiken bij voorbeelden) + +\ifhandout% + \NewEnviron{oplossing}[1][onzichtbaar]% + {% + \ifthenelse{\equal{\detokenize{#1}}{\detokenize{toon}}} + { + \def\PH@Command{#1}% Use PH@Command to hold the content and be a target for "\expandafter" to expand once. + + \begin{trivlist}% Begin the trivlist to use formating of the "Feedback" label. + \item[\hskip \labelsep\small\slshape\bfseries Oplossing% Format the "Feedback" label. Don't forget the space. + %(\texttt{\detokenize\expandafter{\PH@Command}}):% Format (and detokenize) the condition for feedback to trigger + \hspace{2ex}]\small%\slshape% Insert some space before the actual feedback given. + \BODY + \end{trivlist} + } + { % \begin{feedback}[solution] \BODY \end{feedback} } + } + } +\else +% ONLY for HTML; xmoplossing is styled with css, and is not, and need not be a LaTeX environment +% THUS: it does NOT use feedback anymore ... +% \NewEnviron{oplossing}{\begin{expandable}{xmoplossing}{\nlen{Toon uitwerking}{Show solution}}{\BODY}\end{expandable}} + \newenvironment{oplossing}[1][onzichtbaar] + {% + \begin{expandable}{xmoplossing}{} + } + {% + \end{expandable} + } +% \newenvironment{oplossing}[1][onzichtbaar] +% {% +% \begin{feedback}[solution] +% } +% {% +% \end{feedback} +% } +\fi + +\ifhandout% + \NewEnviron{uitkomst}[1][onzichtbaar]% + {% + \ifthenelse{\equal{\detokenize{#1}}{\detokenize{toon}}} + { + \def\PH@Command{#1}% Use PH@Command to hold the content and be a target for "\expandafter" to expand once. + + \begin{trivlist}% Begin the trivlist to use formating of the "Feedback" label. + \item[\hskip \labelsep\small\slshape\bfseries Uitkomst:% Format the "Feedback" label. Don't forget the space. + %(\texttt{\detokenize\expandafter{\PH@Command}}):% Format (and detokenize) the condition for feedback to trigger + \hspace{2ex}]\small%\slshape% Insert some space before the actual feedback given. + \BODY + \end{trivlist} + } + { % \begin{feedback}[solution] \BODY \end{feedback} } + } + } +\else +\ifdefined\HCode + \newenvironment{uitkomst}[1][onzichtbaar] + {% + \begin{expandable}{xmuitkomst}{}% + } + {% + \end{expandable}% + } +\else + % Do NOT print 'uitkomst' in non-handout + % (presumably, there is also an 'oplossing' ??) + \newenvironment{uitkomst}[1][onzichtbaar]{}{} +\fi +\fi + +% +% Uitweidingen zijn extra's die niet redelijkerwijze tot de leerstof behoren +% Uitbreidingen zijn extra's die wel redelijkerwijze tot de leerstof van bv meer geavanceerde versies kunnen behoren (B-programma/Wiskundestudenten/...?) +% Nog niet voorzien: design voor verschillende versies (A/B programma, BIO, voorkennis/ ...) +% Voor 'uitweidingen' is er een environment die online per default is ingeklapt, en in pdf al dan niet kan worden geincluded (via \xmnouitweiding) +% +% in een xourse, per default GEEN uitweidingen, tenzij \xmuitweiding expliciet ergens is gezet ... +\ifdefined\isXourse + \ifdefined\xmuitweiding + \else + \def\xmnouitweiding{true} + \fi +\fi + +\ifdefined\xmnouitweiding +\newcounter{xmuitweiding} % anders error undefined ... +\excludecomment{xmuitweiding} +\else +\newtheoremstyle{dotless}{}{}{}{}{}{}{ }{} +\theoremstyle{dotless} +\newtheorem*{xmuitweidingnofrills}{} % nofrills = no accordion; gebruikt dus de dotless theoremstyle! + +\newcounter{xmuitweiding} +\newenvironment{xmuitweiding}[1][ ]% +{% + \refstepcounter{xmuitweiding}% + \begin{expandable}{xmuitweiding}{\nlentext{Uitweiding \arabic{xmuitweiding}: #1}{Digression \arabic{xmuitweiding}: #1}}% + \begin{xmuitweidingnofrills}% +} +{% + \end{xmuitweidingnofrills}% + \end{expandable}% +} +% \newenvironment{xmuitweiding}[1][ ]% +% {% +% \refstepcounter{xmuitweiding} +% \begin{accordion}\begin{accordion-item}[Uitweiding \arabic{xmuitweiding}: #1]% +% \begin{xmuitweidingnofrills}% +% } +% {\end{xmuitweidingnofrills}\end{accordion-item}\end{accordion}} +\fi + + +\newenvironment{xmexpandable}[1][]{ + \begin{accordion}\begin{accordion-item}[#1]% + }{\end{accordion-item}\end{accordion}} + + +% Command that gives a selection box online, but just prints the right answer in pdf +\newcommand{\xmonlineChoice}[1]{\pdfOnly{\wordchoicegiventrue}\wordChoice{#1}\pdfOnly{\wordchoicegivenfalse}} % deprecated, gebruik onlineChoice ... +\newcommand{\onlineChoice}[1]{\pdfOnly{\wordchoicegiventrue}\wordChoice{#1}\pdfOnly{\wordchoicegivenfalse}} + +\newcommand{\TJa}{\nlentext{ Ja }{ Yes }} +\newcommand{\TNee}{\nlentext{ Nee }{ No }} +\newcommand{\TJuist}{\nlentext{ Juist }{ True }} +\newcommand{\TFout}{\nlentext{ Fout }{ False }} + +\newcommand{\choiceTrue }{{\renewcommand{\choiceminimumhorizontalsize}{4em}\wordChoice{\choice[correct]{\TJuist}\choice{\TFout}}}} +\newcommand{\choiceFalse}{{\renewcommand{\choiceminimumhorizontalsize}{4em}\wordChoice{\choice{\TJuist}\choice[correct]{\TFout}}}} + +\newcommand{\choiceYes}{{\renewcommand{\choiceminimumhorizontalsize}{3em}\wordChoice{\choice[correct]{\TJa}\choice{\TNee}}}} +\newcommand{\choiceNo }{{\renewcommand{\choiceminimumhorizontalsize}{3em}\wordChoice{\choice{\TJa}\choice[correct]{\TNee}}}} + +% Optional nicer formatting for wordChoice in PDF + +\let\inlinechoiceorig\inlinechoice + +%\makeatletter +%\providecommand{\choiceminimumverticalsize}{\vphantom{$\frac{\sqrt{2}}{2}$}} % minimum height of boxes (cfr infra) +\providecommand{\choiceminimumverticalsize}{\vphantom{$\tfrac{2}{2}$}} % minimum height of boxes (cfr infra) +\providecommand{\choiceminimumhorizontalsize}{1em} % minimum width of boxes (cfr infra) + +\newcommand{\inlinechoicesquares}[2][]{% + \setkeys{choice}{#1}% + \ifthenelse{\boolean{\choice@correct}}% + {% + \ifhandout% + \fbox{\choiceminimumverticalsize #2}\allowbreak\ignorespaces% + \else% + \fcolorbox{blue}{blue!20}{\choiceminimumverticalsize #2}\allowbreak\ignorespaces\setkeys{choice}{correct=false}\ignorespaces% + \fi% + }% + {% else + \fbox{\choiceminimumverticalsize #2}\allowbreak\ignorespaces% HACK: wat kleiner, zodat fits on line ... + }% +} + +\newcommand{\inlinechoicesquareX}[2][]{% + \setkeys{choice}{#1}% + \ifthenelse{\boolean{\choice@correct}}% + {% + \ifhandout% + \framebox[\ifdim\choiceminimumhorizontalsize<\width\width\else\choiceminimumhorizontalsize\fi]{\choiceminimumverticalsize\ #2\ }\allowbreak\ignorespaces\setkeys{choice}{correct=false}\ignorespaces% + \else% + \fcolorbox{blue}{blue!20}{\makebox[\ifdim\choiceminimumhorizontalsize<\width\width\else\choiceminimumhorizontalsize\fi]{\choiceminimumverticalsize #2}}\allowbreak\ignorespaces\setkeys{choice}{correct=false}\ignorespaces% + \fi% + }% + {% else + \ifhandout% + \framebox[\ifdim\choiceminimumhorizontalsize<\width\width\else\choiceminimumhorizontalsize\fi]{\choiceminimumverticalsize\ #2\ }\allowbreak\ignorespaces% HACK: wat kleiner, zodat fits on line ... + \fi + }% +} + + +\newcommand{\inlinechoicepuntjes}[2][]{% + \setkeys{choice}{#1}% + \ifthenelse{\boolean{\choice@correct}}% + {% + \ifhandout% + \dots\ldots\ignorespaces\setkeys{choice}{correct=false}\ignorespaces + \else% + \fcolorbox{blue}{blue!20}{\choiceminimumverticalsize #2}\allowbreak\ignorespaces\setkeys{choice}{correct=false}\ignorespaces% + \fi% + }% + {% else + %\fbox{\choiceminimumverticalsize #2}\allowbreak\ignorespaces% HACK: wat kleiner, zodat fits on line ... + }% +} + +% print niets, maar definieer globale variable \myanswer +% (gebruikt om oplossingsbladen te printen) +\newcommand{\inlinechoicedefanswer}[2][]{% + \setkeys{choice}{#1}% + \ifthenelse{\boolean{\choice@correct}}% + {% + \gdef\myanswer{#2}\setkeys{choice}{correct=false} + + }% + {% else + %\fbox{\choiceminimumverticalsize #2}\allowbreak\ignorespaces% HACK: wat kleiner, zodat fits on line ... + }% +} + + + +%\makeatother + +\newcommand{\setchoicedefanswer}{ +\ifdefined\HCode +\else +% \renewenvironment{multipleChoice@}[1][]{}{} % remove trailing ')' + \let\inlinechoice\inlinechoicedefanswer +\fi +} + +\newcommand{\setchoicepuntjes}{ +\ifdefined\HCode +\else + \renewenvironment{multipleChoice@}[1][]{}{} % remove trailing ')' + \let\inlinechoice\inlinechoicepuntjes +\fi +} +\newcommand{\setchoicesquares}{ +\ifdefined\HCode +\else + \renewenvironment{multipleChoice@}[1][]{}{} % remove trailing ')' + \let\inlinechoice\inlinechoicesquares +\fi +} +% +\newcommand{\setchoicesquareX}{ +\ifdefined\HCode +\else + \renewenvironment{multipleChoice@}[1][]{}{} % remove trailing ')' + \let\inlinechoice\inlinechoicesquareX +\fi +} +% +\newcommand{\setchoicelist}{ +\ifdefined\HCode +\else + \renewenvironment{multipleChoice@}[1][]{}{)}% re-add trailing ')' + \let\inlinechoice\inlinechoiceorig +\fi +} + +\setchoicesquareX % by default list-of-squares with onlineChoice in PDF + +% Omdat multicols niet werkt in html: enkel in pdf (in html zijn langere pagina's misschien ook minder storend) +\newenvironment{xmmulticols}[1][2]{ + \pdfOnly{\begin{multicols}{#1}}% +}{ \pdfOnly{\end{multicols}}} + +% +% Te gebruiken in plaats van \section\subsection +% (in een printstyle kan dan het level worden aangepast +% naargelang \chapter vs \section style ) +% 3/2021: DO NOT USE \xmsubsection ! +\newcommand\xmsection\subsection +\newcommand\xmsubsection\subsubsection + +% Aanpassen printversie +% (hier gedefinieerd, zodat ze in xourse kunnen worden gezet/overschreven) +\providebool{parttoc} +\providebool{printpartfrontpage} +\providebool{printactivitytitle} +\providebool{printactivityqrcode} +\providebool{printactivityurl} +\providebool{printcontinuouspagenumbers} +\providebool{numberactivitiesbysubpart} +\providebool{addtitlenumber} +\providebool{addsectiontitlenumber} +\addtitlenumbertrue +\addsectiontitlenumbertrue + +% The following three commands are hardcoded in xake, you can't create other commands like these, without adding them to xake as well +% ( gebruikt in xourses om juiste soort titelpagina te krijgen voor verschillende ximera's ) +\newcommand{\activitychapter}[2][]{ + { + \ifstrequal{#1}{notnumbered}{ + \addtitlenumberfalse + }{} + \typeout{ACTIVITYCHAPTER #2} % logging + \chapterstyle + \activity{#2} + } +} +\newcommand{\activitysection}[2][]{ + { + \ifstrequal{#1}{notnumbered}{ + \addsectiontitlenumberfalse + }{} + \typeout{ACTIVITYSECTION #2} % logging + \sectionstyle + \activity{#2} + } +} +% Practices worden als activity getoond om de grote blokken te krijgen online +\newcommand{\practicesection}[2][]{ + { + \ifstrequal{#1}{notnumbered}{ + \addsectiontitlenumberfalse + }{} + \typeout{PRACTICESECTION #2} % logging + \sectionstyle + \activity{#2} + } +} +\newcommand{\activitychapterlink}[3][]{ + { + \ifstrequal{#1}{notnumbered}{ + \addtitlenumberfalse + }{} + \typeout{ACTIVITYCHAPTERLINK #3} % logging + \chapterstyle + \activitylink[#1]{#2}{#3} + } +} + +\newcommand{\activitysectionlink}[3][]{ + { + \ifstrequal{#1}{notnumbered}{ + \addsectiontitlenumberfalse + }{} + \typeout{ACTIVITYSECTIONLINK #3} % logging + \sectionstyle + \activitylink[#1]{#2}{#3} + } +} + + +% Commando om de printstyle toe te voegen in ximera's. Zorgt ervoor dat er geen problemen zijn als je de xourses compileert +% hack om onhandige relative paden in TeX te omzeilen +% should work both in xourse and ximera (pre-112022 only in ximera; thus obsoletes adhoc setup in xourses) +% loads global.sty if present (cfr global.css for online settings!) +% use global.sty to overwrite settings in printstyle.sty ... +\newcommand{\addPrintStyle}[1]{ +\iftikzexport\else % only in PDF + \makeatletter + \ifx\@onlypreamble\@notprerr\else % ONLY if in tex-preamble (and e.g. not when included from xourse) + \typeout{Loading printstyle} % logging + \usepackage{#1/printstyle} % mag enkel geinclude worden als je die apart compileert + \IfFileExists{#1/global.sty}{ + \typeout{Loading printstyle-folder #1/global.sty} % logging + \usepackage{#1/global} + }{ + \typeout{Info: No extra #1/global.sty} % logging + } % load global.sty if present + \IfFileExists{global.sty}{ + \typeout{Loading local-folder global.sty (or TEXINPUTPATH..)} % logging + \usepackage{global} + }{ + \typeout{Info: No folder/global.sty} % logging + } % load global.sty if present + \IfFileExists{\currfilebase.sty} + { + \typeout{Loading \currfilebase.sty} + \input{\currfilebase.sty} + }{ + \typeout{Info: No local \currfilebase.sty} + } + \fi + \makeatother +\fi +} + +% +% +% references: Ximera heeft adhoc logica om online labels te doen werken over verschillende files heen +% met \hyperref kan de getoonde tekst toch worden opgegeven, in plaats van af te hangen van de label-text +\ifdefined\HCode +% Link to standard \labels, but give your own description +% Usage: Volg \hyperref[my_very_verbose_label]{deze link} voor wat tijdverlies +% (01/2020: Ximera-server aangepast om bij class reference-keeptext de link-text NIET te vervangen door de label-text !!!) +\renewcommand{\hyperref}[2][]{\HCode{}#2\HCode{}} +% +% Link to specific targets (not tested ?) +\renewcommand{\hypertarget}[1]{\HCode{}} +\renewcommand{\hyperlink}[2]{\HCode{}#2\HCode{}} +\fi + +% Mmm, quid English ... (for keyword #1 !) ? +\newcommand{\wikilink}[2]{ + \hyperlink{https://nl.wikipedia.org/wiki/#1}{#2} + \pdfOnly{\footnote{See \url{https://nl.wikipedia.org/wiki/#1}} + } +} + +\renewcommand{\figurename}{Figuur} +\renewcommand{\tablename}{Tabel} + +% +% Gedoe om verschillende versies van xourse/ximera te maken afhankelijk van settings +% +% default: versie met antwoorden +% handout: versie voor de studenten, zonder antwoorden/oplossingen +% full: met alles erop en eraan, dus geschikt voor auteurs en/of lesgevers (bevat in de pdf ook de 'online-only' stukken!) +% +% +% verder kunnen ook opties/variabele worden gezet voor hints/auteurs/uitweidingen/ etc +% +% 'Full' versie +\newtoggle{showonline} +\ifdefined\HCode % zet default showOnline + \toggletrue{showonline} +\else + \togglefalse{showonline} +\fi + +% Full versie % deprecated: see infra +\newcommand{\printFull}{ + \hintstrue + \handoutfalse + \toggletrue{showonline} +} + +\ifdefined\shouldPrintFull % deprecated: see infra + \printFull +\fi + + + +% Overschrijf onlineOnly (zoals gedefinieerd in ximera.cls) +\ifhandout % in handout: gebruik de oorspronkelijke ximera.cls implementatie (is dit wel nodig/nuttig?) +\else + \iftoggle{showonline}{% + \ifdefined\HCode + \RenewEnviron{onlineOnly}{\bgroup\BODY\egroup} % showOnline, en we zijn online, dus toon de tekst + \else + \RenewEnviron{onlineOnly}{\bgroup\color{red!50!black}\BODY\egroup} % showOnline, maar we zijn toch niet online: kleur de tekst rood + \fi + }{% + \RenewEnviron{onlineOnly}{} % geen showOnline + } +\fi + +% hack om na hoofding van definition/proposition/... als dan niet op een nieuwe lijn te starten +% soms is dat goed en mooi, en soms niet; en in HTML is het nu (2/2020) anders dan in pdf +% vandaar suggestie om +% \begin{definition}[Nieuw concept] \nl +% te gebruiken als je zeker een newline wil na de hoofdig en titel +% (in het bijzonder itemize zonder \nl is 'lelijk' ...) +\ifdefined\HCode +\newcommand{\nl}{} +\else +\newcommand{\nl}{\ \par} % newline (achter heading van definition etc.) +\fi + + +% \nl enkel in handoutmode (ihb voor \wordChoice, die dan typisch veeeel langer wordt) +\ifdefined\HCode +\providecommand{\handoutnl}{} +\else +\providecommand{\handoutnl}{% +\ifhandout% + \nl% +\fi% +} +\fi + +% Could potentially replace \pdfOnline/\begin{onlineOnly} : +% Usage= \ifonline{Hallo surfer}{Hallo PDFlezer} +\providecommand{\ifonline}[2]% +{ +\begin{onlineOnly}#1\end{onlineOnly}% +\pdfOnly{#2} +}% + + +% +% Maak optionele 'basic' en 'extended' versies van een activity +% met environment basicOnly, basicSkip en extendedOnly +% +% ( +% Dit werkt ENKEL in de PDF; de online versies tonen (minstens voorklopig) steeds +% het default geval met printbasicversion en printextendversion beide FALSE +% ) +% +\providebool{printbasicversion} +\providebool{printextendedversion} % not properly implemented +\providebool{printfullversion} % presumably print everything (debug/auteur) +% +% only set these in xourses, and BEFORE loading this preamble +% +%\newif\ifshowbasic \showbasictrue % use this line in xourse to show 'basic' sections +%\newif\ifshowextended \showextendedtrue % use this line in xourse to show 'extended' sections +% +% +%\ifbool{showbasic} +% { \NewEnviron{basicOnly}{\BODY} } % if yes: just print contents +% { \NewEnviron{basicOnly}{} } % if no: completely ignore contents +% +%\ifbool{showbasic} +% { \NewEnviron{basicSkip}{} } +% { \NewEnviron{basicSkip}{\BODY} } +% + +\ifbool{printextendedversion} + { \NewEnviron{extendedOnly}{\BODY} } + { \NewEnviron{extendedOnly}{} } + + + +\ifdefined\HCode % in html: always print + \newenvironment*{basicOnly}{}{} % if yes: just print contents + \newenvironment*{basicSkip}{}{} % if yes: just print contents +\else + +\ifbool{printbasicversion} + {\newenvironment*{basicOnly}{}{}} % if yes: just print contents + {\NewEnviron{basicOnly}{} } % if no: completely ignore contents + +\ifbool{printbasicversion} + {\NewEnviron{basicSkip}{} } + {\newenvironment*{basicSkip}{}{}} + +\fi + +\usepackage{float} +\usepackage[rightbars,color]{changebar} + +% Full versie +\ifbool{printfullversion}{ + \hintstrue + \handoutfalse + \toggletrue{showonline} + \printbasicversionfalse + \cbcolor{red} + \renewenvironment*{basicOnly}{\cbstart}{\cbend} + \renewenvironment*{basicSkip}{\cbstart}{\cbend} + \def\xmtoonprintopties{FULL} % will be printed in footer +} +{} + +% +% Evalueer \ifhints IN de environment +% +% +%\RenewEnviron{hint} +%{ +%\ifhandout +%\ifhints\else\setbox0\vbox\fi%everything in een emty box +%\bgroup +%\stepcounter{hintLevel} +%\BODY +%\egroup\ignorespacesafterend +%\addtocounter{hintLevel}{-1} +%\else +%\ifhints +%\begin{trivlist}\item[\hskip \labelsep\small\slshape\bfseries Hint:\hspace{2ex}] +%\small\slshape +%\stepcounter{hintLevel} +%\BODY +%\end{trivlist} +%\addtocounter{hintLevel}{-1} +%\fi +%\fi +%} + +% Onafhankelijk van \ifhandout ...? TO BE VERIFIED +\RenewEnviron{hint} +{ +\ifhints +\begin{trivlist}\item[\hskip \labelsep\small\bfseries Hint:\hspace{2ex}] +\small%\slshape +\stepcounter{hintLevel} +\BODY +\end{trivlist} +\addtocounter{hintLevel}{-1} +\else +\iftikzexport % anders worden de tikz tekeningen in hints niet gegenereerd ? +\setbox0\vbox\bgroup +\stepcounter{hintLevel} +\BODY +\egroup\ignorespacesafterend +\addtocounter{hintLevel}{-1} +\fi % ifhandout +\fi %ifhints +} + +% +% \tab sets typewriter-tabs (e.g. to format questions) +% (Has no effect in HTML :-( )) +% +\usepackage{tabto} +\ifdefined\HCode + \renewcommand{\tab}{\quad} % otherwise dummy .png's are generated ...? +\fi + + +% Also redefined in preamble to get correct styling +% for tikz images for (\tikzexport) +% + +\theoremstyle{definition} % Bold titels +\makeatletter +\let\proposition\relax +\let\c@proposition\relax +\let\endproposition\relax +\makeatother +\newtheorem{proposition}{Eigenschap} + + +%\instructornotesfalse + +% logic with \ifhandoutin ximera.cls unclear;so overwrite ... +\makeatletter +\@ifundefined{ifinstructornotes}{% + \newif\ifinstructornotes + \instructornotesfalse + \newenvironment{instructorNotes}{}{} +}{} +\makeatother +\ifinstructornotes +\else +\renewenvironment{instructorNotes}% +{% + \setbox0\vbox\bgroup +} +{% + \egroup +} +\fi + +% \RedeclareMathOperator +% from https://tex.stackexchange.com/questions/175251/how-to-redefine-a-command-using-declaremathoperator +\makeatletter +\newcommand\RedeclareMathOperator{% + \@ifstar{\def\rmo@s{m}\rmo@redeclare}{\def\rmo@s{o}\rmo@redeclare}% +} +% this is taken from \renew@command +\newcommand\rmo@redeclare[2]{% + \begingroup \escapechar\m@ne\xdef\@gtempa{{\string#1}}\endgroup + \expandafter\@ifundefined\@gtempa + {\@latex@error{\noexpand#1undefined}\@ehc}% + \relax + \expandafter\rmo@declmathop\rmo@s{#1}{#2}} +% This is just \@declmathop without \@ifdefinable +\newcommand\rmo@declmathop[3]{% + \DeclareRobustCommand{#2}{\qopname\newmcodes@#1{#3}}% +} +\@onlypreamble\RedeclareMathOperator +\makeatother + + +% +% Engelse vertaling, vooral in mathmode +% +% 1. Algemene procedure +% +\ifdefined\isEn + \newcommand{\nlen}[2]{#2} + \newcommand{\nlentext}[2]{\text{#2}} + \newcommand{\nlentextbf}[2]{\textbf{#2}} +\else + \newcommand{\nlen}[2]{#1} + \newcommand{\nlentext}[2]{\text{#1}} + \newcommand{\nlentextbf}[2]{\textbf{#1}} +\fi + +% +% 2. Lijst van erg veel gebruikte uitdrukkingen +% + +% Ja/Nee/Fout/Juits etc +%\newcommand{\TJa}{\nlentext{ Ja }{ and }} +%\newcommand{\TNee}{\nlentext{ Nee }{ No }} +%\newcommand{\TJuist}{\nlentext{ Juist }{ Correct } +%\newcommand{\TFout}{\nlentext{ Fout }{ Wrong } +\newcommand{\TWaar}{\nlentext{ Waar }{ True }} +\newcommand{\TOnwaar}{\nlentext{ Vals }{ False }} +% Korte bindwoorden en, of, dus, ... +\newcommand{\Ten}{\nlentext{ en }{ and }} +\newcommand{\Tof}{\nlentext{ of }{ or }} +\newcommand{\Tdus}{\nlentext{ dus }{ so }} +\newcommand{\Tendus}{\nlentext{ en dus }{ and thus }} +\newcommand{\Tvooralle}{\nlentext{ voor alle }{ for all }} +\newcommand{\Took}{\nlentext{ ook }{ also }} +\newcommand{\Tals}{\nlentext{ als }{ when }} %of if? +\newcommand{\Twant}{\nlentext{ want }{ as }} +\newcommand{\Tmaal}{\nlentext{ maal }{ times }} +\newcommand{\Toptellen}{\nlentext{ optellen }{ add }} +\newcommand{\Tde}{\nlentext{ de }{ the }} +\newcommand{\Thet}{\nlentext{ het }{ the }} +\newcommand{\Tis}{\nlentext{ is }{ is }} %zodat is in text staat in mathmode (geen italics) +\newcommand{\Tmet}{\nlentext{ met }{ where }} % in situaties e.g met p < n --> where p < n +\newcommand{\Tnooit}{\nlentext{ nooit }{ never }} +\newcommand{\Tmaar}{\nlentext{ maar }{ but }} +\newcommand{\Tniet}{\nlentext{ niet }{ not }} +\newcommand{\Tuit}{\nlentext{ uit }{ from }} +\newcommand{\Ttov}{\nlentext{ t.o.v. }{ w.r.t. }} +\newcommand{\Tzodat}{\nlentext{ zodat }{ such that }} +\newcommand{\Tdeth}{\nlentext{de }{th }} +\newcommand{\Tomdat}{\nlentext{omdat }{because }} + + +% +% Overschrijf addhoc commando's +% +\ifdefined\isEn +\renewcommand{\pernot}{\overset{\mathrm{notation}}{=}} +\RedeclareMathOperator{\bld}{im} % beeld +\RedeclareMathOperator{\graf}{graph} % grafiek +\RedeclareMathOperator{\rico}{slope} % richtingcoëfficient +\RedeclareMathOperator{\co}{co} % coordinaat +\RedeclareMathOperator{\gr}{deg} % graad + +% Operators +\RedeclareMathOperator{\bgsin}{arcsin} +\RedeclareMathOperator{\bgcos}{arccos} +\RedeclareMathOperator{\bgtan}{arctan} +\RedeclareMathOperator{\bgcot}{arccot} +\RedeclareMathOperator{\bgsinh}{arcsinh} +\RedeclareMathOperator{\bgcosh}{arccosh} +\RedeclareMathOperator{\bgtanh}{arctanh} +\RedeclareMathOperator{\bgcoth}{arccoth} + +\fi diff --git a/environments/KULeuven/xmPrintstyle.sty b/environments/KULeuven/xmPrintstyle.sty new file mode 100644 index 0000000..4f5b70a --- /dev/null +++ b/environments/KULeuven/xmPrintstyle.sty @@ -0,0 +1,1230 @@ +% +% Layout / Formattering voor de PDF versie van de +% Zomercursus Wiskunde KU Leuven +% +% Gebaseerd op stijl lulu1 (mooculus/calulus1) +% en macro's uit de bestaande Zomercursus +% +% 3/2021: voorpagina/header opgekuist +% 3/2021: nummering question per exercise/example (ipv per activity) +% 3/2021: redefine section/subsection uitgecommentarieerd( to be verified?) +% 1/2023: layout gemoderniseerd (op basis van het Overleaf Template voor Bachelorpapers Wetenschappen) +% + +\usepackage{silence} +%Disable all warnings issued by latex starting with "You have..." +\WarningFilter{latex}{You have requested package} % because we typically request ../printstyle (or ./printstyle) + +\NeedsTeXFormat{LaTeX2e}% LaTeX 2.09 can't be used (nor non-LaTeX) +[1994/12/01]% LaTeX date must be December 1994 or later +\ProvidesPackage{printstyle}[2023/01/12 v0.7] +\ProcessOptions\relax + +\usepackage{stix} +\renewcommand{\familydefault}{\sfdefault} % sans-serif by default +% BUT CAUSES WARNINGS +% Font shape `T1/cmss/m/sc' in size <9> not available +% (Font) Font shape `T1/cmr/m/sc' tried instead. + + +% Alternative font: a version of Bitstream Vera% Sans. +%\let\warning\relax +%\usepackage{arev} +%\usepackage[fontsize=9]{scrextend} + +%\usepackage[notmath]{sansmathfonts} +% \usepackage{lmodern} % To switch to Latin Modern +\usepackage[T1]{fontenc} %%Clobbers \d!!! +\renewcommand{\d}{\mathop{}\!d} %% unclobbers \d +%\usepackage{gillius} +\usepackage{ccicons} +%\usepackage{microtype} +%\usepackage{bold-extra} +%\usepackage{anyfontsize} + + +\usepackage[yyyymmdd]{datetime} % for \currenttime +%\usepackage{totpage} % for LastPage (ie Page n of M) + +\usepackage{textpos} % voorpagina +\usepackage{pdflscape} % include posters + +%\usepackage{rotating} + +% Should not be in printstyle!!! +\providecommand{\dfn}[1]{\textbf{#1}\index{#1}} + +%% Size of the page +\usepackage[margin=.5in, includehead, includefoot, hmargin={.8in,.5in}, a4paper]{geometry} + +% +% bladschikking (from old Zomercursus macro's) +% zie https://en.wikibooks.org/wiki/LaTeX/Page_Layout +\voffset=-1in +\hoffset=-1in + +\topmargin=1 cm +\headheight=2.5cm +\headsep=0.5cm +\textheight=23cm +\footskip=1.2cm +\oddsidemargin=2.5cm +\evensidemargin=2.5cm +\textwidth=15.5cm +\marginparsep=0.5cm +%\marginparwidth=0cm +\setlength{\parindent}{0pt} +\setlength{\parskip}{5 pt} + +\providebool{parttoc} % needs minitoc; NOT implemented +\providebool{printpartfrontpage} +\providebool{printactivitytitle} +\providebool{printactivityqrcode} +\providebool{printactivityurl} +\providebool{printcontinuouspagenumbers} + +% for PDF by activity, it makes sense not to include the title, as it is in the header already +\printactivitytitletrue % overwrite AFTER loading printstyle ... + + +% Store original \title and \maketitle +%\let\othertitle\title +\let\othermaketitle\maketitle + +% % Redefine maketitle to give course packet title page and toc. + +% +% provide defaults for frontpage/headers/footers +% ( Overwrite in global.sty !) +% +\providecommand{\xmmodulenaam}{Module} +\providecommand{\xmcursusnaam}{Basiskennis Wiskunde} +\providecommand{\xmlogo}{ +% \begin{minipage}[c]{2cm}\includegraphics[width=2cm]{./x_zomercursus/sedes.jpg}\end{minipage} +} +\providecommand{\xmorganisatienaam}{{\textsc{KU Leuven}}} +\providecommand{\xmafdelingsnaam}{{\textsc{IDL Project Basiswiskunde}}} +\providecommand{\xmcursusversie}{\scriptsize{\yyyymmdddate\today\xmtoonprintopties.\the\currentminute}} + +\providecommand{\xmtoonprintopties}{% + \ifhandout H\fi% + \ifprintbasicversion B\fi% +} + +\providecommand{\xmmodulenummer}{} % print bv "Module xxx" op titelbladen +\providecommand{\xmcopyright}{% + \doclicenseImage[imagewidth=2em]\doclicenseNameRef% + %\begin{minipage}[c]{1.1cm}\includegraphics[height=1.8cm]{./x_zomercursus/sedes.jpg}\end{minipage} + \\ + \xmorganisatienaam\ (\xmcursusversie) +} + +% kleuren voor voorpagina/header/footer +%\definecolor{green}{RGB}{172,196,0} +\definecolor{bluetitle}{RGB}{29,141,176} +\definecolor{blueaff}{RGB}{0,0,128} +%\definecolor{blueline}{RGB}{82,189,236} +\definecolor{blueKUL}{rgb}{0.114, 0.553, 0.69} % KU Leuven Blauw +\colorlet{blueline}{blueKUL!20} + +% print een titelblad, globaal of per module (gebaseerd op bovenstaande parameters \xmXXX) +\newcommand{\xmPrintFrontPage}[1]{ +{ + % BRON: https://www.overleaf.com/project/63bd40db464ab50421f12f2b + % ( KUL Bachelorproef template, Arthur Depicker, Niels Souverijns) + % pagina-instellingen + +% define units for the text blocks +\setlength{\TPHorizModule}{1mm} +\setlength{\TPVertModule}{1mm} + +\thispagestyle{empty} +%% \newcommand{\form}[1]{\scalebox{1.087}{\boldmath{#1}}} % not used anymore +\sffamily +% +\begin{textblock}{191}(-24,-11) +%\colorbox{bluetitle}{\hspace{123mm}\ \parbox[c][18truemm]{90mm}{\fontsize{20}{22}\selectfont\textcolor{white}{\textsc\xmafdelingsnaam}}} +\colorbox{bluetitle}{\parbox[c][18truemm]{\paperwidth}{\hfill\fontsize{14}{16}\selectfont\bfseries\textcolor{white}{\textsc\xmafdelingsnaam\quad}}} +\end{textblock} +% +%\textblockorigin{-24⟩}{-11} +\begin{textblock}{70}(-18,-19) +\textblockcolour{} +%\includegraphics*[height=19.8truemm]{kuleuven_logo.png} +\end{textblock} +% +\begin{textblock}{160}(-6,63) + \textblockcolour{} + \vspace{-\parskip} + \flushleft +\fontsize{20}{22}\selectfont\xmcursusnaam\\[2cm] +\fontsize{40}{42}\selectfont \textcolor{bluetitle}{ + %\fontsize{20}{22}\selectfont YY #1 YY \form{$S=\pi r^2$\textsl{(facultatief)}} + \xmmodulenummer + \bigskip + \textsc{#1} + } + +\end{textblock} + +\begin{textblock}{191}(-24,220) + {\color{blueline}\rule{580pt}{5.5pt}} + + \flushright(Versie \xmcursusversie) +\end{textblock} +% +\vfill + +\afterpage{\thispagestyle{empty}} + +} +} + +\usepackage{afterpage} +\usepackage{fancyhdr} % Nodig voor de 'fancy' hoofdingen +\usepackage{extramarks} + +\renewcommand{\headrulewidth}{3pt} + +\def\mymoduletitle{} % will be set by \part + +\fancypagestyle{otherpage}{% op de eerste pagina BOLD titel in BLAUW + \renewcommand{\headrulewidth}{0.4pt} +% \rightmark = activity-titel +\makeatletter +\fancyhead{} +\if@twoside + \fancyhead[RO]{\small{p.\textsc{\thepage}\rblob\\\ \\\ }} + \fancyhead[LE]{\small{p.\textsc{\thepage}\lblob\\\ \\\ }} + % \fancyhead[C]{\textsc{\firstleftmark}} + \fancyhead[C]{\ \\\ \\ + {\makebox[\textwidth][c]{\selectfont\bfseries\color{black}\textsc{\firstleftmark}}}} + + % Maak onderscheid tussen (volledige) xourses of (aparte) activities + \ifdefined\isXourse + \fancyhead[LO,RE]{\small{\textsc{\xmmodulenaam\ \arabic{part}: \mymoduletitle}}\\ + \ \\ + \ } + \fi + + %\fancyfoot[RO,LE]{\textsc{\small \xmcursusnaam\ \xmcursusversie\\\xmafdelingsnaam}} + \fancyfoot[RO,LE]{\textsc{\small \xmcursusnaam\\\xmafdelingsnaam}} % versie enkel op eerste pagina + \fancyfoot[C]{} + \fancyfoot[LO,RE]{\xmcopyright} +\else% oneside + \fancyhead[R]{\small{p. \textsc{\thepage}\lblob\\\ \\\ }} + %\fancyhead[C]{\textsc{\firstleftmark}} + \fancyhead[C]{\ \\\ \\ + {\makebox[\textwidth][c]{\selectfont\bfseries\color{black}\textsc{\firstleftmark}}}} + + % Maak onderscheid tussen (volledige) xourses of (aparte) activities + \ifdefined\isXourse + \fancyhead[L]{\small{\textsc{\xmmodulenaam\ \arabic{part}: \mymoduletitle}}\\ + \ \\ + \ } + \fi + + \fancyfoot[R]{\textsc{\small \xmcursusnaam\ \\\xmafdelingsnaam}} + \fancyfoot[C]{} + \fancyfoot[L]{\xmcopyright} +\fi +\makeatother + %\fancyhead[RO]{\textsc{\thepage/\pageref{LastPage}}} + %\fancyhead[C]{\small{\textsc{\mytitle}}} +} + +\fancypagestyle{firstpage}{% op de eerste pagina BOLD titel in BLAUW + \renewcommand{\headrulewidth}{0pt} +\makeatletter +\if@twoside + \fancyhead[RO]{\small{p.\textsc{\thepage}\\\ \\\rbigblob}} % Rechts bij oneven pagina's + \fancyhead[LE]{\small{p.\textsc{\thepage}\\\ \\\lbigblob}} % Links bij even pagina's + \ifdefined\isXourse + % NOT NEEDED: standrad LO/RE work better (this overwrite pagenumbers on EVEN pages ???) + %\fancyhead[LO]{\colorbox{white}{\makebox[\textwidth][l]{\small{\textsc{\xmmodulenaam\ \arabic{part}: \mymoduletitle}}}}\\ \ } + %\fancyhead[RE]{\colorbox{white}{\makebox[\textwidth][r]{\small{\textsc{\xmmodulenaam\ \arabic{part}: \mymoduletitle}}}}\\ \ } + \else + \fancyhead[LO]{\colorbox{blueline}{\parbox{\textwidth}{\makebox[\textwidth][l]{\small{\textsc{\phantom{M}}}\\ \ \\ \ }}}} + \fancyhead[RE]{\colorbox{blueline}{\parbox{\textwidth}{\makebox[\textwidth][r]{\small{\textsc{\phantom{M}}}\\ \ \\ \ }}}} + \fi +% \fancyhead[C]{\ \\ +% \colorbox{blueline}{\makebox[\textwidth][c]{\selectfont\bfseries\color{blue}\rightmark}}} + \fancyhead[C]{\ \\\ \\ + \colorbox{blueline}{\makebox[\textwidth][c]{\selectfont\bfseries\color{black}\textsc{\firstleftmark}}}} + + \fancyfoot[RO,LE]{\textsc{\small \xmcursusnaam\\\xmafdelingsnaam}} + \fancyfoot[C]{} + \fancyfoot[LO,RE]{\xmcopyright} +\else%oneside + \fancyhead[R]{\small{p. \textsc{\thepage}\\\ \\\rbigblob}} % Rechts bij oneven pagina's + \ifdefined\isXourse + \fancyhead[L]{\colorbox{white}{\makebox[\textwidth][l]{\small{\textsc{\xmmodulenaam\ \arabic{part}: \mymoduletitle}}}}\\ \ \\\ } + \else + \fancyhead[L]{\colorbox{blueline}{\parbox{\textwidth}{\makebox[\textwidth][l]{\small{\textsc{\phantom{M}}} + \\ \ \\ \ }}} + } + \fi + \fancyhead[C]{\ \\ + \colorbox{blueline}{\makebox[\textwidth][c]{\selectfont\bfseries\color{black}\textsc{\firstleftmark}}}} + + \fancyfoot[R]{\textsc{\small \xmcursusnaam\\\xmafdelingsnaam}} + \fancyfoot[C]{} + \fancyfoot[L]{\xmcopyright} +\fi +\makeatother + + +} + +\pagestyle{otherpage} + +% Print een zwarte BLOB rechts op de pagina bij elke nieuwe activity +% ( handig bij het bladeren door de PDF ... ?) +\ifdefined\xmprintblob % deprecated; does not work anymore ...? (2/2023) +\setlength{\unitlength}{18mm} +%\newcommand{\blob}{\rule[-.2\unitlength]{1\unitlength}{.25\unitlength}} +\newcommand{\blob}{{\color{gray}\rule{.5\unitlength}{.2\unitlength}}} +\newcommand\rblob{ + \begin{picture}(0,0) +% \put(1,-\value{titlenumber}){\begin{sideways}\@title \thetitlenumber\end{sideways} \blob} + \put(1,-\value{titlenumber}){\thetitlenumber\;\blob} + + \end{picture} +} + +\newcommand\lblob{ + \begin{picture}(0,0) + \put(-3,-\value{titlenumber}){\blob\;\thetitlenumber} + \end{picture} +} + +\newcommand\rbigblob{ + \begin{picture}(0,0) + \put(0,-0.2) + { % \framebox{\selectfont\bfseries\color{blue}\thetitlenumber} + \colorbox{blueline}{\makebox(1,0.56){\selectfont\bfseries\color{white}\thetitlenumber}} % Mmm, WRONG for sections + } + \end{picture} +} +\newcommand\lbigblob{ + \begin{picture}(0,0) + \put(-1.15,-0.2) + { % \framebox{\selectfont\bfseries\color{blue}\thetitlenumber} + \colorbox{blueline}{\makebox(1,0.56){\selectfont\bfseries\color{white}\thetitlenumber}} + } + \end{picture} +} +\else +\newcommand\blob{} +\newcommand\rblob{} +\newcommand\lblob{} +\newcommand\lbigblob{} +\newcommand\rbigblob{} +\fi + +\makeatletter +% +% Voorbereiding MAIN FRONTPAGE (Algemene titlepagina, en tableofcontents) +% +% ** overschrijf maketitle voor de \xmtitle van de xourse (of activity) ** +\renewcommand{\maketitle}{ + % Maak onderscheid tussen (volledige) xourses of (aparte) activities + \ifdefined\isXourse + \xmPrintFrontPage{\@title} + + % Toon INHOUDSOPGAVE + \thispagestyle{empty} + \cleardoublepage + \thispagestyle{empty} + \afterpage{\thispagestyle{empty}} + \tableofcontents + \thispagestyle{empty} + \cleardoublepage + \fi + + \let\maketitle\othermaketitle % reset maketitle to usual definition. + + \ifdefined\isXourse + \else + \markboth{\@title}{\@title} % only needed in non-xourses ... + \fi +% \markright{ \@title } % fix wrong section on first page of activity + + \thispagestyle{firstpage} + \afterpage{\thispagestyle{otherpage}} +} % end \renewcommand maketitle (voor MAIN FRONTPAGE) + + +% +% Counting stuff: +% complex, because online, Ximera counts chapters/sections itself +% This clashes with potential of \sections inside activities ... +% +\setcounter{secnumdepth}{6} % by default print detailed (sub-)section numbers +% +% Defaults +% use 2.5 for Chapter 5 in Part (Module) 2 +% use 2.5.A for first \practisesection in that chapter +% ( other \xmsections get numbers 2.5.1 etc) +% +\renewcommand{\thepart}{\arabic{part}} +\renewcommand{\thetitlenumber}{\thepart.\arabic{titlenumber}} +\renewcommand{\thesectiontitlenumber}{\thetitlenumber.\Alph{sectiontitlenumber}} + +% +% defaults: will be overwitten infra +% +\usepackage{titlesec} + +%\counterwithin{subsubsection}{sectiontitlenumber} + +% met kleurtjes (om te testen) +%\titleformat{\subsection}[hang]{\color{blue}\normalfont\Large\bfseries}{\thesubsection}{1em}{} +%\titleformat{\subsubsection}[hang]{\color{green}\normalfont\large\bfseries}{\thesubsubsection}{1em}{} +%\titleformat{\paragraph}[hang]{\color{brown}\normalfont\bfseries}{\theparagraph}{1em}{} + +\titleformat{\subsection}[hang]{\normalfont\bfseries}{\thesubsection}{1em}{} +\titleformat{\subsubsection}[hang]{\normalfont\bfseries}{\thesubsubsection}{1em}{} +\titleformat{\paragraph}[hang]{\normalfont\bfseries}{\theparagraph}{1em}{} + + +%\titleformat*{\subsubsection}{\normalfont\large\sffamily\bfseries} +\titlespacing*{\subsection}{0pt}{1.25ex plus 1ex minus .2ex}{0.2em} + +%\usepackage{regexpatch}% http://ctan.org/pkg/regexpatch +\usepackage{qrcode} +\usepackage{currfile} +\usepackage{marginnote} + +% Update het maketitle commando in chapterstyle: toevoegen in inhoudsopgave en counters resetten +% Deze counters worden gebruikt om de juiste nummering te tonen bij de definities etc +% Deze worden handmatig verhoogt, gereset (= beheert) om compatibel te zijn met de handmatige telling online +\providecommand\xmbaseurl{https://set.kuleuven.be/ximera-wis/demo/} + +\renewcommand\chapterstyle{% + \def\maketitle{% + \addtocounter{titlenumber}{1}% Verhoog counter voor 'titlenumber' = 2e niveau + + \ifprintactivitytitle % if not, it's in the header .... + {\normalfont\Large\bfseries \thetitlenumber\hspace{1em} \@title} + \fi + \ifprintactivityqrcode + \marginnote{\qrcode[hyperlink,height=1.5cm]{\xmbaseurl\currfiledir\currfilebase}}%[-2cm] % left + \fi + \ifprintactivityurl + \url{\xmbaseurl\currfiledir\currfilebase} + \fi + \phantomsection + \addcontentsline{toc}{section}{\textbf{\thetitlenumber\hspace{1em}\@title}}% Voeg toe aan inhoudsopgave + + % Inside \chapterstyle, sections map to subsections + \renewcommand\xmsection\subsection + \renewcommand\xmsubsection\subsubsection + \renewcommand{\thesubsection}{\thetitlenumber.\arabic{subsection}} + \renewcommand{\thesubsubsection}{\thesubsection.\arabic{subsubsection}} + + + {% Reset de per-chapter counters + \setcounter{sectiontitlenumber}{0} + \setcounter{proposition}{0} + \setcounter{problem}{0} + \setcounter{definition}{0} + \setcounter{example}{0} + \setcounter{explanation}{0} + \setcounter{remark}{0} + \setcounter{notation}{0} + \setcounter{observation}{0} + \setcounter{theorem}{0} + \setcounter{warning}{0} + \setcounter{xmuitweiding}{0} + \setcounter{exercise}{0} + \setcounter{question}{0} + \setcounter{subsection}{0} + \setcounter{subsubsection}{0} + \setcounter{hint}{0} + } + + \markboth{\thetitlenumber\hspace{1em} \@title}{\thetitlenumber\hspace{1em} \@title} % fix wrong section on last page of activity + \thispagestyle{firstpage} + \afterpage{\thispagestyle{otherpage}} + }% end maketitle +} + +% Update het maketitle commando in sectionstyle = toevoegen in inhoudsopgave en counters resetten +\renewcommand\sectionstyle{% + \def\maketitle{% + \addtocounter{sectiontitlenumber}{1}% Verhoog counter voor 'sectiontitlenumber' = 3e niveau + + \ifprintactivitytitle % if not, it's in the header .... + {\normalfont\large\bfseries \thesectiontitlenumber\hspace{1em} \@title} + \fi + \ifprintactivityqrcode + \marginnote{\qrcode[hyperlink,height=1.5cm]{\xmbaseurl\currfiledir\currfilebase}}%[-2cm] + \fi + \ifprintactivityurl + \url{\xmbaseurl\currfiledir\currfilebase} + \fi + % Manually add anchor and contentsline + \phantomsection + \addcontentsline{toc}{subsection}{\textbf{\thesectiontitlenumber\hspace{1em}\@title}}% Voeg toe aan inhoudsopgave +% \addcontentsline{toc}{subsection}{\numberline{\thesectiontitlenumber}\@title}% Voeg toe aan inhoudsopgave + + % Inside \sectionstyle, sections map to subsubsections + \renewcommand\xmsection\subsubsection + \renewcommand\xmsubsection\paragraph + \renewcommand{\thesubsubsection}{\thesectiontitlenumber.\arabic{subsubsection}} + +% \counterwithin*{subsubsection}{subsection} % doesn't work ... ? +% \setcounter{subsubsection}{0} %% !!! deze lijn helpt de bookmarks in PDF omzeep !!!! + + \markboth{\thesectiontitlenumber\hspace{1em} \@title}{\thesectiontitlenumber\hspace{1em} \@title} % fix wrong section on last page of activity + + \thispagestyle{firstpage} + \afterpage{\thispagestyle{otherpage}} + } +} + +%% herdefinieer part +\renewcommand\part{% + \thispagestyle{empty} + \if@openright + \cleardoublepage + \else + \clearpage + \fi +% \thispagestyle{plain}% +% \null\vfil % causes whitespace at top of first page of new \part + \secdef\@part\@spart +} + +% In a xourse, count pages by \part +% todo: c/should be made optional? Especially to allow not using parts at all ? +\ifdefined\isXourse + \ifprintcontinuouspagenumbers + \renewcommand{\thepage}{\arabic{page}} % + \else + \counterwithin{page}{part} + % \renewcommand{\thepage}{\thepart - \arabic{page}} % + \renewcommand{\thepage}{\thepart.\arabic{page}} % +\fi +\fi + +\makeatletter + +\def\@part[#1]#2{% + \def\mymoduletitle{#1} % set module title for use in header + \setcounter{titlenumber}{0} % teller voor 'chapters' per part (defined in ximera.cls) + + \ifnum \c@secnumdepth >-2\relax + \refstepcounter{part}% + \addcontentsline{toc}{part}{\thepart\hspace{1em}#1}% Voeg toe aan inhoudsopgave (met nummer) + \else + \addcontentsline{toc}{part}{#1}% Voeg toe aan inhoudsopgave + \fi +% \markboth{#1}{#1}% +% \markboth{}{}% +% \markright{#1} % fix wrong section on first page of activity + + \refstepcounter{page} % Paginanummers vanaf 1 binnen de modules (default: vanaf 0) + + \ifprintpartfrontpage + % Toon titelpagina voor nieuw \part + \renewcommand{\xmmodulenummer}{\textsc{\xmmodulenaam\ \arabic{part}}\\} + \xmPrintFrontPage{#1} + \ifparttoc % TODO: does not work ? + % Toon INHOUDSOPGAVE + \thispagestyle{empty} + \afterpage{\thispagestyle{empty}} + \doparttoc % requiren minitoc ...!!!! + \tableofcontents + \cleardoublepage + \fi + \fi + \thispagestyle{empty} + \cleardoublepage + \newpage + +% needed ??? +% \thispagestyle{firstpage} +% \afterpage{\thispagestyle{otherpage}} + + \@endpart % ???? +} +\def\@spart#1{% with \part* print \Huge title; not used/usable ? + {\centering + \interlinepenalty \@M + \normalfont + \Huge \bfseries #1\par}% + \@endpart} +%\def\@endpart{\vfil\newpage +% \if@twoside +% \if@openright +% \null +% \thispagestyle{empty}% +% \newpage +% \fi +% \fi} +\def\@endpart{} +% +%\patchcmd{\@part}% +% {\protected@edef}% +% {\def\arg{#1}\def\arg@{part}% +% \ifx\arg\arg@\stepcounter{page}\fi% +% \protected@edef}% +% {}{}% + +\makeatother + +%% image environment: resize en center +\let\image\relax +\let\endimage\relax +\NewEnviron{image}[1][3in]{% + \begin{center}\resizebox{#1}{!}{\BODY}\end{center}% resize and center +} + +% Nederlandse titel van 'Contents' +\renewcommand{\contentsname}{Inhoudsopgave} +% Overschrijf de nummering, zorg dat et part.titlenumber.sectiontitlenumber is +%\renewcommand{\thepart}{\arabic{part}} +%\renewcommand{\thetitlenumber}{\thepart.\arabic{titlenumber}} +%\renewcommand{\thesectiontitlenumber}{\thetitlenumber.\arabic{sectiontitlenumber}} +% Commando om de nummering bij de titels van theorems juist in te stellen, wordt hieronder gebruikt +\newcommand{\theoremtitle}[1]{% + \ifdefined\isXourse\thetitlenumber.\arabic{#1}\else\arabic{#1}\fi% +} + +\usepackage{tcolorbox} +\tcbuselibrary{breakable,skins} +% Herdefinieer enkele omgevingen (PAS OP: enkel voor PDF, voor html: zie css..!!!) +% Moet in printStyles, want in preamble zorgt dit voor problemen +% remove italics def +\newcommand{\colordefinition}{green} +\newcommand{\colorexample}{blue} +\newcommand{\colorremark}{yellow} + +\tcbset{every box/.style={ + % before upper={\vspace*{-0.45cm}}, %% HACK: remove whitespace on top !!! + parbox=false, %% Get paragraph-spacing ... %% !!GLOBAL CHANGES ON ALMOST EVERY PAGE !!%% + } +} + +\theoremstyle{definition} % Bold titels + +\makeatletter +\let\definition\relax +\let\c@definition\relax +\let\enddefinition\relax +\makeatother +\newtheorem{definition}{\nlen{Definitie}{Definition}} +\renewcommand{\thedefinition}{\theoremtitle{definition}} % titel instellen +\tcolorboxenvironment{definition}{ + boxrule=0pt, + boxsep=0pt, + colback={\colordefinition!5!white}, + enhanced jigsaw, + borderline west={2pt}{0pt}{\colordefinition!45!black}, + sharp corners, + before skip=10pt, + after skip=10pt, + breakable, + % before upper={\vspace*{-0.45cm}}, +} + +\makeatletter +\let\notation\relax +\let\c@notation\relax +\let\endnotation\relax +\makeatother +\newtheorem{notation}{\nlen{Notatie}{Notation}} +\renewcommand{\thenotation}{\theoremtitle{notation}} % titel instellen +\tcolorboxenvironment{notation}{ + boxrule=0pt, + boxsep=0pt, + colback={\colordefinition!5!white}, + enhanced jigsaw, + borderline west={2pt}{0pt}{\colordefinition!45!black}, + sharp corners, + before skip=10pt, + after skip=10pt, + breakable, + % before upper={\vspace*{-0.45cm}}, +} + +\makeatletter +\let\axiom\relax +\let\c@axiom\relax +\let\endaxiom\relax +\makeatother +\newtheorem{axiom}{Axioma} +\renewcommand{\theaxiom}{\theoremtitle{axiom}} % titel instellen +\tcolorboxenvironment{axiom}{ + boxrule=0pt, + boxsep=0pt, + colback={\colordefinition!5!white}, + enhanced jigsaw, + borderline west={2pt}{0pt}{\colordefinition!45!black}, + sharp corners, + before skip=10pt, + after skip=10pt, + breakable, + % before upper={\vspace*{-0.45cm}}, +} + +\makeatletter +\let\proposition\relax +\let\c@proposition\relax +\let\endproposition\relax +\makeatother +\newtheorem{proposition}{\nlen{Eigenschap}{Proposition}} +\renewcommand{\theproposition}{\theoremtitle{proposition}} % titel instellen +\tcolorboxenvironment{proposition}{ + boxrule=0pt, + boxsep=0pt, + colback={\colordefinition!2!white}, + enhanced jigsaw, + borderline west={2pt}{0pt}{\colordefinition!65!black}, + sharp corners, + before skip=10pt, + after skip=10pt, + breakable, + % before upper={\vspace*{-0.45cm}}, +} + +\makeatletter +\let\theorem\relax +\let\c@theorem\relax +\let\endtheorem\relax +\makeatother +\newtheorem{theorem}{\nlen{Stelling}{Theorem}} +\renewcommand{\thetheorem}{\theoremtitle{theorem}} % titel instellen +\tcolorboxenvironment{theorem}{ + boxrule=0pt, + boxsep=0pt, + colback={\colordefinition!2!white}, + enhanced jigsaw, + borderline west={2pt}{0pt}{\colordefinition!65!black}, + sharp corners, + before skip=10pt, + after skip=10pt, + breakable, + % before upper={\vspace*{-0.45cm}}, +} + + +\makeatletter +\let\corollary\relax +\let\c@corollary\relax +\let\endcorollary\relax +\makeatother +\newtheorem{corollary}{\nlen{Gevolg}{Corollary}} +\newtheorem*{corollary*}{\nlen{Gevolg}{Corollary}} +\renewcommand{\thecorollary}{\theoremtitle{corollary}} % titel instellen +\tcolorboxenvironment{corollary}{ + boxrule=0pt, + boxsep=0pt, + colback={\colordefinition!2!white}, + enhanced jigsaw, + borderline west={2pt}{0pt}{\colordefinition!65!black}, + sharp corners, + before skip=10pt, + after skip=10pt, + breakable, + % before upper={\vspace*{-0.45cm}}, +} +\tcolorboxenvironment{corollary*}{ + boxrule=0pt, + boxsep=0pt, + colback={\colordefinition!2!white}, + enhanced jigsaw, + borderline west={2pt}{0pt}{\colordefinition!65!black}, + sharp corners, + before skip=10pt, + after skip=10pt, + breakable, + % before upper={\vspace*{-0.45cm}}, +} + +\makeatletter +\let\algorithm\relax +\let\c@algorithm\relax +\let\endalgorithm\relax +\makeatother +\newtheorem{algorithm}{\nlen{Algoritme}{Algorithm}} +\renewcommand{\thealgorithm}{\theoremtitle{algorithm}} % titel instellen +\tcolorboxenvironment{algorithm}{ + boxrule=0pt, + boxsep=0pt, + colback={\colordefinition!2!white}, + enhanced jigsaw, + borderline west={2pt}{0pt}{\colordefinition!65!black}, + sharp corners, + before skip=10pt, + after skip=10pt, + breakable, + % before upper={\vspace*{-0.45cm}}, +} + +%\newcounter{proof} +%\makeatletter +%\let\proof\relax +%\let\c@proof\relax +%\let\endproof\relax +%\makeatother +%\newtheorem{proof}{Bewijs} +%\newtheorem*{proof}{Bewijs} +%\renewcommand{\theproof}{\theoremtitle{proof}} % titel instellen +%\tcolorboxenvironment{proof}{ +% boxrule=0pt, +% boxsep=0pt, +% colback={\colordefinition!0!white}, +% enhanced jigsaw, +% borderline west={2pt}{0pt}{\colordefinition!20!black}, +% sharp corners, +% before skip=10pt, +% after skip=10pt, +% breakable, +%before upper={\vspace*{-0.45cm}}, +%} + +\makeatletter +\let\explanation\relax +\let\c@explanation\relax +\let\endexplanation\relax +\makeatother +\newtheorem{explanation}{Uitleg} +\renewcommand{\theexplanation}{\theoremtitle{explanation}} % titel instellen +\tcolorboxenvironment{explanation}{ + boxrule=0pt, + boxsep=0pt, + colback={\colordefinition!1!white}, + enhanced jigsaw, + borderline west={2pt}{0pt}{\colordefinition!75!black}, + sharp corners, + before skip=10pt, + after skip=10pt, + breakable, + % before upper={\vspace*{-0.45cm}}, +} + +\makeatletter +\let\example\relax +\let\c@example\relax +\let\endexample\relax +\makeatother +\newtheorem{example}{\nlen{Voorbeeld}{Example}} +\renewcommand{\theexample}{\theoremtitle{example}} % titel instellen +\tcolorboxenvironment{example}{ + boxrule=0pt, + boxsep=0pt, + %colback={white}, + colback={\colorexample!3!white}, + enhanced jigsaw, + borderline west={2pt}{0pt}{\colorexample!75!black}, + sharp corners, + before skip=10pt, + after skip=10pt, + breakable, + % before upper={\vspace*{-0.45cm}}, +} + +% remove italics def +\makeatletter +\let\problem\relax +\let\c@problem\relax +\let\endproblem\relax +\makeatother +% problem environment is een standaard theorem +\newtheorem{problem}{\nlen{Probleem}{Problem}} +\renewcommand{\theproblem}{\theoremtitle{problem}} % titel instellen + +% exercise environment instellen +\newcounter{exercise} % Counter bestaat niet, dus zelf maken +\makeatletter +\let\exercise\relax +\let\c@exercise\relax +\let\endexercise\relax +\makeatother +\newtheorem{exercise}{{\hyperlink{xm:ex:\theexercise}{\nlen{Oefening}{Exercise}}\hypertarget{xm:sol:\theexercise}{}}} +%\renewcommand{\theexercise}{\arabic{exercise}} % titel instellen +\renewcommand{\theexercise}{\theoremtitle{exercise}} % titel instellen +\tcolorboxenvironment{exercise}{ + boxrule=0pt, + boxsep=0pt, + colback={\colorexample!0!white}, + enhanced jigsaw, + borderline west={2pt}{0pt}{\colorexample!50!black}, + sharp corners, + before skip=10pt, + after skip=10pt, + breakable, + % before upper={\vspace*{-0.45cm}}, +} + +\makeatletter +\let\remark\relax +\let\c@remark\relax +\let\endremark\relax +\makeatother +\newtheorem{remark}{\nlen{Opmerking}{Remark}} +\renewcommand{\theremark}{\theoremtitle{remark}} % titel instellen +\tcolorboxenvironment{remark}{ + boxrule=0pt, + boxsep=0pt, + colback={\colorremark!5!white}, + enhanced jigsaw, + borderline west={2pt}{0pt}{\colorremark!75!black}, + sharp corners, + before skip=10pt, + after skip=10pt, + breakable, + % before upper={\vspace*{-0.45cm}}, +} + +\makeatletter +\let\warning\relax +\let\c@warning\relax +\let\endwarning\relax +\makeatother +\newtheorem{warning}{Waarschuwing} +\renewcommand{\thewarning}{\theoremtitle{warning}} % titel instellen +\tcolorboxenvironment{warning}{ + boxrule=0pt, + boxsep=0pt, + colback={\colorremark!2!white}, + enhanced jigsaw, + borderline west={2pt}{0pt}{\colorremark!65!black}, + sharp corners, + before skip=10pt, + after skip=10pt, + breakable, + % before upper={\vspace*{-0.45cm}}, +} + + +% remove italics def +\makeatletter +\let\question\relax +\let\c@question\relax +\let\endquestion\relax +\makeatother + +% Gebruik question ENKEL binnen exercise/example: het heeft zelf geen hoofding 'Vraag 1:' +\newtheorem{question}{} % question heeft lege titel + +\renewcommand{\theHquestion}{\thetitlenumber.\theexercise.\theexample.\thequestion} % for hyperref ... + +% Onderscheid voorbeeld/oefening: +% bij een voorbeeld wordt ook in handout-mode het antwoord geprint +% bij een oefening (natuurlijk) niet +% todo: idem voor wordChoice ? +% todo: keuze om ook oplossing al dan niet te printen +\AtBeginEnvironment{warning}{\setcounter{question}{0}\setcounter{hint}{0}} +\AtBeginEnvironment{exercise}{\setcounter{question}{0}\setcounter{hint}{0}} +\AtBeginEnvironment{example}{\setcounter{question}{0}\setcounter{hint}{0}\handoutfalse} % print oplossingen in voorbeelden + +\ifdefined\isXourse + \ifdefined\xmuitweiding + \else + \def\xmnouitweiding{true} + \fi +\fi + +\ifdefined\xmnouitweiding +\excludecomment{xmuitweiding} +\else +\makeatletter +\let\xmuitweiding\relax +\let\c@\xmuitweiding\relax +\let\endxmuitweiding\relax +\let\c@xmuitweiding\@undefined % nodig want anders klaagt hij dat \c@xmuitweiding al gedefinieerd is, \@undefined is gewoon een macro die niet gedefinieerd is, je kan eender welke macro gebruiken die niet gedefinieerd is +\makeatother +\newtheorem{xmuitweiding}{\nlen{Uitweiding}{Excursus}} +\renewcommand{\thexmuitweiding}{\theoremtitle{xmuitweiding}} % titel instellen +\tcolorboxenvironment{xmuitweiding}{ + boxrule=0pt, + boxsep=0pt, + colback={gray!2!white}, + enhanced jigsaw, + borderline west={2pt}{0pt}{red!55!black}, + sharp corners, + before skip=10pt, + after skip=10pt, + breakable, + % before upper={\vspace*{-0.45cm}}, +} +\fi + +\makeatletter +{ +\let\xmexpandable\relax +\let\c@\xmexpandable\relax +\let\endxmexpandable\relax +\let\c@xmexpandable\@undefined % nodig want anders klaagt hij dat \c@xmuitweiding al gedefinieerd is, \@undefined is gewoon een macro die niet gedefinieerd is, je kan eender welke macro gebruiken die niet gedefinieerd is +\makeatother +\newtheoremstyle{expnd}% % Name +{}% % Space above +{}% % Space below +{}% % Body font +{}% % Indent amount +{\bfseries}% % Theorem head font +{.}% % Punctuation after theorem head +{ }% % Space after theorem head, ' ', or \newline +{\thmname{#1}\thmnumber{ #2}\thmnote{ \textbf{#3}}}% + + +\theoremstyle{expnd} +\newtheorem*{xmexpandable}{} +%\renewcommand{\thexmuitweiding}{\theoremtitle{xmuitweiding}} % titel instellen +\tcolorboxenvironment{xmexpandable}{ + boxrule=0pt, + boxsep=0pt, + colback={gray!2!white}, + enhanced jigsaw, + borderline west={1pt}{0pt}{gray!55!black}, + sharp corners, + before skip=10pt, + after skip=10pt, + breakable, + left=2pt, right=0pt, % NIET inspringen ... ! +} +} + +% Feedback +% Renew feedback +\ifhandout% +\renewenvironment{feedback} + {% + \setbox0\vbox\bgroup + } + {% + \egroup + } +\else +\renewenvironment{feedback}[1][attempt]{ % anders,ingespringt tonen + \makeatletter + \def\PH@Command{#1}% Use PH@Command to hold the content and be a target for "\expandafter" to expand once. + + \begin{trivlist}% Begin the trivlist to use formating of the "Feedback" label. + \item[\hskip \labelsep\small\slshape\bfseries\ifthenelse{\equal{\detokenize{#1}}{\detokenize{solution}}} + {\nlen{Uitwerking}{Elaboration}} + {Feedback}:% Format the "Feedback" label. Don't forget the space. + % (\texttt{\detokenize\expandafter{\PH@Command}}):% Format (and detokenize) the condition for feedback to trigger + \hspace{2ex}]\small%\slshape% Insert some space before the actual feedback given. + }{ + \end{trivlist} + \makeatother +} +\fi + +% Expandable printed a bit smaller (TBI) +\let\expandable\relax +\let\endexpandable\relax +\NewEnviron{expandable}[2]{\begin{#1}[#2]\nl\smaller\BODY\end{#1}} + +%% Compress dialogue +\renewenvironment{dialogue}{% + \renewcommand\descriptionlabel[1]{\hspace{\labelsep}\textbf{##1:}} + \small\begin{description}[noitemsep,topsep=0pt,parsep=0pt,partopsep=0pt]% +}{% + \end{description}\normalsize% +} +% +% + +\renewcommand{\theHexercise}{\thetitlenumber.\theexercise} % for hyperref ... +\renewcommand{\theHdefinition}{\thetitlenumber.\thedefinition} % for hyperref ... +\renewcommand{\theHproposition}{\thetitlenumber.\theproposition} % for hyperref ... +\renewcommand{\theHexample}{\thetitlenumber.\theexample} % for hyperref ... +\renewcommand{\theHremark}{\thetitlenumber.\theremark} % for hyperref ... +\renewcommand{\theHsubsection}{\thetitlenumber.\thesubsection} % for hyperref ... + + + +\let\oldhypertarget\hypertarget +\let\oldhyperlink\hyperlink +\renewcommand{\hypertarget}[2]{% + \label{ht@#1}\oldhypertarget{#1}{#2}% +} +\renewcommand{\hyperlink}[2]{% + \ifcsname r@ht@#1\endcsname\oldhyperlink{#1}{#2}\else#2\fi +} + +% Gecopieerd van ximera.cls, o.a. om te vernederlandsen +\providecommand{\multipleChoiceLabel}{\hskip \labelsep\small\bfseries \nlen{Meerkeuze:}{Multiple Choice:}} +\providecommand{\multipleChoiceNColumns}{1} +\makeatletter +\renewenvironment{multipleChoice}[1][] +{% Environment Start Code +\setkeys{multipleChoice}{#1}% +\recordvariable{\mc@id}% +\begin{trivlist} +\item[\multipleChoiceLabel]\hfil +\begin{xmmulticols}[\multipleChoiceNColumns] +\begin{enumerate} +}% Note this means that \item has to be the first line after \begin{multipleChoice}. +{% Environment End Code +\end{enumerate} +\end{xmmulticols} +\end{trivlist} +} + +%\renewenvironment{multipleChoice@}[1][]{}{)} % not needed: is in ximera.cls + + +\renewcommand{\wordChoice}[1]{% +\let\choicetemp\choice% Assign a "choicetemp" command to duplicate choice. +\ifwordchoicegiven% If wordchoice option is on, we need to juggle around some definitions. +\let\choice\otherchoice% +#1% +\else% If it isn't the regular "choice" command should work. +\let\choice\inlinechoice% +\begin{multipleChoice@}% +#1% +\end{multipleChoice@}% +\fi% +\let\choice\choicetemp% Now that choicetmp has been manipulated to what we want, replace choice with it. +\ % extra blanc after \Wordchoice +}% + + +\renewenvironment{selectAll}[1][] +{\begin{trivlist}\item[\hskip \labelsep\small\bfseries \nlen{Meerkeuze (selecteer alle correcte antwoorden):}{Multiple Choice (select all correct answers);}]\hfil\begin{enumerate}} + {\end{enumerate}\end{trivlist}} + +\makeatother + +% Plots in kleur (set in preamble ...?) +%\xmPlotsColor + +\hypersetup{ + colorlinks=true, + urlcolor=xmblue, +} + +% +% Evalueer \ifhandout PER INSTANCE van de environment +% +\RenewEnviron{oplossing}[1][onzichtbaar]% +{% +\ifhandout% + \ifthenelse{\equal{\detokenize{#1}}{\detokenize{toon}}} + { + \def\PH@Command{#1}% Use PH@Command to hold the content and be a target for "\expandafter" to expand once. + + \begin{trivlist}% Begin the trivlist to use formating of the label. + \item[\hskip \labelsep\small\bfseries \nlen{Uitwerking}{Solution}: \hspace{2ex}]\small + \BODY + \end{trivlist} + } + { % \begin{feedback}[solution] \BODY \end{feedback} } + } +\else + { + \def\PH@Command{#1}% Use PH@Command to hold the content and be a target for "\expandafter" to expand once. + + \begin{trivlist}% Begin the trivlist to use formating of the "Feedback" label. + \item[\hskip \labelsep\small\bfseries \nlen{Uitwerking}{Solution}: \hspace{2ex}]\small + \BODY + \end{trivlist} + } +\fi +} + + +% +% localize newpages-between-activities based on \ifnonewpage +% +% +% make ifnonewpage local +% (resumes and overwrites what's in xourse.cls) +% +\makeatletter +\@ifclassloaded{xourse} % only in xourses !! (this could replace \isXourse ) +{ +\let\otherinput\input +\renewcommand{\activity}[2][]{% + \setkeys{activity}{#1}% + \renewcommand{\input}[1]{}% + \ifnonewpage% + \begingroup\skip@preamble\otherinput{#2}\endgroup\par\vspace{\topsep}% + \else% + \begingroup\skip@preamble\otherinput{#2}\endgroup\clearpage% + \fi% + \let\input\otherinput% +}% +\ifxake% +\renewcommand\activity[2][]{}% +\fi% +} +{} % not in xourse +\makeatother + + +% right align columns in matrices +% from https://tex.stackexchange.com/questions/119511/align-values-in-bmatrix +\makeatletter +\renewcommand*\env@matrix[1][r]{\hskip -\arraycolsep + \let\@ifnextchar\new@ifnextchar + \array{*\c@MaxMatrixCols #1}} +\makeatother + +\makeatletter +\newtheoremstyle{indented} +{3pt}% space before +{3pt}% space after +{\addtolength{\@totalleftmargin}{3.5em} + \addtolength{\linewidth}{-3.5em} + \parshape 1 3.5em \linewidth}% body font +{-3.5em}% indent +{\bfseries}% header font +{.}% punctuation +{.5em}% after theorem header +{}% header specification (empty for default) +\makeatother + +\theoremstyle{indented} + +\ifhints{ + \makeatletter + \let\hint\relax + \let\c@hintrelax + \let\endhint\relax + \makeatother + \newtheorem{hint}{\nlen{Hint}{Hint}} + \renewcommand{\thedefinition}{\theoremtitle{hint}}% titel instellen + \tcolorboxenvironment{hint}{ + boxrule=0pt, + boxsep=0pt, + colback={\colorexample!4!white}, + enhanced jigsaw, + % borderline west={2pt}{0pt}{\colordefinition!45!black}, + sharp corners, + before skip=1pt, + after skip=2pt, + breakable, + }% + % \begin{trivlist}\item[\hskip \labelsep\small\bfseries Hint:\hspace{2ex}] + % \small%\slshape + % \stepcounter{hintLevel} + % \BODY + % \end{trivlist} + % \addtocounter{hintLevel}{-1} +}\else +\newcounter{hint} % counter needed because it is reset .... ! +\iftikzexport % anders worden de tikz tekeningen in hints niet gegenereerd ? +\setbox0\vbox\bgroup +\stepcounter{hintLevel} +\BODY +\egroup\ignorespacesafterend +\addtocounter{hintLevel}{-1} +\fi % ifhandout +\fi %ifhints + +\renewcommand{\important}[1]{\ensuremath{\fcolorbox{kuaccent}{kuaccent!50!white}{$#1$}}} + +\renewcommand{\formulevb}[2]{ + + \begin{minipage}[c]{0.5\textwidth}\makebox[\textwidth][l]{\important{#1}} \end{minipage} + \begin{minipage}{\dimexpr(\textwidth-0.5\textwidth)\relax}\colorbox{blue!10}{$#2$} \end{minipage} + +} diff --git a/environments/problemEnvironments.tex b/environments/problemEnvironments.tex index 246f0ce..9c9c4a8 100644 --- a/environments/problemEnvironments.tex +++ b/environments/problemEnvironments.tex @@ -1,8 +1,6 @@ \documentclass{ximera} -\input{../preamble} - -\title{Problem environments} +\title{Problem environments \CurrentFile} \begin{document} \begin{abstract} @@ -12,59 +10,66 @@ The problem environments are \verb|problem|, \verb|exercise|, \verb|question|, and \verb|exploration|. -Online these act much like theorem-like environments. - -However in the PDF, the documentclass option \verb|newpage| will start -a new page at the end of each of these. Moreoever, nested problem -envionments will number as sub problems in the PDF. \begin{exercise} Type $2$: $\answer{2}$. \end{exercise} -\begin{exercise} - Type $2$: $\answer{2}$. - \begin{exercise} - Type $2$: $\answer{2}$. - \end{exercise} -\end{exercise} - - \begin{problem} Type $2$: $\answer{2}$. \end{problem} -\begin{problem} - Type $2$: $\answer{2}$. - \begin{problem} - Type $2$: $\answer{2}$. - \end{problem} -\end{problem} - - \begin{question} Type $2$: $\answer{2}$. \end{question} -\begin{question} - Type $2$: $\answer{2}$. - \begin{question} +\begin{exploration} Type $2$: $\answer{2}$. - \end{question} -\end{question} +\end{exploration} + +Online these act much like theorem-like environments. + +However in the PDF, the documentclass option \verb|newpage| will start +a new page at the end of each of these. Moreoever, nested problem +environments will number as sub problems in the PDF. +An example of an exercise with two nested exercises is: +\begin{exercise} + Type $1$: $\answer{1}$. + \begin{exercise} + Type $2$: $\answer{2}$. + \begin{exercise} + Type $3$: $\answer{3}$. + \end{exercise} + \end{exercise} + \begin{exercise} + Type $2$: $\answer{2}$. + \end{exercise} +\end{exercise} -\begin{exploration} - Type $2$: $\answer{2}$. -\end{exploration} +An example of an exercise with one \verb|answer| and two questions: -\begin{exploration} - Type $2$: $\answer{2}$. - \begin{exploration} - Type $2$: $\answer{2}$. - \end{exploration} -\end{exploration} +\begin{exercise} + Type $1$: $\answer{1}$. + \begin{question} + Type $2$: $\answer{2}$. + \end{question} + \begin{question} + Type $2$: $\answer{2}$. + \end{question} +\end{exercise} + +An example of an exercise with just two questions: + +\begin{exercise} + \begin{question} + Type $2$: $\answer{2}$. + \end{question} + \begin{question} + Type $2$: $\answer{2}$. + \end{question} +\end{exercise} \end{document} diff --git a/testXourses.TODO/problemTest.tex b/testXourses.TODO/problemTest.tex deleted file mode 100644 index ef3d744..0000000 --- a/testXourses.TODO/problemTest.tex +++ /dev/null @@ -1,12 +0,0 @@ -%\documentclass{xourse} - -\title{Master Problem Test Xourse} - - -\begin{document} -\maketitle - -\activity{testFiles/placeHolder} - - -\end{document} \ No newline at end of file diff --git a/testXourses/problemTest.tex b/testXourses/problemTest.tex new file mode 100644 index 0000000..9690948 --- /dev/null +++ b/testXourses/problemTest.tex @@ -0,0 +1,14 @@ +\documentclass{xourse} + +\title{Tests: problem environments} + + +\begin{document} +\maketitle + +\activity{../environments/problemEnvironments} + +\activity{../environments/KULeuven/problemEnvironments_KULeuven} + + +\end{document} \ No newline at end of file diff --git a/testXourses/problemTest_KULeuven.tex b/testXourses/problemTest_KULeuven.tex new file mode 100644 index 0000000..9162b16 --- /dev/null +++ b/testXourses/problemTest_KULeuven.tex @@ -0,0 +1,19 @@ +\documentclass{xourse} + +\input{../environments/KULeuven/xmPreamble} +\pdfOnly{ + \input{../environments/KULeuven/xmPrintstyle.sty} +} + +\title{Tests: problem environments (xourse with KULeuven style)} + + +\begin{document} +\maketitle + +\activity{../environments/problemEnvironments} + +\activity{../environments/KULeuven/problemEnvironments_KULeuven} + + +\end{document} \ No newline at end of file