strauman / exercisebank Goto Github PK
View Code? Open in Web Editor NEWA package for creating and managing exercise sets in LaTeX.
Home Page: https://ctan.org/pkg/exercisebank
A package for creating and managing exercise sets in LaTeX.
Home Page: https://ctan.org/pkg/exercisebank
In the 0.1.x update, an \At
bug was fixed, but introduced new bug that \select
and \exclude
now doesn't work.
Right now it is implemented with itemize
to make it look nice. However, it should be done with \vadjust
and \smash{\llap{ . }}
.
in docs/intro.tex
line 105, "Anyhing" should be "Anything".
Ability to tag exercises and tell sprite only to build exercises with given tags.
Example:
%someExercisefile.tex
\tag{exam}
Then in main file
%main.tex
\sprite[tags={exam}]
Easier to pick part problems when part problem is in \sprite
As of now, the \makeset[nohead]{}
still makes part problem headers. If the author of the bank does not wish these, the author should be able to turn them off. Making new headers can still be done with \At\VeryBeginPartproblem
When using \nextproblem{hide}
on a intro
env with \makeset[intro]
, it has a lot of whitespace.
I'm fairly certain it says in the docs that figure environment is included automatically. This is however not implemented in the exercisebank
.
I tried this command with the shipped example files:
\makeset[intro]{1}{firstexercise}
and got this error message:
! LaTeX Error: Something's wrong--perhaps a missing \item.
The next thing is, that first line of the intro content is indented to the right like so:
I got style margins=no
to get everything aligned to the left side. If I set
\begin{intro}
\par
\vspace{-1\baselineskip}
\lipsum[1-1]
\end{intro}
if works fine.
Regards
Thorsten
Command like \allsets{exerc/someex, exerc/somotherset}
for use in \sprite
. This can also be used to see which sets are unused.
Hi,
I have tested the version 0.2.1 (b81) and there is an issue when selecting multiple problems. I do the following to select multiple problems:
\makeset[nohead]{myExerciseSet}{\select{databaseNombres}{18,...,35}}
\DisplaySolutions
\ShowNumbers
\translateExBank{Problem=Exercice}
\buildset{myExerciseSet}
Only the Problem 18 from the file "databaseNombres.tex" is displayed.
With version 0.2 there is no problem.
Hi,
I have a lot of problems, so they are stored in external files. I include also some pictures in my problems and I have centralized them in a folder. For examples, my problems are in
and the pictures
So I used "figure root directory":
\exercisebanksetup{exercise
directory=/home/user/Documents/exercises/,
figure root directory=/home/users/Documents/pictures/math/,
part problems=Off}
So in order to include a picture I have to do:
\includegraphics{numbers/mypicture}
Unfortunately it doesn't work. After searching, I discoverd it works if my external files are all in the same directory. For example:
The structure for the pictures is the same. Is it intentional ? I read nothing in the documentation, can't we mention it ? It would be good to split external files in several directories, but other features are more important at the moment I think.
Hi,
My exercises are split in different files. For example I had:
I noticed there is a problem with the underscore. I had to make the following changes:
database_geometry.tex -> databaseGeometry.tex
database_numbers.tex -> databaseNumbers.tex
I had the same with paths. For example all my exercises are stored in:
exercises/geometry_euclidean/databaseGeometry.tex
exercises/numbers_integers/databaseNumbers.tex
I defined:
\exercisebanksetup{exercise
directory=/home/user/Documents/exercises/,
part problems=Off}
So to insert some exercises:
\makeset[nohead]{myExerciseSet1}{\select{geometry_euclidean/databaseGeometry}{35,36,37,38}}
\makeset[nohead]{myExerciseSet2}{\select{numbers_integers/databaseNumbers}{78,79,80}}
After deleting the "_" in the path, there was no problem. I didn't read in the documentation, that it can be a problem. I don't know if it's intentional. For me there is no problem, but perhaps you should mention in in the documentation.
Now the package is using the comment
-package. This is the only way that was found that supported also verbatim
and listings
mode. The main reason to do this is to prevent the necessity of having \begin{problem}
and \end{problem}
environments on one line without any other text.
Ability to put options on problem
environments. E.g. names to be reffered to later.
Lengths have too cryptic meanings and are inconsistent in which exists and not exists.
These should be available for users, and be well documented
Current lengths are defined in problemstyle.tex
\setlength{\ppLeading}{4em}
\setlength{\pMarginBelow}{1em}
\setlength{\pMarginAbove}{1em}
\setlength{\pMarginLeft}{-1.5em}
\setlength{\ppMarginBelow}{2em}
\setlength{\ppMarginAbove}{2em}
\setlength{\ppMargin}{2em}
\setlength{\ppPullback}{3.5em}
It should be possible to make exercises within the \begin{document}\end{document}
somehow.
The exercises might become quite messy. Putting solutions in a different file might help that. Done by some label on problems and solutions.
For example, if you have a problem that only have a few differences, you'd do e.g.
\begin{problem}
\variant{Show}{Show that the expression becomes:}
\variant{Derive}{Derive the expression and show that it is:}
\[ SomeExpression \]
\end{problem}
This could be extended to variants of the entire exercise. E.g. if you either can give the students an expression or ask them to derive it
\begin{problem}{variant=DeriveExpression, variant group=MyExercise}
Derive the expression for the ...
\end{problem}
\begin{intro}{variant=GivenExpression, variant group=MyExercise}
The expression is given by \[ \dots \]
\end{intro}
This would probably relate to #25
Hi,
I like the idea of your package to keep things as simple as possible. I tried over the years many latex exam packages, the most important are eqexam
and xsim
. The problem with these packages is, that they have to much overload for my daily work. Eqexam/Acrotex
needs Adobe Acrobat to run and xsim
is very very slow at compile time, that's nothing for my daily work as a teacher with lot's of different courses and many different exams.
So I looked at your package and it seems to be lightweight and fast. I miss a couple of things/features.
Is that possible with your package?
Regards
Thorsten
Make a command defined in the \At
scope. MVCE:
\At\BeginSomething{\doSomethingOnce\deletehook}
And when \Trigger\BeginSomething
is done, then the hook \BeginSomething
is cleared.
See Handin Strauman/handin-LaTeX#11
Support for package options. I suggest using PGFKeys with an \exercisebanksetup{}
command.
Support for tagging an exercise with multiple tags.
As the title suggests. Instead of \g@addto@macro
then it uses \preto
from package etoolbox
.
It might be that the intro
gives away too much, so the space should be removed. Alternatively one could make \hint
commands or the like that can be hidden by users choice.
It's kinda ad-hoc-messy as of now.
I would love it if someone could write one (or more files) that would test the functionality. That means just make .tex
-files that uses the functionality from the docs. For example something that tests \exercisebanksetup
. I would be very grateful if someone would pick up on this.
This is due to an accidental push of wrong use of \filbreak
.
It's kinda unintuitive to have a default directory. Now it defaults to \exerciseDir, but it shouldn't. But since several people already downloaded this package, then they should be able to keep doing it:
If the directory exercises/ exists and a set is not found, then print a @latex@warning or @latex@error to let them know they have to explicitly define \exerciseDir{exercises}.
Make a command that behaves like \ShowNumbers
, but for tags.
\sprite
fails for multiple sets since no comma in \@listOfSets
Maybe in the lines of \AtBeginSets{SET1,SET2}{\input{fp}}
Must tag all problems otherwise the normal \buildset
command shows nothing.
It's hard to debug when it doesn't really show anything but comment.cut
. It should be \exerciseFile.cut
or the like.
The default setting is "problem" and "solution" but can they be changed? I hope Chinese characters can be used instead, thank you!
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.