-
Notifications
You must be signed in to change notification settings - Fork 8
/
tikz-er2.sty
executable file
·68 lines (50 loc) · 2.1 KB
/
tikz-er2.sty
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
% The tikz-er2 package.
% Ver. 1.0
% (c) Pável Caldo
% January 2009
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{tikz-er2}[2009/01/31 Entity-relationship diagrams using the
Tikz library]
\RequirePackage{tikz}
\RequirePackage[normalem]{ulem} % for the dashed underline
\usetikzlibrary{shapes.geometric}
\usetikzlibrary{arrows}
\usetikzlibrary{fit}
\tikzstyle{every entity} = []
\tikzstyle{every weak entity} = []
\tikzstyle{every attribute} = []
\tikzstyle{every relationship} = []
\tikzstyle{every link} = []
\tikzstyle{every isa} = []
\tikzstyle{link} = [>=triangle 60, draw, thick, every link]
\tikzstyle{total} = [link, double]
\tikzstyle{entity} = [rectangle, draw, black, very thick,
minimum width=6em, minimum height=3em,
every entity]
\tikzstyle{weak entity} = [entity, double, double distance=2pt,
every weak entity]
\tikzstyle{attribute} = [ellipse, draw, black, very thick,
minimum width=5em, minimum height=2em,
every attribute]
%\tikzstyle{key attribute} = [attribute, font=\bfseries]
\tikzstyle{multi attribute} = [attribute, double, double distance=2pt]
\tikzstyle{derived attribute} = [attribute, dashed]
%\tikzstyle{discriminator} = [attribute, font=\itshape]
\tikzstyle{relationship} = [diamond, draw, black, very thick,
minimum width=2em, aspect=1,
every relationship]
\tikzstyle{ident relationship} = [relationship, double, double distance=2pt]
\tikzstyle{isa} = [isosceles triangle, isosceles triangle apex angle=60,
shape border rotate=90,
draw, black, very thick, minimum size=3em,
every isa]
% for text un key attributes
\newcommand{\key}[1]{\underline{#1}}
\newcommand{\weakkey}[1]{\dashuline{#1}}
% for text in discriminator attributes
\def\discriminator{\bgroup
\ifdim\ULdepth=\maxdimen % Set depth based on font, if not set already
\settodepth\ULdepth{(j}\advance\ULdepth.4pt\fi
\markoverwith{\kern.15em
\vtop{\kern\ULdepth \hrule width .3em}%
\kern.15em}\ULon}