Guest User

Untitled

a guest
Dec 17th, 2017
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.37 KB | None | 0 0
  1. documentclass{article}
  2. % RN. Sunday 17 December 2017
  3. %=======================
  4. usepackage[check-declarations]{expl3}
  5. usepackage{xparse}
  6. usepackage{tikz}
  7. %-----------------------
  8. ExplSyntaxOn
  9. cs_new_protected:Nn __rn_start_tikzpicture:n
  10. {begin{tikzpicture}[#1]}
  11. cs_generate_variant:Nn __rn_start_tikzpicture:n { V }
  12.  
  13. tl_new:N l_rn_auxOne_tl
  14. tl_new:N l_rn_auxTwo_tl
  15. tl_new:N l_rn_auxThree_tl
  16.  
  17. tl_new:N g_rn_tikzStyle_FR_tl
  18. cs_new:Npn rn_tikzStyle_FR:n #1
  19. % PARAMETERS #1: dummy variable
  20. % RETURNS g_rn_tikzStyle_FR_tl for plugging into the tikzpicture environment
  21. {
  22. group_begin:
  23. tl_gset:Nx g_rn_tikzStyle_FR_tl {level~distance=15mm,
  24. every~node/.style={rectangle,draw,inner~sep=2pt,align=left},
  25. level 1/.style={sibling~distance=50mm},
  26. level 2/.style={sibling~distance=25mm}}
  27. group_end:
  28. } % rn_tikzStyle_FR:n
  29.  
  30. tl_new:N g_rn_tikzContent_FR_tl
  31. cs_new:Npn rn_tikzContent_FR:n #1
  32. % RETURNS g_rn_tikzContent_FR_tl for plugging into the tikzpicture environment
  33. {
  34. group_begin:
  35. % the nodes are visited post-order to generate tikzContent:
  36. % visiting node key = 6:
  37. tl_gput_right:Nx g_rn_tikzContent_FR_tl {child[missing]}
  38. tl_set:Nx l_rn_auxOne_tl {6}
  39. tl_set:Nx l_rn_auxTwo_tl {child{node{l_rn_auxOne_tl}}}
  40. tl_gput_right:NV g_rn_tikzContent_FR_tl {l_rn_auxTwo_tl}
  41. % visiting node key = 4:
  42. tl_set:Nx l_rn_auxOne_tl {4}
  43. % ERR 1: tl_set:Nx l_rn_auxOne_tl {4:$x_3^2$}
  44. tl_set:Nx l_rn_auxTwo_tl {node{l_rn_auxOne_tl}}
  45. tl_gput_left:NV g_rn_tikzContent_FR_tl {l_rn_auxTwo_tl}
  46. tl_set:Nx l_rn_auxThree_tl {g_rn_tikzContent_FR_tl}
  47. tl_gset:Nx g_rn_tikzContent_FR_tl {child{l_rn_auxThree_tl}}
  48. % visiting node key = 10:
  49. tl_set:Nx l_rn_auxOne_tl {10}
  50. % ERR 2: tl_set:Nx l_rn_auxOne_tl {color{red}10}
  51. % tl_set:Nx l_rn_auxTwo_tl {child{node{l_rn_auxOne_tl}}}
  52. tl_set:Nx l_rn_auxTwo_tl {child{node[circle,draw,inner~sep=2pt] {l_rn_auxOne_tl}}} % this works well!
  53. tl_gput_right:NV g_rn_tikzContent_FR_tl l_rn_auxTwo_tl
  54. % visiting root, key = 8:
  55. tl_set:Nx l_rn_auxOne_tl {8}
  56. % ERR 3 tl_set:Nx l_rn_auxOne_tl {8\BF:+1}
  57. % ERR 4 tl_set:Nx l_rn_auxOne_tl {textbf{8}}
  58. tl_set:Nx l_rn_auxTwo_tl {exp_not:N node{l_rn_auxOne_tl}}
  59. tl_gput_left:NV g_rn_tikzContent_FR_tl l_rn_auxTwo_tl
  60. group_end:
  61. } % rn_tikzContent_FR:n
  62.  
  63. cs_new:Npn rnTikZ_showTree:n #1
  64. {
  65. group_begin:
  66. rn_tikzContent_FR:n {#1}
  67. rn_tikzStyle_FR:n {2}
  68. __rn_start_tikzpicture:V g_rn_tikzStyle_FR_tl
  69. g_rn_tikzContent_FR_tl ;
  70. end{tikzpicture}
  71. group_end:
  72. } % rnTikZ_showTree:n
  73.  
  74. NewDocumentCommandmyShowTree{O{5,3,4,7}}
  75. {
  76. rnTikZ_showTree:n {#1}
  77. }
  78.  
  79. ExplSyntaxOff
  80. begin{document}
  81. section{Native tikzpicture: Basic}
  82. begin{tikzpicture}
  83. [level distance=15mm,
  84. every node/.style={rectangle,draw,inner sep=2pt,align=left},
  85. level 1/.style={sibling distance=50mm},
  86. level 2/.style={sibling distance=25mm}]
  87. node{8}child{node{4}child[missing]child{node{6}}}child{node{10}};
  88. end{tikzpicture}
  89.  
  90. section{Native tikzpicture: Enhanced node content}
  91. begin{tikzpicture}
  92. [level distance=15mm,
  93. every node/.style={rectangle,draw,inner sep=2pt,align=left},
  94. level 1/.style={sibling distance=50mm},
  95. level 2/.style={sibling distance=25mm}]
  96. 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}};
  97. end{tikzpicture}
  98.  
  99. section{`tikzpicture` environment generated}
  100. myShowTree[8,4,6,10]
  101.  
  102. end{document}
Add Comment
Please, Sign In to add comment