-
Notifications
You must be signed in to change notification settings - Fork 1
/
arrow15.mp
124 lines (94 loc) · 3.71 KB
/
arrow15.mp
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
% tex/conc/mp/arrow15.mp 2012-4-8 Alan U. Kennington.
% $Id: tex/conc/mp/arrow15.mp e28dab965b 2012-04-08 10:27:12Z Alan U. Kennington $
% Relations between general tensor spaces, including canonical multilinear maps.
input mapmax.mp
verbatimtex
\input akmath
etex
beginfig(1);
pair w[];
path pat[];
% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
a := 3.2cm;
b := 2.0cm;
stdpen := 0.5bp; % Hopefully this is the default pen scaling.
% There's probably a better way to get these dimensions automatically!
% Actually this can be done automatically using my boxmax.mp macros.
q := 0.36cm;
qq := 0.48cm;
qqx := 0.60cm;
qqxx := 0.80cm;
qqxxx := 1.30cm;
qqq := 0.87cm;
qqqq := 1.28cm;
qqqqq := 1.0cm;
ang := 30; % Exit angle for long-distance curves.
dy := 7.0mm; % Maximum deviation for long-distance curves.
dr := 7.0mm; % Exit radius for long-distance curves.
w0 := (0,0);
w1 := (0,b);
w2 := (a,0);
w3 := (a,b);
w4 := (2a,0);
w5 := (2a,b);
w6 := (3a,0);
w7 := (3a,b);
% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
% The labels for the spaces.
label(btex \strut$\mtimes_{\alpha\in A}V_\alpha$ etex, w0);
label(btex \strut$\mtimes_{\alpha\in A}V_\alpha^*$ etex, w1);
label(btex \strut$\mlin((V_\alpha^*)_{\alpha\in A};K)$ etex, w2);
label(btex \strut$\mlin((V_\alpha)_{\alpha\in A};K)$ etex, w3);
label(btex \strut$\botimesc_{\alpha\in A} V_\alpha$ etex, w4);
label(btex \strut$\botimesc_{\alpha\in A} V_\alpha^*$ etex, w5);
label(btex \strut$(\botimesc_{\alpha\in A} V_\alpha^*)^*$ etex, w6);
label(btex \strut$(\botimesc_{\alpha\in A} V_\alpha)^*$ etex, w7);
% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
% The arrows.
pickup pencircle scaled stdpen;
S_arrowspaces(w0,w1,q,q,1,black);
S_arrowspaces(w0,w2,qqxx,qqxxx,1,black);
S_arrowspaces(w1,w3,qqxx,qqxxx,1,black);
S_arrowspaces(w0,w3,qqx,qqx,1,black);
S_arrowspaces(w1,w2,qqx,qqx,1,black);
S_arrowspaces(w2,w5,qq,qq,1,black);
S_arrowspaces(w3,w4,qq,qq,1,black);
S_arrowspaces(w4,w7,qq,qq,1,black);
S_arrowspaces(w5,w6,qq,qq,1,black);
S_arrowspaces(w2,w4,qqqq,qqq,2,black);
S_arrowspaces(w3,w5,qqqq,qqq,2,black);
S_arrowspaces(w4,w6,qqq,qqqqq,3,black);
S_arrowspaces(w5,w7,qqq,qqqqq,3,black);
% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
% The arrow labels.
label.lft(btex dual etex, 0.5[w0,w1]);
S_tiltlabel(btex $m$-dual etex, 0.34[w1,w2], angle(w2-w1));
S_tiltlabel_bot(btex $m$-dual etex, 0.34[w0,w3], angle(w3-w0));
S_tiltlabel(btex dual etex, 0.38[w3,w4], angle(w4-w3));
S_tiltlabel_bot(btex dual etex, 0.38[w2,w5], angle(w5-w2));
S_tiltlabel(btex dual etex, 0.38[w5,w6], angle(w6-w5));
S_tiltlabel_bot(btex dual etex, 0.38[w4,w7], angle(w7-w4));
label.bot(btex $\eta\rlap{${}^T$}$ etex, 0.5[w0,w2]+((qqxx-qqxxx)/2,0));
label.top(btex $\eta$ etex, 0.5[w1,w3]+((qqxx-qqxxx)/2,0));
label.top(btex $\psi$ etex, 0.5[w2,w4]+((qqqq-qqq)/2,0));
label.bot(btex iso etex, 0.5[w2,w4]+((qqqq-qqq)/2,0));
label.top(btex iso etex, 0.5[w3,w5]+((qqqq-qqq)/2,0));
label.bot(btex $\bar\psi$ etex, 0.5[w3,w5]+((qqqq-qqq)/2,0));
label.bot(btex iso etex, 0.5[w4,w6]+((qqq-qqqqq)/2,0));
label.top(btex iso etex, 0.5[w5,w7]+((qqq-qqqqq)/2,0));
% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
% Long-distance maps.
pickup pencircle scaled stdpen;
w10 := 0.5[w0,w4]+(0,-dy);
w11 := 0.5[w1,w5]+(0,dy);
pat0 := (w0+(dr,0)rotated -ang){dir -ang}...w10
...{dir ang}(w4+(-dr,0)rotated ang);
pat1 := (w1+(dr,0)rotated ang){dir ang}...w11
...{dir -ang}(w5+(-dr,0)rotated -ang);
drawarrow pat0;
drawarrow pat1;
rat := 0.20;
label.bot(btex $\mu$ etex, point rat of pat0);
label.top(btex $\mu\rlap{${}^*$}$ etex, point rat of pat1);
endfig;
end