From 4b008e6f0003c1cdf8e326fbb3fbeeab257eb321 Mon Sep 17 00:00:00 2001
From: Karl Berry <karl@freefriends.org>
Date: Fri, 6 Sep 2013 23:12:20 +0000
Subject: sseq (6sep13)

git-svn-id: svn://tug.org/texlive/trunk@31585 c570f23f-e606-0410-a88d-b1316a301751
---
 Master/texmf-dist/source/latex/sseq/sseq.dtx | 68 +++++++++++++++++++---------
 1 file changed, 47 insertions(+), 21 deletions(-)

(limited to 'Master/texmf-dist/source/latex/sseq/sseq.dtx')

diff --git a/Master/texmf-dist/source/latex/sseq/sseq.dtx b/Master/texmf-dist/source/latex/sseq/sseq.dtx
index 64914ae4f5b..eae419f24e0 100644
--- a/Master/texmf-dist/source/latex/sseq/sseq.dtx
+++ b/Master/texmf-dist/source/latex/sseq/sseq.dtx
@@ -28,6 +28,7 @@
 % \changes{v1.06}{August 1, 2005}{sseqxstep=0 will now suppress printing of horizontal label; similarly sseqystep=0 and vertical labels}
 % \changes{v2.0a}{July 16, 2007}{Completely recoded the graphics for using pgf instead of xyPic. Many new features. Consult the manual.}
 % \changes{v2.0}{April 9, 2009}{bug fix with arrows leaving the chart}
+% \changes{v2.01}{September 6, 2013}{bug fix with bent arrows displaying hooks. Now requires at least tikz/pgf version 2.0}
 % \ifthenelse{0=1}{
 %<*package>
 \NeedsTeXFormat{LaTeX2e}
@@ -35,9 +36,9 @@
 \ProvidesPackage{sseq}[2009/04/09 ver 2.0]
 
 \RequirePackage{ifthen,calc,pifont}
-\RequirePackage{pgf}[2006/01/01]
+\RequirePackage{pgf}[2008/02/20]
 \RequirePackage{xkeyval}
-\usepgflibrary{snakes}
+\usepgflibrary{decorations.pathmorphing}
 
 %^^A \newboolean{usesps}
 %^^A \setboolean{usesps}{true} % Deprecated for pgf version of sseq
@@ -601,6 +602,9 @@
 \def\sseq@setcircumference{
  \expandafter\ss@size\expandafter=\expandafter\csname\sseq@currentname size\endcsname
  \advance\ss@size by 1pt
+ \ifKV@sseqdrop@boxed  
+    \advance\ss@size by 2pt
+  \fi
  \ss@setshapesep{\the\ss@size}
 }
 
@@ -908,7 +912,17 @@
 % This command has no arguments and is rather specialized. It refers to a previously dropped object (see |\ssname|), draws a circle around it, and considers that circle a new object. Thus it produces a new circle object that is attached to the original object, and not subject to the algorithm that tries to make objects non-overlapping.
 %
 % \ifthenelse{0=1}{
-\def\ssdropextension{
+\define@key{sseqdropext}{circled}[true]{\newif\ifKV@sseqdrop@circled\csname KV@sseqdrop@circled#1\endcsname}
+\define@key{sseqdropext}{boxed}[true]{\newif\ifKV@sseqdrop@boxed\csname KV@sseqdrop@boxed#1\endcsname}
+\define@key{sseqdropext}{color}{\def\ssplacecolor{#1}}
+\define@key{sseqdropext}{name}{\def\sseq@name{#1}}
+%
+\def\ssdropextension{\@ifnextchar[\sseq@dropextension{\sseq@dropextension[]}}
+\def\sseq@dropextension[#1]{
+ \edef\sseq@savecolor{\ssplacecolor}
+ \def\sseq@name{\relax}
+ \presetkeys{sseqdropext}{circled=false,boxed=false}{}
+ \setkeys{sseqdrop}{#1}
  \ssassertsource
  \expandafter\def\expandafter\tmpname\expandafter{\csname sseqdrop\the\sseqposx,\the\sseqposy\endcsname}
  \edef\setcnt{\noexpand\count0=\tmpname}
@@ -923,7 +937,11 @@
  \else
    \sseqwritecolor{\ssplacecolor}
    \sseq@setcircumference
-   \putxyq{\pgfnode{circle}{center}{}}
+   \ifKV@sseqdrop@boxed  
+     \putxyq{\pgfnode{rectangle}{center}{}}
+   \else
+     \putxyq{\pgfnode{circle}{center}{}}
+   \fi
    \putxy{{ss(\the\sseqposx,\the\sseqposy)\tmpname}}
    \putxyq{{\pgfusepath{stroke}}}
  \fi
@@ -935,6 +953,12 @@
  \expandafter\edef\csname \sseq@currentname size\endcsname{\number\ss@size sp}
 %
  \ifthenelse{\boolean{sseqhasopenconn}}{\sseqconcludeconnection}{}
+%
+ \edef\ssplacecolor{\sseq@savecolor}
+ \def\temp{\relax}
+ \ifx\sseq@name\temp \else
+   \@eval\ssname{{\sseq@name}}
+ \fi
 }
 %
 \def\ssprepareline#1#2{
@@ -1001,21 +1025,22 @@
 	 }{
        \putxyq{\pgfpathmoveto}
        \putxy{{\noexpand\pgfpointshapeborder{\sseq@previousname}{\noexpand \pgfpointanchor{\sseq@currentname}{center}}}}
-	 }									
+	 }			
+	\putxyq{\pgfpathlineto}
+	\ifthenelse{\boolean{#3}}{
+       \putxy{{\noexpand\pgfpoint{\the\sseqx}{\the\sseqy}}}
+	 }{
+       \putxy{{\noexpand\pgfpointshapeborder{\sseq@currentname}{\noexpand \pgfpointanchor{\sseq@previousname}{center}}}}
+     } 							
      \def\sseq@temp{#2}
      \ifx\sseq@temp\empty
-       \putxyq{\pgfpathlineto}
      \else
-       \putxyq{\pgfsnakesegmentamplitude=#2pc}
-       \putxyq{\multiply\pgfsnakesegmentamplitude by 3 }
-       \putxyq{\pgfsnakesegmentaspect=.3}
-       \putxyq{\pgfpathsnaketo{bent}}
+       \putxyq{\pgfdecorationsegmentamplitude=#2pc}
+       \putxyq{\multiply\pgfdecorationsegmentamplitude by 3 }
+       \putxyq{\pgfdecorationsegmentaspect=.3}
+       \putxyq{\pgfdecoratecurrentpath{bent}}
      \fi
-	 \ifthenelse{\boolean{#3}}{
-       \putxy{{\noexpand\pgfpoint{\the\sseqx}{\the\sseqy}}}
-	 }{
-       \putxy{{\noexpand\pgfpointshapeborder{\sseq@currentname}{\noexpand \pgfpointanchor{\sseq@previousname}{center}}}}
-     } \edef\sseq@connbuffer{\noexpand\sseqwritecolor{\ssconncolor}\noexpand\putxyq{\noexpand\pgfusepath{stroke}\noexpand\pgftransformreset}}
+	 \edef\sseq@connbuffer{\noexpand\sseqwritecolor{\ssconncolor}\noexpand\putxyq{\noexpand\pgfusepath{stroke}\noexpand\pgftransformreset}}
    \fi
  \fi
 }
@@ -1210,20 +1235,21 @@
   \putxyq{\pgfpathmoveto}
   \putxy{{\noexpand\pgfpointshapeborder{#1}%
                                        {\noexpand\pgfpoint{\noexpand\sseqx}{\noexpand\sseqy}}}}
+    \putxyq{\pgfpathlineto}
+    \putxyq{{\pgfpoint{\sseqx}{\sseqy}}}
   \def\temp{#7}
   \ifx\temp\empty
-    \putxyq{\pgfpathlineto}
   \else
     \dimen0=#7pc
     \ifsseq@connreverse
 	  \multiply\dimen0 by -1
 	\fi
-    \putxy{\noexpand\pgfsnakesegmentamplitude=\number\dimen0 sp}
-    \putxyq{\advance\pgfsnakesegmentamplitude by \pgfsnakesegmentamplitude}
-    \putxyq{\pgfsnakesegmentaspect=.3}
-    \putxyq{\pgfpathsnaketo{bent}}
+    \putxy{\noexpand\pgfdecorationsegmentamplitude=\number\dimen0 sp}
+    \putxyq{\advance\pgfdecorationsegmentamplitude by \pgfdecorationsegmentamplitude}
+    \putxyq{\pgfdecorationsegmentaspect=.3}
+     \putxyq{\pgfdecoratecurrentpath{bent}}
   \fi
-  \putxyq{{\pgfpoint{\sseqx}{\sseqy}}}
+
   \edef\sseq@connbuffer{\noexpand\sseqwritecolor{\ssconncolor}%
                         \noexpand\putxyq{\noexpand\pgfusepath{stroke}\noexpand\end{pgfscope}}}
 }
-- 
cgit v1.2.3

