1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18\startMPextensions
19 vardef BasicBraceSymbol (expr rotation) =
20 save p ; path p ;
21 z1 = (-233, 0) ;
22 z2 = (-220, 22) ;
23 z3 = (-155, 211) ;
24 z4 = (-200, 690) ;
25 z5 = (-142, 1033) ;
26 z6 = ( -97, 1106) ;
27 z7 = ( -71, 1125) ;
28 z8 = ( -61, 1104) ;
29 z9 = ( -80, 1077) ;
30 z10 = (-108, 1002) ;
31 z11 = (-129, 666) ;
32 z12 = (-117, 207) ;
33 z13 = (-197, 19) ;
34 z14 = (-208, 0) ;
35 z15 = (-197, -19) ;
36 z16 = (-117, -207) ;
37 z17 = (-129, -666) ;
38 z18 = (-108,-1026) ;
39 z19 = ( -80,-1077) ;
40 z20 = ( -61,-1104) ;
41 z21 = ( -71,-1125) ;
42 z22 = ( -97,-1106) ;
43 z23 = (-143,-1031) ;
44 z24 = (-199, -673) ;
45 z25 = (-155, -211) ;
46 z26 = (-220, -22) ;
47 p := z1 for i= 2 upto 14 : .. z[i] endfor
48 & z14 for j=15 upto 26 : .. z[j] endfor
49 .. z1
50 & cycle ;
51 p := p rotated rotation ;
52 p := p ysized 100 ;
53 p shifted center p
54 enddef ;
55 vardef RawLeftBraceSymbol =
56 fill BasicBraceSymbol(0) ysized OverlayHeight withcolor OverlayColor ;
57 enddef ;
58 vardef RawRightBraceSymbol =
59 fill BasicBraceSymbol(180) ysized OverlayHeight withcolor OverlayColor ;
60 enddef ;
61 vardef RawTopBraceSymbol =
62 fill BasicBraceSymbol(270) xsized OverlayWidth withcolor OverlayColor ;
63 enddef ;
64 vardef RawBottomBraceSymbol =
65 fill BasicBraceSymbol(90) xsized OverlayWidth withcolor OverlayColor ;
66 enddef ;
67 vardef LeftBraceSymbol =
68 save p, b ; path p, b ; b := fullsquare xscaled OverlayWidth yscaled OverlayHeight ;
69 setbounds currentpicture to b ;
70 p := BasicBraceSymbol(0) ysized OverlayHeight ;
71 fill p shifted (xpart lrcorner currentpicture xpart lrcorner p,0) withcolor OverlayColor ;
72 setbounds currentpicture to b ;
73 enddef ;
74 vardef RightBraceSymbol =
75 save p, b ; path p, b ; b := fullsquare xscaled OverlayWidth yscaled OverlayHeight ;
76 setbounds currentpicture to b ;
77 p := BasicBraceSymbol(180) ysized OverlayHeight ;
78 fill p shifted (xpart lrcorner currentpicture xpart lrcorner p,0) withcolor OverlayColor ;
79 setbounds currentpicture to b ;
80 enddef ;
81 vardef TopBraceSymbol =
82 save p, b ; path p, b ; b := fullsquare xscaled OverlayWidth yscaled OverlayHeight ;
83 setbounds currentpicture to b ;
84 p := BasicBraceSymbol(270) xsized OverlayWidth ;
85 fill p shifted (0,ypart ulcorner currentpicture ypart ulcorner p) withcolor OverlayColor ;
86 setbounds currentpicture to b ;
87 enddef ;
88 vardef BottomBraceSymbol =
89 save p, b ; path p, b ; b := fullsquare xscaled OverlayWidth yscaled OverlayHeight ;
90 setbounds currentpicture to b ;
91 p := BasicBraceSymbol(90) xsized OverlayWidth ;
92 fill p shifted (0,ypart lrcorner currentpicture ypart lrcorner p) withcolor OverlayColor ;
93 setbounds currentpicture to b ;
94 enddef ;
95\stopMPextensions
96
97\startuniqueMPgraphic{raw_brace_left} RawLeftBraceSymbol ; \stopuniqueMPgraphic
98\startuniqueMPgraphic{raw_brace_right} RawRightBraceSymbol ; \stopuniqueMPgraphic
99\startuniqueMPgraphic{raw_brace_top} RawTopBraceSymbol ; \stopuniqueMPgraphic
100\startuniqueMPgraphic{raw_brace_bottom} RawBottomBraceSymbol ; \stopuniqueMPgraphic
101
102\startuniqueMPgraphic{brace_left} LeftBraceSymbol ; \stopuniqueMPgraphic
103\startuniqueMPgraphic{brace_right} RightBraceSymbol ; \stopuniqueMPgraphic
104\startuniqueMPgraphic{brace_top} TopBraceSymbol ; \stopuniqueMPgraphic
105\startuniqueMPgraphic{brace_bottom} BottomBraceSymbol ; \stopuniqueMPgraphic
106
107\defineoverlay[leftbrace] [\uniqueMPgraphic{brace_left}]
108\defineoverlay[rightbrace] [\uniqueMPgraphic{brace_right}]
109\defineoverlay[topbrace] [\uniqueMPgraphic{brace_top}]
110\defineoverlay[bottombrace][\uniqueMPgraphic{brace_bottom}]
111
112\installleftframerenderer {brace}{\uniqueMPgraphic{raw_brace_left}}
113\installrightframerenderer {brace}{\uniqueMPgraphic{raw_brace_right}}
114\installtopframerenderer {brace}{\uniqueMPgraphic{raw_brace_top}}
115\installbottomframerenderer{brace}{\uniqueMPgraphic{raw_brace_bottom}}
116
117\continueifinputfile{metaimpfen.mkiv}
118
119\starttext
120
121\startTEXpage[offset=10pt]
122
123 \framed
124 [offset=1ex,
125 leftframe=brace,
126 rightframe=brace,
127 topframe=brace,
128 bottomframe=brace,
129 background=color,
130 backgroundcolor=red]
131 {OEPS}
132
133\stopTEXpage
134
135\startTEXpage \uniqueMPgraphic{brace_left} \stopTEXpage
136\startTEXpage \uniqueMPgraphic{brace_right} \stopTEXpage
137\startTEXpage \uniqueMPgraphic{brace_top} \stopTEXpage
138\startTEXpage \uniqueMPgraphic{brace_bottom} \stopTEXpage
139
140\framedtext
141 [frame=off,
142 offset=2em,
143 background={leftbrace,rightbrace,topbrace,bottombrace},
144 backgroundcolor=red]{\input{knuth}}
145
146\setupTABLE[frame=off,offset=1ex]
147\setupTABLE[row][each][align={middle,lohi}]
148
149\bTABLE
150 \bTR
151 \bTD[nr=3,background=leftbrace] drei \eTD
152 \bTD[nr=2,background=leftbrace] zwei \eTD
153 \bTD f \eTD
154 \bTD o \eTD
155 \bTD u \eTD
156 \bTD r \eTD
157 \bTD [nr=3,background=rightbrace] three \eTD
158 \eTR
159 \bTR
160 \bTD [background=leftbrace] eins \eTD
161 \bTD [background={topbrace,bottombrace}] null \eTD
162 \bTD [background=rightbrace] one \eTD
163 \bTD [nr=2,background=rightbrace] two \eTD
164 \eTR
165 \bTR
166 \bTD v \eTD
167 \bTD i \eTD
168 \bTD e \eTD
169 \bTD r \eTD
170 \eTR
171\eTABLE
172
173\stoptext
174 |