How to write good
- Correct spelling is esential.
- Verbs always has to agree with their subjects.
- Avoid run-on sentences they are hard to read.
- About those fragments.
- Remember to not ever split an infinitive.
- Parentheses are (usually) not necessary.
- Do not end a sentence with a preposition. This is something the reader will not put up with.
- Use the apostrophe in it's proper place and omit it when its not needed.
- The passive voice is to be avoided.
- Proofread your writing to see if you any words out.
X Logical Font Description
Two different font systems are used by X11: the older X Logical Font Description (XLFD) and the newer X FreeType (Xft) systems.
XLFD was originally designed for bitmap fonts and support for scalable fonts (Type1, TrueType and OpenType) was added later. XLFD does not support anti‑aliasing and sub‑pixel rasterization. Xft uses the FreeType and Fontconfig libraries and may be more suitable when the smooth appearance of fonts is desired.
Font names are complex when using XLFD:
The name contains fourteen elements, each element field preceded by a hyphen,
-. Not all elements are required to be present in a font name and a field may be empty. Names can be simplified for the user by the wildcards
?. Note that quotes are needed to prevent the shell from interpreting the wildcards and to avoid backslashing whitespace when a font name is used on the command-line. It is safest to make sure all fourteen fields are present, but sometimes concatenated fields do work with wildcards.
$ xterm -fn "-*-fixed-medium-r-s*--12-87-*-*-*-*-iso10???-1" $ xterm -fn "-*-dejavu sans mono-medium-r-normal--*-80-*-*-*-*-iso10646-1"
Names can be simplified even more by using aliases:
$ xterm -fn 12x24
Two nearly indispensible utilities for working with XLFD names are xfontsel,, and xlsfonts, . Xfontsel uses dropdown menus for selecting parts of a font name and previews the font selected. Xlsfonts can list fonts by name, with selectable degrees of detail, and can show how wildcards and aliases will be interpreted by the XLFD system. If a fontname is not working, check for a match with xlsfonts.
$ xlsfonts -fn "*-fixed-medium-r-n*--13-120-75-*-iso1*-1" $ xlsfonts -ll -fn fixed
Font name elements
The following table provides a description of the font name fields with some tips on the usage. The elements are listed in the same order as they appear in a font name. The names used by xfontsel are listed below the longer uppercase names.
| The supplier of the font.
This is useful when two different fonts share the same FAMILY_NAME, such as
| The typeface name. Usually, fonts with the same family name are visually similar.
Many applications will choose a default font for the user unless this is named.
| The degree of blackness of the glyphs. Somewhat ambiguous, common values are |
The user should select this value.
| Common values are |
Usually this needs to be specified.
| Values are set by the designer, examples are |
A value must be given when there are two or more possible values.
| Often an empty field, but values may be supplied by the foundry.
In xfontsel, an empty field is chosen by selecting
| The body size of a font for a particular POINT_SIZE and RESOLUTION_Y. Changes the height of a font independent of the point size for which the font was designed.
Use a zero,
| The body heighth for which the font was designed. Values are expressed as tenths of a point (one point is nominally one seventy-secondth of an inch).
Use this value to select the typeface size for scalable fonts and use a wildcard the PIXEL_SIZE field. The selections are artificially limited in xfontsel; change it on the command-line or in the resource file.
Bitmap fonts do not scale well and attempts will often result in unmatched font names. It's better to use bitmap fonts at the sizes provided by the designers.
| The horizontal resolution as an integer-string for which the font was designed. The values are expressed as pixels or dpi.
For scalable fonts this may safely be set to zero or
| The vertical dpi for which the font was designed.
Similar to RESOLUTION_X, scalable fonts can have this value set to zero or
Some older applications may leave glyph fragments when the display is refreshed if fonts with the
| Arithmetic mean of the widths of all glyphs. Zero is used for proportional fonts.
It is safe to wildcard this value with *.
| Always paired with the next field, this names the registration authority for the character encoding used. Examples are |
Except for ASCII only fonts, this must be named, not wildcarded. It's always safe to choose an available registry that is compatible with the user's locale settings.
|An identifier for the character set encoding.|
Please see Fonts for a guide to installing font files and modifying the font path. For a font to be acessible with XLFD, the directory containing the font file must be on the user's font path.
mkfontdir and mkfontscale
To create XLFD names for fonts, two programs, mkfontscale and mkfontdir are run in the directories containing the font files.
Unlike bitmap fonts, which contain one typeface at one size in each font file, scalable fonts contain many sizes and even variations of the typeface within a single file. To create XLFD names for these fonts, the program mkfontscale is used. This program writes the file names and the created XLFD names to a file named
fonts.scale. The first line of the newly written file is the number of font names in the file:
$ head -n 6 /usr/share/fonts/Type1/fonts.scale
792 UTBI____.pfa -adobe-utopia-bold-i-normal--0-0-0-0-p-0-adobe-standard UTBI____.pfa -adobe-utopia-bold-i-normal--0-0-0-0-p-0-ascii-0 UTBI____.pfa -adobe-utopia-bold-i-normal--0-0-0-0-p-0-iso10646-1
The program mkfontdir reads all the font files in a directory and creates XLFD names for bitmap fonts in that directory. It then writes the file name and the XLFD name on a single line to a text file,
fonts.dir. The first line in fonts.dir is the number of fonts included in the file.