Commits:
-
2e86c41f
by Werner Lemberg at 2022-10-07T16:20:43+02:00
docs/glyphs/glyph-metrics.tex: Formatting.
-
ea43d8c6
by Werner Lemberg at 2022-10-07T16:49:21+02:00
docs/glyphs/glyphs-6.html: Replace PNG with SVG images.
15 changed files:
Changes:
freetype2/docs/glyphs/bbox1.png
deleted
No preview for this file type
freetype2/docs/glyphs/bbox2.png
deleted
No preview for this file type
freetype2/docs/glyphs/glyph-metrics.tex
... |
... |
@@ -24,104 +24,127 @@ |
24
|
24
|
|
25
|
25
|
\usepackage{libertinus}
|
26
|
26
|
|
27
|
|
-\usetikzlibrary{calc}
|
28
|
|
-\usetikzlibrary{decorations}
|
29
|
|
-\usetikzlibrary{positioning}
|
|
27
|
+\usetikzlibrary{
|
|
28
|
+ calc,
|
|
29
|
+ decorations,
|
|
30
|
+ positioning}
|
30
|
31
|
|
31
|
32
|
|
32
|
|
-% A dimensionless point node.
|
33
|
|
-\tikzset{dummy/.style={inner sep=0pt,
|
34
|
|
- outer sep=0pt}}
|
35
|
|
-
|
36
|
|
-% Thick line with one arrow.
|
37
|
|
-\tikzset{axis/.style={line width=4pt,
|
38
|
|
- -latex}}
|
39
|
|
-
|
40
|
|
-% A fat dot.
|
41
|
|
-\tikzset{dot/.style={minimum size=14pt,
|
42
|
|
- circle,
|
43
|
|
- fill}}
|
44
|
|
-
|
45
|
|
-% 'Elastic dashes' adapt spaces between dashes to the line length so that
|
46
|
|
-% the last dash doesn't get cut off.
|
47
|
|
-%
|
48
|
|
-% Taken from
|
49
|
|
-% https://tex.stackexchange.com/questions/133271/can-tikz-dashed-lines-emulate-pstricks-dashed-lines
|
|
33
|
+% Node styles.
|
50
|
34
|
\tikzset{
|
|
35
|
+ % For dimensionless point nodes.
|
|
36
|
+ dummy/.style={
|
|
37
|
+ inner sep=0pt,
|
|
38
|
+ outer sep=0pt},
|
|
39
|
+%
|
|
40
|
+ % For thick curves with one arrow.
|
|
41
|
+ axis/.style={
|
|
42
|
+ line width=4pt,
|
|
43
|
+ -latex},
|
|
44
|
+%
|
|
45
|
+ % For fat dots.
|
|
46
|
+ dot/.style={
|
|
47
|
+ minimum size=14pt,
|
|
48
|
+ circle,
|
|
49
|
+ fill},
|
|
50
|
+%
|
|
51
|
+ % 'Elastic dashes' adapt spaces between dashes to the line length so that
|
|
52
|
+ % the last dash doesn't get cut off partially.
|
|
53
|
+ %
|
|
54
|
+ % Taken from
|
|
55
|
+ % https://tex.stackexchange.com/questions/133271/can-tikz-dashed-lines-emulate-pstricks-dashed-lines
|
51
|
56
|
elastic dash/.code args={on #1 off #2}{
|
52
|
57
|
% Use csname so catcode of @ doesn't have do be changed.
|
53
|
58
|
\csname tikz@addoption\endcsname{%
|
54
|
|
- \pgfgetpath\currentpath%
|
|
59
|
+ \pgfgetpath\currentpath
|
55
|
60
|
\pgfprocessround{\currentpath}{\currentpath}%
|
56
|
61
|
\csname pgf@decorate@parsesoftpath\endcsname
|
57
|
62
|
{\currentpath}{\currentpath}%
|
58
|
63
|
\pgfmathparse{\csname pgf@decorate@totalpathlength\endcsname-#1}%
|
59
|
|
- \let\rest=\pgfmathresult%
|
|
64
|
+ \let\rest=\pgfmathresult
|
60
|
65
|
\pgfmathparse{#1+#2}%
|
61
|
66
|
\let\onoff=\pgfmathresult
|
62
|
67
|
\pgfmathparse{max(floor(\rest/\onoff), 1)}%
|
63
|
68
|
\let\nfullonoff=\pgfmathresult
|
64
|
69
|
\pgfmathparse{max((\rest-\onoff*\nfullonoff)/\nfullonoff+#2, #2)}%
|
65
|
70
|
\let\offexpand=\pgfmathresult
|
66
|
|
- \pgfsetdash{{#1}{\offexpand}}{0pt}%
|
67
|
|
- }
|
68
|
|
- }
|
69
|
|
-}
|
70
|
|
-\tikzset{line/.style={line width=2pt}}
|
71
|
|
-\tikzset{dashed line/.style={elastic dash=on 6pt off 6pt,
|
72
|
|
- line}}
|
73
|
|
-
|
74
|
|
-\tikzset{coordinate/.style={font=\Huge}}
|
75
|
|
-\tikzset{description/.style={font=\Huge\itshape}}
|
76
|
|
-
|
77
|
|
-% Line with one arrow.
|
78
|
|
-\tikzset{direction/.style={line,
|
79
|
|
- -latex}}
|
80
|
|
-% Line with two arrows.
|
81
|
|
-\tikzset{span/.style={line,
|
82
|
|
- latex-latex}}
|
83
|
|
-
|
84
|
|
-% (Invisible) boxes for displaying horizontal and vertical advances.
|
85
|
|
-\tikzset{box/.style={inner sep=0pt,
|
86
|
|
- font=\fontsize{150pt}{0pt}\selectfont}}
|
87
|
|
-\tikzset{hbox/.style={box,
|
88
|
|
- outer sep=0pt,
|
89
|
|
- anchor=base west}}
|
90
|
|
-\tikzset{vbox/.style={box,
|
91
|
|
- outer sep=10pt,
|
92
|
|
- anchor=north}}
|
93
|
|
-
|
94
|
|
-% We want a bbox around the ink of glyph 'g', which needs some manual work.
|
95
|
|
-% We use `inner xsep` with a negative value to remove the glyph's side
|
96
|
|
-% bearings. Since the left and the right side bearings are not equal, we
|
97
|
|
-% need `\hspace` as an additional compensation. For the top and bottom side
|
98
|
|
-% bearings, adjusting `inner ysep` is sufficient.
|
99
|
|
-\tikzset{glyph g/.style={draw,
|
100
|
|
- line,
|
101
|
|
- inner xsep=-6pt,
|
102
|
|
- inner ysep=0pt,
|
103
|
|
- outer sep=0pt,
|
104
|
|
- font=\fontsize{300pt}{0pt}\selectfont,
|
105
|
|
- execute at end node={\hspace{-3pt}g}}}
|
106
|
|
-
|
107
|
|
-% A filled square.
|
|
71
|
+ \pgfsetdash{{#1}{\offexpand}}{0pt}}},
|
|
72
|
+%
|
|
73
|
+ % For main curves.
|
|
74
|
+ line/.style={
|
|
75
|
+ line width=2pt},
|
108
|
76
|
%
|
109
|
|
-% Taken from
|
110
|
|
-% https://tex.stackexchange.com/questions/300098/draw-a-node-as-a-square-with-tikz
|
111
|
|
-\tikzset{square/.style={draw=none,
|
112
|
|
- circle,
|
113
|
|
- minimum size=9pt,
|
114
|
|
- inner sep=0pt,
|
115
|
|
- outer sep=0pt,
|
116
|
|
- append after command={%
|
117
|
|
- \pgfextra
|
118
|
|
- \fill[black]
|
119
|
|
- (\tikzlastnode.north
|
120
|
|
- -| \tikzlastnode.west)
|
121
|
|
- rectangle
|
122
|
|
- (\tikzlastnode.south
|
123
|
|
- -| \tikzlastnode.east);
|
124
|
|
- \endpgfextra}}}
|
|
77
|
+ % For auxiliary, dashed curves.
|
|
78
|
+ dashed line/.style={
|
|
79
|
+ elastic dash=on 6pt off 6pt,
|
|
80
|
+ line},
|
|
81
|
+%
|
|
82
|
+ % For displaying node coordinates.
|
|
83
|
+ coordinate/.style={
|
|
84
|
+ font=\Huge},
|
|
85
|
+%
|
|
86
|
+ % For explanations.
|
|
87
|
+ description/.style={
|
|
88
|
+ font=\Huge\itshape},
|
|
89
|
+%
|
|
90
|
+ % For curves with one arrow.
|
|
91
|
+ direction/.style={
|
|
92
|
+ line,
|
|
93
|
+ -latex},
|
|
94
|
+ % For curves with two arrows.
|
|
95
|
+ span/.style={
|
|
96
|
+ line,
|
|
97
|
+ latex-latex},
|
|
98
|
+%
|
|
99
|
+ % For (invisible) boxes displaying advances.
|
|
100
|
+ box/.style={
|
|
101
|
+ inner sep=0pt,
|
|
102
|
+ font=\fontsize{150pt}{0pt}\selectfont},
|
|
103
|
+%
|
|
104
|
+ % For displaying horizontal advances.
|
|
105
|
+ hbox/.style={
|
|
106
|
+ box,
|
|
107
|
+ outer sep=0pt,
|
|
108
|
+ anchor=base west},
|
|
109
|
+%
|
|
110
|
+ % For displaying vertical advances.
|
|
111
|
+ vbox/.style={
|
|
112
|
+ box,
|
|
113
|
+ outer sep=10pt,
|
|
114
|
+ anchor=north},
|
|
115
|
+%
|
|
116
|
+ % We want a bbox around the ink of glyph 'g', which needs some manual
|
|
117
|
+ % work. We use `inner xsep` with a negative value to remove the glyph's
|
|
118
|
+ % side bearings. Since the left and the right side bearings are not
|
|
119
|
+ % equal, we need `\hspace` as an additional compensation. For the top and
|
|
120
|
+ % bottom side bearings, adjusting `inner ysep` is sufficient.
|
|
121
|
+ glyph g/.style={
|
|
122
|
+ draw,
|
|
123
|
+ line,
|
|
124
|
+ inner xsep=-6pt,
|
|
125
|
+ inner ysep=0pt,
|
|
126
|
+ outer sep=0pt,
|
|
127
|
+ font=\fontsize{300pt}{0pt}\selectfont,
|
|
128
|
+ execute at end node={\hspace{-3pt}g}},
|
|
129
|
+%
|
|
130
|
+ % For filled squares
|
|
131
|
+ %
|
|
132
|
+ % Taken from
|
|
133
|
+ % https://tex.stackexchange.com/questions/300098/draw-a-node-as-a-square-with-tikz
|
|
134
|
+ square/.style={
|
|
135
|
+ draw=none,
|
|
136
|
+ circle,
|
|
137
|
+ minimum size=9pt,
|
|
138
|
+ inner sep=0pt,
|
|
139
|
+ outer sep=0pt,
|
|
140
|
+ append after command={%
|
|
141
|
+ \pgfextra
|
|
142
|
+ \fill[black] (\tikzlastnode.north -| \tikzlastnode.west)
|
|
143
|
+ rectangle
|
|
144
|
+ (\tikzlastnode.south -| \tikzlastnode.east);
|
|
145
|
+ \endpgfextra}}
|
|
146
|
+}
|
|
147
|
+
|
125
|
148
|
|
126
|
149
|
\newcommand*{\LastLoopValue}{No value}
|
127
|
150
|
|
... |
... |
@@ -231,7 +254,7 @@ |
231
|
254
|
\draw[dashed line] (glyph.south east) -- (yMin);
|
232
|
255
|
|
233
|
256
|
\draw[direction] ($(glyph.base east) + (1,0)$)
|
234
|
|
- -- ($(glyph.north east) + (1,0)$)
|
|
257
|
+ -- ($(glyph.north east) + (1,0)$)
|
235
|
258
|
node [midway, right, description] {bearingY};
|
236
|
259
|
\draw[span] ($(glyph.south east) + (5,0)$)
|
237
|
260
|
-- ($(glyph.north east) + (5,0)$)
|
freetype2/docs/glyphs/glyphs-6.html
... |
... |
@@ -120,6 +120,13 @@ |
120
|
120
|
<li>
|
121
|
121
|
<p>Two successive ‘on’ points indicate a
|
122
|
122
|
line segment joining them.</p>
|
|
123
|
+
|
|
124
|
+ <p align="center">
|
|
125
|
+ <img src="">"outlines-1.svg"
|
|
126
|
+ height="40%"
|
|
127
|
+ width="40%"
|
|
128
|
+ alt="segment example">
|
|
129
|
+ </p>
|
123
|
130
|
</li>
|
124
|
131
|
<li>
|
125
|
132
|
<p>One conic ‘off’ point between two
|
... |
... |
@@ -127,6 +134,13 @@ |
127
|
134
|
Bézier arc, the ‘off’ point being
|
128
|
135
|
the control point, and the ‘on’ ones the
|
129
|
136
|
start and end points.</p>
|
|
137
|
+
|
|
138
|
+ <p align="center">
|
|
139
|
+ <img src="">"outlines-2.svg"
|
|
140
|
+ height="40%"
|
|
141
|
+ width="40%"
|
|
142
|
+ alt="conic arc example">
|
|
143
|
+ </p>
|
130
|
144
|
</li>
|
131
|
145
|
<li>
|
132
|
146
|
<p>Two successive cubic ‘off’ points between
|
... |
... |
@@ -136,6 +150,13 @@ |
136
|
150
|
each cubic arc (using a single cubic ‘off’
|
137
|
151
|
point between two ‘on’ points is
|
138
|
152
|
forbidden, for example).</p>
|
|
153
|
+
|
|
154
|
+ <p align="center">
|
|
155
|
+ <img src="">"outlines-3.svg"
|
|
156
|
+ height="40%"
|
|
157
|
+ width="40%"
|
|
158
|
+ alt="cubic arc example">
|
|
159
|
+ </p>
|
139
|
160
|
</li>
|
140
|
161
|
<li>
|
141
|
162
|
<p>Two successive conic ‘off’ points force
|
... |
... |
@@ -146,6 +167,13 @@ |
146
|
167
|
successive conic Bézier arcs. Moreover, it is
|
147
|
168
|
the way outlines are described in the TrueType
|
148
|
169
|
specification.</p>
|
|
170
|
+
|
|
171
|
+ <p align="center">
|
|
172
|
+ <img src="">"outlines-4.svg"
|
|
173
|
+ height="40%"
|
|
174
|
+ width="40%"
|
|
175
|
+ alt="cubic arc with virtual 'on' point">
|
|
176
|
+ </p>
|
149
|
177
|
</li>
|
150
|
178
|
<li>
|
151
|
179
|
<p>The last point in a contour uses the first as an end
|
... |
... |
@@ -172,37 +200,6 @@ |
172
|
200
|
single contour, however, no font driver of FreeType
|
173
|
201
|
produces such outlines currently.</p>
|
174
|
202
|
|
175
|
|
- <table class="vertical-space">
|
176
|
|
- <tr>
|
177
|
|
- <td>
|
178
|
|
- <img src="">"points_segment.png"
|
179
|
|
- height="166"
|
180
|
|
- width="221"
|
181
|
|
- alt="segment example">
|
182
|
|
- </td>
|
183
|
|
- <td>
|
184
|
|
- <img src="">"points_conic.png"
|
185
|
|
- height="183"
|
186
|
|
- width="236"
|
187
|
|
- alt="conic arc example">
|
188
|
|
- </td>
|
189
|
|
- </tr>
|
190
|
|
- <tr>
|
191
|
|
- <td>
|
192
|
|
- <img src="">"points_cubic.png"
|
193
|
|
- height="162"
|
194
|
|
- width="214"
|
195
|
|
- alt="cubic arc example">
|
196
|
|
- </td>
|
197
|
|
- <td>
|
198
|
|
- <img src="">"points_conic2.png"
|
199
|
|
- height="204"
|
200
|
|
- width="225"
|
201
|
|
- alt="cubic arc with virtual 'on' point">
|
202
|
|
- </td>
|
203
|
|
- </tr>
|
204
|
|
- </table>
|
205
|
|
-
|
206
|
203
|
|
207
|
204
|
<h4>b. The <code>FT_Outline</code> descriptor</h4>
|
208
|
205
|
|
... |
... |
@@ -312,24 +309,27 @@ |
312
|
309
|
the bbox, and the two boxes are identical in most
|
313
|
310
|
cases.</p>
|
314
|
311
|
|
315
|
|
- <p>Unlike the bbox, the cbox is much faster to compute.</p>
|
|
312
|
+ <p>Unlike the bbox, the cbox can be computed very
|
|
313
|
+ quickly.</p>
|
316
|
314
|
|
317
|
|
- <table class="vertical-space">
|
318
|
|
- <tr>
|
319
|
|
- <td>
|
320
|
|
- <img src="">"bbox1.png"
|
321
|
|
- height="264"
|
322
|
|
- width="228"
|
323
|
|
- alt="a glyph with different bbox and cbox">
|
324
|
|
- </td>
|
325
|
|
- <td>
|
326
|
|
- <img src="">"bbox2.png"
|
327
|
|
- height="229"
|
328
|
|
- width="217"
|
329
|
|
- alt="a glyph with identical bbox and cbox">
|
330
|
|
- </td>
|
331
|
|
- </tr>
|
332
|
|
- </table>
|
|
315
|
+ <p>The following image shows Bézier curves where the
|
|
316
|
+ bbox and the cbox differ.</p>
|
|
317
|
+
|
|
318
|
+ <p align="center">
|
|
319
|
+ <img src="">"outlines-5.svg"
|
|
320
|
+ height="40%"
|
|
321
|
+ width="40%"
|
|
322
|
+ alt="a glyph with different bbox and cbox">
|
|
323
|
+ </p>
|
|
324
|
+
|
|
325
|
+ <p>Adding points at the curve extrema avoids that.</p>
|
|
326
|
+
|
|
327
|
+ <p align="center">
|
|
328
|
+ <img src="">"outlines-6.svg"
|
|
329
|
+ height="40%"
|
|
330
|
+ width="40%"
|
|
331
|
+ alt="a glyph with identical bbox and cbox">
|
|
332
|
+ </p>
|
333
|
333
|
|
334
|
334
|
<p>Control and bounding boxes can be computed automatically
|
335
|
335
|
using the
|
... |
... |
@@ -434,7 +434,7 @@ height = (ymax - ymin)/64</pre> |
434
|
434
|
<!-- ************************************************** -->
|
435
|
435
|
|
436
|
436
|
<div class="updated">
|
437
|
|
- <p>Last update: 15-Jan-2021</p>
|
|
437
|
+ <p>Last update: 07-Oct-2022</p>
|
438
|
438
|
</div>
|
439
|
439
|
</div>
|
440
|
440
|
</div>
|
freetype2/docs/glyphs/outlines-1.svg
|
1
|
+<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="193.06pt" height="79.68pt" viewBox="0 0 193.06 79.68" version="1.1">
|
|
3
|
+<defs>
|
|
4
|
+<clipPath id="clip1">
|
|
5
|
+ <path d="M 0 0 L 193.058594 0 L 193.058594 79.679688 L 0 79.679688 Z M 0 0 "/>
|
|
6
|
+</clipPath>
|
|
7
|
+</defs>
|
|
8
|
+<g id="surface1">
|
|
9
|
+<path style=" stroke:none;fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;" d="M 8.503906 71.175781 L 14.480469 71.175781 L 14.480469 65.199219 L 8.503906 65.199219 Z M 8.503906 71.175781 "/>
|
|
10
|
+<path style=" stroke:none;fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;" d="M 178.585938 14.484375 L 184.5625 14.484375 L 184.5625 8.503906 L 178.585938 8.503906 Z M 178.585938 14.484375 "/>
|
|
11
|
+<g clip-path="url(#clip1)" clip-rule="nonzero">
|
|
12
|
+<path style="fill:none;stroke-width:1.99255;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M -0.0008125 0.0005 L 170.081219 56.691906 " transform="matrix(1,0,0,-1,11.493,68.188)"/>
|
|
13
|
+</g>
|
|
14
|
+</g>
|
|
15
|
+</svg> |
freetype2/docs/glyphs/outlines-2.svg
|
1
|
+<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="193.06pt" height="108.52pt" viewBox="0 0 193.06 108.52" version="1.1">
|
|
3
|
+<defs>
|
|
4
|
+<clipPath id="clip1">
|
|
5
|
+ <path d="M 0 0 L 81 0 L 81 108.519531 L 0 108.519531 Z M 0 0 "/>
|
|
6
|
+</clipPath>
|
|
7
|
+<clipPath id="clip2">
|
|
8
|
+ <path d="M 0 5 L 193.058594 5 L 193.058594 108.519531 L 0 108.519531 Z M 0 5 "/>
|
|
9
|
+</clipPath>
|
|
10
|
+</defs>
|
|
11
|
+<g id="surface1">
|
|
12
|
+<path style=" stroke:none;fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;" d="M 8.503906 100.015625 L 14.480469 100.015625 L 14.480469 94.039062 L 8.503906 94.039062 Z M 8.503906 100.015625 "/>
|
|
13
|
+<path style="fill:none;stroke-width:0.99628;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 59.682781 85.038719 C 59.682781 86.691062 58.342937 88.030906 56.6945 88.030906 C 55.042156 88.030906 53.706219 86.691062 53.706219 85.038719 C 53.706219 83.390281 55.042156 82.050437 56.6945 82.050437 C 58.342937 82.050437 59.682781 83.390281 59.682781 85.038719 Z M 59.682781 85.038719 " transform="matrix(1,0,0,-1,11.493,97.027)"/>
|
|
14
|
+<path style=" stroke:none;fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;" d="M 178.585938 43.320312 L 184.5625 43.320312 L 184.5625 37.34375 L 178.585938 37.34375 Z M 178.585938 43.320312 "/>
|
|
15
|
+<g clip-path="url(#clip1)" clip-rule="nonzero">
|
|
16
|
+<path style="fill:none;stroke-width:0.99628;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-dasharray:5.97766,6.72818;stroke-miterlimit:10;" d="M 1.991375 2.987937 L 54.760906 82.140281 " transform="matrix(1,0,0,-1,11.493,97.027)"/>
|
|
17
|
+</g>
|
|
18
|
+<path style="fill:none;stroke-width:0.99628;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-dasharray:5.97766,7.06342;stroke-miterlimit:10;" d="M 60.077312 84.194969 L 167.092938 57.441062 " transform="matrix(1,0,0,-1,11.493,97.027)"/>
|
|
19
|
+<g clip-path="url(#clip2)" clip-rule="nonzero">
|
|
20
|
+<path style="fill:none;stroke-width:1.99255;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M -0.0008125 -0.00034375 C 37.796062 56.694969 94.487469 75.593406 170.081219 56.694969 " transform="matrix(1,0,0,-1,11.493,97.027)"/>
|
|
21
|
+</g>
|
|
22
|
+</g>
|
|
23
|
+</svg> |
freetype2/docs/glyphs/outlines-3.svg
|
1
|
+<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="193.06pt" height="108.52pt" viewBox="0 0 193.06 108.52" version="1.1">
|
|
3
|
+<defs>
|
|
4
|
+<clipPath id="clip1">
|
|
5
|
+ <path d="M 0 29 L 53 29 L 53 108.519531 L 0 108.519531 Z M 0 29 "/>
|
|
6
|
+</clipPath>
|
|
7
|
+<clipPath id="clip2">
|
|
8
|
+ <path d="M 0 1 L 193.058594 1 L 193.058594 108.519531 L 0 108.519531 Z M 0 1 "/>
|
|
9
|
+</clipPath>
|
|
10
|
+</defs>
|
|
11
|
+<g id="surface1">
|
|
12
|
+<path style=" stroke:none;fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;" d="M 8.503906 100.015625 L 14.480469 100.015625 L 14.480469 94.039062 L 8.503906 94.039062 Z M 8.503906 100.015625 "/>
|
|
13
|
+<path style="fill:none;stroke-width:0.99628;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 31.335125 56.694969 C 31.335125 58.343406 29.999187 59.68325 28.346844 59.68325 C 26.6945 59.68325 25.358562 58.343406 25.358562 56.694969 C 25.358562 55.042625 26.6945 53.706687 28.346844 53.706687 C 29.999187 53.706687 31.335125 55.042625 31.335125 56.694969 Z M 31.335125 56.694969 " transform="matrix(1,0,0,-1,11.493,97.027)"/>
|
|
14
|
+<path style="fill:none;stroke-width:0.99628;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 116.374188 85.038719 C 116.374188 86.691062 115.03825 88.030906 113.385906 88.030906 C 111.737469 88.030906 110.397625 86.691062 110.397625 85.038719 C 110.397625 83.390281 111.737469 82.050437 113.385906 82.050437 C 115.03825 82.050437 116.374188 83.390281 116.374188 85.038719 Z M 116.374188 85.038719 " transform="matrix(1,0,0,-1,11.493,97.027)"/>
|
|
15
|
+<path style=" stroke:none;fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;" d="M 178.585938 43.320312 L 184.5625 43.320312 L 184.5625 37.34375 L 178.585938 37.34375 Z M 178.585938 43.320312 "/>
|
|
16
|
+<g clip-path="url(#clip1)" clip-rule="nonzero">
|
|
17
|
+<path style="fill:none;stroke-width:0.99628;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-dasharray:5.97766,6.65242;stroke-miterlimit:10;" d="M 1.495281 2.987937 L 26.78825 53.573875 " transform="matrix(1,0,0,-1,11.493,97.027)"/>
|
|
18
|
+</g>
|
|
19
|
+<path style="fill:none;stroke-width:0.99628;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-dasharray:5.97766,6.80266;stroke-miterlimit:10;" d="M 31.655437 57.796531 L 110.081219 83.937156 " transform="matrix(1,0,0,-1,11.493,97.027)"/>
|
|
20
|
+<path style="fill:none;stroke-width:0.99628;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-dasharray:5.97766,6.65239;stroke-miterlimit:10;" d="M 116.507 83.480125 L 167.092938 58.187156 " transform="matrix(1,0,0,-1,11.493,97.027)"/>
|
|
21
|
+<g clip-path="url(#clip2)" clip-rule="nonzero">
|
|
22
|
+<path style="fill:none;stroke-width:1.99255;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M -0.0008125 -0.00034375 C 28.346844 56.694969 113.385906 85.038719 170.081219 56.694969 " transform="matrix(1,0,0,-1,11.493,97.027)"/>
|
|
23
|
+</g>
|
|
24
|
+</g>
|
|
25
|
+</svg> |
freetype2/docs/glyphs/outlines-4.svg
|
1
|
+<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="193.06pt" height="80.67pt" viewBox="0 0 193.06 80.67" version="1.1">
|
|
3
|
+<defs>
|
|
4
|
+<clipPath id="clip1">
|
|
5
|
+ <path d="M 136 51 L 171 51 L 171 80.671875 L 136 80.671875 Z M 136 51 "/>
|
|
6
|
+</clipPath>
|
|
7
|
+<clipPath id="clip2">
|
|
8
|
+ <path d="M 82 26 L 165 26 L 165 80.671875 L 82 80.671875 Z M 82 26 "/>
|
|
9
|
+</clipPath>
|
|
10
|
+<clipPath id="clip3">
|
|
11
|
+ <path d="M 140 0 L 193.058594 0 L 193.058594 80 L 140 80 Z M 140 0 "/>
|
|
12
|
+</clipPath>
|
|
13
|
+<clipPath id="clip4">
|
|
14
|
+ <path d="M 0 2 L 125 2 L 125 80.671875 L 0 80.671875 Z M 0 2 "/>
|
|
15
|
+</clipPath>
|
|
16
|
+<clipPath id="clip5">
|
|
17
|
+ <path d="M 68 0 L 193.058594 0 L 193.058594 78 L 68 78 Z M 68 0 "/>
|
|
18
|
+</clipPath>
|
|
19
|
+</defs>
|
|
20
|
+<g id="surface1">
|
|
21
|
+<path style=" stroke:none;fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;" d="M 8.503906 71.667969 L 14.480469 71.667969 L 14.480469 65.691406 L 8.503906 65.691406 Z M 8.503906 71.667969 "/>
|
|
22
|
+<path style="fill:none;stroke-width:0.99628;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 31.335125 56.694625 C 31.335125 58.343062 29.999187 59.682906 28.346844 59.682906 C 26.6945 59.682906 25.358562 58.343062 25.358562 56.694625 C 25.358562 55.042281 26.6945 53.706344 28.346844 53.706344 C 29.999187 53.706344 31.335125 55.042281 31.335125 56.694625 Z M 31.335125 56.694625 " transform="matrix(1,0,0,-1,11.493,68.679)"/>
|
|
23
|
+<g clip-path="url(#clip1)" clip-rule="nonzero">
|
|
24
|
+<path style="fill:none;stroke-width:0.99628;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 144.721844 -0.0006875 C 144.721844 1.651656 143.385906 2.987594 141.733563 2.987594 C 140.085125 2.987594 138.745281 1.651656 138.745281 -0.0006875 C 138.745281 -1.649125 140.085125 -2.988969 141.733563 -2.988969 C 143.385906 -2.988969 144.721844 -1.649125 144.721844 -0.0006875 Z M 144.721844 -0.0006875 " transform="matrix(1,0,0,-1,11.493,68.679)"/>
|
|
25
|
+</g>
|
|
26
|
+<path style=" stroke:none;fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;" d="M 178.585938 14.972656 L 184.5625 14.972656 L 184.5625 8.996094 L 178.585938 8.996094 Z M 178.585938 14.972656 "/>
|
|
27
|
+<path style="fill:none;stroke-width:0.99628;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-dasharray:5.97766,6.65242;stroke-miterlimit:10;" d="M 1.495281 2.987594 L 26.78825 53.573531 " transform="matrix(1,0,0,-1,11.493,68.679)"/>
|
|
28
|
+<path style="fill:none;stroke-width:0.99628;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-dasharray:5.97766,7.48592;stroke-miterlimit:10;" d="M 31.464031 55.136031 L 85.042156 28.346969 " transform="matrix(1,0,0,-1,11.493,68.679)"/>
|
|
29
|
+<g clip-path="url(#clip2)" clip-rule="nonzero">
|
|
30
|
+<path style="fill:none;stroke-width:0.99628;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-dasharray:5.97766,7.48593;stroke-miterlimit:10;" d="M 85.042156 28.346969 L 138.616375 1.557906 " transform="matrix(1,0,0,-1,11.493,68.679)"/>
|
|
31
|
+</g>
|
|
32
|
+<g clip-path="url(#clip3)" clip-rule="nonzero">
|
|
33
|
+<path style="fill:none;stroke-width:0.99628;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-dasharray:5.97766,6.65239;stroke-miterlimit:10;" d="M 143.292156 3.120406 L 168.589031 53.706344 " transform="matrix(1,0,0,-1,11.493,68.679)"/>
|
|
34
|
+</g>
|
|
35
|
+<g clip-path="url(#clip4)" clip-rule="nonzero">
|
|
36
|
+<path style="fill:none;stroke-width:1.99255;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M -0.0008125 -0.0006875 C 18.897625 37.796187 47.245281 47.245406 85.042156 28.346969 " transform="matrix(1,0,0,-1,11.493,68.679)"/>
|
|
37
|
+</g>
|
|
38
|
+<g clip-path="url(#clip5)" clip-rule="nonzero">
|
|
39
|
+<path style="fill:none;stroke-width:1.99255;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 85.042156 28.346969 C 122.835125 9.448531 151.182781 18.89775 170.081219 56.694625 " transform="matrix(1,0,0,-1,11.493,68.679)"/>
|
|
40
|
+</g>
|
|
41
|
+<path style="fill-rule:nonzero;fill:rgb(100%,100%,100%);fill-opacity:1;stroke-width:0.99628;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 82.049969 25.358687 L 88.030438 25.358687 L 88.030438 31.33525 L 82.049969 31.33525 Z M 82.049969 25.358687 " transform="matrix(1,0,0,-1,11.493,68.679)"/>
|
|
42
|
+</g>
|
|
43
|
+</svg> |
freetype2/docs/glyphs/outlines-5.svg
|
1
|
+<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="193.06pt" height="207.87pt" viewBox="0 0 193.06 207.87" version="1.1">
|
|
3
|
+<defs>
|
|
4
|
+<g>
|
|
5
|
+<symbol overflow="visible" id="glyph0-0">
|
|
6
|
+<path style="stroke:none;" d="M 0 0 L 7.171875 0 L 7.171875 -10.046875 L 0 -10.046875 Z M 1.140625 -0.71875 L 3.578125 -4.375 L 6.03125 -0.71875 Z M 0.71875 -8.671875 L 3.15625 -5.015625 L 0.71875 -1.359375 Z M 4.015625 -5.015625 L 6.453125 -8.671875 L 6.453125 -1.359375 Z M 3.578125 -5.671875 L 1.140625 -9.328125 L 6.03125 -9.328125 Z M 3.578125 -5.671875 "/>
|
|
7
|
+</symbol>
|
|
8
|
+<symbol overflow="visible" id="glyph0-1">
|
|
9
|
+<path style="stroke:none;" d="M 3 0.140625 C 4.03125 0.140625 4.96875 -0.609375 5.65625 -1.5625 C 5.609375 -1.703125 5.46875 -1.8125 5.328125 -1.8125 C 4.78125 -1.171875 4.203125 -0.703125 3.4375 -0.703125 C 3.203125 -0.703125 2.921875 -0.765625 2.71875 -1.03125 C 2.515625 -1.3125 2.359375 -1.59375 2.359375 -2.453125 C 2.359375 -4.59375 3.375 -5.859375 4.46875 -5.859375 C 4.671875 -5.859375 5.078125 -5.78125 5.078125 -5.3125 C 5.078125 -5.21875 5.046875 -5.109375 5 -5.03125 C 4.96875 -4.984375 4.9375 -4.8125 4.9375 -4.734375 C 4.9375 -4.5 5.078125 -4.28125 5.328125 -4.28125 C 5.703125 -4.28125 6.0625 -4.5625 6.0625 -4.921875 C 6.0625 -5.484375 6.03125 -6.296875 4.453125 -6.296875 C 3.890625 -6.296875 2.96875 -5.921875 2.359375 -5.296875 C 1.65625 -4.53125 1.1875 -3.421875 1.1875 -2.140625 C 1.1875 -1.65625 1.296875 -1.015625 1.625 -0.546875 C 1.921875 -0.125 2.40625 0.140625 3 0.140625 Z M 3 0.140625 "/>
|
|
10
|
+</symbol>
|
|
11
|
+<symbol overflow="visible" id="glyph0-2">
|
|
12
|
+<path style="stroke:none;" d="M 4.09375 -8.359375 C 4.296875 -9.296875 4.453125 -9.875 4.453125 -9.875 C 4.453125 -9.96875 4.40625 -10.015625 4.28125 -10.015625 C 3.890625 -9.875 2.859375 -9.6875 2.265625 -9.640625 L 2.21875 -9.296875 C 2.21875 -9.25 2.234375 -9.21875 2.296875 -9.21875 L 2.734375 -9.1875 C 2.921875 -9.1875 3.046875 -9.109375 3.046875 -8.796875 C 3.046875 -8.640625 3.015625 -8.390625 2.9375 -8.078125 L 1.46875 -1.515625 C 1.265625 -0.625 1.640625 0.140625 2.921875 0.140625 C 3.375 0.140625 3.9375 -0.046875 4.4375 -0.390625 C 5.734375 -1.296875 7.0625 -3.125 7.0625 -4.59375 C 7.0625 -5.5625 6.859375 -6.296875 5.546875 -6.296875 C 4.5625 -6.296875 3.828125 -5.390625 3.328125 -4.8125 L 3.296875 -4.8125 Z M 5.875 -4.3125 C 5.875 -2.234375 4.09375 -0.359375 3 -0.359375 C 2.484375 -0.359375 2.390625 -0.921875 2.625 -1.890625 L 3.109375 -3.953125 C 3.78125 -4.75 4.4375 -5.625 5.125 -5.625 C 5.546875 -5.625 5.875 -5.296875 5.875 -4.3125 Z M 5.875 -4.3125 "/>
|
|
13
|
+</symbol>
|
|
14
|
+<symbol overflow="visible" id="glyph0-3">
|
|
15
|
+<path style="stroke:none;" d="M 1.125 -2.328125 C 1.125 -1.5625 1.3125 0.140625 3.125 0.140625 C 3.578125 0.140625 4.03125 0.09375 4.453125 -0.125 C 5.6875 -0.765625 6.671875 -2.28125 6.671875 -3.96875 C 6.671875 -5 6.40625 -6.296875 4.640625 -6.296875 C 2.25 -6.296875 1.125 -4.046875 1.125 -2.328125 Z M 2.3125 -2.4375 C 2.3125 -3.734375 2.875 -5.828125 4.390625 -5.828125 C 4.8125 -5.828125 5.046875 -5.59375 5.265625 -5.1875 C 5.4375 -4.828125 5.484375 -4.296875 5.484375 -3.875 C 5.484375 -3.296875 5.390625 -2.0625 4.859375 -1.265625 C 4.453125 -0.640625 3.890625 -0.390625 3.34375 -0.390625 C 2.921875 -0.390625 2.3125 -0.9375 2.3125 -2.4375 Z M 2.3125 -2.4375 "/>
|
|
16
|
+</symbol>
|
|
17
|
+<symbol overflow="visible" id="glyph0-4">
|
|
18
|
+<path style="stroke:none;" d="M 3.078125 -4.4375 L 3.59375 -3.03125 L 2.25 -1.046875 C 2.109375 -0.828125 1.953125 -0.78125 1.84375 -0.78125 C 1.734375 -0.78125 1.578125 -0.796875 1.46875 -0.859375 C 1.328125 -0.921875 1.1875 -0.953125 1.046875 -0.953125 C 0.734375 -0.953125 0.5 -0.71875 0.5 -0.40625 C 0.5 -0.03125 1 0.140625 1.328125 0.140625 C 1.828125 0.140625 2.171875 -0.078125 2.796875 -0.96875 L 3.796875 -2.40625 L 4.34375 -0.65625 C 4.53125 -0.09375 4.671875 0.140625 5.15625 0.140625 C 5.671875 0.140625 6.296875 -0.125 6.734375 -0.875 C 6.6875 -1 6.5625 -1.125 6.390625 -1.140625 C 6.03125 -0.671875 5.84375 -0.5625 5.6875 -0.5625 C 5.546875 -0.5625 5.453125 -0.75 5.328125 -1.09375 L 4.5625 -3.40625 L 5.65625 -5 C 5.875 -5.328125 6.21875 -5.390625 6.328125 -5.390625 C 6.4375 -5.390625 6.625 -5.34375 6.75 -5.25 C 6.859375 -5.15625 7.078125 -5.109375 7.234375 -5.109375 C 7.4375 -5.109375 7.6875 -5.390625 7.6875 -5.71875 C 7.6875 -6.078125 7.296875 -6.296875 6.96875 -6.296875 C 6.25 -6.296875 5.78125 -6.046875 5.078125 -5.03125 L 4.359375 -4 L 3.953125 -5.265625 C 3.71875 -6.015625 3.5625 -6.296875 3.203125 -6.296875 C 2.875 -6.296875 1.8125 -5.703125 1.3125 -5.328125 C 1.3125 -5.171875 1.375 -5 1.484375 -4.890625 C 1.65625 -4.984375 2.140625 -5.203125 2.4375 -5.203125 C 2.625 -5.203125 2.765625 -5.15625 2.84375 -5.03125 C 2.890625 -4.921875 3 -4.6875 3.078125 -4.4375 Z M 3.078125 -4.4375 "/>
|
|
19
|
+</symbol>
|
|
20
|
+</g>
|
|
21
|
+<clipPath id="clip1">
|
|
22
|
+ <path d="M 79 178 L 114 178 L 114 207.871094 L 79 207.871094 Z M 79 178 "/>
|
|
23
|
+</clipPath>
|
|
24
|
+<clipPath id="clip2">
|
|
25
|
+ <path d="M 0 99 L 109 99 L 109 207.871094 L 0 207.871094 Z M 0 99 "/>
|
|
26
|
+</clipPath>
|
|
27
|
+<clipPath id="clip3">
|
|
28
|
+ <path d="M 84 99 L 193 99 L 193 207.871094 L 84 207.871094 Z M 84 99 "/>
|
|
29
|
+</clipPath>
|
|
30
|
+<clipPath id="clip4">
|
|
31
|
+ <path d="M 0 40 L 193.058594 40 L 193.058594 140 L 0 140 Z M 0 40 "/>
|
|
32
|
+</clipPath>
|
|
33
|
+<clipPath id="clip5">
|
|
34
|
+ <path d="M 0 82 L 193.058594 82 L 193.058594 182 L 0 182 Z M 0 82 "/>
|
|
35
|
+</clipPath>
|
|
36
|
+</defs>
|
|
37
|
+<g id="surface1">
|
|
38
|
+<path style=" stroke:none;fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;" d="M 8.503906 113.828125 L 14.480469 113.828125 L 14.480469 107.851562 L 8.503906 107.851562 Z M 8.503906 113.828125 "/>
|
|
39
|
+<path style="fill:none;stroke-width:0.99628;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 88.030438 85.039219 C 88.030438 86.691563 86.690594 88.0275 85.042156 88.0275 C 83.389813 88.0275 82.049969 86.691563 82.049969 85.039219 C 82.049969 83.390781 83.389813 82.050938 85.042156 82.050938 C 86.690594 82.050938 88.030438 83.390781 88.030438 85.039219 Z M 88.030438 85.039219 " transform="matrix(1,0,0,-1,11.493,110.84)"/>
|
|
40
|
+<g clip-path="url(#clip1)" clip-rule="nonzero">
|
|
41
|
+<path style="fill:none;stroke-width:0.99628;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 88.030438 -85.038906 C 88.030438 -83.390469 86.690594 -82.050625 85.042156 -82.050625 C 83.389813 -82.050625 82.049969 -83.390469 82.049969 -85.038906 C 82.049969 -86.69125 83.389813 -88.031094 85.042156 -88.031094 C 86.690594 -88.031094 88.030438 -86.69125 88.030438 -85.038906 Z M 88.030438 -85.038906 " transform="matrix(1,0,0,-1,11.493,110.84)"/>
|
|
42
|
+</g>
|
|
43
|
+<path style=" stroke:none;fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;" d="M 178.585938 113.828125 L 184.5625 113.828125 L 184.5625 107.851562 L 178.585938 107.851562 Z M 178.585938 113.828125 "/>
|
|
44
|
+<path style="fill:none;stroke-width:0.99628;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-dasharray:5.97766,7.33257;stroke-miterlimit:10;" d="M 2.987469 2.988438 L 82.573406 82.574375 " transform="matrix(1,0,0,-1,11.493,110.84)"/>
|
|
45
|
+<path style="fill:none;stroke-width:0.99628;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-dasharray:5.97766,7.33263;stroke-miterlimit:10;" d="M 87.507 82.574375 L 167.096844 2.988438 " transform="matrix(1,0,0,-1,11.493,110.84)"/>
|
|
46
|
+<g clip-path="url(#clip2)" clip-rule="nonzero">
|
|
47
|
+<path style="fill:none;stroke-width:0.99628;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-dasharray:5.97766,7.33257;stroke-miterlimit:10;" d="M 2.987469 -2.988125 L 82.573406 -82.574062 " transform="matrix(1,0,0,-1,11.493,110.84)"/>
|
|
48
|
+</g>
|
|
49
|
+<g clip-path="url(#clip3)" clip-rule="nonzero">
|
|
50
|
+<path style="fill:none;stroke-width:0.99628;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-dasharray:5.97766,7.33263;stroke-miterlimit:10;" d="M 87.507 -82.574062 L 167.096844 -2.988125 " transform="matrix(1,0,0,-1,11.493,110.84)"/>
|
|
51
|
+</g>
|
|
52
|
+<g clip-path="url(#clip4)" clip-rule="nonzero">
|
|
53
|
+<path style="fill:none;stroke-width:1.99255;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M -0.0008125 0.00015625 C 56.6945 56.695469 113.385906 56.695469 170.081219 0.00015625 " transform="matrix(1,0,0,-1,11.493,110.84)"/>
|
|
54
|
+</g>
|
|
55
|
+<g clip-path="url(#clip5)" clip-rule="nonzero">
|
|
56
|
+<path style="fill:none;stroke-width:1.99255;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M -0.0008125 0.00015625 C 56.6945 -56.695156 113.385906 -56.695156 170.081219 0.00015625 " transform="matrix(1,0,0,-1,11.493,110.84)"/>
|
|
57
|
+</g>
|
|
58
|
+<path style="fill:none;stroke-width:0.99628;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-dasharray:2.98883,3.09291;stroke-miterlimit:10;" d="M -0.0008125 2.988438 L -0.0008125 85.039219 " transform="matrix(1,0,0,-1,11.493,110.84)"/>
|
|
59
|
+<path style="fill:none;stroke-width:0.99628;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-dasharray:2.98883,3.05458;stroke-miterlimit:10;" d="M -0.0008125 85.039219 L 81.553875 85.039219 " transform="matrix(1,0,0,-1,11.493,110.84)"/>
|
|
60
|
+<path style="fill:none;stroke-width:0.99628;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-dasharray:2.98883,3.05458;stroke-miterlimit:10;" d="M 88.526531 85.039219 L 170.081219 85.039219 " transform="matrix(1,0,0,-1,11.493,110.84)"/>
|
|
61
|
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
|
|
62
|
+ <use xlink:href="">"#glyph0-1" x="152.409" y="21.837"/>
|
|
63
|
+ <use xlink:href="">"#glyph0-2" x="157.989672" y="21.837"/>
|
|
64
|
+</g>
|
|
65
|
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
|
|
66
|
+ <use xlink:href="">"#glyph0-3" x="164.976271" y="21.837"/>
|
|
67
|
+</g>
|
|
68
|
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
|
|
69
|
+ <use xlink:href="">"#glyph0-4" x="171.302945" y="21.837"/>
|
|
70
|
+</g>
|
|
71
|
+<path style="fill:none;stroke-width:0.99628;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-dasharray:2.98883,3.09291;stroke-miterlimit:10;" d="M 170.081219 85.039219 L 170.081219 2.988438 " transform="matrix(1,0,0,-1,11.493,110.84)"/>
|
|
72
|
+<path style="fill:none;stroke-width:0.99628;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-dasharray:2.98883,3.09291;stroke-miterlimit:10;" d="M -0.0008125 -2.988125 L -0.0008125 -85.038906 " transform="matrix(1,0,0,-1,11.493,110.84)"/>
|
|
73
|
+<path style="fill:none;stroke-width:0.99628;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-dasharray:2.98883,3.05458;stroke-miterlimit:10;" d="M -0.0008125 -85.038906 L 81.553875 -85.038906 " transform="matrix(1,0,0,-1,11.493,110.84)"/>
|
|
74
|
+<path style="fill:none;stroke-width:0.99628;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-dasharray:2.98883,3.05458;stroke-miterlimit:10;" d="M 88.526531 -85.038906 L 170.081219 -85.038906 " transform="matrix(1,0,0,-1,11.493,110.84)"/>
|
|
75
|
+<path style="fill:none;stroke-width:0.99628;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-dasharray:2.98883,3.09291;stroke-miterlimit:10;" d="M 170.081219 -85.038906 L 170.081219 -2.988125 " transform="matrix(1,0,0,-1,11.493,110.84)"/>
|
|
76
|
+<path style="fill:none;stroke-width:0.99628;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-dasharray:2.98883,3.19975;stroke-miterlimit:10;" d="M -0.0008125 42.519688 L 170.081219 42.519688 " transform="matrix(1,0,0,-1,11.493,110.84)"/>
|
|
77
|
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
|
|
78
|
+ <use xlink:href="">"#glyph0-2" x="15.009" y="64.357"/>
|
|
79
|
+ <use xlink:href="">"#glyph0-2" x="21.866484" y="64.357"/>
|
|
80
|
+</g>
|
|
81
|
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
|
|
82
|
+ <use xlink:href="">"#glyph0-3" x="28.853083" y="64.357"/>
|
|
83
|
+</g>
|
|
84
|
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
|
|
85
|
+ <use xlink:href="">"#glyph0-4" x="35.179757" y="64.357"/>
|
|
86
|
+</g>
|
|
87
|
+<path style="fill:none;stroke-width:0.99628;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-dasharray:2.98883,3.19975;stroke-miterlimit:10;" d="M -0.0008125 -42.519375 L 170.081219 -42.519375 " transform="matrix(1,0,0,-1,11.493,110.84)"/>
|
|
88
|
+</g>
|
|
89
|
+</svg> |
freetype2/docs/glyphs/outlines-6.svg
|
1
|
+<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="193.06pt" height="125.66pt" viewBox="0 0 193.06 125.66" version="1.1">
|
|
3
|
+<defs>
|
|
4
|
+<g>
|
|
5
|
+<symbol overflow="visible" id="glyph0-0">
|
|
6
|
+<path style="stroke:none;" d="M 0 0 L 7.171875 0 L 7.171875 -10.046875 L 0 -10.046875 Z M 1.140625 -0.71875 L 3.578125 -4.375 L 6.03125 -0.71875 Z M 0.71875 -8.671875 L 3.15625 -5.015625 L 0.71875 -1.359375 Z M 4.015625 -5.015625 L 6.453125 -8.671875 L 6.453125 -1.359375 Z M 3.578125 -5.671875 L 1.140625 -9.328125 L 6.03125 -9.328125 Z M 3.578125 -5.671875 "/>
|
|
7
|
+</symbol>
|
|
8
|
+<symbol overflow="visible" id="glyph0-1">
|
|
9
|
+<path style="stroke:none;" d="M 3 0.140625 C 4.03125 0.140625 4.96875 -0.609375 5.65625 -1.5625 C 5.609375 -1.703125 5.46875 -1.8125 5.328125 -1.8125 C 4.78125 -1.171875 4.203125 -0.703125 3.4375 -0.703125 C 3.203125 -0.703125 2.921875 -0.765625 2.71875 -1.03125 C 2.515625 -1.3125 2.359375 -1.59375 2.359375 -2.453125 C 2.359375 -4.59375 3.375 -5.859375 4.46875 -5.859375 C 4.671875 -5.859375 5.078125 -5.78125 5.078125 -5.3125 C 5.078125 -5.21875 5.046875 -5.109375 5 -5.03125 C 4.96875 -4.984375 4.9375 -4.8125 4.9375 -4.734375 C 4.9375 -4.5 5.078125 -4.28125 5.328125 -4.28125 C 5.703125 -4.28125 6.0625 -4.5625 6.0625 -4.921875 C 6.0625 -5.484375 6.03125 -6.296875 4.453125 -6.296875 C 3.890625 -6.296875 2.96875 -5.921875 2.359375 -5.296875 C 1.65625 -4.53125 1.1875 -3.421875 1.1875 -2.140625 C 1.1875 -1.65625 1.296875 -1.015625 1.625 -0.546875 C 1.921875 -0.125 2.40625 0.140625 3 0.140625 Z M 3 0.140625 "/>
|
|
10
|
+</symbol>
|
|
11
|
+<symbol overflow="visible" id="glyph0-2">
|
|
12
|
+<path style="stroke:none;" d="M 4.09375 -8.359375 C 4.296875 -9.296875 4.453125 -9.875 4.453125 -9.875 C 4.453125 -9.96875 4.40625 -10.015625 4.28125 -10.015625 C 3.890625 -9.875 2.859375 -9.6875 2.265625 -9.640625 L 2.21875 -9.296875 C 2.21875 -9.25 2.234375 -9.21875 2.296875 -9.21875 L 2.734375 -9.1875 C 2.921875 -9.1875 3.046875 -9.109375 3.046875 -8.796875 C 3.046875 -8.640625 3.015625 -8.390625 2.9375 -8.078125 L 1.46875 -1.515625 C 1.265625 -0.625 1.640625 0.140625 2.921875 0.140625 C 3.375 0.140625 3.9375 -0.046875 4.4375 -0.390625 C 5.734375 -1.296875 7.0625 -3.125 7.0625 -4.59375 C 7.0625 -5.5625 6.859375 -6.296875 5.546875 -6.296875 C 4.5625 -6.296875 3.828125 -5.390625 3.328125 -4.8125 L 3.296875 -4.8125 Z M 5.875 -4.3125 C 5.875 -2.234375 4.09375 -0.359375 3 -0.359375 C 2.484375 -0.359375 2.390625 -0.921875 2.625 -1.890625 L 3.109375 -3.953125 C 3.78125 -4.75 4.4375 -5.625 5.125 -5.625 C 5.546875 -5.625 5.875 -5.296875 5.875 -4.3125 Z M 5.875 -4.3125 "/>
|
|
13
|
+</symbol>
|
|
14
|
+<symbol overflow="visible" id="glyph0-3">
|
|
15
|
+<path style="stroke:none;" d="M 1.125 -2.328125 C 1.125 -1.5625 1.3125 0.140625 3.125 0.140625 C 3.578125 0.140625 4.03125 0.09375 4.453125 -0.125 C 5.6875 -0.765625 6.671875 -2.28125 6.671875 -3.96875 C 6.671875 -5 6.40625 -6.296875 4.640625 -6.296875 C 2.25 -6.296875 1.125 -4.046875 1.125 -2.328125 Z M 2.3125 -2.4375 C 2.3125 -3.734375 2.875 -5.828125 4.390625 -5.828125 C 4.8125 -5.828125 5.046875 -5.59375 5.265625 -5.1875 C 5.4375 -4.828125 5.484375 -4.296875 5.484375 -3.875 C 5.484375 -3.296875 5.390625 -2.0625 4.859375 -1.265625 C 4.453125 -0.640625 3.890625 -0.390625 3.34375 -0.390625 C 2.921875 -0.390625 2.3125 -0.9375 2.3125 -2.4375 Z M 2.3125 -2.4375 "/>
|
|
16
|
+</symbol>
|
|
17
|
+<symbol overflow="visible" id="glyph0-4">
|
|
18
|
+<path style="stroke:none;" d="M 3.078125 -4.4375 L 3.59375 -3.03125 L 2.25 -1.046875 C 2.109375 -0.828125 1.953125 -0.78125 1.84375 -0.78125 C 1.734375 -0.78125 1.578125 -0.796875 1.46875 -0.859375 C 1.328125 -0.921875 1.1875 -0.953125 1.046875 -0.953125 C 0.734375 -0.953125 0.5 -0.71875 0.5 -0.40625 C 0.5 -0.03125 1 0.140625 1.328125 0.140625 C 1.828125 0.140625 2.171875 -0.078125 2.796875 -0.96875 L 3.796875 -2.40625 L 4.34375 -0.65625 C 4.53125 -0.09375 4.671875 0.140625 5.15625 0.140625 C 5.671875 0.140625 6.296875 -0.125 6.734375 -0.875 C 6.6875 -1 6.5625 -1.125 6.390625 -1.140625 C 6.03125 -0.671875 5.84375 -0.5625 5.6875 -0.5625 C 5.546875 -0.5625 5.453125 -0.75 5.328125 -1.09375 L 4.5625 -3.40625 L 5.65625 -5 C 5.875 -5.328125 6.21875 -5.390625 6.328125 -5.390625 C 6.4375 -5.390625 6.625 -5.34375 6.75 -5.25 C 6.859375 -5.15625 7.078125 -5.109375 7.234375 -5.109375 C 7.4375 -5.109375 7.6875 -5.390625 7.6875 -5.71875 C 7.6875 -6.078125 7.296875 -6.296875 6.96875 -6.296875 C 6.25 -6.296875 5.78125 -6.046875 5.078125 -5.03125 L 4.359375 -4 L 3.953125 -5.265625 C 3.71875 -6.015625 3.5625 -6.296875 3.203125 -6.296875 C 2.875 -6.296875 1.8125 -5.703125 1.3125 -5.328125 C 1.3125 -5.171875 1.375 -5 1.484375 -4.890625 C 1.65625 -4.984375 2.140625 -5.203125 2.4375 -5.203125 C 2.625 -5.203125 2.765625 -5.15625 2.84375 -5.03125 C 2.890625 -4.921875 3 -4.6875 3.078125 -4.4375 Z M 3.078125 -4.4375 "/>
|
|
19
|
+</symbol>
|
|
20
|
+<symbol overflow="visible" id="glyph0-5">
|
|
21
|
+<path style="stroke:none;" d="M 7.109375 -2.765625 L 1.4375 -2.765625 L 1.3125 -2.0625 L 6.984375 -2.0625 Z M 7.4375 -4.5625 L 1.75 -4.5625 L 1.625 -3.859375 L 7.296875 -3.859375 Z M 7.4375 -4.5625 "/>
|
|
22
|
+</symbol>
|
|
23
|
+</g>
|
|
24
|
+<clipPath id="clip1">
|
|
25
|
+ <path d="M 36 96 L 72 96 L 72 125.660156 L 36 125.660156 Z M 36 96 "/>
|
|
26
|
+</clipPath>
|
|
27
|
+<clipPath id="clip2">
|
|
28
|
+ <path d="M 121 96 L 157 96 L 157 125.660156 L 121 125.660156 Z M 121 96 "/>
|
|
29
|
+</clipPath>
|
|
30
|
+<clipPath id="clip3">
|
|
31
|
+ <path d="M 68 0 L 193.058594 0 L 193.058594 100 L 68 100 Z M 68 0 "/>
|
|
32
|
+</clipPath>
|
|
33
|
+<clipPath id="clip4">
|
|
34
|
+ <path d="M 0 42 L 125 42 L 125 125.660156 L 0 125.660156 Z M 0 42 "/>
|
|
35
|
+</clipPath>
|
|
36
|
+<clipPath id="clip5">
|
|
37
|
+ <path d="M 68 42 L 193.058594 42 L 193.058594 125.660156 L 68 125.660156 Z M 68 42 "/>
|
|
38
|
+</clipPath>
|
|
39
|
+<clipPath id="clip6">
|
|
40
|
+ <path d="M 0 60 L 66 60 L 66 125.660156 L 0 125.660156 Z M 0 60 "/>
|
|
41
|
+</clipPath>
|
|
42
|
+<clipPath id="clip7">
|
|
43
|
+ <path d="M 127 60 L 193 60 L 193 125.660156 L 127 125.660156 Z M 127 60 "/>
|
|
44
|
+</clipPath>
|
|
45
|
+</defs>
|
|
46
|
+<g id="surface1">
|
|
47
|
+<path style=" stroke:none;fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;" d="M 8.503906 74.136719 L 14.480469 74.136719 L 14.480469 68.160156 L 8.503906 68.160156 Z M 8.503906 74.136719 "/>
|
|
48
|
+<path style=" stroke:none;fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;" d="M 178.585938 74.136719 L 184.5625 74.136719 L 184.5625 68.160156 L 178.585938 68.160156 Z M 178.585938 74.136719 "/>
|
|
49
|
+<path style="fill:none;stroke-width:0.99628;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 45.510906 42.520094 C 45.510906 44.172437 44.171062 45.508375 42.518719 45.508375 C 40.870281 45.508375 39.530437 44.172437 39.530437 42.520094 C 39.530437 40.86775 40.870281 39.531812 42.518719 39.531812 C 44.171062 39.531812 45.510906 40.86775 45.510906 42.520094 Z M 45.510906 42.520094 " transform="matrix(1,0,0,-1,11.493,71.149)"/>
|
|
50
|
+<path style="fill:none;stroke-width:0.99628;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 130.549969 42.520094 C 130.549969 44.172437 129.210125 45.508375 127.561688 45.508375 C 125.909344 45.508375 124.573406 44.172437 124.573406 42.520094 C 124.573406 40.86775 125.909344 39.531812 127.561688 39.531812 C 129.210125 39.531812 130.549969 40.86775 130.549969 42.520094 Z M 130.549969 42.520094 " transform="matrix(1,0,0,-1,11.493,71.149)"/>
|
|
51
|
+<path style=" stroke:none;fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;" d="M 93.542969 31.617188 L 99.523438 31.617188 L 99.523438 25.640625 L 93.542969 25.640625 Z M 93.542969 31.617188 "/>
|
|
52
|
+<g clip-path="url(#clip1)" clip-rule="nonzero">
|
|
53
|
+<path style="fill:none;stroke-width:0.99628;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 45.510906 -42.518969 C 45.510906 -40.870531 44.171062 -39.530688 42.518719 -39.530688 C 40.870281 -39.530688 39.530437 -40.870531 39.530437 -42.518969 C 39.530437 -44.171313 40.870281 -45.50725 42.518719 -45.50725 C 44.171062 -45.50725 45.510906 -44.171313 45.510906 -42.518969 Z M 45.510906 -42.518969 " transform="matrix(1,0,0,-1,11.493,71.149)"/>
|
|
54
|
+</g>
|
|
55
|
+<g clip-path="url(#clip2)" clip-rule="nonzero">
|
|
56
|
+<path style="fill:none;stroke-width:0.99628;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 130.549969 -42.518969 C 130.549969 -40.870531 129.210125 -39.530688 127.561688 -39.530688 C 125.909344 -39.530688 124.573406 -40.870531 124.573406 -42.518969 C 124.573406 -44.171313 125.909344 -45.50725 127.561688 -45.50725 C 129.210125 -45.50725 130.549969 -44.171313 130.549969 -42.518969 Z M 130.549969 -42.518969 " transform="matrix(1,0,0,-1,11.493,71.149)"/>
|
|
57
|
+</g>
|
|
58
|
+<path style=" stroke:none;fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;" d="M 93.542969 116.65625 L 99.523438 116.65625 L 99.523438 110.679688 L 93.542969 110.679688 Z M 93.542969 116.65625 "/>
|
|
59
|
+<path style="fill:none;stroke-width:1.99255;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M -0.0008125 0.0005625 C 28.346844 28.348219 56.6945 42.520094 85.042156 42.520094 " transform="matrix(1,0,0,-1,11.493,71.149)"/>
|
|
60
|
+<g clip-path="url(#clip3)" clip-rule="nonzero">
|
|
61
|
+<path style="fill:none;stroke-width:1.99255;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 85.042156 42.520094 C 113.385906 42.520094 141.733563 28.348219 170.081219 0.0005625 " transform="matrix(1,0,0,-1,11.493,71.149)"/>
|
|
62
|
+</g>
|
|
63
|
+<g clip-path="url(#clip4)" clip-rule="nonzero">
|
|
64
|
+<path style="fill:none;stroke-width:1.99255;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M -0.0008125 0.0005625 C 28.346844 -28.347094 56.6945 -42.518969 85.042156 -42.518969 " transform="matrix(1,0,0,-1,11.493,71.149)"/>
|
|
65
|
+</g>
|
|
66
|
+<g clip-path="url(#clip5)" clip-rule="nonzero">
|
|
67
|
+<path style="fill:none;stroke-width:1.99255;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 85.042156 -42.518969 C 113.385906 -42.518969 141.733563 -28.347094 170.081219 0.0005625 " transform="matrix(1,0,0,-1,11.493,71.149)"/>
|
|
68
|
+</g>
|
|
69
|
+<path style="fill:none;stroke-width:0.99628;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-dasharray:5.97766,9.4753;stroke-miterlimit:10;" d="M 2.987469 2.988844 L 40.053875 40.05525 " transform="matrix(1,0,0,-1,11.493,71.149)"/>
|
|
70
|
+<path style="fill:none;stroke-width:0.99628;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-dasharray:5.97766,9.05571;stroke-miterlimit:10;" d="M 46.007 42.520094 L 82.049969 42.520094 " transform="matrix(1,0,0,-1,11.493,71.149)"/>
|
|
71
|
+<path style="fill:none;stroke-width:0.99628;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-dasharray:5.97766,9.05571;stroke-miterlimit:10;" d="M 88.030438 42.520094 L 124.073406 42.520094 " transform="matrix(1,0,0,-1,11.493,71.149)"/>
|
|
72
|
+<path style="fill:none;stroke-width:0.99628;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-dasharray:5.97766,9.47574;stroke-miterlimit:10;" d="M 130.026531 40.05525 L 167.092938 2.988844 " transform="matrix(1,0,0,-1,11.493,71.149)"/>
|
|
73
|
+<g clip-path="url(#clip6)" clip-rule="nonzero">
|
|
74
|
+<path style="fill:none;stroke-width:0.99628;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-dasharray:5.97766,9.4753;stroke-miterlimit:10;" d="M 2.987469 -2.987719 L 40.053875 -40.054125 " transform="matrix(1,0,0,-1,11.493,71.149)"/>
|
|
75
|
+</g>
|
|
76
|
+<path style="fill:none;stroke-width:0.99628;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-dasharray:5.97766,9.05571;stroke-miterlimit:10;" d="M 46.007 -42.518969 L 82.049969 -42.518969 " transform="matrix(1,0,0,-1,11.493,71.149)"/>
|
|
77
|
+<path style="fill:none;stroke-width:0.99628;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-dasharray:5.97766,9.05571;stroke-miterlimit:10;" d="M 88.030438 -42.518969 L 124.073406 -42.518969 " transform="matrix(1,0,0,-1,11.493,71.149)"/>
|
|
78
|
+<g clip-path="url(#clip7)" clip-rule="nonzero">
|
|
79
|
+<path style="fill:none;stroke-width:0.99628;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-dasharray:5.97766,9.47574;stroke-miterlimit:10;" d="M 130.026531 -40.054125 L 167.092938 -2.987719 " transform="matrix(1,0,0,-1,11.493,71.149)"/>
|
|
80
|
+</g>
|
|
81
|
+<path style="fill:none;stroke-width:0.99628;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-dasharray:2.98883,3.10158;stroke-miterlimit:10;" d="M -0.0008125 2.988844 L -0.0008125 42.520094 " transform="matrix(1,0,0,-1,11.493,71.149)"/>
|
|
82
|
+<path style="fill:none;stroke-width:0.99628;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-dasharray:2.98883,3.01855;stroke-miterlimit:10;" d="M -0.0008125 42.520094 L 39.034344 42.520094 " transform="matrix(1,0,0,-1,11.493,71.149)"/>
|
|
83
|
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
|
|
84
|
+ <use xlink:href="">"#glyph0-1" x="12.909" y="21.832"/>
|
|
85
|
+ <use xlink:href="">"#glyph0-2" x="18.489672" y="21.832"/>
|
|
86
|
+</g>
|
|
87
|
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
|
|
88
|
+ <use xlink:href="">"#glyph0-3" x="25.476271" y="21.832"/>
|
|
89
|
+</g>
|
|
90
|
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
|
|
91
|
+ <use xlink:href="">"#glyph0-4" x="31.802945" y="21.832"/>
|
|
92
|
+</g>
|
|
93
|
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
|
|
94
|
+ <use xlink:href="">"#glyph0-5" x="42.189594" y="21.832"/>
|
|
95
|
+</g>
|
|
96
|
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
|
|
97
|
+ <use xlink:href="">"#glyph0-2" x="53.336592" y="21.832"/>
|
|
98
|
+ <use xlink:href="">"#glyph0-2" x="60.194075" y="21.832"/>
|
|
99
|
+</g>
|
|
100
|
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
|
|
101
|
+ <use xlink:href="">"#glyph0-3" x="67.195021" y="21.832"/>
|
|
102
|
+</g>
|
|
103
|
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
|
|
104
|
+ <use xlink:href="">"#glyph0-4" x="73.521695" y="21.832"/>
|
|
105
|
+</g>
|
|
106
|
+<path style="fill:none;stroke-width:0.99628;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-dasharray:2.98883,3.01855;stroke-miterlimit:10;" d="M 131.046063 42.520094 L 170.081219 42.520094 " transform="matrix(1,0,0,-1,11.493,71.149)"/>
|
|
107
|
+<path style="fill:none;stroke-width:0.99628;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-dasharray:2.98883,3.10158;stroke-miterlimit:10;" d="M 170.081219 42.520094 L 170.081219 2.988844 " transform="matrix(1,0,0,-1,11.493,71.149)"/>
|
|
108
|
+<path style="fill:none;stroke-width:0.99628;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-dasharray:2.98883,3.10158;stroke-miterlimit:10;" d="M -0.0008125 -2.987719 L -0.0008125 -42.518969 " transform="matrix(1,0,0,-1,11.493,71.149)"/>
|
|
109
|
+<path style="fill:none;stroke-width:0.99628;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-dasharray:2.98883,3.01855;stroke-miterlimit:10;" d="M -0.0008125 -42.518969 L 39.034344 -42.518969 " transform="matrix(1,0,0,-1,11.493,71.149)"/>
|
|
110
|
+<path style="fill:none;stroke-width:0.99628;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-dasharray:2.98883,3.01855;stroke-miterlimit:10;" d="M 131.046063 -42.518969 L 170.081219 -42.518969 " transform="matrix(1,0,0,-1,11.493,71.149)"/>
|
|
111
|
+<path style="fill:none;stroke-width:0.99628;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-dasharray:2.98883,3.10158;stroke-miterlimit:10;" d="M 170.081219 -42.518969 L 170.081219 -2.987719 " transform="matrix(1,0,0,-1,11.493,71.149)"/>
|
|
112
|
+</g>
|
|
113
|
+</svg> |
freetype2/docs/glyphs/outlines.tex
|
1
|
+% outlines.tex
|
|
2
|
+%
|
|
3
|
+% written 2022 by Werner Lemberg <wl@gnu.org>
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+% This file contains graphics used for the 'FreeType Glyph Conventions'
|
|
7
|
+% tutorial, part 6, 'FreeType Outlines'.
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+% Here is one possibility to convert this LaTeX file to both PNG and SVG
|
|
11
|
+% formats.
|
|
12
|
+%
|
|
13
|
+% xelatex outlines.tex
|
|
14
|
+%
|
|
15
|
+% pdftoppm -png -f 1 -l 4 -r 120 outlines.pdf outlines
|
|
16
|
+% optipng outlines-*.png
|
|
17
|
+%
|
|
18
|
+% for i in 1 2 3 4 5 6; do
|
|
19
|
+% pdf2svg outlines.pdf outlines-$i.svg $i
|
|
20
|
+% done
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+\documentclass[tikz, border=3mm]{standalone}
|
|
24
|
+
|
|
25
|
+\usepackage{libertinus}
|
|
26
|
+
|
|
27
|
+\usetikzlibrary{
|
|
28
|
+ calc,
|
|
29
|
+ decorations,
|
|
30
|
+ fit,
|
|
31
|
+ positioning}
|
|
32
|
+
|
|
33
|
+% We need exact bounding boxes.
|
|
34
|
+\usepgflibrary{bbox}
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+% A square shape.
|
|
38
|
+%
|
|
39
|
+% Taken from
|
|
40
|
+% https://tex.stackexchange.com/questions/300098/draw-a-node-as-a-square-with-tikz
|
|
41
|
+\makeatletter
|
|
42
|
+\def\squarecorner#1{
|
|
43
|
+ % Calculate x
|
|
44
|
+ %
|
|
45
|
+ % First, is width < minimum width?
|
|
46
|
+ \pgf@x=\the\wd\pgfnodeparttextbox
|
|
47
|
+ \pgfmathsetlength\pgf@xc{\pgfkeysvalueof{/pgf/inner xsep}}
|
|
48
|
+ \advance\pgf@x by 2\pgf@xc
|
|
49
|
+ \pgfmathsetlength\pgf@xb{\pgfkeysvalueof{/pgf/minimum width}}
|
|
50
|
+ \ifdim\pgf@x<\pgf@xb
|
|
51
|
+ % Yes, too small. Enlarge...
|
|
52
|
+ \pgf@x=\pgf@xb
|
|
53
|
+ \fi
|
|
54
|
+
|
|
55
|
+ % Calculate y
|
|
56
|
+ %
|
|
57
|
+ % First, is height+depth < minimum height?
|
|
58
|
+ \pgf@y=\ht\pgfnodeparttextbox
|
|
59
|
+ \advance\pgf@y by\dp\pgfnodeparttextbox
|
|
60
|
+ \pgfmathsetlength\pgf@yc{\pgfkeysvalueof{/pgf/inner ysep}}
|
|
61
|
+ \advance\pgf@y by 2\pgf@yc
|
|
62
|
+ \pgfmathsetlength\pgf@yb{\pgfkeysvalueof{/pgf/minimum height}}
|
|
63
|
+ \ifdim\pgf@y<\pgf@yb
|
|
64
|
+ % Yes, too small. Enlarge...
|
|
65
|
+ \pgf@y=\pgf@yb
|
|
66
|
+ \fi
|
|
67
|
+
|
|
68
|
+ % This `\ifdim` is the actual part that makes the node dimensions square.
|
|
69
|
+ \ifdim\pgf@x<\pgf@y
|
|
70
|
+ \pgf@x=\pgf@y
|
|
71
|
+ \else
|
|
72
|
+ \pgf@y=\pgf@x
|
|
73
|
+ \fi
|
|
74
|
+
|
|
75
|
+ % Calculate right border:
|
|
76
|
+ % `.5\wd\pgfnodeparttextbox + .5 \pgf@x + #1outer sep`.
|
|
77
|
+ \pgf@x=#1.5\pgf@x
|
|
78
|
+ \advance\pgf@x by.5\wd\pgfnodeparttextbox
|
|
79
|
+ \pgfmathsetlength\pgf@xa{\pgfkeysvalueof{/pgf/outer xsep}}
|
|
80
|
+ \advance\pgf@x by#1\pgf@xa
|
|
81
|
+
|
|
82
|
+ % Calculate upper border:
|
|
83
|
+ % `.5\ht-.5\dp + .5 \pgf@y + #1outer sep`.
|
|
84
|
+ \pgf@y=#1.5\pgf@y
|
|
85
|
+ \advance\pgf@y by-.5\dp\pgfnodeparttextbox
|
|
86
|
+ \advance\pgf@y by.5\ht\pgfnodeparttextbox
|
|
87
|
+ \pgfmathsetlength\pgf@ya{\pgfkeysvalueof{/pgf/outer ysep}}
|
|
88
|
+ \advance\pgf@y by#1\pgf@ya
|
|
89
|
+}
|
|
90
|
+\makeatother
|
|
91
|
+
|
|
92
|
+\pgfdeclareshape{square}{
|
|
93
|
+ \savedanchor\northeast{\squarecorner{}}
|
|
94
|
+ \savedanchor\southwest{\squarecorner{-}}
|
|
95
|
+
|
|
96
|
+ \foreach \x in {east, west}
|
|
97
|
+ \foreach \y in {north, mid, base, south}
|
|
98
|
+ {\inheritanchor[from=rectangle]{\y\space\x}}
|
|
99
|
+
|
|
100
|
+ \foreach \x in {east, west, north, mid, base, south, center, text}
|
|
101
|
+ {\inheritanchor[from=rectangle]{\x}}
|
|
102
|
+
|
|
103
|
+ \inheritanchorborder[from=rectangle]
|
|
104
|
+ \inheritbackgroundpath[from=rectangle]
|
|
105
|
+}
|
|
106
|
+
|
|
107
|
+
|
|
108
|
+% Node styles.
|
|
109
|
+\tikzset{
|
|
110
|
+ % For second-order Bézier curves.
|
|
111
|
+ conic/.style={
|
|
112
|
+ to path={(\tikztostart)
|
|
113
|
+ .. controls ($#1!1/3!(\tikztostart)$)
|
|
114
|
+ and ($#1!1/3!(\tikztotarget)$)
|
|
115
|
+ .. (\tikztotarget)}},
|
|
116
|
+%
|
|
117
|
+ % For virtual on-points.
|
|
118
|
+ hollow square/.style={
|
|
119
|
+ square,
|
|
120
|
+ line width=1pt,
|
|
121
|
+ draw,
|
|
122
|
+ fill=white,
|
|
123
|
+ minimum size=6pt,
|
|
124
|
+ inner sep=0pt,
|
|
125
|
+ outer sep=0pt},
|
|
126
|
+%
|
|
127
|
+ % For on-points.
|
|
128
|
+ filled square/.style={
|
|
129
|
+ square,
|
|
130
|
+ fill,
|
|
131
|
+ minimum size=6pt,
|
|
132
|
+ inner sep=0pt,
|
|
133
|
+ outer sep=0pt},
|
|
134
|
+%
|
|
135
|
+ % 'Elastic dashes' adapt spaces between dashes to the line length so that
|
|
136
|
+ % the last dash doesn't get cut off partially.
|
|
137
|
+ %
|
|
138
|
+ % Taken from
|
|
139
|
+ % https://tex.stackexchange.com/questions/133271/can-tikz-dashed-lines-emulate-pstricks-dashed-lines
|
|
140
|
+ elastic dash/.code args={on #1 off #2}{
|
|
141
|
+ % Use csname so catcode of @ doesn't have do be changed.
|
|
142
|
+ \csname tikz@addoption\endcsname{%
|
|
143
|
+ \pgfgetpath\currentpath
|
|
144
|
+ \pgfprocessround{\currentpath}{\currentpath}%
|
|
145
|
+ \csname pgf@decorate@parsesoftpath\endcsname
|
|
146
|
+ {\currentpath}{\currentpath}%
|
|
147
|
+ \pgfmathparse{\csname pgf@decorate@totalpathlength\endcsname-#1}%
|
|
148
|
+ \let\rest=\pgfmathresult
|
|
149
|
+ \pgfmathparse{#1+#2}%
|
|
150
|
+ \let\onoff=\pgfmathresult
|
|
151
|
+ \pgfmathparse{max(floor(\rest/\onoff), 1)}%
|
|
152
|
+ \let\nfullonoff=\pgfmathresult
|
|
153
|
+ \pgfmathparse{max((\rest-\onoff*\nfullonoff)/\nfullonoff+#2, #2)}%
|
|
154
|
+ \let\offexpand=\pgfmathresult
|
|
155
|
+ \pgfsetdash{{#1}{\offexpand}}{0pt}}},
|
|
156
|
+%
|
|
157
|
+ % For main curves.
|
|
158
|
+ line/.style={
|
|
159
|
+ line width=2pt},
|
|
160
|
+%
|
|
161
|
+ % For auxiliary, dashed curves.
|
|
162
|
+ dashed line/.style={
|
|
163
|
+ elastic dash=on 6pt off 6pt,
|
|
164
|
+ line width=1pt},
|
|
165
|
+ % For auxiliary, densely dashed curves.
|
|
166
|
+ densely dashed line/.style={
|
|
167
|
+ elastic dash=on 3pt off 3pt,
|
|
168
|
+ line width=1pt},
|
|
169
|
+%
|
|
170
|
+ % For off-points.
|
|
171
|
+ hollow dot/.style={
|
|
172
|
+ draw,
|
|
173
|
+ line width=1pt,
|
|
174
|
+ circle,
|
|
175
|
+ minimum size=6pt,
|
|
176
|
+ inner sep=0pt},
|
|
177
|
+%
|
|
178
|
+ % For explanations.
|
|
179
|
+ description/.style={
|
|
180
|
+ font=\Large\itshape},
|
|
181
|
+}
|
|
182
|
+
|
|
183
|
+
|
|
184
|
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
185
|
+
|
|
186
|
+\begin{document}
|
|
187
|
+
|
|
188
|
+% It looks better for the curves to start and end at the center of the
|
|
189
|
+% nodes, avoiding a little bit of unwanted whitespace next to the on-point
|
|
190
|
+% boxes.
|
|
191
|
+
|
|
192
|
+% A line segment.
|
|
193
|
+
|
|
194
|
+\begin{tikzpicture}
|
|
195
|
+ \node[filled square] (A) at (0,0) {};
|
|
196
|
+ \node[filled square] (B) at (6,2) {};
|
|
197
|
+
|
|
198
|
+ \draw[line] (A.center) -- (B.center);
|
|
199
|
+\end{tikzpicture}
|
|
200
|
+
|
|
201
|
+
|
|
202
|
+% A conic curve with one off-point.
|
|
203
|
+
|
|
204
|
+\begin{tikzpicture}
|
|
205
|
+ \node[filled square] (A) at (0,0) {};
|
|
206
|
+ \node[hollow dot] (B) at (2,3) {};
|
|
207
|
+ \node[filled square] (C) at (6,2) {};
|
|
208
|
+
|
|
209
|
+ \draw[dashed line] (A) -- (B);
|
|
210
|
+ \draw[dashed line] (B) -- (C);
|
|
211
|
+
|
|
212
|
+ \draw[line] (A.center) to[conic={(B)}] (C.center);
|
|
213
|
+\end{tikzpicture}
|
|
214
|
+
|
|
215
|
+
|
|
216
|
+% A cubic curve with two off-points.
|
|
217
|
+
|
|
218
|
+\begin{tikzpicture}
|
|
219
|
+ \node[filled square] (A) at (0,0) {};
|
|
220
|
+ \node[hollow dot] (B) at (1,2) {};
|
|
221
|
+ \node[hollow dot] (C) at (4,3) {};
|
|
222
|
+ \node[filled square] (D) at (6,2) {};
|
|
223
|
+
|
|
224
|
+ \draw[dashed line] (A) -- (B);
|
|
225
|
+ \draw[dashed line] (B) -- (C);
|
|
226
|
+ \draw[dashed line] (C) -- (D);
|
|
227
|
+
|
|
228
|
+ \draw[line] (A.center) .. controls (B) and (C) .. (D.center);
|
|
229
|
+\end{tikzpicture}
|
|
230
|
+
|
|
231
|
+
|
|
232
|
+% A conic curve with two off-points and virtual on-point inbetween.
|
|
233
|
+
|
|
234
|
+\begin{tikzpicture}
|
|
235
|
+ \node[filled square] (A) at (0,0) {};
|
|
236
|
+ \node[hollow dot] (B) at (1,2) {};
|
|
237
|
+ \node[hollow dot] (D) at (5,0) {};
|
|
238
|
+ \node[filled square] (E) at (6,2) {};
|
|
239
|
+
|
|
240
|
+ \coordinate (C) at ($ (B) !.5! (D) $);
|
|
241
|
+
|
|
242
|
+ \draw[dashed line] (A) -- (B);
|
|
243
|
+ \draw[dashed line] (B) -- (C);
|
|
244
|
+ \draw[dashed line] (C) -- (D);
|
|
245
|
+ \draw[dashed line] (D) -- (E);
|
|
246
|
+
|
|
247
|
+ \draw[line] (A.center) to[conic={(B)}] (C.center);
|
|
248
|
+ \draw[line] (C.center) to[conic={(D)}] (E.center);
|
|
249
|
+
|
|
250
|
+ % This comes last since it must white out the inner part of the box.
|
|
251
|
+ \node[hollow square] at (C) {};
|
|
252
|
+\end{tikzpicture}
|
|
253
|
+
|
|
254
|
+
|
|
255
|
+% Show that the bounding box (bbox) can differ from the control point
|
|
256
|
+% bounding box (cbox).
|
|
257
|
+
|
|
258
|
+\begin{tikzpicture}[bezier bounding box]
|
|
259
|
+ \coordinate (A) at (0,0);
|
|
260
|
+ \coordinate (B) at (3,3);
|
|
261
|
+ \coordinate (B') at (3,-3);
|
|
262
|
+ \coordinate (C) at (6,0);
|
|
263
|
+
|
|
264
|
+ \path[save path=\pathtop] (A.center) to[conic={(B)}] (C.center);
|
|
265
|
+ \path[save path=\pathbottom] (A.center) to[conic={(B')}] (C.center);
|
|
266
|
+
|
|
267
|
+ \node[fit=(current bounding box),
|
|
268
|
+ inner sep=0pt,
|
|
269
|
+ outer sep=0pt] (bbox) {};
|
|
270
|
+
|
|
271
|
+ \node[filled square] (A) at (A) {};
|
|
272
|
+ \node[hollow dot] (B) at (B) {};
|
|
273
|
+ \node[hollow dot] (B') at (B') {};
|
|
274
|
+ \node[filled square] (C) at (C) {};
|
|
275
|
+
|
|
276
|
+ \draw[dashed line] (A) -- (B);
|
|
277
|
+ \draw[dashed line] (B) -- (C);
|
|
278
|
+ \draw[dashed line] (A) -- (B');
|
|
279
|
+ \draw[dashed line] (B') -- (C);
|
|
280
|
+
|
|
281
|
+ \draw[line] [use path=\pathtop];
|
|
282
|
+ \draw[line] [use path=\pathbottom];
|
|
283
|
+
|
|
284
|
+ \draw[densely dashed line] (A) -- (A |- B);
|
|
285
|
+ \draw[densely dashed line] (A |- B) -- (B);
|
|
286
|
+ \draw[densely dashed line] (B) -- (B -| C)
|
|
287
|
+ node[description, pos=0.8, above] {cbox};
|
|
288
|
+ \draw[densely dashed line] (B -| C) -- (C);
|
|
289
|
+
|
|
290
|
+ \draw[densely dashed line] (A) -- (A |- B');
|
|
291
|
+ \draw[densely dashed line] (A |- B') -- (B');
|
|
292
|
+ \draw[densely dashed line] (B') -- (B' -| C);
|
|
293
|
+ \draw[densely dashed line] (B' -| C) -- (C);
|
|
294
|
+
|
|
295
|
+ \draw[densely dashed line] (bbox.north west) -- (bbox.north east)
|
|
296
|
+ node[description, pos=0.1, above] {bbox};
|
|
297
|
+ \draw[densely dashed line] (bbox.south west) -- (bbox.south east);
|
|
298
|
+\end{tikzpicture}
|
|
299
|
+
|
|
300
|
+
|
|
301
|
+% Show that the bounding box (bbox) is identical to the control point
|
|
302
|
+% bounding box (cbox) if the curve uses points at the extrema.
|
|
303
|
+
|
|
304
|
+\begin{tikzpicture}
|
|
305
|
+ \coordinate (P) at (3,3);
|
|
306
|
+ \coordinate (P') at (3,-3);
|
|
307
|
+
|
|
308
|
+ \node[filled square] (A) at (0,0) {};
|
|
309
|
+ \node[filled square] (E) at (6,0) {};
|
|
310
|
+
|
|
311
|
+ \node[hollow dot] (B) at ($ (A) !.5! (P) $) {};
|
|
312
|
+ \node[hollow dot] (D) at ($ (P) !.5! (E) $) {};
|
|
313
|
+ \node[filled square] (C) at ($ (B) !.5! (D) $) {};
|
|
314
|
+
|
|
315
|
+ \node[hollow dot] (B') at ($ (A) !.5! (P') $) {};
|
|
316
|
+ \node[hollow dot] (D') at ($ (P') !.5! (E) $) {};
|
|
317
|
+ \node[filled square] (C') at ($ (B') !.5! (D') $) {};
|
|
318
|
+
|
|
319
|
+ % It looks better for these two curves to start and end at the center of
|
|
320
|
+ % the nodes, avoiding a little bit of unwanted whitespace next to the
|
|
321
|
+ % on-point boxes.
|
|
322
|
+ \draw[line] (A.center) to[conic={(B)}] (C.center);
|
|
323
|
+ \draw[line] (C.center) to[conic={(D)}] (E.center);
|
|
324
|
+ \draw[line] (A.center) to[conic={(B')}] (C'.center);
|
|
325
|
+ \draw[line] (C'.center) to[conic={(D')}] (E.center);
|
|
326
|
+
|
|
327
|
+ \draw[dashed line] (A) -- (B);
|
|
328
|
+ \draw[dashed line] (B) -- (C);
|
|
329
|
+ \draw[dashed line] (C) -- (D);
|
|
330
|
+ \draw[dashed line] (D) -- (E);
|
|
331
|
+
|
|
332
|
+ \draw[dashed line] (A) -- (B');
|
|
333
|
+ \draw[dashed line] (B') -- (C');
|
|
334
|
+ \draw[dashed line] (C') -- (D');
|
|
335
|
+ \draw[dashed line] (D') -- (E);
|
|
336
|
+
|
|
337
|
+ \draw[densely dashed line] (A) -- (A |- B);
|
|
338
|
+ \draw[densely dashed line] (A |- B) -- (B)
|
|
339
|
+ node[description, pos=0.9, above, yshift=1mm] {cbox = bbox};
|
|
340
|
+ \draw[densely dashed line] (D) -- (D -| E);
|
|
341
|
+ \draw[densely dashed line] (D -| E) -- (E);
|
|
342
|
+
|
|
343
|
+ \draw[densely dashed line] (A) -- (A |- B');
|
|
344
|
+ \draw[densely dashed line] (A |- B') -- (B');
|
|
345
|
+ \draw[densely dashed line] (D') -- (D' -| E);
|
|
346
|
+ \draw[densely dashed line] (D' -| E) -- (E);
|
|
347
|
+\end{tikzpicture}
|
|
348
|
+
|
|
349
|
+\end{document} |
freetype2/docs/glyphs/points_conic.png
deleted
No preview for this file type
freetype2/docs/glyphs/points_conic2.png
deleted
No preview for this file type
freetype2/docs/glyphs/points_cubic.png
deleted
No preview for this file type
freetype2/docs/glyphs/points_segment.png
deleted
No preview for this file type
|