Advanced mapm Tips
This guide assumes you have a basic understanding of how mapm works. If you do not, read the documentation at mapm.mathadvance.org.1 Basic fluency with the command line is expected, and for Windows users, an understanding of the Unix commands and the ability to translate them to whatever shell you are using.2
mapm is meant to be used with other people, but it is not opinionated on how you do this. There are two main ways: Dropbox3 and Git. I would recommend the former.
The problem directory for a profile
~/.config/mapm/problems/foo. So you can symlink whatever
directory contains your problems to the aforementioned path. For
example, Math Advance uses
~/Dropbox/MAC/problems as our
problems directory, so we would run
ln -s ~/Dropbox/MAC/problems ~/.config/mapm/problems/mathadvance
as our profile is called
You can do something similar with Git; just don’t forget to push and pull when appropriate.
Multiple contest files for the same contest
mapm was designed for Math Advance contests, first and foremost - this means it works best with MAT as well as “smaller” contests like the AMCs and AIME. Something expansive like HMMT would not fit well in a single contest file. Fortunately, there is a sane way to compile contests in mapm.
Let’s use HMMT as an example. The Combinatorics and Geometry rounds
have nothing to do with each other - how hard problem X is on combo has
no effect on how hard problem Y is on geo. Therefore, the two rounds can
be considered independent, and thus should have separate contest files.
It may also be worth noting that they do not need a separate template
subject template variable would suffice.
Here is a heuristic for this independence: do these rounds exist in separate PDFs? For ARML and MAT, where the subject and difficulty distribution of rounds should be taken as a composite, the entire individual test is in one PDF. Thus they should have one contest file.
Sometimes you might be lazy and not want to put solutions in a
problem. If you’re using a release of
v2.1.0, you can pass
solutions:  into your problem file.
If you’re using a release after v2.1.0, the field is optional and the
library will interpret no
solutions field as an empty
Change default editor
mapm edit, the
environment variable is used. It is strongly recommended that you set it
to a terminal editor, like nano or vim, so as to minimize context
List problem names
There is no built-in feature to list problems in the command line
mapm find show should suffice; it finds
every problem, and shows no tags. You may also pass filters into
find for a filtered list.
If you don’t know what mapm is at all, it is a LaTeX contest compiler that allows you to create templates and compile contest drafts based on problem names, instead of manually changing LaTeX (in potentially many places).↩︎
It is strongly recommended you use Powershell and not cmd.↩︎
“Dropbox” is just a catch-all for any cloud sync service.↩︎