summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/codeanatomy/codeanatomy.sty
blob: 5ffb96c0c152dd901d10a343d1230e82c7bf42a6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
%%
%% This is file `codeanatomy.sty',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% codeanatomy.dtx  (with options: `package')
%% 
\NeedsTeXFormat{LaTeX2e}[2018/12/01]
\ProvidesPackage{codeanatomy}[2019/07/10 v0.2-Alpha draw Code Anatomy]

\RequirePackage{expl3}
\RequirePackage{xparse}
\RequirePackage{tikz}
\usetikzlibrary{
   tikzmark
  ,fit
  ,arrows.meta
  ,bending
  ,shapes
  ,chains
  ,backgrounds
  ,scopes
  ,decorations
  ,decorations.pathmorphing
}

\definecolor{annotationcolor}
            {rgb}{0,0.50002,1} % Blue
\colorlet{bgcmdcolor}{gray}    % Grey
\tikzset{anatomy/.style={%
      anchor=south west,%
      inner sep=0,%
      align=left,%
      font=\ttfamily
    }
}
\tikzset{code part/.style={%
      rectangle,%
      draw=annotationcolor,%
      align=left,%
      minimum height=1.175em,%
      inner sep=1.75pt,%
      outer sep=0.1pt,%
      font=\ttfamily
    }
}
\tikzset{fit extrem/.style={%
      rectangle,%
      draw=annotationcolor,%
      align=left,%
      minimum height=1.175em,%
      inner sep=1.75pt,%
      outer sep=0.1pt,%
      font=\ttfamily
    }
}
\tikzset{annotation/.style={%
      preaction={
          draw=white,%
          line width=3.5pt,%
          arrows={-Triangle Cap[]},%
      },%
      draw=annotationcolor,%
      arrows={-Latex[%
          round,%
          color=annotationcolor]
      }
    }
}
\tikzset{code annotation/.style={%
      inner sep=2pt,%
      text=annotationcolor,%
      align=center,%
      font=\sffamily\small
    }
}
\tikzset{code grid debug/.style={%
      step=1.0,%
      draw=gray!20,%
      very thin,%
      on background layer
    }
}
\NewDocumentCommand{\codeBlock}{m}%
  {\node(code) [anatomy] at (0,0) {#1};}
\NewDocumentCommand{\cPart}{mm} %
    {\tikzmarknode[code part]{#1}{#2}}
\NewDocumentCommand{\iPart}{mm} %
    {\tikzmarknode[code part,draw=none,inner sep=0.75pt]{#1}{#2}}
\NewDocumentCommand{\mtPoint}{m}
    {\tikzmarknode{#1}{\phantom{\rule[1.8ex]{0.1ex}{0.1ex}}}}
\NewDocumentCommand{\hmtPoint}{m}
    {\tikzmarknode{#1}{\phantom{\rule[2.5ex]{0.1ex}{0.1ex}}}}
\NewDocumentCommand{\mbPoint}{m}
    {\tikzmarknode{#1}{\phantom{\rule[-0.55ex]{0.1ex}{0.1ex}}}}
\NewDocumentCommand{\dmbPoint}{m}
    {\tikzmarknode{#1}{\phantom{\rule[-2ex]{0.1ex}{0.1ex}}}}
\NewDocumentCommand{\extremPoint}{m O{0ex} O{0.1ex} O{} }
    {\tikzmarknode[#4]{#1}{\phantom{\rule[#2]{#3}{0.1ex}}}}
\NewDocumentCommand{\fitExtrem}{mm}
    {\node(#1)[fit extrem,fit={#2}]{};}
\NewDocumentCommand{\bgcode}{m}{\textcolor{bgcmdcolor}{#1}}
\NewDocumentCommand{\ptab}{}{\phantom{hhhh}}
\NewDocumentCommand{\phspace}{}{\phantom{h}}
\NewDocumentCommand{\codeAnnotation}{m r() m } %
    { \node(#1)[code annotation] at (#2) {#3}; }
%% Copyright (C) 2008-2019 by
%%   ME
%% 
%% It may be distributed and/or modified under the conditions of
%% the LaTeX Project Public License (LPPL), either version 1.3c of
%% this license or (at your option) any later version.  The latest
%% version of this license is in the file:
%% 
%%    https://www.latex-project.org/lppl.txt
%% 
%% 
%% This work consists of the files codeanatomy.dtx,
%%                                 codeanatomy.ins,
%%           and the derived files codeanatomy.pdf,
%%                                 codeanatomy.sty.
%% 
%%
%% End of file `codeanatomy.sty'.