%% %% This is file `tikz-timing-advnodes.sty', %% generated with the docstrip utility. %% %% The original source files were: %% %% tikz-timing.dtx (with options: `tikz-timing-advnodes.sty') %% %% IMPORTANT NOTICE: %% %% For the copyright see the source file. %% %% Any modified versions of this file must be renamed %% with new filenames distinct from tikz-timing-advnodes.sty. %% %% For distribution of the original source see the terms %% for copying and modification in the file tikz-timing.dtx. %% %% This generated file may be distributed as long as the %% original source files, as listed above, are part of the %% same distribution. (The sources need not necessarily be %% in the same archive or directory.) %% Copyright (C) 2009-2012 by Martin Scharrer %% ---------------------------------------------------------------------- %% This work may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either version 1.3 %% of this license or (at your option) any later version. %% The latest version of this license is in %% http://www.latex-project.org/lppl.txt %% and version 1.3 or later is part of all distributions of LaTeX %% version 2005/12/01 or later. %% %% This work has the LPPL maintenance status `maintained'. %% %% The Current Maintainer of this work is Martin Scharrer. %% %% This work consists of the files tikz-timing.dtx and tikz-timing.ins %% and the derived filebase tikz-timing*.sty. %% \NeedsTeXFormat{LaTeX2e}[1999/12/01] \ProvidesPackage{tikz-timing-advnodes}[% 2017/12/20 v0.7f tikz-timing library for advanced nodes] \let\tikztiming@orig@oldnodecenter\tikztiming@oldnodecenter \tikzset{timing/nodes/.cd, simple/.code={% \let\tikztiming@oldnodecenter\tikztiming@orig@oldnodecenter \tikzset{% timing/inline node/.style={shape=coordinate}, }% }, advanced/.code={% \let\tikztiming@oldnodecenter\@gobble \tikzset{% timing/inline node/.style={shape=tikztiming coordinate}, timing/nodes/new center, }% }, old center/.code={% \let\tikztiming@nodecenteranchor\tikztiming@old@nodecenteranchor },% new center/.code={% \let\tikztiming@nodecenteranchor\empty },% } \tikzset{timing/nodes/.cd,advanced,new center} \def\anchoralias#1#2{% \expandafter\def \csname pgf@anchor@\pgf@sm@shape@name @#1\expandafter\endcsname \expandafter{\csname pgf@anchor@\pgf@sm@shape@name @#2\endcsname}% } \def\tikztiming@anchorpoint#1#2#3{% \pgf@xa=#2\relax \pgf@ya=#3\relax \expandafter\edef\csname#1\endcsname{% \pgf@x=\the\pgf@xa\relax \pgf@y=\the\pgf@ya\relax }% \expandafter\addtosavedmacro\csname#1\endcsname } \def\tikztiming@tryanchor#1#2{% \let\tikztiming@next\relax \ifnum\tikztiming@debug>2 \message{^^J Try Anchor: '#1' '#2' ^^J }% \def\tikztiming@next{\message{^^J TERM ^^J}}% \fi \ifx\relax#1\empty\else \ifx\relax#2\empty\else \def\tikztiming@next{% \@ifundefined{tikztiming@anchors@#1@#2}% {% \edef\@tempa{% {\csname tikztiming@alias@#1\endcsname}% {\csname tikztiming@alias@#2\endcsname}% }% \expandafter\tikztiming@tryanchor@\@tempa{#1}{#2}% }% {\let\tikztiming@tryanchor\@gobbletwo \ifnum\tikztiming@debug>2 \message{^^J Anchor: '#1' '#2' ^^J }% \fi \@nameuse{tikztiming@anchors@#1@#2}% }% }% \fi\fi \tikztiming@next } \def\tikztiming@tryanchor@#1#2#3#4{% \tikztiming@tryanchor{#3}{#2}% \tikztiming@tryanchor{#1}{#4}% \tikztiming@tryanchor{#1}{#2}% \let\tikztiming@tryanchor@\@gobblefour \tikztiming@tryanchor{#3}{}% \tikztiming@tryanchor{}{#4}% } \pgfdeclareshape{tikztiming coordinate}{% \savedmacro\anchorpoints{% \let\anchorpoint\tikztiming@anchorpoint \let\slope\@tempdima \let\dslope\@tempdimb \let\zslope\@tempdimc \let\height\pgf@yb \let\fromchar\tikztiming@node@fromchar \let\tochar\tikztiming@node@tochar % \ifnum\tikztiming@debug>2 \message{^^J Node: \fromchar \tochar ^^J}% \fi % \edef\@tempa{{timing/\tochar}}% \expandafter\lowercase\expandafter {\expandafter\tikzset\@tempa}% \pgfpointxy{\timingslope}{0}% \slope=\pgf@x\relax \pgfpointxy{\timingdslope}{0}% \dslope=\pgf@x\relax \pgfpointxy{\timingzslope}{0}% \zslope=\pgf@x\relax \pgfpointxy{0}{\timingheight}% \height=\pgf@y\relax \edef\anchorpoints{% \noexpand\pgf@yb=\the\height\relax \let\noexpand\height\noexpand\pgf@yb }% % \tikztiming@tryanchor{\fromchar}{\tochar}% } \savedanchor\lowpoint{% \pgfpointanchor{timing/start base}{center}% \pgf@x=0pt }% \anchor{origin}{% \pgfpointorigin \anchorpoints \@nameuse{originoffset} \pgf@x=-\pgf@x \pgf@y=-\pgf@y }% \anchor{old center}{% \pgfpointorigin \tikztiming@old@nodecenteranchor }% \anchor{new center}{\pgfpointorigin}% \anchor{center}{% \pgfpointorigin \tikztiming@nodecenteranchor }% \anchor{MID}{\tikztiming@useanchor{HIGH}\advance\pgf@y by -.5\height\relax }% \anchor{LOW}{\tikztiming@useanchor{HIGH}\advance\pgf@y by -\height\relax }% \anchor{HIGH}{\tikztiming@useanchor{HIGH}}% \anchor{TOP}{% \tikztiming@nodes@getoffset \tikztiming@useanchor{HIGH} \advance\pgf@y by \pgf@ya\relax }% \anchor{BOTTOM}{% \tikztiming@nodes@getoffset \tikztiming@useanchor{HIGH} \advance\pgf@y by -\pgf@ya\relax \advance\pgf@y by -\height\relax }% \anchor{mid}{\tikztiming@useanchor{mid}}% \anchor{low}{\tikztiming@useanchor{low}}% \anchor{high}{\tikztiming@useanchor{high}}% \anchor{low2}{\tikztiming@useanchor{low2}}% \anchor{high2}{\tikztiming@useanchor{high2}}% % \expandafter\anchorborder\expandafter{\csname pgf@anchor@\pgf@sm@shape@name @center\endcsname}% % \nodeparts{}% } \def\tikztiming@nodes@getoffset{% \begingroup \pgfpointxy{0}{1}% \pgfmathsetresultunitscale{\pgf@y}% \pgfpoint{0}{\tikztiming@nodes@offset}% \global\pgf@ya=\pgf@y \endgroup } \tikzset{% timing/nodes/.cd, offset/.store in=\tikztiming@nodes@offset, offset=0.25, } \def\tikztiming@nodecenteranchor{} \def\tikztiming@old@nodecenteranchor{% \anchorpoints \@ifundefined{oldcenter}% {\@nameuse{originoffset}% \pgf@x=-\pgf@x\relax \pgf@y=-\pgf@y\relax }% {\@nameuse{oldcenter}}% } \def\tikztiming@useanchor#1{% \anchorpoints \@ifundefined{#1}% {\PackageError{tikz-timing}% {No such anchor '#1' defined for this transition!}{}% \pgfpointorigin }% {\@nameuse{#1}}% } \tikzset{% every tikztiming coordinate node/.style={anchor=origin}, } \def\tikztiming@anchors#1#2{% \@namedef{tikztiming@anchors@#1@#2}% } \def\tikztiming@anchorslet#1#2#3#4{% \expandafter\let \csname tikztiming@anchors@#1@#2\expandafter\endcsname \csname tikztiming@anchors@#3@#4\endcsname } \tikztiming@anchors{@}{D}{% \anchorpoint{originoffset}{0pt}{.5\height}% \anchorpoint{mid}{0pt}{0pt}% \anchorpoint{high}{0pt}{.5\height}% \anchorpoint{low}{0pt}{-.5\height}% \anchorpoint{HIGH}{0pt}{.5\height}% } \tikztiming@anchors{@}{H}{% \anchorpoint{originoffset}{0pt}{\height}% \anchorpoint{high}{0pt}{0pt}% \anchorpoint{HIGH}{0pt}{0pt}% } \tikztiming@anchors{@}{L}{% \anchorpoint{originoffset}{0pt}{0pt}% \anchorpoint{low}{0pt}{0pt}% \anchorpoint{HIGH}{0pt}{\height}% } \tikztiming@anchors{@}{T}{% \anchorpoint{originoffset}{0pt}{0pt}% \anchorpoint{low}{0pt}{0pt}% \anchorpoint{HIGH}{0pt}{\height}% } \tikztiming@anchors{@}{Z}{% \anchorpoint{originoffset}{0pt}{.5\height}% \anchorpoint{mid}{0pt}{0pt}% \anchorpoint{HIGH}{0pt}{.5\height}% } \tikztiming@anchors{D}{D}{% \anchorpoint{originoffset}{0pt}{0pt}% \anchorpoint{mid}{0pt}{0pt}% \anchorpoint{HIGH}{0pt}{.5\height}% \anchorpoint{high}{0pt}{.5\height}% \anchorpoint{low}{0pt}{-.5\height}% } \tikztiming@anchors{L}{H}{% \anchorpoint{originoffset}{.5\slope}{.5\height}% \anchorpoint{mid}{0pt}{0pt}% \anchorpoint{high}{.5\slope}{.5\height}% \anchorpoint{low}{-.5\slope}{-.5\height}% \anchorpoint{HIGH}{-.5\slope}{.5\height}% } \tikztiming@anchors{E}{H}{% \anchorpoint{originoffset}{-.5\slope}{-.5\height}% \anchorpoint{oldcenter}{-.5\slope}{-.5\height}% \anchorpoint{mid}{0pt}{0pt}% \anchorpoint{high}{.5\slope}{.5\height}% \anchorpoint{low}{-.5\slope}{-.5\height}% \anchorpoint{HIGH}{-.5\slope}{.5\height}% } \tikztiming@anchors{T}{T}{% \anchorpoint{mid}{0pt}{0pt}% \anchorpoint{HIGH}{-.5\slope}{.5\height}% \ifnum 1=\c@tikztimingtrans \anchorpoint{originoffset}{.5\slope}{-.5\height}% \anchorpoint{high}{-.5\slope}{.5\height}% \anchorpoint{low}{.5\slope}{-.5\height}% \else \anchorpoint{originoffset}{.5\slope}{.5\height}% \anchorpoint{high}{.5\slope}{.5\height}% \anchorpoint{low}{-.5\slope}{-.5\height}% \fi } \tikztiming@anchorslet{T}{E}{T}{T}% \tikztiming@anchors{T}{@}{% \ifnum 1=\c@tikztimingtrans \anchorpoint{high}{0pt}{0pt}% \anchorpoint{HIGH}{0pt}{0pt}% \else \anchorpoint{low}{0pt}{0pt}% \anchorpoint{HIGH}{0pt}{\height}% \fi } \tikztiming@anchors{H}{H}{% \anchorpoint{originoffset}{0pt}{0pt}% \anchorpoint{high}{0pt}{0pt}% \anchorpoint{HIGH}{0pt}{0pt}% } \tikztiming@anchors{L}{L}{% \anchorpoint{originoffset}{0pt}{0pt}% \anchorpoint{low}{0pt}{0pt}% \anchorpoint{HIGH}{0pt}{\height}% } \tikztiming@anchors{Z}{Z}{% \anchorpoint{originoffset}{0pt}{0pt}% \anchorpoint{mid}{0pt}{0pt}% \anchorpoint{HIGH}{0pt}{.5\height}% } \tikztiming@anchors{E}{E}{% \anchorpoint{mid}{0pt}{0pt}% \ifnum 1=\c@tikztimingtrans \anchorpoint{originoffset}{.5\slope}{.5\height}% \anchorpoint{HIGH}{-.5\slope}{.5\height}% \anchorpoint{high}{.5\slope}{.5\height}% \anchorpoint{low}{-.5\slope}{-.5\height}% \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{low}{.5\slope}{-.5\height}% \fi } \tikztiming@anchors{H}{L}{% \anchorpoint{originoffset}{.5\slope}{-.5\height}% \anchorpoint{mid}{0pt}{0pt}% \anchorpoint{high}{-.5\slope}{.5\height}% \anchorpoint{HIGH}{-.5\slope}{.5\height}% \anchorpoint{low}{.5\slope}{-.5\height}% } \tikztiming@anchorslet{H}{E}{H}{L}% \tikztiming@anchors{E}{L}{% \anchorpoint{originoffset}{-.5\slope}{.5\height}% \anchorpoint{oldcenter}{-.5\slope}{-.5\height}% \anchorpoint{mid}{0pt}{0pt}% \anchorpoint{high}{-.5\slope}{.5\height}% \anchorpoint{HIGH}{-.5\slope}{.5\height}% \anchorpoint{low}{.5\slope}{-.5\height}% } \tikztiming@anchors{E}{T}{% \anchorpoint{mid}{0pt}{0pt}% \anchorpoint{HIGH}{-.5\slope}{.5\height}% \ifnum 1=\c@tikztimingtrans \anchorpoint{originoffset}{-.5\slope}{-.5\height}% \anchorpoint{oldcenter}{-.5\slope}{-.5\height}% \anchorpoint{high}{.5\slope}{.5\height}% \anchorpoint{low}{-.5\slope}{-.5\height}% \else \anchorpoint{originoffset}{-.5\slope}{.5\height}% \anchorpoint{oldcenter}{-.5\slope}{-.5\height}% \anchorpoint{high}{-.5\slope}{.5\height}% \anchorpoint{low}{.5\slope}{-.5\height}% \fi } \tikztiming@anchors{E}{Z}{% \anchorpoint{mid}{0pt}{0pt}% \anchorpoint{oldcenter}{-\zslope}{-.5\height}% \anchorpoint{HIGH}{-\zslope}{.5\height}% \anchorpoint{high}{-\zslope}{.5\height}% \anchorpoint{low}{-\zslope}{-.5\height}% } \tikztiming@anchors{Z}{D}{% \anchorpoint{originoffset}{0pt}{0pt}% \anchorpoint{mid}{0pt}{0pt}% \anchorpoint{HIGH}{0pt}{.5\height}% \anchorpoint{high}{.5\dslope}{.5\height}% \anchorpoint{low}{.5\dslope}{-.5\height}% } \tikztiming@anchors{D}{Z}{% \anchorpoint{originoffset}{0pt}{0pt}% \anchorpoint{oldcenter}{-.5\dslope}{-.5\height}% \anchorpoint{mid}{0pt}{0pt}% \anchorpoint{HIGH}{-.5\dslope}{.5\height}% \anchorpoint{high}{-.5\dslope}{.5\height}% \anchorpoint{low}{-.5\dslope}{-.5\height}% } \tikztiming@anchors{D}{H}{% \anchorpoint{originoffset}{0pt}{0pt}% \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{low}{-.5\dslope}{-.5\height}% } \tikztiming@anchors{D}{L}{% \anchorpoint{originoffset}{0pt}{0pt}% \anchorpoint{oldcenter}{-.5\dslope}{-.5\height}% \anchorpoint{mid}{0pt}{0pt}% \anchorpoint{HIGH}{-.5\dslope}{.5\height}% \anchorpoint{high}{-.5\dslope}{.5\height}% \anchorpoint{low2}{-.5\dslope}{-.5\height}% \anchorpoint{low}{.5\dslope}{-.5\height}% } \tikztiming@anchorslet{D}{T}{D}{L}% \tikztiming@anchors{D@edge@}{D}{% \anchorpoint{originoffset}{0pt}{0pt}% \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{low}{-.5\dslope}{-.5\height}% \anchorpoint{low2}{.5\dslope}{-.5\height}% } \tikztiming@anchorslet{D}{U}{D@edge@}{D} \tikztiming@anchorslet{U}{D}{D@edge@}{D} \tikztiming@anchorslet{D}{D@edge@}{D@edge@}{D} \tikztiming@anchorslet{D@edge@}{D@edge@}{D@edge@}{D} \tikztiming@anchorslet{D}{E}{D@edge@}{D} \tikztiming@anchorslet{E}{D}{D@edge@}{D} \tikztiming@anchorslet{L}{E}{L}{H}% \tikztiming@anchorslet{L}{T}{L}{H}% \tikztiming@anchorslet{H}{T}{H}{L}% \tikztiming@anchorslet{T}{H}{H}{L}% \tikztiming@anchors{D}{D}{% \anchorpoint{originoffset}{0pt}{0pt}% \anchorpoint{oldcenter}{0pt}{-.5\height}% \anchorpoint{mid}{0pt}{0pt}% \anchorpoint{high}{0pt}{.5\height}% \anchorpoint{low}{0pt}{-.5\height}% \anchorpoint{HIGH}{0pt}{.5\height}% } \tikztiming@anchorslet{D}{@}{D}{D} \tikztiming@anchorslet{E}{@}{D}{D} \tikztiming@anchorslet{U}{U}{D}{D} \tikztiming@anchorslet{@}{E}{@}{D} \tikztiming@anchors{L}{D}{% \anchorpoint{originoffset}{.5\dslope}{.5\height}% \anchorpoint{mid}{0pt}{0pt}% \anchorpoint{high}{.5\dslope}{.5\height}% \anchorpoint{low}{-.5\dslope}{-.5\height}% \anchorpoint{low2}{.5\dslope}{-.5\height}% \anchorpoint{HIGH}{-.5\dslope}{.5\height}% } \tikztiming@anchors{T}{D}{% \anchorpoint{mid}{0pt}{0pt}% \anchorpoint{HIGH}{-.5\dslope}{.5\height}% \ifnum 1=\c@tikztimingtrans \anchorpoint{originoffset}{.5\dslope}{-.5\height}% \anchorpoint{high}{-.5\dslope}{.5\height}% \anchorpoint{high2}{.5\dslope}{.5\height}% \anchorpoint{low}{.5\dslope}{-.5\height}% \else \anchorpoint{originoffset}{.5\dslope}{.5\height}% \anchorpoint{high}{.5\dslope}{.5\height}% \anchorpoint{low}{-.5\dslope}{-.5\height}% \anchorpoint{low2}{.5\dslope}{-.5\height}% \fi } \tikztiming@anchors{H}{D}{% \anchorpoint{originoffset}{.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{low}{.5\dslope}{-.5\height}% } \tikztiming@anchors{Z}{E}{% \anchorpoint{mid}{0pt}{0pt}% \anchorpoint{high}{\zslope}{.5\height}% \anchorpoint{low}{\zslope}{-.5\height}% \anchorpoint{HIGH}{0pt}{.5\height}% } \tikztiming@anchors{Z}{H}{% \anchorpoint{mid}{0pt}{0pt}% \anchorpoint{high}{\zslope}{.5\height}% \anchorpoint{HIGH}{0pt}{.5\height}% } \tikztiming@anchors{Z}{T}{% \anchorpoint{mid}{0pt}{0pt}% \anchorpoint{HIGH}{0pt}{.5\height}% \ifnum1=\c@tikztimingtrans\relax \anchorpoint{low}{\zslope}{-.5\height}% \else \anchorpoint{high}{\zslope}{.5\height}% \fi } \tikztiming@anchors{T}{H}{% \ifnum1=\c@tikztimingtrans\relax \anchorpoint{high}{0pt}{0pt}% \anchorpoint{HIGH}{0pt}{0pt}% \else \anchorpoint{originoffset}{.5\slope}{.5\height}% \anchorpoint{low}{-.5\slope}{-.5\height}% \anchorpoint{mid}{0pt}{0pt}% \anchorpoint{high}{.5\slope}{.5\height}% \anchorpoint{HIGH}{-.5\slope}{.5\height}% \fi } \tikztiming@anchors{T}{L}{% \ifnum1=\c@tikztimingtrans\relax \anchorpoint{originoffset}{.5\slope}{-.5\height}% \anchorpoint{low}{.5\slope}{-.5\height}% \anchorpoint{mid}{0pt}{0pt}% \anchorpoint{high}{-.5\slope}{.5\height}% \anchorpoint{HIGH}{-.5\slope}{.5\height}% \else \anchorpoint{low}{0pt}{0pt}% \anchorpoint{HIGH}{0pt}{\height}% \fi } \tikztiming@anchors{T}{Z}{% \ifnum1=\c@tikztimingtrans\relax \anchorpoint{high}{0pt}{0pt}% \anchorpoint{mid}{\zslope}{-.5\height}% \anchorpoint{HIGH}{0pt}{0pt}% \else \anchorpoint{low}{0pt}{0pt}% \anchorpoint{mid}{\zslope}{.5\height}% \anchorpoint{HIGH}{0pt}{\height}% \fi } \tikztiming@anchors{Z}{L}{% \anchorpoint{mid}{0pt}{0pt}% \anchorpoint{low}{\zslope}{-.5\height}% \anchorpoint{HIGH}{0pt}{.5\height}% } \tikztiming@anchors{H}{Z}{% \anchorpoint{high}{0pt}{0pt}% \anchorpoint{mid}{\zslope}{-.5\height}% \anchorpoint{HIGH}{0pt}{0pt}% } \tikztiming@anchors{L}{Z}{% \anchorpoint{low}{0pt}{0pt}% \anchorpoint{mid}{\zslope}{.5\height}% \anchorpoint{HIGH}{0pt}{\height}% } \tikztiming@anchors{Z}{Z}{% \anchorpoint{mid}{0pt}{0pt}% \anchorpoint{HIGH}{0pt}{.5\height}% } \tikztiming@anchors{H}{@}{% \anchorpoint{high}{0pt}{0pt}% \anchorpoint{HIGH}{0pt}{0pt}% } \tikztiming@anchors{L}{@}{% \anchorpoint{low}{0pt}{0pt}% \anchorpoint{HIGH}{0pt}{\height}% } \tikztiming@anchors{Z}{@}{% \anchorpoint{mid}{0pt}{0pt}% \anchorpoint{HIGH}{0pt}{.5\height}% } \tikztiming@anchors{}{@}{% \anchorpoint{originoffset}{0pt}{.5\height}% \anchorpoint{mid}{0pt}{0pt}% \anchorpoint{high}{0pt}{.5\height}% \anchorpoint{low}{0pt}{-.5\height}% \anchorpoint{HIGH}{0pt}{.5\height}% } \RequirePackage{pgfopts} \ProcessPgfOptions{/tikz/timing/node} \endinput %% %% End of file `tikz-timing-advnodes.sty'.