macOS for physicists

On why physicists love MacBooks; or, the complete guide to why you should opt for a MacBook if you’re into science.

It is no secret that MacBooks have long been a popular choice of personal computers among physicists. When the cosmologist Hitoshi Murayama wrote, almost ten years ago, what was perhaps the first iteration of the sort of article you are currently reading, Macs had already become a favourite across several laboratories and physics departments around the world. His article was later updated by others, most notably by the incognito physicist going by the name ‘Flip Tomato’ (who also wrote this wonderful piece) and, more specifically for astrophysicists, by the cosmologist Edd Edmondson.

The last such article was written back in 2013 during the days when Mac OS X had just been overhauled and its name had been shortened to OS X. Today we have macOS which, like OS X, is a considerable overhaul of Apple’s wonderful operating system in much more than name. However, no updated overview or guide for physicists getting started with (a new) Mac exists yet. This article is intended to serve precisely that purpose. Everything here has been tested on the current version of macOS, High Sierra.

Why use macOS?

Most of this is common knowledge but here is a rundown anyway. Windows is a bucketload of custom, proprietary code. This is a crude way to put it but it is what it is and Windows is ridden with problems with smooth operation and reliability. (I know this statement is bound to polarise opinions so if you have had a good experience with Windows, more power to you. Nobody I know has had the same, unfortunately.) By contrast macOS is built atom the XNU kernel (which also powers iOS, tvOS etc.) which in turn carries with it UNIX facilities. This makes a huge difference: the XNU kernel that runs macOS, the UNIX framework, and the operating system called Darwin which is based on these codes are all freely available.

The end result is that UNIX is something physicists have been considerably familiar with over several years and macOS coupled that with the Darwin Graphic User Interface, called Finder, to provide the best of both worlds: in macOS we have a smooth operating system with great visual character and efficiently designed functionality with the UNIX CLI (via Terminal.app) available for programming use being a single click away. Of course all this is to say nothing of the unmatched hardware Apple is known for.

Popular physicist Brian Cox, a longtime fan of Macs, says, ‘When you look around a physics conference now you see more Macs than anything else … I think that’s because they’re essentially UNIX … There’s a huge code base. We’re still using programs written in Fortran quite a lot—programs that were written in the ’70s and ’80s—and they compile directly on the Mac. It’s very easy to do, as opposed to Windows, where it’s just a pain to compile all the old legacy programs.’

Get started with Xcode

Earlier you could install OS X from a DVD but those days are behind us now. macOS gets annual major upgrades with minor updates almost every month, all for free and all over-the-air. Almost all new Macs come with a recent version of the operating system installed. This is convenient but takes away some control at the installation stage that might have otherwise been appreciated. However the solution is not more complicated by any measure.

The first tool to install is Apple’s own Xcode. It is available for free from the App Store. Xcode is an IDE and carries a bunch of files you need to make your mac programming-aware. It loads headers, libraries and compilers you need for most languages you will need—C, C++, Objective-C, JAVA, Python, Ruby, Cocoa, Apple’s own Swift and much more—all in one application. If you want to use Pascal and Perl, for example, free third-party add-ons to Xcode can make it happen in no time.

As a last step after installing Xcode open terminal.app and say sudo xcodebuild -license and accept the Xcode license.

TeX

Your next stop will be setting up your Mac for TeX. There is a quick install possible with a lightweight version of TeX, including only select packages, called MacTex Basic and although you may be tempted to install that its lack of packages will eventually prove to be a pain in the neck. Choose instead to download the entire TeX library via the complete MacTeX package. It has been packed as a .pkg for macOS and will install everything you need and create an easily accessible TeX tree. To locate your tree simply kpsewhich -var-value TEXMFHOME on a terminal.app window.

Once you have your TeX installation ready make sure you keep it updated via tlmgr update --self through the Terminal. You can also use something with a GUI like TeX Live Utility to keep your TeX tree updated with CTAN. If you are not comfortable with the terminal, or if you are looking for efficiency, there are several front-ends available for TeX with great GUIs. TeX Shop is probably your best free option while Texpad is the one I personally use (Texpad costs money but is worth every penny. It even lets me, via Texpad connect, sync tex files across my Macs and iPad to work while on the go.) TeX Shop seems rough around the edges but works great; Texpad will be more in line with your Mac experience: ‘we’ve designed the UI to meet high expectations of Mac users’ says their website.

Get a package manager

Physics-y stuff is helped a great deal by package managers. In Prof Murayama’s original article he recommends Fink. I doubt anyone really prefers this anymore. (A lot has changed since Prof Murayama’s article was first published. This is a particularly telling sentence: ‘The Xcode is big, though, weighing more than 800MB. Don’t attempt a download without a broadband.’ Today Xcode is around 6 GB in size.) MacPorts and Homebrew are much better alternatives. Homebrew is my personal choice. Of course Fink is the oldest so there may be many who prefer it merely by habit but you can hardly go wrong with either of these.

MacPorts comes with a straightforward .pkg installer. Installing Homebrew is no less straightforward but perhaps considerably more fun. Open terminal.app and say /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)". Some interesting packages to install are imagemagick, ghostscript and, if you like, xdvi. Most GUI-based document and image handling, though, is built into the incredibly powerful Preview.app on macOS.

Emacs or VIM

Some may argue that I was hasty in jumping from Xcode to TeX to a package manager without ever talking about VIM or another Emacs alternative (and they may be correct) but rest assured that there is a reason for it: Macs come with Emacs built in so, to be honest, you really have nothing to do here. That said, if for some reason—say habit—you are in search of a more familiar interface you can always opt to use VIM which also comes pre-installed. Simply say vim at the terminal prompt.

But we now come to the catch. Emacs that comes with your Mac does not support X11 which any physics student will have encountered as part of a computing laboratory course with gnuplot or some equivalent graphing software. (Sometimes I wonder if x11 is the only thing common among all physics courses worldwide.) That is why I led with a package manager before talking about Emacs.

x11, gnuplot and such

I wrote a guide some years ago when I was a student myself that, for my excitement, seems to have been linked to from a couple of universities. I will save myself the trouble of re-writing that but in the old article you can find four steps to install gnuplot that also installs x11 and any other terminal you may like. These instructions use Homebrew.

According to Prof Murayama’s article x11 used to be available straight from the OS X installation disc. I know of no such arrangement available in the current OTA update cycles of macOS. The steps in the article linked to above are your best bet to get set-up with x11 on your Mac.

macOS Server

Do you and a colleague have a Mac? Is your colleague not using their Mac for high-intensity activity at the moment? Do your eyes water when you see all their CPU cycles going waste? Fear not, you can harvest their CPU power by hooking up all your Macs to the Xgrid cluster.

In all seriousness though, if you have kept up with past macOS updates you will know that I led with a joke: Xgrid is dead. Apple now offers macOS server instead and for $20 from the App Store you can harness the power of multiple Macs in your department or laboratory and set-up a joint workgroup, share data locally, set up a mail server, a DNS and what-have-you, all from the comfort of your office. With enough Macs you can have your own multi-CPU supercomputer.

You can also use it for simpler tasks besides analysing particle beams. CERN, for instance, allows installation of several institution-level applications (LabVIEW, hpglview, Mathematica, Octave, Matlab and more) right on its local macOS Server cluster (both general purpose and mathematical rather than from the cloud.

If your Mac is strictly for personal use you need not worry about macOS Server.

Some nerdy packages

Besides computational and condensed matter physicists, astrophysicists and particle physicists port packages most often. This world is therefore filled with packages for such fields. If you followed instructions to install Homebrew above you will enjoy David C. Hall’s HEP. While you are cloning repositories off Github you might be interested in my LaTeX class for lecture notes (that comes with Italian translations thanks to S. Maggiolo).

Also try IDL and IRAF if you are into astrophysics. Since COMSOL and other such applications are costly for mortal individuals you can test out alternatives like FEniCS or MOOSE (warning: installation procedure is not for the faint-hearted) that help accomplish similar end goals.

Finally this somewhat old-looking but still valid webpage contains lots of applications and data for High Performance Computing on macOS. You may not have to follow up with many alternatives since the page seems to have been updated at least as far as OS X Sierra.

The ‘usual’ stuff

Although it is fancy to pwd your way from time-to-time with the Terminal and open -a "application" ~/path/to/file instead of using the GUI like puny normal human beings that is not how most of us use our personal computers. We use it for checking our e-mails and calendars and notes and reminders and for typing up reports and articles and making presentations and what not. For all these you need nothing fancy; all macOS installations come with Pages, Keynote, Numbers, Mail, Reminders, Notes, Calendar, Preview, Grapher, Dictionary, Contacts, Time Machine, Keychain and, of course, the all-powerful Textedit among other applications. Resist the urge to download alternative apps. For most of us, even though we may not like to admit it, these stock apps work just fine.

Lastly, as a physicist I must mention gaming. Prof Murayama says of ‘usual’ apps on a Mac, ‘For presentations, Apple’s Keynote is rapidly gaining popularity. It allows PDF graphics without losing scalability, has cool transitions. Steve Jobs himself uses it for MacWorld keynote addresses … I haven’t had much problem finding good applications for research purposes. People complain that there are still less games available for Macintosh, that may be a good thing. ^_^’

Today there are thousands of games for Macs, both on the App Store and on platforms like Steam. My lazy pastime is Civilisation VI. For a quick fix my friend and colleague introduced me to Real Boxing. For leisure unrelated to gaming Handbreak is good for DVD/CD authoring, Cyberduck for FTP, and my main writing app of choice is Ulysses.

Finally, for a bit of nostalgia, if you grew up in the 80s and 90s playing Dos games try Dosbox or, better yet, Boxer to emulate a Dos environment on your Mac. If you need game suggestions my favourites are Dave (where you play Dave), Prince (the predecessor to the modern Prince of Persia series), Skyroads (roads in the sky, what more can I say?) and Biomenace (shooting up alien and saving hostages across cities, forests and laboratories). That is enough nostalgia for the day.

Have fun with your Mac, fellow physicist.

Installing gnuplot on macOS

A quick—and popular, if Google is to be believed—guide to installing gnuplot on macOS.

Hardly anyone has gone through a college mathematics or physics course without meeting the wonderful gnuplot. However, it turns out that installing gnuplot (or Octave, for that matter — but let us leave that for another day) on a Mac is a pain in the neck. At a time when installing games take a two clicks, it simply is not straightforward to install gnuplot.

After scratching my head over it for two days straight, I finally installed gcc, gnuplot, Octave and LaTeX on my new Mac (OS X 10.10.3, Yosemite) and decided to note some points/instructions down here for anyone else looking for a simple solution from start to finish contained in one place.


Update, 6 December 2019 Since this article was written about five years ago Homebrew has changed its gnuplot installation system and does not allow picking terminals. This makes this a little inconvenient, not to mention useless. Thankfully MacPorts still supports a robust full gnuplot installation which makes me change my recommendation from ‘always install Homebrew’ to ‘always install both Homebrew and MacPorts’. Install MacPorts by picking a suitable package on their installation page. Then proceed as follows:

  1. Check what terminals are available (optional) with sudo port variant gnuplot
  2. Install gnuplot with required terminals e.g. sudo port install gnuplot +qt5 + x11 +aquaterm +wxwidgets will install gnuplot with QT5, x11, AquaTerm and WXT.

Click here to skip older updates and go to the main (legacy) article which runs you through XCode, GCC etc. Specifically, the above two steps replace steps 7 and 8 in the main article below.


Update, 9 August 2017 Since this article was written about two years ago a new version of gnuplot has been released, as have two new versions of macOS. A couple of my views have also changed as a result of this: I think AquaTerm is good enough for gnuplot and the decision to use X11 should only be a matter of specific needs or taste.

This article has turned out to be more popular than I hoped, with several universities and academic institutions sending lots of traffic towards it, all the way from these interesting lecture notes from Stony Brook University, NY, to this Chinese (I think) forum. In view of public demand, below is a small update.

If all you are interested in doing is to install gnuplot save yourself the trouble of scrolling down and follow these instructions (tested on macOS High Sierra) to install both AquaTerm and X11, omitting commands as necessary if you only wish to use one and not the other.

  1. Install homebrew via the Terminal with /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

  2. Install xquartz if you want X11 brew cask install xquartz

  3. Install aqua if you want AquaTerm brew install Caskroom/cask/aquaterm

  4. Install gnuplot (remove the --with-name for terminals you do not need brew install gnuplot --with-aquaterm --with-qt4 --with-x11

That is all. Enjoy plotting with gnuplot.


1. Install Xcode

If you have been trying to dodge your way out of Apple’s enormous 2.6GB Xcode app, get ready to face the demon: almost nothing related to coding will work on your Mac without Xcode and its libraries, so head to the App store and download Xcode.

2. Download command line tools

Download command line tools for Xcode. You can do this via the Terminal.app (Applications → Utilities → Terminal) with the following command (which you may copy and paste): xcode-select --install

This gives you a message saying command line tools have not been installed and will offer to install them for you now; proceed and install them. It should take some time, though not as much as downloading Xcode.

3. Accept Xcode licences

You need to have accepted the Xcode licence agreements to use many related programmes, so open Terminal and type in the following (you can copy and paste it as usual):

sudo xcodebuild

This gives you a message requiring you to press return/enter to view the license. Hit enter, read through it and type in agree at the end when prompted. Type in cancel to disagree, meaning you should probably have been reading some other article now, not this. In any case, once you read and agree, proceed to the next step.

4. GCC

GCC should work straight after installing Xcode. Open Terminal and do the following:

vi Hello.c

In the page that opens, copy and paste these lines:

#include<stdio.h>
int main() {
printf("\n\n\t\t Hello, world.\n\n");
}

Then press Esc and type :wq and you will return to the first Terminal screen. There, type the following two lines (press Return after each line):

gcc Hello.c -o Hello

./Hello

You should get an output on screen saying ‘Hello, world.’ if all is well. And that is all for GCC, which is actually simple, unlike gnuplot and Octave.

5. LaTeX

MacTeX is LaTeX for Mac. For basic — and mostly all general purposes — I did not see the need to install the entire MacTeX package, which is 2.5GB in size. As an alternative, I opted for the smaller, yet feature-rich, BasicTeX package which I usually install on all my systems.

You can go with the full package or opt for the smaller one as per your needs. Both files are .pkg and involve the usual GUI installation so this step should be no problem for anyone.

6. Install XQuartz

XQuartz, or colloquially the X11.app, is a Mac version of Windows' X Server. It is necessary for Homebrew, which we will install next, as well as to use the (somewhat) standard xterm display in gnuplot. Download XQuartz, which comes as a disk image which you can easily mount and install via a package.

The catch here is that the installed X11.app (check Applications → Utilities → X11 after installing) must be started before the Terminal is fired up to run gnuplot. That is the only way to make gnuplot start with the x11 terminal by default. If you find gnuplot aborting, you have probably not started x11.

7. Get Homebrew

Since Macs do not come with a package manager built-in like Linux, you will have to opt for alternatives often developed by the community. While MacPorts has been a popular one, I have found it buggy, especially so with xterm (x11) display for gnuplot, which is both the standard and more convenient than Aqua, the default for Mac — do not ask me why.

Installing Homebrew, an increasingly more preferred MacPorts alternative for good reasons, is simple. Open Terminal and use the command given below:

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

This should install Homebrew without a problem. Homebrew commands begin with brew and are fairly easy to follow.

8. Install gnuplot with brew

Installing gnuplot once you have come this far, thankfully, is fairly simple:

brew install gnuplot --with-x11

Remember to specify --with-x11 instead of the older (now deprecated) --x11 or brew install gnuplot without x11.

9. gnuplot

Now it is time to check gnuplot. Fire up gnuplot:

gnuplot

Then type in a simple plotting command and hit return/enter.

plot sin(x)

This should immediately display a generic sine graph (not saved permanently anywhere, of course) on your screen.

How to save and use plots is beyond the scope of this article, but for now, if you find the output graph giving out an error, make sure you have the x11.app running before you open Terminal.


Hat tip to Michael Budd After writing this article, I came across Michael Budd’s on installing gnuplot straight from the source files. I tried in vain to get x11 to work well after installing in this method, but perhaps I was not good enough in trying. That said, if you are not particular about x11, this is a really quick method to get gnuplot to work.

Note that when trying the third make install command, it failed on my system several times, so I had to work around that using sudo make install and entering my administrator password. If you do not have, administrator rights Mr Budd’s method may not work.


10. Setting a default display environment

Some machines may still have problems with gnuplot, in which case you could try editing your bash profile. Please try this at your own risk, and if you have no idea what this does, I strongly insist that you do not do it. In any case, I cannot be held responsible for whatever happens to your system.

touch ~/.bash_profile; open ~/.bash_profile

Enter the above command in your Terminal to open your .bash_profile for editing in TextEdit (or whatever else is your default editor). Next, in the open file, type the following and hit +S to save it, then close it.

if [ -z ${DISPLAY} ] then   export DISPLAY=:0.0 fi

Restart Terminal and it should work fine now. This has something to do with gnuplot sending data to the wrong display. You can find more details and a fair bit of discussion on this around the web.

That should be all. You should have a working copy of gnuplot on your machine now. Have fun with it: it supports eps export as well as links to c programmes via the pfile command. So far, in my use, I have not come across any problems after installing it this way, but if you do, let me know and I will try to help you as best as I can.

A new LaTeX class for lecture notes

A new document class for LaTeX built from the ground up for preparing lecture notes, entire course notes and support sheets for individual talks/classes.

So far I have had a fairly good semester teaching postgraduate physics. While preparing to teach classes I went through a simple routine: first, I decided what to cover based on the curriculum, followed by how best to present it; then, I prepared a bunch of talk sheets for myself so that I could be sure of covering everything I hoped to cover; finally, I prepared a bunch of lecture notes including, as far as possible, detailed exposition of everything covered in class.

The first step was necessary for me because I tend to deviate while discussing ideas because I constantly get bombarded with an exponentially increasing set of ideas with every individual seed of thought. The curriculum provided a foundation to build on and a flexible fence to build within. The second step was important for similar reasons: to keep me in check during my lectures. (That said, I was always open to continuing discussions after class hours.)

The third step, which some students and a surprisingly large number of outsiders benefited from (at least that is my impression based on the emails I have been getting over the past months), was a fairly detailed compilation of ideas discussed in class (but, unfortunately, not discussions outside of class) that was supposed to be minimum reading material for students of the course. They were expected to build from there with other sources as, when, and if, they found the need.

A dedicated LaTeX class

With apologies to Plato, necessity breeds creation and, between semesters, I decided to simplify my job of preparing lecture notes and save time by writing a new document class for LaTeX that would let me quickly enter important details as simply as possible and focus entirely on the content. I call this the lecture class and am quite pleased to say it is finally ready for real world use.

As far as I know, there was no class before this that was dedicated specifically to lecture notes (but I could be wrong). Perhaps there is good reason for this too: no two people have the same requirements, no two classes have the same needs, no two teachers have the same approach to a give topic. There is fair ground, I admit, to not prepare such a class at all. However, I intended to write this for myself to simplify my own workflow so making it available for free publicly would not hurt.

Some time after I started work on this, I found out that similar ideas had been put to paper a few years back by Stefano Maggiolo except with scribes in mind rather than speakers. (As of now his work has been abandoned.) Since I prefer to pen my own notes rather than allot that work to students/scribes, I had a slightly different approach in mind but, nonetheless, based on similar notions.

Having completed about half of my code I was lucky enough to be able to accelerate it when Stefano graciously let me rework parts of his code into my class. I have finally completed it and, as a little perk, since Stefano’s was originally in Italian, I retained the language in my class as a translation. Hopefully I can get equivalent translations in other languages as well down the road.

Addendum I was a little late in publishing this release article. As of now, v2.2 of this project is the latest stable release, and support for french has already been added.

Github + MIT

The lecture class is released on Github with an MIT license, which means you can do absolutely anything you want with it so long as you provide attribution (a link back to this webpage will do just fine) and retain the license and copyright notice with your distribution.

LaTeX lecture class page on Github

On Github, you will find instructions on how to download and use the lecture class so I will not repeat it here. Suffice it to say that if you do it right, it should only be a matter of copying and pasting and invoking.

The purpose of the lecture class remains to offer a quick yet flexible way of entering data common to all your lecture notes and ensuring your notes are formatted with some consistency throughout with no additional effort from you. For example, consider the following code:

\title{Give a nice title}
\author{Your Name}
\email{your@email.tld}

This produces a beautiful title for your document and the author’s byline beneath it along with a footnote that mentions the author’s email at the bottom of the page. Take a look at the sample.pdf file that is available on Github. (The sample.tex file that was used to generate this pdf document is also included with the project .)

Care has been taken to ensure that the lecture class works with pdfTeX, which is the most commonly used (probably most basic) compiler. What this means, of course, is that the class should work just fine with most other compilers, especially if you choose to extend its functionality. I was not a fan of retaining pdfTeX support but decided in its favour since it might as well be worth it for the lecture class to support broader use cases if nothing else.

If you find that the class throws errors please drop me an email (see link at the bottom of this website). Support is not guaranteed for extremely specific scenarios but if it is something that may affect a considerable number of users I will do my best to tackle it. In any case my reason for putting up my lecture class on Github is so that the community will be able to work on it. If you can sort things out yourself or if you have interesting ideas to expand the lecture class (see a fairly detailed list of features below), please fork the project and submit a pull request.

List of features (not exhaustive)

Three types of documents may be constructed using the lecture class. This has been detailed in the Github page as well, so I will keep it brief here: the talk style lets you make two-column, condensed documents to make highly selective notes—this is what I would prepare to take to my lectures; the seminar style lets you make more ‘regular’ notes for lectures—this is the type of notes I would prepare after a lecture as reading material for students; the course style lets you combine several lectures into a single, consolidated course or section of a course.

Computer Modern is boring, Palatino is quickly joining the ranks. The lecture class therefore typesets documents in Kp-Fonts, which has nothing to do with Adobe’s Kepler, which would look rather awful in a scientific document in my opinion. The best part about this is that it works beautifully with textcomp and amsmath with the full option. (Hat tip to The Johannes Kepler project.)

Note, however, that the lecture class does not use the lighter typefaces; this is something I have given considerable thought to and chose to keep the book weights for better compatibility with bad printers.

The microtype package is being called as well. I prefer the way fontspec does things myself but, as stated above, we need good pdfTeX compatibility and all. (You may have noticed by now that the lecture class seems to want to support almost everything without the prerequisite that it is a high-tech system.) Hopefully we can build this into an option system that calls packages regardless of their support for pdfTeX if the user so chooses.

Addendum The idea for such a system of options has been added to the roadmap on Github. It should be easy enough to accomplish and I would certainly like to see it, although I doubt I have the time to dedicate to it at this point.

The head of a document, whether a talk, a seminar or a course, contains the title, a subtitle, the speaker, the scribe, their e-mail addresses, a course code, two optional areas for any text you may wish to include, a start and end date (or just one date), a conference hall location and the name of the institution where the tall was given. Almost all of these are optional but they exist should you ever need them.

All course type documents also automatically produce a table of contents. Besides the options listed above you can also provide an alternate short title that the lecture class will use to set your page headers, because lengthy headers can be both unattractive and distracting.

The lecture class provides headings three levels deep: \section{}, \subsection{} and \subsubsection{}. The table of contents updates itself with these accordingly. As with any use of a table of contents, you will need to compile twice to actually produce the table in your output file.

In lieu of footnotes, the lecture class offers margin notes. There were two reasons why I chose to go in this direction: one, footnotes are hard to navigate to and from on screens whereas notes placed on the margin are right next to the text and can be associated with the main content quite easily; two, using a prominent outer margin in the layout means documents built with the lecture class offer ample space for readers to make their own notes, whether on screens or in print.

Usually align type environments have insufficient vertical spacing between lines of equations. This has been rectified by default letting the writer focus on the content rather than worry about formatting (which is why LaTeX exists in the first place). Also, the csquotes package is included in the lecture class allowing you to exploit its wonderful quote styles to set apart brief sections of your text. Finally, the regular skip/short skip spacing for all display environments have been set carefully and will work so long as you type your document properly, i.e. no unnecessary extra lines in your .tex file and so on (use % instead).

There are other packages that the lecture class calls for better formatting and to achieve certain other results (margins, for example). All of these should be available for free and should be easy to update and maintain as part of your own TeX installation. The (almost) full list of dependencies can be found on the Github page.

Nearly all questions you may have should be answered between this release article, the Github page of my lecture class, and the sample files included with the project. If you have more, get in touch via e-mail. If you wish to build on this, I hope you can fork the project on Github, if not, I would certainly appreciate it if you dropped me a word via e-mail; if you wish to modify, add etc., fork the project and we can merge it later.

This class was originally created for my own needs, as a result of which it likely focusses on what I need a lot more than what I think someone else may need, but it is definitely something worth building for a larger audience as we go regardless of how different our approaches may be. If you decide to use this document class for your own work, I would be humbled. I want to mention Stefano again for letting me use some of his code: you really sped things up. And thanks to those who helped test it out as well. Here’s to science.