summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/sseq
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2013-09-06 23:12:20 +0000
committerKarl Berry <karl@freefriends.org>2013-09-06 23:12:20 +0000
commit4b008e6f0003c1cdf8e326fbb3fbeeab257eb321 (patch)
treebad9a058be530a70ccec9d89662bc140c7fa16e8 /Master/texmf-dist/source/latex/sseq
parentfd742022c0774507d86404341cfe78973fa971c0 (diff)
sseq (6sep13)
git-svn-id: svn://tug.org/texlive/trunk@31585 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/sseq')
-rw-r--r--Master/texmf-dist/source/latex/sseq/sseq.dtx68
1 files changed, 47 insertions, 21 deletions
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}}}
}