summaryrefslogtreecommitdiff
path: root/graphics
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2022-01-07 03:01:08 +0000
committerNorbert Preining <norbert@preining.info>2022-01-07 03:01:08 +0000
commitf69513397ac0e1f02c6b4a5f50588d411413271a (patch)
treebfc0fc24255cb74e53aab1a6e7ac644f2952b9af /graphics
parent55032f1ad7128dcf6493e798424f4ade02c923a7 (diff)
CTAN sync 202201070301
Diffstat (limited to 'graphics')
-rw-r--r--graphics/pgf/contrib/spectralsequences/README.md13
-rw-r--r--graphics/pgf/contrib/spectralsequences/examples/ANSS-S_2.pdfbin116535 -> 116548 bytes
-rw-r--r--graphics/pgf/contrib/spectralsequences/examples/ANSS-S_3.pdfbin52581 -> 52592 bytes
-rw-r--r--graphics/pgf/contrib/spectralsequences/examples/ASS-S_2.pdfbin197604 -> 197613 bytes
-rw-r--r--graphics/pgf/contrib/spectralsequences/examples/ASS-S_3.pdfbin80068 -> 80080 bytes
-rw-r--r--graphics/pgf/contrib/spectralsequences/examples/ASS-tmf_2.pdfbin224972 -> 224986 bytes
-rw-r--r--graphics/pgf/contrib/spectralsequences/examples/HFPSS-EO2_3.pdfbin95694 -> 95707 bytes
-rw-r--r--graphics/pgf/contrib/spectralsequences/examples/HFPSS-KO.pdfbin39897 -> 39913 bytes
-rw-r--r--graphics/pgf/contrib/spectralsequences/examples/J_RPinfty.pdfbin149825 -> 149838 bytes
-rw-r--r--graphics/pgf/contrib/spectralsequences/examples/J_RPinfty.tex4
-rw-r--r--graphics/pgf/contrib/spectralsequences/examples/MaySS-bo-A1.pdf (renamed from graphics/pgf/contrib/spectralsequences/examples/MaySS-bo-A(1).pdf)bin58887 -> 58899 bytes
-rw-r--r--graphics/pgf/contrib/spectralsequences/examples/MaySS-bo-A1.tex (renamed from graphics/pgf/contrib/spectralsequences/examples/MaySS-bo-A(1).tex)0
-rw-r--r--graphics/pgf/contrib/spectralsequences/examples/MaySS-tmf-A2.pdf (renamed from graphics/pgf/contrib/spectralsequences/examples/MaySS-tmf-A(2).pdf)bin142752 -> 142766 bytes
-rw-r--r--graphics/pgf/contrib/spectralsequences/examples/MaySS-tmf-A2.tex (renamed from graphics/pgf/contrib/spectralsequences/examples/MaySS-tmf-A(2).tex)0
-rw-r--r--graphics/pgf/contrib/spectralsequences/examples/SSS-KF3n.pdfbin92514 -> 92526 bytes
-rw-r--r--graphics/pgf/contrib/spectralsequences/examples/SSS-KZ3.pdfbin72391 -> 72397 bytes
-rw-r--r--graphics/pgf/contrib/spectralsequences/examples/hatcher.pdfbin28468 -> 28480 bytes
-rw-r--r--graphics/pgf/contrib/spectralsequences/examples/hatcher.tex4
-rw-r--r--graphics/pgf/contrib/spectralsequences/examples/unstable_ASS_SO.pdfbin21492 -> 21504 bytes
-rw-r--r--graphics/pgf/contrib/spectralsequences/examples/unstable_ASS_SO.tex4
-rw-r--r--graphics/pgf/contrib/spectralsequences/manual/examples/spectralsequencesmanual-KORP8.tex34
-rw-r--r--graphics/pgf/contrib/spectralsequences/manual/examples/spectralsequencesmanual-class-page2a.tex24
-rw-r--r--graphics/pgf/contrib/spectralsequences/manual/examples/spectralsequencesmanual-class-page2b.tex18
-rw-r--r--graphics/pgf/contrib/spectralsequences/manual/examples/spectralsequencesmanual-imJ.tex32
-rw-r--r--graphics/pgf/contrib/spectralsequences/manual/examples/spectralsequencesmanual-insert.tex33
-rw-r--r--graphics/pgf/contrib/spectralsequences/manual/examples/spectralsequencesmanual-tikz.tex25
-rw-r--r--graphics/pgf/contrib/spectralsequences/manual/pgfmanual-en-macros.tex1762
-rw-r--r--graphics/pgf/contrib/spectralsequences/manual/spectralsequencesmanual.pdfbin659582 -> 638918 bytes
-rw-r--r--graphics/pgf/contrib/spectralsequences/manual/spectralsequencesmanual.tex76
-rw-r--r--graphics/pgf/contrib/spectralsequences/manual/spectralsequencesmanualpreamble.tex4
-rw-r--r--graphics/pgf/contrib/spectralsequences/src/spectralsequences.sty14
-rw-r--r--graphics/pgf/contrib/spectralsequences/src/sseqcheckdefinitions.code.tex4
-rw-r--r--graphics/pgf/contrib/spectralsequences/src/sseqdrawing.code.tex6
-rw-r--r--graphics/pgf/contrib/spectralsequences/src/sseqforeach.code.tex4
-rw-r--r--graphics/pgf/contrib/spectralsequences/src/sseqkeys.code.tex76
-rw-r--r--graphics/pgf/contrib/spectralsequences/src/sseqloadstore.code.tex4
-rw-r--r--graphics/pgf/contrib/spectralsequences/src/sseqmacromakers.code.tex9
-rw-r--r--graphics/pgf/contrib/spectralsequences/src/sseqmain.code.tex10
-rw-r--r--graphics/pgf/contrib/spectralsequences/src/sseqmessages.code.tex7
-rw-r--r--graphics/pgf/contrib/spectralsequences/src/sseqparsers.code.tex4
40 files changed, 316 insertions, 1855 deletions
diff --git a/graphics/pgf/contrib/spectralsequences/README.md b/graphics/pgf/contrib/spectralsequences/README.md
index 808e9601f6..fba5d6f228 100644
--- a/graphics/pgf/contrib/spectralsequences/README.md
+++ b/graphics/pgf/contrib/spectralsequences/README.md
@@ -1,9 +1,9 @@
-spectralsequences v1.3.0
+spectralsequences v1.3.1
========================
Author: Hood Chatham
Email: hood@mit.edu
-Date: 2019-02-18
+Date: 2022-01-04
License: All files have the Latex Project Public License.
Description: Print spectral sequence diagrams using pgf/tikz.
@@ -13,6 +13,15 @@ Email me at hood@mit.edu to submit bug reports, request new features, etc. The c
Changelog:
==========
+## [1.3.1] (2022-01-04)
+
+### Fixed:
+- Extensions now should have all of the same features as structlines. Before, a
+ bunch of things were missing or broken.
+- Various issues with range checks for rotated figures are fixed.
+- The `u` argument works again in `\DeclareSseqCommand` in versions of TeXLive
+ prior to 2021.
+
## [1.3.0] (2021-07-18)
### Added:
- Added more control over page indicator in title and "print page as" key.
diff --git a/graphics/pgf/contrib/spectralsequences/examples/ANSS-S_2.pdf b/graphics/pgf/contrib/spectralsequences/examples/ANSS-S_2.pdf
index 9a6315969f..942a6d64d7 100644
--- a/graphics/pgf/contrib/spectralsequences/examples/ANSS-S_2.pdf
+++ b/graphics/pgf/contrib/spectralsequences/examples/ANSS-S_2.pdf
Binary files differ
diff --git a/graphics/pgf/contrib/spectralsequences/examples/ANSS-S_3.pdf b/graphics/pgf/contrib/spectralsequences/examples/ANSS-S_3.pdf
index 99dee7163a..762d345d4c 100644
--- a/graphics/pgf/contrib/spectralsequences/examples/ANSS-S_3.pdf
+++ b/graphics/pgf/contrib/spectralsequences/examples/ANSS-S_3.pdf
Binary files differ
diff --git a/graphics/pgf/contrib/spectralsequences/examples/ASS-S_2.pdf b/graphics/pgf/contrib/spectralsequences/examples/ASS-S_2.pdf
index 3059187854..a8a71d569c 100644
--- a/graphics/pgf/contrib/spectralsequences/examples/ASS-S_2.pdf
+++ b/graphics/pgf/contrib/spectralsequences/examples/ASS-S_2.pdf
Binary files differ
diff --git a/graphics/pgf/contrib/spectralsequences/examples/ASS-S_3.pdf b/graphics/pgf/contrib/spectralsequences/examples/ASS-S_3.pdf
index 9a8b254a63..5cfccbae89 100644
--- a/graphics/pgf/contrib/spectralsequences/examples/ASS-S_3.pdf
+++ b/graphics/pgf/contrib/spectralsequences/examples/ASS-S_3.pdf
Binary files differ
diff --git a/graphics/pgf/contrib/spectralsequences/examples/ASS-tmf_2.pdf b/graphics/pgf/contrib/spectralsequences/examples/ASS-tmf_2.pdf
index 31a8e047ab..3682905744 100644
--- a/graphics/pgf/contrib/spectralsequences/examples/ASS-tmf_2.pdf
+++ b/graphics/pgf/contrib/spectralsequences/examples/ASS-tmf_2.pdf
Binary files differ
diff --git a/graphics/pgf/contrib/spectralsequences/examples/HFPSS-EO2_3.pdf b/graphics/pgf/contrib/spectralsequences/examples/HFPSS-EO2_3.pdf
index 061b8ce211..a5146b42ec 100644
--- a/graphics/pgf/contrib/spectralsequences/examples/HFPSS-EO2_3.pdf
+++ b/graphics/pgf/contrib/spectralsequences/examples/HFPSS-EO2_3.pdf
Binary files differ
diff --git a/graphics/pgf/contrib/spectralsequences/examples/HFPSS-KO.pdf b/graphics/pgf/contrib/spectralsequences/examples/HFPSS-KO.pdf
index 45daac365d..5353637a99 100644
--- a/graphics/pgf/contrib/spectralsequences/examples/HFPSS-KO.pdf
+++ b/graphics/pgf/contrib/spectralsequences/examples/HFPSS-KO.pdf
Binary files differ
diff --git a/graphics/pgf/contrib/spectralsequences/examples/J_RPinfty.pdf b/graphics/pgf/contrib/spectralsequences/examples/J_RPinfty.pdf
index b11be87272..b3172e0923 100644
--- a/graphics/pgf/contrib/spectralsequences/examples/J_RPinfty.pdf
+++ b/graphics/pgf/contrib/spectralsequences/examples/J_RPinfty.pdf
Binary files differ
diff --git a/graphics/pgf/contrib/spectralsequences/examples/J_RPinfty.tex b/graphics/pgf/contrib/spectralsequences/examples/J_RPinfty.tex
index 46eb9d2c1b..a857f9c3d3 100644
--- a/graphics/pgf/contrib/spectralsequences/examples/J_RPinfty.tex
+++ b/graphics/pgf/contrib/spectralsequences/examples/J_RPinfty.tex
@@ -1,8 +1,8 @@
%%
-%% Package: spectralsequences v1.3.0 2021-07-18
+%% Package: spectralsequences v1.3.1 2022-01-04
%% Author: Hood Chatham
%% Email: hood@mit.edu
-%% Date: 2021-07-18
+%% Date: 2022-01-04
%% License: Latex Project Public License
%%
%% File: example_endofVFoS.tex
diff --git a/graphics/pgf/contrib/spectralsequences/examples/MaySS-bo-A(1).pdf b/graphics/pgf/contrib/spectralsequences/examples/MaySS-bo-A1.pdf
index 974d19f301..7bfe453179 100644
--- a/graphics/pgf/contrib/spectralsequences/examples/MaySS-bo-A(1).pdf
+++ b/graphics/pgf/contrib/spectralsequences/examples/MaySS-bo-A1.pdf
Binary files differ
diff --git a/graphics/pgf/contrib/spectralsequences/examples/MaySS-bo-A(1).tex b/graphics/pgf/contrib/spectralsequences/examples/MaySS-bo-A1.tex
index 43043f89b2..43043f89b2 100644
--- a/graphics/pgf/contrib/spectralsequences/examples/MaySS-bo-A(1).tex
+++ b/graphics/pgf/contrib/spectralsequences/examples/MaySS-bo-A1.tex
diff --git a/graphics/pgf/contrib/spectralsequences/examples/MaySS-tmf-A(2).pdf b/graphics/pgf/contrib/spectralsequences/examples/MaySS-tmf-A2.pdf
index 396b65fbbb..a56d844be4 100644
--- a/graphics/pgf/contrib/spectralsequences/examples/MaySS-tmf-A(2).pdf
+++ b/graphics/pgf/contrib/spectralsequences/examples/MaySS-tmf-A2.pdf
Binary files differ
diff --git a/graphics/pgf/contrib/spectralsequences/examples/MaySS-tmf-A(2).tex b/graphics/pgf/contrib/spectralsequences/examples/MaySS-tmf-A2.tex
index c2ce0a1d55..c2ce0a1d55 100644
--- a/graphics/pgf/contrib/spectralsequences/examples/MaySS-tmf-A(2).tex
+++ b/graphics/pgf/contrib/spectralsequences/examples/MaySS-tmf-A2.tex
diff --git a/graphics/pgf/contrib/spectralsequences/examples/SSS-KF3n.pdf b/graphics/pgf/contrib/spectralsequences/examples/SSS-KF3n.pdf
index 5129468ad7..48b1a02e63 100644
--- a/graphics/pgf/contrib/spectralsequences/examples/SSS-KF3n.pdf
+++ b/graphics/pgf/contrib/spectralsequences/examples/SSS-KF3n.pdf
Binary files differ
diff --git a/graphics/pgf/contrib/spectralsequences/examples/SSS-KZ3.pdf b/graphics/pgf/contrib/spectralsequences/examples/SSS-KZ3.pdf
index 2d0b0faa14..b4c0497510 100644
--- a/graphics/pgf/contrib/spectralsequences/examples/SSS-KZ3.pdf
+++ b/graphics/pgf/contrib/spectralsequences/examples/SSS-KZ3.pdf
Binary files differ
diff --git a/graphics/pgf/contrib/spectralsequences/examples/hatcher.pdf b/graphics/pgf/contrib/spectralsequences/examples/hatcher.pdf
index 65d283ebdd..c4d1cc685e 100644
--- a/graphics/pgf/contrib/spectralsequences/examples/hatcher.pdf
+++ b/graphics/pgf/contrib/spectralsequences/examples/hatcher.pdf
Binary files differ
diff --git a/graphics/pgf/contrib/spectralsequences/examples/hatcher.tex b/graphics/pgf/contrib/spectralsequences/examples/hatcher.tex
index 5e8b4b67eb..f2b993c02e 100644
--- a/graphics/pgf/contrib/spectralsequences/examples/hatcher.tex
+++ b/graphics/pgf/contrib/spectralsequences/examples/hatcher.tex
@@ -1,8 +1,8 @@
%%
-%% Package: spectralsequences v1.3.0 2021-07-18
+%% Package: spectralsequences v1.3.1 2022-01-04
%% Author: Hood Chatham
%% Email: hood@mit.edu
-%% Date: 2021-07-18
+%% Date: 2022-01-04
%% License: Latex Project Public License
%%
%% File: example_hatcher.tex
diff --git a/graphics/pgf/contrib/spectralsequences/examples/unstable_ASS_SO.pdf b/graphics/pgf/contrib/spectralsequences/examples/unstable_ASS_SO.pdf
index 95318b3958..94107ece6b 100644
--- a/graphics/pgf/contrib/spectralsequences/examples/unstable_ASS_SO.pdf
+++ b/graphics/pgf/contrib/spectralsequences/examples/unstable_ASS_SO.pdf
Binary files differ
diff --git a/graphics/pgf/contrib/spectralsequences/examples/unstable_ASS_SO.tex b/graphics/pgf/contrib/spectralsequences/examples/unstable_ASS_SO.tex
index edda2cd39b..c74ccd5d09 100644
--- a/graphics/pgf/contrib/spectralsequences/examples/unstable_ASS_SO.tex
+++ b/graphics/pgf/contrib/spectralsequences/examples/unstable_ASS_SO.tex
@@ -1,8 +1,8 @@
%%
-%% Package: spectralsequences v1.3.0 2021-07-18
+%% Package: spectralsequences v1.3.1 2022-01-04
%% Author: Hood Chatham
%% Email: hood@mit.edu
-%% Date: 2021-07-18
+%% Date: 2022-01-04
%% License: Latex Project Public License
%%
%% File: example_unstable_ASS_SO.tex
diff --git a/graphics/pgf/contrib/spectralsequences/manual/examples/spectralsequencesmanual-KORP8.tex b/graphics/pgf/contrib/spectralsequences/manual/examples/spectralsequencesmanual-KORP8.tex
new file mode 100644
index 0000000000..f5a767b2de
--- /dev/null
+++ b/graphics/pgf/contrib/spectralsequences/manual/examples/spectralsequencesmanual-KORP8.tex
@@ -0,0 +1,34 @@
+
+
+\NewSseqCommand \KOstar {m}{
+ \begin{scope}[ xshift = -#1, xshift = 8*\b, yshift = #1 ]
+ \class[rectangle, name = b^{\b}[0]](0,0)
+ \class[name = b^{\b} e[0]](1,0) \structline
+ \class[name = b^{\b} e^2[0]](2,0) \structline
+ \class[rectangle, fill = none, name = b^{\b} u[0]](4,0)
+ \end{scope}
+}
+\NewSseqCommand \KOpcell {m}{
+ \d1(b^{\b}[#1]) \replacetarget
+ \d1(b^{\b} u[#1]) \replacetarget
+ \structline(b^{\b}[#1+1])(b^{\b} e[#1+1])
+ \structline[page = 2, dashed](b^{\b} e[#1])(b^{\b} e^2[#1+1])
+ \structline[page = 2, dashed](b^{\b} e^2[#1])(b^{\b} u[#1+1])
+}
+\NewSseqCommand \KOetacell {m}{
+ \DrawIfValidDifferential2(b^{\b}[#1])
+ \d2(b^{\b} e[#1])
+ \DrawIfValidDifferential3(b^{\b} e^2[#1])
+}
+\begin{sseqdata}[ name = KO^*RP^8, Adams grading, class name handler = \SseqAHSSNameHandler,
+ classes = fill, x range = {-8}{10}, xscale = 0.7, yscale = 0.5, x tick step = 4 ]
+\foreach \b in {-2,...,2}{
+ \foreach \n in {0,...,6}{\KOstar{\n}}
+ \foreach \n in {1,3,...,5}{\KOpcell{\n}}
+ \foreach \n in {2,3}{\KOetacell{\n}}
+ \structline[dashed](b^{\b}e^2[2])(b^{\b}u[4])
+ \structline[dashed](b^{\b}[4])(b^{\b}e[5])
+}
+\end{sseqdata}
+\printpage[ name = KO^*RP^8, title = AHSS for $KO^*\mathbb{R}P^8$ ] \vskip6pt
+\printpage[ name = KO^*RP^8, page = 6 ] \ No newline at end of file
diff --git a/graphics/pgf/contrib/spectralsequences/manual/examples/spectralsequencesmanual-class-page2a.tex b/graphics/pgf/contrib/spectralsequences/manual/examples/spectralsequencesmanual-class-page2a.tex
new file mode 100644
index 0000000000..90a9b9bc3c
--- /dev/null
+++ b/graphics/pgf/contrib/spectralsequences/manual/examples/spectralsequencesmanual-class-page2a.tex
@@ -0,0 +1,24 @@
+\begin{sseqdata}[ name = page_example2, Adams grading, xscale = 0.6, yscale = 0.5 ]
+\class(0,2)\class(1,0)
+\d2(1,0)
+\replacesource
+\class(0,3)
+\d3(1,0)
+\replacesource
+\classoptions[fill, red](1,0) % (a) applies to most recent (last) generation.
+\end{sseqdata}
+
+\printpage[ name = page_example2, page = 1 ] % generation 0 of (1,0), not styled
+\quad
+\begin{sseqpage}[ name = page_example2, page = 1, keep changes ]
+\classoptions[fill, blue](1,0) % (b) applies to the generation present on page 1, that is, generation 0.
+\end{sseqpage} \quad
+
+% generation 0 of (1,0), so class is blue from (b)
+\printpage[ name = page_example2, page = 2 ] \quad
+
+% generation 1 of (1,0), class is not styled
+\printpage[ name = page_example2, page = 3 ] \quad
+
+% generation 2 of (1,0), class is red from (a)
+\printpage[ name = page_example2, page = 4 ] \ No newline at end of file
diff --git a/graphics/pgf/contrib/spectralsequences/manual/examples/spectralsequencesmanual-class-page2b.tex b/graphics/pgf/contrib/spectralsequences/manual/examples/spectralsequencesmanual-class-page2b.tex
new file mode 100644
index 0000000000..ace0f792ce
--- /dev/null
+++ b/graphics/pgf/contrib/spectralsequences/manual/examples/spectralsequencesmanual-class-page2b.tex
@@ -0,0 +1,18 @@
+\begin{sseqdata}[ name = page_example2, Adams grading, update existing ]
+% (c) applies to all generations, overwrites (b) and (a):
+\classoptions[fill, red, generation = 0 -- -1](1,0)
+\end{sseqdata}
+
+\printpage[ name = page_example2, page = 1 ]% generation 0 of (1,0), so class is red
+\quad
+\begin{sseqpage}[ name = page_example2, page = 1, keep changes ]
+\classoptions[fill, blue](1,0) % (d) applies to the generation present on page 1, that is, generation 0.
+\end{sseqpage} \quad
+
+% generation 0 of (1,0), class is blue from (d)
+\printpage[ name = page_example2, page = 2 ] \quad
+
+% generation 1 of (1,0), class is red from (c)
+\printpage[ name = page_example2, page = 3 ]
+\quad
+\printpage[ name = page_example2, page = 4 ] % generation 2 of (1,0), class is red from (c) \ No newline at end of file
diff --git a/graphics/pgf/contrib/spectralsequences/manual/examples/spectralsequencesmanual-imJ.tex b/graphics/pgf/contrib/spectralsequences/manual/examples/spectralsequencesmanual-imJ.tex
new file mode 100644
index 0000000000..20335a33f2
--- /dev/null
+++ b/graphics/pgf/contrib/spectralsequences/manual/examples/spectralsequencesmanual-imJ.tex
@@ -0,0 +1,32 @@
+\SseqNewFamily{imJ}
+\begin{sseqdata}[
+ name=ANSS-S_2, Adams grading,
+ class labels = {below}, label distance = -1pt,
+ class placement transform = {rotate = 90, scale = 2},
+ differentials = blue,
+ x range = {0}{9}, y range = {0}{4},
+ xscale = 0.7, grid = go
+]
+% Image of J classes
+\begin{scope}[imJ]
+\class[rectangle,fill,inner sep=3pt](0,0)
+\DoUntilOutOfBoundsThenNMore{3}{\etaclass}
+\classoptions["\alpha_1" above left](1,1)
+\class["\alpha_{2/2}", circlen = 2](3,1)
+\structline(0,0) \structline[dashed](3,3)
+\class["\alpha_3"](5,1) \d3\relax
+\DoUntilOutOfBounds{ \etaclass \d3 }
+\class["\alpha_{4/4}", rectangle, "16" {font = \tiny, inside}, inner sep = 1pt](7,1)
+\DoUntilOutOfBoundsThenNMore{3}{\etaclass}
+\end{scope}
+
+% Other classes
+\class["\beta_{2/2}" {below right=-4pt}, insert = 1](6,2)
+\structline(3,1)
+\class["\beta_{2}" left](8,2)
+\etaclass\structline(6,2,2) % This is a *nu
+\end{sseqdata}
+
+\printpage[ name = ANSS-S_2, title = with image of J, imJ style = purple]
+
+\printpage[ name = ANSS-S_2, no imJ, x range={2}{9}, title = without image of J] \ No newline at end of file
diff --git a/graphics/pgf/contrib/spectralsequences/manual/examples/spectralsequencesmanual-insert.tex b/graphics/pgf/contrib/spectralsequences/manual/examples/spectralsequencesmanual-insert.tex
new file mode 100644
index 0000000000..2784ca0d3c
--- /dev/null
+++ b/graphics/pgf/contrib/spectralsequences/manual/examples/spectralsequencesmanual-insert.tex
@@ -0,0 +1,33 @@
+\DeclareSseqGroup \tower {} {
+ \class(0,0)
+ \DoUntilOutOfBounds {
+ \class(\lastx,\lasty+1)
+ \structline
+ }
+}
+
+\begin{sseqdata}[ name = insert-example, y range = {0}{4}, class pattern = linear ]
+\tower(0,2)
+\tower(0,3)
+\tower(0,1)
+\end{sseqdata}
+\qquad
+\begin{sseqpage}[ name = insert-example ]
+\tower[ red, classes = { insert = 1 } ](0,0)
+\end{sseqpage}
+\qquad
+\begin{sseqpage}[ name = insert-example ]
+\tower[ red, classes = { insert = 2 } ](0,0)
+\end{sseqpage}
+\qquad
+\begin{sseqpage}[ name = insert-example ]
+\tower[ red, classes = { insert = 3 } ](0,0)
+\end{sseqpage}
+\qquad
+\begin{sseqpage}[ name = insert-example ]
+\tower[ red, classes = { insert = -2 } ](0,0)
+\end{sseqpage}
+\qquad
+\begin{sseqpage}[ name = insert-example ]
+\tower[ red, classes = { insert = -3 } ](0,0)
+\end{sseqpage} \ No newline at end of file
diff --git a/graphics/pgf/contrib/spectralsequences/manual/examples/spectralsequencesmanual-tikz.tex b/graphics/pgf/contrib/spectralsequences/manual/examples/spectralsequencesmanual-tikz.tex
new file mode 100644
index 0000000000..d12a0c0242
--- /dev/null
+++ b/graphics/pgf/contrib/spectralsequences/manual/examples/spectralsequencesmanual-tikz.tex
@@ -0,0 +1,25 @@
+\begin{sseqdata}[ name = tikz example, Adams grading, math nodes = false,
+ tikz primitives = { blue, font = \tiny, <- }, circle classes = tikz primitive style,
+ x range = {0}{2}, x axis extend end = 2em ]
+\class(0,0)
+\class(1,0)
+\class(0,2)
+\d2(1,0)
+\end{sseqdata}
+%
+\begin{sseqpage}[ name = tikz example ]
+\circleclasses[ name path = myellipse, inner sep = 3pt, ellipse ratio = 1.6 ] (1,0) (0,2)
+\path[ name path = myline ] (1.3,1.25) -- (0.6,1);
+\draw[ name intersections = { of = myellipse and myline } ]
+ (intersection-1) to (1.3,1.25) node[ right, text width = 1.6cm ] {Consider this differential};
+\end{sseqpage} \qquad
+%
+\begin{sseqpage}[ name = tikz example ]
+\draw[ xshift = 1 ] (0,0) to (0.6,0.2) node[ right, text width = 1.1cm ] {This is the source};
+\draw[ yshift = 2 ] (0,0) to (0.6,0.2) node[ right, text width = 1.1cm ] {This is the target};
+\end{sseqpage} \qquad
+%
+\begin{sseqpage}[ page = 3, name = tikz example ]
+\circleclasses[ inner sep = 3pt, ellipse ratio = 1.6 ] (1,0)(0,2)
+\node[ right, font = \tiny ] at (1.2,1.2) {Now it's gone!};
+\end{sseqpage} \ No newline at end of file
diff --git a/graphics/pgf/contrib/spectralsequences/manual/pgfmanual-en-macros.tex b/graphics/pgf/contrib/spectralsequences/manual/pgfmanual-en-macros.tex
deleted file mode 100644
index ab7022b1e4..0000000000
--- a/graphics/pgf/contrib/spectralsequences/manual/pgfmanual-en-macros.tex
+++ /dev/null
@@ -1,1762 +0,0 @@
-% Copyright 2006 by Till Tantau
-%
-% This file may be distributed and/or modified
-%
-% 1. under the LaTeX Project Public License and/or
-% 2. under the GNU Free Documentation License.
-%
-% See the file doc/generic/pgf/licenses/LICENSE for more details.
-
-% $Header: /cvsroot/pgf/pgf/doc/generic/pgf/macros/pgfmanual-en-macros.tex,v 1.81 2014/03/20 10:07:44 tantau Exp $
-
-
-\providecommand\href[2]{\texttt{#1}}
-\providecommand\hypertarget[2]{\texttt{#1}}
-\providecommand\hyperlink[2]{\texttt{#1}}
-
-
-\colorlet{examplefill}{yellow!80!black}
-\definecolor{graphicbackground}{rgb}{0.96,0.96,0.8}
-\definecolor{codebackground}{rgb}{0.9,0.9,1}
-
-\newenvironment{pgfmanualentry}{\list{}{\leftmargin=2em\itemindent-\leftmargin\def\makelabel##1{\hss##1}}}{\endlist}
-\newcommand\pgfmanualentryheadline[1]{\itemsep=0pt\parskip=0pt{\raggedright\item\strut{#1}\par}\topsep=0pt}
-\newcommand\pgfmanualbody{\parskip3pt}
-
-\let\origtexttt=\texttt
-\def\texttt#1{{\def\textunderscore{\char`\_}\def\textbraceleft{\char`\{}\def\textbraceright{\char`\}}\origtexttt{#1}}}
-\def\exclamationmarktext{!}
-\def\atmarktext{@}
-
-{
- \catcode`\|=12
- \gdef\pgfmanualnormalbar{|}
- \catcode`\|=13
- \AtBeginDocument{\gdef|{\ifmmode\pgfmanualnormalbar\else\expandafter\verb\expandafter|\fi}}
-}
-
-
-
-\newenvironment{pgflayout}[1]{
- \begin{pgfmanualentry}
- \pgfmanualentryheadline{%
- \pgfmanualpdflabel{#1}{}%
- \texttt{\string\pgfpagesuselayout\char`\{\declare{#1}\char`\}}\oarg{options}%
- }
- \index{#1@\protect\texttt{#1} layout}%
- \index{Page layouts!#1@\protect\texttt{#1}}%
- \pgfmanualbody
-}
-{
- \end{pgfmanualentry}
-}
-
-
-\newenvironment{command}[1]{
- \begin{pgfmanualentry}
- \extractcommand#1\@@
- \pgfmanualbody
-}
-{
- \end{pgfmanualentry}
-}
-
-\makeatletter
-
-\def\includeluadocumentationof#1{
- \directlua{require 'pgf.manual.DocumentParser'}
- \directlua{pgf.manual.DocumentParser.include '#1'}
-}
-
-\newenvironment{luageneric}[4]{
- \pgfmanualentry
- \pgfmanualentryheadline{#4 \texttt{#1\declare{#2}}#3}
- \index{#2@\protect\texttt{#2} (Lua)}%
- \def\temp{#1}
- \ifx\temp\pgfutil@empty\else
- \index{#1@\protect\texttt{#1}!#2@\protect\texttt{#2} (Lua)}%
- \fi
- \pgfmanualbody
-}{\endpgfmanualentry}
-
-\newenvironment{luatable}[3]{
- \medskip
- \luageneric{#1}{#2}{ (declared in \texttt{#3})}{\textbf{Lua table}}
-}{\endluageneric}
-
-\newenvironment{luafield}[1]{
- \pgfmanualentry
- \pgfmanualentryheadline{Field \texttt{\declare{#1}}}
- \pgfmanualbody
-}{\endpgfmanualentry}
-
-
-\newenvironment{lualibrary}[1]{
- \pgfmanualentry
- \pgfmanualentryheadline{%
- \pgfmanualpdflabel{#1}{}%
- \textbf{Graph Drawing Library} \texttt{\declare{#1}}%
- }
- \index{#1@\protect\texttt{#1} graph drawing library}%
- \index{Libraries!#1@\protect\texttt{#1}}%
- \index{Graph drawing libraries!#1@\protect\texttt{#1}}%
- \vskip.25em
- {\ttfamily\char`\\usegdlibrary\char`\{\declare{#1}\char`\}\space\space \char`\%\space\space \LaTeX\space and plain \TeX}\\
- {\ttfamily\char`\\usegdlibrary[\declare{#1}]\space \char`\%\space\space Con\TeX t}\smallskip\par
- \pgfmanualbody
-}{\endpgfmanualentry}
-
-\newenvironment{luadeclare}[4]{
- \pgfmanualentry
- \def\manual@temp@default{#3}%
- \def\manual@temp@initial{#4}%
- \def\manual@temp@{#3#4}%
- \pgfmanualentryheadline{%
- \pgfmanualpdflabel{#1}{}%
- {\ttfamily/graph
- drawing/\declare{#1}\opt{=}}\opt{#2}\hfill%
- \ifx\manual@temp@\pgfutil@empty\else%
- (\ifx\manual@temp@default\pgfutil@empty\else%
- default {\ttfamily #3}\ifx\manual@temp@initial\pgfutil@empty\else, \fi%
- \fi%
- \ifx\manual@temp@initial\pgfutil@empty\else%
- initially {\ttfamily #4}%
- \fi%
- )\fi%
- }%
- \index{#1@\protect\texttt{#1} key}%
- \pgfmanualbody
- \gdef\myname{#1}%
-% \keyalias{tikz}
-% \keyalias{tikz/graphs}
-}{\endpgfmanualentry}
-
-\newenvironment{luadeclarestyle}[4]{
- \pgfmanualentry
- \def\manual@temp@para{#2}%
- \def\manual@temp@default{#3}%
- \def\manual@temp@initial{#4}%
- \def\manual@temp@{#3#4}%
- \pgfmanualentryheadline{%
- \pgfmanualpdflabel{#1}{}%
- {\ttfamily/graph drawing/\declare{#1}}\ifx\manual@temp@para\pgfutil@empty\else\opt{\texttt=}\opt{#2}\fi\hfill%
- (style\ifx\manual@temp@\pgfutil@empty\else, %
- \ifx\manual@temp@default\pgfutil@empty\else%
- default {\ttfamily #3}\ifx\manual@temp@initial\pgfutil@empty\else, \fi%
- \fi%
- \ifx\manual@temp@initial\pgfutil@empty\else%
- initially {\ttfamily #4}%
- \fi%
- \fi)%
- }%
- \index{#1@\protect\texttt{#1} key}%
- \pgfmanualbody%
- \gdef\myname{#1}%
-% \keyalias{tikz}
-% \keyalias{tikz/graphs}
-}{\endpgfmanualentry}
-
-\newenvironment{luanamespace}[2]{
- \luageneric{#1}{#2}{}{\textbf{Lua namespace}}
-}{\endluageneric}
-
-\newenvironment{luafiledescription}[1]{}{}
-
-\newenvironment{luacommand}[4]{
- \hypertarget{pgf/lua/#1}{\luageneric{#2}{#3}{\texttt{(#4)}}{\texttt{function}}}
-}{\endluageneric}
-
-\newenvironment{luaparameters}{\par\emph{Parameters:}%
- \parametercount=0\relax%
- \let\item=\parameteritem%
- \let\list=\restorelist%
-}
-{\par
-}
-
-\newenvironment{luareturns}{\par\emph{Returns:}%
- \parametercount=0\relax%
- \let\item=\parameteritem%
- \let\list=\restorelist%
-}
-{\par
-}
-
-\newcount\parametercount
-
-\newenvironment{parameterdescription}{\unskip%
- \parametercount=0\relax%
- \let\item=\parameteritem%
- \let\list=\restorelist%
-}
-{\par
-}
-\let\saveditemcommand=\item
-\let\savedlistcommand=\list
-\def\denselist#1#2{\savedlistcommand{#1}{#2}\parskip0pt\itemsep0pt}
-\def\restorelist{\let\item=\saveditemcommand\denselist}
-\def\parameteritem{\pgfutil@ifnextchar[\parameteritem@{}}%}
-\def\parameteritem@[#1]{\advance\parametercount by1\relax\hskip0.15em plus 1em\emph{\the\parametercount.}\kern1ex\def\test{#1}\ifx\test\pgfutil@empty\else#1\kern.5em\fi}
-
-\makeatother
-\newenvironment{commandlist}[1]{%
- \begin{pgfmanualentry}
- \foreach \xx in {#1} {%
- \expandafter\extractcommand\xx\@@
- }%
- \pgfmanualbody
-}{%
- \end{pgfmanualentry}
-}%
-\makeatletter
-
-% \begin{internallist}[register]{\pgf@xa}
-% \end{internallist}
-%
-% \begin{internallist}[register]{\pgf@xa,\pgf@xb}
-% \end{internallist}
-\newenvironment{internallist}[2][register]{%
- \begin{pgfmanualentry}
- \foreach \xx in {#2} {%
- \expandafter\extractinternalcommand\expandafter{\xx}{#1}%
- }%
- \pgfmanualbody
-}{%
- \end{pgfmanualentry}
-}%
-\def\extractinternalcommand#1#2{%
- \removeats{#1}%
- \pgfmanualentryheadline{%
- \pgfmanualpdflabel{\textbackslash\strippedat}{}%
- Internal #2 \declare{\texttt{\string#1}}}%
- \index{Internals!\strippedat @\protect\myprintocmmand{\strippedat}}%
- \index{\strippedat @\protect\myprintocmmand{\strippedat}}%
-}
-
-%% MW: START MATH MACROS
-\def\mvar#1{{\ifmmode\textrm{\textit{#1}}\else\rmfamily\textit{#1}\fi}}
-
-\makeatletter
-
-\def\extractmathfunctionname#1{\extractmathfunctionname@#1(,)\tmpa\tmpb}
-\def\extractmathfunctionname@#1(#2)#3\tmpb{\def\mathname{#1}}
-
-\makeatother
-
-\newenvironment{math-function}[1]{
- \def\mathdefaultname{#1}
- \extractmathfunctionname{#1}
- \edef\mathurl{{math:\mathname}}\expandafter\hypertarget\expandafter{\mathurl}{}%
- \begin{pgfmanualentry}
- \pgfmanualentryheadline{\texttt{#1}}%
- \index{\mathname @\protect\texttt{\mathname} math function}%
- \index{Math functions!\mathname @\protect\texttt{\mathname}}%
- \pgfmanualbody
-}
-{
- \end{pgfmanualentry}
-}
-
-\def\pgfmanualemptytext{}
-\def\pgfmanualvbarvbar{\char`\|\char`\|}
-
-\newenvironment{math-operator}[4][]{%
- \begin{pgfmanualentry}
- \csname math#3operator\endcsname{#2}{#4}
- \def\mathtest{#4}%
- \ifx\mathtest\pgfmanualemptytext%
- \def\mathtype{(#3 operator)}
- \else%
- \def\mathtype{(#3 operator; uses the \texttt{#4} function)}
- \fi%
- \pgfmanualentryheadline{\mathexample\hfill\mathtype}%
- \def\mathtest{#1}%
- \ifx\mathtest\pgfmanualemptytext%
- \index{#2@\protect\texttt{#2} #3 math operator}%
- \index{Math operators!#2@\protect\texttt{#2}}%
- \fi%
- \pgfmanualbody
-}
-{\end{pgfmanualentry}}
-
-\newenvironment{math-operators}[5][]{%
- \begin{pgfmanualentry}
- \csname math#4operator\endcsname{#2}{#3}
- \def\mathtest{#5}%
- \ifx\mathtest\pgfmanualemptytext%
- \def\mathtype{(#4 operators)}
- \else%
- \def\mathtype{(#4 operators; use the \texttt{#5} function)}
- \fi%
- \pgfmanualentryheadline{\mathexample\hfill\mathtype}%
- \def\mathtest{#1}%
- \ifx\mathtest\pgfmanualemptytext%
- \index{#2#3@\protect\texttt{#2\protect\ #3} #4 math operators}%
- \index{Math operators!#2#3@\protect\texttt{#2\protect\ #3}}%
- \fi%
- \pgfmanualbody
-}
-{\end{pgfmanualentry}}
-
-\def\mathinfixoperator#1#2{%
- \def\mathoperator{\texttt{#1}}%
- \def\mathexample{\mvar{x}\space\texttt{#1}\space\mvar{y}}%
-}
-
-\def\mathprefixoperator#1#2{%
- \def\mathoperator{\texttt{#1}}%
- \def\mathexample{\texttt{#1}\mvar{x}}%
-}
-
-\def\mathpostfixoperator#1#2{%
- \def\mathoperator{\texttt{#1}}
- \def\mathexample{\mvar{x}\texttt{#1}}%
-}
-
-\def\mathgroupoperator#1#2{%
- \def\mathoperator{\texttt{#1\ #2}}%
- \def\mathexample{\texttt{#1}\mvar{x}\texttt{#2}}%
-}
-
-\expandafter\let\csname matharray accessoperator\endcsname=\mathgroupoperator
-\expandafter\let\csname matharrayoperator\endcsname=\mathgroupoperator
-
-\def\mathconditionaloperator#1#2{%
- \def\mathoperator{#1\space#2}
- \def\mathexample{\mvar{x}\ \texttt{#1}\ \mvar{y}\ {\texttt{#2}}\ \mvar{z}}
-}
-
-\newcommand\mathcommand[1][\mathdefaultname]{%
- \expandafter\makemathcommand#1(\empty)\stop%
- \expandafter\extractcommand\mathcommandname\@@%
- \medskip
-}
-\makeatletter
-
-\def\makemathcommand#1(#2)#3\stop{%
- \expandafter\def\expandafter\mathcommandname\expandafter{\csname pgfmath#1\endcsname}%
- \ifx#2\empty%
- \else%
- \@makemathcommand#2,\stop,
- \fi}
-\def\@makemathcommand#1,{%
- \ifx#1\stop%
- \else%
- \expandafter\def\expandafter\mathcommandname\expandafter{\mathcommandname{\ttfamily\char`\{#1\char`\}}}%
- \expandafter\@makemathcommand%
- \fi}
-\makeatother
-
-\def\calcname{\textsc{calc}}
-
-\newenvironment{math-keyword}[1]{
- \extracttikzmathkeyword#1@
- \begin{pgfmanualentry}
- \pgfmanualentryheadline{\texttt{\color{red}\mathname}\mathrest}%
- \index{\mathname @\protect\texttt{\mathname} tikz math function}%
- \index{TikZ math functions!\mathname @\protect\texttt{\mathname}}%
- \pgfmanualbody
-}
-{
- \end{pgfmanualentry}
-}
-
-\def\extracttikzmathkeyword#1#2@{%
- \def\mathname{#1}%
- \def\mathrest{#2}%
-}
-
-%% MW: END MATH MACROS
-
-
-\def\extractcommand#1#2\@@{%
- \removeats{#1}%
- \pgfmanualentryheadline{%
- \pgfmanualpdflabel{\textbackslash\strippedat}{}%
- \declare{\texttt{\string#1}}#2%
- }%
- \index{\strippedat @\protect\myprintocmmand{\strippedat}}
-}
-
-\def\luaextractcommand#1#2\relax{%
- \declare{\texttt{\string#1}}#2\par%
-% \removeats{#1}%
- % \index{\strippedat @\protect\myprintocmmand{\strippedat}}
- % \pgfmanualpdflabel{\textbackslash\strippedat}{}%
-}
-
-
-% \begin{environment}{{name}\marg{arguments}}
-\renewenvironment{environment}[1]{
- \begin{pgfmanualentry}
- \extractenvironement#1\@@
- \pgfmanualbody
-}
-{
- \end{pgfmanualentry}
-}
-
-\def\extractenvironement#1#2\@@{%
- \pgfmanualentryheadline{%
- \pgfmanualpdflabel{#1}{}%
- {\ttfamily\char`\\begin\char`\{\declare{#1}\char`\}}#2%
- }%
- \pgfmanualentryheadline{{\ttfamily\ \ }\meta{environment contents}}%
- \pgfmanualentryheadline{{\ttfamily\char`\\end\char`\{\declare{#1}\char`\}}}%
- \index{#1@\protect\texttt{#1} environment}%
- \index{Environments!#1@\protect\texttt{#1}}
-}
-
-
-\newenvironment{plainenvironment}[1]{
- \begin{pgfmanualentry}
- \extractplainenvironement#1\@@
- \pgfmanualbody
-}
-{
- \end{pgfmanualentry}
-}
-
-\def\extractplainenvironement#1#2\@@{%
- \pgfmanualentryheadline{{\ttfamily\declare{\char`\\#1}}#2}%
- \pgfmanualentryheadline{{\ttfamily\ \ }\meta{environment contents}}%
- \pgfmanualentryheadline{{\ttfamily\declare{\char`\\end#1}}}%
- \index{#1@\protect\texttt{#1} environment}%
- \index{Environments!#1@\protect\texttt{#1}}%
-}
-
-
-\newenvironment{contextenvironment}[1]{
- \begin{pgfmanualentry}
- \extractcontextenvironement#1\@@
- \pgfmanualbody
-}
-{
- \end{pgfmanualentry}
-}
-
-\def\extractcontextenvironement#1#2\@@{%
- \pgfmanualentryheadline{{\ttfamily\declare{\char`\\start#1}}#2}%
- \pgfmanualentryheadline{{\ttfamily\ \ }\meta{environment contents}}%
- \pgfmanualentryheadline{{\ttfamily\declare{\char`\\stop#1}}}%
- \index{#1@\protect\texttt{#1} environment}%
- \index{Environments!#1@\protect\texttt{#1}}}
-
-
-\newenvironment{shape}[1]{
- \begin{pgfmanualentry}
- \pgfmanualentryheadline{%
- \pgfmanualpdflabel{#1}{}%
- \textbf{Shape} {\ttfamily\declare{#1}}%
- }%
- \index{#1@\protect\texttt{#1} shape}%
- \index{Shapes!#1@\protect\texttt{#1}}
- \pgfmanualbody
-}
-{
- \end{pgfmanualentry}
-}
-
-\newenvironment{pictype}[2]{
- \begin{pgfmanualentry}
- \pgfmanualentryheadline{%
- \pgfmanualpdflabel{#1}{}%
- \textbf{Pic type} {\ttfamily\declare{#1}#2}%
- }%
- \index{#1@\protect\texttt{#1} pic type}%
- \index{Pic Types!#1@\protect\texttt{#1}}
- \pgfmanualbody
-}
-{
- \end{pgfmanualentry}
-}
-
-\newenvironment{shading}[1]{
- \begin{pgfmanualentry}
- \pgfmanualentryheadline{%
- \pgfmanualpdflabel{#1}{}%
- \textbf{Shading} {\ttfamily\declare{#1}}}%
- \index{#1@\protect\texttt{#1} shading}%
- \index{Shadings!#1@\protect\texttt{#1}}
- \pgfmanualbody
-}
-{
- \end{pgfmanualentry}
-}
-
-
-\newenvironment{graph}[1]{
- \begin{pgfmanualentry}
- \pgfmanualentryheadline{%
- \pgfmanualpdflabel{#1}{}%
- \textbf{Graph} {\ttfamily\declare{#1}}}%
- \index{#1@\protect\texttt{#1} graph}%
- \index{Graphs!#1@\protect\texttt{#1}}
- \pgfmanualbody
-}
-{
- \end{pgfmanualentry}
-}
-
-\newenvironment{gdalgorithm}[2]{
- \begin{pgfmanualentry}
- \pgfmanualentryheadline{%
- \pgfmanualpdflabel{#1}{}%
- \textbf{Layout} {\ttfamily/graph drawing/\declare{#1}\opt{=}}\opt{\meta{options}}}%
- \index{#1@\protect\texttt{#1} layout}%
- \index{Layouts!#1@\protect\texttt{#1}}%
- \foreach \algo in {#2}
- {\edef\marshal{\noexpand\index{#2@\noexpand\protect\noexpand\texttt{#2} algorithm}}\marshal}%
- \index{Graph drawing layouts!#1@\protect\texttt{#1}}
- \item{\small alias {\ttfamily/tikz/#1}}\par
- \item{\small alias {\ttfamily/tikz/graphs/#1}}\par
- \item{\small Employs {\ttfamily algorithm=#2}}\par
- \pgfmanualbody
-}
-{
- \end{pgfmanualentry}
-}
-
-\newenvironment{dataformat}[1]{
- \begin{pgfmanualentry}
- \pgfmanualentryheadline{%
- \pgfmanualpdflabel{#1}{}%
- \textbf{Format} {\ttfamily\declare{#1}}}%
- \index{#1@\protect\texttt{#1} format}%
- \index{Formats!#1@\protect\texttt{#1}}
- \pgfmanualbody
-}
-{
- \end{pgfmanualentry}
-}
-
-\newenvironment{stylesheet}[1]{
- \begin{pgfmanualentry}
- \pgfmanualentryheadline{%
- \pgfmanualpdflabel{#1}{}%
- \textbf{Style sheet} {\ttfamily\declare{#1}}}%
- \index{#1@\protect\texttt{#1} style sheet}%
- \index{Style sheets!#1@\protect\texttt{#1}}
- \pgfmanualbody
-}
-{
- \end{pgfmanualentry}
-}
-
-\newenvironment{handler}[1]{
- \begin{pgfmanualentry}
- \extracthandler#1\@nil%
- \pgfmanualbody
-}
-{
- \end{pgfmanualentry}
-}
-
-\def\gobble#1{}
-\def\extracthandler#1#2\@nil{%
- \pgfmanualentryheadline{%
- \pgfmanualpdflabel{/handlers/#1}{}%
- \textbf{Key handler} \meta{key}{\ttfamily/\declare{#1}}#2}%
- \index{\gobble#1@\protect\texttt{#1} handler}%
- \index{Key handlers!#1@\protect\texttt{#1}}
-}
-
-
-\makeatletter
-
-
-\newenvironment{stylekey}[1]{
- \begin{pgfmanualentry}
- \def\extrakeytext{style, }
- \extractkey#1\@nil%
- \pgfmanualbody
-}
-{
- \end{pgfmanualentry}
-}
-
-\def\choicesep{$\vert$}%
-\def\choicearg#1{\texttt{#1}}
-
-\newif\iffirstchoice
-
-% \mchoice{choice1,choice2,choice3}
-\newcommand\mchoice[1]{%
- \begingroup
- \firstchoicetrue
- \foreach \mchoice@ in {#1} {%
- \iffirstchoice
- \global\firstchoicefalse
- \else
- \choicesep
- \fi
- \choicearg{\mchoice@}%
- }%
- \endgroup
-}%
-
-% \begin{key}{/path/x=value}
-% \begin{key}{/path/x=value (initially XXX)}
-% \begin{key}{/path/x=value (default XXX)}
-\newenvironment{key}[1]{
- \begin{pgfmanualentry}
- \def\extrakeytext{}
- %\def\altpath{\emph{\color{gray}or}}%
- \extractkey#1\@nil%
- \pgfmanualbody
-}
-{
- \end{pgfmanualentry}
-}
-
-% \insertpathifneeded{a key}{/pgf} -> assign mykey={/pgf/a key}
-% \insertpathifneeded{/tikz/a key}{/pgf} -> assign mykey={/tikz/a key}
-%
-% #1: the key
-% #2: a default path (or empty)
-\def\insertpathifneeded#1#2{%
- \def\insertpathifneeded@@{#2}%
- \ifx\insertpathifneeded@@\empty
- \def\mykey{#1}%
- \else
- \insertpathifneeded@#2\@nil
- \ifpgfutil@in@
- \def\mykey{#2/#1}%
- \else
- \def\mykey{#1}%
- \fi
- \fi
-}%
-\def\insertpathifneeded@#1#2\@nil{%
- \def\insertpathifneeded@@{#1}%
- \def\insertpathifneeded@@@{/}%
- \ifx\insertpathifneeded@@\insertpathifneeded@@@
- \pgfutil@in@true
- \else
- \pgfutil@in@false
- \fi
-}%
-
-% \begin{keylist}[default path]
-% {/path/option 1=value,/path/option 2=value2}
-% \end{keylist}
-\newenvironment{keylist}[2][]{%
- \begin{pgfmanualentry}
- \def\extrakeytext{}%
- \foreach \xx in {#2} {%
- \expandafter\insertpathifneeded\expandafter{\xx}{#1}%
- \expandafter\extractkey\mykey\@nil%
- }%
- \pgfmanualbody
-}{%
- \end{pgfmanualentry}
-}%
-
-\def\extractkey#1\@nil{%
- \pgfutil@in@={#1}%
- \ifpgfutil@in@%
- \extractkeyequal#1\@nil
- \else%
- \pgfutil@in@{(initial}{#1}%
- \ifpgfutil@in@%
- \extractequalinitial#1\@nil%
- \else
- \pgfmanualentryheadline{%
- \def\mykey{#1}%
- \def\mypath{}%
- \gdef\myname{}%
- \firsttimetrue%
- \pgfmanualdecomposecount=0\relax%
- \decompose#1/\nil%
- {\ttfamily\declare{#1}}\hfill(\extrakeytext no value)}%
- \fi
- \fi%
-}
-
-\def\extractkeyequal#1=#2\@nil{%
- \pgfutil@in@{(default}{#2}%
- \ifpgfutil@in@%
- \extractdefault{#1}#2\@nil%
- \else%
- \pgfutil@in@{(initial}{#2}%
- \ifpgfutil@in@%
- \extractinitial{#1}#2\@nil%
- \else
- \pgfmanualentryheadline{%
- \def\mykey{#1}%
- \def\mypath{}%
- \gdef\myname{}%
- \firsttimetrue%
- \pgfmanualdecomposecount=0\relax%
- \decompose#1/\nil%
- {\ttfamily\declare{#1}=}#2\hfill(\extrakeytext no default)}%
- \fi%
- \fi%
-}
-
-\def\extractdefault#1#2(default #3)\@nil{%
- \pgfmanualentryheadline{%
- \def\mykey{#1}%
- \def\mypath{}%
- \gdef\myname{}%
- \firsttimetrue%
- \pgfmanualdecomposecount=0\relax%
- \decompose#1/\nil%
- {\ttfamily\declare{#1}\opt{=}}\opt{#2}\hfill (\extrakeytext default {\ttfamily#3})}%
-}
-
-\def\extractinitial#1#2(initially #3)\@nil{%
- \pgfmanualentryheadline{%
- \def\mykey{#1}%
- \def\mypath{}%
- \gdef\myname{}%
- \firsttimetrue%
- \pgfmanualdecomposecount=0\relax%
- \decompose#1/\nil%
- {\ttfamily\declare{#1}=}#2\hfill (\extrakeytext no default, initially {\ttfamily#3})}%
-}
-
-\def\extractequalinitial#1 (initially #2)\@nil{%
- \pgfmanualentryheadline{%
- \def\mykey{#1}%
- \def\mypath{}%
- \gdef\myname{}%
- \firsttimetrue%
- \pgfmanualdecomposecount=0\relax%
- \decompose#1/\nil%
- {\ttfamily\declare{#1}}\hfill (\extrakeytext initially {\ttfamily#2})}%
-}
-
-% Introduces a key alias '/#1/<name of current key>'
-% to be used inside of \begin{key} ... \end{key}
-\def\keyalias#1{\vspace{-3pt}\item{\small alias {\ttfamily/#1/\myname}}\vspace{-2pt}\par
- \pgfmanualpdflabel{/#1/\myname}{}%
-}
-
-\newif\iffirsttime
-\newcount\pgfmanualdecomposecount
-
-\makeatother
-
-\def\decompose/#1/#2\nil{%
- \def\test{#2}%
- \ifx\test\empty%
- % aha.
- \index{#1@\protect\texttt{#1} key}%
- \index{\mypath#1@\protect\texttt{#1}}%
- \gdef\myname{#1}%
- \pgfmanualpdflabel{#1}{}
- \else%
- \advance\pgfmanualdecomposecount by1\relax%
- \ifnum\pgfmanualdecomposecount>2\relax%
- \decomposetoodeep#1/#2\nil%
- \else%
- \iffirsttime%
- \begingroup%
- % also make a pdf link anchor with full key path.
- \def\hyperlabelwithoutslash##1/\nil{%
- \pgfmanualpdflabel{##1}{}%
- }%
- \hyperlabelwithoutslash/#1/#2\nil%
- \endgroup%
- \def\mypath{#1@\protect\texttt{/#1/}!}%
- \firsttimefalse%
- \else%
- \expandafter\def\expandafter\mypath\expandafter{\mypath#1@\protect\texttt{#1/}!}%
- \fi%
- \def\firsttime{}%
- \decompose/#2\nil%
- \fi%
- \fi%
-}
-
-\def\decomposetoodeep#1/#2/\nil{%
- % avoid too-deep nesting in index
- \index{#1/#2@\protect\texttt{#1/#2} key}%
- \index{\mypath#1/#2@\protect\texttt{#1/#2}}%
- \decomposefindlast/#1/#2/\nil%
-}
-\makeatletter
-\def\decomposefindlast/#1/#2\nil{%
- \def\test{#2}%
- \ifx\test\pgfutil@empty%
- \gdef\myname{#1}%
- \else%
- \decomposefindlast/#2\nil%
- \fi%
-}
-\makeatother
-\def\indexkey#1{%
- \def\mypath{}%
- \decompose#1/\nil%
-}
-
-\newenvironment{predefinedmethod}[1]{
- \begin{pgfmanualentry}
- \extractpredefinedmethod#1\@nil
- \pgfmanualbody
-}
-{
- \end{pgfmanualentry}
-}
-\def\extractpredefinedmethod#1(#2)\@nil{%
- \pgfmanualentryheadline{%
- \pgfmanualpdflabel{#1}{}%
- Method \declare{\ttfamily #1}\texttt(#2\texttt) \hfill(predefined for all classes)}
- \index{#1@\protect\texttt{#1} method}%
- \index{Methods!#1@\protect\texttt{#1}}
-}
-
-
-\newenvironment{ooclass}[1]{
- \begin{pgfmanualentry}
- \def\currentclass{#1}
- \pgfmanualentryheadline{%
- \pgfmanualpdflabel{#1}{}%
- \textbf{Class} \declare{\texttt{#1}}}
- \index{#1@\protect\texttt{#1} class}%
- \index{Class #1@Class \protect\texttt{#1}}%
- \index{Classes!#1@\protect\texttt{#1}}
- \pgfmanualbody
-}
-{
- \end{pgfmanualentry}
-}
-
-\newenvironment{method}[1]{
- \begin{pgfmanualentry}
- \extractmethod#1\@nil
- \pgfmanualbody
-}
-{
- \end{pgfmanualentry}
-}
-\def\extractmethod#1(#2)\@nil{%
- \def\test{#1}
- \ifx\test\currentclass
- \pgfmanualentryheadline{%
- \pgfmanualpdflabel{#1}{}%
- Constructor \declare{\ttfamily #1}\texttt(#2\texttt)}
- \else
- \pgfmanualentryheadline{%
- \pgfmanualpdflabel{#1}{}%
- Method \declare{\ttfamily #1}\texttt(#2\texttt)}
- \fi
- \index{#1@\protect\texttt{#1} method}%
- \index{Methods!#1@\protect\texttt{#1}}
- \index{Class \currentclass!#1@\protect\texttt{#1}}%
-}
-
-\newenvironment{attribute}[1]{
- \begin{pgfmanualentry}
- \extractattribute#1\@nil
- \pgfmanualbody
-}
-{
- \end{pgfmanualentry}
-}
-\def\extractattribute#1=#2;\@nil{%
- \def\test{#2}%
- \ifx\test\@empty
- \pgfmanualentryheadline{%
- \pgfmanualpdflabel{#1}{}%
- Private attribute \declare{\ttfamily #1} \hfill (initially empty)}
- \else
- \pgfmanualentryheadline{%
- \pgfmanualpdflabel{#1}{}%
- Private attribute \declare{\ttfamily #1} \hfill (initially {\ttfamily #2})}
- \fi
- \index{#1@\protect\texttt{#1} attribute}%
- \index{Attributes!#1@\protect\texttt{#1}}
- \index{Class \currentclass!#1@\protect\texttt{#1}}%
-}
-
-
-
-\newenvironment{predefinednode}[1]{
- \begin{pgfmanualentry}
- \pgfmanualentryheadline{%
- \pgfmanualpdflabel{#1}{}%
- \textbf{Predefined node} {\ttfamily\declare{#1}}}%
- \index{#1@\protect\texttt{#1} node}%
- \index{Predefined node!#1@\protect\texttt{#1}}
- \pgfmanualbody
-}
-{
- \end{pgfmanualentry}
-}
-
-\newenvironment{coordinatesystem}[1]{
- \begin{pgfmanualentry}
- \pgfmanualentryheadline{%
- \pgfmanualpdflabel{#1}{}%
- \textbf{Coordinate system} {\ttfamily\declare{#1}}}%
- \index{#1@\protect\texttt{#1} coordinate system}%
- \index{Coordinate systems!#1@\protect\texttt{#1}}
- \pgfmanualbody
-}
-{
- \end{pgfmanualentry}
-}
-
-\newenvironment{snake}[1]{
- \begin{pgfmanualentry}
- \pgfmanualentryheadline{\textbf{Snake} {\ttfamily\declare{#1}}}%
- \index{#1@\protect\texttt{#1} snake}%
- \index{Snakes!#1@\protect\texttt{#1}}
- \pgfmanualbody
-}
-{
- \end{pgfmanualentry}
-}
-
-\newenvironment{decoration}[1]{
- \begin{pgfmanualentry}
- \pgfmanualentryheadline{\textbf{Decoration} {\ttfamily\declare{#1}}}%
- \index{#1@\protect\texttt{#1} decoration}%
- \index{Decorations!#1@\protect\texttt{#1}}
- \pgfmanualbody
-}
-{
- \end{pgfmanualentry}
-}
-
-
-\def\pgfmanualbar{\char`\|}
-\makeatletter
-\newenvironment{pathoperation}[3][]{
- \begin{pgfmanualentry}
- \def\pgfmanualtest{#1}%
- \pgfmanualentryheadline{%
- \ifx\pgfmanualtest\@empty%
- \pgfmanualpdflabel{#2}{}%
- \fi%
- \textcolor{gray}{{\ttfamily\char`\\path}\
- \ \dots}
- \declare{\texttt{\noligs{#2}}}#3\ \textcolor{gray}{\dots\texttt{;}}}%
- \ifx\pgfmanualtest\@empty%
- \index{#2@\protect\texttt{#2} path operation}%
- \index{Path operations!#2@\protect\texttt{#2}}%
- \fi%
- \pgfmanualbody
-}
-{
- \end{pgfmanualentry}
-}
-\newenvironment{datavisualizationoperation}[3][]{
- \begin{pgfmanualentry}
- \def\pgfmanualtest{#1}%
- \pgfmanualentryheadline{%
- \ifx\pgfmanualtest\@empty%
- \pgfmanualpdflabel{#2}{}%
- \fi%
- \textcolor{gray}{{\ttfamily\char`\\datavisualization}\
- \ \dots}
- \declare{\texttt{\noligs{#2}}}#3\ \textcolor{gray}{\dots\texttt{;}}}%
- \ifx\pgfmanualtest\@empty%
- \index{#2@\protect\texttt{#2} (data visualization)}%
- \index{Data visualization!#2@\protect\texttt{#2}}%
- \fi%
- \pgfmanualbody
-}
-{
- \end{pgfmanualentry}
-}
-\makeatother
-
-\def\doublebs{\texttt{\char`\\\char`\\}}
-
-
-\newenvironment{package}[1]{
- \begin{pgfmanualentry}
- \pgfmanualentryheadline{%
- \pgfmanualpdflabel{#1}{}%
- {\ttfamily\char`\\usepackage\char`\{\declare{#1}\char`\}\space\space \char`\%\space\space \LaTeX}}
- \index{#1@\protect\texttt{#1} package}%
- \index{Packages and files!#1@\protect\texttt{#1}}%
- \pgfmanualentryheadline{{\ttfamily\char`\\input \declare{#1}.tex\space\space\space \char`\%\space\space plain \TeX}}
- \pgfmanualentryheadline{{\ttfamily\char`\\usemodule[\declare{#1}]\space\space \char`\%\space\space Con\TeX t}}
- \pgfmanualbody
-}
-{
- \end{pgfmanualentry}
-}
-
-
-\newenvironment{pgfmodule}[1]{
- \begin{pgfmanualentry}
- \pgfmanualentryheadline{%
- \pgfmanualpdflabel{#1}{}%
- {\ttfamily\char`\\usepgfmodule\char`\{\declare{#1}\char`\}\space\space\space
- \char`\%\space\space \LaTeX\space and plain \TeX\space and pure pgf}}
- \index{#1@\protect\texttt{#1} module}%
- \index{Modules!#1@\protect\texttt{#1}}%
- \pgfmanualentryheadline{{\ttfamily\char`\\usepgfmodule[\declare{#1}]\space\space \char`\%\space\space Con\TeX t\space and pure pgf}}
- \pgfmanualbody
-}
-{
- \end{pgfmanualentry}
-}
-
-\newenvironment{pgflibrary}[1]{
- \begin{pgfmanualentry}
- \pgfmanualentryheadline{%
- \pgfmanualpdflabel{#1}{}%
- \textbf{\tikzname\ Library} \texttt{\declare{#1}}}
- \index{#1@\protect\texttt{#1} library}%
- \index{Libraries!#1@\protect\texttt{#1}}%
- \vskip.25em%
- {{\ttfamily\char`\\usepgflibrary\char`\{\declare{#1}\char`\}\space\space\space
- \char`\%\space\space \LaTeX\space and plain \TeX\space and pure pgf}}\\
- {{\ttfamily\char`\\usepgflibrary[\declare{#1}]\space\space \char`\%\space\space Con\TeX t\space and pure pgf}}\\
- {{\ttfamily\char`\\usetikzlibrary\char`\{\declare{#1}\char`\}\space\space
- \char`\%\space\space \LaTeX\space and plain \TeX\space when using \tikzname}}\\
- {{\ttfamily\char`\\usetikzlibrary[\declare{#1}]\space
- \char`\%\space\space Con\TeX t\space when using \tikzname}}\\[.5em]
- \pgfmanualbody
-}
-{
- \end{pgfmanualentry}
-}
-
-\newenvironment{purepgflibrary}[1]{
- \begin{pgfmanualentry}
- \pgfmanualentryheadline{%
- \pgfmanualpdflabel{#1}{}%
- \textbf{{\small PGF} Library} \texttt{\declare{#1}}}
- \index{#1@\protect\texttt{#1} library}%
- \index{Libraries!#1@\protect\texttt{#1}}%
- \vskip.25em%
- {{\ttfamily\char`\\usepgflibrary\char`\{\declare{#1}\char`\}\space\space\space
- \char`\%\space\space \LaTeX\space and plain \TeX}}\\
- {{\ttfamily\char`\\usepgflibrary[\declare{#1}]\space\space \char`\%\space\space Con\TeX t}}\\[.5em]
- \pgfmanualbody
-}
-{
- \end{pgfmanualentry}
-}
-
-\newenvironment{tikzlibrary}[1]{
- \begin{pgfmanualentry}
- \pgfmanualentryheadline{%
- \pgfmanualpdflabel{#1}{}%
- \textbf{\tikzname\ Library} \texttt{\declare{#1}}}
- \index{#1@\protect\texttt{#1} library}%
- \index{Libraries!#1@\protect\texttt{#1}}%
- \vskip.25em%
- {{\ttfamily\char`\\usetikzlibrary\char`\{\declare{#1}\char`\}\space\space \char`\%\space\space \LaTeX\space and plain \TeX}}\\
- {{\ttfamily\char`\\usetikzlibrary[\declare{#1}]\space \char`\%\space\space Con\TeX t}}\\[.5em]
- \pgfmanualbody
-}
-{
- \end{pgfmanualentry}
-}
-
-
-
-\newenvironment{filedescription}[1]{
- \begin{pgfmanualentry}
- \pgfmanualentryheadline{File {\ttfamily\declare{#1}}}%
- \index{#1@\protect\texttt{#1} file}%
- \index{Packages and files!#1@\protect\texttt{#1}}%
- \pgfmanualbody
-}
-{
- \end{pgfmanualentry}
-}
-
-
-\newenvironment{packageoption}[1]{
- \begin{pgfmanualentry}
- \pgfmanualentryheadline{{\ttfamily\char`\\usepackage[\declare{#1}]\char`\{pgf\char`\}}}
- \index{#1@\protect\texttt{#1} package option}%
- \index{Package options for \textsc{pgf}!#1@\protect\texttt{#1}}%
- \pgfmanualbody
-}
-{
- \end{pgfmanualentry}
-}
-
-
-
-\newcommand\opt[1]{{\color{black!50!green}#1}}
-\newcommand\ooarg[1]{{\ttfamily[}\meta{#1}{\ttfamily]}}
-
-\def\opt{\afterassignment\pgfmanualopt\let\next=}
-\def\pgfmanualopt{\ifx\next\bgroup\bgroup\color{black!50!green}\else{\color{black!50!green}\next}\fi}
-
-
-
-\def\beamer{\textsc{beamer}}
-\def\pdf{\textsc{pdf}}
-\def\eps{\texttt{eps}}
-\def\pgfname{\textsc{pgf}}
-\def\tikzname{Ti\emph{k}Z}
-\def\pstricks{\textsc{pstricks}}
-\def\prosper{\textsc{prosper}}
-\def\seminar{\textsc{seminar}}
-\def\texpower{\textsc{texpower}}
-\def\foils{\textsc{foils}}
-
-{
- \makeatletter
- \global\let\myempty=\@empty
- \global\let\mygobble=\@gobble
- \catcode`\@=12
- \gdef\getridofats#1@#2\relax{%
- \def\getridtest{#2}%
- \ifx\getridtest\myempty%
- \expandafter\def\expandafter\strippedat\expandafter{\strippedat#1}
- \else%
- \expandafter\def\expandafter\strippedat\expandafter{\strippedat#1\protect\printanat}
- \getridofats#2\relax%
- \fi%
- }
-
- \gdef\removeats#1{%
- \let\strippedat\myempty%
- \edef\strippedtext{\stripcommand#1}%
- \expandafter\getridofats\strippedtext @\relax%
- }
-
- \gdef\stripcommand#1{\expandafter\mygobble\string#1}
-}
-
-\def\printanat{\char`\@}
-
-\def\declare{\afterassignment\pgfmanualdeclare\let\next=}
-\def\pgfmanualdeclare{\ifx\next\bgroup\bgroup\color{red!75!black}\else{\color{red!75!black}\next}\fi}
-
-
-\let\textoken=\command
-\let\endtextoken=\endcommand
-
-\def\myprintocmmand#1{\texttt{\char`\\#1}}
-
-\def\example{\par\smallskip\noindent\textit{Example: }}
-\def\themeauthor{\par\smallskip\noindent\textit{Theme author: }}
-
-
-\def\indexoption#1{%
- \index{#1@\protect\texttt{#1} option}%
- \index{Graphic options and styles!#1@\protect\texttt{#1}}%
-}
-
-\def\itemcalendaroption#1{\item \declare{\texttt{#1}}%
- \index{#1@\protect\texttt{#1} date test}%
- \index{Date tests!#1@\protect\texttt{#1}}%
-}
-
-
-
-\def\class#1{\list{}{\leftmargin=2em\itemindent-\leftmargin\def\makelabel##1{\hss##1}}%
-\extractclass#1@\par\topsep=0pt}
-\def\endclass{\endlist}
-\def\extractclass#1#2@{%
-\item{{{\ttfamily\char`\\documentclass}#2{\ttfamily\char`\{\declare{#1}\char`\}}}}%
- \index{#1@\protect\texttt{#1} class}%
- \index{Classes!#1@\protect\texttt{#1}}}
-
-\def\partname{Part}
-
-\makeatletter
-\def\index@prologue{\section*{Index}\addcontentsline{toc}{section}{Index}
- This index only contains automatically generated entries. A good
- index should also contain carefully selected keywords. This index is
- not a good index.
- \bigskip
-}
-\c@IndexColumns=2
- \def\theindex{\@restonecoltrue
- \columnseprule \z@ \columnsep 29\p@
- \twocolumn[\index@prologue]%
- \parindent -30pt
- \columnsep 15pt
- \parskip 0pt plus 1pt
- \leftskip 30pt
- \rightskip 0pt plus 2cm
- \small
- \def\@idxitem{\par}%
- \let\item\@idxitem \ignorespaces}
- \def\endtheindex{\onecolumn}
-\def\noindexing{\let\index=\@gobble}
-
-
-\newenvironment{arrowtipsimple}[1]{
- \begin{pgfmanualentry}
- \pgfmanualentryheadline{\textbf{Arrow Tip Kind} {\ttfamily#1}}
- \index{#1@\protect\texttt{#1} arrow tip}%
- \index{Arrow tips!#1@\protect\texttt{#1}}%
- \def\currentarrowtype{#1}
- \pgfmanualbody}
-{
- \end{pgfmanualentry}
-}
-
-\newenvironment{arrowtip}[4]{
- \begin{pgfmanualentry}
- \pgfmanualentryheadline{\textbf{Arrow Tip Kind} {\ttfamily#1}}
- \index{#1@\protect\texttt{#1} arrow tip}%
- \index{Arrow tips!#1@\protect\texttt{#1}}%
- \pgfmanualbody
- \def\currentarrowtype{#1}
- \begin{minipage}[t]{10.25cm}
- #2
- \end{minipage}\hskip5mm\begin{minipage}[t]{4.75cm}
- \leavevmode\vskip-2em
- \tikz{
- \draw [black!50,line width=5mm,-{#1[#3,color=black]}] (-4,0) -- (0,0);
- \foreach \action in {#4}
- { \expandafter\processaction\action\relax }
- }
- \end{minipage}\par\smallskip
- }
-{
- \end{pgfmanualentry}
-}
-
-\newenvironment{arrowcap}[5]{
- \begin{pgfmanualentry}
- \pgfmanualentryheadline{\textbf{Arrow Tip Kind} {\ttfamily#1}}
- \index{#1@\protect\texttt{#1} arrow tip}%
- \index{Arrow tips!#1@\protect\texttt{#1}}%
- \pgfmanualbody
- \def\currentarrowtype{#1}
- \begin{minipage}[t]{10.25cm}
- #2
- \end{minipage}\hskip5mm\begin{minipage}[t]{4.75cm}
- \leavevmode\vskip-2em
- \tikz{
- \path [tips, line width=10mm,-{#1[#3,color=black]}] (-4,0) -- (0,0);
- \draw [line width=10mm,black!50] (-3,0) -- (#5,0);
- \foreach \action in {#4}
- { \expandafter\processaction\action\relax }
- }
- \end{minipage}\par\smallskip
- }
-{
- \end{pgfmanualentry}
-}
-
-\def\processaction#1=#2\relax{
- \expandafter\let\expandafter\pgf@temp\csname manual@action@#1\endcsname
- \ifx\pgf@temp\relax\else
- \pgf@temp#2/0/\relax
- \fi
-}
-\def\manual@action@length#1/#2/#3\relax{%
- \draw [red,|<->|,semithick,xshift=#2] ([yshift=4pt]current bounding
- box.north -| -#1,0) coordinate (last length) -- node
- [above=-2pt] {|length|} ++(#1,0);
-}
-\def\manual@action@width#1/#2/#3\relax{%
- \draw [overlay, red,|<->|,semithick] (.5,-#1/2) -- node [below,sloped] {|width|} (.5,#1/2);
-}
-\def\manual@action@inset#1/#2/#3\relax{%
- \draw [red,|<->|,semithick,xshift=#2] ([yshift=-4pt]current bounding
- box.south -| last length) -- node [below] {|inset|} ++(#1,0);
-}
-
-\newenvironment{arrowexamples}
-{\begin{tabbing}
- \hbox to \dimexpr\linewidth-5.5cm\relax{\emph{Appearance of the below at line width} \hfil} \=
- \hbox to 1.9cm{\emph{0.4pt}\hfil} \= \hbox to 2cm{\emph{0.8pt}\hfil} \= \emph{1.6pt} \\
- }
-{\end{tabbing}\vskip-1em}
-
-\newenvironment{arrowcapexamples}
-{\begin{tabbing}
- \hbox to \dimexpr\linewidth-5.5cm\relax{\emph{Appearance of the below at line width} \hfil} \=
- \hbox to 1.9cm{\emph{1ex}\hfil} \= \hbox to 2cm{\emph{1em}\hfil} \\
- }
-{\end{tabbing}\vskip-1em}
-
-\def\arrowcapexample#1[#2]{\def\temp{#1}\ifx\temp\pgfutil@empty\arrowcapexample@\currentarrowtype[{#2}]\else\arrowcapexample@#1[{#2}]\fi}
-\def\arrowcapexample@#1[#2]{%
- {\sfcode`\.1000\small\texttt{#1[#2]}} \>
- \kern-.5ex\tikz [baseline,>={#1[#2]}] \draw [line
- width=1ex,->] (0,.5ex) -- (2em,.5ex); \>
- \kern-.5em\tikz [baseline,>={#1[#2]}] \draw [line
- width=1em,->] (0,.5ex) -- (2em,.5ex); \\
-}
-
-\def\arrowexample#1[#2]{\def\temp{#1}\ifx\temp\pgfutil@empty\arrowexample@\currentarrowtype[{#2}]\else\arrowexample@#1[{#2}]\fi}
-\def\arrowexample@#1[#2]{%
- {\sfcode`\.1000\small\texttt{#1[#2]}} \>
- \tikz [baseline,>={#1[#2]}] \draw [line
- width=0.4pt,->] (0,.5ex) -- (2em,.5ex); thin \>
- \tikz [baseline,>={#1[#2]}] \draw [line
- width=0.8pt,->] (0,.5ex) -- (2em,.5ex); \textbf{thick} \>
- \tikz [baseline,>={#1[#2]}] \draw [line
- width=1.6pt,->] (0,.5ex) -- (3em,.5ex); \\
-}
-\def\arrowexampledup[#1]{\arrowexample[{#1] \currentarrowtype[}]}
-\def\arrowexampledupdot[#1]{\arrowexample[{#1] . \currentarrowtype[}]}
-
-\def\arrowexampledouble#1[#2]{\def\temp{#1}\ifx\temp\pgfutil@empty\arrowexampledouble@\currentarrowtype[{#2}]\else\arrowexampledouble@#1[{#2}]\fi}
-\def\arrowexampledouble@#1[#2]{%
- {\sfcode`\.1000\small\texttt{#1[#2]} on double line} \>
- \tikz [baseline,>={#1[#2]}]
- \draw [double equal sign distance,line width=0.4pt,->] (0,.5ex) -- (2em,.5ex); thin \>
- \tikz [baseline,>={#1[#2]}]
- \draw [double equal sign distance,line width=0.8pt,->] (0,.5ex) -- (2em,.5ex); \textbf{thick} \>
- \tikz [baseline,>={#1[#2]}]
- \draw [double equal sign distance, line width=1.6pt,->] (0,.5ex) -- (3em,.5ex); \\
-}
-
-
-
-\newcommand\symarrow[1]{%
- \index{#1@\protect\texttt{#1} arrow tip}%
- \index{Arrow tips!#1@\protect\texttt{#1}}%
- \texttt{#1}& yields thick
- \begin{tikzpicture}[arrows={#1-#1},thick,baseline]
- \useasboundingbox (-1mm,-0.5ex) rectangle (1.1cm,2ex);
- \fill [black!15] (1cm,-.5ex) rectangle (1.1cm,1.5ex) (-1mm,-.5ex) rectangle (0mm,1.5ex) ;
- \draw (0pt,.5ex) -- (1cm,.5ex);
- \end{tikzpicture} and thin
- \begin{tikzpicture}[arrows={#1-#1},thin,baseline]
- \useasboundingbox (-1mm,-0.5ex) rectangle (1.1cm,2ex);
- \fill [black!15] (1cm,-.5ex) rectangle (1.1cm,1.5ex) (-1mm,-.5ex) rectangle (0mm,1.5ex) ;
- \draw (0pt,.5ex) -- (1cm,.5ex);
- \end{tikzpicture}
-}
-\newcommand\symarrowdouble[1]{%
- \index{#1@\protect\texttt{#1} arrow tip}%
- \index{Arrow tips!#1@\protect\texttt{#1}}%
- \texttt{#1}& yields thick
- \begin{tikzpicture}[arrows={#1-#1},thick,baseline]
- \useasboundingbox (-1mm,-0.5ex) rectangle (1.1cm,2ex);
- \fill [black!15] (1cm,-.5ex) rectangle (1.1cm,1.5ex) (-1mm,-.5ex) rectangle (0mm,1.5ex) ;
- \draw (0pt,.5ex) -- (1cm,.5ex);
- \end{tikzpicture}
- and thin
- \begin{tikzpicture}[arrows={#1-#1},thin,baseline]
- \useasboundingbox (-1mm,-0.5ex) rectangle (1.1cm,2ex);
- \fill [black!15] (1cm,-.5ex) rectangle (1.1cm,1.5ex) (-1mm,-.5ex) rectangle (0mm,1.5ex) ;
- \draw (0pt,.5ex) -- (1cm,.5ex);
- \end{tikzpicture}, double
- \begin{tikzpicture}[arrows={#1-#1},thick,baseline]
- \useasboundingbox (-1mm,-0.5ex) rectangle (1.1cm,2ex);
- \fill [black!15] (1cm,-.5ex) rectangle (1.1cm,1.5ex) (-1mm,-.5ex) rectangle (0mm,1.5ex) ;
- \draw[double,double equal sign distance] (0pt,.5ex) -- (1cm,.5ex);
- \end{tikzpicture} and
- \begin{tikzpicture}[arrows={#1-#1},thin,baseline]
- \useasboundingbox (-1mm,-0.5ex) rectangle (1.1cm,2ex);
- \fill [black!15] (1cm,-.5ex) rectangle (1.1cm,1.5ex) (-1mm,-.5ex) rectangle (0mm,1.5ex) ;
- \draw[double,double equal sign distance] (0pt,.5ex) -- (1cm,.5ex);
- \end{tikzpicture}
-}
-
-\newcommand\sarrow[2]{%
- \index{#1@\protect\texttt{#1} arrow tip}%
- \index{Arrow tips!#1@\protect\texttt{#1}}%
- \index{#2@\protect\texttt{#2} arrow tip}%
- \index{Arrow tips!#2@\protect\texttt{#2}}%
- \texttt{#1-#2}& yields thick
- \begin{tikzpicture}[arrows={#1-#2},thick,baseline]
- \useasboundingbox (-1mm,-0.5ex) rectangle (1.1cm,2ex);
- \fill [black!15] (1cm,-.5ex) rectangle (1.1cm,1.5ex) (-1mm,-.5ex) rectangle (0mm,1.5ex) ;
- \draw (0pt,.5ex) -- (1cm,.5ex);
- \end{tikzpicture} and thin
- \begin{tikzpicture}[arrows={#1-#2},thin,baseline]
- \useasboundingbox (-1mm,-0.5ex) rectangle (1.1cm,2ex);
- \fill [black!15] (1cm,-.5ex) rectangle (1.1cm,1.5ex) (-1mm,-.5ex) rectangle (0mm,1.5ex) ;
- \draw (0pt,.5ex) -- (1cm,.5ex);
- \end{tikzpicture}
-}
-
-\newcommand\sarrowdouble[2]{%
- \index{#1@\protect\texttt{#1} arrow tip}%
- \index{Arrow tips!#1@\protect\texttt{#1}}%
- \index{#2@\protect\texttt{#2} arrow tip}%
- \index{Arrow tips!#2@\protect\texttt{#2}}%
- \texttt{#1-#2}& yields thick
- \begin{tikzpicture}[arrows={#1-#2},thick,baseline]
- \useasboundingbox (-1mm,-0.5ex) rectangle (1.1cm,2ex);
- \fill [black!15] (1cm,-.5ex) rectangle (1.1cm,1.5ex) (-1mm,-.5ex) rectangle (0mm,1.5ex) ;
- \draw (0pt,.5ex) -- (1cm,.5ex);
- \end{tikzpicture} and thin
- \begin{tikzpicture}[arrows={#1-#2},thin,baseline]
- \useasboundingbox (-1mm,-0.5ex) rectangle (1.1cm,2ex);
- \fill [black!15] (1cm,-.5ex) rectangle (1.1cm,1.5ex) (-1mm,-.5ex) rectangle (0mm,1.5ex) ;
- \draw (0pt,.5ex) -- (1cm,.5ex);
- \end{tikzpicture}, double
- \begin{tikzpicture}[arrows={#1-#2},thick,baseline]
- \useasboundingbox (-1mm,-0.5ex) rectangle (1.1cm,2ex);
- \fill [black!15] (1cm,-.5ex) rectangle (1.1cm,1.5ex) (-1mm,-.5ex) rectangle (0mm,1.5ex) ;
- \draw[double,double equal sign distance] (0pt,.5ex) -- (1cm,.5ex);
- \end{tikzpicture} and
- \begin{tikzpicture}[arrows={#1-#2},thin,baseline]
- \useasboundingbox (-1mm,-0.5ex) rectangle (1.1cm,2ex);
- \fill [black!15] (1cm,-.5ex) rectangle (1.1cm,1.5ex) (-1mm,-.5ex) rectangle (0mm,1.5ex) ;
- \draw[double,double equal sign distance] (0pt,.5ex) -- (1cm,.5ex);
- \end{tikzpicture}
-}
-
-\newcommand\carrow[1]{%
- \index{#1@\protect\texttt{#1} arrow tip}%
- \index{Arrow tips!#1@\protect\texttt{#1}}%
- \texttt{#1}& yields for line width 1ex
- \begin{tikzpicture}[arrows={#1-#1},line width=1ex,baseline]
- \useasboundingbox (-1mm,-0.5ex) rectangle (1.6cm,2ex);
- \fill [black!15] (1.5cm,-.5ex) rectangle (1.6cm,1.5ex) (-1mm,-.5ex) rectangle (0mm,1.5ex) ;
- \draw (0pt,.5ex) -- (1.5cm,.5ex);
- \end{tikzpicture}
-}
-\def\myvbar{\char`\|}
-\newcommand\plotmarkentry[1]{%
- \index{#1@\protect\texttt{#1} plot mark}%
- \index{Plot marks!#1@\protect\texttt{#1}}
- \texttt{\char`\\pgfuseplotmark\char`\{\declare{\noligs{#1}}\char`\}} &
- \tikz\draw[color=black!25] plot[mark=#1,mark options={fill=examplefill,draw=black}] coordinates{(0,0) (.5,0.2) (1,0) (1.5,0.2)};\\
-}
-\newcommand\plotmarkentrytikz[1]{%
- \index{#1@\protect\texttt{#1} plot mark}%
- \index{Plot marks!#1@\protect\texttt{#1}}
- \texttt{mark=\declare{\noligs{#1}}} & \tikz\draw[color=black!25]
- plot[mark=#1,mark options={fill=examplefill,draw=black}]
- coordinates {(0,0) (.5,0.2) (1,0) (1.5,0.2)};\\
-}
-
-
-
-\ifx\scantokens\@undefined
- \PackageError{pgfmanual-macros}{You need to use extended latex
- (elatex) or (pdfelatex) to process this document}{}
-\fi
-
-\begingroup
-\catcode`|=0
-\catcode`[= 1
-\catcode`]=2
-\catcode`\{=12
-\catcode `\}=12
-\catcode`\\=12 |gdef|find@example#1\end{codeexample}[|endofcodeexample[#1]]
-|endgroup
-
-% define \returntospace.
-%
-% It should define NEWLINE as {}, spaces and tabs as \space.
-\begingroup
-\catcode`\^=7
-\catcode`\^^M=13
-\catcode`\^^I=13
-\catcode`\ =13%
-\gdef\returntospace{\catcode`\ =13\def {\space}\catcode`\^^I=13\def^^I{\space}}
-\gdef\showreturn{\show^^M}
-\endgroup
-
-\begingroup
-\catcode`\%=13
-\catcode`\^^M=13
-\gdef\commenthandler{\catcode`\%=13\def%{\@gobble@till@return}}
-\gdef\@gobble@till@return#1^^M{}
-\gdef\@gobble@till@return@ignore#1^^M{\ignorespaces}
-\gdef\typesetcomment{\catcode`\%=13\def%{\@typeset@till@return}}
-\gdef\@typeset@till@return#1^^M{{\def%{\char`\%}\textsl{\char`\%#1}}\par}
-\endgroup
-
-% Define tab-implementation functions
-% \codeexample@tabinit@replacementchars@
-% and
-% \codeexample@tabinit@catcode@
-%
-% They should ONLY be used in case that tab replacement is active.
-%
-% This here is merely a preparation step.
-%
-% Idea:
-% \codeexample@tabinit@catcode@ will make TAB active
-% and
-% \codeexample@tabinit@replacementchars@ will insert as many spaces as
-% /codeexample/tabsize contains.
-{
-\catcode`\^^I=13
-% ATTENTION: do NOT use tabs in these definitions!!
-\gdef\codeexample@tabinit@replacementchars@{%
- \begingroup
- \count0=\pgfkeysvalueof{/codeexample/tabsize}\relax
- \toks0={}%
- \loop
- \ifnum\count0>0
- \advance\count0 by-1
- \toks0=\expandafter{\the\toks0\ }%
- \repeat
- \xdef\codeexample@tabinit@replacementchars@@{\the\toks0}%
- \endgroup
- \let^^I=\codeexample@tabinit@replacementchars@@
-}%
-\gdef\codeexample@tabinit@catcode@{\catcode`\^^I=13}%
-}%
-
-% Called after any options have been set. It assigns
-% \codeexample@tabinit@catcode
-% and
-% \codeexample@tabinit@replacementchars
-% which are used inside of
-%\begin{codeexample}
-% ...
-%\end{codeexample}
-%
-% \codeexample@tabinit@catcode is either \relax or it makes tab
-% active.
-%
-% \codeexample@tabinit@replacementchars is either \relax or it inserts
-% a proper replacement sequence for tabs (as many spaces as
-% configured)
-\def\codeexample@tabinit{%
- \ifnum\pgfkeysvalueof{/codeexample/tabsize}=0\relax
- \let\codeexample@tabinit@replacementchars=\relax
- \let\codeexample@tabinit@catcode=\relax
- \else
- \let\codeexample@tabinit@catcode=\codeexample@tabinit@catcode@
- \let\codeexample@tabinit@replacementchars=\codeexample@tabinit@replacementchars@
- \fi
-}
-
-\newif\ifpgfmanualtikzsyntaxhilighting
-
-\pgfqkeys{/codeexample}{%
- width/.code= {\setlength\codeexamplewidth{#1}},
- graphic/.code= {\colorlet{graphicbackground}{#1}},
- code/.code= {\colorlet{codebackground}{#1}},
- execute code/.is if=code@execute,
- code only/.code= {\code@executefalse},
- pre/.store in=\code@pre,
- post/.store in=\code@post,
- % #1 is the *complete* environment contents as it shall be
- % typeset. In particular, the catcodes are NOT the normal ones.
- typeset listing/.code= {#1},
- render instead/.store in=\code@render,
- vbox/.code= {\def\code@pre{\vbox\bgroup\setlength{\hsize}{\linewidth-6pt}}\def\code@post{\egroup}},
- ignorespaces/.code= {\let\@gobble@till@return=\@gobble@till@return@ignore},
- leave comments/.code= {\def\code@catcode@hook{\catcode`\%=12}\let\commenthandler=\relax\let\typesetcomment=\relax},
- tabsize/.initial=0,% FIXME : this here is merely used for indentation. It is just a TAB REPLACEMENT.
- every codeexample/.style={width=4cm+7pt, tikz syntax=true},
- from file/.code={\codeexamplefromfiletrue\def\codeexamplesource{#1}},
- tikz syntax/.is if=pgfmanualtikzsyntaxhilighting,
-}
-
-
-\newread\examplesource
-
-
-% Opening, reading and closing the results file
-
-\def\opensource#1{
- \immediate\openin\examplesource=#1
-}
-\def\do@codeexamplefromfile{%
- \immediate\openin\examplesource\expandafter{\codeexamplesource}%
- \def\examplelines{}%
- \readexamplelines
- \closein\examplesource
- \expandafter\endofcodeexample\expandafter{\examplelines}%
-}
-
-\def\readexamplelines{
- \ifeof\examplesource%
- \else
- \immediate\read\examplesource to \exampleline
- \expandafter\expandafter\expandafter\def\expandafter\expandafter\expandafter\examplelines\expandafter\expandafter\expandafter{\expandafter\examplelines\exampleline}
- \expandafter\readexamplelines%
- \fi
-}
-
-\let\code@pre\pgfutil@empty
-\let\code@post\pgfutil@empty
-\let\code@render\pgfutil@empty
-\def\code@catcode@hook{}
-
-\newif\ifcodeexamplefromfile
-\newdimen\codeexamplewidth
-\newif\ifcode@execute
-\newbox\codeexamplebox
-\def\codeexample[#1]{%
- \begingroup%
- \code@executetrue
- \pgfqkeys{/codeexample}{every codeexample,#1}%
- \pgfmanualswitchoncolors%
- \ifcodeexamplefromfile\begingroup\fi
- \codeexample@tabinit% assigns \codeexample@tabinit@[catcode,replacementchars]
- \parindent0pt
- \begingroup%
- \par%
- \medskip%
- \let\do\@makeother%
- \dospecials%
- \obeylines%
- \@vobeyspaces%
- \catcode`\%=13%
- \catcode`\^^M=13%
- \code@catcode@hook%
- \codeexample@tabinit@catcode
- \relax%
- \ifcodeexamplefromfile%
- \expandafter\do@codeexamplefromfile%
- \else%
- \expandafter\find@example%
- \fi}
-\def\endofcodeexample#1{%
- \endgroup%
- \ifcode@execute%
- \setbox\codeexamplebox=\hbox{%
- \ifx\code@render\pgfutil@empty%
- {%
- {%
- \returntospace%
- \commenthandler%
- \xdef\code@temp{#1}% removes returns and comments
- }%
- \catcode`\^^M=9%
- \colorbox{graphicbackground}{\color{black}\ignorespaces%
- \code@pre\expandafter\scantokens\expandafter{\code@temp\ignorespaces}\code@post\ignorespaces}%
- }%
- \else%
- \colorbox{graphicbackground}{\color{black}\ignorespaces%
- \code@render}%
- \fi%
- }%
- \ifdim\wd\codeexamplebox>\codeexamplewidth%
- \def\code@start{\par}%
- \def\code@flushstart{}\def\code@flushend{}%
- \def\code@mid{\parskip2pt\par\noindent}%
- \def\code@width{\linewidth-6pt}%
- \def\code@end{}%
- \else%
- \def\code@start{%
- \linewidth=\textwidth%
- \parshape \@ne 0pt \linewidth
- \leavevmode%
- \hbox\bgroup}%
- \def\code@flushstart{\hfill}%
- \def\code@flushend{\hbox{}}%
- \def\code@mid{\hskip6pt}%
- \def\code@width{\linewidth-12pt-\codeexamplewidth}%
- \def\code@end{\egroup}%
- \fi%
- \code@start%
- \noindent%
- \begin{minipage}[t]{\codeexamplewidth}\raggedright
- \hrule width0pt%
- \footnotesize\vskip-1em%
- \code@flushstart\box\codeexamplebox\code@flushend%
- \vskip-1ex
- \leavevmode%
- \end{minipage}%
- \else%
- \def\code@mid{\par}
- \def\code@width{\linewidth-6pt}
- \def\code@end{}
- \fi%
- \code@mid%
- \colorbox{codebackground}{%
- \pgfkeysvalueof{/codeexample/prettyprint/base color}%
- \begin{minipage}[t]{\code@width}%
- {%
- \let\do\@makeother
- \dospecials
- \frenchspacing\@vobeyspaces
- \normalfont\ttfamily\footnotesize
- \typesetcomment%
- \codeexample@tabinit@replacementchars
- \@tempswafalse
- \def\par{%
- \if@tempswa
- \leavevmode \null \@@par\penalty\interlinepenalty
- \else
- \@tempswatrue
- \ifhmode\@@par\penalty\interlinepenalty\fi
- \fi}%
- \obeylines
- \everypar \expandafter{\the\everypar \unpenalty}%
- \pgfkeysvalueof{/codeexample/typeset listing/.@cmd}{#1}\pgfeov
- }
- \end{minipage}}%
- \code@end%
- \par%
- \medskip
- \endcodeexample\endgroup
-}
-
-\def\endcodeexample{\endgroup}
-
-
-\makeatother
-
-\usepackage{pgfmanual}
-
-
-% autoxref is now always on
-
-% \makeatletter
-% % \pgfautoxrefs will be defined by 'make dist'
-% \pgfutil@ifundefined{pgfautoxrefs}{%
-% \renewcommand\pgfmanualpdflabel[3][]{#3}% NO-OP
-% \def\pgfmanualpdfref#1#2{#2}%
-% \pgfkeys{
-% /pdflinks/codeexample links=false,% DISABLED.
-% }%
-% }{}
-% \makeatother
-
-\newdimen\pgfmanualcslinkpreskip
-
-% Styling of the pretty printer
-\pgfkeys{
- /codeexample/syntax hilighting/.style={
- /codeexample/prettyprint/key name/.code={\textcolor{keycolor}{\pgfmanualpdfref{##1}{\noligs{##1}}}},
- /codeexample/prettyprint/key name with handler/.code 2 args={\textcolor{keycolor}{\pgfmanualpdfref{##1}{\noligs{##1}}}/\textcolor{blue!70!black}{\pgfmanualpdfref{/handlers/##2}{\noligs{##2}}}},
- /codeexample/prettyprint/key value display only/.code={\textcolor{keycolor}{{\itshape{\let\pgfmanualwordstartup\relax\pgfmanualprettyprintcode{##1}}}}},
- /codeexample/prettyprint/cs/.code={\textcolor{cscolor}{\pgfmanualcslinkpreskip4.25pt\pgfmanualpdfref{##1}{\noligs{##1}}}},
- /codeexample/prettyprint/cs with args/.code 2 args={\textcolor{black}{\pgfmanualcslinkpreskip4.25pt\pgfmanualpdfref{##1}{\noligs{##1}}}\{\textcolor{black}{\pgfmanualprettyprintcode{##2}}\pgfmanualclosebrace},
- /codeexample/prettyprint/cs arguments/pgfkeys/.initial=1,
- /codeexample/prettyprint/cs/pgfkeys/.code 2 args={\textcolor{black}{\pgfmanualcslinkpreskip4.25pt\pgfmanualpdfref{##1}{\noligs{##1}}}\{\textcolor{black}{\pgfmanualprettyprintpgfkeys{##2}}\pgfmanualclosebrace},
- /codeexample/prettyprint/cs arguments/begin/.initial=1,
- /codeexample/prettyprint/cs/begin/.code 2 args={\textcolor{black}{##1}\{\textcolor{cscolor}{\pgfmanualpdfref{##2}{\noligs{##2}}}\pgfmanualclosebrace},
- /codeexample/prettyprint/cs arguments/end/.initial=1,
- /codeexample/prettyprint/cs/end/.code 2 args={\textcolor{black}{##1}\{\textcolor{cscolor}{\pgfmanualpdfref{##2}{\noligs{##2}}}\pgfmanualclosebrace},
- /codeexample/prettyprint/word/.code={\pgfmanualwordstartup{\begingroup\pgfkeyssetvalue{/pdflinks/search key prefixes in}{}\pgfmanualpdfref{##1}{\noligs{##1}}\endgroup}},
- /codeexample/prettyprint/point/.code={\textcolor{pointcolor}{\noligs{##1}}},%
- /codeexample/prettyprint/point with cs/.code 2 args={\textcolor{pointcolor}{(\pgfmanualpdfref{##1}{\noligs{##1}}:\noligs{##2}}},%
- /codeexample/prettyprint/comment font=\itshape,
- /codeexample/prettyprint/base color/.initial=\color{basecolor},
- /pdflinks/render hyperlink/.code={%
- {\setbox0=\hbox{##1}%
- \rlap{{\color{linkcolor}\dimen0\wd0\advance\dimen0by-\pgfmanualcslinkpreskip\hskip\pgfmanualcslinkpreskip\vrule width\dimen0 height-1pt depth1.6pt}}%
- \box0%
- }%
- }
- },/codeexample/syntax hilighting
-}
-
-\colorlet{keycolor}{black}
-\colorlet{cscolor}{black}
-\colorlet{pointcolor}{black}
-\colorlet{basecolor}{black}
-\colorlet{linkcolor}{black!8}
-
-\def\pgfmanualswitchoncolors{%
- \colorlet{keycolor}{green!50!black}%
- \colorlet{cscolor}{blue!70!black}
- \colorlet{pointcolor}{violet}
- \colorlet{basecolor}{black!55}
- \colorlet{linkcolor}{white}
-}
-
-\makeatletter
-
-\def\pgfmanualwordstartup{\textcolor{black}}
-
-\def\noligs#1{\pgfmanualnoligs#1\kern0pt--\pgf@stop}%
-\def\pgfmanualnoligs#1--{%
- \pgfutil@ifnextchar\pgf@stop{#1\pgfutil@gobble}{#1-\kern0pt-\kern0pt\pgfmanualnoligs}%
-}
-\makeatother
-
-
-%%% Local Variables:
-%%% mode: latex
-%%% TeX-master: "beameruserguide"
-%%% End:
diff --git a/graphics/pgf/contrib/spectralsequences/manual/spectralsequencesmanual.pdf b/graphics/pgf/contrib/spectralsequences/manual/spectralsequencesmanual.pdf
index d696d5a4b9..7d26010759 100644
--- a/graphics/pgf/contrib/spectralsequences/manual/spectralsequencesmanual.pdf
+++ b/graphics/pgf/contrib/spectralsequences/manual/spectralsequencesmanual.pdf
Binary files differ
diff --git a/graphics/pgf/contrib/spectralsequences/manual/spectralsequencesmanual.tex b/graphics/pgf/contrib/spectralsequences/manual/spectralsequencesmanual.tex
index 8971d5e566..e1b8ca7d14 100644
--- a/graphics/pgf/contrib/spectralsequences/manual/spectralsequencesmanual.tex
+++ b/graphics/pgf/contrib/spectralsequences/manual/spectralsequencesmanual.tex
@@ -1,8 +1,8 @@
%%
-%% Package: spectralsequences v1.3.0 2021-07-18
+%% Package: spectralsequences v1.3.1 2022-01-04
%% Author: Hood Chatham
%% Email: hood@mit.edu
-%% Date: 2021-07-18
+%% Date: 2022-01-04
%% License: Latex Project Public License
%%
%% File: spectralsequencesmanual.tex
@@ -515,12 +515,12 @@ foreground features to the spectral sequence:
\section{Options for the main commands}
\subsection{Universal options}
The following options work with all of the drawing commands in this package,
-including |\class|, |\d|, and |\structline|, their friends |\replaceclass|,
-|\classoptions|, |\doptions|, and |\replacestructlines|, as well as with \tikzpkg\
+including |\class|, |\d|, and |\structline|, |\extension|, their friends |\replaceclass|,
+|\classoptions|, |\doptions|, |\structlineoptions|, |\extensionoptions|and |\replacestructlines|, as well as with \tikzpkg\
primitives.
\begin{keylist}{xshift = \meta{integer},yshift = \meta{integer}}
Shifts by integer values are the only coordinate changes that are allowed to be
-applied to |\class|, |\d|, |\structline|, their relatives, or to a \scopeenv\
+applied to |\class|, |\d|, |\structline|, |\extension| their relatives, or to a \scopeenv\
environment that contains any of these commands. These shift commands help with
reusing code. For instance:
\begin{codeexample}[width = 6cm]
@@ -642,10 +642,10 @@ itself can take options which adjust the way that the line is drawn:
\end{key}
-For either a |\structline| or a |\class| the label normally goes on the right
-side of the edge. The special option |'| makes it go in the opposite position
-from the default. I imitated the label handling in the \tikzcdpkg\ package, so
-if you use \tikzcdpkg, this should be familiar.
+The label normally goes on the right side of the edge. The special option |'|
+makes it go in the opposite position from the default. I imitated the label
+handling in the \tikzcdpkg\ package, so if you use \tikzcdpkg, this should be
+familiar.
\begin{codeexample}[width = 6cm]
\begin{sseqpage}[ Adams grading, yscale = 0.63 ]
\class(0,0)
@@ -659,7 +659,7 @@ if you use \tikzcdpkg, this should be familiar.
\end{sseqpage}
\end{codeexample}
You can use the style options |labels|, |edge labels|, |differential labels|,
-and |struct line labels| to adjust the styling of edge labels. For instance, if
+|struct line labels|, and |extension labels| to adjust the styling of edge labels. For instance, if
you would prefer for the labels to default to the left hand side of the edge
rather than the right hand side, you could say |edge labels = {auto = left}|.
You can also use quotes to label edges drawn with \tikzpkg\ primitives:
@@ -966,7 +966,8 @@ options that you could apply to a \tikzpkg\ ``to'' operator (as in%
\begin{keylist}{source anchor = \meta{anchor}, target anchor = \meta{anchor}}
Because you can't use the normal \tikzpkg\ mechanism for specifying the source
-and target anchors, \sseqpages\ has these two keys for |\d| and |\structline|:
+and target anchors, \sseqpages\ has these two keys for |\d|, |\structline|, and
+|\extension|:
\begin{codeexample}[width = 4cm]
\begin{sseqpage}[ no axes, yscale = 1.24 ]
\foreach \x in {0,1} \foreach \y in {0,1} {
@@ -1107,7 +1108,7 @@ answer: \url{https://tex.stackexchange.com/a/24621}.)
\begin{keylist}{
cc:class style,cc:permanent cycle style,cc:transient cycle style,
- cc:this page class style,cc:differential style,cc:struct line style
+ cc:this page class style,cc:differential style,cc:struct line style,cc:extension style
}
See the \pgfmanualpdfref{class style}{corresponding entry} in the \tikzpkg\
primitives section.
@@ -1242,9 +1243,9 @@ is the same as |\structline(1,0)(2,2)|, except that you can't later use
\end{commandlist}
\end{keylist}
-\begin{keylist}{c
- lass style,permanent cycle style,transient cycle style,
- this page class style,differential style,struct line style
+\begin{keylist}{
+ class style,permanent cycle style,transient cycle style,
+ this page class style,differential style,struct line style,extension style
}
These classes apply the styling of the corresponding element to your \tikzpkg\
commands.
@@ -2077,11 +2078,11 @@ transient cycle, and so |this page classes| takes precedence over%
\end{stylekeylist}
\begin{stylekeylist}{
- edges,differentials,struct lines,
- change edges, change differentials, change struct lines
+ edges, differentials, struct lines, extensions,
+ change edges, change differentials, change struct lines, change extensions
}%
The |edges| key applies to both differentials and structure lines. The
-|differentials| and |struct lines| keys both take precedence over |edges|.
+|differentials|, |struct lines|, and |extensions| keys take precedence over |edges|.
\end{stylekeylist}
\begin{stylekeylist}{this page struct lines, change this page struct lines}%
@@ -2117,8 +2118,8 @@ node, outer class labels specifically applies to ones outside it:
\end{stylekeylist}
\begin{stylekeylist}{
- edge labels,differential labels,struct line labels,
- change edge labels,change differential labels,change struct line labels
+ edge labels,differential labels,struct line labels, extension labels,
+ change edge labels,change differential labels,change struct line labels, change extension labels,
}%
\end{stylekeylist}
@@ -2145,11 +2146,12 @@ variants like |above label distance| corresponding to |above|, |below|, |left|,
\end{keylist}
\begin{keylist}{run off = \meta{start tip}--\meta{end tip},
+ run off differentials = \meta{start tip}--\meta{end tip} (initially {...--...}),
run off struct lines = \meta{start tip}--\meta{end tip} (initially {...--...}),
- run off differentials = \meta{start tip}--\meta{end tip} (initially {...--...})}%
+ run off extensions = \meta{start tip}--\meta{end tip} (initially {...--...}),}%
Change the default behavior of run off edges for either all edges, just
-structure lines, or just differentials respectively. Local arrowhead options
-override this.
+differentials, just structure lines, or just extensions respectively. Local
+arrowhead options override this.
If an edge runs off the edge of the clipping, \sseqpages\ automatically add an
arrowhead to indicate that the edge continues. This option controls which arrow
@@ -2602,7 +2604,22 @@ versa. The values must be integers -- if you want to extend the x axis a
noninteger amount, try using |x axis start extend| or |x axis end extend|.
\end{keylist}
-\begin{keylist}{range check standard (default), range check sideways, range check off}
+\begin{commandlist}{
+ \SseqOrientationNormal,\SseqOrientationSideways,\SseqOrientationToggle
+}
+By default, the \sseqpageenv\ environment will try to check whether the chart
+fits onto the page (without causing overfull boxes). Environments like the
+\env{sideways} environment rotate the content by 90 degrees. The range checker
+needs to be aware of this. |\SseqOrientationNormal| indicates that the content is
+normal (not rotated). |\SseqOrientationSideways| indicates that the content is
+rotated 90 degrees (it doesn't matter in which direction). |\SseqOrientationToggle|
+swaps between |\SseqOrientationNormal| and |\SseqOrientationSideways|.
+
+\sseqpages\ will automatically detect the chart is being printed inside of a
+sideways environment or not. This can be arranged for other environments with
+|\AtBeginEnvironment{my-sideways}{\SseqOrientationToggle}|.
+\end{commandlist}
+\begin{keylist}{range check on (default), range check off, range check standard, range check sideways}
These options control the range checking behavior.
By default \sseqpages\ will try to compute whether the chart fits onto the page
@@ -2612,11 +2629,12 @@ instance if the chart is indented because of |\textindent| or not at the top of
the page, this might give overly large values. Also, the values computed aren't
perfectly accurate.
-If the range check is not desirable, you can use |range check off|. If the
-diagram is being placed onto the page rotated 90 degrees, then use
-%
-|range check sideways|. Inside of a \env{sideways} environment from the
-\pkg{rotating} package, this is the default.
+If the range check is not desirable, you can use |range check off|.
+
+The options |range check standard| and |range check sideways| only work for the
+\sseqpageenv\ environment. |range check standard| is equivalent to |range check on|
+and |\SseqOrientationNormal|. |range check sideways| is equivalent to |range check on|
+and |\SseqOrientationSideways|.
\end{keylist}
\begin{keylist}{
diff --git a/graphics/pgf/contrib/spectralsequences/manual/spectralsequencesmanualpreamble.tex b/graphics/pgf/contrib/spectralsequences/manual/spectralsequencesmanualpreamble.tex
index e38aeb3994..51d57c78ae 100644
--- a/graphics/pgf/contrib/spectralsequences/manual/spectralsequencesmanualpreamble.tex
+++ b/graphics/pgf/contrib/spectralsequences/manual/spectralsequencesmanualpreamble.tex
@@ -1,8 +1,8 @@
%%
-%% Package: spectralsequences v1.3.0 2021-07-18
+%% Package: spectralsequences v1.3.1 2022-01-04
%% Author: Hood Chatham
%% Email: hood@mit.edu
-%% Date: 2021-07-18
+%% Date: 2022-01-04
%% License: Latex Project Public License
%%
%% File: spectralsequencesmanualpreamble.tex
diff --git a/graphics/pgf/contrib/spectralsequences/src/spectralsequences.sty b/graphics/pgf/contrib/spectralsequences/src/spectralsequences.sty
index e66aa5c780..0468e6536e 100644
--- a/graphics/pgf/contrib/spectralsequences/src/spectralsequences.sty
+++ b/graphics/pgf/contrib/spectralsequences/src/spectralsequences.sty
@@ -1,8 +1,8 @@
%%
-%% Package: spectralsequences v1.3.0 2021-07-18
+%% Package: spectralsequences v1.3.1 2022-01-04
%% Author: Hood Chatham
%% Email: hood@mit.edu
-%% Date: 2021-07-18
+%% Date: 2022-01-04
%% License: Latex Project Public License
%%
%% A package for drawing spectral sequences
@@ -23,7 +23,7 @@
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{spectralsequences}[2021/07/18 v1.3.0]
+\ProvidesPackage{spectralsequences}[2022/01/04 v1.3.1]
\RequirePackage{tikz}
\RequirePackage{etoolbox}
@@ -279,7 +279,13 @@
\let\sseqnewgroup\@gobblethree
}
-\AtBeginEnvironment{sideways}{\sseqset{range check sideways}}
+\newif\ifsseq@insidewaysenv
+\sseq@insidewaysenvfalse
+\def\SseqOrientationNormal{\sseq@insidewaysenvfalse}
+\def\SseqOrientationSideways{\sseq@insidewaysenvtrue}
+\def\SseqOrientationToggle{\ifsseq@insidewaysenv\sseq@insidewaysenvfalse\else\sseq@insidewaysenvtrue\fi}
+\AtBeginEnvironment{sideways}{\SseqOrientationToggle}
+
\input sseqmessages.code.tex % Exposes directly: \sseqerrortowarning
\input sseqcheckdefinitions.code.tex
diff --git a/graphics/pgf/contrib/spectralsequences/src/sseqcheckdefinitions.code.tex b/graphics/pgf/contrib/spectralsequences/src/sseqcheckdefinitions.code.tex
index ad4570d5fa..9db386d7fd 100644
--- a/graphics/pgf/contrib/spectralsequences/src/sseqcheckdefinitions.code.tex
+++ b/graphics/pgf/contrib/spectralsequences/src/sseqcheckdefinitions.code.tex
@@ -1,8 +1,8 @@
%%
-%% Package: spectralsequences v1.3.0 2021-07-18
+%% Package: spectralsequences v1.3.1 2022-01-04
%% Author: Hood Chatham
%% Email: hood@mit.edu
-%% Date: 2021-07-18
+%% Date: 2022-01-04
%% License: Latex Project Public License
%%
%% File: sseqcheckdefinitions.code.tex
diff --git a/graphics/pgf/contrib/spectralsequences/src/sseqdrawing.code.tex b/graphics/pgf/contrib/spectralsequences/src/sseqdrawing.code.tex
index db01b04481..75da94f4b9 100644
--- a/graphics/pgf/contrib/spectralsequences/src/sseqdrawing.code.tex
+++ b/graphics/pgf/contrib/spectralsequences/src/sseqdrawing.code.tex
@@ -1,8 +1,8 @@
%%
-%% Package: spectralsequences v1.3.0 2021-07-18
+%% Package: spectralsequences v1.3.1 2022-01-04
%% Author: Hood Chatham
%% Email: hood@mit.edu
-%% Date: 2021-07-18
+%% Date: 2022-01-04
%% License: Latex Project Public License
%%
%% File: sseqdrawing.code.tex
@@ -932,7 +932,7 @@
\def\sseq@fullcoord@to@partialcoord@#1,#2,#3\@nil{{#1cm}{#2cm}}
% #1 -- source (full)
% #2 -- target (full)
-% #3 -- which type of edge (either "structline" or "differential")
+% #3 -- which type of edge ("differential", "structline", or "extension")
% #4 -- options
\def\sseq@drawedge(#1)(#2)#3#4{%
\begingroup\pgfscope
diff --git a/graphics/pgf/contrib/spectralsequences/src/sseqforeach.code.tex b/graphics/pgf/contrib/spectralsequences/src/sseqforeach.code.tex
index ff849acd25..ad3b54c233 100644
--- a/graphics/pgf/contrib/spectralsequences/src/sseqforeach.code.tex
+++ b/graphics/pgf/contrib/spectralsequences/src/sseqforeach.code.tex
@@ -1,8 +1,8 @@
%%
-%% Package: spectralsequences v1.3.0 2021-07-18
+%% Package: spectralsequences v1.3.1 2022-01-04
%% Author: Hood Chatham
%% Email: hood@mit.edu
-%% Date: 2021-07-18
+%% Date: 2022-01-04
%% License: Latex Project Public License
%%
%% File: sseqforeach.code.tex
diff --git a/graphics/pgf/contrib/spectralsequences/src/sseqkeys.code.tex b/graphics/pgf/contrib/spectralsequences/src/sseqkeys.code.tex
index 03c8c7591a..00007bee31 100644
--- a/graphics/pgf/contrib/spectralsequences/src/sseqkeys.code.tex
+++ b/graphics/pgf/contrib/spectralsequences/src/sseqkeys.code.tex
@@ -1,8 +1,8 @@
%%
-%% Package: spectralsequences v1.3.0 2021-07-18
+%% Package: spectralsequences v1.3.1 2022-01-04
%% Author: Hood Chatham
%% Email: hood@mit.edu
-%% Date: 2021-07-18
+%% Date: 2022-01-04
%% License: Latex Project Public License
%%
%% File: sseqkeys.code.tex
@@ -355,6 +355,8 @@
/sseqpages/differential/.unknown/.code={\sseq@passoptionto{/sseqpages}},
/sseqpages/struct line/.is family,
/sseqpages/struct line/.unknown/.code={\sseq@passoptionto{/sseqpages}},
+ /sseqpages/extension/.is family,
+ /sseqpages/extension/.unknown/.code={\sseq@passoptionto{/sseqpages}},
/sseqpages/label/.is family,
/sseqpages/label/.unknown/.code={\sseq@keys@unknown},
/sseqpages/tikz primitives/.is family,
@@ -649,10 +651,14 @@
% Force \class or \d to fall back to using tikz to render their output
% Rather than using the faster direct \pgf primitives (largely copied from tikz to maximize compatibility)
% Drawing with tikz is slower, but I don't want to reimplement these features
-\def\sseq@needstikzandpass#1#2{\sseq@needstikzandpass@{#1}#2,\@nil}
+\def\sseq@needstikzandpass#1#2{\sseq@needstikzandpass@{#2}#1,\@nila}
\def\sseq@needstikzandpass@#1#2,{%
+ \sseq@needstikzandpass@@{#2}#1,\@nilb
+ \@ifnextchar\@nila{\@gobble}{\sseq@needstikzandpass@{#1}}
+}
+\def\sseq@needstikzandpass@@#1#2,{%
\pgfqkeys{#1}{#2/.code={\sseq@options@firstpass{\sseq@needstikztrue}\sseq@options@secondpass{\sseq@pgfkeysdocommand{#2}{##1}\sseq@needstikztrue}}}%
- \@ifnextchar\@nil{\@gobble}{\sseq@needstikzandpass@{#1}}%
+ \@ifnextchar\@nilb{\@gobble}{\sseq@needstikzandpass@@{#1}}%
}
\pgfqkeys{/sseqpages}{needs tikz/.code=\sseq@needstikztrue}
@@ -661,14 +667,7 @@
shade, blend mode, pattern, path picture, path fading, decorate, pin, label % should pin be here?
}
-\sseq@needstikzandpass{/sseqpages/differential}{%
- bend left, bend right, in, out, relative, looseness, in looseness, out looseness,
- min distance, max distance, out min distance, out max distance, in min distance, in max distance, distance,
- controls, in control, out control,
- loop, loop above, loop below, loop left, loop right % maybe delete the loops and replace them with errors? It's pretty pointless to use these.
-}
-
-\sseq@needstikzandpass{/sseqpages/struct line}{%
+\sseq@needstikzandpass{/sseqpages/differential,/sseqpages/struct line,/sseqpages/extension}{%
bend left, bend right, in, out, relative, looseness, in looseness, out looseness,
min distance, max distance, out min distance, out max distance, in min distance, in max distance, distance,
controls, in control, out control,
@@ -688,12 +687,14 @@
\sseq@pgfqkeysdirlist{/sseqpages/global,/sseqpages}{
run off differentials/.code args={#1-#2}{\def\sseq@runoffarrow@start@differential@spec{#1}\def\sseq@runoffarrow@end@differential@spec{#2}},
run off struct lines/.code args={#1-#2}{\def\sseq@runoffarrow@start@structline@spec{#1}\def\sseq@runoffarrow@end@structline@spec{#2}},
+ run off extensions/.code args={#1-#2}{\def\sseq@runoffarrow@start@extension@spec{#1}\def\sseq@runoffarrow@end@extension@spec{#2}},
run off/.forward to=/sseqpages/run off differentials,
- run off/.forward to=/sseqpages/run off struct lines
+ run off/.forward to=/sseqpages/run off struct lines,
+ run off/.forward to=/sseqpages/run off extensions,
}
-\sseq@pgfqkeysdirlist{/sseqpages/differential,/sseqpages/struct line}{
+\sseq@pgfqkeysdirlist{/sseqpages/edge, /sseqpages/differential, /sseqpages/struct line, /sseqpages/extension}{
source anchor/.sseq @ second pass store in=\sseq@edgesourceanchor,
target anchor/.sseq @ second pass store in=\sseq@edgetargetanchor,
shorten >/.sseq @ second pass code={\sseq@pgfkeysdocommand{shorten >}{#1}},
@@ -882,10 +883,11 @@
% sseq needs special handling, so is done by hand above.
%\sseq@newstyles{/sseqpages/}{sseq}% DON'T make this /global/default! Bad things will happen.
-\sseq@newstyles{/sseqpages/label,/sseqpages}{edge, label, edge label, differential label, struct line label}
+\sseq@newstyles{/sseqpages/label,/sseqpages/edge,/sseqpages}{edge, label, edge label, differential label, struct line label, extension label}
\sseq@newstyles{/sseqpages/class,/sseqpages}{class, permanent cycle, transient cycle, this page cycle}
-\sseq@newstyles{/sseqpages/differential,/sseqpages}{differential}
-\sseq@newstyles{/sseqpages/struct line,/sseqpages}{struct line, this page struct line}
+\sseq@newstyles{/sseqpages/differential,/sseqpages/edge,/sseqpages}{differential}
+\sseq@newstyles{/sseqpages/struct line,/sseqpages/edge,/sseqpages}{struct line, this page struct line}
+\sseq@newstyles{/sseqpages/extension,/sseqpages/edge,/sseqpages}{extension}
\sseq@newstyles{/sseqpages/class/label}{class label, inner class label, outer class label}
\sseq@newstyles{/sseqpages/class/label/pin}{pin}
\sseq@newstyles{/sseqpages/tikz primitives}{tikz primitive}
@@ -936,7 +938,7 @@
%%
-\def\sseq@featurelist{\\{class}\\{differential}\\{structline}\\{circleclass}\\{tikzprimitive}}
+\def\sseq@featurelist{\\{class}\\{differential}\\{structline}\\{extension}\\{circleclass}\\{tikzprimitive}}
\def\sseq@mapfeaturelist#1{\def\\##1{#1}\sseq@featurelist}
\def\sseq@familylist{}
@@ -960,6 +962,7 @@
\@nx\sseq@addstylecodetomacro\@xp\@nx\sseq@tempcmd@class{/sseqpages/class,/sseqpages/collections/class}{##1}%
\@nx\sseq@addstylecodetomacro\@xp\@nx\sseq@tempcmd@differential{/sseqpages/differential,/sseqpages/collections/differential}{##1}%
\@nx\sseq@addstylecodetomacro\@xp\@nx\sseq@tempcmd@structline{/sseqpages/struct line,/sseqpages/collections/struct line}{##1}%
+ \@nx\sseq@addstylecodetomacro\@xp\@nx\sseq@tempcmd@extension{/sseqpages/extension,/sseqpages/collections/extension}{##1}%
\@nx\sseq@addstylecodetomacro\@xp\@nx\sseq@tempcmd@circleclass{/sseqpages/fit,/sseqpages/collections/fit}{##1}%
\@nx\sseq@addstylecodetomacro\@xp\@nx\sseq@tempcmd@tikzprimitive{/sseqpages/tikz primitives,/sseqpages/collections/tikz primitives}{##1}%
},
@@ -971,6 +974,7 @@
\@nx\sseq@addstylecodetomacro\@xp\@nx\sseq@tempcmd@class@default{/sseqpages/class}{##1}%
\@nx\sseq@addstylecodetomacro\@xp\@nx\sseq@tempcmd@differential@default{/sseqpages/differential}{##1}%
\@nx\sseq@addstylecodetomacro\@xp\@nx\sseq@tempcmd@structline@default{/sseqpages/struct line}{##1}%
+ \@nx\sseq@addstylecodetomacro\@xp\@nx\sseq@tempcmd@structline@default{/sseqpages/extension}{##1}%
\@nx\sseq@addstylecodetomacro\@xp\@nx\sseq@tempcmd@circleclass@default{/sseqpages/fit}{##1}%
\@nx\sseq@addstylecodetomacro\@xp\@nx\sseq@tempcmd@tikzprimitive@default{/sseqpages/tikz primitives}{##1}%
},
@@ -1007,6 +1011,7 @@
class/#1/.code={},
differential/#1/.code={},
struct line/#1/.code={},
+ extension/#1/.code={},
fit/#1/.code={},
tikz primitives/#1/.code={}
}
@@ -1015,8 +1020,8 @@
\sseq@collections@setempty{%
classes, cycles, permanent classes, permanent cycles, transient classes, transient cycles, this page classes, this page cycles,
- edges, differentials,struct lines, this page struct lines,circleclasses, tikz primitives,
- labels, edge labels, differential labels, struct line labels,
+ edges, differentials, extensions, struct lines, this page struct lines, circleclasses, tikz primitives,
+ labels, edge labels, differential labels, struct line labels, extension labels,
class labels, inner class labels, outer class labels,pins
}
@@ -1045,6 +1050,8 @@
struct line/edges/.style={/sseqpages/struct line/.cd,#1},
struct line/struct lines/.style={/sseqpages/struct line/.cd,#1},
struct line/this page struct lines/.code={\ifsseq@thispage\pgfkeysalso{/sseqpages/struct line/.cd,#1}\fi},
+ extension/edges/.style={/sseqpages/extension/.cd,#1},
+ extension/extensions/.style={/sseqpages/extension/.cd,#1},
fit/circleclasses/.style={/sseqpages/fit/.cd,#1},
tikz primitives/tikz primitives/.style={/sseqpages/tikz primitives/.cd,#1},
% labels
@@ -1061,10 +1068,14 @@
{\unexpanded\@xp{\sseq@collections@addtohook{/sseqpages/label}{\sseq@collections@edgelabels@hook}{#1}}},
struct line/edge labels/.code/.expanded=
{\unexpanded\@xp{\sseq@collections@addtohook{/sseqpages/label}{\sseq@collections@edgelabels@hook}{#1}}},
+ extension/edge labels/.code/.expanded=
+ {\unexpanded\@xp{\sseq@collections@addtohook{/sseqpages/label}{\sseq@collections@edgelabels@hook}{#1}}},
differential/differential labels/.code/.expanded=
{\unexpanded\@xp{\sseq@collections@addtohook{/sseqpages/label}{\sseq@collections@differentiallabels@hook}{#1}}},
struct line/struct line labels/.code/.expanded=
{\unexpanded\@xp{\sseq@collections@addtohook{/sseqpages/label}{\sseq@collections@structlinelabels@hook}{#1}}},
+ extension/extension labels/.code/.expanded=
+ {\unexpanded\@xp{\sseq@collections@addtohook{/sseqpages/label}{\sseq@collections@extensionlabels@hook}{#1}}},
}
@@ -1264,6 +1275,7 @@
\sseq@stylehandler@processpath{class}{#2}%
\sseq@stylehandler@processpath{differential}{#2}%
\sseq@stylehandler@processpath{struct line}{#2}%
+ \sseq@stylehandler@processpath{extension}{#2}%
\sseq@stylehandler@processpath{circle classes}{#2}%
\sseq@stylehandler@processpath{tikz primitives}{#2}%
%
@@ -1280,6 +1292,7 @@
/sseqpages/class/\sseq@temp/.#1={##1},%
/sseqpages/differential/\sseq@temp/.#1={##1},%
/sseqpages/struct line/\sseq@temp/.#1={##1}%
+ /sseqpages/extension/\sseq@temp/.#1={##1}%
}%
}%
},
@@ -1454,7 +1467,7 @@
update existing/.code={}, % processed with "name" key and "keep changes" key in /sseqpages/global/name only
keep changes/.code={%
\ifsseq@hasname\else\sseq@error{keep-changes-no-name}\fi
- \ifsseq@ispageenv\else\sseq@error{keep-changes-sseqdata}\fi
+ \ifsseq@ispageenv\else\sseq@error@n{only-for-sseqpages}{keep-changes}\fi
},
grid/.code={\ifcsname sseq@grid@#1\endcsname\@xp\let\@xp\sseq@grid\csname sseq@grid@#1\endcsname\else\sseq@error@n{unknown-grid}{#1}\fi},
grid/.sseq default code={\ifcsname sseq@grid@#1\endcsname\@xp\let\@xp\sseq@grid@default\csname sseq@grid@#1\endcsname\else\sseq@error@n{unknown-grid}{#1}\fi},
@@ -1508,15 +1521,21 @@
\sseq@addiftostorelist@truedefault{rangecheck}
-\sseq@addiftostorelist{rangecheck@sideways}
\sseq@globalkeys{%
- range check standard/.code={\sseq@rangechecktrue\sseq@rangecheck@sidewaysfalse},
- range check standard/.sseq default code={%
- \def\sseq@rangecheck@default{\global\sseq@rangechecktrue}%
- \def\sseq@rangecheck@sideways@default{\global\sseq@rangecheck@sidewaysfalse}%
+ range check on/.code={\sseq@rangechecktrue},
+ range check default/.sseq default code={\def\sseq@rangecheck@default{\global\sseq@rangechecktrue}},
+ range check standard/.code={%
+ \ifsseq@ispageenv\else\sseq@error@n{only-for-sseqpages}{range check standard}\fi
+ \SseqOrientationNormal
+ \sseq@rangechecktrue
+ },
+ range check standard/.sseq default error,
+ range check sideways/.code={%
+ \ifsseq@ispageenv\else\sseq@error@n{only-for-sseqpages}{range check sideways}\fi
+ \SseqOrientationSideways
+ \sseq@rangechecktrue
},
- range check sideways/.code=rangecheck@sideways,
- range check sideways/.sseq default code={\def\sseq@rangecheck@sideways@default{\global\sseq@rangecheck@sidewaystrue}},
+ range check sideways/.sseq default error,
range check off/.code={\sseq@rangecheckfalse},
range check off/.sseq default code={\def\sseq@rangecheck@default{\global\sseq@rangecheckfalse}},
}
@@ -2126,6 +2145,7 @@
this page cycle style/.forward to=/sseqpages/tikz primitives/this page class style,
differential style/.code={\sseq@d@addto@options{\sseq@thesseqstyle\sseq@theedgestyle\sseq@thedifferentialstyle\the\sseq@scope@toks}},
struct line style/.code={\sseq@d@addto@options{\sseq@thesseqstyle\sseq@theedgestyle\sseq@thestructlinestyle\the\sseq@scope@toks}},
+ extension style/.code={\sseq@d@addto@options{\sseq@thesseqstyle\sseq@theedgestyle\sseq@theextensionstyle\the\sseq@scope@toks}},
tikz primitive style/.code={\sseq@d@addto@options{\sseq@thesseqstyle\sseq@thetikzprimitivestyle\the\sseq@scope@toks}}
%this page struct line style/.sseq @ first pass code={\sseq@d@addto@options{\sseq@thesseqstyle\sseq@theedgestyle\sseq@thestructlinestyle\the\sseq@scope@toks}}
}
diff --git a/graphics/pgf/contrib/spectralsequences/src/sseqloadstore.code.tex b/graphics/pgf/contrib/spectralsequences/src/sseqloadstore.code.tex
index 19a466112b..1656c3ea50 100644
--- a/graphics/pgf/contrib/spectralsequences/src/sseqloadstore.code.tex
+++ b/graphics/pgf/contrib/spectralsequences/src/sseqloadstore.code.tex
@@ -1,8 +1,8 @@
%%
-%% Package: spectralsequences v1.3.0 2021-07-18
+%% Package: spectralsequences v1.3.1 2022-01-04
%% Author: Hood Chatham
%% Email: hood@mit.edu
-%% Date: 2021-07-18
+%% Date: 2022-01-04
%% License: Latex Project Public License
%%
%% File: sseqloadstore.code.tex
diff --git a/graphics/pgf/contrib/spectralsequences/src/sseqmacromakers.code.tex b/graphics/pgf/contrib/spectralsequences/src/sseqmacromakers.code.tex
index b3449eda42..2c82f18ce7 100644
--- a/graphics/pgf/contrib/spectralsequences/src/sseqmacromakers.code.tex
+++ b/graphics/pgf/contrib/spectralsequences/src/sseqmacromakers.code.tex
@@ -1,8 +1,8 @@
%%
-%% Package: spectralsequences v1.3.0 2021-07-18
+%% Package: spectralsequences v1.3.1 2022-01-04
%% Author: Hood Chatham
%% Email: hood@mit.edu
-%% Date: 2021-07-18
+%% Date: 2022-01-04
%% License: Latex Project Public License
%%
%% File: sseqmacromakers.code.tex
@@ -152,7 +152,10 @@
\ifx\sseq__cmd_prepare_signature:n\undefined
\let\sseq__cmd_prepare_signature:n\__xparse_prepare_signature:n
\fi
-\pretocmd\sseq__cmd_prepare_signature:n { \bool_set_false:N \l__cmd_grab_expandably_bool } {}{\error}
+\pretocmd\sseq__cmd_prepare_signature:n {
+ \bool_set_false:N \l__cmd_grab_expandably_bool
+ \bool_set_false:N \l__xparse_grab_expandably_bool
+}{}{\error}
% I would like to patch the \__xparse_grab_U:w's in my commands into \sseq__xparse_grab_U:w's but I can't because of -NoValue-.
\def\sseq@install@xparse@Uarggrabber{%
diff --git a/graphics/pgf/contrib/spectralsequences/src/sseqmain.code.tex b/graphics/pgf/contrib/spectralsequences/src/sseqmain.code.tex
index 6456f99b4b..4f2a40ac9c 100644
--- a/graphics/pgf/contrib/spectralsequences/src/sseqmain.code.tex
+++ b/graphics/pgf/contrib/spectralsequences/src/sseqmain.code.tex
@@ -1,8 +1,8 @@
%%
-%% Package: spectralsequences v1.3.0 2021-07-18
+%% Package: spectralsequences v1.3.1 2022-01-04
%% Author: Hood Chatham
%% Email: hood@mit.edu
-%% Date: 2021-07-18
+%% Date: 2022-01-04
%% License: Latex Project Public License
%%
%% File: sseqmain.code.tex
@@ -270,7 +270,7 @@
\sseq@tempxdimen = \dimexpr \linewidth - \sseq@totalhorizontalmargin@yborder - 0.1pt
\sseq@tempydimen = \dimexpr \textheight - \sseq@totalverticalmargin@xborder - 0.1pt
%
- \ifsseq@rangecheck@sideways
+ \ifsseq@insidewaysenv
% Swap availability measurements
\sseq@tempdimen=\sseq@tempxdimen
\sseq@tempxdimen=\sseq@tempydimen
@@ -1596,7 +1596,7 @@
\def\sseq@extension@main#1#2#3#4{
\sseq@xsetthiscall{\string\extension\IfNoValueF{#2}{\unexpanded{[#2]}}\IfNoValueF{#3}{\unexpanded{(#3)}\IfNoValueF{#4}{\unexpanded{(#4)}}}}%
- \def\sseq@edgetype{structline}
+ \def\sseq@edgetype{extension}
\sseq@options@firstpassmode
\the\sseq@sseqstyle
\the\sseq@edgestyle
@@ -1708,7 +1708,7 @@
\fi
\egroup
}
-\def\sseq@extension@draw#1{\sseq@eval{\@nx\sseq@drawedge\sseq@obj{#1.source}\sseq@obj{#1.target}{structline}{\@nx\sseq@obj{#1.options}}}}
+\def\sseq@extension@draw#1{\sseq@eval{\@nx\sseq@drawedge\sseq@obj{#1.source}\sseq@obj{#1.target}{extension}{\@nx\sseq@obj{#1.options}}}}
%% This is a dumb place to put this. It has to be after the differential commands are defined.
\ifsseq@draftmode % Okay, have to dummy out all the main commands.
diff --git a/graphics/pgf/contrib/spectralsequences/src/sseqmessages.code.tex b/graphics/pgf/contrib/spectralsequences/src/sseqmessages.code.tex
index fc735f3014..ce1750c8dc 100644
--- a/graphics/pgf/contrib/spectralsequences/src/sseqmessages.code.tex
+++ b/graphics/pgf/contrib/spectralsequences/src/sseqmessages.code.tex
@@ -1,8 +1,8 @@
%%
-%% Package: spectralsequences v1.3.0 2021-07-18
+%% Package: spectralsequences v1.3.1 2022-01-04
%% Author: Hood Chatham
%% Email: hood@mit.edu
-%% Date: 2021-07-18
+%% Date: 2022-01-04
%% License: Latex Project Public License
%%
%% File: sseqmessages.code.tex
@@ -464,6 +464,7 @@
or '\string\begin{sseqpage}[#1\sseq@possiblecurrentvaluemean]').%
}
+
% Applies to name and page. Saying "sseqs={name=somename}" is a bad idea.
\sseq@newerror{option-no-default-allowed}{%
You cannot set a default value for '#1'.% Try \@nx\sseqset{sseqs={#1\ifx\pgfkeyscurrentvalue\pgfkeysnovalue@text\else=\pgfkeyscurrentvalue\fi}}.%
@@ -501,7 +502,7 @@
\sseq@newerror{page-update-existing}{Option 'update existing' is only for the sseqdata environment.}
\sseq@newerror{page-no-name}{You can't specify a page but no name.}
\sseq@newerror{keep-changes-no-name}{Option 'keep changes' is only for named spectral sequences.}
-\sseq@newerror{keep-changes-sseqdata}{Option 'keep changes' is only for the sseqpage environment.}
+\sseq@newerror{only-for-sseqpages}{Option '#1' is only for the sseqpage environment.}
\sseq@newerror{unknown-grid}{Undefined grid style '#1'.}
\sseq@newerror{unknown-class-pattern}{Unknown class pattern '\sseq@classpattern'.}
\sseq@newerror{class-placement-shift}{Shifts are illegal in the transformations applied in "class placement" key. If you want to shift your nodes, use \string\sseqnewclasspattern.} % #1 <- x shift, #2 <- shift amount
diff --git a/graphics/pgf/contrib/spectralsequences/src/sseqparsers.code.tex b/graphics/pgf/contrib/spectralsequences/src/sseqparsers.code.tex
index b7452d89ae..f9131a467f 100644
--- a/graphics/pgf/contrib/spectralsequences/src/sseqparsers.code.tex
+++ b/graphics/pgf/contrib/spectralsequences/src/sseqparsers.code.tex
@@ -1,8 +1,8 @@
%%
-%% Package: spectralsequences v1.3.0 2021-07-18
+%% Package: spectralsequences v1.3.1 2022-01-04
%% Author: Hood Chatham
%% Email: hood@mit.edu
-%% Date: 2021-07-18
+%% Date: 2022-01-04
%% License: Latex Project Public License
%%
%% File: sseqparsers.code.tex