Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- documentclass{article}
- % RN. Sunday 17 December 2017
- %=======================
- usepackage[check-declarations]{expl3}
- usepackage{xparse}
- usepackage{tikz}
- %-----------------------
- ExplSyntaxOn
- cs_new_protected:Nn __rn_start_tikzpicture:n
- {begin{tikzpicture}[#1]}
- cs_generate_variant:Nn __rn_start_tikzpicture:n { V }
- tl_new:N l_rn_auxOne_tl
- tl_new:N l_rn_auxTwo_tl
- tl_new:N l_rn_auxThree_tl
- tl_new:N g_rn_tikzStyle_FR_tl
- cs_new:Npn rn_tikzStyle_FR:n #1
- % PARAMETERS #1: dummy variable
- % RETURNS g_rn_tikzStyle_FR_tl for plugging into the tikzpicture environment
- {
- group_begin:
- tl_gset:Nx g_rn_tikzStyle_FR_tl {level~distance=15mm,
- every~node/.style={rectangle,draw,inner~sep=2pt,align=left},
- level 1/.style={sibling~distance=50mm},
- level 2/.style={sibling~distance=25mm}}
- group_end:
- } % rn_tikzStyle_FR:n
- tl_new:N g_rn_tikzContent_FR_tl
- cs_new:Npn rn_tikzContent_FR:n #1
- % RETURNS g_rn_tikzContent_FR_tl for plugging into the tikzpicture environment
- {
- group_begin:
- % the nodes are visited post-order to generate tikzContent:
- % visiting node key = 6:
- tl_gput_right:Nx g_rn_tikzContent_FR_tl {child[missing]}
- tl_set:Nx l_rn_auxOne_tl {6}
- tl_set:Nx l_rn_auxTwo_tl {child{node{l_rn_auxOne_tl}}}
- tl_gput_right:NV g_rn_tikzContent_FR_tl {l_rn_auxTwo_tl}
- % visiting node key = 4:
- tl_set:Nx l_rn_auxOne_tl {4}
- % ERR 1: tl_set:Nx l_rn_auxOne_tl {4:$x_3^2$}
- tl_set:Nx l_rn_auxTwo_tl {node{l_rn_auxOne_tl}}
- tl_gput_left:NV g_rn_tikzContent_FR_tl {l_rn_auxTwo_tl}
- tl_set:Nx l_rn_auxThree_tl {g_rn_tikzContent_FR_tl}
- tl_gset:Nx g_rn_tikzContent_FR_tl {child{l_rn_auxThree_tl}}
- % visiting node key = 10:
- tl_set:Nx l_rn_auxOne_tl {10}
- % ERR 2: tl_set:Nx l_rn_auxOne_tl {color{red}10}
- % tl_set:Nx l_rn_auxTwo_tl {child{node{l_rn_auxOne_tl}}}
- tl_set:Nx l_rn_auxTwo_tl {child{node[circle,draw,inner~sep=2pt] {l_rn_auxOne_tl}}} % this works well!
- tl_gput_right:NV g_rn_tikzContent_FR_tl l_rn_auxTwo_tl
- % visiting root, key = 8:
- tl_set:Nx l_rn_auxOne_tl {8}
- % ERR 3 tl_set:Nx l_rn_auxOne_tl {8\BF:+1}
- % ERR 4 tl_set:Nx l_rn_auxOne_tl {textbf{8}}
- tl_set:Nx l_rn_auxTwo_tl {exp_not:N node{l_rn_auxOne_tl}}
- tl_gput_left:NV g_rn_tikzContent_FR_tl l_rn_auxTwo_tl
- group_end:
- } % rn_tikzContent_FR:n
- cs_new:Npn rnTikZ_showTree:n #1
- {
- group_begin:
- rn_tikzContent_FR:n {#1}
- rn_tikzStyle_FR:n {2}
- __rn_start_tikzpicture:V g_rn_tikzStyle_FR_tl
- g_rn_tikzContent_FR_tl ;
- end{tikzpicture}
- group_end:
- } % rnTikZ_showTree:n
- NewDocumentCommandmyShowTree{O{5,3,4,7}}
- {
- rnTikZ_showTree:n {#1}
- }
- ExplSyntaxOff
- begin{document}
- section{Native tikzpicture: Basic}
- begin{tikzpicture}
- [level distance=15mm,
- every node/.style={rectangle,draw,inner sep=2pt,align=left},
- level 1/.style={sibling distance=50mm},
- level 2/.style={sibling distance=25mm}]
- node{8}child{node{4}child[missing]child{node{6}}}child{node{10}};
- end{tikzpicture}
- section{Native tikzpicture: Enhanced node content}
- begin{tikzpicture}
- [level distance=15mm,
- every node/.style={rectangle,draw,inner sep=2pt,align=left},
- level 1/.style={sibling distance=50mm},
- level 2/.style={sibling distance=25mm}]
- node{textbf{8}\BF:+1\H:2\W:4}child{node{4\$x_3^2$}child[missing]child {node{6\$alpha_2$}}}child{node[circle,draw,inner sep=2pt]{color{red}10}};
- end{tikzpicture}
- section{`tikzpicture` environment generated}
- myShowTree[8,4,6,10]
- end{document}
Add Comment
Please, Sign In to add comment