diff options
author | Karl Berry <karl@freefriends.org> | 2009-05-16 18:55:35 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2009-05-16 18:55:35 +0000 |
commit | 093e62dd5e34a8c932b37eeec419a37cae5560f0 (patch) | |
tree | 06c4115b4cda29e6742023fe731d10759af337f4 /Master/texmf-dist/tex/latex/tikz-timing | |
parent | e84980c166909c05441e356c43cca766b4053e29 (diff) |
tikiz-timing 0.5 (15may09)
git-svn-id: svn://tug.org/texlive/trunk@13124 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.sty | 407 |
1 files changed, 223 insertions, 184 deletions
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 c00effacb16..afdbd67a7de 100644 --- a/Master/texmf-dist/tex/latex/tikz-timing/tikz-timing.sty +++ b/Master/texmf-dist/tex/latex/tikz-timing/tikz-timing.sty @@ -27,21 +27,28 @@ %% \RequirePackage{svn-prov}[2009/05/03] \ProvidesPackageSVN - {$Id: tikz-timing.dtx 1069 2009-05-05 13:52:29Z martin $} - [v0.4a + {$Id: tikz-timing.dtx 1132 2009-05-15 15:23:50Z martin $} + [v0.5 Digital Timing Diagrams using TikZ] \DefineFileInfoSVN[tikztiming] \RequirePackage{tikz} \usetikzlibrary{calc} \usetikzlibrary{backgrounds} -\RequirePackage{environ} +\usetikzlibrary{decorations.pathmorphing} +\ifx\collect@body\@undefined + \IfFileExists{environ.sty} + {\RequirePackage{environ}} + {\RequirePackage{amsmath}} +\fi \def\tikztimingwidth{0.0} \newcount\tikztiming@numint \newcount\tikztiming@numfrac \def\tikztiming@num{1.0}% -%%\def\tikztiming@num{\the\tikztiming@numint.\the\tikztiming@numfrac} +\let\tikztiming@back\empty +\newlength\tikztiming@xunit +\newlength\tikztiming@yunit \newcounter{tikztiming@nrows}% \def\tikztiming@rowdist{2}% @@ -53,11 +60,16 @@ \tikzset{timing/.style={% x=1.6ex, y=1.6ex, line cap=round, line join=round, + /utils/exec={\setlength{\tikztiming@xunit}{1.6ex}\setlength{\tikztiming@yunit}{1.6ex}}, }% } \tikzset{% timing/.cd, + initchar/.value required, + initchar/.code={\ifx\lastchar\empty\uppercase{\def\lastchar{#1}}\fi}, + metachar/.code 2 args={\tikztimingmetachar{#1}{#2}}, grid/.style={timing,help lines}, + picture/.style={timing,line width=0.15ex}, intext/.style={timing,line width=0.15ex}, inline node/.style={shape=coordinate}, table/.style={timing,line width=0.15ex,font=\sffamily}, @@ -71,10 +83,14 @@ l/.style={}, d/.style={}, m/.style={black!40!brown}, + m/decoration/.style={decorate,decoration={zigzag,segment + length=.25\tikztiming@xunit,amplitude=.225\tikztiming@yunit}}, + k/.style={black!40!blue,semitransparent}, u/background/.style={fill=gray}, u/.style={}, o/background/.style={}, o/.style={timing/d,line width=0.10ex,dotted}, + g/.style={}, z/.style={blue}, t/.style={}, c/.style={timing/slope=0.0}, @@ -102,30 +118,43 @@ \DeclareRobustCommand*\texttiming[2][]{% \begingroup \tikztiming@init - \uppercase{\def\lastchar{#1}}% - \@ifundefined{tikztiming@initcode@\lastchar}% - {}% - {\@nameuse{tikztiming@initcode@\lastchar}}% - \ifx\lastchar\empty\else - \@ifundefined{\tikztiming@prefix\lastchar @start}% - {\PackageWarning{tikz-timing}{Start value for timing character '\lastchar' - is not defined and will be ignored!}{}{}{}}% - {\tikztiming@nameaddtostr{\lastchar @start}{}}% + \ifx\relax#1\relax\else + \tikztiming@testoptarg#1\relax\relax% \fi - \tikztiming@#2\relax - %\message{^^J\meaning\tikztiming@str^^J}% - \begin{tikzpicture}[timing/intext]% + \def\@tempa{\begin{tikzpicture}[timing/intext,}%]}[ + \expandafter\@tempa\settings] + \@ifundefined{tikztiming@initcode@\lastchar}% + {}% + {\@nameuse{tikztiming@initcode@\lastchar}}% + \ifx\lastchar\empty\else + \@ifundefined{\tikztiming@prefix\lastchar @start}% + {\PackageWarning{tikz-timing}{Start value for timing character '\lastchar' + is not defined and will be ignored!}{}{}{}}% + {\tikztiming@nameaddtostr{\lastchar @start}{}}% + \fi + \tikztiming@#2\relax + %\message{^^J\meaning\tikztiming@str^^J}% \path[use as bounding box] (0,0) rectangle (\timingwidth*\tikztimingwidth,\timingheight);% \texttimingbefore \tikztiming@str;% + \node [shape=tikztiming@shape,anchor=origin,name=last texttiming] at (0,0) + {}; \texttimingafter \end{tikzpicture}% \endgroup } +\def\tikztiming@testoptarg#1#2\relax{% + \ifx\relax#2\relax + \uppercase{\def\lastchar{#1}}% + \else + \def\settings{#1#2}% + \fi +} \def\tikztiming@init{% - \def\lastchar{}% + \let\lastchar\empty% \let\currentchar\empty + \let\settings\empty \def\tikztimingwidth{0.0}% \setcounter{tikztimingtrans}{-1}% \def\tikztiming@str{\draw (0,0) coordinate (timing/start base) }% @@ -136,26 +165,38 @@ {\timing@[]}% } \def\timing@[#1]{% - \@ifnextchar{+}% - {\timing@@{#1}}% - {\@ifnextchar(%) + \@ifnextchar{a}% + {\timing@at{#1}}% + {\PackageWarning{tikz-timing}{The \string\timing\space command awaits now an + `at' before the coordinate, like the \string\node\space command is doing. + Please update your source code to ensure compatibility with newer + versions}{}{}{}% + \@ifnextchar{+}% {\timing@@{#1}}% - {\timing@@{#1}+(0,0)}% + {\@ifnextchar(%) + {\timing@@{#1}}% + {\timing@@{#1}++(0,0)}% + }% }% } +\def\timing@at#1at#2(#3){% + \timing@@@{#1}{#2(#3)}% +} \def\timing@@#1#2(#3){% \timing@@@{#1}{#2(#3)}% } \def\timing@@@#1#2#3{% \begingroup \tikztiming@init - \@ifnextchar{[}% - {\timing@@@init}% - {\timing@@@init[]}% - #3\relax - %\message{^^J\meaning\tikztiming@str^^J}% + \let\tikz@alias=\pgfutil@empty% \begin{scope}[shift={#2},timing,#1]% + \@ifnextchar{[}% + {\timing@@@init}% + {\timing@@@init[]}% + #3\relax + %\message{^^J\meaning\tikztiming@str^^J}% \tikztiming@str;% + \node [shape=tikztiming@shape,anchor=origin,#1] at (0,0) {}; \end{scope}% \endgroup \timing@@@end @@ -166,7 +207,9 @@ \fi } \def\timing@@@init[#1]{% - \uppercase{\def\lastchar{#1}}% + \ifx\relax#1\relax\else + \uppercase{\def\lastchar{#1}}% + \fi \@ifundefined{tikztiming@initcode@\lastchar}% {}% {\@nameuse{tikztiming@initcode@\lastchar}}% @@ -344,6 +387,11 @@ \tikztiming@iflower{#1}% {\pgfmathparse{\tikztiming@num/2.0}\let\tikztiming@num\pgfmathresult}% {}% + \ifx\tikztiming@back\empty\else + \pgfmathparse{\tikztiming@num-\tikztiming@back}% + \let\tikztiming@num\pgfmathresult + \let\tikztiming@back\empty + \fi \pgfmathparse{\tikztimingwidth + \tikztiming@num}% \let\tikztimingwidth\pgfmathresult \def\currentchar{#1}% @@ -409,27 +457,30 @@ }% \tikztiming@ } -\def\tikztiming@stoppath#1{% +\def\tikztiming@defcode#1{% + \@namedef{tikztiming@code@\meaning#1}% +} +\tikztiming@defcode{,}{% \tikztiming@output@flush \tikztiming@eaddtostr{% \newdraw }% \tikztiming@ } -\def\tikztiming@stoppath@nosave#1{% +\tikztiming@defcode{;}{% \tikztiming@output@flush \tikztiming@eaddtostr{% \newdrawns }% \tikztiming@ } -\def\tikztiming@addnode#1{% - \@ifnextchar{[}%] +\tikztiming@defcode{N}{% + \@ifnextchar[%] {\tikztiming@addnode@getoptions}% {\tikztiming@addnode@getoptions[]}% } \def\tikztiming@addnode@getoptions[#1]{% - \@ifnextchar{(}%)} + \@ifnextchar(%) {\tikztiming@addnode@getname{#1}}% {\tikztiming@addnode@getname{#1}()}% } @@ -454,18 +505,10 @@ \def\tikztiming@testforcode{% \@ifnextchar{!}% {\tikztiming@testforcode@}% - {\@ifnextchar{[}% - {\tikztiming@handleoption}% - {\@ifnextchar{;}% - {\tikztiming@stoppath@nosave}% - {\@ifnextchar{,}% - {\tikztiming@stoppath}% - {\@ifnextchar{N}% - {\tikztiming@addnode}% - {\tikztiming@@}% - }% - }% - }% + {\@ifundefined{tikztiming@code@\meaning\@let@token}% + {\tikztiming@@}% + {\csname tikztiming@code@\meaning\@let@token\expandafter + \endcsname\@gobble}% }% } \def\tikztiming@testforcode@#1{% @@ -477,12 +520,17 @@ \tikztiming@ }% } +\tikztiming@defcode{B}{% + \pgfmathparse{\tikztiming@back+\tikztiming@num}% + \let\tikztiming@back\pgfmathresult + \tikztiming@ +} \def\tikztiming@handlecode#1{% \tikztiming@output@flush \tikztiming@addtostr{ #1 }% \tikztiming@ } -\def\tikztiming@handleoption[#1]{% +\tikztiming@defcode[#1]{% \tikztiming@addtostr{ [#1] }% \tikztiming@ } @@ -521,7 +569,14 @@ \tikztiming@numint1\relax \tikztiming@numfrac0\relax \def\tikztiming@num{1.0}% - \expandafter\tikztiming@testforcode + \if@tikztiming@metachar + {\def\@tempa{\expandafter\expandafter\expandafter + \tikztiming@testfornum@@@@ + \expandafter\expandafter\expandafter{% + \csname tikztiming@metachar@\meaning\@let@token\endcsname}}% + \expandafter\@tempa\@gobble + }% + {\tikztiming@testforcode}% }% }% \fi @@ -548,9 +603,26 @@ \tikztiming@testfornum@@@@ }% {% - \tikztiming@testforcode + \if@tikztiming@metachar + {\def\@tempa{\expandafter\expandafter\expandafter + \tikztiming@testfornum@@@@ + \expandafter\expandafter\expandafter{% + \csname tikztiming@metachar@\meaning\@let@token\endcsname}}% + \expandafter\@tempa\@gobble + }% + {\tikztiming@testforcode}% }% } +\def\tikztimingmetachar#1#2{% + \ifx\relax#2\relax + \expandafter\let\csname tikztiming@metachar@\meaning#1\endcsname\@undefined + \else + \@namedef{tikztiming@metachar@\meaning#1}{#2}% + \fi +} +\def\if@tikztiming@metachar#1#2{% + \@ifundefined{tikztiming@metachar@\meaning\@let@token}{#2}{#1}% +} \def\tikztiming@testfornum@@@@#1{% \begingroup \@temptokena{#1}% @@ -563,7 +635,7 @@ \newcounter{tikztimingrows} \def\tikztiming@extracode{\@gobble{EXTRACODE}}% -\NewEnviron{tikztimingtable}[1][]{% +\newenvironment{tikztimingtable}[1][]{% \begingroup \setcounter{tikztiming@nrows}{0}% \def\tikztiming@maxwidth{0.0}% @@ -577,13 +649,18 @@ \def\coldist{\tikztiming@coldist}% \def\nrows{\the\c@tikztiming@nrows}% \def\twidth{\tikztiming@maxwidth}% - \begin{tikzpicture}[timing/table,#1]% + \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); - \expandafter\tikztimingtable@row\BODY\endtikztimingtable@ - \end{tikzpicture} + \collect@body\tikztiming@table +}{% +} + +\def\tikztiming@table#1{% + \tikztimingtable@row#1\endtikztimingtable@ + \endtikzpicture \endgroup } @@ -630,7 +707,10 @@ \path ($ (last row) + (0,-1*\rowdist) $) coordinate (last row); \path ($ (last row) + (-1*\coldist,0) $) node [anchor=base east,timing/name] {\tikztiminglabel{#1}}; - \timing (last row) {#2}; + \@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); % @@ -647,6 +727,17 @@ }% } +\def\tikztiming@tabletiming[#1]#2\relax{% + \let\lastchar\empty + \let\settings\empty + \ifx\relax#1\relax\else + \tikztiming@testoptarg#1\relax\relax + \fi + \edef\@tempa{\noexpand\timing[name=row\the\c@tikztiming@nrows,\settings] + at (last row)}% + \expandafter\@tempa\expandafter{\expandafter[\lastchar]#2}; +} + \newcommand*\tikztiming@fulltablegrid[1][]{% \begin{pgfonlayer}{background} \scope[xstep={\timingwidth/2.},ystep={\timingheight/2.}, @@ -706,6 +797,58 @@ ; \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 + }% + \anchor{center}{\pgfpointorigin}% + \anchor{start}{\startpoint}% + \anchor{end}{\endpoint}% + % + \anchor{origin}{\northeast \pgf@x=-\pgf@x \pgf@y=-\pgf@y }% + \anchor{east}{\northeast \pgf@y=0pt }% + \anchor{west}{\northeast \pgf@y=0pt \pgf@x=-\pgf@x }% + \anchor{north}{\northeast \pgf@x=0pt }% + \anchor{north west}{\northeast \pgf@x=-\pgf@x }% + \anchor{north east}{\northeast} + \anchor{high mid}{\northeast \pgf@x=0pt }% + \anchor{high start}{\northeast \pgf@x=-\pgf@x }% + \anchor{high end}{\northeast} + \anchor{south}{\northeast \pgf@x=0pt \pgf@y=-\pgf@y }% + \anchor{south west}{\northeast \pgf@x=-\pgf@x \pgf@y=-\pgf@y }% + \anchor{south east}{\northeast \pgf@y=-\pgf@y }% + \anchor{low mid}{\northeast \pgf@x=0pt \pgf@y=-\pgf@y }% + \anchor{low start}{\northeast \pgf@x=-\pgf@x \pgf@y=-\pgf@y }% + \anchor{low end}{\northeast \pgf@y=-\pgf@y }% + \anchor{mid}{\pgfpointorigin}% + \anchor{mid east}{\northeast \pgf@y=0pt }% + \anchor{mid west}{\northeast \pgf@y=0pt \pgf@x=-\pgf@x }% + \anchor{mid end}{\northeast \pgf@y=0pt }% + \anchor{mid start}{\northeast \pgf@y=0pt \pgf@x=-\pgf@x }% + \anchor{base}{\northeast \pgf@x=0pt \pgf@y=-\pgf@y }% + \anchor{base west}{\northeast \pgf@x=-\pgf@x \pgf@y=-\pgf@y }% + \anchor{base east}{\northeast \pgf@y=-\pgf@y }% + \anchorborder{% + \@tempdima=\pgf@x + \@tempdimb=\pgf@y + \pgfpointborderrectangle{\pgfpoint{\@tempdima}{\@tempdimb}}{\northeastborder}% + }% +} \def\tikztiming@iflower#1{% \begingroup \edef\@tempa{`#1}% @@ -990,7 +1133,6 @@ -- ++(\gslope,-\height/2.0) } \tikztiminglet{DG}{LG} -\tikztiminglet{MG}{ZG} \tikztiminglet{HS}{S} \tikztiminglet{LS}{S} @@ -1006,7 +1148,7 @@ \newdraw [\style] -- ++(\zslope,-\height/2.) -- ++($ (#1,0) - (\zslope,0) $) } - \tikztimingdef{ZH}{ +\tikztimingdef{ZH}{ \newdraw -- ++(\zslope,+\height/2.) -- ++($ (#1,0) - (\zslope,0) $) } @@ -1070,133 +1212,46 @@ \tikztimingalias{M}{Z} \tikztimingchar{M}{++(0,\height/2.)}{ - [\style] - -- ++($ 1/16.*(#1,0) + (0,+\height*.225) $) - -- ++($ 1/8.*(#1,0) + (0,-\height*.45) $) - -- ++($ 1/8.*(#1,0) + (0,+\height*.45) $) - -- ++($ 1/8.*(#1,0) + (0,-\height*.45) $) - -- ++($ 1/8.*(#1,0) + (0,+\height*.45) $) - -- ++($ 1/8.*(#1,0) + (0,-\height*.45) $) - -- ++($ 1/8.*(#1,0) + (0,+\height*.45) $) - -- ++($ 1/8.*(#1,0) + (0,-\height*.45) $) - -- ++($ 1/16.*(#1,0) + (0,+\height*.225) $) -} - -\tikztimingdef{MZ}{ - \newdraw [\style] + \newdraw [\style/decoration,\style] -- ++(#1,0) } - -\tikztimingdef{m}{ - [\style] - ++(0,+\height/2.) - -- ++($ 1/8.*(#1,0) + (0,+\height*.225) $) - -- ++($ 1/4.*(#1,0) + (0,-\height*.45) $) - -- ++($ 1/4.*(#1,0) + (0,+\height*.45) $) - -- ++($ 1/4.*(#1,0) + (0,-\height*.45) $) - -- ++($ 1/8.*(#1,0) + (0,+\height*.225) $) +\tikztimingdef{MG}{ + \newdraw [timing/m] + -- ++(\gslope,-\height/2.0) + -- ++(\gslope,+\height) + -- ++(\gslope,-\height/2.0) } -\tikztimingdef{ZM}{ +\tikztimingdef{MZ}{ \newdraw [\style] - -- ++($ 1/16.*(#1,0) + (0,+\height*.075) $) - -- ++($ 1/8.*(#1,0) + (0,-\height*.20) $) - -- ++($ 1/8.*(#1,0) + (0,+\height*.25) $) - -- ++($ 1/8.*(#1,0) + (0,-\height*.30) $) - -- ++($ 1/8.*(#1,0) + (0,+\height*.35) $) - -- ++($ 1/8.*(#1,0) + (0,-\height*.40) $) - -- ++($ 1/8.*(#1,0) + (0,+\height*.45) $) - -- ++($ 1/8.*(#1,0) + (0,-\height*.45) $) - -- ++($ 1/16.*(#1,0) + (0,+\height*.225) $) + \tikztiminguse{ZZ}{#1} } -\tikztimingdef{Zm}{ +\tikztimingdef{ZM}{ \newdraw [\style] - -- ++($ 1/8.*(#1,0) + (0,+\height*.075) $) - -- ++($ 1/4.*(#1,0) + (0,-\height*.20) $) - -- ++($ 1/4.*(#1,0) + (0,+\height*.25) $) - -- ++($ 1/4.*(#1,0) + (0,-\height*.30) $) - -- ++($ 1/8.*(#1,0) + (0,+\height*.175) $) -} - -\tikztimingdef{Mm}{ - -- ++($ 1/8.*(#1,0) + (0,+\height*.225) $) - -- ++($ 1/4.*(#1,0) + (0,-\height*.45) $) - -- ++($ 1/4.*(#1,0) + (0,+\height*.45) $) - -- ++($ 1/4.*(#1,0) + (0,-\height*.45) $) - -- ++($ 1/8.*(#1,0) + (0,+\height*.225) $) + \tikztiminguse{MM}{#1} } \tikztimingdef{LM}{ \newdraw [\style] - -- ++($ 1/16.*(#1,0) + (0,+\height*.60) $) - -- ++($ 1/8.*(#1,0) + (0,-\height*.20) $) - -- ++($ 1/8.*(#1,0) + (0,+\height*.25) $) - -- ++($ 1/8.*(#1,0) + (0,-\height*.30) $) - -- ++($ 1/8.*(#1,0) + (0,+\height*.35) $) - -- ++($ 1/8.*(#1,0) + (0,-\height*.40) $) - -- ++($ 1/8.*(#1,0) + (0,+\height*.45) $) - -- ++($ 1/8.*(#1,0) + (0,-\height*.45) $) - -- ++($ 1/16.*(#1,0) + (0,+\height*.20) $) + -- ++($ (1/8,0) + (0,\height/2) $) + \newdraw [\style/decoration,\style] + -- ++($ (-1/8,0) + (#1,0) $) } + \tikztimingdef{HM}{ \newdraw [\style] - -- ++($ 1/16.*(#1,0) + (0,-\height*.40) $) - -- ++($ 1/8.*(#1,0) + (0,-\height*.20) $) - -- ++($ 1/8.*(#1,0) + (0,+\height*.25) $) - -- ++($ 1/8.*(#1,0) + (0,-\height*.30) $) - -- ++($ 1/8.*(#1,0) + (0,+\height*.35) $) - -- ++($ 1/8.*(#1,0) + (0,-\height*.40) $) - -- ++($ 1/8.*(#1,0) + (0,+\height*.45) $) - -- ++($ 1/8.*(#1,0) + (0,-\height*.45) $) - -- ++($ 1/16.*(#1,0) + (0,+\height*.20) $) -} -\tikztimingdef{DM}{ - ++($ -1/16.*(#1,0) + (0,0) $) - -- ++($ 1/16.*(#1,0) + (0,0) $) - -- ++($ 1/16.*(#1,0) + (0,+\height*.50) $) - ++($ -1/8.*(#1,0) + (0,+\height*.50) $) - -- ++($ 1/16.*(#1,0) + (0,0) $) - -- ++($ 1/16.*(#1,0) + (0,-\height*.50) $) - \newdraw [\style] - -- ++($ 1/8.*(#1,0) + (0,-\height*.10) $) - -- ++($ 1/8.*(#1,0) + (0,+\height*.25) $) - -- ++($ 1/8.*(#1,0) + (0,-\height*.30) $) - -- ++($ 1/8.*(#1,0) + (0,+\height*.35) $) - -- ++($ 1/8.*(#1,0) + (0,-\height*.40) $) - -- ++($ 1/8.*(#1,0) + (0,+\height*.45) $) - -- ++($ 1/8.*(#1,0) + (0,-\height*.45) $) - -- ++($ 1/16.*(#1,0) + (0,+\height*.20) $) + -- ++($ (1/8,0) + (0,-1*\height/2) $) + \newdraw [\style/decoration,\style] + -- ++($ (-1/8,0) + (#1,0) $) } -\tikztimingdef{Lm}{ - \newdraw [\style] - -- ++($ 1/8.*(#1,0) + (0,+\height*.575) $) - -- ++($ 1/4.*(#1,0) + (0,-\height*.20) $) - -- ++($ 1/4.*(#1,0) + (0,+\height*.25) $) - -- ++($ 1/4.*(#1,0) + (0,-\height*.30) $) - -- ++($ 1/8.*(#1,0) + (0,+\height*.175) $) -} -\tikztimingdef{Hm}{ - \newdraw [\style] - -- ++($ 1/8.*(#1,0) + (0,-\height*.425) $) - -- ++($ 1/4.*(#1,0) + (0,-\height*.20) $) - -- ++($ 1/4.*(#1,0) + (0,+\height*.25) $) - -- ++($ 1/4.*(#1,0) + (0,-\height*.30) $) - -- ++($ 1/8.*(#1,0) + (0,+\height*.175) $) -} -\tikztimingdef{Dm}{ - ++($ -1/8.*(#1,0) + (0,0) $) - -- ++($ 1/8.*(#1,0) + (0,0) $) - -- ++($ 1/8.*(#1,0) + (0,+\height*.50) $) - ++($ -1/4.*(#1,0) + (0,+\height*.50) $) - -- ++($ 1/8.*(#1,0) + (0,0) $) - -- ++($ 1/8.*(#1,0) + (0,-\height*.50) $) - \newdraw [\style] - -- ++($ 1/4.*(#1,0) + (0,-\height*.10) $) - -- ++($ 1/4.*(#1,0) + (0,+\height*.25) $) - -- ++($ 1/4.*(#1,0) + (0,-\height*.30) $) - -- ++($ 1/8.*(#1,0) + (0,+\height*.15) $) +\tikztimingdef{DM}{ + -- +($ (1/8,0) + (0,\height*.50) $) + +(0,\height) + -- ++($ (1/8,0) + (0,\height*.50) $) + \newdraw [\style/decoration,\style] + -- ++($ (-1/8,0) + (#1,0) $) } \newcounter{tikztimingtrans} @@ -1247,7 +1302,7 @@ \tikztimingdef{ZT}{% \newdraw {[\style] - node [timing/save] {\setcounter{tikztimingtrans}{-\value{tikztimingtrans}}} + \code{\setcounter{tikztimingtrans}{-\value{tikztimingtrans}}} -- ++(\slope,\value{tikztimingtrans}*\height/2.) -- ++($ (#1,0) - (\slope,0) $) } @@ -1290,25 +1345,9 @@ \tikztimingdef{TM}{% \newdraw [\style] \code{\setcounter{tikztimingtrans}{-\value{tikztimingtrans}}} - -- ++($ 1/16.*(#1,0) + (0,\value{tikztimingtrans}*\height*.50+\height*.10) $) - -- ++($ 1/8.*(#1,0) + (0,-\height*.20) $) - -- ++($ 1/8.*(#1,0) + (0,+\height*.25) $) - -- ++($ 1/8.*(#1,0) + (0,-\height*.30) $) - -- ++($ 1/8.*(#1,0) + (0,+\height*.35) $) - -- ++($ 1/8.*(#1,0) + (0,-\height*.40) $) - -- ++($ 1/8.*(#1,0) + (0,+\height*.45) $) - -- ++($ 1/8.*(#1,0) + (0,-\height*.45) $) - -- ++($ 1/16.*(#1,0) + (0,+\height*.20) $) -} - -\tikztimingdef{Tm}{% - \newdraw [\style] - \code{\setcounter{tikztimingtrans}{-\value{tikztimingtrans}}} - -- ++($ 1/8.*(#1,0) + (0,\value{tikztimingtrans}*\height*.50+\height*.075) $) - -- ++($ 1/4.*(#1,0) + (0,-\height*.20) $) - -- ++($ 1/4.*(#1,0) + (0,+\height*.25) $) - -- ++($ 1/4.*(#1,0) + (0,-\height*.30) $) - -- ++($ 1/8.*(#1,0) + (0,+\height*.175) $) + -- ++($ (1/8,0) + (0,\value{tikztimingtrans}*\height/2) $) + \newdraw [\style/decoration,\style] + -- ++($ (-1/8,0) + (#1,0) $) } \tikztimingecopy{C}{T} |