]> git.wh0rd.org - fontconfig.git/blob - doc/fontconfig-user.sgml
Use CONFDIR instead of SYSCONFDIR/fonts in manual. Use awk to strip
[fontconfig.git] / doc / fontconfig-user.sgml
1 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V3.1//EN" [
2 <!ENTITY version SYSTEM "version.sgml">
3 <!ENTITY confdir SYSTEM "confdir.sgml">
4 ]>
5 <!--
6 $Id$
7
8 Copyright © 2003 Keith Packard
9
10 Permission to use, copy, modify, distribute, and sell this software and its
11 documentation for any purpose is hereby granted without fee, provided that
12 the above copyright notice appear in all copies and that both that
13 copyright notice and this permission notice appear in supporting
14 documentation, and that the name of Keith Packard not be used in
15 advertising or publicity pertaining to distribution of the software without
16 specific, written prior permission. Keith Packard makes no
17 representations about the suitability of this software for any purpose. It
18 is provided "as is" without express or implied warranty.
19
20 KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
21 INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
22 EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
23 CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
24 DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
25 TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
26 PERFORMANCE OF THIS SOFTWARE.
27 -->
28 <refentry>
29 <refmeta>
30 <refentrytitle>fonts-conf</refentrytitle>
31 <manvolnum>5</manvolnum>
32 </refmeta>
33 <refnamediv>
34 <refname>fonts.conf</refname>
35 <refpurpose>Font configuration files</refpurpose>
36 </refnamediv>
37 <refsynopsisdiv>
38 <synopsis>
39 &confdir;/fonts.conf
40 &confdir;/fonts.dtd
41 ~/.fonts.conf
42 </synopsis>
43 </refsynopsisdiv>
44 <refsect1><title>Description</title>
45 <para>
46 Fontconfig is a library designed to provide system-wide font configuration,
47 customization and application access.
48 </para>
49 </refsect1>
50 <refsect1><title>Functional Overview</title>
51 <para>
52 Fontconfig contains two essential modules, the configuration module which
53 builds an internal configuration from XML files and the matching module
54 which accepts font patterns and returns the nearest matching font.
55 </para>
56 <refsect2><title>Font Configuration</title>
57 <para>
58 The configuration module consists of the FcConfig datatype, libexpat and
59 FcConfigParse which walks over an XML tree and ammends a configuration with
60 data found within. From an external perspective, configuration of the
61 library consists of generating a valid XML tree and feeding that to
62 FcConfigParse. The only other mechanism provided to applications for
63 changing the running configuration is to add fonts and directories to the
64 list of application-provided font files.
65 </para><para>
66 The intent is to make font configurations relatively static, and shared by
67 as many applications as possible. It is hoped that this will lead to more
68 stable font selection when passing names from one application to another.
69 XML was chosen as a configuration file format because it provides a format
70 which is easy for external agents to edit while retaining the correct
71 structure and syntax.
72 </para><para>
73 Font configuration is separate from font matching; applications needing to
74 do their own matching can access the available fonts from the library and
75 perform private matching. The intent is to permit applications to pick and
76 choose appropriate functionality from the library instead of forcing them to
77 choose between this library and a private configuration mechanism. The hope
78 is that this will ensure that configuration of fonts for all applications
79 can be centralized in one place. Centralizing font configuration will
80 simplify and regularize font installation and customization.
81 </para>
82 </refsect2>
83 <refsect2>
84 <title>Font Properties</title>
85 <para>
86 While font patterns may contain essentially any properties, there are some
87 well known properties with associated types. Fontconfig uses some of these
88 properties for font matching and font completion. Others are provided as a
89 convenience for the applications rendering mechanism.
90 </para>
91 <programlisting>
92 Property Type Description
93 --------------------------------------------------------------
94 family String Font family name
95 style String Font style. Overrides weight and slant
96 slant Int Italic, oblique or roman
97 weight Int Light, medium, demibold, bold or black
98 size Double Point size
99 aspect Double Stretches glyphs horizontally before hinting
100 pixelsize Double Pixel size
101 spacing Int Proportional, monospace or charcell
102 foundry String Font foundry name
103 antialias Bool Whether glyphs can be antialiased
104 hinting Bool Whether the rasterizer should use hinting
105 verticallayout Bool Use vertical layout
106 autohint Bool Use autohinter instead of normal hinter
107 globaladvance Bool Use font global advance data
108 file String The filename holding the font
109 index Int The index of the font within the file
110 ftface FT_Face Use the specified FreeType face object
111 rasterizer String Which rasterizer is in use
112 outline Bool Whether the glyphs are outlines
113 scalable Bool Whether glyphs can be scaled
114 scale Double Scale factor for point->pixel conversions
115 dpi Double Target dots per inch
116 rgba Int unknown, rgb, bgr, vrgb, vbgr,
117 none - subpixel geometry
118 minspace Bool Eliminate leading from line spacing
119 charset CharSet Unicode chars encoded by the font
120 lang String List of RFC-3066-style languages this
121 font supports
122 </programlisting>
123 </refsect2>
124 <refsect2>
125 <title>Font Matching</title>
126 <para>
127 Fontconfig performs matching by measuring the distance from a provided
128 pattern to all of the available fonts in the system. The closest matching
129 font is selected. This ensures that a font will always be returned, but
130 doesn't ensure that it is anything like the requested pattern.
131 </para><para>
132 Font matching starts with an application constructed pattern. The desired
133 attributes of the resulting font are collected together in a pattern. Each
134 property of the pattern can contain one or more values; these are listed in
135 priority order; matches earlier in the list are considered "closer" than
136 matches later in the list.
137 </para><para>
138 The initial pattern is modified by applying the list of editing instructions
139 specific to patterns found in the configuration; each consists of a match
140 predicate and a set of editing operations. They are executed in the order
141 they appeared in the configuration. Each match causes the associated
142 sequence of editing operations to be applied.
143 </para><para>
144 After the pattern has been edited, a sequence of default substitutions are
145 performed to canonicalize the set of available properties; this avoids the
146 need for the lower layers to constantly provide default values for various
147 font properties during rendering.
148 </para><para>
149 The canonical font pattern is finally matched against all available fonts.
150 The distance from the pattern to the font is measured for each of several
151 properties: foundry, charset, family, lang, spacing, pixelsize, style,
152 slant, weight, antialias, rasterizer and outline. This list is in priority
153 order -- results of comparing earlier elements of this list weigh more
154 heavily than later elements.
155 </para><para>
156 There is one special case to this rule; family names are split into two
157 bindings; strong and weak. Strong family names are given greater precedence
158 in the match than lang elements while weak family names are given lower
159 precedence than lang elements. This permits the document language to drive
160 font selection when any document specified font is unavailable.
161 </para><para>
162 The pattern representing that font is augmented to include any properties
163 found in the pattern but not found in the font itself; this permits the
164 application to pass rendering instructions or any other data through the
165 matching system. Finally, the list of editing instructions specific to
166 fonts found in the configuration are applied to the pattern. This modified
167 pattern is returned to the application.
168 </para><para>
169 The return value contains sufficient information to locate and rasterize the
170 font, including the file name, pixel size and other rendering data. As
171 none of the information involved pertains to the FreeType library,
172 applications are free to use any rasterization engine or even to take
173 the identified font file and access it directly.
174 </para><para>
175 The match/edit sequences in the configuration are performed in two passes
176 because there are essentially two different operations necessary -- the
177 first is to modify how fonts are selected; aliasing families and adding
178 suitable defaults. The second is to modify how the selected fonts are
179 rasterized. Those must apply to the selected font, not the original pattern
180 as false matches will often occur.
181 </para>
182 </refsect2>
183 <refsect2><title>Font Names</title>
184 <para>
185 Fontconfig provides a textual representation for patterns that the library
186 can both accept and generate. The representation is in three parts, first a
187 list of family names, second a list of point sizes and finally a list of
188 additional properties:
189 </para>
190 <programlisting>
191 &lt;families&gt;-&lt;point sizes&gt;:&lt;name1&gt;=&lt;values1&gt;:&lt;name2&gt;=&lt;values2&gt;...
192 </programlisting>
193 <para>
194 Values in a list are separated with commas. The name needn't include either
195 families or point sizes; they can be elided. In addition, there are
196 symbolic constants that simultaneously indicate both a name and a value.
197 Here are some examples:
198 </para>
199 <programlisting>
200 Name Meaning
201 ----------------------------------------------------------
202 Times-12 12 point Times Roman
203 Times-12:bold 12 point Times Bold
204 Courier:italic Courier Italic in the default size
205 Monospace:matrix=1 .1 0 1 The users preferred monospace font
206 with artificial obliquing
207 </programlisting>
208 </refsect2>
209 </refsect1>
210 <refsect1><title>Lang Tags</title>
211 <para>
212 Each font in the database contains a list of languages it supports. This is
213 computed by comparing the Unicode coverage of the font with the orthography
214 of each language. Languages are tagged using an RFC-3066 compatible naming
215 and occur in two parts -- the ISO639 language tag followed a hyphen and then
216 by the ISO 3166 country code. The hyphen and country code may be elided.
217 </para><para>
218 Fontconfig has orthographies for several languages built into the library.
219 No provision has been made for adding new ones aside from rebuilding the
220 library. It currently supports 122 of the 139 languages named in ISO 639-1,
221 141 of the languages with two-letter codes from ISO 639-2 and another 30
222 languages with only three-letter codes.
223 </para>
224 </refsect1>
225 <refsect1><title>Configuration File Format</title>
226 <para>
227 Configuration files for fontconfig are stored in XML format; this
228 format makes external configuration tools easier to write and ensures that
229 they will generate syntactically correct configuration files. As XML
230 files are plain text, they can also be manipulated by the expert user using
231 a text editor.
232 </para><para>
233 The fontconfig document type definition resides in the external entity
234 "fonts.dtd"; this is normally stored in the default font configuration
235 directory (&confdir;). Each configuration file should contain the
236 following structure:
237 <programlisting>
238 &lt;?xml version="1.0"?&gt;
239 &lt;!DOCTYPE fontconfig SYSTEM "fonts.dtd"&gt;
240 &lt;fontconfig&gt;
241 ...
242 &lt;/fontconfig&gt;
243 </programlisting>
244 </para>
245 <refsect2><title><literal>&lt;fontconfig&gt;</literal></title><para>
246 This is the top level element for a font configuration and can contain
247 <sgmltag>dir</>, <sgmltag>cache</>, <sgmltag>include</>, <sgmltag>match</> and <sgmltag>alias</> elements in any order.
248 </para></refsect2>
249 <refsect2><title><sgmltag>dir</></title><para>
250 This element contains a directory name which will be scanned for font files
251 to include in the set of available fonts.
252 </para></refsect2>
253 <refsect2><title><sgmltag>cache</></title><para>
254 This element contains a file name for the per-user cache of font
255 information. If it starts with '~', it refers to a file in the users
256 home directory. This file is used to hold information about fonts that
257 isn't present in the per-directory cache files. It is automatically
258 maintained by the fontconfig library. The default for this file
259 is ``~/.fonts.cache-<sgmltag>version</>'', where <sgmltag>version</> is the font configuration
260 file version number (currently 1).
261 </para></refsect2>
262 <refsect2><title><sgmltag>include ignore_missing="no"</></title><para>
263 This element contains the name of an additional configuration file. When
264 the XML datatype is traversed by FcConfigParse, the contents of the file
265 will also be incorporated into the configuration by passing the filename to
266 FcConfigLoadAndParse. If 'ignore_missing' is set to "yes" instead of the
267 default "no", a missing file will elicit no warning message from the library.
268 </para></refsect2>
269 <refsect2><title><sgmltag>config</></title><para>
270 This element provides a place to consolodate additional configuration
271 information. <sgmltag>config</> can contain <sgmltag>blank</> and <sgmltag>rescan</> elements in any
272 order.
273 </para></refsect2>
274 <refsect2><title><sgmltag>blank</></title><para>
275 Fonts often include "broken" glyphs which appear in the encoding but are
276 drawn as blanks on the screen. Within the <sgmltag>blank</> element, place each
277 Unicode characters which is supposed to be blank in an <sgmltag>int</> element.
278 Characters outside of this set which are drawn as blank will be elided from
279 the set of characters supported by the font.
280 </para></refsect2>
281 <refsect2><title><sgmltag>rescan</></title><para>
282 The <sgmltag>rescan</> element holds an <sgmltag>int</> element which indicates the default
283 interval between automatic checks for font configuration changes.
284 Fontconfig will validate all of the configuration files and directories and
285 automatically rebuild the internal datastructures when this interval passes.
286 </para></refsect2>
287 <refsect2><title><sgmltag>match target="pattern"</></title><para>
288 This element holds first a (possibly empty) list of <sgmltag>test</> elements and then
289 a (possibly empty) list of <sgmltag>edit</> elements. Patterns which match all of the
290 tests are subjected to all the edits. If 'target' is set to "font" instead
291 of the default "pattern", then this element applies to the font name
292 resulting from a match rather than a font pattern to be matched.
293 </para></refsect2>
294 <refsect2><title><sgmltag>test qual="any" name="property" compare="eq"</></title><para>
295 This element contains a single value which is compared with the pattern
296 property "property" (substitute any of the property names seen
297 above). 'compare' can be one of "eq", "not_eq", "less", "less_eq", "more", or
298 "more_eq". 'qual' may either be the default, "any", in which case the match
299 succeeds if any value associated with the property matches the test value, or
300 "all", in which case all of the values associated with the property must
301 match the test value.
302 </para></refsect2>
303 <refsect2><title><sgmltag>edit name="property" mode="assign" binding="weak"</></title><para>
304 This element contains a list of expression elements (any of the value or
305 operator elements). The expression elements are evaluated at run-time and
306 modify the property "property". The modification depends on whether
307 "property" was matched by one of the associated <sgmltag>test</> elements, if so, the
308 modification may affect the first matched value. Any values inserted into
309 the property are given the indicated binding. 'mode' is one of:
310 <programlisting>
311 Mode With Match Without Match
312 ---------------------------------------------------------------------
313 "assign" Replace matching value Replace all values
314 "assign_replace" Replace all values Replace all values
315 "prepend" Insert before matching Insert at head of list
316 "prepend_first" Insert at head of list Insert at head of list
317 "append" Append after matching Append at end of list
318 "append_last" Append at end of list Append at end of list
319 </programlisting>
320 </para></refsect2>
321 <refsect2><title><sgmltag>int</>, <sgmltag>double</>, <sgmltag>string</>, <sgmltag>bool</></title><para>
322 These elements hold a single value of the indicated type. <sgmltag>bool</>
323 elements hold either true or false. An important limitation exists in
324 the parsing of floating point numbers -- fontconfig requires that
325 the mantissa start with a digit, not a decimal point, so insert a leading
326 zero for purely fractional values (e.g. use 0.5 instead of .5 and -0.5
327 instead of -.5).
328 </para></refsect2>
329 <refsect2><title><sgmltag>matrix</></title><para>
330 This element holds the four <sgmltag>double</> elements of an affine
331 transformation.
332 </para></refsect2>
333 <refsect2><title><sgmltag>name</></title><para>
334 Holds a property name. Evaluates to the first value from the property of
335 the font, not the pattern.
336 </para></refsect2>
337 <refsect2><title><sgmltag>const</></title><para>
338 Holds the name of a constant; these are always integers and serve as
339 symbolic names for common font values:
340 <programlisting>
341 Constant Property Value
342 -------------------------------------
343 light weight 0
344 medium weight 100
345 demibold weight 180
346 bold weight 200
347 black weight 210
348 roman slant 0
349 italic slant 100
350 oblique slant 110
351 proportional spacing 0
352 mono spacing 100
353 charcell spacing 110
354 unknown rgba 0
355 rgb rgba 1
356 bgr rgba 2
357 vrgb rgba 3
358 vbgr rgba 4
359 none rgba 5
360 </programlisting>
361 </para>
362 </refsect2>
363 <refsect2>
364 <title><sgmltag>or</>, <sgmltag>and</>, <sgmltag>plus</>, <sgmltag>minus</>, <sgmltag>times</>, <sgmltag>divide</></title>
365 <para>
366 These elements perform the specified operation on a list of expression
367 elements. <sgmltag>or</> and <sgmltag>and</> are boolean, not bitwise.
368 </para>
369 </refsect2>
370 <refsect2>
371 <title><sgmltag>eq</>, <sgmltag>not_eq</>, <sgmltag>less</>, <sgmltag>less_eq</>, <sgmltag>more</>, <sgmltag>more_eq</></title>
372 <para>
373 These elements compare two values, producing a boolean result.
374 </para></refsect2>
375 <refsect2><title><sgmltag>not</></title><para>
376 Inverts the boolean sense of its one expression element
377 </para></refsect2>
378 <refsect2><title><sgmltag>if</></title><para>
379 This element takes three expression elements; if the value of the first is
380 true, it produces the value of the second, otherwise it produces the value
381 of the third.
382 </para></refsect2>
383 <refsect2><title><sgmltag>alias</></title><para>
384 Alias elements provide a shorthand notation for the set of common match
385 operations needed to substitute one font family for another. They contain a
386 <sgmltag>family</> element followed by optional <sgmltag>prefer</>, <sgmltag>accept</> and <sgmltag>default</>
387 elements. Fonts matching the <sgmltag>family</> element are edited to prepend the
388 list of <sgmltag>prefer</>ed families before the matching <sgmltag>family</>, append the
389 <sgmltag>accept</>able familys after the matching <sgmltag>family</> and append the <sgmltag>default</>
390 families to the end of the family list.
391 </para></refsect2>
392 <refsect2><title><sgmltag>family</></title><para>
393 Holds a single font family name
394 </para></refsect2>
395 <refsect2><title><sgmltag>prefer</>, <sgmltag>accept</>, <sgmltag>default</></title><para>
396 These hold a list of <sgmltag>family</> elements to be used by the <sgmltag>alias</> element.
397 <sgmltag>/article</>
398 </para></refsect2>
399 </refsect1>
400 <refsect1><title>EXAMPLE CONFIGURATION FILE</title>
401 <refsect2><title>System configuration file</title>
402 <para>
403 This is an example of a system-wide configuration file
404 </para>
405 <programlisting>
406 &lt;?xml version="1.0"?&gt;
407 &lt;!DOCTYPE fontconfig SYSTEM "fonts.dtd"&gt;
408 &lt;!-- &confdir;/fonts.conf file to configure system font access --&gt;
409 &lt;fontconfig&gt;
410 &lt;!--
411 Find fonts in these directories
412 --&gt;
413 &lt;dir&gt;/usr/X11R6/lib/X11/fonts/truetype&lt;/dir&gt;
414 &lt;dir&gt;/usr/X11R6/lib/X11/fonts/Type1&lt;/dir&gt;
415
416 &lt;!--
417 Accept deprecated 'mono' alias, replacing it with 'monospace'
418 --&gt;
419 &lt;match target="pattern"&gt;
420 &lt;test qual="any" name="family"&gt;&lt;string&gt;mono&lt;/string&gt;&lt;/test&gt;
421 &lt;edit name="family" mode="assign"&gt;&lt;string&gt;monospace&lt;/string&gt;&lt;/edit&gt;
422 &lt;/match&gt;
423
424 &lt;!--
425 Names not including any well known alias are given 'sans'
426 --&gt;
427 &lt;match target="pattern"&gt;
428 &lt;test qual="all" name="family" mode="not_eq"&gt;sans&lt;/test&gt;
429 &lt;test qual="all" name="family" mode="not_eq"&gt;serif&lt;/test&gt;
430 &lt;test qual="all" name="family" mode="not_eq"&gt;monospace&lt;/test&gt;
431 &lt;edit name="family" mode="append_last"&gt;&lt;string&gt;sans&lt;/string&gt;&lt;/edit&gt;
432 &lt;/match&gt;
433
434 &lt;!--
435 Load per-user customization file, but don't complain
436 if it doesn't exist
437 --&gt;
438 &lt;include ignore_missing="yes"&gt;~/.fonts.conf&lt;/include&gt;
439
440 &lt;!--
441 Alias well known font names to available TrueType fonts.
442 These substitute TrueType faces for similar Type1
443 faces to improve screen appearance.
444 --&gt;
445 &lt;alias&gt;
446 &lt;family&gt;Times&lt;/family&gt;
447 &lt;prefer&gt;&lt;family&gt;Times New Roman&lt;/family&gt;&lt;/prefer&gt;
448 &lt;default&gt;&lt;family&gt;serif&lt;/family&gt;&lt;/default&gt;
449 &lt;/alias&gt;
450 &lt;alias&gt;
451 &lt;family&gt;Helvetica&lt;/family&gt;
452 &lt;prefer&gt;&lt;family&gt;Verdana&lt;/family&gt;&lt;/prefer&gt;
453 &lt;default&gt;&lt;family&gt;sans&lt;/family&gt;&lt;/default&gt;
454 &lt;/alias&gt;
455 &lt;alias&gt;
456 &lt;family&gt;Courier&lt;/family&gt;
457 &lt;prefer&gt;&lt;family&gt;Courier New&lt;/family&gt;&lt;/prefer&gt;
458 &lt;default&gt;&lt;family&gt;monospace&lt;/family&gt;&lt;/default&gt;
459 &lt;/alias&gt;
460
461 &lt;!--
462 Provide required aliases for standard names
463 Do these after the users configuration file so that
464 any aliases there are used preferentially
465 --&gt;
466 &lt;alias&gt;
467 &lt;family&gt;serif&lt;/family&gt;
468 &lt;prefer&gt;&lt;family&gt;Times New Roman&lt;/family&gt;&lt;/prefer&gt;
469 &lt;/alias&gt;
470 &lt;alias&gt;
471 &lt;family&gt;sans&lt;/family&gt;
472 &lt;prefer&gt;&lt;family&gt;Verdana&lt;/family&gt;&lt;/prefer&gt;
473 &lt;/alias&gt;
474 &lt;alias&gt;
475 &lt;family&gt;monospace&lt;/family&gt;
476 &lt;prefer&gt;&lt;family&gt;Andale Mono&lt;/family&gt;&lt;/prefer&gt;
477 &lt;/alias&gt;
478 &lt;/fontconfig&gt;
479 </programlisting>
480 </refsect2>
481 <refsect2><title>User configuration file</title>
482 <para>
483 This is an example of a per-user configuration file that lives in
484 ~/.fonts.conf
485 </para>
486 <programlisting>
487 &lt;?xml version="1.0"?&gt;
488 &lt;!DOCTYPE fontconfig SYSTEM "fonts.dtd"&gt;
489 &lt;!-- ~/.fonts.conf for per-user font configuration --&gt;
490 &lt;fontconfig&gt;
491
492 &lt;!--
493 Private font directory
494 --&gt;
495 &lt;dir&gt;~/misc/fonts&lt;/dir&gt;
496
497 &lt;!--
498 use rgb sub-pixel ordering to improve glyph appearance on
499 LCD screens. Changes affecting rendering, but not matching
500 should always use target="font".
501 --&gt;
502 &lt;match target="font"&gt;
503 &lt;edit name="rgba" mode="assign"&gt;&lt;const&gt;rgb&lt;/const&gt;&lt;/edit&gt;
504 &lt;/match&gt;
505 &lt;/fontconfig&gt;
506 </programlisting>
507 </refsect2>
508 </refsect1>
509 <refsect1><title>Files</title>
510 <para>
511 <emphasis>fonts.conf</emphasis>
512 contains configuration information for the fontconfig library
513 consisting of directories to look at for font information as well as
514 instructions on editing program specified font patterns before attempting to
515 match the available fonts. It is in xml format.
516 </para>
517 <para>
518 <emphasis>fonts.dtd</emphasis>
519 is a DTD that describes the format of the configuration files.
520 </para>
521 <para>
522 <emphasis>~/.fonts.conf</emphasis>
523 is the conventional location for per-user font configuration, although the
524 actual location is specified in the global fonts.conf file.
525 </para>
526 <para>
527 <emphasis> ~/.fonts.cache-*</emphasis>
528 is the conventional repository of font information that isn't found in the
529 per-directory caches. This file is automatically maintained by fontconfig.
530 </para>
531 </refsect1>
532 <refsect1><title>Version</title>
533 <para>
534 Fontconfig version &version;
535 </para>
536 </refsect1>
537 </refentry>