Beginning this semester, my physics (introductory calculus-based physics) class is using LaTeX for writing up solutions. Rather than installing TeX Live (MacTeX) on every machine, we’re using Overleaf because it seems to work on desktops, laptops, and tablets (at least as far as I can tell). I give students a ZIP file containing five files, each of which I will describe here.
- mandi.sty This is the most up-to-date build of the mandi package and is almost always more recent than the version availble on CTAN. Before pushing an update to CTAN, I like to give students a chance to use it and to make suggestions for corrections, better features, and so on.
- mandi.pdf This is the corresponding documentation to the latest mandi build.
- NnnnnnnnCCPxx.tex This is the file (the ONLY file) that students need to edit directly. The filename structure is as follows: Nnnnnnnn is the student’s last name with the first character capitalized, CC is a two digit chapter number (ostensibly keyed to Matter & Interactions but of course it could refer to any textbook), P indicates a problem solution and this character should never be changed, xx is a two digit problem number (again, ostensibly keyed to Matter & Interactions).
- NnnnnnnnCCPxx.py This is the (V)Python or GlowScript script intended to accompany a given problem. One of my goals is to deprecate the use of calculators in favor of doing things in (V)Python. I want to offload the computational aspects problem solving to (V)Python so students can focus on the reasoning behind the computations and number crunching. By the way, note that I wrote (V)Python because sometimes we don’t really need anything visual for computation and so plain Python suffices.
- NnnnnnnnCCPxxFigyy.pdf This just a sample image used to illustrate how to incorprate images. Note the naming convention with yy being a two digit figure number.
So in practice, students dump these files into a “master project” on Overleaf. They will then clone this “master project” each time they need to write up a new solution. They will name the new project according to our naming convention, and will modify the names of the .tex, .py, and .pdf file accordingly. Note that not every solution will require an image or diagram, and if one isn’t required they will just comment out, or remove entirely, the source code that incorporates a image.
One bad thing I see no way around is that students must manually update older projects to use the updated mandi files and this is time consuming; I don’t yet see a way around it though.
Another potential bottleneck is how students generate diagrams and images. Right now, I’m asking them to draw their diagrams and figures on paper with pencil and then photograph or scan them with their smartphone and do whatever is necessary to generate a PDF file. Then they can appropriately rename this file and include it in their project.
When I make updates to mandi, I compile the entire package from a single .dtx file using TeXShop and then I clean all the auxilliary files from the (pdf)LaTeX runs. I have a shell script (written in Bash) that I then launch from a Terminal that makes on-the-fly modifications to the mandi source files and prepares them for uploading to CTAN in a ZIP file. In the same run, the script also builds the Overleaf template ZIP file and copies it, the mandi CTAN build, and the new source files to a folder on Dropbox from which I can share things as necessary and have a secure backup in case something happens to my local machines.
My hope is that students will build a logically organized and easily searchable library of problem solutions, each of which is a standalone project. I’ll keep everyone posted on how this works. Students are already saying that knowing LaTeX is, or will be, a huge help for them when they transfer to a university.