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