Writing mathematics


Almost all serious mathematics is now written in LaTeX; if you don't know what LaTeX is, try this article.

To install LaTeX on the Macintosh, I recommend MacTeX. The full package is quite large. Installation is self-explanatory.

The MacTeX distribution comes with the popular editor TeXshop, as well as the cross-platform analogue TeXworks and the LaTeXit tool discussed below.

I used to use Skim for viewing PDF's when working with LaTeX. Recently, however, I find that Preview works fine for me; in particular, Preview now reloads the file when it changes (if you click on the preview window).


emacs is a text editor, widely used for programming (and TeX). If you have worked with Unix before, you're probably already familiar with it. If not, you should probably skip the rest of this section.

Producing mathematical graphics


Most mathematical graphics are produced using xfig, which is easy to learn and quick to use, if somewhat limited in capabilities. There are various ways to install xfig on the Mac; I list them roughly from easiest to hardest.

For all except the first one, you need to install X11 first. It's on the system DVD that came with your Mac. Once xfig is installed (via any but the first method), to run it you open X11 (found in Applications/Utilities) and type xfig.

Other free programs

Adobe Illustrator

Adobe Illustrator is a commercial vector graphics program; at heart it's similar to xfig, but an order of magnitude more powerful (and complicated), and much more expensive. Illustrator takes a substantial time investment to learn, so if xfig does what you want, it's probably not worth switching.

A few remarks on integrating xfig with LaTeX:

Producing web pages

There are many excellent free ways to write web pages, including (of course) a text editor. This page, the symplectic geometry / gauge theory seminar web page, and others on my site were created with Adobe's Dreamweaver.

Reading mathematics


Another approach to using software like Emacs and TeX on the Mac is to run a copy of Linux as an application under MacOS. This is an instance of virtualization, and is now fairly easy to do. This is particularly useful if you use somewhat esoteric Unix programs, which have not been ported to the Mac. The drawbacks are that this is somewhat slower (and takes up more memory), and the interface is a little less refined -- things like copying and pasting text, say, between the two operating systems tend not to work well. The same strategy allows you to run Windows under MacOS (if you buy a copy of Windows).

There are three main virtualization programs are VirtualBox (free), Parallels Desktop (commercial) and VMWare Fusion (commercial). Of these, I have used a previous version of Parallels Desktop, and currently use VirtualBox. Under either of the two, the steps to install Linux are:

  1. Install VirtualBox (or Parallels).
  2. Download a disk image of Linux (for instance, Ubuntu).
  3. Run VirtualBox or Parallels and follow the steps in the set-up wizard to install the Linux system.
  4. After the Linux system is up and running, install VirtualBox's or Parallel's "guest additions". (This allows you to access files on your Mac from inside the Linux system, better integration of the mouse cursor between the windows, and so on.)
  5. Create a directory on the Linux system for mounting your Mac's filesystem, and set it up as a mountpoint.

Remote collaboration

Real-time communication

My research, which is almost all collaborative, involves both a lot of pictures and formulas. In increasing order of complexity, here are three methods for communicating these that have worked for us. (The second and third can also be useful when editing or writing together, at a distance.) All three methods work cross-platform: the other person does not need to have a Mac.

In a slightly different direction, we recently discovered Rudel, which allows several people to edit a document (in emacs) at once. Installation was surprisingly simple: download the package, unzip it, and add the appropriate line to your .emacs (see the Rudel web page).

Revision control

Revision control is about allowing several people to work on a project simultaneously, tracking and merging changes that they make. Peter Ozsváth, Dylan Thurston and I use darcs (installable via Macports) for revision control for papers we are writing. It is somewhat complicated, but works well once you get used to it. Other revision control systems are available (and some have graphical user interfaces), but Dylan assures me this is the best one.