# What is the best way to typeset spectral sequences?

While writing articles about algebraic topology, I have had to typeset spectral sequences. These are tools for calculating homology and cohomology. Examples appear on page 10 of this book by Hatcher.

So far I've typeset these using xypic, but I'm not completely satisfied with this. It doesn't produce the best-looking spectral sequences, I have difficulty creating arrows leaving or entering the visible part of the page and I haven't figured out yet how to shade the background in a checkerboard style (or any other style), which is sometimes useful if your page contains many zeroes. An alternative is Tilman Bauer's package, but I don't really like the "turtle"-approach, moving a cursor between entries and dropping characters.

My questions are: Are there other methods for typesetting spectral sequences? What is, in your opinion, the "best" one? Do you have any tips for typesetting spectral sequences?

As long as there's no good package specialized in spectral sequences I would use

• TikZ with its nodes and arrows,
• its matrix library and a matrix of math nodes,
• also shapes and colors are no problem with TikZ.

Here's a very simple demo example which you could extend:

\documentclass{article}
\usepackage{tikz}
\usepackage{dsfont}
\usetikzlibrary{matrix}
\newcommand*\Z{\mathds{Z}}
\newcommand*\ZZ{|[draw,circle]| \Z_2}
\begin{document}
\begin{tikzpicture}
\matrix (m) [matrix of math nodes,
nodes in empty cells,nodes={minimum width=5ex,
minimum height=5ex,outer sep=-5pt},
column sep=1ex,row sep=1ex]{
&      &     &     & \\
1     &  \ZZ &  0  & \ZZ & \\
0     &  \Z  & \ZZ &  0  & \\
\quad\strut &   0  &  1  &  2  & \strut \\};
\draw[-stealth] (m-3-3.north west) -- (m-2-2.south east);
\draw[thick] (m-1-1.east) -- (m-4-1.east) ;
\draw[thick] (m-4-1.north) -- (m-4-5.north) ;
\end{tikzpicture}
\end{document}


Output:

• My instinct would be to use TikZ as well. One nice thing about TikZ that is worth highlighting in this case is that you can separate the entries from the arrows (as in your example), making it a little easier to find things and change things in the source code. In particular, if you want to add an arrow later then you can just tack it on to the end of the list. – Loop Space Aug 5 '10 at 7:15
• I extended the demo example a bit to show some output. – Stefan Kottwitz Aug 16 '10 at 16:45
• @StefanKottwitz: five years later, I've only edited to replace the broken image link. Great solution! – Arun Debray Dec 3 '15 at 21:11

I'm not a user of spectral sequences (although I know what they are and what they look like). Here is a sort of meta-answer. For TeX articles on the arXiv you can download the TeX source. So when you see a nicely typeset spectral sequence, look for the paper on the arXiv, download the source and see how its done.

• "Learn by example". Very good advice! – Loop Space Aug 5 '10 at 7:13

For completeness, let me add the sseq package by Tilman Bauer. I haven't used it personally, but it seems to be pretty popular with topologists who have to typeset large diagrams where the ”turtle-like” behavior can be nice (together with loops) and arrows don't need to be named.

There is also luasseq which is based on LuaTeX and provides some additional features (as well as better performance).

I have written a specialized spectral sequences package.

For example, see the following links (sources at the same path but with a ".tex" extension instead of a ".pdf" extension).

http://ctan.mirrors.hoobly.com/graphics/pgf/contrib/spectralsequences/examples/SSS-KZ3.pdf

http://ctan.mirrors.hoobly.com/graphics/pgf/contrib/spectralsequences/examples/ASS-S_2.pdf#page=2

http://ctan.mirrors.hoobly.com/graphics/pgf/contrib/spectralsequences/examples/hatcher.pdf

My go at it would be to say that mlpost is quite advisable. If you don't know how to program with OCaml, it takes some learning, of course. But if you are trying to achieve non-trivial things, I'd say it's the way to go.