LaTeX Pkg: spectralsequences¶
- Date
November 10, 2020
1 Environment structure¶
\begin{sseqdata}[<options>] <environment contents> \end{sseqdata}
Store a spectral sequence to be printed later. You must use the
name
option to refer this later.OPTIONS
are separated by comma and quotation symbols like"..."
or'...'
is not used for strings. eg.[name = sseq example, Adams grading, yscale = 0.53 ]
sets that the name of the spectral sequence to be referred later is namedsseq example
with the degree of differentials specified byAdams grading
with the y-axis scaled by factor of 0.53.
\begin{sseqpage}[<options>] <environment contents> \end{sseqpage}
This environment is used for printing a page of existing spectral sequence that was already specified. We refer the previously defined one named
sseq example
by puttingname = sseq example
also in OPTIONS here.The body of the environment adds local changes – classes, differentials, structure lines, and arbitrary TikZ options that are by default only printed on this particular page.
This can also be used to print a stand-alone page of a spectral sequence directly.
\printpage[<options>]
This prints a page of existing spectral sequence that was already specified as-is. We refer the previously defined one named
sseq example
by puttingname = sseq example
also in OPTIONS here. This is equivalent to asseqpage
environment with an empty body.
1.1 Global options¶
name = <sseq name>
page = <page number>
/page = <page number>-<page max>
(initially0
)degree = {<x degree>}{<y degree>}
Specifies the degree of differentials as thex
andy
displacement of a page#1
differential. The<x degree>
and<y degree>
should both be mathematical expressions in one variable#1
that evaluate to integers on any input.cohomological Serre grading
is equivalent todegree = {#1}{1-#1}
homological Serre grading
is equivalent todegree = {-#1}{#1-1}
Adams grading
is equivalent to{-1}{#1}
strict degree
/lax degree
controls whether an error occurs or not if there is a differential that doesn’t have the proper grading. The default is ‘strict’.no differentials
/draw differentials
specifies whether differentials is drew or not.
2 Classes¶
\class[<options>](x,y)
This places a class at the coordinate
(x,y)
wherex
andy
are integers.Multiple classes at the same position will be automatically arranged that can be explicitly described by the
class pattern
option.Eg.
\class(2,0) \class(2,0)
puts two classes at(2,0)
.The first one at
(x,y)
is referred by(x,y,1)
, the second one by(x,y,2)
, etc.
If a class is the source or the target of a differential on a certain page, then the page of the class is set to that page, and the class is only appeared on pages up to that number and disappears from the next page assuming that the differential is an isomorphism.
In the case where the differential is not an isomorphism, use one of the followings to make the desired class reappear:
\replaceclass[<options>](x,y <, tag>)
where<tag>
is an automatically assigned integer, or explicitly specified tag withtag
in the class option, that specifies a desired class in case of multiple classes at the same position.\replaceclass[<options>](<classname>)
\replacesource[<options>]
/\replacetarget[<options>]
\classoptions[<options>](x,y <, tag>)
/\classoptions[<options>](<classname>)
/\classoptions[<options>]
add options to an existing class.
3 Differentials¶
\d<page>(x,y)
creates a differential starting at(x,y)
of length determined by the specified page and the grading rule (eg. homological, cohomological, or Adams).In order to use the
\d
command like this, you must first specify the degree of the differentials as an option to the{sseqdata}
or{sseqpage}
.When the option
degree
is specified, then spectralsequences will check whether the difference between the source and target is appropriate for a differential of a given page, and if not it will throw an error. If this is undesirable, you can use thelax degree
option.
\d[<options>]<page>(x, y, <sourcen>, <targetn>)
specifies classes in the case of multiple ones.For example,
\d2(1,0,1,2)
specifies a second page differential whose source is located at(1,0)
as the first class and the target is the second one among classes located at the position determined accordingly by the grading rule.In case where multiple classes and single classes are mixed, we can do something like
\d2(3,0,,2)
in the case where the source position has one single class.Negative indices will count from the most recent class in the coordinate (so the most recent is -1, the second most recent is -2, etc).
Eg.
\d[red]2(1,0,-1,-2)
\d[<options>]<page>
/
\d[<options>]<page>(source name <,target n>)
/\d[<options>]<page>(<source coordinate>)(<target coordinate>)
\d2(x,y)
This puts a differential (an arrow) starting from
(x,y)
at the 2nd page according to the grading rule (eg. the homological grading will make it have the target at(x-1,y+2)
).
4 Grouping¶
We can set a group of classes and lines for reuse by using
\NewSseqGroup
macro.\NewSseqGroup\mygroup {} { \class(0,0) \class(0,1) \class(0,2) \class(1,1) \class(2,2) \structline(0,0)(0,1) \structline(0,1)(0,2) \structline(0,0)(1,1) \structline(1,1)(2,2) } \begin{sseqpage}[ classes = fill, class labels = { left = 0.3em } ] \mygroup(0,0) \mygroup(1,2) \classoptions["2"](0,1) \classoptions["\eta"](1,1) \end{sseqpage}
5 Commands¶
\sseqset{<keys>}
adjust the global options for all spectral sequences in the current scope, or for apply options to the rest of the current spectral sequence. This is used outside of the{sseqpage}
or{sseqdata}
environments. The following keys creates reusable styles..global sseq style = <keys>
if the style is a set of global options.global sseq append style = <keys>
.sseq style = <keys>
if the style is applied to individual objects (classes, differentials, structure lines, circle classes, and tikz primitives).sseq append style = <keys>
5.1 Loops¶
\foreach ... in ...
do the definite (finite and bounded) iteration.Example:
\foreach \x in {0,2,...,6} \foreach \y in {0,...,3}{ \class(\x,\y) }
means
(dolist (\x '(0 2 4 6)) (dolist (\y '(0 1 2 3)) \class(\x,\y)))
Example:
\foreach \x/\y/\label in {0/1/a,1/1/b,0/0/c,1/0/d}{ \class["\label" above](\x,\y) }
means
(dolist (p '( (0,1,a) (0,1,b) (1,1,b) (1,0,d))) \class(p))
\Do
and its variants do the indefinite iteration that can go off the page.Example:
\class(0,0) \DoUntilOutOfBoundsThenNMore{3}{ \class(\lastx+1,\lasty+1) \structline } \class(4,0) \d3 \DoUntilOutOfBounds{ \class(\lastx+1,\lasty+1) \structline \d3 }
Example:
\class(0,0) \DoUntilOutOfBounds{ \class(\lastx+1,\lasty+1) \structline \DoUntilOutOfBounds{ \class(\lastx,\lasty+1) \structline } }