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
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% simplenodes.sty
%% <https://github.com/user9856749/simplenodes>
%%
%% MIT License
%%
%% Copyright (c) 2022 Bob Vergauwen
%%
%% Permission is hereby granted, free of charge, to any person obtaining a copy
%% of this software and associated documentation files (the "Software"), to deal
%% in the Software without restriction, including without limitation the rights
%% to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
%% copies of the Software, and to permit persons to whom the Software is
%% furnished to do so, subject to the following conditions:
%%
%% The above copyright notice and this permission notice shall be included in all
%% copies or substantial portions of the Software.
%%
%% THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
%% IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
%% FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
%% AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
%% LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
%% OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
%% SOFTWARE.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{simplenodes}[2022/03/31 A package that provides simple nodes in four colors.]
\RequirePackage{kvoptions}
\DeclareStringOption[25mm]{width}
\DeclareStringOption[7mm]{minheight}
\DeclareStringOption[center]{align}
\DeclareStringOption[2pt]{innersep}
\DeclareStringOption[0pt]{outersep}
\DeclareStringOption[0.4pt]{thickness}
\ProcessKeyvalOptions*
\RequirePackage{kvoptions}
\RequirePackage{tikz}
\RequirePackage{color}
\usetikzlibrary{math}
% Coordinate manipulations
\newcommand{\gettikzxy}[3]{%
\tikz@scan@one@point\pgfutil@firstofone#1\relax
\edef#2{\the\pgf@x}%
\edef#3{\the\pgf@y}%
}
% Define the main color
\definecolor{InvisibleRed}{rgb}{0.97, 0.92, 0.92}
\definecolor{InvisibleGreen}{rgb}{0.92, 0.97, 0.92}
\definecolor{InvisibleBlue}{rgb}{0.92, 0.92, 0.97}
\definecolor{InvisibleYellow}{rgb}{1.0, 1.0, 0.88}
\definecolor{MediumRed}{rgb}{0.925, 0.345, 0.345}
\definecolor{MediumGreen}{rgb}{0.37, 0.7, 0.66}
\definecolor{MediumBlue}{rgb}{0.015, 0.315, 0.45}
\definecolor{MediumYellow}{rgb}{1.0, 0.75, 0.0}
% Define the node
\newcommand\mynode[2]{
\tikz[remember picture,baseline]
\node[
draw=#1,fill=#2,
rectangle,
line width = \simplenodes@thickness,
align=\simplenodes@align,
text width=\simplenodes@width,
inner sep=\simplenodes@innersep,
outer sep=\simplenodes@outersep,
minimum height=\simplenodes@minheight,
]
}
% Define the line
\newcommand\myline[2]{
\draw[
->,
line width = \simplenodes@thickness
] (#1) to (#2);
}
\newcommand\link[2]{
\begin{tikzpicture}[remember picture, overlay, >=stealth, shift={(0,0)}]
\gettikzxy{(#1)}{\ax}{\ay}
\gettikzxy{(#2)}{\bx}{\by}
\tikzmath{
if \ax == \bx then {
if \ay < \by then {
{\myline{#1.north}{#2.south}};
};
if \ay > \by then {
{\myline{#1.south}{#2.north}};
};
};
if \ax < \bx then {
{\myline{#1.east}{#2.west}};
};
if \ax > \bx then {
{\myline{#1.west}{#2.east}};
};
};
\end{tikzpicture}
}
% Provide the commands
\newcommand\simplenode[2]{\mynode{MediumBlue}{InvisibleBlue} (#1){#2};}
\newcommand\examplenode[2]{\mynode{MediumGreen}{InvisibleGreen} (#1){#2};}
\newcommand\alertnode[2]{\mynode{MediumRed}{InvisibleRed} (#1){#2};}
\newcommand\warnnode[2]{\mynode{MediumYellow}{InvisibleYellow} (#1){#2};}
|