Check out the bleeding edge version in the releases section. Any testing help is appreciated!
The latest release is stored in this zip: exercisebank.zip You can download the latest documentation here: release/exercisebank.pdf. This is the documentation for version 0.3.0, and might not be the same as for the one on CTAN. If you're using the CTAN version (if you didn't get the package from this repo) then use the CTAN documentation
Download latest(/github)-version here: exercisebank.zip GitHub at version: 0.3.0 (2019/03/18) build 137
CTAN at version: v0.3.0 (2019/03/18) build 137
It might take up to 24 hours from CTAN version is uploaded until you can download it, and then even a few more days until it is updated at TeXLive and MiKTeX
A build has no major changes in the core code (could be changes in documentation, or cosmetic changes in the code). Every time a minor version (that is the middle version number) changes, an upload is made to CTAN. If the patch version change (the last version number) is significant, it will also be uploaded to CTAN. The build number (ideally) never resets.
Check out documentation-doc.tex for instructions on how to document the code. All the documentation is automatically generated from the comments in the code using a custom perl-script. This file shows examples on how to document the code so that it shows up in the documentation properly.
All of the code are distributed within the src-folder. Here is an overview. The src/packaging/ directory only contains info for building the package, but used for "compiling" it down to exercisebank.sty and documenting.
at.texcontains definitions of the\Atand\Triggercommandsenvcontrol.texcontains everything to do with controlling environments except from "outsourcing" stuff with\Atand\Trigger: Namely deciding whether or not a problem, intro and/or solution should displayed (which is done insetbuilder.tex)exercisebank.texis the "main" file. It does most of the including of other files.exercisecommands.texcontains the definition for\DeclareExerciseCommand, which are commands that can be used in the\makesetwhen including problems. Like e.g.\phead.helpers.texcontains helping "functions". For example the definition of the\strif,\exb@isinand\exb@intersetion@anymacrohidetags.texcontains the code for\HideTagsand\ShowAllTagscommands.i18n.texcontains everything to do with translation logic (\translateExBank).ifs.texcontains definitions and default value for every\if-statement.lengths.texcontains definitions and default values of the\newlengthdefined, and modified, by exercisebank.main.texis the main file for building during development.packageoptions.texcontains all the macros that are intended for user configurationpackages.texcontains all the external packages used.pathcontrol.texcontains the logic that makes figures available within scope of exercise folder.pointsystem.texcontains the logic and definition of the point system.pplabel.texcontains definition of custom labeling and referring of problems.problemoptions.texcontains definition of the\nextproblem-command and it's options.problemstyle.texcontains\At-commands that are responsible for formatting exercise headers and exercise-related styles.setbuilder.texcontains the logic of the set making and set building. It also decides whether or not a problem,intro and/or solution should be builtspaceignore.texcontains the code for ignoring newline spaces in the code. Not active yet though.squeeze.texcontains the style for which\spriteapplies with\squeeze. It "squeezes" everything so that more stuff fits on the pages- (
exbankpack.tex) is the file that is built when making all these files into packaging
aftercompile.shis just instructions to perform after the.styand the documentation is created.packagehead.tex: All the files are compiled into one.sty-file before sent to CTAN. This file contains the top of that.sty-file.README.txtREADME file for CTAN.texpackvars.inicontains information that is used when "compiling" the package.
Docs are generated automatically. See documentation-doc.tex for info on how to do documentation.
Writing tests is also very highly appreciated:
The tests/ directory contains multiple things.
See how the tests/sanitycheck/main.tex is made, and you can make similar structures. Exercises are located in tests/exercises. You can read more on how the tests would work here. The best would be if you could clone this git, change stuff and make pull requests to this github with your tests. (Then the tests would actually be run!).
Also: If you have docker installed and are on OS X or Linux, you can use ./runtests.sh to run the tests locally on your computer.