Advertisement
Guest User

Untitled

a guest
Jul 24th, 2016
116
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.20 KB | None | 0 0
  1. documentclass{article}
  2. usepackage{tikz}
  3. begin{document}
  4. usetikzlibrary{patterns,arrows,decorations.pathreplacing}
  5.  
  6. begin{figure}
  7. newcommand{tikzmark}[1]{tikz[overlay, remember picture] coordinate (#1);}
  8.  
  9. tikzmark{begin}%
  10. http:
  11. tikzmark{schema}
  12. //user:password@domain.com:port/resource
  13. tikzmark{query}
  14. ?query=foo
  15. tikzmark{fragment}
  16. #fragment
  17. tikzmark{end}
  18.  
  19. tikz[overlay,remember picture] {
  20. draw[decorate,decoration={brace,raise=5mm,amplitude=24pt}] (begin.north west) -- node [above=16mm] {URI} (end.north east) ;
  21. draw[decorate,decoration={brace,raise=2mm,amplitude=24pt,mirror}] (schema.south west) -- node[below of=begin, below=6mm] {Schema} (end.south east) ;
  22. draw[decorate,decoration={brace,raise=2mm,amplitude=6pt,mirror}] (fragment.south west) -- node[below of=begin, below=6mm] {Fragment} (end.south east) ;
  23. }
  24. end{figure}
  25. end{document}
  26.  
  27. overbrace{URI}{underbrace{schema}{http:}underbrace{specific}{//underbrace{credentials}{user:pass}}}
  28.  
  29. documentclass{article}
  30.  
  31. usepackage{tikz}
  32. usetikzlibrary{matrix}
  33. usetikzlibrary{decorations.pathreplacing}
  34.  
  35. tikzstyle{overbrace text style}=[font=tiny, above, pos=.5, yshift=3mm]
  36. tikzstyle{overbrace style}=[decorate,decoration={brace,raise=2mm,amplitude=3pt}]
  37. tikzstyle{underbrace style}=[decorate,decoration={brace,raise=2mm,amplitude=3pt,mirror},color=gray]
  38. tikzstyle{underbrace text style}=[font=tiny, below, pos=.5, yshift=-3mm]
  39.  
  40. begin{document}
  41.  
  42. begin{tikzpicture}
  43.  
  44. matrix[name=M1, matrix of nodes, inner sep=0pt, column sep=0pt]{
  45. node (schema) [text=red] {http:vphantom{/}}; & node (schema-spezifisch) [text=black] {//}; & node (nutzerinfo) [text=orange] {user:passvphantom{/}}; & @ & node (host) [text=blue] {www.example.comvphantom{/}}; & : & node (port) [text=blue!40] {1234vphantom{/}}; & node (pfad) [text=red] {/directory/index.php}; & node (query) [text=purple] {?key=valuevphantom{/}}; & node (fragment) [text=green] {#anchorvphantom{/}}; \
  46. };
  47.  
  48. draw [overbrace style] (schema.north west) -- (schema.north east) node [overbrace text style] {Schema};
  49. draw [overbrace style] (schema-spezifisch.north west) -- (fragment.north east) node [overbrace text style] {Schema-Spezifisch};
  50. draw [underbrace style] (nutzerinfo.south west) -- (nutzerinfo.south east) node [underbrace text style,text=orange] {Nutzerinfo};
  51. draw [underbrace style] (host.south west) -- (host.south east) node [underbrace text style,text=blue] {Host};
  52. draw [underbrace style] (port.south west) -- (port.south east) node [underbrace text style,text=blue!40,baseline] {Port};
  53. draw [underbrace style] (pfad.south west) -- (pfad.south east) node [underbrace text style,text=red] {Pfad};
  54. draw [underbrace style] (query.south west) -- (query.south east) node [underbrace text style,text=purple] {Query};
  55. draw [underbrace style] (fragment.south west) -- (fragment.south east) node [underbrace text style,text=green] {Fragment};
  56.  
  57. end{tikzpicture}
  58.  
  59. begin{tikzpicture}
  60.  
  61. matrix[name=M2, matrix of nodes, inner sep=0pt, column sep=0pt]{
  62. node (URI) {http:}; & node (schema) [text=black] {//user:password@domain.com:port/resource?query=foo}; & node (fragment) {#fragment}; \
  63. };
  64.  
  65. draw [overbrace style] (URI.north west) -- (fragment.north east) node [overbrace text style] {URI};
  66. draw [decorate,decoration={brace,raise=6mm,amplitude=3pt,mirror},color=gray] (schema.south west) -- (fragment.south east) node [font=tiny, below, pos=.5, yshift=-7mm] {Schema};
  67. draw [underbrace style] (fragment.south west) -- (fragment.south east) node [underbrace text style] {Fragment};
  68.  
  69. end{tikzpicture}
  70.  
  71. end{document}
  72.  
  73. usepackage{twoopt}
  74. newcommandtwoopt{tikzoverbrace}[5][][]{draw [overbrace style,#1] (#3.north west) -- (#4.north east) node [overbrace text style,#2] {#5};}
  75. newcommandtwoopt{tikzunderbrace}[5][][]{draw [underbrace style,#1] (#3.south west) -- (#4.south east) node [underbrace text style,#2] {#5};}
  76.  
  77. tikzoverbrace{schema-spezifisch}{fragment}{Schema-Spezifisch}
  78.  
  79. draw [overbrace style] (schema-spezifisch.north west) -- (fragment.north east) node [overbrace text style] {Schema-Spezifisch};
  80.  
  81. tikzunderbrace[][text=orange]{nutzerinfo}{nutzerinfo}{Nutzerinfo}
  82.  
  83. draw [underbrace style] (nutzerinfo.south west) -- (nutzerinfo.south east) node [underbrace text style,text=orange] {Nutzerinfo};
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement