summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/xsim/doc/xsim-manual.cls
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2021-02-01 03:00:47 +0000
committerNorbert Preining <norbert@preining.info>2021-02-01 03:00:47 +0000
commit87c74b3292e1c3efc4427ae0536a1d30a0dc8e4b (patch)
tree219447f0cb875a4889a8cac2bea6deb012b7ca7b /macros/latex/contrib/xsim/doc/xsim-manual.cls
parent8eab566745f1c61319c17e6a1aeea0f18bcfc34c (diff)
CTAN sync 202102010300
Diffstat (limited to 'macros/latex/contrib/xsim/doc/xsim-manual.cls')
-rw-r--r--macros/latex/contrib/xsim/doc/xsim-manual.cls1008
1 files changed, 0 insertions, 1008 deletions
diff --git a/macros/latex/contrib/xsim/doc/xsim-manual.cls b/macros/latex/contrib/xsim/doc/xsim-manual.cls
deleted file mode 100644
index c1d198ab04..0000000000
--- a/macros/latex/contrib/xsim/doc/xsim-manual.cls
+++ /dev/null
@@ -1,1008 +0,0 @@
-% ----------------------------------------------------------------------------
-% the XSIM package
-%
-% eXercise Sheets IMproved
-%
-% ----------------------------------------------------------------------------
-% Clemens Niederberger
-% Web: https://github.com/cgnieder/xsim
-% E-Mail: contact@mychemistry.eu
-% ----------------------------------------------------------------------------
-% Copyright 2017--2020 Clemens Niederberger
-%
-% This work may be distributed and/or modified under the
-% conditions of the LaTeX Project Public License, either version 1.3
-% of this license or (at your option) any later version.
-% The latest version of this license is in
-% http://www.latex-project.org/lppl.txt
-% and version 1.3 or later is part of all distributions of LaTeX
-% version 2005/12/01 or later.
-%
-% This work has the LPPL maintenance status `maintained'.
-%
-% The Current Maintainer of this work is Clemens Niederberger.
-% ----------------------------------------------------------------------------
-% If you have any ideas, questions, suggestions or bugs to report, please
-% feel free to contact me.
-% ----------------------------------------------------------------------------
-%
-% please ignore the contents of this file -- it is not a good example for
-% coding...
-%
-\ProvidesClass{xsim-manual}[2020/04/04]
-
-\LoadClass[load-preamble,add-index]{cnltx-doc}
-\RequirePackage{imakeidx}
-\RequirePackage[utf8]{inputenc}
-\RequirePackage{xsim,xsimverb}
-
-\RequirePackage{geometry}
-\geometry{
- left = 3.5cm ,
- right = 3cm ,
- marginparwidth = 3cm ,
- marginparsep = 2mm
-}
-
-\setcnltx{
- package = {xsim},
- info =
- \textsc{e\textcolor{cnltx}{X}ercise \textcolor{cnltx}{S}heets
- \textcolor{cnltx}{IM}proved} \\
- the official successor of the \cnltxpackagenameformat{exsheets} package ,
- url = https://github.com/cgnieder/xsim ,
- authors = Clemens Niederberger ,
- email = contact@mychemistry.eu ,
- quote-format = \small\biolinumLF ,
- add-cmds = {
- blank ,
- addbonus ,
- addpoints ,
- AddtoExerciseGoal ,
- AddtoExerciseGoalPrint ,
- AddtoExerciseTypeGoal ,
- AddtoExerciseTypeGoalPrint ,
- blank ,
- collectexercises ,
- collectexercisestype ,
- collectexercisesstop ,
- DeclareExerciseCollection ,
- DeclareExerciseEnvironmentTemplate ,
- DeclareExerciseGoal ,
- DeclareExerciseHeadingTemplate ,
- DeclareExerciseProperty ,
- DeclareExercisePropertyAlias ,
- DeclareExerciseTableTemplate ,
- DeclareExerciseTagging ,
- DeclareExerciseTranslation ,
- DeclareExerciseTranslations ,
- DeclareExerciseType ,
- DeclareGradeDistribution ,
- ExerciseCollection ,
- ExerciseGoalValuePrint ,
- ExerciseID ,
- ExerciseParameterGet ,
- ExerciseParameterIfSetF ,
- ExerciseParameterIfSetT ,
- ExerciseParameterIfSetTF ,
- ExercisePropertyGet ,
- ExercisePropertyGetAlias ,
- ExercisePropertyGlobalSave ,
- ExercisePropertyIfSetF ,
- ExercisePropertyIfSetT ,
- ExercisePropertyIfSetTF ,
- ExercisePropertySave ,
- ExerciseSetExpandedProperty ,
- ExerciseSetProperty ,
- ExerciseTableType ,
- ExerciseTableCode ,
- ExerciseType ,
- ForeachExerciseTag ,
- ForEachExerciseTranslation ,
- ForEachPrintedExerciseByType ,
- ForEachPrintedExerciseByID ,
- ForEachUsedExerciseByType ,
- ForEachUsedExerciseByID ,
- GetExerciseAliasProperty ,
- GetExerciseHeadingF ,
- GetExerciseIdForProperty ,
- GetExerciseName ,
- GetExerciseParameter ,
- GetExerciseProperty ,
- GetExercisePropertyF ,
- GetExercisePropertyT ,
- GetExercisePropertyTF ,
- GlobalSaveExerciseProperty ,
- gradingtable ,
- IfExerciseBooleanPropertyF ,
- IfExerciseBooleanPropertyT ,
- IfExerciseBooleanPropertyTF ,
- IfExerciseGoalF ,
- IfExerciseGoalF ,
- IfExerciseGoalTF ,
- IfExerciseGoalSingularF ,
- IfExerciseGoalSingularT ,
- IfExerciseGoalSingularTF ,
- IfExerciseGoalsSumF ,
- IfExerciseGoalsSumT ,
- IfExerciseGoalsSumTF ,
- IfExercisePropertyExistF ,
- IfExercisePropertyExistT ,
- IfExercisePropertyExistTF ,
- IfExercisePropertySetF ,
- IfExercisePropertySetT ,
- IfExercisePropertySetTF ,
- IfExerciseTypeGoalsSumF ,
- IfExerciseTypeGoalsSumT ,
- IfExerciseTypeGoalsSumTF ,
- IfExerciseTagSetF ,
- IfExerciseTagSetT ,
- IfExerciseTagSetTF ,
- IfExerciseTopicSetF ,
- IfExerciseTopicSetT ,
- IfExerciseTopicSetTF ,
- IfInsideSolutionF ,
- IfInsideSolutionT ,
- IfInsideSolutionTF ,
- loadxsimstyle ,
- numberofexercises ,
- numberofusedexercises ,
- points ,
- printallsolutions ,
- printcollection ,
- printexercise ,
- printgoal ,
- printpoints ,
- printrandomexercises ,
- printsolution ,
- printsolutions ,
- printsolutionstype ,
- PropertyValue ,
- ProvideExerciseTagging ,
- SaveExerciseProperty ,
- SetExerciseParameter ,
- SetExerciseParameters ,
- SetExerciseProperty ,
- SetExpandedExerciseProperty ,
- theexercise ,
- TotalExerciseGoal ,
- TotalExerciseGoals ,
- TotalExerciseTypeGoal ,
- TotalExerciseTypeGoals ,
- UseExerciseTags ,
- UseExerciseTagsX ,
- UseExerciseTemplate ,
- xprintexercise ,
- xprintsolution ,
- XSIMatbegindocument ,
- XSIMatenddocument ,
- XSIMexpandcode ,
- XSIMsetfilebegin ,
- XSIMfilewritestart ,
- XSIMfilewritestop ,
- XSIMgobblechars ,
- XSIMsetfileend ,
- XSIMifblankT ,
- XSIMifblankF ,
- XSIMifblankTF ,
- XSIMifchapterF ,
- XSIMifchapterT ,
- XSIMifchapterTF ,
- XSIMifeqF ,
- XSIMifeqT ,
- XSIMifeqTF ,
- XSIMmixedcase ,
- xsimprint ,
- XSIMputright ,
- xsimsetup ,
- xsimstyle ,
- XSIMtranslate ,
- xsimxprint
- } ,
- add-envs = { exercise , solution } ,
- add-silent-cmds = {
- @percentchar ,
- bottomrule ,
- breite ,
- choice ,
- cs ,
- DeclareFloatingEnvironment ,
- enddescription ,
- endtcolorbox ,
- hint ,
- hoehe ,
- iflist ,
- IfNoValueTF ,
- ifnumless ,
- lipsum ,
- lstdefinestyle ,
- lstset ,
- midrule ,
- Needspace ,
- NewDocumentCommand ,
- NewDocumentEnvironment ,
- newlist ,
- numberofcolumns ,
- numberofproblems ,
- pkg ,
- pointsandbonus ,
- printA, printC, printE ,
- printhints ,
- printcompletepoints ,
- printsumofpointsandbonus ,
- setlist ,
- settasks ,
- tcbuselibrary ,
- tcolorbox ,
- thechapter ,
- thesection ,
- toprule ,
- whileboolexpr ,
- xsim
- } ,
- pre-output = { \let\marginpar\marginnote } ,
- add-listings-options = {
- numberstyle = \tiny\noncopy
- } ,
- index-setup = { level = \section } ,
- makeindex-setup = { columns = 2 , columnsep = 1em } ,
- module-sep = {\texttt{/}}%
-}
-
-\renewcommand*\versionnoteformat{\tiny\sffamily\RaggedRight}
-\RequirePackage[en-US]{datetime2}
-\DTMlangsetup[en-US]{abbr}
-\newrobustcmd*\xsim@add@version[2]{\csdef{xsimversion#1}{\DTMdate{#2}}}
-\renewrobustcmd*\sinceversion[1]{%
- \cnltx@version@note{\GetTranslation{cnltx-introduced} #1 (\csuse{xsimversion#1})}%
-}
-\renewrobustcmd*\changedversion[1]{%
- \cnltx@version@note{\GetTranslation{cnltx-changed} #1 (\csuse{xsimversion#1})}%
-}
-
-\newnote*\sincechanged[2]{%
- \GetTranslation{cnltx-introduced} #1,
- changed with version #2 (\csuse{xsimversion#2})}
-
-\RequirePackage{xsimverb}
-\ExplSyntaxOn
-\tl_replace_all:Nnn \c_xsimverb_date_tl {/} {-}
-\ExplSyntaxOff
-
-\newnote*\xsimverbversion{%
- \pkg{xsimverb} version~\csname c_xsimverb_version_tl\endcsname\
- (\expandafter\expandafter\expandafter\DTMdate
- \expandafter\expandafter\expandafter{\csname c_xsimverb_date_tl\endcsname})%
-}
-
-\renewcommand*\versionnoteformat{\scriptsize\sffamily\RaggedRight}
-
-\renewcommand*\cnltx@module@text[2]{%
- \begingroup
- \reversemarginpar
- \setlength\marginparsep{1em}%
- \marginnote{\hfill\llap{\module#1{#2}\cnltx@module@sep}}%
- \endgroup
-}
-
-\RequirePackage{accsupp}
-\newcommand*\noncopy[1]{%
- \BeginAccSupp{method=escape,ActualText={}}%
- #1%
- \EndAccSupp{}%
-}
-
-\def\libertine@figurestyle{LF}
-\RequirePackage{amsmath}
-\undef\lvert \undef\lVert
-\undef\rvert \undef\rVert
-\RequirePackage[libertine]{newtxmath}
-\def\libertine@figurestyle{OsF}
-
-\RequirePackage{refcount}
-
-\renewcommand*\footref[1]{%
- \begingroup
- \unrestored@protected@xdef\@thefnmark{\getrefnumber{#1}}%
- \endgroup
- \@footnotemark
-}
-
-\newcommand*\eTeX{%
- \texorpdfstring
- {\mbox{$\epsilon$-\TeX}}
- {e-TeX}%
-}
-
-\RequirePackage[
- backend=biber,
- style=cnltx,
- sortlocale=en_US,
- indexing=cite]{biblatex}
-\RequirePackage{csquotes}
-\addbibresource{cnltx.bib}
-
-\RequirePackage[biblatex]{embrac}
-\ChangeEmph{[}[,.02em]{]}[.055em,-.08em]
-\ChangeEmph{(}[-.01em,.04em]{)}[.04em,-.05em]
-
-\defbibheading{bibliography}{\section{References}}
-
-\colorlet{property}{orange}
-\newidxcmd\property{\code{\textcolor{property}{#1}}}[ (property)]
-\newrobustcmd*\prop{\@ifstar{\cnltx@prop@star}{\cnltx@prop@nostar}}
-
-\RequirePackage{marginnote}
-
-\renewcommand*\module@idx@app{ (option class)}
-
-\newrobustcmd*\cnltx@prop@star{%
- \cnltx@ifdash
- {\cnltx@prop@aux*\meta}
- {\cnltx@prop@aux*\marg}%
-}
-\newrobustcmd*\cnltx@prop@nostar{%
- \cnltx@ifdash
- {\cnltx@prop@aux{}\meta}
- {\cnltx@prop@aux{}\marg}%
-}
-\newcommand*\cnltx@prop@aux[4]{%
- \code{\property#1{#3}\cnltx@isvalue#2{#4}}%
-}
-
-\newrobustcmd*\propis{%
- \@ifstar
- {\cnltx@propis*}
- {\cnltx@propis{}}%
-}
-\newrobustcmd*\cnltx@propis[1]{%
- \cnltx@ifdash
- {\cnltx@prop@aux{#1}\@firstofone}
- {\cnltx@prop@aux{#1}\Marg}%
-}
-\newrobustcmd*\choiceprop{%
- \@ifstar
- {\cnltx@choiceprop@star}
- {\cnltx@choiceprop@nostar}%
-}
-\def\cnltx@choiceprop@star#1#2{%
- \code{\property*{#1}\cnltx@isvalue\choices{#2}}}
-\def\cnltx@choiceprop@nostar#1#2{%
- \code{\property{#1}\cnltx@isvalue\choices{#2}}}
-\newcommand*\boolprop{%
- \@ifstar
- {\cnltx@boolprop@star}
- {\cnltx@boolprop@nostar}%
-}
-\def\cnltx@boolprop@star#1{\choiceprop*{#1}{\default{true},false}}
-\def\cnltx@boolprop@nostar#1{\choiceprop{#1}{\default{true},false}}
-
-\newenvironment{properties}
- {%
- \def\propert{\@cnltx@option@item\property}%
- \def\propval{\@cnltx@option@item\prop}%
- \def\proplit{\@cnltx@option@item\propis}%
- \def\propchoice{\@cnltx@option@item\choiceprop}%
- \def\propbool{\@cnltx@option@item\boolprop}%
- \cnltxlist
- }
- {\endcnltxlist}
-
-\colorlet{parameter}{blue}
-\newidxcmd\parameter{\code{\textcolor{parameter}{#1}}}[ (parameter)]
-\newrobustcmd*\para{\@ifstar{\cnltx@para@star}{\cnltx@para@nostar}}
-
-\newrobustcmd*\cnltx@para@star{%
- \cnltx@ifdash
- {\cnltx@para@aux*\meta}
- {\cnltx@para@aux*\marg}%
-}
-\newrobustcmd*\cnltx@para@nostar{%
- \cnltx@ifdash
- {\cnltx@para@aux{}\meta}
- {\cnltx@para@aux{}\marg}%
-}
-\newcommand*\cnltx@para@aux[4]{%
- \code{\parameter#1{#3}\cnltx@isvalue#2{#4}}%
-}
-
-\newrobustcmd*\parais{%
- \@ifstar
- {\cnltx@parais*}
- {\cnltx@parais{}}%
-}
-\newrobustcmd*\cnltx@parais[1]{%
- \cnltx@ifdash
- {\cnltx@para@aux{#1}\@firstofone}
- {\cnltx@para@aux{#1}\Marg}%
-}
-\newrobustcmd*\choicepara{%
- \@ifstar
- {\cnltx@choicepara@star}
- {\cnltx@choicepara@nostar}%
-}
-\def\cnltx@choicepara@star#1#2{%
- \code{\parameter*{#1}\cnltx@isvalue\choices{#2}}}
-\def\cnltx@choicepara@nostar#1#2{%
- \code{\parameter{#1}\cnltx@isvalue\choices{#2}}}
-\newcommand*\boolpara{%
- \@ifstar
- {\cnltx@boolpara@star}
- {\cnltx@boolpara@nostar}%
-}
-\def\cnltx@boolpara@star#1{\choicepara*{#1}{\default{true},false}}
-\def\cnltx@boolpara@nostar#1{\choicepara{#1}{\default{true},false}}
-
-\newenvironment{parameters}
- {%
- \def\param{\@cnltx@option@item\parameter}%
- \def\paraval{\@cnltx@option@item\para}%
- \def\paralit{\@cnltx@option@item\parais}%
- \def\parachoice{\@cnltx@option@item\choicepara}%
- \def\parabool{\@cnltx@option@item\boolpara}%
- \cnltxlist
- }
- {\endcnltxlist}
-
-\RequirePackage{acro}
-
-\DeclareAcronym{prop}{
- short = property ,
- long = \emph{Properties} are options of exercises which are individual for
- each exercise and can be retrieved and used in exercise templates. ,
- short-plural-form = properties
-}
-
-\DeclareAcronym{para}{
- short = parameter ,
- long = \emph{Parameters} are options of exercise types which are the same
- for each exercise of a type and can be retrieved and used in exercise
- templates.
-}
-
-\DeclareAcronym{goal}{
- short = goal ,
- long = \emph{Goals} are a certain type of \acsp*{prop} with a numerical
- value the sum of which is available throughout the document.
-}
-
-\DeclareAcronym{tag}{
- short = tag ,
- long = \emph{Tags} are a certain type of \acsp*{prop} with a csv list as
- value which can be used for selective usage of exercises.
-}
-
-\DeclareAcronym{coll}{
- short = collection ,
- long = A \emph{collection} bundles a number of exercises of one type or all
- types of exercises within certain barriers in the document. Those
- exercise collections can be printed at any place in the document.
-}
-
-\DeclareAcronym{tmpl}{
- short = template ,
- long = {\emph{Templates} are generic code frameworks which are used for
- typesetting \xsim's objects such as exercises, solutions, or grading
- tables.}
-}
-
-\providecommand*\environ{\@ifstar\environ@star\environ@nostar}
-\providecommand*\environ@star[1]{\beginenv*\Marg{\env*{#1}}}
-\providecommand*\environ@nostar[1]{\beginenv*\Marg{\env{#1}}}
-
-\RequirePackage{tcolorbox}
-\tcbuselibrary{skins,breakable}
-\tcbset{enhanced,enhanced jigsaw}
-
-\newtcolorbox{bewareofthedog}{
- colback = red!2!white!98 ,
- colframe = red ,
- underlay={%
- \path[draw=none]
- (interior.south west)
- rectangle node[red]{\Huge\bfseries !}
- ([xshift=-4mm]interior.north west);
- }%
-}
-
-\newtcolorbox{cnltxcode}[1][]{
- boxrule = 1pt ,
- colback = cnltxbg ,
- colframe = cnltx ,
- arc = 5pt ,
- beforeafter skip = .5\baselineskip ,%
- #1%
-}
-
-\newcommand*\xsimman@readoptions[1]{%
- \catcode`\^^M=13
- \xsimman@read@options{#1}%
-}
-
-\begingroup
-\catcode`\^^M=13
-\gdef\xsimman@read@options#1#2^^M{%
- \ifblank{#2}{}{\xsimman@read@options@#2}%
- #1%
- \XSIMfilewritestart*{\jobname.tmp}%
-}%
-\endgroup
-
-\def\xsimman@read@options@[#1]{\pgfqkeys{/cnltx}{#1}}
-
-\RenewDocumentEnvironment{sourcecode}{}
- {%
- \xsimman@readoptions{%
- \setlength\cnltx@sidebysidewidth
- {\dimexpr .45\columnwidth -\lst@xleftmargin -\lst@xrightmargin\relax}%
- \XSIMexpandcode{%
- \noexpand\lstset{
- style=cnltx,
- \ifboolexpe{ bool {cnltx@sidebyside} and not bool {cnltx@codeonly} }
- {linewidth=\cnltx@sidebysidewidth,}{}%
- \expandonce\cnltx@local@listings@options
- }%
- }%
- \XSIMgobblechars{2}%
- }%
- }
- {%
- \XSIMfilewritestop
- \cnltxcode[breakable]%
- \lstinputlisting[style=cnltx]{\jobname.tmp}%
- \endcnltxcode
- }
-
-\RenewDocumentEnvironment{example}{}
- {%
- \xsimman@readoptions{%
- \setlength\cnltx@sidebysidewidth
- {\dimexpr .45\columnwidth -\lst@xleftmargin -\lst@xrightmargin\relax}%
- \XSIMexpandcode{%
- \noexpand\lstset{
- style=cnltx,
- \ifboolexpe{ bool {cnltx@sidebyside} and not bool {cnltx@codeonly} }
- {linewidth=\cnltx@sidebysidewidth,}{}%
- \expandonce\cnltx@local@listings@options
- }%
- }%
- \XSIMgobblechars{2}%
- }%
- }
- {%
- \XSIMfilewritestop
- \catcode`\^^M=5
- \ifbool{cnltx@sidebyside}
- {%
- \cnltxcode
- \noindent
- \minipage[c]{\cnltx@sidebysidewidth}%
- \cnltx@pre@source@hook
- \lstinputlisting[style=cnltx] {\jobname.tmp}%
- \cnltx@after@source@hook
- \endminipage\hfill
- \minipage[c]{\cnltx@sidebysidewidth}%
- \cnltx@pre@example@hook
- \input {\jobname.tmp}%
- \cnltx@after@example@hook
- \endminipage
- }
- {%
- \cnltxcode[breakable]%
- \cnltx@pre@source@hook
- \lstinputlisting{\jobname.tmp}%
- \cnltx@after@source@hook
- \tcblower
- \cnltx@pre@example@hook
- \input {\jobname.tmp}%
- \cnltx@after@example@hook
- }%
- \endcnltxcode
- }
-
-\RenewDocumentEnvironment{sourcecode}{}
- {%
- \xsimman@readoptions{%
- \setlength\cnltx@sidebysidewidth
- {\dimexpr .45\columnwidth -\lst@xleftmargin -\lst@xrightmargin\relax}%
- \XSIMexpandcode{%
- \noexpand\lstset{
- style=cnltx,
- \ifboolexpe{ bool {cnltx@sidebyside} and not bool {cnltx@codeonly} }
- {linewidth=\cnltx@sidebysidewidth,}{}%
- \expandonce\cnltx@local@listings@options
- }%
- }%
- \XSIMgobblechars{2}%
- }%
- }
- {%
- \XSIMfilewritestop
- \cnltxcode[breakable]%
- \lstinputlisting[style=cnltx]{\jobname.tmp}%
- \endcnltxcode
- }
-
-\RenewDocumentEnvironment{example}{}
- {%
- \xsimman@readoptions{%
- \setlength\cnltx@sidebysidewidth
- {\dimexpr .45\columnwidth -\lst@xleftmargin -\lst@xrightmargin\relax}%
- \XSIMexpandcode{%
- \noexpand\lstset{
- style=cnltx,
- \ifboolexpe{ bool {cnltx@sidebyside} and not bool {cnltx@codeonly} }
- {linewidth=\cnltx@sidebysidewidth,}{}%
- \expandonce\cnltx@local@listings@options
- }%
- }%
- \XSIMgobblechars{2}%
- }%
- }
- {%
- \XSIMfilewritestop
- \catcode`\^^M=5
- \ifbool{cnltx@sidebyside}
- {%
- \cnltxcode
- \noindent
- \minipage[c]{\cnltx@sidebysidewidth}%
- \cnltx@pre@source@hook
- \lstinputlisting[style=cnltx] {\jobname.tmp}%
- \cnltx@after@source@hook
- \endminipage\hfill
- \minipage[c]{\cnltx@sidebysidewidth}%
- \cnltx@pre@example@hook
- \input {\jobname.tmp}%
- \cnltx@after@example@hook
- \endminipage
- }
- {%
- \cnltxcode[breakable]%
- \cnltx@pre@source@hook
- \lstinputlisting{\jobname.tmp}%
- \cnltx@after@source@hook
- \tcblower
- \cnltx@pre@example@hook
- \input {\jobname.tmp}%
- \cnltx@after@example@hook
- }%
- \endcnltxcode
- }
-
-\renewrobustcmd*\inputsourcecode[2][]{%
- \begingroup
- \pgfqkeys{/cnltx}{#1}%
- \XSIMexpandcode{%
- \noexpand\lstset{
- style=cnltx,%
- \expandonce\cnltx@local@listings@options
- }%
- }%
- \cnltxcode[breakable]%
- \lstinputlisting{#2}%
- \endcnltxcode
- \endgroup
-}
-
-\RequirePackage{longtable,booktabs}
-
-\RequirePackage{lipsum}
-\RequirePackage{varioref}
-\RequirePackage{bookmark}
-
-\xsimsetup{
- % clear-aux ,
- path = exercises
-}
-
-\DeclareExerciseCollection{foo}
-\DeclareExerciseCollection{layouts}
-
-\newrobustcmd*\TF{%
- \colorlet{outside}{.}%
- \textcolor{red}{\underline{\textcolor{outside}{TF}}}%
-}
-
-\newcommand*\narg{\textcolor{argument}{\code{-}}}
-\newcommand*\barg{\textcolor{argument}{\code{\bang}}}
-
-\newrobustcmd\bang{!}
-
-\renewrobustcmd*\code[1]{\begingroup\codefont\let\^\textasciicircum#1\endgroup}
-
-% ----------------------------------------------------------------------------
-\loadxsimstyle{layouts}
-
-\DeclareExerciseEnvironmentTemplate{tcolorbox}
- {%
- \tcolorbox[
- colback = red!5!white ,
- colframe = red!75!black ,
- colbacktitle = yellow!50!red ,
- coltitle = red!25!black ,
- subtitle style = {
- boxrule = 0.4pt ,
- colback = yellow!50!red!25!white
- } ,
- breakable ,
- drop shadow ,
- beforeafter skip = .5\baselineskip ,
- title =
- \textbf{\GetExerciseName~\GetExerciseProperty{counter}}%
- \GetExercisePropertyT{subtitle}
- { \textit{\PropertyValue}}%
- \IfInsideSolutionF{%
- \GetExercisePropertyT{points}
- { % notice the space
- (\printgoal{\PropertyValue}
- \IfExerciseGoalSingularTF{points}
- {\XSIMtranslate{point}}
- {\XSIMtranslate{points}})%
- }%
- }%
- ]%
- }
- {\endtcolorbox}
-
-\DeclareExerciseProperty*{bonus}
-\DeclareExerciseEnvironmentTemplate{bonus}
- {%
- \subsection*
- {%
- \IfExerciseBooleanPropertyT{bonus}{\llap{$\bigstar$ }Bonus }%
- \XSIMmixedcase{\GetExerciseName}\nobreakspace
- \GetExerciseProperty{counter}%
- \IfInsideSolutionF
- {%
- \IfExercisePropertySetT{subtitle}
- { {\normalfont\itshape\GetExerciseProperty{subtitle}}}%
- }%
- }
- \GetExercisePropertyT{points}
- {%
- \marginpar
- {%
- \IfInsideSolutionF{\rule{1.2cm}{1pt}\slash}%
- \PropertyValue
- \GetExercisePropertyT{bonus-points}
- {\nobreakspace(+\PropertyValue)}%
- \nobreakspace\XSIMtranslate{point-abbr}%
- }%
- }%
- }
- {}
-
-% ----------------------------------------------------------------------------
-
-\DeclareExerciseType{problem}{
- exercise-env = problem ,
- solution-env = answer ,
- exercise-name = Problem ,
- solution-name = Answer ,
- exercise-template = tcolorbox ,
- solution-template = tcolorbox
-}
-
-\RequirePackage{hyperref,bookmark}
-
-% ----------------------------------------------------------------------------
-
-\ExplSyntaxOn
-\cs_set:Npn \__xsim_get_texsx_number:w texsx- #1 \q_stop: {#1}
-\cs_set:Npn \__xsim_get_texwelt_number:w texwelt- #1 \q_stop: {#1}
-\cs_set:Npn \__xsim_get_golatex_number:w golatex- #1 \q_stop: {#1}
-
-\cs_new_protected:Npn \xsim@example@links #1 {
- \href { \xsim@example@texfile@path {#1} } { \color{white} [\TeX] } ~
- \href { \xsim@example@pdffile@path.#1.pdf } { \color{white} [PDF] }
- \tl_if_in:nnT {#1} {texsx}
- {
- \tl_set:Nx \l_tmpa_tl { \__xsim_get_texsx_number:w #1 \q_stop: }
- \space \href
- { https \c_colon_str //tex.stackexchange.com/q/ \l_tmpa_tl / }
- { \color {white} [forum] }
- }
- \tl_if_in:nnT {#1} {texwelt}
- {
- \tl_set:Nx \l_tmpa_tl { \__xsim_get_texwelt_number:w #1 \q_stop: }
- \space \href
- { http \c_colon_str //texwelt.de/wissen/fragen/ \l_tmpa_tl / }
- { \color {white} [forum] }
- }
- \tl_if_in:nnT {#1} {golatex}
- {
- \tl_set:Nx \l_tmpa_tl { \__xsim_get_golatex_number:w #1 \q_stop: }
- \space \href
- { http \c_colon_str //golatex.de/viewtopic,p, \l_tmpa_tl .html }
- { \color {white} [forum] }
- }
- \tl_if_in:nnT {#1} {issues}
- {
- \tl_set:Nn \l_tmpa_tl {#1}
- \tl_replace_once:Nnn \l_tmpa_tl {-} {/}
- \space \href
- { https \c_colon_str //github.com/cgnieder/ \l_tmpa_tl }
- { \color {white} [github] }
- }
-}
-\ExplSyntaxOff
-
-\newcounter{examplefile}
-\newcounter{examplefiles}
-\newcommand*\xsim@add@example[2]{%
- \listadd\xsim@examplefiles{#1}%
- \csdef{xsim@example@texfile@desc@#1}{#2}%
- \stepcounter{examplefiles}%
-}
-\newcommand*\listexamplefiles{%
- \def\xsim@example@texfile@path##1{./examples/xsim.##1.tex}%
- \def\xsim@example@pdffile@path{./examples/xsim}%
- \def\xsim@example@desc##1{\csuse{xsim@example@texfile@desc@##1}}%
- \def\xsim@example@title##1{%
- Example~\theexamplefile: \xsim@example@desc{##1}
- \\Links: \xsim@example@links{##1}\hfill File: \code{xsim.##1.tex}%
- }%
- \def\xsim@example@bookmark##1{Example~\theexamplefile\ (\xsim@example@desc{##1})}%
- \def\do##1{%
- \begin{cnltxcode}[
- step and label={examplefile}{example:##1} ,
- sidebyside align=top seam,sidebyside,
- righthand width=.3\linewidth,
- sidebyside gap=1em,
- lower separated=false,
- bottom=1mm,
- title=\xsim@example@title{##1}%
- ]
- \bookmark[level=2,dest=examplefile.\arabic{examplefile}]{\xsim@example@bookmark{##1}}%
- \lstinputlisting[
- style=cnltx,firstline=7,lastline=15,firstnumber=7]{\xsim@example@texfile@path{##1}}%
- \tcblower
- \fbox{%
- \href
- {\xsim@example@pdffile@path.##1.pdf}
- {%
- \includegraphics[
- type=pdf,
- ext=.##1.pdf,
- read=.##1.pdf,
- pagebox=cropbox,
- viewport=4.5cm 18.6cm 8.7cm 23cm,
- clip]{\xsim@example@pdffile@path}%
- }%
- }%
- \end{cnltxcode}
- }%
- \dolistloop\xsim@examplefiles
-}
-
-% ----------------------------------------------------------------------------
-
-\newcommand*\listlayouts{%
- \def\do##1{%
- \begin{cnltxcode}[{title=Layout \enquote{\texttt{##1}}\csuse{xsim@layout@description@##1}}]
- \ifcsdef{xsim@layout@extra@##1}
- {\csuse{xsim@layout@extra@##1}}
- {}%
- \xsimsetup{exercise/template={##1}}
- \let\marginpar\marginnote
- \printexercise{exercise}{showlayout}%
- \end{cnltxcode}
- }%
- \dolistloop\xsim@layouts
-}
-
-\NewDocumentCommand\xsim@add@layout{moo}{%
- \listadd\xsim@layouts{#1}%
- \IfNoValueF{#2}{\csdef{xsim@layout@extra@#1}{#2}}%
- \IfNoValueTF{#3}
- {\csdef{xsim@layout@description@#1}{}}
- {\csdef{xsim@layout@description@#1}{ \footnotesize(#3)}}%
-}
-
-% ----------------------------------------------------------------------------
-% examples:
-
-\xsim@add@example{blanks}{Create blank lines}
-\xsim@add@example{boxed-headings}{Put headings in a box}
-\xsim@add@example{code-and-output}{Create code examples}
-\xsim@add@example{collections}{How to use collections}
-\xsim@add@example{crossref}{Crossreferencing between problems and answers}
-\xsim@add@example{description-list}{Exercises as a \code{description} list}
-\xsim@add@example{different-point-types}{A custom point scheme}
-\xsim@add@example{difficulties}{Difficulty levels}
-\xsim@add@example{floating}{Floating exercises and a list of exercises}
-\xsim@add@example{grade-distribution}{Using the grade distribution macros}
-\xsim@add@example{hints}{Give hints}
-\xsim@add@example{listings}{Use listings in exercises}
-\xsim@add@example{listofexercises}{A custom list of exercises}
-\xsim@add@example{multiplechoice}{Multiplechoice exercises}
-\xsim@add@example{pointsums}{Sum of points}
-\xsim@add@example{randomexercises}{Random exercises from a collection}
-\xsim@add@example{various}{Various aspects of \xsim}
-\xsim@add@example{texsx-13635}{Exercises like theorems}
-\xsim@add@example{texsx-155630}{Random/custom order of exercises}
-\xsim@add@example{texsx-199360}{Exercises and solutions in a \pkg*{tcolorbox}}
-\xsim@add@example{texsx-299534}{Using \pkg*{pythontex}}
-\xsim@add@example{texsx-305110}{Print solutions per chapter/section}
-\xsim@add@example{texsx-308883}{Adapt how points are printed}
-\xsim@add@example{texsx-338165}{Another \pkg*{tcolorbox} example}
-\xsim@add@example{texsx-350028}{Fancy \pkg*{tcolorbox} and crossreferencing}
-\xsim@add@example{texsx-369065}{Custom layout}
-\xsim@add@example{texsx-369636}{An empty box for points}
-\xsim@add@example{texsx-369803}{Layout adjustments}
-\xsim@add@example{texsx-370642}{Minimalistic layout}
-\xsim@add@example{texsx-391530}{Exercises and sub-exercises}
-\xsim@add@example{texsx-395273}{Different aspects of exercises, highlighted solutions}
-\xsim@add@example{texsx-498299}{Multiple choice questions with automated solutions}
-\xsim@add@example{texwelt-6698}{Custom list of exercises}
-\xsim@add@example{texwelt-15093}{Indicate difficulty level}
-\xsim@add@example{texwelt-23968}{Long and short solutions}
-\xsim@add@example{golatex-80640}{Different versions for students and teachers}
-\xsim@add@example{golatex-91339}{Another custom layout with rules}
-\xsim@add@example{issues-49}{Different ideas for exams}
-
-% ----------------------------------------------------------------------------
-% layouts:
-
-\xsim@add@layout{default}
-\xsim@add@layout{runin}[\renewcommand*\theexercise{\arabic{exercise}.}]
-\xsim@add@layout{margin}[\renewcommand*\theexercise{\arabic{exercise}.}]
-\xsim@add@layout{inline}[\renewcommand*\theexercise{\arabic{exercise}.}]
-\xsim@add@layout{minimal}[\renewcommand*\theexercise{\arabic{exercise}.}][Like
-\enquote{\texttt{inline}} but as own paragraph.]
-\xsim@add@layout{centered}[\renewcommand*\theexercise{\arabic{exercise}.}]
-
-% ----------------------------------------------------------------------------
-% versions:
-
-\xsim@add@version{0.0} {2017-02-09}
-\xsim@add@version{0.1} {2017-03-19}
-\xsim@add@version{0.2} {2017-03-21}
-\xsim@add@version{0.4} {2017-03-24}
-\xsim@add@version{0.5} {2017-03-30}
-\xsim@add@version{0.5a} {2017-04-15}
-\xsim@add@version{0.5b} {2017-04-16}
-\xsim@add@version{0.6} {2017-04-27}
-\xsim@add@version{0.6a} {2017-04-28}
-\xsim@add@version{0.7} {2017-05-09}
-\xsim@add@version{0.8} {2017-05-18}
-\xsim@add@version{0.8a} {2017-05-19}
-\xsim@add@version{0.8b} {2017-05-23}
-\xsim@add@version{0.9} {2017-06-20}
-\xsim@add@version{0.10} {2017-09-19}
-\xsim@add@version{0.10a} {2017-10-04}
-\xsim@add@version{0.11} {2018-02-12}
-\xsim@add@version{0.12} {2019-09-26}
-\xsim@add@version{0.13} {2019-10-06}
-\xsim@add@version{0.14} {2019-10-13}
-\xsim@add@version{0.14a} {2019-10-19}
-\xsim@add@version{0.15} {2019-11-02}
-\xsim@add@version{0.16} {2019-11-10}
-\xsim@add@version{0.16a} {2020-01-16}
-\xsim@add@version{0.17} {2020-02-21}
-\xsim@add@version{0.18} {2020-02-23}
-\xsim@add@version{0.19} {2020-03-16}
-\xsim@add@version{0.19a} {2020-03-19}
-\xsim@add@version{0.19b} {2020-04-04}
-
-% ----------------------------------------------------------------------------
-\newrobustcmd*\xsimauxfileinfo{%
- \xsim\ writes a lot of stuff to an auxiliary file called
- \cs*{jobname}\code{.xsim} (or the common \cs*{jobname}\code{.aux} if you use
- option \option{use-aux}) for re-using information on subsequent
- compilations. If you add exercises, change properties \etc\ it might happen
- that wrong information is staying in the auxiliary file and is wrongly used
- by \xsim. In such cases deleting the auxiliary file and doing a few fresh
- compilations may resolve your problems.
-
- Sometimes the \emph{existence of exercise or solution files from earlier
- compilations} may lead to wrong lists of exercises or solutions. In such
- cases it can be useful to delete all those files and doing a fresh
- compilation. It may be helpful to use a subfolder for those exernal files
- which will make deleting them a little bit easier. (Don't forget to both
- create the subfolder and set \option{path} accordingly then.)
-
- Using the \option{clear-aux} option might help to reduce erroneous exercises.%
-}
-\endinput