summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/tikz-timing
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2009-12-31 01:26:26 +0000
committerKarl Berry <karl@freefriends.org>2009-12-31 01:26:26 +0000
commit01294f46bb60e2b571fe1cc4b8a4428366240d8b (patch)
tree9a247291b962904733ebfd2e6e5748bba9d24ca7 /Master/texmf-dist/tex/latex/tikz-timing
parent824638c603c772ef55ee6b4f8b3c1e8b680abe5b (diff)
tikz-timing update (30dec09)
git-svn-id: svn://tug.org/texlive/trunk@16537 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/tikz-timing')
-rw-r--r--Master/texmf-dist/tex/latex/tikz-timing/tikz-timing-advnodes.sty15
-rw-r--r--Master/texmf-dist/tex/latex/tikz-timing/tikz-timing-arrows.sty5
-rw-r--r--Master/texmf-dist/tex/latex/tikz-timing/tikz-timing-beamer.sty5
-rw-r--r--Master/texmf-dist/tex/latex/tikz-timing/tikz-timing-clockarrows.sty5
-rw-r--r--Master/texmf-dist/tex/latex/tikz-timing/tikz-timing-columntype.sty5
-rw-r--r--Master/texmf-dist/tex/latex/tikz-timing/tikz-timing-counters.sty226
-rw-r--r--Master/texmf-dist/tex/latex/tikz-timing/tikz-timing-either.sty30
-rw-r--r--Master/texmf-dist/tex/latex/tikz-timing/tikz-timing-ifsym.sty5
-rw-r--r--Master/texmf-dist/tex/latex/tikz-timing/tikz-timing-interval.sty21
-rw-r--r--Master/texmf-dist/tex/latex/tikz-timing/tikz-timing-nicetabs.sty24
-rw-r--r--Master/texmf-dist/tex/latex/tikz-timing/tikz-timing-overlays.sty5
-rw-r--r--Master/texmf-dist/tex/latex/tikz-timing/tikz-timing.sty322
12 files changed, 461 insertions, 207 deletions
diff --git a/Master/texmf-dist/tex/latex/tikz-timing/tikz-timing-advnodes.sty b/Master/texmf-dist/tex/latex/tikz-timing/tikz-timing-advnodes.sty
index 74c6481058c..74705d4ff16 100644
--- a/Master/texmf-dist/tex/latex/tikz-timing/tikz-timing-advnodes.sty
+++ b/Master/texmf-dist/tex/latex/tikz-timing/tikz-timing-advnodes.sty
@@ -27,15 +27,14 @@
%%
\RequirePackage{svn-prov}[2009/05/03]
\ProvidesPackageSVN[tikz-timing-advnodes]
- {$Id: tikz-timing.dtx 1580 2009-12-09 11:14:01Z martin $}
- [v0.7
+ {$Id: tikz-timing.dtx 1647 2009-12-28 14:18:14Z martin $}
+ [v0.7a
TikZ-Timing Library for
advanced nodes]
\GetFileInfoSVN*%
\RequirePackage{tikz-timing}[\filedate]%
\DefineFileInfoSVN
-
\let\tikztiming@orig@oldnodecenter\tikztiming@oldnodecenter
\tikzset{timing/nodes/.cd,
@@ -183,9 +182,9 @@
\anchor{low2}{\tikztiming@useanchor{low2}}%
\anchor{high2}{\tikztiming@useanchor{high2}}%
%
- \anchorborder{\pgfpointorigin}%
+ \expandafter\anchorborder\expandafter{\csname pgf@anchor@\shape@name @center\endcsname}%
%
- \nodeparts{}% no text
+ \nodeparts{}%
}
\def\tikztiming@nodes@getoffset{%
@@ -347,7 +346,7 @@
\else
\anchorpoint{originoffset}{-.5\slope}{.5\height}%
\anchorpoint{oldcenter}{-.5\slope}{-.5\height}%
- \anchorpoint{HIGH}{.5\slope}{.5\height}%
+ \anchorpoint{HIGH}{-.5\slope}{.5\height}%
\anchorpoint{high}{-.5\slope}{.5\height}%
\anchorpoint{low}{.5\slope}{-.5\height}%
\fi
@@ -417,8 +416,8 @@
\anchorpoint{oldcenter}{-.5\dslope}{-.5\height}%
\anchorpoint{mid}{0pt}{0pt}%
\anchorpoint{HIGH}{-.5\dslope}{.5\height}%
- \anchorpoint{high}{-.5\dslope}{.5\height}%
- \anchorpoint{high2}{.5\dslope}{.5\height}%
+ \anchorpoint{high}{.5\dslope}{.5\height}%
+ \anchorpoint{high2}{-.5\dslope}{.5\height}%
\anchorpoint{low}{-.5\dslope}{-.5\height}%
}
diff --git a/Master/texmf-dist/tex/latex/tikz-timing/tikz-timing-arrows.sty b/Master/texmf-dist/tex/latex/tikz-timing/tikz-timing-arrows.sty
index 1e62192a316..090cc6e5e3e 100644
--- a/Master/texmf-dist/tex/latex/tikz-timing/tikz-timing-arrows.sty
+++ b/Master/texmf-dist/tex/latex/tikz-timing/tikz-timing-arrows.sty
@@ -27,14 +27,13 @@
%%
\RequirePackage{svn-prov}[2009/05/03]
\ProvidesPackageSVN[tikz-timing-arrows]
- {$Id: tikz-timing.dtx 1580 2009-12-09 11:14:01Z martin $}
- [v0.7
+ {$Id: tikz-timing.dtx 1647 2009-12-28 14:18:14Z martin $}
+ [v0.7a
TikZ-Timing Library for
timing arrows]
\GetFileInfoSVN*%
\RequirePackage{tikz-timing}[\filedate]%
\DefineFileInfoSVN
-
\tikzset{timing/.cd,
A/.style={timing/a},
W/.style={timing/w},
diff --git a/Master/texmf-dist/tex/latex/tikz-timing/tikz-timing-beamer.sty b/Master/texmf-dist/tex/latex/tikz-timing/tikz-timing-beamer.sty
index 8d170c0ac75..6ce41745797 100644
--- a/Master/texmf-dist/tex/latex/tikz-timing/tikz-timing-beamer.sty
+++ b/Master/texmf-dist/tex/latex/tikz-timing/tikz-timing-beamer.sty
@@ -27,15 +27,14 @@
%%
\RequirePackage{svn-prov}[2009/05/03]
\ProvidesPackageSVN[tikz-timing-beamer]
- {$Id: tikz-timing.dtx 1580 2009-12-09 11:14:01Z martin $}
- [v0.7
+ {$Id: tikz-timing.dtx 1647 2009-12-28 14:18:14Z martin $}
+ [v0.7a
TikZ-Timing Library for
beamer overlay support]
\GetFileInfoSVN*%
\RequirePackage{tikz-timing}[\filedate]%
\DefineFileInfoSVN
-
\PackageWarning{\@currname}{This library is experimental and will change in future versions!}{}{}
\tikztiming@defcode<#1>{
diff --git a/Master/texmf-dist/tex/latex/tikz-timing/tikz-timing-clockarrows.sty b/Master/texmf-dist/tex/latex/tikz-timing/tikz-timing-clockarrows.sty
index 3882174695d..f2ed31b4fa6 100644
--- a/Master/texmf-dist/tex/latex/tikz-timing/tikz-timing-clockarrows.sty
+++ b/Master/texmf-dist/tex/latex/tikz-timing/tikz-timing-clockarrows.sty
@@ -27,14 +27,13 @@
%%
\RequirePackage{svn-prov}[2009/05/03]
\ProvidesPackageSVN[tikz-timing-clockarrows]
- {$Id: tikz-timing.dtx 1580 2009-12-09 11:14:01Z martin $}
- [v0.7
+ {$Id: tikz-timing.dtx 1647 2009-12-28 14:18:14Z martin $}
+ [v0.7a
TikZ-Timing Library for
timing clock arrows]
\GetFileInfoSVN*%
\RequirePackage{tikz-timing}[\filedate]%
\DefineFileInfoSVN
-
\tikztiming@iftrans{CC}%
{\let\tikztiming@trans@C@normal@C\tikztiming@trans@CC}%
{\PackageError{\@currname}{No 'CC' transition defined by the main tikz-timing
diff --git a/Master/texmf-dist/tex/latex/tikz-timing/tikz-timing-columntype.sty b/Master/texmf-dist/tex/latex/tikz-timing/tikz-timing-columntype.sty
index 8d6545e3827..aa425727f2a 100644
--- a/Master/texmf-dist/tex/latex/tikz-timing/tikz-timing-columntype.sty
+++ b/Master/texmf-dist/tex/latex/tikz-timing/tikz-timing-columntype.sty
@@ -27,14 +27,13 @@
%%
\RequirePackage{svn-prov}[2009/05/03]
\ProvidesPackageSVN[tikz-timing-columntype]
- {$Id: tikz-timing.dtx 1580 2009-12-09 11:14:01Z martin $}
- [v0.7
+ {$Id: tikz-timing.dtx 1647 2009-12-28 14:18:14Z martin $}
+ [v0.7a
TikZ-Timing Library for
timing cell types]
\GetFileInfoSVN*%
\RequirePackage{tikz-timing}[\filedate]%
\DefineFileInfoSVN
-
\RequirePackage{array}
\tikzset{timing/columntype/.code 2 args =
diff --git a/Master/texmf-dist/tex/latex/tikz-timing/tikz-timing-counters.sty b/Master/texmf-dist/tex/latex/tikz-timing/tikz-timing-counters.sty
index e81d3412b68..ba5131cbe02 100644
--- a/Master/texmf-dist/tex/latex/tikz-timing/tikz-timing-counters.sty
+++ b/Master/texmf-dist/tex/latex/tikz-timing/tikz-timing-counters.sty
@@ -27,13 +27,14 @@
%%
\RequirePackage{svn-prov}[2009/05/03]
\ProvidesPackageSVN[tikz-timing-counters]
- {$Id: tikz-timing.dtx 1580 2009-12-09 11:14:01Z martin $}
- [v0.7
+ {$Id: tikz-timing.dtx 1647 2009-12-28 14:18:14Z martin $}
+ [v0.7a
TikZ-Timing Library for
counter values]
\GetFileInfoSVN*%
\RequirePackage{tikz-timing}[\filedate]%
\DefineFileInfoSVN
+\newif\if@tikztiming@counter@wraps
\tikzset{%
timing/new counter/.style={timing/counter/new={#1}},
@@ -41,57 +42,218 @@
new/.code={\tikztiming@counter@new{#1}},
new/.value required,
opt/.cd,
- char/.estore in=\tikztiming@counter@char,
- reset char/.estore in=\tikztiming@counter@resetchar,
- base/.estore in=\tikztiming@counter@base,
- half width char/.estore in=\tikztiming@counter@hwchar,
+ char/.initial=,
char/.value required,
+ reset char/.initial=,
reset char/.value required,
- base/.value required,
+ reset type/.is choice,
+ reset type/width/.code={\def\tikztiming@resettype{0}},
+ reset type/arg/.code={\def\tikztiming@resettype{1}},
+ reset type/both/.code={\def\tikztiming@resettype{2}},
+ reset type/Both/.code={\def\tikztiming@resettype{3}},
+ half width char/.initial=,
half width char/.value required,
+ base/.initial=10,
+ base/.value required,
+ increment/.initial=1,
+ increment/.value required,
+ max value/.initial=,
+ max value/.value required,
+ min value/.initial=,
+ min value/.value required,
+ wraps/.is if=@tikztiming@counter@wraps,
+ digits/.initial=,
+ digits/.value required,
+ fg style/.initial=,
+ bg style/.initial=,
+ text style/.initial=,
+ text format/.initial=,
+ fg style/.value required,
+ bg style/.value required,
+ text style/.value required,
+ text format/.value required,
+}
+\def\tikztiming@counter@textformat{}%
+\def\tikztimingcounter#1{%
+ \csname tikztiming@counter@#1\endcsname
+}
+\def\tikztimingsetcounter#1#2{%
+ \begingroup
+ \pgfmathtruncatemacro\@tempa{#2}%
+ \expandafter\global\expandafter\let\csname tikztiming@counter@#1\endcsname\@tempa
+ \endgroup
}
\def\tikztiming@counter@new#1{%
- \let\tikztiming@counter@char\empty
- \let\tikztiming@counter@resetchar\empty
- \def\tikztiming@counter@base{10}%
- \let\tikztiming@counter@hwchar\relax
+ \begingroup
+ \def\tikztiming@resettype{0}%
\pgfqkeys{/tikz/timing/counter/opt}{#1}%
- \ifx\tikztiming@counter@char\empty
+ \tikzset{timing/counter/opt/char/.get=\counterchar}%
+ \ifx\counterchar\empty
\PackageError{tikz-timing-counters}{Counter character must be given using
- the 'char' key!}%
+ the 'char' key!}{}{}{}%
+ \endgroup
\else
+ \pgfkeys{/tikz/timing/counter/opt/min value/.get=\min}%
+ \pgfkeys{/tikz/timing/counter/opt/max value/.get=\max}%
+ \if@tikztiming@counter@wraps
+ \ifx\min\empty
+ \def\min{0}%
+ \fi
+ \ifx\max\empty
+ \PackageError{tikz-timing-counters}{The option 'wraps' needs the option 'max value' to be set!}{}{}{}%
+ \fi
+ \def\@tempb{%
+ \noexpand\tikztiming@counter@wrap%
+ {\expandafter\unexpanded\expandafter{\min}}%
+ {\expandafter\unexpanded\expandafter{\max}}%
+ }%
+ \else
+ \ifx\min\empty
+ \ifx\max\empty
+ \let\@tempb\empty
+ \else
+ \def\@tempb{%
+ \noexpand\tikztiming@counter@maxsat%
+ {\expandafter\unexpanded\expandafter{\max}}%
+ }%
+ \fi
+ \else
+ \ifx\max\empty
+ \def\@tempb{%
+ \noexpand\tikztiming@counter@minsat%
+ {\expandafter\unexpanded\expandafter{\min}}%
+ }%
+ \else
+ \def\@tempb{%
+ \noexpand\tikztiming@counter@minmaxsat%
+ {\expandafter\unexpanded\expandafter{\min}}%
+ {\expandafter\unexpanded\expandafter{\max}}%
+ }%
+ \fi
+ \fi
+ \fi
+ \pgfkeys{/tikz/timing/counter/opt/fg style/.get=\fgstyle}%
+ \pgfkeys{/tikz/timing/counter/opt/bg style/.get=\bgstyle}%
+ \pgfkeys{/tikz/timing/counter/opt/text style/.get=\textstyle}%
+ \pgfkeys{/tikz/timing/counter/opt/text format/.get=\textformat}%
+ \pgfkeys{/tikz/timing/counter/opt/increment/.get=\increment}%
\edef\@tempa{%
- \noexpand\tikztiming@counter@new@{\tikztiming@counter@char}{\tikztiming@counter@base}%
- {\tikztiming@counter@hwchar}{\tikztiming@counter@resetchar}%
+ \noexpand\tikztiming@counter@new@
+ {\pgfkeysvalueof{/tikz/timing/counter/opt/char}}%
+ {\pgfkeysvalueof{/tikz/timing/counter/opt/base}}%
+ {\pgfkeysvalueof{/tikz/timing/counter/opt/half width char}}%
+ {\pgfkeysvalueof{/tikz/timing/counter/opt/reset char}}%
+ {\pgfkeysvalueof{/tikz/timing/counter/opt/digits}}%
+ {\expandafter\unexpanded\expandafter{\increment}}%
+ {\@tempb}%
+ {\min}%
+ {\tikztiming@resettype}%
+ {\expandafter\unexpanded\expandafter{\fgstyle}}%
+ {\expandafter\unexpanded\expandafter{\bgstyle}}%
+ {\expandafter\unexpanded\expandafter{\textstyle}}%
+ {\expandafter\unexpanded\expandafter{\textformat}}%
}%
+ \expandafter\expandafter\expandafter\endgroup
\expandafter\@tempa
\fi
}
-\def\tikztiming@counter@new@#1#2#3#4{%
- \newcounter{tikztiming@counter@#1}%
- \tikzset{timing/counter/#1/.append style={}}%
- \tikztimingmetachar{#1}[1]{##1D{[timing/counter/#1]\tikztiming@counter@vs{#1}{#2}}}%
- \ifx\tikztiming@counter@hwchar\empty\else
- \ifx\tikztiming@counter@hwchar\relax
+\def\tikztiming@counter@new@#1#2#3#4#5#6#7#8#9{%
+ \ifx\empty#8\empty
+ \@namedef{tikztiming@counter@#1}{0}%
+ \else
+ \expandafter
+ \pgfmathtruncatemacro\csname tikztiming@counter@#1\endcsname{#8}%
+ \fi
+ \tikztimingmetachar{#1}[1]{ { [timing/counter/#1] ##1D{[timing/counter/#1/text]\tikztiming@counter@vs{#1}{#2}{#5}{#6}{#7}} } }%
+ \ifx\empty#3\empty
\tikztiming@iflower{#1}{}%
{\lowercase{\tikztimingmetachar{#1}}[1]%
- {##1d{[timing/counter/#1]\tikztiming@counter@vs{#1}{#2}}}}%
- \else
- \tikztimingmetachar{#3}[1]{##1d{[timing/counter/#1]\tikztiming@counter@vs{#1}{#2}}}%
+ { { [timing/counter/#1] ##1d{[timing/counter/#1/text]\tikztiming@counter@vs{#1}{#2}{#5}{#6}{#7}}} }%
+ }%
+ \else
+ \tikztimingmetachar{#3}[1]{%
+ { [timing/counter/#1] ##1d{[timing/counter/#1/text]\tikztiming@counter@vs{#1}{#2}{#5}{#6}{#7}} }%
+ }%
+ \fi
+ \ifx\empty#4\empty\else
+ \ifcase0#9\relax
+ \tikztimingmetachar{#4}[1]{[|/utils/exec=\tikztiming@counter@reset{#1}{##1}|]}%
+ \or
+ \tikztimingmetachar{#4}[2]{[|/utils/exec=\tikztimingsetcounter{#1}{##2}|]}%
+ \or
+ \uppercase{\tikztimingmetachar{#4}}[1]{[|/utils/exec=\tikztiming@counter@reset{#1}{##1}|]}%
+ \lowercase{\tikztimingmetachar{#4}}[2]{[|/utils/exec=\tikztimingsetcounter{#1}{##2}|]}%
+ \or
+ \lowercase{\tikztimingmetachar{#4}}[1]{[|/utils/exec=\tikztiming@counter@reset{#1}{##1}|]}%
+ \uppercase{\tikztimingmetachar{#4}}[2]{[|/utils/exec=\tikztimingsetcounter{#1}{##2}|]}%
\fi
\fi
- \ifx\tikztiming@counter@resetchar\empty\else
- \tikztimingmetachar{#4}[1]{[|/utils/exec=\tikztiming@counter@reset{#1}{##1}|]}%
+ \tikztiming@counter@new@@{#1}%
+}
+\def\tikztiming@counter@new@@#1#2#3#4#5{%
+ \tikzset{timing/counter/#1/.style={}}%
+ \ifx\empty#2\empty\else
+ \tikzset{timing/counter/#1/.append style={%
+ /tikz/timing/d/.style={#2}%
+ }}%
+ \fi
+ \ifx\empty#3\empty\else
+ \tikzset{timing/counter/#1/.append style={%
+ /tikz/timing/d/background/.style={#3}%
+ }}%
+ \fi
+ \tikzset{timing/counter/#1/text/.style={#4}}%
+ \ifx\empty#5\empty\else
+ \tikzset{timing/counter/#1/.append style={%
+ /utils/exec={\def\tikztiming@counter@textformat{#5}}%
+ }}%
\fi
}
\def\tikztiming@counter@reset#1#2{%
- \pgfmathsetcounter{tikztiming@counter@#1}{round((#2)/\tikztiming@wscale)}%
- \setcounter{tikztiming@counter@#1}{\value{tikztiming@counter@#1}}%
+ \begingroup
+ \pgfmathtruncatemacro\@tempa{round((#2)/\tikztiming@wscale)}%
+ \expandafter\global\expandafter\let\csname tikztiming@counter@#1\endcsname\@tempa
+ \endgroup
+}
+\def\tikztiming@counter@vs#1#2#3#4#5{%
+ \begingroup
+ \ifx\empty#3\empty\else
+ \pgfmathsetbasenumberlength{#3}%
+ \fi
+ \ifnum#2=10
+ \expandafter\expandafter\expandafter\tikztiming@counter@textformat
+ \expandafter\expandafter\expandafter{\csname tikztiming@counter@#1\endcsname}%
+ \else
+ \pgfmathdectoBase\pgfmathresult{\@nameuse{tikztiming@counter@#1}}{#2}%
+ \expandafter\tikztiming@counter@textformat\expandafter{\pgfmathresult}%
+ \fi
+ \edef\N{\@nameuse{tikztiming@counter@#1}}%
+ \pgfmathtruncatemacro\N{\N + #4}%
+ #5%
+ \expandafter\global\expandafter\let\csname tikztiming@counter@#1\endcsname\N
+ \endgroup
+}
+\def\tikztiming@counter@minsat#1{%
+ \pgfmathtruncatemacro\MIN{#1}%
+ \ifnum\N<\MIN \let\N\MIN \fi
+}
+\def\tikztiming@counter@maxsat#1{%
+ \pgfmathtruncatemacro\MAX{#1}%
+ \ifnum\N>\MAX \let\N\MAX \fi
}
-\def\tikztiming@counter@vs#1#2{%
- \pgfmathdectoBase\pgfmathresult{\value{tikztiming@counter@#1}}{#2}%
- \pgfmathresult
- \stepcounter{tikztiming@counter@#1}%
+\def\tikztiming@counter@minmaxsat#1#2{%
+ \tikztiming@counter@minsat{#1}%
+ \tikztiming@counter@maxsat{#2}%
+}
+\def\tikztiming@counter@wrap#1#2{%
+ \pgfmathtruncatemacro\MIN{#1}%
+ \pgfmathtruncatemacro\MAX{#2}%
+ \ifnum\N>\MAX
+ \pgfmathtruncatemacro\N{\MIN + (\N-\MAX-1)}%
+ \fi
+ \ifnum\N<\MIN
+ \pgfmathtruncatemacro\N{\MAX - (\MIN-\N+1)}%
+ \fi
}
\RequirePackage{pgfopts}
\ProcessPgfOptions{/tikz/timing/counter}
diff --git a/Master/texmf-dist/tex/latex/tikz-timing/tikz-timing-either.sty b/Master/texmf-dist/tex/latex/tikz-timing/tikz-timing-either.sty
index 7a1f73e1249..9b3cb4c2b99 100644
--- a/Master/texmf-dist/tex/latex/tikz-timing/tikz-timing-either.sty
+++ b/Master/texmf-dist/tex/latex/tikz-timing/tikz-timing-either.sty
@@ -27,14 +27,13 @@
%%
\RequirePackage{svn-prov}[2009/05/03]
\ProvidesPackageSVN[tikz-timing-either]
- {$Id: tikz-timing.dtx 1580 2009-12-09 11:14:01Z martin $}
- [v0.7
+ {$Id: tikz-timing.dtx 1647 2009-12-28 14:18:14Z martin $}
+ [v0.7a
TikZ-Timing Library for
uncertain transitions]
\GetFileInfoSVN*%
\RequirePackage{tikz-timing}[\filedate]%
\DefineFileInfoSVN
-
\tikztimingchar{E}{
++(0,0)
\code{\setcounter{tikztimingtranspos}{0}}%
@@ -176,11 +175,11 @@
\tikztimingdef{HEE}{%
\newdraw [\style,preaction={\bgstyle}]
-- +(#1,0) coordinate (timing@refb)
- coordinate [shift={(0,-\height/2)}] (timing@ref)
+ \tikztiming@setref{timing@ref}{0,-\height/2}
-- +($ (#1,-\height) + (\slope,0) $) coordinate (timing@refa)
-- +(\slope,-\height)
-- +(0,0)
- coordinate [shift={(#1,-\height/2)}] (timing@ref)
+ \tikztiming@setref{timing@ref}{#1,-\height/2}
++($ (#1,-\height) + (\slope,0) $)%
\code{\setcounter{tikztimingtranspos}{1}}%
\code{\setcounter{tikztimingtrans}{-1}}%
@@ -190,11 +189,11 @@
\tikztimingdef{LEE}{%
\newdraw [\style,preaction={\bgstyle}]
-- +(#1,0) coordinate (timing@refa)
- coordinate [shift={(0,\height/2)}] (timing@ref)
+ \tikztiming@setref{timing@ref}{0,\height/2}
-- +($ (#1,\height) + (\slope,0) $) coordinate (timing@refb)
-- +(\slope,\height)
-- +(0,0)
- ++(#1,0) coordinate [shift={(0,\height/2)}] (timing@ref)
+ ++(#1,0) \tikztiming@setref{timing@ref}{0,\height/2}
\code{\setcounter{tikztimingtranspos}{0}}%
\code{\setcounter{tikztimingtrans}{1}}%
\newdraw
@@ -213,7 +212,7 @@
+($ (#1,0) + (\slope/2 - \slope/2 * \value{tikztimingtrans}, \height - \height/2 * \value{tikztimingtranspos}) $)
coordinate (timing@refb)
++(#1,0)
- coordinate [shift={(0,-\height/2 * \value{tikztimingtrans})}] (timing@ref)
+ \tikztiming@setref{timing@ref}{0,-\height/2 * \value{tikztimingtrans}}
++(
.5 * \slope + .5 * \value{tikztimingtrans} * \slope,
-.5 * \height - .5 * \value{tikztimingtrans} * \height
@@ -687,7 +686,7 @@
}
\tikztimingdef{@EH}{%
- coordinate [shift={(0,\height/2)}] (timing/start)
+ \tikztiming@setref{timing/start}{0,\height/2}
\newdraw [\bgstyle]
-- +(0,\height)
-- +($ (#1,\height) + (\slope,0) $)
@@ -704,7 +703,7 @@
}
\tikztimingdef{@ET}{%
- coordinate [shift={(0,\height/2)}] (timing/start)
+ \tikztiming@setref{timing/start}{0,\height/2}
\newdraw [\bgstyle]
-- +(0,\height)
{[\nstyle]
@@ -734,7 +733,7 @@
}
\tikztimingdef{@EL}{%
- coordinate [shift={(0,\height/2)}] (timing/start)
+ \tikztiming@setref{timing/start}{0,\height/2}
\newdraw [\bgstyle]
-- +(0,\height)
-- +(#1,\height)
@@ -751,7 +750,7 @@
}
\tikztimingdef{@ED}{%
- coordinate [shift={(0,\height/2)}] (timing/start)
+ \tikztiming@setref{timing/start}{0,\height/2}
\newdraw [\bgstyle]
-- +(0,\height)
-- +(#1,\height)
@@ -769,7 +768,7 @@
}
\tikztimingdef{@EZ}{%
- coordinate [shift={(0,\height/2)}] (timing/start)
+ \tikztiming@setref{timing/start}{0,\height/2}
\newdraw [\bgstyle]
-- +(0,\height)
-- +(#1,\height)
@@ -787,7 +786,7 @@
}
\tikztimingdef{@EE}{%
- coordinate [shift={(0,\height/2)}] (timing/start)
+ \tikztiming@setref{timing/start}{0,\height/2}
\newdraw [\bgstyle]
-- +(0,\height)
-- +($ (#1,\height) + (\slope,0) $)
@@ -798,7 +797,8 @@
-- +($ (#1,\height) + (\slope,0) $) coordinate (timing@refb)
-- +(#1,0) coordinate (timing@refa)
-- +(0,0)
- ++(#1,0) coordinate [shift={(0,\height/2)}] (timing@ref)
+ ++(#1,0)
+ \tikztiming@setref{timing@ref}{0,\height/2}
\code{\setcounter{tikztimingtranspos}{0}}%
\code{\setcounter{tikztimingtrans}{1}}%
}
diff --git a/Master/texmf-dist/tex/latex/tikz-timing/tikz-timing-ifsym.sty b/Master/texmf-dist/tex/latex/tikz-timing/tikz-timing-ifsym.sty
index 86a8548dbac..5f349b0d430 100644
--- a/Master/texmf-dist/tex/latex/tikz-timing/tikz-timing-ifsym.sty
+++ b/Master/texmf-dist/tex/latex/tikz-timing/tikz-timing-ifsym.sty
@@ -27,14 +27,13 @@
%%
\RequirePackage{svn-prov}[2009/05/03]
\ProvidesPackageSVN[tikz-timing-ifsym]
- {$Id: tikz-timing.dtx 1580 2009-12-09 11:14:01Z martin $}
- [v0.7
+ {$Id: tikz-timing.dtx 1647 2009-12-28 14:18:14Z martin $}
+ [v0.7a
TikZ-Timing Library for
ifsym compatible macros]
\GetFileInfoSVN*%
\RequirePackage{tikz-timing}[\filedate]%
\DefineFileInfoSVN
-
\tikzset{%
timing/ifsym/macro/.style={/tikz/timing/ifsym,/utils/exec={\pgfmathparse{.6*\f@size}\let\ysize\pgfmathresult},/tikz/y=\ysize},
timing/ifsym/.style={%
diff --git a/Master/texmf-dist/tex/latex/tikz-timing/tikz-timing-interval.sty b/Master/texmf-dist/tex/latex/tikz-timing/tikz-timing-interval.sty
index ba133dea8e9..8a3d1f9e6bc 100644
--- a/Master/texmf-dist/tex/latex/tikz-timing/tikz-timing-interval.sty
+++ b/Master/texmf-dist/tex/latex/tikz-timing/tikz-timing-interval.sty
@@ -27,27 +27,26 @@
%%
\RequirePackage{svn-prov}[2009/05/03]
\ProvidesPackageSVN[tikz-timing-interval]
- {$Id: tikz-timing.dtx 1580 2009-12-09 11:14:01Z martin $}
- [v0.7
+ {$Id: tikz-timing.dtx 1647 2009-12-28 14:18:14Z martin $}
+ [v0.7a
TikZ-Timing Library for
alternative Z transitions]
\GetFileInfoSVN*%
\RequirePackage{tikz-timing}[\filedate]%
\DefineFileInfoSVN
-
\let\tikztiming@linterval\relax
\let\tikztiming@rinterval\relax
\tikztimingdef{LZ}{
- \tikztiming@linterval
+ \tikztiming@rinterval
{\newdraw [\style]}
{-- ++(\zslope,+\height/2.)}
-- ++($ (#1,0) - (\zslope,0) $)
}
\tikztimingdef{HZ}{%
- \tikztiming@linterval
+ \tikztiming@rinterval
{\newdraw [\style]}
{-- ++(\zslope,-\height/2.)}
-- ++($ (#1,0) - (\zslope,0) $)
@@ -55,21 +54,21 @@
\tikztimingdef{TZ}{%
\code{\setcounter{tikztimingtrans}{-\value{tikztimingtrans}}}
- \tikztiming@linterval
+ \tikztiming@rinterval
{\newdraw [\style]}
{-- ++(\zslope,\value{tikztimingtrans}*\height/2.)}
-- ++($ (#1,0) - (\zslope,0) $)
}
\tikztimingdef{ZL}{%
- \tikztiming@rinterval
+ \tikztiming@linterval
{\newdraw}
{-- ++(\zslope,-\height/2.)}
-- ++($ (#1,0) - (\zslope,0) $)
}
\tikztimingdef{ZH}{%
- \tikztiming@rinterval
+ \tikztiming@linterval
{\newdraw}
{-- ++(\zslope,\height/2.)}
-- ++($ (#1,0) - (\zslope,0) $)
@@ -77,7 +76,7 @@
\tikztimingdef{ZT}{%
\code{\setcounter{tikztimingtrans}{-\value{tikztimingtrans}}}
- \tikztiming@rinterval
+ \tikztiming@linterval
{\newdraw [\style]}
{-- ++(\zslope,\value{tikztimingtrans}*\height/2.)}
-- ++($ (#1,0) - (\zslope,0) $)
@@ -96,9 +95,9 @@
ro/.style={/tikz/timing/interval/right open},
rc/.style={/tikz/timing/interval/right close},
left close/.code={\let\tikztiming@linterval\tikztiming@onetwo},
- left open/.code={\let\tikztiming@linterval\tikztiming@twoone},
+ left open/.code={\let\tikztiming@linterval\tikztiming@twoone},
right open/.code={\let\tikztiming@rinterval\tikztiming@onetwo},
- right close/.code={\let\tikztiming@rinterval\tikztiming@twoone},
+ right close/.code={\let\tikztiming@rinterval\tikztiming@twoone},
}
\tikzset{
timing/interval/normal/.style={/tikz/timing/interval/left close,/tikz/timing/interval/right open},
diff --git a/Master/texmf-dist/tex/latex/tikz-timing/tikz-timing-nicetabs.sty b/Master/texmf-dist/tex/latex/tikz-timing/tikz-timing-nicetabs.sty
index 4b4f8cc0ad8..c2644419bca 100644
--- a/Master/texmf-dist/tex/latex/tikz-timing/tikz-timing-nicetabs.sty
+++ b/Master/texmf-dist/tex/latex/tikz-timing/tikz-timing-nicetabs.sty
@@ -27,28 +27,26 @@
%%
\RequirePackage{svn-prov}[2009/05/03]
\ProvidesPackageSVN[tikz-timing-nicetabs]
- {$Id: tikz-timing.dtx 1580 2009-12-09 11:14:01Z martin $}
- [v0.7
+ {$Id: tikz-timing.dtx 1647 2009-12-28 14:18:14Z martin $}
+ [v0.7a
TikZ-Timing Library for
nice timing tables]
\GetFileInfoSVN*%
\RequirePackage{tikz-timing}[\filedate]%
\DefineFileInfoSVN
-
\RequirePackage{array}
\RequirePackage{booktabs}
-\newcommand*\tikztiming@nicetabs@tableheader[3][]{%
+\newcommand*\tikztiming@nicetabs@tableheader[1][]{%
\path [timing/table/midrules] [/utils/exec=\xdef\@gtempa{\the\pgflinewidth}];
\path [timing/table/header,#1]
let \p1 = (0,\belowrulesep + \aboverulesep + \@gtempa + \arraystretch *
- {(\ht\strutbox + \extrarowheight)} + \arraystretch\dp\strutbox) in
- node [anchor=base west] (tikztiming@header) at (0,\y1) {\ignorespaces
- #3\unskip\strut}
- node [anchor=base east] at (-1*{(\tikztiming@coldist)},\y1) {\ignorespaces
- #2\unskip\strut}
- ;
- \tikztiming@tableheadtrue
+ {(\ht\strutbox + \extrarowheight)} + \arraystretch\dp\strutbox)
+ in
+ coordinate (diagram@header) at (0,\y1)
+ coordinate (label@header) at (-1*{(\tikztiming@coldist)},\y1)
+ ;
+ \tikztiming@normal@tableheader[#1]%
}
\newcommand*\tikztiming@nicetabs@tablerules[1][]{%
\begin{scope}[#1]
@@ -59,14 +57,14 @@
let
\p1 = (NW),
\p2 = (SE),
- \p3 = (last row text.base),
+ \p3 = (last label.base),
\p4 = ($ (0,\y3) - (0,\arraystretch\dp\strutbox + \aboverulesep +
.5\pgflinewidth) $)
in
(\x1-\tabcolsep,\y4) -- (\x2+\tabcolsep,\y4)
\iftikztiming@tablehead
let
- \p5 = (tikztiming@header.base),
+ \p5 = (diagram@header.base),
\p6 = ($ (0,\y5) + (0,\arraystretch * {(\ht\strutbox + \extrarowheight
)} + \belowrulesep + .5\pgflinewidth) $)
in
diff --git a/Master/texmf-dist/tex/latex/tikz-timing/tikz-timing-overlays.sty b/Master/texmf-dist/tex/latex/tikz-timing/tikz-timing-overlays.sty
index a312ca31e04..b3e5215eab8 100644
--- a/Master/texmf-dist/tex/latex/tikz-timing/tikz-timing-overlays.sty
+++ b/Master/texmf-dist/tex/latex/tikz-timing/tikz-timing-overlays.sty
@@ -27,14 +27,13 @@
%%
\RequirePackage{svn-prov}[2009/05/03]
\ProvidesPackageSVN[tikz-timing-overlays]
- {$Id: tikz-timing.dtx 1580 2009-12-09 11:14:01Z martin $}
- [v0.7
+ {$Id: tikz-timing.dtx 1647 2009-12-28 14:18:14Z martin $}
+ [v0.7a
TikZ-Timing Library for
timing overlays]
\GetFileInfoSVN*%
\RequirePackage{tikz-timing}[\filedate]%
\DefineFileInfoSVN
-
\tikztiming@defcode{O}#1{%
\ifx\relax#1\empty
\def\tikztiming@next{\tikztiming@parser#1}%
diff --git a/Master/texmf-dist/tex/latex/tikz-timing/tikz-timing.sty b/Master/texmf-dist/tex/latex/tikz-timing/tikz-timing.sty
index d2ff15dc603..3e947a5e3a5 100644
--- a/Master/texmf-dist/tex/latex/tikz-timing/tikz-timing.sty
+++ b/Master/texmf-dist/tex/latex/tikz-timing/tikz-timing.sty
@@ -27,11 +27,10 @@
%%
\RequirePackage{svn-prov}[2009/05/03]
\ProvidesPackageSVN
- {$Id: tikz-timing.dtx 1580 2009-12-09 11:14:01Z martin $}
- [v0.7
+ {$Id: tikz-timing.dtx 1647 2009-12-28 14:18:14Z martin $}
+ [v0.7a
Digital Timing Diagrams using TikZ]
\DefineFileInfoSVN[tikztiming]
-
\RequirePackage{tikz}
\usetikzlibrary{calc}
@@ -54,8 +53,10 @@
\let\tikztiming@back\empty
\newlength\tikztiming@xunit
\newlength\tikztiming@yunit
-\setlength{\tikztiming@xunit}{1.6ex}%
-\setlength{\tikztiming@yunit}{1.6ex}%
+\def\tikztiming@@xunit{1.6ex}%
+\def\tikztiming@@yunit{1.6ex}%
+\setlength{\tikztiming@xunit}{\tikztiming@@xunit}%
+\setlength{\tikztiming@yunit}{\tikztiming@@yunit}%
\def\tikztiming@setnum#1{%
\pgfmathparse{#1}%
@@ -81,7 +82,7 @@
\def\timingheight{1}%
\tikzset{%
- timing/.style={%
+ timing/.style={/tikz,
line cap=round, line join=round,
timing/adjust@xy
},%
@@ -91,10 +92,33 @@
adjust@xy/.style={%
/utils/exec={%
\tikz@textfont
- \setlength{\tikztiming@xunit}{1.6ex}%
- \setlength{\tikztiming@yunit}{1.6ex}%
+ \let\@tempa\fsize
+ \let\fsize\@tempdima
+ \fsize=\f@size pt\relax
+ \pgfmathsetlength{\tikztiming@xunit}{\tikztiming@@xunit}%
+ \pgfmathsetlength{\tikztiming@yunit}{\tikztiming@@yunit}%
+ \let\fsize\@tempa
+ },%
+ /tikz/x=\tikztiming@xunit, /tikz/y=\tikztiming@yunit,
+ },
+ unit/.style={%
+ /utils/exec={%
+ \def\tikztiming@@xunit{#1}%
+ \let\tikztiming@@yunit\tikztiming@@xunit
+ },%
+ /tikz/timing/adjust@xy,%
+ },
+ xunit/.style={%
+ /utils/exec={%
+ \def\tikztiming@@xunit{#1}%
+ },%
+ /tikz/timing/adjust@xy,%
+ },
+ yunit/.style={%
+ /utils/exec={%
+ \def\tikztiming@@yunit{#1}%
},%
- /tikz/x=1.6ex, /tikz/y=1.6ex,
+ /tikz/timing/adjust@xy,%
},
font/.style={%
/tikz/font={#1},
@@ -127,6 +151,8 @@
restore/.style={/utils/exec={\expandafter\tikzset\expandafter{\tikztiming@saved@options}}},
option/.style={/utils/exec={\g@addto@macro\tikztiming@saved@options{#1,}},#1},
nooptions/.style={/utils/exec={\gdef\tikztiming@saved@options{}}},
+ popoptions/.style={/utils/exec={\tikztiming@popoptions}},
+ pushoptions/.style={/utils/exec={\tikztiming@pushoptions}},
name/.style={inner sep=0pt,outer sep=0pt,minimum size=0pt},
text format/.store in=\tikztiming@textformat,
@/.style={},
@@ -184,6 +210,8 @@
table/rules/.style={line width=0.08em,line cap=butt},
table/midrules/.style={line width=0.05em,line cap=butt},
table/header/.style={timing/name},
+ table/label header/.style={},
+ table/row header/.style={},
slope/.code={%
\tikztimingsetslope{#1}%
\tikztimingsetdslope{2*#1}%
@@ -270,8 +298,8 @@
\useasboundingbox (0,0) rectangle (\tikztimingwidth,\timingheight);
\draw (0,0)
coordinate (timing@refa)
- coordinate [shift={(0,\timingheight)}] (timing@refb)
- coordinate [shift={(0,\timingheight/2)}] (timing@ref)
+ coordinate (timing@ref) at (0,\timingheight/2)
+ coordinate (timing@refb) at (0,\timingheight)
coordinate (timing/start)
coordinate (timing/start base)
}%
@@ -337,6 +365,13 @@
\fi
\tikzset{timing/before}%
\tikztiming@str;%
+ \path let \p1 = (timing/end top), \p2 = (timing/end base),
+ \p3 = (timing/end), \p4 = (timing/start) in
+ [/utils/exec={%
+ \xdef\tikztiming@northeast{\noexpand\pgfpoint{.5*\pgf@pt@aa*\x1}{.5*\pgf@pt@bb*\y1}}%
+ \xdef\tikztiming@startpoint{\noexpand\pgfpoint{\pgf@pt@aa*(\x4-.5*\x1)}{\pgf@pt@bb*(\y4-.5*\y1)}}%
+ \xdef\tikztiming@endpoint{\noexpand\pgfpoint{\pgf@pt@aa*(\x3-.5*\x1)}{\pgf@pt@bb*(\y3-.5*\y1)}}%
+ }];
\node [shape=tikztiming@shape,anchor=origin,#1] at (0,0) {};
\tikzset{timing/after}%
\end{scope}%
@@ -614,9 +649,9 @@
\tikztiming@output@flush
\global\let\tikztimingwidth\tikztimingwidth
\tikztiming@addtostr{ coordinate (timing/end)
- let \p1 = (timing/start base), \p2 = (timing/end) in
+ let \p1 = (timing/start base), \p2 = (timing/end), \p3 = (0,1) in
coordinate (timing/end base) at (\x2,\y1)
- coordinate (timing/end top) at (\x2,1+\y1)
+ coordinate (timing/end top) at (\x2,\y1+\y3)
}%
\endgroup
\tikztiming@endhook%
@@ -641,8 +676,13 @@
\tikztiming@output{\tikztiming@lastchar}{\tikztiming@currentchar}%
\global\let\tikztiming@lastchar\tikztiming@currentchar
\@nameuse{tikztiming@aftercode@\tikztiming@currentchar}%
- \expandafter
- \tikztiming@testfortext
+ \expandafter\lowercase\expandafter{%
+ \expandafter\def\expandafter\@tempa
+ \expandafter{\tikztiming@currentchar}%
+ }%
+ \pgfkeysifdefined{/tikz/timing/\@tempa/text/.@cmd}%
+ {\expandafter\expandafter\expandafter\tikztiming@testfortext}%
+ {\expandafter\expandafter\expandafter\tikztiming@parser}%
\fi
}
\def\tikztiming@testfortext{%
@@ -672,32 +712,25 @@
\expandafter\def\expandafter\@tempa
\expandafter{\tikztiming@currentchar}%
}%
- \pgfkeysifdefined{/tikz/timing/\@tempa/text/.@cmd}%
- {%
- \edef\@tempa{node [timing/\@tempa/text,}%
- \expandafter\tikztiming@output@addcode\expandafter{%
- \@tempa
- #1] at ($ (timing@dstart) !.5! (timing@dend) $)
- {\tikztiming@textformat{#2}}
- }%
- \ifcase0%
- \if @\tikztiming@output@bufchara
+ \edef\@tempa{node [timing/\@tempa/text,}%
+ \expandafter\tikztiming@output@addcode\expandafter{%
+ \@tempa
+ #1] at ($ (timing@dstart) !.5! (timing@dend) $)
+ {\tikztiming@textformat{#2}}
+ }%
+ \ifcase0%
+ \if @\tikztiming@output@bufchara
+ 1%
+ \else
+ \ifx\tikztiming@output@bufchara\tikztiming@currentchar
1%
- \else
- \ifx\tikztiming@output@bufchara\tikztiming@currentchar
- 1%
- \fi
\fi
- \relax
- \else
\fi
- \xdef\tikztiming@output@bufcharb{\tikztiming@currentchar @edge@}%
- \xdef\tikztiming@lastchar{\tikztiming@currentchar @edge@}%
- }{%
- \endgroup
- \PackageWarning{tikz-timing}{Ignoring text for character
- '\tikztiming@currentchar'!}{}{}{}%
- }%
+ \relax
+ \else
+ \fi
+ \xdef\tikztiming@output@bufcharb{\tikztiming@currentchar @edge@}%
+ \xdef\tikztiming@lastchar{\tikztiming@currentchar @edge@}%
\tikztiming@parser
}
\let\tikztiming@textformat\empty
@@ -790,6 +823,37 @@
\tikztiming@output@addcode{ [#1] }%
\tikztiming@parser
}
+\tikztiming@defcode{\bgroup}{%
+ \tikztiming@output@eaddcode{%
+ [timing/pushoptions]
+ \newdraw
+ }%
+ \tikztiming@parser
+}
+\tikztiming@defcode{\egroup}{%
+ \tikztiming@output@eaddcode{%
+ [timing/popoptions]
+ \newdraw
+ }%
+ \tikztiming@parser
+}
+\def\tikztiming@popoptions{%
+ \expandafter\tikztiming@popoptions@\tikztiming@optionstack\relax
+}
+\def\tikztiming@optionstack{{}}
+\def\tikztiming@popoptions@#1#2\relax{%
+ \gdef\tikztiming@saved@options{#1}%
+ \gdef\tikztiming@optionstack{#2}%
+ \ifx\tikztiming@optionstack\empty
+ \gdef\tikztiming@optionstack{{}}%
+ \fi
+}
+\def\tikztiming@pushoptions{%
+ \expandafter\expandafter\expandafter\gdef
+ \expandafter\expandafter\expandafter\tikztiming@optionstack
+ \expandafter\expandafter\expandafter{%
+ \expandafter\expandafter\expandafter{\expandafter\tikztiming@saved@options\expandafter}\tikztiming@optionstack}%
+}
\def\tikztiming@addnode@getoptions[#1]{%
\@ifnextchar(%)
{\tikztiming@addnode@getname{#1}}%
@@ -975,6 +1039,10 @@
\endcsname\expandafter[#2]{#3}%
\fi
\fi
+ \ifnum\tikztiming@debug=-1
+ \message{^^J Defined meta-char '#1' as:
+ \expandafter\meaning\csname tikztiming@metachar@\meaning#1\endcsname ^^J}%
+ \fi
}
\def\if@tikztiming@metachar#1#2{%
\@ifundefined{tikztiming@metachar@\meaning\@let@token}{#2}{#1}%
@@ -1001,10 +1069,11 @@
\def\nrows{\the\c@tikztiming@nrows}%
\def\twidth{\tikztiming@maxwidth}%
\tikzpicture[timing/table,#1]%
- \coordinate (last row) at (0,\rowdist);
- \coordinate (label pos) at (-1*{(\coldist)},0);
- \coordinate (timing/table/top left) at (0,1);
- \coordinate (timing/table/bottom right) at (0,0);
+ \coordinate (@last row) at (0,\rowdist);
+ \coordinate (label@header) at (-1*{(\tikztiming@coldist)},1.5*{(\tikztiming@rowdist)});
+ \coordinate (diagram@header) at (0,1.5*{(\tikztiming@rowdist)});
+ \coordinate (timing@table@bottom right) at (0,0);
+ \coordinate (timing@table@bottom left) at (-1*{(\tikztiming@coldist)},0);
\tikztiming@picinit
\tikzset{timing/before table}%
\tikztimingtable@checkrow
@@ -1014,15 +1083,30 @@
\endgroup
}
\def\tikztiming@extracode{%
- \path let
- \p1 = (timing/table/top left),
- \p2 = (timing/table/bottom right)
- in
- coordinate (timing/table/bottom left) at (\x1,\y2)
- coordinate (timing/table/top right) at (\x2,\y1)
- coordinate (timing/table/size) at (\x2-\x1,\y1-\y2)
- ;
- \@ifnextchar[{\tikztiming@oset}{}
+ \path
+ let
+ \p1 = (row1.north west),
+ \p2 = (timing@table@bottom right),
+ \p3 = (\pgf@pt@aa * {(\x2-\x1)},\pgf@pt@bb * {(\y1-\y2)})
+ in
+ node [shape=rectangle,anchor=north west,
+ minimum width=\x3,minimum height=\y3,
+ inner sep=0pt,outer sep=0pt]
+ at (\x1,\y1) (all rows) {}
+ ;
+ \path
+ let
+ \p0 = (-1*{(\tikztiming@coldist)},1),
+ \p1 = (label1.north east),
+ \p2 = (timing@table@bottom left),
+ \p3 = (\pgf@pt@aa * {(\x0-\x2)},\pgf@pt@bb * {(\y1-\y2)})
+ in
+ node [shape=rectangle,anchor=north east,
+ minimum width=\x3,minimum height=\y3,
+ inner sep=0pt,outer sep=0pt]
+ at (\x1,\y1) (all labels) {}
+ ;
+ \@ifnextchar[{\tikztiming@oset}{}%
}
\def\tikztiming@endextracode{%
\@ifnextchar\@checkend
@@ -1089,15 +1173,18 @@
}%
\long\def\tikztimingtable@row@@#1#2{%
\addtocounter{tikztiming@nrows}{1}%
- \coordinate (last row) at ($ (last row) - (0,\tikztiming@rowdist) $);
- \node [anchor=base east,timing/name] (last row text)
- at ($ (last row) - (\tikztiming@coldist,0) $) {\ignorespaces #1\unskip};
+ \coordinate (@last row) at ($ (@last row) - (0,\tikztiming@rowdist) $);
+ \node [anchor=base east,timing/name,alias=last label] (label\the\c@tikztiming@nrows)
+ at ($ (@last row) - (\tikztiming@coldist,0) $) {\ignorespaces #1\unskip\strut};
+ \path let \p1 = (timing@table@bottom left), \p2 = (last label.south west) in
+ coordinate (timing@table@bottom left) at ({min(\x1,\x2)},\y2);
+ %
\@ifnextchar{[}%
{\tikztiming@tabletiming}%
{\tikztiming@tabletiming[]}%
#2\relax
- \path let \p1 = (timing/table/bottom right), \p2 = (timing/end base) in
- coordinate (timing/table/bottom right) at ({max(\x1,\x2)},\y2);
+ \path let \p1 = (timing@table@bottom right), \p2 = (timing/end base) in
+ coordinate (timing@table@bottom right) at ({max(\x1,\x2)},\y2);
%
\pgfmathparse{max(\tikztiming@maxwidth,\tikztimingwidth)}%
\let\tikztiming@maxwidth\pgfmathresult
@@ -1113,24 +1200,24 @@
\ifx\tikztiming@lastchar\empty
\def\tikztiming@lastchar{@}%
\fi
- \edef\@tempa{\noexpand\timing[name=row\the\c@tikztiming@nrows,\tikztiming@settings]
- at (last row)}%
+ \edef\@tempa{\noexpand\timing
+ [name=row\the\c@tikztiming@nrows,alias=last row,%
+ \expandafter\unexpanded\expandafter{\tikztiming@settings}] at (@last row)}%
\expandafter\@tempa\expandafter{\expandafter[\tikztiming@lastchar]#2};
}
\newcommand*\tikztiming@fulltablegrid[1][]{%
\begin{pgfonlayer}{background}
\scope[xstep={\timingwidth/2.},ystep={\timingheight/2.},
- shift={(timing/table/bottom left)},timing/table/grid,#1]
- \draw (0,0) grid
- ($ (timing/table/top right) - (timing/table/bottom left) $);
+ shift={(all rows.south west)},timing/table/grid,#1]
+ \draw (0,0) grid ($ (all rows.north east) - (all rows.south west) $);
\endscope
\end{pgfonlayer}
}
\def\tikztiming@tablegrid{%
\@ifnextchar{*}%
{\tikztiming@tablegrid@{row\row.high end}}%
- {\tikztiming@tablegrid@{timing/table/top right}}%
+ {\tikztiming@tablegrid@{all rows.north east}}%
}
\def\tikztiming@tablegrid@#1{%
\@ifnextchar{[}%]
@@ -1147,13 +1234,40 @@
\endscope
\end{pgfonlayer}
}
-\newcommand*\tikztiming@tableheader[3][]{%
- \path [timing/table/header,#1]
- (-1*{(\tikztiming@coldist)},1.5*{(\tikztiming@rowdist)}) node
- [anchor=base east] {\ignorespaces #2\unskip\strut}
- (0,1.5*{(\tikztiming@rowdist)}) node
- [anchor=base west] {\ignorespaces #3\unskip\strut}
- ;
+\def\tikztiming@tableheader{%
+ \@ifnextchar[%]
+ {\tikztiming@tableheader@}%
+ {\tikztiming@tableheader@@{}[]}%
+}
+\def\tikztiming@tableheader@[#1]{%
+ \@ifnextchar[%]
+ {\tikztiming@tableheader@@{#1}}%
+ {\tikztiming@tableheader@@{#1}[]}%
+}
+\def\tikztiming@tableheader@@#1[#2]#3{%
+ \@ifnextchar[%]
+ {\tikztiming@tableheader@@@{#1}{#2}{#3}}%
+ {\tikztiming@tableheader@@@{#1}{#2}{#3}[]}%
+}
+\def\tikztiming@tableheader@@@#1#2#3[#4]#5{%
+ \path
+ let
+ \p1 = (label@header),
+ \p2 = (all labels.east),
+ \p3 = (all labels.west)
+ in
+ (\x2,\y1) -- node [pos=0,anchor=base east,timing/table/header,timing/table/label header,#1,#2]
+ (label header) {\ignorespaces #3\unskip\strut} (\x3,\y1)
+ ;
+ \path
+ let
+ \p4 = (diagram@header),
+ \p5 = (all rows.west),
+ \p6 = (all rows.east)
+ in
+ (\x5,\y4) -- node [pos=0,anchor=base west,timing/table/header,timing/table/row header,#1,#4]
+ (row header) {\ignorespaces #5\unskip\strut} (\x6,\y4)
+ ;
\tikztiming@tableheadtrue
}
\newif\iftikztiming@tablehead
@@ -1166,7 +1280,7 @@
let
\p1 = (NW),
\p2 = (SE),
- \p3 = (last row)
+ \p3 = (@last row)
in
($ (\x1-\tabcolsep,\y3) - (0,.5*{(\rowdist)}) $) --
($ (\x2+\tabcolsep,\y3) - (0,.5*{(\rowdist)}) $)
@@ -1192,7 +1306,7 @@
\fi
\foreach \row in \list {%
\draw [timing/table/lines,#1] let
- \p1 = (timing/table/bottom right)
+ \p1 = (all rows.south east)
in
($ (0,\rowdist) - (0,\row * {(\rowdist)}) $) -- +(\x1,0);
}%
@@ -1205,7 +1319,7 @@
\def\list{0,1,...,\twidth}%
\fi
\draw [timing/table/lines,#1] let
- \p1 = ($ (timing/table/bottom right) - (0,2) $)
+ \p1 = ($ (all rows.south east) - (0,2) $)
in
\foreach \clk in \list {
(\clk,+1.5) -- +(0,\y1)
@@ -1214,24 +1328,9 @@
\endgroup
}
\pgfdeclareshape{tikztiming@shape}{%
- \savedanchor\northeast{\pgfpointxy{.5*\tikztimingwidth}{.5}}%
- \savedanchor\northeastborder{\pgfpointxy{.5*\tikztimingwidth+0.1}{.6}}%
- \savedanchor\startpoint{%
- \pgfpointanchor{timing/start}{center}%
- \@tempdima=\pgf@x
- \@tempdimb=\pgf@y
- \pgfpointxy{-.5*\tikztimingwidth}{-.5}%
- \advance\pgf@x by \@tempdima
- \advance\pgf@y by \@tempdimb
- }%
- \savedanchor\endpoint{%
- \pgfpointanchor{timing/end}{center}%
- \@tempdima=\pgf@x
- \@tempdimb=\pgf@y
- \pgfpointxy{-.5*\tikztimingwidth}{-.5}%
- \advance\pgf@x by \@tempdima
- \advance\pgf@y by \@tempdimb
- }%
+ \savedanchor\northeast{\tikztiming@northeast}%
+ \savedanchor\startpoint{\tikztiming@startpoint}%
+ \savedanchor\endpoint{\tikztiming@endpoint}%
\anchor{center}{\pgfpointorigin}%
\anchor{start}{\startpoint}%
\anchor{end}{\endpoint}%
@@ -1262,7 +1361,7 @@
\anchorborder{%
\@tempdima=\pgf@x
\@tempdimb=\pgf@y
- \pgfpointborderrectangle{\pgfpoint{\@tempdima}{\@tempdimb}}{\northeastborder}%
+ \pgfpointborderrectangle{\pgfpoint{\@tempdima}{\@tempdimb}}{\northeast}%
}%
}
\gdef\tikztiming@oldnodecenter@{}%
@@ -1405,6 +1504,9 @@
\csname tikztiming@nocombine@#1\expandafter\endcsname
\csname tikztiming@nocombine@#2\endcsname
}
+\def\tikztiming@setref#1#2{%
+ coordinate (#1) coordinate (#1) at ([shift={(#2)}]#1)
+}
\def\tikztiming@newdraw{%
node [timing/save] (timing@save) {};%
\draw [timing/restore] (timing@save) ++(0,0)
@@ -1594,7 +1696,7 @@
-- (timing@save)
($ (timing@ref) + (#1,0) $)
coordinate (timing@ref)
- coordinate [shift={(\dslope/2,0)}] (timing@dend)
+ \tikztiming@setref{timing@dend}{\dslope/2,0}
\tikztiming@oldnodecenter{%
(0,-\height/2)
}%
@@ -1642,14 +1744,14 @@
+(0,0)
coordinate (timing/start)
coordinate (timing@ref)
- coordinate [shift={(-\dslope/2,0)}] (timing@dstart)
+ \tikztiming@setref{timing@dstart}{-\dslope/2,0}
+(0,\height/2)
-- +(#1,\height/2)
+(#1,-\height/2)
-- ($ (timing@save) + (0,-\height/2) $)
++(#1,\height/2)
coordinate (timing@ref)
- coordinate [shift={(\dslope/2,0)}] (timing@dend)
+ \tikztiming@setref{timing@dend}{\dslope/2,0}
\tikztiming@oldnodecenter{%
(0,-\height/2)
}%
@@ -1728,7 +1830,7 @@
-- ($ (timing@save) + (0,-\height/2) $)
($ (timing@ref) + (#1,0) $)
coordinate (timing@ref)
- coordinate [shift={(\dslope/2,0)}] (timing@dend)
+ \tikztiming@setref{timing@dend}{\dslope/2,0}
\tikztiming@oldnodecenter{%
(0,-\height/2)
}%
@@ -1850,34 +1952,34 @@
}
\tikztimingdef{HD@}{%
- coordinate [shift={(0,-\height/2)}] (timing@ref)
+ \tikztiming@setref{timing@ref}{0,-\height/2}
-- ++(\dslope/2, -\height/2)
\tikztiming@chard@{#1}%
}
\tikztimingdef{TD@}{%
- coordinate [shift={(0,-\height/2 * \value{tikztimingtrans})}] (timing@ref)
+ \tikztiming@setref{timing@ref}{0,-\height/2 * \value{tikztimingtrans}}
-- ++(\dslope/2, -\height/2 * \value{tikztimingtrans})
\tikztiming@chard@{#1}%
}
\tikztimingdef{TD}{%
\code{\setcounter{tikztimingtrans}{-\value{tikztimingtrans}}}
- coordinate [shift={(0,\height/2 * \value{tikztimingtrans})}] (timing@ref)
+ \tikztiming@setref{timing@ref}{0,\height/2 * \value{tikztimingtrans}}
-- ++(\dslope/2, \height/2 * \value{tikztimingtrans})
\tikztiming@chard{#1}%
}
\tikztimingdef{TDD}{%
\code{\setcounter{tikztimingtrans}{-\value{tikztimingtrans}}}
- coordinate [shift={(0,\height/2 * \value{tikztimingtrans})}] (timing@ref)
+ \tikztiming@setref{timing@ref}{0,\height/2 * \value{tikztimingtrans}}
-- ++(\dslope/2, \height/2 * \value{tikztimingtrans})
\tikztiming@chard@{#1}%
}
\tikztimingdef{TUD}{%
\code{\setcounter{tikztimingtrans}{-\value{tikztimingtrans}}}
- coordinate [shift={(0,\height/2 * \value{tikztimingtrans})}] (timing@ref)
+ \tikztiming@setref{timing@ref}{0,\height/2 * \value{tikztimingtrans}}
-- ++(\dslope/2, \height/2 * \value{tikztimingtrans})
\tikztiming@chard{#1}%
}
@@ -1886,7 +1988,7 @@
\tikztimingcpy{TUU}{TDD}
\tikztimingdef{LD@}{%
- coordinate [shift={(0,\height/2)}] (timing@ref)
+ \tikztiming@setref{timing@ref}{0,\height/2}
-- ++(\dslope/2, \height/2)
\tikztiming@chard@{#1}%
}
@@ -1918,19 +2020,19 @@
}
\tikztimingdef{LD}{
- coordinate [shift={(0,\height/2)}] (timing@ref)
+ \tikztiming@setref{timing@ref}{0,\height/2}
-- ++(\dslope/2, \height/2)
\tikztiming@chard{#1}%
}
\tikztimingdef{LDD}{
- coordinate [shift={(0,\height/2)}] (timing@ref)
+ \tikztiming@setref{timing@ref}{0,\height/2}
-- ++(\dslope/2, \height/2)
\tikztiming@chard@{#1}
}
\tikztimingdef{LDU}{
- coordinate [shift={(0,\height/2)}] (timing@ref)
+ \tikztiming@setref{timing@ref}{0,\height/2}
-- ++(\dslope/2, \height/2)
\tikztiming@chard{#1}
}
@@ -1939,19 +2041,19 @@
\tikztimingcpy{LUU}{LDD}
\tikztimingdef{HD}{
- coordinate [shift={(0,-\height/2)}] (timing@ref)
+ \tikztiming@setref{timing@ref}{0,-\height/2}
-- ++(\dslope/2, -\height/2)
\tikztiming@chard{#1}
}
\tikztimingdef{HDD}{
- coordinate [shift={(0,-\height/2)}] (timing@ref)
+ \tikztiming@setref{timing@ref}{0,-\height/2}
-- ++(\dslope/2, -\height/2)
\tikztiming@chard@{#1}
}
\tikztimingdef{HDU}{
- coordinate [shift={(0,-\height/2)}] (timing@ref)
+ \tikztiming@setref{timing@ref}{0,-\height/2}
-- ++(\dslope/2, -\height/2)
\tikztiming@chard{#1}
}
@@ -2091,13 +2193,13 @@
\tikztimingcpy{{U@edge@}UU}{{D@edge@}DD}
\tikztimingdef{H{D@edge@}}{
- coordinate [shift={(0,-\height/2)}] (timing@ref)
+ \tikztiming@setref{timing@ref}{0,-\height/2}
-- ++(\dslope/2, -\height/2)
\tikztiming@chard{#1}%
}
\tikztimingdef{L{D@edge@}}{
- coordinate [shift={(0,\height/2)}] (timing@ref)
+ \tikztiming@setref{timing@ref}{0,\height/2}
-- ++(\dslope/2, \height/2)
\tikztiming@chard{#1}%
}
@@ -2109,7 +2211,7 @@
\tikztimingdef{T{D@edge@}}{
\code{\setcounter{tikztimingtrans}{-\value{tikztimingtrans}}}
- coordinate [shift={(0,\height/2 * \value{tikztimingtrans})}] (timing@ref)
+ \tikztiming@setref{timing@ref}{0,\height/2 * \value{tikztimingtrans}}
-- ++(\dslope/2, \height/2 * \value{tikztimingtrans})
\tikztiming@chard{#1}%
}