diff options
author | Karl Berry <karl@freefriends.org> | 2012-12-20 00:32:06 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2012-12-20 00:32:06 +0000 |
commit | 739063891a32d329e0abff276ba180a8a8bdfa2e (patch) | |
tree | e3bff961df1607cd27c58185eb9262201dced449 /Master/texmf-dist/doc/latex/drawstack/stack-example.tex | |
parent | de59445736f108b31987dcfa77e83c6872454b04 (diff) |
drawstack (19dec12)
git-svn-id: svn://tug.org/texlive/trunk@28582 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/doc/latex/drawstack/stack-example.tex')
-rw-r--r-- | Master/texmf-dist/doc/latex/drawstack/stack-example.tex | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/latex/drawstack/stack-example.tex b/Master/texmf-dist/doc/latex/drawstack/stack-example.tex index 863b0981bed..3f87460897a 100644 --- a/Master/texmf-dist/doc/latex/drawstack/stack-example.tex +++ b/Master/texmf-dist/doc/latex/drawstack/stack-example.tex @@ -102,6 +102,89 @@ comments to see how to use it. \cell{Interesting cell} \cellround{Yes, this one!} \end{drawstack} +\section{Structures without a stack structure} + +\begin{tikzpicture} + \draw (3, -1) node (Otm) { + \begin{tabular}{c} + Object\\vtable + \end{tabular} + }; + + \drawstruct{(0,0)} + \structcell[freecell]{~} \coordinate (Atm) at (currentcell.east); + \structcell[freecell]{\texttt{@Object.equals()}} + \structcell[freecell]{\texttt{@code A.m()}} + \structcell[freecell]{\texttt{@code A.p()}} \coordinate (A) at (currentcell.west); + \structname{ + \begin{tabular}{c} + A's vtable + \end{tabular} + } + + \drawstruct{(-4,-3)} + \structcell[freecell]{} \coordinate (Btm) at (currentcell.east); + \structcell[freecell]{\texttt{@Object.equals()}} + \structcell[freecell]{\texttt{@code A.m()}} + \structcell[freecell]{\texttt{@code B.p()}} + \structcell[freecell]{\texttt{@code B.q()}} + \structname{B's vtable} + + \draw[->] (Btm) -- (A); + \draw[->] (Atm) -- (Otm); +\end{tikzpicture} + +\section{Structures and stack together} + +\begin{tikzpicture}[scale=.8] + + \stacktop{} + \separator + \cell{\texttt{p3}} \cellcomL{11(GB)} \coordinate (p3) at (currentcell.east); + \separator + \cell{\texttt{p2}} \cellcomL{10(GB)} \coordinate (p2) at (currentcell.east); + \separator + \cell{\texttt{p1}} \cellcomL{ 9(GB)} \coordinate (p1) at (currentcell.east); + \separator + \cell{\texttt{@P3D.diag}} \cellcomL{ 8(GB)} + \cell{\texttt{\footnotesize @Object.equals}} \cellcomL{ 7(GB)} + \cell{\texttt{3(GB)}} \cellcomL{ 6(GB)} \coordinate (T1) at (currentcell.east); + \separator + \cell{\texttt{@P2D.diag}} \cellcomL{ 5(GB)} + \cell{\texttt{\footnotesize @Object.equals}} \cellcomL{ 4(GB)} + \cell{\texttt{1(GB)}} \cellcomL{ 3(GB)} \coordinate (T2) at (currentcell.east); + \separator + \cell{\texttt{\footnotesize @Object.equals}} \cellcomL{ 2(GB)} + \cell{\texttt{null}} \cellcomL{ 1(GB)} + \cell[draw=none]{Stack} + + + \drawstruct{(5,1)}) + \structcell{z=2,5} + \structcell{y=2,5} + \structcell{x=2,5} + \structcell{.} \coordinate (O1) at (currentcell.west); + \coordinate (O1l) at (currentcell.south); + + \drawstruct{(9,-3)} + \structcell{y=1} + \structcell{x=1} + \structcell{.} \coordinate (O2) at (currentcell.west); + \coordinate (O2l) at (currentcell.south); + + \draw[->] (p3) -- (O1); + \draw[->] (p2) -- (O1); + \draw[->] (p1) -- (O2); + + \draw[->] (O1l) .. controls (O1 |- T1) .. (T1); + \draw[->] (O2l) .. controls (O2 |- T2) .. (T2); + + \draw (10,-10) node{Heap}; + +\end{tikzpicture} + + + \section{Using tikzpicture instead of drawstack} % The environment drawstack is basically a syntactic sugar for |