wolffd@0
|
1 <!-- This is the Document Type Definition for font configuration files -->
|
wolffd@0
|
2 <!ELEMENT fontconfig (dir |
|
wolffd@0
|
3 cache |
|
wolffd@0
|
4 cachedir |
|
wolffd@0
|
5 include |
|
wolffd@0
|
6 config |
|
wolffd@0
|
7 selectfont |
|
wolffd@0
|
8 match |
|
wolffd@0
|
9 alias)* >
|
wolffd@0
|
10
|
wolffd@0
|
11 <!--
|
wolffd@0
|
12 Add a directory that provides fonts
|
wolffd@0
|
13 -->
|
wolffd@0
|
14 <!ELEMENT dir (#PCDATA)>
|
wolffd@0
|
15 <!ATTLIST dir xml:space (default|preserve) 'preserve'>
|
wolffd@0
|
16
|
wolffd@0
|
17 <!--
|
wolffd@0
|
18 Define the per-user file that holds cache font information.
|
wolffd@0
|
19
|
wolffd@0
|
20 If the filename begins with '~', it is replaced with the users
|
wolffd@0
|
21 home directory path.
|
wolffd@0
|
22 -->
|
wolffd@0
|
23 <!ELEMENT cache (#PCDATA)>
|
wolffd@0
|
24 <!ATTLIST cache xml:space (default|preserve) 'preserve'>
|
wolffd@0
|
25
|
wolffd@0
|
26 <!--
|
wolffd@0
|
27 Add a directory that is searched for font cache files.
|
wolffd@0
|
28 These hold per-directory cache data and are searched in
|
wolffd@0
|
29 order for each directory. When writing cache files, the first
|
wolffd@0
|
30 directory which allows the cache file to be created is used.
|
wolffd@0
|
31
|
wolffd@0
|
32 A leading '~' in a directory name is replaced with the users
|
wolffd@0
|
33 home directory path.
|
wolffd@0
|
34 -->
|
wolffd@0
|
35 <!ELEMENT cachedir (#PCDATA)>
|
wolffd@0
|
36 <!ATTLIST cachedir xml:space (default|preserve) 'preserve'>
|
wolffd@0
|
37
|
wolffd@0
|
38 <!--
|
wolffd@0
|
39 Reference another configuration file; note that this
|
wolffd@0
|
40 is another complete font configuration file and not
|
wolffd@0
|
41 just a file included by the XML parser.
|
wolffd@0
|
42
|
wolffd@0
|
43 Set 'ignore_missing' to 'yes' if errors are to be ignored.
|
wolffd@0
|
44
|
wolffd@0
|
45 If the filename begins with '~', it is replaced with the users
|
wolffd@0
|
46 home directory path.
|
wolffd@0
|
47 -->
|
wolffd@0
|
48 <!ELEMENT include (#PCDATA)>
|
wolffd@0
|
49 <!ATTLIST include
|
wolffd@0
|
50 ignore_missing (no|yes) "no"
|
wolffd@0
|
51 xml:space (default|preserve) "preserve">
|
wolffd@0
|
52
|
wolffd@0
|
53 <!--
|
wolffd@0
|
54 Global library configuration data
|
wolffd@0
|
55 -->
|
wolffd@0
|
56 <!ELEMENT config (blank|rescan)*>
|
wolffd@0
|
57
|
wolffd@0
|
58 <!--
|
wolffd@0
|
59 Specify the set of Unicode encoding values which
|
wolffd@0
|
60 represent glyphs that are allowed to contain no
|
wolffd@0
|
61 data. With this list, fontconfig can examine
|
wolffd@0
|
62 fonts for broken glyphs and eliminate them from
|
wolffd@0
|
63 the set of valid Unicode chars. This idea
|
wolffd@0
|
64 was borrowed from Mozilla
|
wolffd@0
|
65 -->
|
wolffd@0
|
66 <!ELEMENT blank (int)*>
|
wolffd@0
|
67
|
wolffd@0
|
68 <!--
|
wolffd@0
|
69 Aliases are just a special case for multiple match elements
|
wolffd@0
|
70
|
wolffd@0
|
71 They are syntactically equivalent to:
|
wolffd@0
|
72
|
wolffd@0
|
73 <match>
|
wolffd@0
|
74 <test name="family">
|
wolffd@0
|
75 <string value=[family]/>
|
wolffd@0
|
76 </test>
|
wolffd@0
|
77 <edit name="family" mode="prepend">
|
wolffd@0
|
78 <string value=[prefer]/>
|
wolffd@0
|
79 ...
|
wolffd@0
|
80 </edit>
|
wolffd@0
|
81 <edit name="family" mode="append">
|
wolffd@0
|
82 <string value=[accept]/>
|
wolffd@0
|
83 ...
|
wolffd@0
|
84 </edit>
|
wolffd@0
|
85 <edit name="family" mode="append_last">
|
wolffd@0
|
86 <string value=[default]/>
|
wolffd@0
|
87 ...
|
wolffd@0
|
88 </edit>
|
wolffd@0
|
89 </match>
|
wolffd@0
|
90 -->
|
wolffd@0
|
91 <!--
|
wolffd@0
|
92 Periodically rescan the font configuration and
|
wolffd@0
|
93 directories to synch internal state with filesystem
|
wolffd@0
|
94 -->
|
wolffd@0
|
95 <!ELEMENT rescan (int)>
|
wolffd@0
|
96
|
wolffd@0
|
97 <!--
|
wolffd@0
|
98 Edit list of available fonts at startup/reload time
|
wolffd@0
|
99 -->
|
wolffd@0
|
100 <!ELEMENT selectfont (rejectfont | acceptfont)* >
|
wolffd@0
|
101
|
wolffd@0
|
102 <!ELEMENT rejectfont (glob | pattern)*>
|
wolffd@0
|
103
|
wolffd@0
|
104 <!ELEMENT acceptfont (glob | pattern)*>
|
wolffd@0
|
105
|
wolffd@0
|
106 <!ELEMENT glob (#PCDATA)>
|
wolffd@0
|
107
|
wolffd@0
|
108 <!ELEMENT pattern (patelt)*>
|
wolffd@0
|
109
|
wolffd@0
|
110 <!ENTITY % constant 'int|double|string|matrix|bool|charset|const'>
|
wolffd@0
|
111
|
wolffd@0
|
112 <!ELEMENT patelt (%constant;)*>
|
wolffd@0
|
113 <!ATTLIST patelt
|
wolffd@0
|
114 name CDATA #REQUIRED>
|
wolffd@0
|
115
|
wolffd@0
|
116 <!ELEMENT alias (family*, prefer?, accept?, default?)>
|
wolffd@0
|
117 <!ELEMENT prefer (family)*>
|
wolffd@0
|
118 <!ELEMENT accept (family)*>
|
wolffd@0
|
119 <!ELEMENT default (family)*>
|
wolffd@0
|
120 <!ELEMENT family (#PCDATA)>
|
wolffd@0
|
121 <!ATTLIST family xml:space (default|preserve) 'preserve'>
|
wolffd@0
|
122
|
wolffd@0
|
123 <!ENTITY % expr 'int|double|string|matrix|bool|charset
|
wolffd@0
|
124 |name|const
|
wolffd@0
|
125 |or|and|eq|not_eq|less|less_eq|more|more_eq|contains|not_contains
|
wolffd@0
|
126 |plus|minus|times|divide|not|if|floor|ceil|round|trunc'>
|
wolffd@0
|
127
|
wolffd@0
|
128 <!--
|
wolffd@0
|
129 Match and edit patterns.
|
wolffd@0
|
130
|
wolffd@0
|
131 If 'target' is 'pattern', execute the match before selecting a font.
|
wolffd@0
|
132 if 'target' is 'font', execute the match on the result of a font
|
wolffd@0
|
133 selection.
|
wolffd@0
|
134 -->
|
wolffd@0
|
135 <!ELEMENT match (test*, edit*)>
|
wolffd@0
|
136 <!ATTLIST match
|
wolffd@0
|
137 target (pattern|font|scan) "pattern">
|
wolffd@0
|
138
|
wolffd@0
|
139 <!--
|
wolffd@0
|
140 Match a field in a pattern
|
wolffd@0
|
141
|
wolffd@0
|
142 if 'qual' is 'any', then the match succeeds if any value in the field matches.
|
wolffd@0
|
143 if 'qual' is 'all', then the match succeeds only if all values match.
|
wolffd@0
|
144 if 'qual' is 'first', then the match succeeds only if the first value matches.
|
wolffd@0
|
145 if 'qual' is 'not_first', then the match succeeds only if any value other than
|
wolffd@0
|
146 the first matches.
|
wolffd@0
|
147 For match elements with target=font, if test 'target' is 'pattern',
|
wolffd@0
|
148 then the test is applied to the pattern used in matching rather than
|
wolffd@0
|
149 to the resulting font.
|
wolffd@0
|
150
|
wolffd@0
|
151 Match elements with target=scan are applied as fonts are scanned.
|
wolffd@0
|
152 They edit the pattern generated from the scanned font and affect
|
wolffd@0
|
153 what the fontconfig database contains.
|
wolffd@0
|
154 -->
|
wolffd@0
|
155 <!ELEMENT test (%expr;)*>
|
wolffd@0
|
156 <!ATTLIST test
|
wolffd@0
|
157 qual (any|all|first|not_first) "any"
|
wolffd@0
|
158 name CDATA #REQUIRED
|
wolffd@0
|
159 target (pattern|font|default) "default"
|
wolffd@0
|
160 compare (eq|not_eq|less|less_eq|more|more_eq|contains|not_contains) "eq">
|
wolffd@0
|
161
|
wolffd@0
|
162 <!--
|
wolffd@0
|
163 Edit a field in a pattern
|
wolffd@0
|
164
|
wolffd@0
|
165 The enclosed values are used together to edit the list of values
|
wolffd@0
|
166 associated with 'name'.
|
wolffd@0
|
167
|
wolffd@0
|
168 If 'name' matches one of those used in a test element for this match element:
|
wolffd@0
|
169 if 'mode' is 'assign', replace the matched value.
|
wolffd@0
|
170 if 'mode' is 'assign_replace', replace all of the values
|
wolffd@0
|
171 if 'mode' is 'prepend', insert before the matched value
|
wolffd@0
|
172 if 'mode' is 'append', insert after the matched value
|
wolffd@0
|
173 if 'mode' is 'prepend_first', insert before all of the values
|
wolffd@0
|
174 if 'mode' is 'append_last', insert after all of the values
|
wolffd@0
|
175 If 'name' doesn't match any of those used in a test element:
|
wolffd@0
|
176 if 'mode' is 'assign' or 'assign_replace, replace all of the values
|
wolffd@0
|
177 if 'mode' is 'prepend' or 'prepend_first', insert before all of the values
|
wolffd@0
|
178 if 'mode' is 'append' or 'append_last', insert after all of the values
|
wolffd@0
|
179 -->
|
wolffd@0
|
180 <!ELEMENT edit (%expr;)*>
|
wolffd@0
|
181 <!ATTLIST edit
|
wolffd@0
|
182 name CDATA #REQUIRED
|
wolffd@0
|
183 mode (assign|assign_replace|prepend|append|prepend_first|append_last) "assign"
|
wolffd@0
|
184 binding (weak|strong|same) "weak">
|
wolffd@0
|
185
|
wolffd@0
|
186 <!--
|
wolffd@0
|
187 Elements of expressions follow
|
wolffd@0
|
188 -->
|
wolffd@0
|
189 <!ELEMENT int (#PCDATA)>
|
wolffd@0
|
190 <!ATTLIST int xml:space (default|preserve) 'preserve'>
|
wolffd@0
|
191 <!ELEMENT double (#PCDATA)>
|
wolffd@0
|
192 <!ATTLIST double xml:space (default|preserve) 'preserve'>
|
wolffd@0
|
193 <!ELEMENT string (#PCDATA)>
|
wolffd@0
|
194 <!ATTLIST string xml:space (default|preserve) 'preserve'>
|
wolffd@0
|
195 <!ELEMENT matrix (double,double,double,double)>
|
wolffd@0
|
196 <!ELEMENT bool (#PCDATA)>
|
wolffd@0
|
197 <!ELEMENT charset (#PCDATA)>
|
wolffd@0
|
198 <!ATTLIST charset xml:space (default|preserve) 'preserve'>
|
wolffd@0
|
199 <!ELEMENT name (#PCDATA)>
|
wolffd@0
|
200 <!ATTLIST name xml:space (default|preserve) 'preserve'>
|
wolffd@0
|
201 <!ELEMENT const (#PCDATA)>
|
wolffd@0
|
202 <!ATTLIST const xml:space (default|preserve) 'preserve'>
|
wolffd@0
|
203 <!ELEMENT or (%expr;)*>
|
wolffd@0
|
204 <!ELEMENT and (%expr;)*>
|
wolffd@0
|
205 <!ELEMENT eq ((%expr;), (%expr;))>
|
wolffd@0
|
206 <!ELEMENT not_eq ((%expr;), (%expr;))>
|
wolffd@0
|
207 <!ELEMENT less ((%expr;), (%expr;))>
|
wolffd@0
|
208 <!ELEMENT less_eq ((%expr;), (%expr;))>
|
wolffd@0
|
209 <!ELEMENT more ((%expr;), (%expr;))>
|
wolffd@0
|
210 <!ELEMENT more_eq ((%expr;), (%expr;))>
|
wolffd@0
|
211 <!ELEMENT contains ((%expr;), (%expr;))>
|
wolffd@0
|
212 <!ELEMENT not_contains ((%expr;), (%expr;))>
|
wolffd@0
|
213 <!ELEMENT plus (%expr;)*>
|
wolffd@0
|
214 <!ELEMENT minus (%expr;)*>
|
wolffd@0
|
215 <!ELEMENT times (%expr;)*>
|
wolffd@0
|
216 <!ELEMENT divide (%expr;)*>
|
wolffd@0
|
217 <!ELEMENT not (%expr;)>
|
wolffd@0
|
218 <!ELEMENT if ((%expr;), (%expr;), (%expr;))>
|
wolffd@0
|
219 <!ELEMENT floor (%expr;)>
|
wolffd@0
|
220 <!ELEMENT ceil (%expr;)>
|
wolffd@0
|
221 <!ELEMENT round (%expr;)>
|
wolffd@0
|
222 <!ELEMENT trunc (%expr;)>
|