Warning, /utilities/konsole/doc/user/README.fonts is written in an unsupported language. File is not indexed.

0001 [README.fonts]
0002 
0003 Fonts need to suit the needs of X11, QT and konsole.
0004 
0005 
0006 * the font has to be fixed width.
0007 
0008   This requirement originate both from X11 and
0009   the way QT and konsole uses it together with
0010   the very idea of what a terminal emulation is
0011   about.
0012 
0013   Basically, a terminal emulation is to display
0014   a character cell oriented screen, meaning that
0015   all characters in the same column line up
0016   properly under each other.
0017 
0018   Though one could make this with a variable
0019   width font (which are preferably used in text
0020   processing) the outcome would look very poor,
0021   since the glyphs would have to be placed into
0022   a cell fitting the widest character in the
0023   font, which is typically more than two times
0024   wider than the narrowest glyph. Imagine a text
0025   with  l  o  t  s     o  f     s  p  a  c  e  s
0026   inserted between each character to get the idea.
0027 
0028   Further, doing this with a variable width font
0029   means to do some operations that slow down the
0030   whole display refreshing dramatically. X11/QT
0031   performs very poor when one draws characters
0032   individually while additionally clearing
0033   background regions instead of drawing a complete
0034   string (as konsole does). If one draws a string
0035   with a variable width font, it is of course 
0036   typeset by X11 variable width, not longer
0037   conforming to the character cell model of a
0038   terminal emulation.
0039 
0040   So from both perspectives, variable width fonts
0041   are unsuited for terminal emulation purposes.
0042 
0043 
0044 * the font has to contain some graphical characters
0045 
0046   Many full screen applications make use of these
0047   characters to draw boxes, scroll bars and likely
0048   pseudo graphical entities.
0049 
0050   Using fonts without this capabilities means to
0051   break the visual appearance of these products.
0052 
0053   As a minimum the following glyphs have to be
0054   included within a font to become usable:
0055 
0056   - 0x0b U+2518 : BOX DRAWINGS LIGHT UP AND LEFT
0057   - 0x0c U+2510 : BOX DRAWINGS LIGHT DOWN AND LEFT
0058   - 0x0d U+250c : BOX DRAWINGS LIGHT DOWN AND RIGHT
0059   - 0x0e U+2514 : BOX DRAWINGS LIGHT UP AND RIGHT
0060   - 0x0f U+253c : BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
0061   - 0x10 U+23ba : HORIZONTAL SCAN LINE-1
0062   - 0x11 U+23bb : HORIZONTAL SCAN LINE-3
0063   - 0x12 U+2500 : BOX DRAWINGS LIGHT HORIZONTAL (scan line 5)
0064   - 0x13 U+23bc : HORIZONTAL SCAN LINE-7
0065   - 0x14 U+23bd : HORIZONTAL SCAN LINE-9
0066   - 0x15 U+251c : BOX DRAWINGS LIGHT VERTICAL AND RIGHT
0067   - 0x16 U+2524 : BOX DRAWINGS LIGHT VERTICAL AND LEFT
0068   - 0x17 U+2534 : BOX DRAWINGS LIGHT UP AND HORIZONTAL
0069   - 0x18 U+252c : BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
0070   - 0x19 U+2502 : BOX DRAWINGS LIGHT VERTICAL
0071 
0072   - 0x01 U+25c6 : BLACK DIAMOND
0073   - 0x02 U+2592 : MEDIUM SHADE
0074   - 0x1F U+00b7 : MIDDLE DOT
0075 
0076   Also, the VT100 knows about the following glyphs,
0077   though omitting them is unlikely to break anything.
0078 
0079   - 0x07 U+00b0 : DEGREE SIGN
0080   - 0x08 U+00b1 : PLUS-MINUS SIGN
0081   - 0x1a U+2264 : LESS THAN OR EQUAL TO
0082   - 0x1b U+2265 : GREATER THAN OR EQUAL TO
0083   - 0x1c U+03c0 : GREEK SMALL LETTER PI
0084   - 0x1d U+2260 : NOT EQUAL TO
0085   - 0x1e U+00a3 : POUND SIGN
0086 
0087   Additionally, digraphs are provided for some
0088   of the control characters by VT100, too.
0089 
0090   - 0x03 U+2409 : DIGRAPH HT
0091   - 0x04 U+240c : DIGRAPH FF
0092   - 0x05 U+240d : DIGRAPH CR
0093   - 0x06 U+240a : DIGRAPH LF
0094   - 0x09 U+240d : DIGRAPH NL
0095   - 0x0a U+240b : DIGRAPH VT
0096 
0097   The mapping of non-iso10646 fonts is extended by konsole
0098   with the regular xterm fixed font placement of these
0099   glyphs to 0x00-0x1f.
0100 
0101 
0102 * Iso10646 fonts needs to have a fall back character
0103   to be properly assigned.
0104 
0105   Use the "DEFAULT_CHAR" property with bdf fonts
0106   to do so. Other font representations provide
0107   likely means. The unicode assignment is U+fffd.
0108 
0109   If such a character isn't defined, X11 might
0110   choose to void the character completely, causing
0111   inconsistent appearance when refreshing the screen.
0112 
0113   One may choose the space glyph to hide the flaw
0114   or a box like one to exhibit it.