texlive[61510] Master/texmf-dist: spectralsequences (6jan22)

commits+karl at tug.org commits+karl at tug.org
Thu Jan 6 22:06:50 CET 2022


Revision: 61510
          http://tug.org/svn/texlive?view=revision&revision=61510
Author:   karl
Date:     2022-01-06 22:06:50 +0100 (Thu, 06 Jan 2022)
Log Message:
-----------
spectralsequences (6jan22)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/latex/spectralsequences/README.md
    trunk/Master/texmf-dist/doc/latex/spectralsequences/examples/ANSS-S_2.pdf
    trunk/Master/texmf-dist/doc/latex/spectralsequences/examples/ANSS-S_3.pdf
    trunk/Master/texmf-dist/doc/latex/spectralsequences/examples/ASS-S_2.pdf
    trunk/Master/texmf-dist/doc/latex/spectralsequences/examples/ASS-S_3.pdf
    trunk/Master/texmf-dist/doc/latex/spectralsequences/examples/ASS-tmf_2.pdf
    trunk/Master/texmf-dist/doc/latex/spectralsequences/examples/HFPSS-EO2_3.pdf
    trunk/Master/texmf-dist/doc/latex/spectralsequences/examples/HFPSS-KO.pdf
    trunk/Master/texmf-dist/doc/latex/spectralsequences/examples/J_RPinfty.pdf
    trunk/Master/texmf-dist/doc/latex/spectralsequences/examples/J_RPinfty.tex
    trunk/Master/texmf-dist/doc/latex/spectralsequences/examples/MaySS-bo-A1.pdf
    trunk/Master/texmf-dist/doc/latex/spectralsequences/examples/MaySS-tmf-A2.pdf
    trunk/Master/texmf-dist/doc/latex/spectralsequences/examples/SSS-KF3n.pdf
    trunk/Master/texmf-dist/doc/latex/spectralsequences/examples/SSS-KZ3.pdf
    trunk/Master/texmf-dist/doc/latex/spectralsequences/examples/hatcher.pdf
    trunk/Master/texmf-dist/doc/latex/spectralsequences/examples/hatcher.tex
    trunk/Master/texmf-dist/doc/latex/spectralsequences/examples/unstable_ASS_SO.pdf
    trunk/Master/texmf-dist/doc/latex/spectralsequences/examples/unstable_ASS_SO.tex
    trunk/Master/texmf-dist/doc/latex/spectralsequences/manual/spectralsequencesmanual.pdf
    trunk/Master/texmf-dist/doc/latex/spectralsequences/manual/spectralsequencesmanual.tex
    trunk/Master/texmf-dist/doc/latex/spectralsequences/manual/spectralsequencesmanualpreamble.tex
    trunk/Master/texmf-dist/tex/latex/spectralsequences/spectralsequences.sty
    trunk/Master/texmf-dist/tex/latex/spectralsequences/sseqcheckdefinitions.code.tex
    trunk/Master/texmf-dist/tex/latex/spectralsequences/sseqdrawing.code.tex
    trunk/Master/texmf-dist/tex/latex/spectralsequences/sseqforeach.code.tex
    trunk/Master/texmf-dist/tex/latex/spectralsequences/sseqkeys.code.tex
    trunk/Master/texmf-dist/tex/latex/spectralsequences/sseqloadstore.code.tex
    trunk/Master/texmf-dist/tex/latex/spectralsequences/sseqmacromakers.code.tex
    trunk/Master/texmf-dist/tex/latex/spectralsequences/sseqmain.code.tex
    trunk/Master/texmf-dist/tex/latex/spectralsequences/sseqmessages.code.tex
    trunk/Master/texmf-dist/tex/latex/spectralsequences/sseqparsers.code.tex

Added Paths:
-----------
    trunk/Master/texmf-dist/doc/latex/spectralsequences/manual/examples/
    trunk/Master/texmf-dist/doc/latex/spectralsequences/manual/examples/spectralsequencesmanual-KORP8.tex
    trunk/Master/texmf-dist/doc/latex/spectralsequences/manual/examples/spectralsequencesmanual-class-page2a.tex
    trunk/Master/texmf-dist/doc/latex/spectralsequences/manual/examples/spectralsequencesmanual-class-page2b.tex
    trunk/Master/texmf-dist/doc/latex/spectralsequences/manual/examples/spectralsequencesmanual-imJ.tex
    trunk/Master/texmf-dist/doc/latex/spectralsequences/manual/examples/spectralsequencesmanual-insert.tex
    trunk/Master/texmf-dist/doc/latex/spectralsequences/manual/examples/spectralsequencesmanual-tikz.tex

Removed Paths:
-------------
    trunk/Master/texmf-dist/doc/latex/spectralsequences/manual/pgfmanual-en-macros.tex

Modified: trunk/Master/texmf-dist/doc/latex/spectralsequences/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/spectralsequences/README.md	2022-01-06 11:08:43 UTC (rev 61509)
+++ trunk/Master/texmf-dist/doc/latex/spectralsequences/README.md	2022-01-06 21:06:50 UTC (rev 61510)
@@ -1,9 +1,9 @@
 
-spectralsequences v1.3.0
+spectralsequences v1.3.1
 ========================
 Author: Hood Chatham  
 Email: hood at 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 @@
 
 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.

Modified: trunk/Master/texmf-dist/doc/latex/spectralsequences/examples/ANSS-S_2.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/spectralsequences/examples/ANSS-S_3.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/spectralsequences/examples/ASS-S_2.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/spectralsequences/examples/ASS-S_3.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/spectralsequences/examples/ASS-tmf_2.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/spectralsequences/examples/HFPSS-EO2_3.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/spectralsequences/examples/HFPSS-KO.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/spectralsequences/examples/J_RPinfty.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/spectralsequences/examples/J_RPinfty.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/spectralsequences/examples/J_RPinfty.tex	2022-01-06 11:08:43 UTC (rev 61509)
+++ trunk/Master/texmf-dist/doc/latex/spectralsequences/examples/J_RPinfty.tex	2022-01-06 21:06:50 UTC (rev 61510)
@@ -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 at mit.edu
-%% Date: 2021-07-18
+%% Date: 2022-01-04
 %% License: Latex Project Public License
 %%
 %% File: example_endofVFoS.tex

Modified: trunk/Master/texmf-dist/doc/latex/spectralsequences/examples/MaySS-bo-A1.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/spectralsequences/examples/MaySS-tmf-A2.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/spectralsequences/examples/SSS-KF3n.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/spectralsequences/examples/SSS-KZ3.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/spectralsequences/examples/hatcher.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/spectralsequences/examples/hatcher.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/spectralsequences/examples/hatcher.tex	2022-01-06 11:08:43 UTC (rev 61509)
+++ trunk/Master/texmf-dist/doc/latex/spectralsequences/examples/hatcher.tex	2022-01-06 21:06:50 UTC (rev 61510)
@@ -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 at mit.edu
-%% Date: 2021-07-18
+%% Date: 2022-01-04
 %% License: Latex Project Public License
 %%
 %% File: example_hatcher.tex

Modified: trunk/Master/texmf-dist/doc/latex/spectralsequences/examples/unstable_ASS_SO.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/spectralsequences/examples/unstable_ASS_SO.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/spectralsequences/examples/unstable_ASS_SO.tex	2022-01-06 11:08:43 UTC (rev 61509)
+++ trunk/Master/texmf-dist/doc/latex/spectralsequences/examples/unstable_ASS_SO.tex	2022-01-06 21:06:50 UTC (rev 61510)
@@ -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 at mit.edu
-%% Date: 2021-07-18
+%% Date: 2022-01-04
 %% License: Latex Project Public License
 %%
 %% File: example_unstable_ASS_SO.tex

Added: trunk/Master/texmf-dist/doc/latex/spectralsequences/manual/examples/spectralsequencesmanual-KORP8.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/spectralsequences/manual/examples/spectralsequencesmanual-KORP8.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/spectralsequences/manual/examples/spectralsequencesmanual-KORP8.tex	2022-01-06 21:06:50 UTC (rev 61510)
@@ -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


Property changes on: trunk/Master/texmf-dist/doc/latex/spectralsequences/manual/examples/spectralsequencesmanual-KORP8.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/spectralsequences/manual/examples/spectralsequencesmanual-class-page2a.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/spectralsequences/manual/examples/spectralsequencesmanual-class-page2a.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/spectralsequences/manual/examples/spectralsequencesmanual-class-page2a.tex	2022-01-06 21:06:50 UTC (rev 61510)
@@ -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


Property changes on: trunk/Master/texmf-dist/doc/latex/spectralsequences/manual/examples/spectralsequencesmanual-class-page2a.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/spectralsequences/manual/examples/spectralsequencesmanual-class-page2b.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/spectralsequences/manual/examples/spectralsequencesmanual-class-page2b.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/spectralsequences/manual/examples/spectralsequencesmanual-class-page2b.tex	2022-01-06 21:06:50 UTC (rev 61510)
@@ -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


Property changes on: trunk/Master/texmf-dist/doc/latex/spectralsequences/manual/examples/spectralsequencesmanual-class-page2b.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/spectralsequences/manual/examples/spectralsequencesmanual-imJ.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/spectralsequences/manual/examples/spectralsequencesmanual-imJ.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/spectralsequences/manual/examples/spectralsequencesmanual-imJ.tex	2022-01-06 21:06:50 UTC (rev 61510)
@@ -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


Property changes on: trunk/Master/texmf-dist/doc/latex/spectralsequences/manual/examples/spectralsequencesmanual-imJ.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/spectralsequences/manual/examples/spectralsequencesmanual-insert.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/spectralsequences/manual/examples/spectralsequencesmanual-insert.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/spectralsequences/manual/examples/spectralsequencesmanual-insert.tex	2022-01-06 21:06:50 UTC (rev 61510)
@@ -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


Property changes on: trunk/Master/texmf-dist/doc/latex/spectralsequences/manual/examples/spectralsequencesmanual-insert.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/spectralsequences/manual/examples/spectralsequencesmanual-tikz.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/spectralsequences/manual/examples/spectralsequencesmanual-tikz.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/spectralsequences/manual/examples/spectralsequencesmanual-tikz.tex	2022-01-06 21:06:50 UTC (rev 61510)
@@ -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


Property changes on: trunk/Master/texmf-dist/doc/latex/spectralsequences/manual/examples/spectralsequencesmanual-tikz.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Deleted: trunk/Master/texmf-dist/doc/latex/spectralsequences/manual/pgfmanual-en-macros.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/spectralsequences/manual/pgfmanual-en-macros.tex	2022-01-06 11:08:43 UTC (rev 61509)
+++ trunk/Master/texmf-dist/doc/latex/spectralsequences/manual/pgfmanual-en-macros.tex	2022-01-06 21:06:50 UTC (rev 61510)
@@ -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 at 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 at temp@default{#3}%
-  \def\manual at temp@initial{#4}%
-  \def\manual at temp@{#3#4}%
-  \pgfmanualentryheadline{%
-    \pgfmanualpdflabel{#1}{}%
-    {\ttfamily/graph
-      drawing/\declare{#1}\opt{=}}\opt{#2}\hfill%
-    \ifx\manual at temp@\pgfutil at empty\else%
-    (\ifx\manual at temp@default\pgfutil at empty\else%
-    default {\ttfamily #3}\ifx\manual at temp@initial\pgfutil at empty\else, \fi%
-    \fi%
-    \ifx\manual at temp@initial\pgfutil at 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 at temp@para{#2}%
-  \def\manual at temp@default{#3}%
-  \def\manual at temp@initial{#4}%
-  \def\manual at temp@{#3#4}%
-  \pgfmanualentryheadline{%
-    \pgfmanualpdflabel{#1}{}%
-    {\ttfamily/graph drawing/\declare{#1}}\ifx\manual at temp@para\pgfutil at empty\else\opt{\texttt=}\opt{#2}\fi\hfill%
-    (style\ifx\manual at temp@\pgfutil at empty\else, %
-    \ifx\manual at temp@default\pgfutil at empty\else%
-    default {\ttfamily #3}\ifx\manual at temp@initial\pgfutil at empty\else, \fi%
-    \fi%
-    \ifx\manual at temp@initial\pgfutil at 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 at ifnextchar[\parameteritem@{}}%}
-\def\parameteritem@[#1]{\advance\parametercount by1\relax\hskip0.15em plus 1em\emph{\the\parametercount.}\kern1ex\def\test{#1}\ifx\test\pgfutil at 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 at xa}
-% \end{internallist}
-%
-% \begin{internallist}[register]{\pgf at xa,\pgf at 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 at 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 at in@true
-  \else
-    \pgfutil at 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 at in@={#1}%
-  \ifpgfutil at in@%
-    \extractkeyequal#1\@nil
-  \else%
-    \pgfutil at in@{(initial}{#1}%
-    \ifpgfutil at 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 at in@{(default}{#2}%
-  \ifpgfutil at in@%
-    \extractdefault{#1}#2\@nil%
-  \else%
-    \pgfutil at in@{(initial}{#2}%
-    \ifpgfutil at 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 at 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 at 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 at 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 at IndexColumns=2
-  \def\theindex{\@restonecoltrue
-    \columnseprule \z@  \columnsep 29\p@
-    \twocolumn[\index at 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 at temp\csname manual at action@#1\endcsname
-  \ifx\pgf at temp\relax\else
-    \pgf at temp#2/0/\relax
-  \fi
-}
-\def\manual at 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 at action@width#1/#2/#3\relax{%
-  \draw [overlay, red,|<->|,semithick] (.5,-#1/2) -- node [below,sloped] {|width|} (.5,#1/2);
-}
-\def\manual at 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 at 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 at 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 at 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 at 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 at till@return}}
-\gdef\@gobble at till@return#1^^M{}
-\gdef\@gobble at till@return at ignore#1^^M{\ignorespaces}
-\gdef\typesetcomment{\catcode`\%=13\def%{\@typeset at till@return}}
-\gdef\@typeset at till@return#1^^M{{\def%{\char`\%}\textsl{\char`\%#1}}\par}
-\endgroup
-
-% Define tab-implementation functions
-%   \codeexample at tabinit@replacementchars@
-% and
-%   \codeexample at tabinit@catcode@
-%
-% They should ONLY be used in case that tab replacement is active.
-%
-% This here is merely a preparation step.
-%
-% Idea:
-% \codeexample at tabinit@catcode@ will make TAB active
-% and
-% \codeexample at tabinit@replacementchars@ will insert as many spaces as
-% /codeexample/tabsize contains.
-{
-\catcode`\^^I=13
-% ATTENTION: do NOT use tabs in these definitions!!
-\gdef\codeexample at tabinit@replacementchars@{%
- \begingroup
- \count0=\pgfkeysvalueof{/codeexample/tabsize}\relax
- \toks0={}%
- \loop
- \ifnum\count0>0
-  \advance\count0 by-1
-  \toks0=\expandafter{\the\toks0\ }%
- \repeat
- \xdef\codeexample at tabinit@replacementchars@@{\the\toks0}%
- \endgroup
- \let^^I=\codeexample at tabinit@replacementchars@@
-}%
-\gdef\codeexample at tabinit@catcode@{\catcode`\^^I=13}%
-}%
-
-% Called after any options have been set. It assigns
-%   \codeexample at tabinit@catcode
-% and
-%   \codeexample at tabinit@replacementchars
-% which are used inside of
-%\begin{codeexample}
-% ...
-%\end{codeexample}
-%
-% \codeexample at tabinit@catcode  is either \relax or it makes tab
-% active.
-%
-% \codeexample at tabinit@replacementchars is either \relax or it inserts
-% a proper replacement sequence for tabs (as many spaces as
-% configured)
-\def\codeexample at tabinit{%
-  \ifnum\pgfkeysvalueof{/codeexample/tabsize}=0\relax
-    \let\codeexample at tabinit@replacementchars=\relax
-    \let\codeexample at tabinit@catcode=\relax
-  \else
-    \let\codeexample at tabinit@catcode=\codeexample at tabinit@catcode@
-    \let\codeexample at tabinit@replacementchars=\codeexample at 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 at execute,
-  code only/.code=  {\code at executefalse},
-  pre/.store in=\code at pre,
-  post/.store in=\code at 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 at render,
-  vbox/.code=  {\def\code at pre{\vbox\bgroup\setlength{\hsize}{\linewidth-6pt}}\def\code at post{\egroup}},
-  ignorespaces/.code=  {\let\@gobble at till@return=\@gobble at till@return at ignore},
-  leave comments/.code=  {\def\code at 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 at 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 at pre\pgfutil at empty
-\let\code at post\pgfutil at empty
-\let\code at render\pgfutil at empty
-\def\code at catcode@hook{}
-
-\newif\ifcodeexamplefromfile
-\newdimen\codeexamplewidth
-\newif\ifcode at execute
-\newbox\codeexamplebox
-\def\codeexample[#1]{%
-  \begingroup%
-  \code at executetrue
-  \pgfqkeys{/codeexample}{every codeexample,#1}%
-  \pgfmanualswitchoncolors%
-  \ifcodeexamplefromfile\begingroup\fi
-  \codeexample at tabinit% assigns \codeexample at tabinit@[catcode,replacementchars]
-  \parindent0pt
-  \begingroup%
-  \par%
-  \medskip%
-  \let\do\@makeother%
-  \dospecials%
-  \obeylines%
-  \@vobeyspaces%
-  \catcode`\%=13%
-  \catcode`\^^M=13%
-  \code at catcode@hook%
-  \codeexample at tabinit@catcode
-  \relax%
-  \ifcodeexamplefromfile%
-    \expandafter\do at codeexamplefromfile%
-  \else%
-    \expandafter\find at example%
-  \fi}
-\def\endofcodeexample#1{%
-  \endgroup%
-  \ifcode at execute%
-    \setbox\codeexamplebox=\hbox{%
-      \ifx\code at render\pgfutil at empty%
-      {%
-        {%
-          \returntospace%
-          \commenthandler%
-          \xdef\code at temp{#1}% removes returns and comments
-        }%
-        \catcode`\^^M=9%
-        \colorbox{graphicbackground}{\color{black}\ignorespaces%
-          \code at pre\expandafter\scantokens\expandafter{\code at temp\ignorespaces}\code at post\ignorespaces}%
-      }%
-      \else%
-        \colorbox{graphicbackground}{\color{black}\ignorespaces%
-          \code at render}%
-      \fi%
-    }%
-    \ifdim\wd\codeexamplebox>\codeexamplewidth%
-      \def\code at start{\par}%
-      \def\code at flushstart{}\def\code at flushend{}%
-      \def\code at mid{\parskip2pt\par\noindent}%
-      \def\code at width{\linewidth-6pt}%
-      \def\code at end{}%
-    \else%
-      \def\code at start{%
-        \linewidth=\textwidth%
-        \parshape \@ne 0pt \linewidth
-        \leavevmode%
-        \hbox\bgroup}%
-      \def\code at flushstart{\hfill}%
-      \def\code at flushend{\hbox{}}%
-      \def\code at mid{\hskip6pt}%
-      \def\code at width{\linewidth-12pt-\codeexamplewidth}%
-      \def\code at end{\egroup}%
-    \fi%
-    \code at start%
-    \noindent%
-    \begin{minipage}[t]{\codeexamplewidth}\raggedright
-      \hrule width0pt%
-      \footnotesize\vskip-1em%
-      \code at flushstart\box\codeexamplebox\code at flushend%
-      \vskip-1ex
-      \leavevmode%
-    \end{minipage}%
-  \else%
-    \def\code at mid{\par}
-    \def\code at width{\linewidth-6pt}
-    \def\code at end{}
-  \fi%
-  \code at mid%
-  \colorbox{codebackground}{%
-    \pgfkeysvalueof{/codeexample/prettyprint/base color}%
-    \begin{minipage}[t]{\code at width}%
-      {%
-        \let\do\@makeother
-        \dospecials
-        \frenchspacing\@vobeyspaces
-        \normalfont\ttfamily\footnotesize
-        \typesetcomment%
-        \codeexample at tabinit@replacementchars
-        \@tempswafalse
-        \def\par{%
-          \if at tempswa
-          \leavevmode \null \@@par\penalty\interlinepenalty
-          \else
-          \@tempswatrue
-          \ifhmode\@@par\penalty\interlinepenalty\fi
-          \fi}%
-        \obeylines
-        \everypar \expandafter{\the\everypar \unpenalty}%
-        \pgfkeysvalueof{/codeexample/typeset listing/. at cmd}{#1}\pgfeov
-      }
-    \end{minipage}}%
-  \code at 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 at 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 at stop}%
-\def\pgfmanualnoligs#1--{%
-  \pgfutil at ifnextchar\pgf at stop{#1\pgfutil at gobble}{#1-\kern0pt-\kern0pt\pgfmanualnoligs}%
-}
-\makeatother
-
-
-%%% Local Variables:
-%%% mode: latex
-%%% TeX-master: "beameruserguide"
-%%% End:

Modified: trunk/Master/texmf-dist/doc/latex/spectralsequences/manual/spectralsequencesmanual.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/spectralsequences/manual/spectralsequencesmanual.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/spectralsequences/manual/spectralsequencesmanual.tex	2022-01-06 11:08:43 UTC (rev 61509)
+++ trunk/Master/texmf-dist/doc/latex/spectralsequences/manual/spectralsequencesmanual.tex	2022-01-06 21:06:50 UTC (rev 61510)
@@ -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 at mit.edu
-%% Date: 2021-07-18
+%% Date: 2022-01-04
 %% License: Latex Project Public License
 %%
 %% File: spectralsequencesmanual.tex
@@ -515,12 +515,12 @@
 \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 @@
 \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 @@
 \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 @@
 
 \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 @@
 
 \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 @@
 \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 @@
 \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 @@
 \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 @@
 \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 @@
 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 @@
 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}{

Modified: trunk/Master/texmf-dist/doc/latex/spectralsequences/manual/spectralsequencesmanualpreamble.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/spectralsequences/manual/spectralsequencesmanualpreamble.tex	2022-01-06 11:08:43 UTC (rev 61509)
+++ trunk/Master/texmf-dist/doc/latex/spectralsequences/manual/spectralsequencesmanualpreamble.tex	2022-01-06 21:06:50 UTC (rev 61510)
@@ -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 at mit.edu
-%% Date: 2021-07-18
+%% Date: 2022-01-04
 %% License: Latex Project Public License
 %%
 %% File: spectralsequencesmanualpreamble.tex

Modified: trunk/Master/texmf-dist/tex/latex/spectralsequences/spectralsequences.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/spectralsequences/spectralsequences.sty	2022-01-06 11:08:43 UTC (rev 61509)
+++ trunk/Master/texmf-dist/tex/latex/spectralsequences/spectralsequences.sty	2022-01-06 21:06:50 UTC (rev 61510)
@@ -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 at 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,8 +279,14 @@
     \let\sseqnewgroup\@gobblethree
 }
 
-\AtBeginEnvironment{sideways}{\sseqset{range check sideways}}
+\newif\ifsseq at insidewaysenv
+\sseq at insidewaysenvfalse
+\def\SseqOrientationNormal{\sseq at insidewaysenvfalse}
+\def\SseqOrientationSideways{\sseq at insidewaysenvtrue}
+\def\SseqOrientationToggle{\ifsseq at insidewaysenv\sseq at insidewaysenvfalse\else\sseq at insidewaysenvtrue\fi}
+\AtBeginEnvironment{sideways}{\SseqOrientationToggle}
 
+
 \input sseqmessages.code.tex        % Exposes directly: \sseqerrortowarning
 \input sseqcheckdefinitions.code.tex
 

Modified: trunk/Master/texmf-dist/tex/latex/spectralsequences/sseqcheckdefinitions.code.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/spectralsequences/sseqcheckdefinitions.code.tex	2022-01-06 11:08:43 UTC (rev 61509)
+++ trunk/Master/texmf-dist/tex/latex/spectralsequences/sseqcheckdefinitions.code.tex	2022-01-06 21:06:50 UTC (rev 61510)
@@ -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 at mit.edu
-%% Date: 2021-07-18
+%% Date: 2022-01-04
 %% License: Latex Project Public License
 %%
 %% File: sseqcheckdefinitions.code.tex

Modified: trunk/Master/texmf-dist/tex/latex/spectralsequences/sseqdrawing.code.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/spectralsequences/sseqdrawing.code.tex	2022-01-06 11:08:43 UTC (rev 61509)
+++ trunk/Master/texmf-dist/tex/latex/spectralsequences/sseqdrawing.code.tex	2022-01-06 21:06:50 UTC (rev 61510)
@@ -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 at 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 at fullcoord@to at 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 at drawedge(#1)(#2)#3#4{%
     \begingroup\pgfscope

Modified: trunk/Master/texmf-dist/tex/latex/spectralsequences/sseqforeach.code.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/spectralsequences/sseqforeach.code.tex	2022-01-06 11:08:43 UTC (rev 61509)
+++ trunk/Master/texmf-dist/tex/latex/spectralsequences/sseqforeach.code.tex	2022-01-06 21:06:50 UTC (rev 61510)
@@ -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 at mit.edu
-%% Date: 2021-07-18
+%% Date: 2022-01-04
 %% License: Latex Project Public License
 %%
 %% File: sseqforeach.code.tex

Modified: trunk/Master/texmf-dist/tex/latex/spectralsequences/sseqkeys.code.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/spectralsequences/sseqkeys.code.tex	2022-01-06 11:08:43 UTC (rev 61509)
+++ trunk/Master/texmf-dist/tex/latex/spectralsequences/sseqkeys.code.tex	2022-01-06 21:06:50 UTC (rev 61510)
@@ -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 at 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 at passoptionto{/sseqpages}},
     /sseqpages/struct line/.is family,
     /sseqpages/struct line/.unknown/.code={\sseq at passoptionto{/sseqpages}},
+    /sseqpages/extension/.is family,
+    /sseqpages/extension/.unknown/.code={\sseq at passoptionto{/sseqpages}},
     /sseqpages/label/.is family,
     /sseqpages/label/.unknown/.code={\sseq at 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 at needstikzandpass#1#2{\sseq at needstikzandpass@{#1}#2,\@nil}
+\def\sseq at needstikzandpass#1#2{\sseq at needstikzandpass@{#2}#1,\@nila}
 \def\sseq at needstikzandpass@#1#2,{%
+    \sseq at needstikzandpass@@{#2}#1,\@nilb
+    \@ifnextchar\@nila{\@gobble}{\sseq at needstikzandpass@{#1}}
+}
+\def\sseq at needstikzandpass@@#1#2,{%
     \pgfqkeys{#1}{#2/.code={\sseq at options@firstpass{\sseq at needstikztrue}\sseq at options@secondpass{\sseq at pgfkeysdocommand{#2}{##1}\sseq at needstikztrue}}}%
-    \@ifnextchar\@nil{\@gobble}{\sseq at needstikzandpass@{#1}}%
+    \@ifnextchar\@nilb{\@gobble}{\sseq at needstikzandpass@@{#1}}%
 }
 
 \pgfqkeys{/sseqpages}{needs tikz/.code=\sseq at needstikztrue}
@@ -661,7 +667,7 @@
     shade, blend mode, pattern, path picture, path fading, decorate, pin, label % should pin be here?
 }
 
-\sseq at needstikzandpass{/sseqpages/differential}{%
+\sseq at 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,
@@ -668,13 +674,6 @@
     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 at needstikzandpass{/sseqpages/struct line}{%
-    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.
-}
-
 %    circle split/.code=\sseq at needstikzandpass,
 %    circle solidus/.code=\sseq at needstikzandpass,
 %    ellipse split/.code=\sseq at needstikzandpass,
@@ -688,12 +687,14 @@
 \sseq at pgfqkeysdirlist{/sseqpages/global,/sseqpages}{
     run off differentials/.code args={#1-#2}{\def\sseq at runoffarrow@start at differential@spec{#1}\def\sseq at runoffarrow@end at differential@spec{#2}},
     run off struct lines/.code args={#1-#2}{\def\sseq at runoffarrow@start at structline@spec{#1}\def\sseq at runoffarrow@end at structline@spec{#2}},
+    run off extensions/.code args={#1-#2}{\def\sseq at runoffarrow@start at extension@spec{#1}\def\sseq at runoffarrow@end at 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 at pgfqkeysdirlist{/sseqpages/differential,/sseqpages/struct line}{
+\sseq at pgfqkeysdirlist{/sseqpages/edge, /sseqpages/differential, /sseqpages/struct line, /sseqpages/extension}{
     source anchor/.sseq @ second pass store in=\sseq at edgesourceanchor,
     target anchor/.sseq @ second pass store in=\sseq at edgetargetanchor,
     shorten >/.sseq @ second pass code={\sseq at pgfkeysdocommand{shorten >}{#1}},
@@ -882,10 +883,11 @@
 
 % sseq needs special handling, so is done by hand above.
 %\sseq at newstyles{/sseqpages/}{sseq}% DON'T make this /global/default! Bad things will happen.
-\sseq at newstyles{/sseqpages/label,/sseqpages}{edge, label, edge label, differential label, struct line label}
+\sseq at newstyles{/sseqpages/label,/sseqpages/edge,/sseqpages}{edge, label, edge label, differential label, struct line label, extension label}
 \sseq at newstyles{/sseqpages/class,/sseqpages}{class, permanent cycle, transient cycle, this page cycle}
-\sseq at newstyles{/sseqpages/differential,/sseqpages}{differential}
-\sseq at newstyles{/sseqpages/struct line,/sseqpages}{struct line, this page struct line}
+\sseq at newstyles{/sseqpages/differential,/sseqpages/edge,/sseqpages}{differential}
+\sseq at newstyles{/sseqpages/struct line,/sseqpages/edge,/sseqpages}{struct line, this page struct line}
+\sseq at newstyles{/sseqpages/extension,/sseqpages/edge,/sseqpages}{extension}
 \sseq at newstyles{/sseqpages/class/label}{class label, inner class label, outer class label}
 \sseq at newstyles{/sseqpages/class/label/pin}{pin}
 \sseq at newstyles{/sseqpages/tikz primitives}{tikz primitive}
@@ -936,7 +938,7 @@
 %%
 
 
-\def\sseq at featurelist{\\{class}\\{differential}\\{structline}\\{circleclass}\\{tikzprimitive}}
+\def\sseq at featurelist{\\{class}\\{differential}\\{structline}\\{extension}\\{circleclass}\\{tikzprimitive}}
 \def\sseq at mapfeaturelist#1{\def\\##1{#1}\sseq at featurelist}
 
 \def\sseq at familylist{}
@@ -960,6 +962,7 @@
             \@nx\sseq at addstylecodetomacro\@xp\@nx\sseq at tempcmd@class{/sseqpages/class,/sseqpages/collections/class}{##1}%
             \@nx\sseq at addstylecodetomacro\@xp\@nx\sseq at tempcmd@differential{/sseqpages/differential,/sseqpages/collections/differential}{##1}%
             \@nx\sseq at addstylecodetomacro\@xp\@nx\sseq at tempcmd@structline{/sseqpages/struct line,/sseqpages/collections/struct line}{##1}%
+            \@nx\sseq at addstylecodetomacro\@xp\@nx\sseq at tempcmd@extension{/sseqpages/extension,/sseqpages/collections/extension}{##1}%
             \@nx\sseq at addstylecodetomacro\@xp\@nx\sseq at tempcmd@circleclass{/sseqpages/fit,/sseqpages/collections/fit}{##1}%
             \@nx\sseq at addstylecodetomacro\@xp\@nx\sseq at tempcmd@tikzprimitive{/sseqpages/tikz primitives,/sseqpages/collections/tikz primitives}{##1}%
         },
@@ -971,6 +974,7 @@
             \@nx\sseq at addstylecodetomacro\@xp\@nx\sseq at tempcmd@class at default{/sseqpages/class}{##1}%
             \@nx\sseq at addstylecodetomacro\@xp\@nx\sseq at tempcmd@differential at default{/sseqpages/differential}{##1}%
             \@nx\sseq at addstylecodetomacro\@xp\@nx\sseq at tempcmd@structline at default{/sseqpages/struct line}{##1}%
+            \@nx\sseq at addstylecodetomacro\@xp\@nx\sseq at tempcmd@structline at default{/sseqpages/extension}{##1}%
             \@nx\sseq at addstylecodetomacro\@xp\@nx\sseq at tempcmd@circleclass at default{/sseqpages/fit}{##1}%
             \@nx\sseq at addstylecodetomacro\@xp\@nx\sseq at tempcmd@tikzprimitive at 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 at 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 at 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 at collections@addtohook{/sseqpages/label}{\sseq at collections@edgelabels at hook}{#1}}},
     struct line/edge labels/.code/.expanded=
         {\unexpanded\@xp{\sseq at collections@addtohook{/sseqpages/label}{\sseq at collections@edgelabels at hook}{#1}}},
+    extension/edge labels/.code/.expanded=
+        {\unexpanded\@xp{\sseq at collections@addtohook{/sseqpages/label}{\sseq at collections@edgelabels at hook}{#1}}},
     differential/differential labels/.code/.expanded=
         {\unexpanded\@xp{\sseq at collections@addtohook{/sseqpages/label}{\sseq at collections@differentiallabels at hook}{#1}}},
     struct line/struct line labels/.code/.expanded=
         {\unexpanded\@xp{\sseq at collections@addtohook{/sseqpages/label}{\sseq at collections@structlinelabels at hook}{#1}}},
+    extension/extension labels/.code/.expanded=
+        {\unexpanded\@xp{\sseq at collections@addtohook{/sseqpages/label}{\sseq at collections@extensionlabels at hook}{#1}}},
 }
 
 
@@ -1264,6 +1275,7 @@
             \sseq at stylehandler@processpath{class}{#2}%
             \sseq at stylehandler@processpath{differential}{#2}%
             \sseq at stylehandler@processpath{struct line}{#2}%
+            \sseq at stylehandler@processpath{extension}{#2}%
             \sseq at stylehandler@processpath{circle classes}{#2}%
             \sseq at stylehandler@processpath{tikz primitives}{#2}%
 %
@@ -1280,6 +1292,7 @@
                 /sseqpages/class/\sseq at temp/.#1={##1},%
                 /sseqpages/differential/\sseq at temp/.#1={##1},%
                 /sseqpages/struct line/\sseq at temp/.#1={##1}%
+                /sseqpages/extension/\sseq at 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 at hasname\else\sseq at error{keep-changes-no-name}\fi
-        \ifsseq at ispageenv\else\sseq at error{keep-changes-sseqdata}\fi
+        \ifsseq at ispageenv\else\sseq at error@n{only-for-sseqpages}{keep-changes}\fi
     },
     grid/.code={\ifcsname sseq at grid@#1\endcsname\@xp\let\@xp\sseq at grid\csname sseq at grid@#1\endcsname\else\sseq at error@n{unknown-grid}{#1}\fi},
     grid/.sseq default code={\ifcsname sseq at grid@#1\endcsname\@xp\let\@xp\sseq at grid@default\csname sseq at grid@#1\endcsname\else\sseq at error@n{unknown-grid}{#1}\fi},
@@ -1508,15 +1521,21 @@
 
 
 \sseq at addiftostorelist@truedefault{rangecheck}
-\sseq at addiftostorelist{rangecheck at sideways}
 \sseq at globalkeys{%
-    range check standard/.code={\sseq at rangechecktrue\sseq at rangecheck@sidewaysfalse},
-    range check standard/.sseq default code={%
-        \def\sseq at rangecheck@default{\global\sseq at rangechecktrue}%
-        \def\sseq at rangecheck@sideways at default{\global\sseq at rangecheck@sidewaysfalse}%
+    range check on/.code={\sseq at rangechecktrue},
+    range check default/.sseq default code={\def\sseq at rangecheck@default{\global\sseq at rangechecktrue}},
+    range check standard/.code={%
+        \ifsseq at ispageenv\else\sseq at error@n{only-for-sseqpages}{range check standard}\fi
+        \SseqOrientationNormal
+        \sseq at rangechecktrue
     },
-    range check sideways/.code=rangecheck at sideways,
-    range check sideways/.sseq default code={\def\sseq at rangecheck@sideways at default{\global\sseq at rangecheck@sidewaystrue}},
+    range check standard/.sseq default error,
+    range check sideways/.code={%
+        \ifsseq at ispageenv\else\sseq at error@n{only-for-sseqpages}{range check sideways}\fi
+        \SseqOrientationSideways
+        \sseq at rangechecktrue
+    },
+    range check sideways/.sseq default error,
     range check off/.code={\sseq at rangecheckfalse},
     range check off/.sseq default code={\def\sseq at rangecheck@default{\global\sseq at rangecheckfalse}},
 }
@@ -2126,6 +2145,7 @@
     this page cycle style/.forward to=/sseqpages/tikz primitives/this page class style,
     differential style/.code={\sseq at d@addto at options{\sseq at thesseqstyle\sseq at theedgestyle\sseq at thedifferentialstyle\the\sseq at scope@toks}},
     struct line style/.code={\sseq at d@addto at options{\sseq at thesseqstyle\sseq at theedgestyle\sseq at thestructlinestyle\the\sseq at scope@toks}},
+    extension style/.code={\sseq at d@addto at options{\sseq at thesseqstyle\sseq at theedgestyle\sseq at theextensionstyle\the\sseq at scope@toks}},
     tikz primitive style/.code={\sseq at d@addto at options{\sseq at thesseqstyle\sseq at thetikzprimitivestyle\the\sseq at scope@toks}}
     %this page struct line style/.sseq @ first pass code={\sseq at d@addto at options{\sseq at thesseqstyle\sseq at theedgestyle\sseq at thestructlinestyle\the\sseq at scope@toks}}
 }

Modified: trunk/Master/texmf-dist/tex/latex/spectralsequences/sseqloadstore.code.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/spectralsequences/sseqloadstore.code.tex	2022-01-06 11:08:43 UTC (rev 61509)
+++ trunk/Master/texmf-dist/tex/latex/spectralsequences/sseqloadstore.code.tex	2022-01-06 21:06:50 UTC (rev 61510)
@@ -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 at mit.edu
-%% Date: 2021-07-18
+%% Date: 2022-01-04
 %% License: Latex Project Public License
 %%
 %% File: sseqloadstore.code.tex

Modified: trunk/Master/texmf-dist/tex/latex/spectralsequences/sseqmacromakers.code.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/spectralsequences/sseqmacromakers.code.tex	2022-01-06 11:08:43 UTC (rev 61509)
+++ trunk/Master/texmf-dist/tex/latex/spectralsequences/sseqmacromakers.code.tex	2022-01-06 21:06:50 UTC (rev 61510)
@@ -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 at 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 at install@xparse at Uarggrabber{%

Modified: trunk/Master/texmf-dist/tex/latex/spectralsequences/sseqmain.code.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/spectralsequences/sseqmain.code.tex	2022-01-06 11:08:43 UTC (rev 61509)
+++ trunk/Master/texmf-dist/tex/latex/spectralsequences/sseqmain.code.tex	2022-01-06 21:06:50 UTC (rev 61510)
@@ -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 at mit.edu
-%% Date: 2021-07-18
+%% Date: 2022-01-04
 %% License: Latex Project Public License
 %%
 %% File: sseqmain.code.tex
@@ -270,7 +270,7 @@
         \sseq at tempxdimen = \dimexpr \linewidth - \sseq at totalhorizontalmargin@yborder - 0.1pt
         \sseq at tempydimen = \dimexpr \textheight - \sseq at totalverticalmargin@xborder - 0.1pt
 %
-        \ifsseq at rangecheck@sideways
+        \ifsseq at insidewaysenv
             % Swap availability measurements
             \sseq at tempdimen=\sseq at tempxdimen
             \sseq at tempxdimen=\sseq at tempydimen
@@ -1596,7 +1596,7 @@
 
 \def\sseq at extension@main#1#2#3#4{
     \sseq at xsetthiscall{\string\extension\IfNoValueF{#2}{\unexpanded{[#2]}}\IfNoValueF{#3}{\unexpanded{(#3)}\IfNoValueF{#4}{\unexpanded{(#4)}}}}%
-    \def\sseq at edgetype{structline}
+    \def\sseq at edgetype{extension}
     \sseq at options@firstpassmode
     \the\sseq at sseqstyle
     \the\sseq at edgestyle
@@ -1708,7 +1708,7 @@
     \fi
     \egroup
 }
-\def\sseq at extension@draw#1{\sseq at eval{\@nx\sseq at drawedge\sseq at obj{#1.source}\sseq at obj{#1.target}{structline}{\@nx\sseq at obj{#1.options}}}}
+\def\sseq at extension@draw#1{\sseq at eval{\@nx\sseq at drawedge\sseq at obj{#1.source}\sseq at obj{#1.target}{extension}{\@nx\sseq at obj{#1.options}}}}
 
 %% This is a dumb place to put this. It has to be after the differential commands are defined.
 \ifsseq at draftmode % Okay, have to dummy out all the main commands.

Modified: trunk/Master/texmf-dist/tex/latex/spectralsequences/sseqmessages.code.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/spectralsequences/sseqmessages.code.tex	2022-01-06 11:08:43 UTC (rev 61509)
+++ trunk/Master/texmf-dist/tex/latex/spectralsequences/sseqmessages.code.tex	2022-01-06 21:06:50 UTC (rev 61510)
@@ -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 at 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 at possiblecurrentvaluemean]').%
 }
 
+
 % Applies to name and page. Saying "sseqs={name=somename}" is a bad idea.
 \sseq at newerror{option-no-default-allowed}{%
     You cannot set a default value for '#1'.% Try \@nx\sseqset{sseqs={#1\ifx\pgfkeyscurrentvalue\pgfkeysnovalue at text\else=\pgfkeyscurrentvalue\fi}}.%
@@ -501,7 +502,7 @@
 \sseq at newerror{page-update-existing}{Option 'update existing' is only for the sseqdata environment.}
 \sseq at newerror{page-no-name}{You can't specify a page but no name.}
 \sseq at newerror{keep-changes-no-name}{Option 'keep changes' is only for named spectral sequences.}
-\sseq at newerror{keep-changes-sseqdata}{Option 'keep changes' is only for the sseqpage environment.}
+\sseq at newerror{only-for-sseqpages}{Option '#1' is only for the sseqpage environment.}
 \sseq at newerror{unknown-grid}{Undefined grid style '#1'.}
 \sseq at newerror{unknown-class-pattern}{Unknown class pattern '\sseq at classpattern'.}
 \sseq at 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

Modified: trunk/Master/texmf-dist/tex/latex/spectralsequences/sseqparsers.code.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/spectralsequences/sseqparsers.code.tex	2022-01-06 11:08:43 UTC (rev 61509)
+++ trunk/Master/texmf-dist/tex/latex/spectralsequences/sseqparsers.code.tex	2022-01-06 21:06:50 UTC (rev 61510)
@@ -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 at mit.edu
-%% Date: 2021-07-18
+%% Date: 2022-01-04
 %% License: Latex Project Public License
 %%
 %% File: sseqparsers.code.tex



More information about the tex-live-commits mailing list.