fonts.dtd revision ca08ab68
12c393a42Smrg<!-- This is the Document Type Definition for font configuration files --> 22c393a42Smrg<!ELEMENT fontconfig (dir | 32c393a42Smrg cache | 42c393a42Smrg cachedir | 52c393a42Smrg include | 62c393a42Smrg config | 72c393a42Smrg selectfont | 82c393a42Smrg match | 92c393a42Smrg alias)* > 102c393a42Smrg 112c393a42Smrg<!-- 122c393a42Smrg Add a directory that provides fonts 132c393a42Smrg--> 142c393a42Smrg<!ELEMENT dir (#PCDATA)> 15ca08ab68Smrg<!ATTLIST dir 16ca08ab68Smrg prefix CDATA "default" 17ca08ab68Smrg xml:space (default|preserve) 'preserve'> 182c393a42Smrg 192c393a42Smrg<!-- 202c393a42Smrg Define the per-user file that holds cache font information. 212c393a42Smrg 222c393a42Smrg If the filename begins with '~', it is replaced with the users 232c393a42Smrg home directory path. 242c393a42Smrg--> 252c393a42Smrg<!ELEMENT cache (#PCDATA)> 262c393a42Smrg<!ATTLIST cache xml:space (default|preserve) 'preserve'> 272c393a42Smrg 282c393a42Smrg<!-- 292c393a42Smrg Add a directory that is searched for font cache files. 302c393a42Smrg These hold per-directory cache data and are searched in 312c393a42Smrg order for each directory. When writing cache files, the first 322c393a42Smrg directory which allows the cache file to be created is used. 332c393a42Smrg 342c393a42Smrg A leading '~' in a directory name is replaced with the users 352c393a42Smrg home directory path. 362c393a42Smrg--> 372c393a42Smrg<!ELEMENT cachedir (#PCDATA)> 38ca08ab68Smrg<!ATTLIST cachedir 39ca08ab68Smrg prefix CDATA "default" 40ca08ab68Smrg xml:space (default|preserve) 'preserve'> 412c393a42Smrg 422c393a42Smrg<!-- 432c393a42Smrg Reference another configuration file; note that this 442c393a42Smrg is another complete font configuration file and not 452c393a42Smrg just a file included by the XML parser. 462c393a42Smrg 472c393a42Smrg Set 'ignore_missing' to 'yes' if errors are to be ignored. 482c393a42Smrg 492c393a42Smrg If the filename begins with '~', it is replaced with the users 502c393a42Smrg home directory path. 512c393a42Smrg--> 522c393a42Smrg<!ELEMENT include (#PCDATA)> 532c393a42Smrg<!ATTLIST include 542c393a42Smrg ignore_missing (no|yes) "no" 55ca08ab68Smrg prefix CDATA "default" 56ca08ab68Smrg deprecated (yes|no) "no" 572c393a42Smrg xml:space (default|preserve) "preserve"> 582c393a42Smrg 592c393a42Smrg<!-- 602c393a42Smrg Global library configuration data 612c393a42Smrg --> 622c393a42Smrg<!ELEMENT config (blank|rescan)*> 632c393a42Smrg 642c393a42Smrg<!-- 652c393a42Smrg Specify the set of Unicode encoding values which 662c393a42Smrg represent glyphs that are allowed to contain no 672c393a42Smrg data. With this list, fontconfig can examine 682c393a42Smrg fonts for broken glyphs and eliminate them from 692c393a42Smrg the set of valid Unicode chars. This idea 702c393a42Smrg was borrowed from Mozilla 712c393a42Smrg --> 72ca08ab68Smrg<!ELEMENT blank (int|range)*> 732c393a42Smrg 742c393a42Smrg<!-- 752c393a42Smrg Aliases are just a special case for multiple match elements 762c393a42Smrg 772c393a42Smrg They are syntactically equivalent to: 782c393a42Smrg 792c393a42Smrg <match> 802c393a42Smrg <test name="family"> 812c393a42Smrg <string value=[family]/> 822c393a42Smrg </test> 832c393a42Smrg <edit name="family" mode="prepend"> 842c393a42Smrg <string value=[prefer]/> 852c393a42Smrg ... 862c393a42Smrg </edit> 872c393a42Smrg <edit name="family" mode="append"> 882c393a42Smrg <string value=[accept]/> 892c393a42Smrg ... 902c393a42Smrg </edit> 912c393a42Smrg <edit name="family" mode="append_last"> 922c393a42Smrg <string value=[default]/> 932c393a42Smrg ... 942c393a42Smrg </edit> 952c393a42Smrg </match> 962c393a42Smrg--> 972c393a42Smrg<!-- 982c393a42Smrg Periodically rescan the font configuration and 992c393a42Smrg directories to synch internal state with filesystem 1002c393a42Smrg --> 1012c393a42Smrg<!ELEMENT rescan (int)> 1022c393a42Smrg 1032c393a42Smrg<!-- 1042c393a42Smrg Edit list of available fonts at startup/reload time 1052c393a42Smrg --> 1062c393a42Smrg<!ELEMENT selectfont (rejectfont | acceptfont)* > 1072c393a42Smrg 1082c393a42Smrg<!ELEMENT rejectfont (glob | pattern)*> 1092c393a42Smrg 1102c393a42Smrg<!ELEMENT acceptfont (glob | pattern)*> 1112c393a42Smrg 1122c393a42Smrg<!ELEMENT glob (#PCDATA)> 1132c393a42Smrg 1142c393a42Smrg<!ELEMENT pattern (patelt)*> 1152c393a42Smrg 116ca08ab68Smrg<!ENTITY % constant 'int|double|string|matrix|bool|charset|langset|const'> 1172c393a42Smrg 1182c393a42Smrg<!ELEMENT patelt (%constant;)*> 1192c393a42Smrg<!ATTLIST patelt 1202c393a42Smrg name CDATA #REQUIRED> 1212c393a42Smrg 122ca08ab68Smrg<!ELEMENT alias (test?, family*, prefer?, accept?, default?)> 1232c393a42Smrg<!ATTLIST alias 1242c393a42Smrg binding (weak|strong|same) "weak"> 1252c393a42Smrg<!ELEMENT prefer (family)*> 1262c393a42Smrg<!ELEMENT accept (family)*> 1272c393a42Smrg<!ELEMENT default (family)*> 1282c393a42Smrg<!ELEMENT family (#PCDATA)> 1292c393a42Smrg<!ATTLIST family xml:space (default|preserve) 'preserve'> 1302c393a42Smrg 131ca08ab68Smrg<!ENTITY % expr 'int|double|string|matrix|bool|charset|langset 1322c393a42Smrg |name|const 1332c393a42Smrg |or|and|eq|not_eq|less|less_eq|more|more_eq|contains|not_contains 1342c393a42Smrg |plus|minus|times|divide|not|if|floor|ceil|round|trunc'> 1352c393a42Smrg 1362c393a42Smrg<!-- 1372c393a42Smrg Match and edit patterns. 1382c393a42Smrg 1392c393a42Smrg If 'target' is 'pattern', execute the match before selecting a font. 1402c393a42Smrg if 'target' is 'font', execute the match on the result of a font 1412c393a42Smrg selection. 1422c393a42Smrg--> 1432c393a42Smrg<!ELEMENT match (test*, edit*)> 1442c393a42Smrg<!ATTLIST match 1452c393a42Smrg target (pattern|font|scan) "pattern"> 1462c393a42Smrg 1472c393a42Smrg<!-- 1482c393a42Smrg Match a field in a pattern 1492c393a42Smrg 1502c393a42Smrg if 'qual' is 'any', then the match succeeds if any value in the field matches. 1512c393a42Smrg if 'qual' is 'all', then the match succeeds only if all values match. 1522c393a42Smrg if 'qual' is 'first', then the match succeeds only if the first value matches. 1532c393a42Smrg if 'qual' is 'not_first', then the match succeeds only if any value other than 1542c393a42Smrg the first matches. 1552c393a42Smrg For match elements with target=font, if test 'target' is 'pattern', 1562c393a42Smrg then the test is applied to the pattern used in matching rather than 1572c393a42Smrg to the resulting font. 1582c393a42Smrg 1592c393a42Smrg Match elements with target=scan are applied as fonts are scanned. 1602c393a42Smrg They edit the pattern generated from the scanned font and affect 1612c393a42Smrg what the fontconfig database contains. 1622c393a42Smrg--> 1632c393a42Smrg<!ELEMENT test (%expr;)*> 1642c393a42Smrg<!ATTLIST test 1652c393a42Smrg qual (any|all|first|not_first) "any" 1662c393a42Smrg name CDATA #REQUIRED 1672c393a42Smrg target (pattern|font|default) "default" 168ca08ab68Smrg ignore-blanks (true|false) "false" 1692c393a42Smrg compare (eq|not_eq|less|less_eq|more|more_eq|contains|not_contains) "eq"> 1702c393a42Smrg 1712c393a42Smrg<!-- 1722c393a42Smrg Edit a field in a pattern 1732c393a42Smrg 1742c393a42Smrg The enclosed values are used together to edit the list of values 1752c393a42Smrg associated with 'name'. 1762c393a42Smrg 1772c393a42Smrg If 'name' matches one of those used in a test element for this match element: 1782c393a42Smrg if 'mode' is 'assign', replace the matched value. 1792c393a42Smrg if 'mode' is 'assign_replace', replace all of the values 1802c393a42Smrg if 'mode' is 'prepend', insert before the matched value 1812c393a42Smrg if 'mode' is 'append', insert after the matched value 1822c393a42Smrg if 'mode' is 'prepend_first', insert before all of the values 1832c393a42Smrg if 'mode' is 'append_last', insert after all of the values 1842c393a42Smrg If 'name' doesn't match any of those used in a test element: 1852c393a42Smrg if 'mode' is 'assign' or 'assign_replace, replace all of the values 1862c393a42Smrg if 'mode' is 'prepend' or 'prepend_first', insert before all of the values 1872c393a42Smrg if 'mode' is 'append' or 'append_last', insert after all of the values 1882c393a42Smrg--> 1892c393a42Smrg<!ELEMENT edit (%expr;)*> 1902c393a42Smrg<!ATTLIST edit 1912c393a42Smrg name CDATA #REQUIRED 1922c393a42Smrg mode (assign|assign_replace|prepend|append|prepend_first|append_last) "assign" 1932c393a42Smrg binding (weak|strong|same) "weak"> 1942c393a42Smrg 1952c393a42Smrg<!-- 1962c393a42Smrg Elements of expressions follow 1972c393a42Smrg--> 1982c393a42Smrg<!ELEMENT int (#PCDATA)> 1992c393a42Smrg<!ATTLIST int xml:space (default|preserve) 'preserve'> 2002c393a42Smrg<!ELEMENT double (#PCDATA)> 2012c393a42Smrg<!ATTLIST double xml:space (default|preserve) 'preserve'> 2022c393a42Smrg<!ELEMENT string (#PCDATA)> 2032c393a42Smrg<!ATTLIST string xml:space (default|preserve) 'preserve'> 2042c393a42Smrg<!ELEMENT matrix (double,double,double,double)> 2052c393a42Smrg<!ELEMENT bool (#PCDATA)> 206ca08ab68Smrg<!ELEMENT charset (int|range)*> 207ca08ab68Smrg<!ELEMENT range (int,int)> 208ca08ab68Smrg<!ELEMENT langset (string)*> 2092c393a42Smrg<!ELEMENT name (#PCDATA)> 2102c393a42Smrg<!ATTLIST name xml:space (default|preserve) 'preserve'> 2112c393a42Smrg<!ELEMENT const (#PCDATA)> 2122c393a42Smrg<!ATTLIST const xml:space (default|preserve) 'preserve'> 2132c393a42Smrg<!ELEMENT or (%expr;)*> 2142c393a42Smrg<!ELEMENT and (%expr;)*> 2152c393a42Smrg<!ELEMENT eq ((%expr;), (%expr;))> 2162c393a42Smrg<!ELEMENT not_eq ((%expr;), (%expr;))> 2172c393a42Smrg<!ELEMENT less ((%expr;), (%expr;))> 2182c393a42Smrg<!ELEMENT less_eq ((%expr;), (%expr;))> 2192c393a42Smrg<!ELEMENT more ((%expr;), (%expr;))> 2202c393a42Smrg<!ELEMENT more_eq ((%expr;), (%expr;))> 2212c393a42Smrg<!ELEMENT contains ((%expr;), (%expr;))> 2222c393a42Smrg<!ELEMENT not_contains ((%expr;), (%expr;))> 2232c393a42Smrg<!ELEMENT plus (%expr;)*> 2242c393a42Smrg<!ELEMENT minus (%expr;)*> 2252c393a42Smrg<!ELEMENT times (%expr;)*> 2262c393a42Smrg<!ELEMENT divide (%expr;)*> 2272c393a42Smrg<!ELEMENT not (%expr;)> 2282c393a42Smrg<!ELEMENT if ((%expr;), (%expr;), (%expr;))> 2292c393a42Smrg<!ELEMENT floor (%expr;)> 2302c393a42Smrg<!ELEMENT ceil (%expr;)> 2312c393a42Smrg<!ELEMENT round (%expr;)> 2322c393a42Smrg<!ELEMENT trunc (%expr;)> 233