Saturday, November 05, 2005

Fonts - Konqueror


sharp non-antialiased fonts for LCDs at 1280x1024 / 96 dpi

Settings->Configure Konqueror->Appearance

Standard font: Arial
Font size: 8

Settings->Configure Konqueror->Fonts

Minimum font size: 8
Medium font size: 11

Standard: Arial
Fixed: Courier New
Serif: Times New Roman
Sans serif: Arial
Cursive: Comic Sans MS
Fantasy: Impact

- use the same settings in KDE Help Center

Friday, November 04, 2005

Fonts - LCD optimized (similar to ClearType)


https://wiki.ubuntu.com/Fonts


- set font rendering

# sudo dpkg-reconfigure fontconfig

- select: native, then: never, then: yes (if you want to use fonts like Artwiz)

***

- edit the font config file

# vi ~/.fonts.conf

< ?xml version="1.0"? >
< !DOCTYPE fontconfig SYSTEM "fonts.dtd" >
< fontconfig >

< !--
.fonts.conf
release 6.3.23
Licensed under GNU GPL
================================
LCD optimized 96 dpi
"Sharp'N'Clear" font settings
with emphasis on 'msttcorefonts'

tested on Ubuntu GNU/Linux 5.10
================================
by Obi Bok
Gmail: obibok
http://linuxtuneup.blogspot.com
================================
Why was this conceived?

- some font families look better hinted by Byte Code Interpreter (BCI)
while other fonts look better hinted by Auto-Hinter
- hinting type affects italic and bold fonts differently
- antialiasing needs to be adjusted according to font families and sizes

Essentially, there is no one single rule that works for all fonts.

NOTE:
- Verdana @ 8pt doesn't render '2' and '6' right
- Arial shows 'Z' distorted in Firefox 1.5
-- >

< !--
Make font sizes match the dpi set in Xorg.

Increase or decrease this value if fonts are too small or too large
for your screen resolution.

FIXME: this only affects QT-based apps?
-- >
< match target="pattern" >
< edit name="dpi" mode="assign" >
< double > 96 < /double >
< /edit >
< /match >

< !--
Enable anti-aliasing.

This only works for outline and scalable fonts.
Bitmap and PostScript fonts do not get anti-aliased.

FIXME: is this correct?
-- >
< match target="font" >
< edit name="antialias" mode="assign" >
< bool > true < /bool >
< /edit >
< /match >

< !--
Set sub-pixel order if not detected.

"X knows the sub pixel order already, and if this is enabled as well,
Freetype produces some very strange results. However, if you do still
have problems, consider (...) 'rgb' (the standard for LCD monitors),
'bgr' (unusual), 'vrgb' (vertical rgb, if you have a monitor that
has been rotated by 90 degrees[1]), 'vgbr' (as vrgb, but very rare)."
< http://www.linuxquestions.org/linux/answers/Hardware/ LCD_TFT_Monitor_Configuration_in_X_Org >

Find out your LCD's sub-pixel order:
< http://grc.com/image/cleartype2c.gif >
-- >
< match target="font" >
< test qual="all" name="rgba" compare="eq" >
< const > unknown < /const >
< /test >
< edit name="rgba" mode="assign" >
< const > rgb < /const >
< /edit >
< /match >

< !--
Sub-pixel hinting via BCI enabled by default if compiled in.

"Whole-pixel anti-aliasing does not represent a useful solution for
improving small point-size type. (...) By 'borrowing' sub-pixels from
adjacent whole pixels, we can fine-tune the placement and width of typeface
features with three times more horizontal accuracy then ever before!"
< http://grc.com/ctwhat.htm >
-- >

< !--
Disable anti-aliasing for select fonts based on size and style.

| font | WinXP | Linux |
=========================================
Andale Mono IPA 14 13
Arial 12 13
Arial Black 12 -
Arial Narrow 14 13
Berling Antiqua 12 13
Book Antiqua 12 13
Bookdings 0 ?
Bookman Old Style 22 13
Century Gothic 16 16
Comic Sans MS 11 9/11
Courier New 26 22
Franklin Gothic Medium 12 10/12
Frutiger Linotype 12 10/12
Garamond 18 13/19
Georgia 12 12/13
Impact 16 0
Kartika 12 16
Lucida Console 12 13
Lucida Sans Typewriter 12 12
Lucida Sans Unicode 12 10/13
Marlett ? ?
Microsoft Sans Serif 12 12/13
Palatino Linotype 12 13
SylfaenARM - 13
Symbol 12 ?
Tahoma 12 12/13
Times New Roman 12 13
Trebuchet MS 12 12
Verdana 12 12
Vrinda 12 17
Webdings 20 ?
Wingdings 20 ?
=========================================

"The relationship of pixels to points depends on the number of pixels
per inch, which is typically some 'standard' value corresponding to
default screen fonts. For example, MS Windows has two standard sets of
screen fonts initially designed for IBM display systems: 'small' (VGA)
and 'large' (8514/A). 'Small' fonts are 96 pixels per inch, 'large' are
120. Macintosh systems render type at a nominal 72 pixels per inch, i.e.
one pixel = one point. Some display systems using scalable screen fonts
allow fine tuning of pixels per inch to suit user preferences."
< http://www.hpaa.com/css1/pxnpts.asp >

X pt * 96 dpi / 72 dpi = Y px
-- >

< !--
font group #1: normal roman anti-aliased above 10pt/13.4px
-- >
< match target="font" >
< test qual="any" name="family" compare="eq" >
< string > Franklin Gothic Medium < /string >
< string > Frutiger Linotype < /string >
< !-- Lucida Sans Unicode has no italic and uses artificial oblique -- >
< string > Lucida Sans Unicode < /string >
< /test >
< test qual="any" name="pixelsize" compare="less_eq" >
< double > 13.4 < /double >
< /test >
< test qual="any" name="weight" compare="less_eq" >
< const > medium < /const >
< /test >
< test qual="any" name="slant" compare="eq" >
< const > roman < /const >
< /test >
< edit name="antialias" mode="assign" >
< bool > false < /bool >
< /edit >
< /match >

< !--
font group #2: normal roman anti-aliased above 11pt/14.7px

Must use 15px instead of 14.7px for this to work in QT-based apps
-- >
< match target="font" >
< test qual="any" name="family" compare="eq" >
< !-- Comic Sans MS has no italic and uses artificial oblique -- >
< string > Comic Sans MS < /string >
< /test >
< test qual="any" name="pixelsize" compare="less_eq" >
< double > 15 < /double >
< /test >
< test qual="any" name="weight" compare="less_eq" >
< const > medium < /const >
< /test >
< test qual="any" name="slant" compare="eq" >
< const > roman < /const >
< /test >
< edit name="antialias" mode="assign" >
< bool > false < /bool >
< /edit >
< /match >

< !--
font group #3: normal roman anti-aliased above 12pt/16px

Must use at least 16.1px instead of 16px for this to work in Firefox
-- >
< match target="font" >
< test qual="any" name="family" compare="eq" >
< string > Georgia < /string >
< string > Lucida Sans < /string >
< string > Lucida Sans Typewriter < /string >
< !-- Microsoft Sans Serif has no italic and uses artificial oblique -- >
< string > Microsoft Sans Serif < /string >
< !-- Tahoma has no italic and uses artificial oblique -- >
< string > Tahoma < /string >
< string > Trebuchet MS < /string >
< string > Verdana < /string >
< /test >
< test qual="any" name="pixelsize" compare="less_eq" >
< double > 16.1 < /double >
< /test >
< test qual="any" name="weight" compare="less_eq" >
< const > medium < /const >
< /test >
< test qual="any" name="slant" compare="eq" >
< const > roman < /const >
< /test >
< edit name="antialias" mode="assign" >
< bool > false < /bool >
< /edit >
< /match >

< !--
font group #4: normal roman anti-aliased above 13pt/17.4px
-- >
< match target="font" >
< test qual="any" name="family" compare="eq" >
< string > Arial < /string >
< string > Arial Narrow < /string >
< string > Berling Antiqua < /string >
< string > Book Antiqua < /string >
< string > Bookman Old Style < /string >
< string > Garamond < /string >
< !-- Lucida Console has no italic and uses artificial oblique -- >
< string > Lucida Console < /string >
< string > Palatino Linotype < /string >
< string > SylfaenARM < /string >
< string > Times New Roman < /string >
< /test >
< test qual="any" name="pixelsize" compare="less_eq" >
< double > 17.4 < /double >
< /test >
< test qual="any" name="weight" compare="less_eq" >
< const > medium < /const >
< /test >
< test qual="any" name="slant" compare="eq" >
< const > roman < /const >
< /test >
< edit name="antialias" mode="assign" >
< bool > false < /bool >
< /edit >
< /match >

< !--
font group #5: normal roman anti-aliased above 16pt/21.4px
-- >
< match target="font" >
< test qual="any" name="family" compare="eq" >
< string > Century Gothic < /string >
< string > Kartika < /string >
< /test >
< test qual="any" name="pixelsize" compare="less_eq" >
< double > 21.4 < /double >
< /test >
< test qual="any" name="weight" compare="less_eq" >
< const > medium < /const >
< /test >
< test qual="any" name="slant" compare="eq" >
< const > roman < /const >
< /test >
< edit name="antialias" mode="assign" >
< bool > false < /bool >
< /edit >
< /match >

< !--
font group #6: normal roman anti-aliased above 17pt/23px
-- >
< match target="font" >
< test qual="any" name="family" compare="eq" >
< string > Vrinda < /string >
< /test >
< test qual="any" name="pixelsize" compare="less_eq" >
< double > 23 < /double >
< /test >
< test qual="any" name="weight" compare="less_eq" >
< const > medium < /const >
< /test >
< test qual="any" name="slant" compare="eq" >
< const > roman < /const >
< /test >
< edit name="antialias" mode="assign" >
< bool > false < /bool >
< /edit >
< /match >

< !--
font group #7: normal roman anti-aliased above 22pt/29.4px
-- >
< match target="font" >
< test qual="any" name="family" compare="eq" >
< string > Courier New < /string >
< /test >
< test qual="any" name="pixelsize" compare="less_eq" >
< double > 29.4 < /double >
< /test >
< test qual="any" name="weight" compare="less_eq" >
< const > medium < /const >
< /test >
< test qual="any" name="slant" compare="eq" >
< const > roman < /const >
< /test >
< edit name="antialias" mode="assign" >
< bool > false < /bool >
< /edit >
< /match >

< !--
font group #8: bold roman anti-aliased above 9pt/12px
-- >
< match target="font" >
< test qual="any" name="family" compare="eq" >
< string > Georgia < /string >
< /test >
< test qual="any" name="pixelsize" compare="less_eq" >
< double > 12 < /double >
< /test >
< test qual="any" name="weight" compare="more" >
< const > medium < /const >
< /test >
< test qual="any" name="slant" compare="eq" >
< const > roman < /const >
< /test >
< edit name="antialias" mode="assign" >
< bool > false < /bool >
< /edit >
< /match >

< !--
font group #9: bold roman anti-aliased above 10pt/13.4px
-- >
< match target="font" >
< test qual="any" name="family" compare="eq" >
< string > Tahoma < /string >
< string > Verdana < /string >
< /test >
< test qual="any" name="pixelsize" compare="less_eq" >
< double > 13.4 < /double >
< /test >
< test qual="any" name="weight" compare="more" >
< const > medium < /const >
< /test >
< test qual="any" name="slant" compare="eq" >
< const > roman < /const >
< /test >
< edit name="antialias" mode="assign" >
< bool > false < /bool >
< /edit >
< /match >

< !--
font group #10: bold roman anti-aliased above 12pt/16px
-- >
< match target="font" >
< test qual="any" name="family" compare="eq" >
< string > Courier New < /string >
< /test >
< test qual="any" name="pixelsize" compare="less_eq" >
< double > 16 < /double >
< /test >
< test qual="any" name="weight" compare="more" >
< const > medium < /const >
< /test >
< test qual="any" name="slant" compare="eq" >
< const > roman < /const >
< /test >
< edit name="antialias" mode="assign" >
< bool > false < /bool >
< /edit >
< /match >

< !--
Enable FreeType Auto-Hinter for select fonts.

Auto-Hinter is disabled by default if Bytecode Interpreter was compiled in.
Some Linux "native" fonts look better hinted by Auto-Hinter,
usually in sizes 11pt-13pt; others look better hinted by BCI.
-- >

< !--
Set Auto-Hinter to full hinting style.

'slight' and 'medium' hinting often produce pixel discoloration.
-- >
< match target="font" >
< edit name="hintstyle" mode="assign" >
< const > hintfull < /const >
< /edit >
< /match >

< !--
font group #11: hinted via Auto-Hinter
-- >
< match target="font" >
< test qual="any" name="family" compare="eq" >
< string > Bitstream Charter < /string >
< string > Courier 10 Pitch < /string >
< string > DejaVu Sans Condensed < /string >
< string > DejaVu Serif Condensed < /string >
< string > FreeMono < /string >
< string > FreeSans < /string >
< string > FreeSerif < /string >
< string > Luxi Mono < /string >
< string > Luxi Sans < /string >
< string > Luxi Serif < /string >
< string > MgOpen Canonica < /string >
< string > MgOpen Cosmetica < /string >
< string > MgOpen Modata < /string >
< string > MgOpen Moderna < /string >
< string > URW Bookman L < /string >
< string > URW Chancery L < /string >
< string > URW Gothic L < /string >
< string > URW Palladio L < /string >
< /test >
< edit name="autohint" mode="assign" >
< bool > true < /bool >
< /edit >
< /match >

< !--
font group #12: normal italic hinted via Auto-Hinter at 9-10pt

Arial hinted via BCI at 9pt has distorted 'y', at 10pt - '2'
-- >
< match target="font" >
< test qual="any" name="family" compare="eq" >
< string > Arial < /string >
< /test >
< test qual="any" name="pixelsize" compare="more_eq" >
< double > 12 < /double >
< /test >
< test qual="any" name="pixelsize" compare="less_eq" >
< double > 13.4 < /double >
< /test >
< test qual="any" name="weight" compare="less_eq" >
< const > medium < /const >
< /test >
< test qual="any" name="slant" compare="not_eq" >
< const > roman < /const >
< /test >
< edit name="autohint" mode="assign" >
< bool > true < /bool >
< /edit >
< /match >

< !--
font group #13: normal italic hinted via Auto-Hinter at 12pt

This fixes distorted 'K'
-- >
< match target="font" >
< test qual="any" name="family" compare="eq" >
< string > Book Antiqua < /string >
< /test >
< test qual="any" name="pixelsize" compare="eq" >
< double > 16 < /double >
< /test >
< test qual="any" name="weight" compare="less_eq" >
< const > medium < /const >
< /test >
< test qual="any" name="slant" compare="not_eq" >
< const > roman < /const >
< /test >
< edit name="autohint" mode="assign" >
< bool > true < /bool >
< /edit >
< /match >

< !--
font group #14: normal italic hinted via Auto-Hinter at all sizes
-- >
< match target="font" >
< test qual="any" name="family" compare="eq" >
< !-- 10, 11, 12 -- >
< string > Frutiger Linotype < /string >
< !-- 8-9: 'z', '2'; 10-15, 17, 19: 'z' -- >
< string > Times New Roman < /string >
< !-- 9-10: 'N' 'Q'; 12: 'w', 'C', 'D', 'O', 'Q', 'R', '2', '9', '0' -- >
< string > Verdana < /string >
< /test >
< test qual="any" name="weight" compare="less_eq" >
< const > medium < /const >
< /test >
< test qual="any" name="slant" compare="not_eq" >
< const > roman < /const >
< /test >
< edit name="autohint" mode="assign" >
< bool > true < /bool >
< /edit >
< /match >

< !--
Set minimum allowed size to avoid illegible fonts.
-- >
< !-- 7pt in QT-based apps -- >
< match target="pattern" >
< test qual="any" name="size" compare="less" >
< double > 7 < /double >
< /test >
< edit name="size" mode="assign" >
< double > 7 < /double >
< /edit >
< /match >

< !-- 9.4px (7pt) in GTK-based apps -- >
< match target="pattern" >
< test qual="any" name="pixelsize" compare="less" >
< double > 9.4 < /double >
< /test >
< edit name="pixelsize" mode="assign" >
< double > 9.4 < /double >
< /edit >
< /match >

< !--
TODO: Create rules limiting minimum sizes for these *bold* fonts:

Andale Mono | Andale Mono IPA
Arial
Arial Narrow
Berling Antiqua
Book Antiqua
Bookman Old Style
Century Gothic
Comic Sans MS
Courier New
Franklin Gothic Medium
Frutiger Linotype
Garamond
Georgia
Kartika
Lucida Console
Lucida Sans Typewriter
Lucida Sans Unicode
Microsoft Sans Serif
Palatino | Palatino Linotype
SylfaenARM
Tahoma
Times New Roman
Trebuchet MS
Verdana
Vrinda
-- >

< !--
font group #15: bold fonts no smaller than 10.7px (8pt)

FIXME: for Firefox and other GTK-based apps?
-- >
< match target="font" >
< test qual="any" name="family" compare="eq" >
< string > Arial < /string >
< /test >
< test qual="any" name="pixelsize" compare="less" >
< double > 10.7 < /double >
< /test >
< test qual="any" name="weight" compare="more" >
< const > medium < /const >
< /test >
< edit name="pixelsize" mode="assign" >
< double > 10.7 < /double >
< /edit >
< /match >

< !--
Anti-alias fonts with "fake" styles.

FIXME: QT only? GTK? Firefox?
-- >
< !-- FIXME: dirty_hack(tm) - fontconfig reports syntax errors -- >
< match target="font" >
< test qual="any" name="matrix" compare="not_eq" >
< double > 0 < /double >
< /test >
< !-- another approach - no errors but freezes Firefox 1.5 -- >
< !--
< match target="font" >
< test qual="any" name="matrix" compare="eq" >
< name > matrix < /name >
< /test >
-- >
< edit name="antialias" mode="assign" >
< bool > true < /bool >
< /edit >
< /match >

< !--
Substitute unavailable and/or unwanted fonts.

Aliases will not work if the actual fonts are installed.
Replacing font family works in Firefox (FIXME: and other GTK-based apps?)
QT-based apps also need font foundry replaced.
Grouping fonts for substitution doesn't work in Firefox, so we need each
font family replaced individually.
-- >

< !--
sans-serif

"If the font still has no generic name, add sans-serif"
/etc/fonts.conf

Therefore, we only substitute what we need.
-- >
< match target="pattern" >
< test qual="any" name="family" compare="eq" >
< string > Bitstream Charter < /string >
< /test >
< edit name="family" mode="prepend" binding="same" >
< string > Arial < /string >
< /edit >
< /match >

< match target="pattern" >
< test qual="any" name="family" compare="eq" >
< string > Bitstream Vera Sans < /string >
< /test >
< edit name="family" mode="prepend" binding="same" >
< string > Arial < /string >
< /edit >
< /match >

< match target="pattern" >
< test qual="any" name="family" compare="eq" >
< string > DejaVu Sans < /string >
< /test >
< edit name="family" mode="prepend" binding="same" >
< string > Arial < /string >
< /edit >
< /match >

< match target="pattern" >
< test qual="any" name="family" compare="eq" >
< string > DejaVu Sans Condensed < /string >
< /test >
< edit name="family" mode="prepend" binding="same" >
< string > Arial < /string >
< /edit >
< /match >

< match target="pattern" >
< test qual="any" name="family" compare="eq" >
< string > FreeSans < /string >
< /test >
< edit name="family" mode="prepend" binding="same" >
< string > Arial < /string >
< /edit >
< /match >

< match target="pattern" >
< test qual="any" name="family" compare="eq" >
< string > Helvetica < /string >
< /test >
< edit name="family" mode="prepend" binding="same" >
< string > Arial < /string >
< /edit >
< /match >

< match target="pattern" >
< test qual="any" name="family" compare="eq" >
< string > Lucida < /string >
< /test >
< edit name="family" mode="prepend" binding="same" >
< string > Arial < /string >
< /edit >
< /match >

< match target="pattern" >
< test qual="any" name="family" compare="eq" >
< !-- FIXME: may need to use "Lucida Bright" instead -- >
< string > LucidaBright < /string >
< /test >
< edit name="family" mode="prepend" binding="same" >
< string > Arial < /string >
< /edit >
< /match >

< match target="pattern" >
< test qual="any" name="family" compare="eq" >
< string > Lucida Bright < /string >
< /test >
< edit name="family" mode="prepend" binding="same" >
< string > Arial < /string >
< /edit >
< /match >

< match target="pattern" >
< test qual="any" name="family" compare="eq" >
< string > Luxi Sans < /string >
< /test >
< edit name="family" mode="prepend" binding="same" >
< string > Arial < /string >
< /edit >
< /match >

< match target="pattern" >
< test qual="any" name="family" compare="eq" >
< string > MgOpen Cosmetica < /string >
< /test >
< edit name="family" mode="prepend" binding="same" >
< string > Arial < /string >
< /edit >
< /match >

< match target="pattern" >
< test qual="any" name="family" compare="eq" >
< string > MgOpen Modata < /string >
< /test >
< edit name="family" mode="prepend" binding="same" >
< string > Arial < /string >
< /edit >
< /match >

< match target="pattern" >
< test qual="any" name="family" compare="eq" >
< string > MgOpen Moderna < /string >
< /test >
< edit name="family" mode="prepend" binding="same" >
< string > Arial < /string >
< /edit >
< /match >

< match target="pattern" >
< test qual="any" name="family" compare="eq" >
< string > System < /string >
< /test >
< edit name="family" mode="prepend" binding="same" >
< string > Arial < /string >
< /edit >
< /match >

< match target="pattern" >
< test qual="any" name="family" compare="eq" >
< string > URW Gothic L < /string >
< /test >
< edit name="family" mode="prepend" binding="same" >
< string > Arial < /string >
< /edit >
< /match >

< !--
FIXME: Verdana renders characters '2' and '6' slightly distorted
so it will be substituted with Arial.
-- >
< match target="pattern" >
< test qual="any" name="family" compare="eq" >
< string > Verdana < /string >
< /test >
< edit name="family" mode="prepend" binding="same" >
< string > Arial < /string >
< /edit >
< /match >

< !--
serif
-- >
< match target="pattern" >
< test qual="any" name="family" compare="eq" >
< string > Bitstream Vera Serif < /string >
< /test >
< edit name="family" mode="prepend" binding="same" >
< string > Georgia < /string >
< /edit >
< /match >

< match target="pattern" >
< test qual="any" name="family" compare="eq" >
< string > DejaVu Serif < /string >
< /test >
< edit name="family" mode="prepend" binding="same" >
< string > Georgia < /string >
< /edit >
< /match >

< match target="pattern" >
< test qual="any" name="family" compare="eq" >
< string > DejaVu Serif Condensed < /string >
< /test >
< edit name="family" mode="prepend" binding="same" >
< string > Georgia < /string >
< /edit >
< /match >

< match target="pattern" >
< test qual="any" name="family" compare="eq" >
< string > FreeSerif < /string >
< /test >
< edit name="family" mode="prepend" binding="same" >
< string > Georgia < /string >
< /edit >
< /match >

< match target="pattern" >
< test qual="any" name="family" compare="eq" >
< string > Luxi Serif < /string >
< /test >
< edit name="family" mode="prepend" binding="same" >
< string > Georgia < /string >
< /edit >
< /match >

< match target="pattern" >
< test qual="any" name="family" compare="eq" >
< string > MgOpen Canonica < /string >
< /test >
< edit name="family" mode="prepend" binding="same" >
< string > Georgia < /string >
< /edit >
< /match >

< match target="pattern" >
< test qual="any" name="family" compare="eq" >
< string > New Century Schoolbook < /string >
< /test >
< edit name="family" mode="prepend" binding="same" >
< string > Georgia < /string >
< /edit >
< /match >

< match target="pattern" >
< test qual="any" name="family" compare="eq" >
< string > New York < /string >
< /test >
< edit name="family" mode="prepend" binding="same" >
< string > Georgia < /string >
< /edit >
< /match >

< match target="pattern" >
< test qual="any" name="family" compare="eq" >
< string > Palatino < /string >
< /test >
< edit name="family" mode="prepend" binding="same" >
< string > Georgia < /string >
< /edit >
< /match >

< match target="pattern" >
< test qual="any" name="family" compare="eq" >
< string > Times < /string >
< /test >
< edit name="family" mode="prepend" binding="same" >
< string > Georgia < /string >
< /edit >
< /match >

< match target="pattern" >
< test qual="any" name="family" compare="eq" >
< string > URW Bookman L < /string >
< /test >
< edit name="family" mode="prepend" binding="same" >
< string > Georgia < /string >
< /edit >
< /match >

< match target="pattern" >
< test qual="any" name="family" compare="eq" >
< string > URW Palladio L < /string >
< /test >
< edit name="family" mode="prepend" binding="same" >
< string > Georgia < /string >
< /edit >
< /match >

< !--
monospace
-- >
< match target="pattern" >
< test qual="any" name="family" compare="eq" >
< string > Andale Mono < /string >
< /test >
< edit name="family" mode="prepend" binding="same" >
< string > Courier New < /string >
< /edit >
< /match >

< match target="pattern" >
< test qual="any" name="family" compare="eq" >
< string > Bitstream Vera Sans Mono < /string >
< /test >
< edit name="family" mode="prepend" binding="same" >
< string > Courier New < /string >
< /edit >
< /match >

< match target="pattern" >
< test qual="any" name="family" compare="eq" >
< string > Courier < /string >
< /test >
< edit name="family" mode="prepend" binding="same" >
< string > Courier New < /string >
< /edit >
< /match >

< match target="pattern" >
< test qual="any" name="family" compare="eq" >
< string > DejaVu Sans Mono < /string >
< /test >
< edit name="family" mode="prepend" binding="same" >
< string > Courier New < /string >
< /edit >
< /match >

< match target="pattern" >
< test qual="any" name="family" compare="eq" >
< string > Fixedsys < /string >
< /test >
< edit name="family" mode="prepend" binding="same" >
< string > Courier New < /string >
< /edit >
< /match >

< match target="pattern" >
< test qual="any" name="family" compare="eq" >
< string > FreeMono < /string >
< /test >
< edit name="family" mode="prepend" binding="same" >
< string > Courier New < /string >
< /edit >
< /match >

< match target="pattern" >
< test qual="any" name="family" compare="eq" >
< !-- FIXME: Ubuntu Wiki uses "Lucida Typewriter" instead -- >
< string > LucidaTypewriter < /string >
< /test >
< edit name="family" mode="prepend" binding="same" >
< string > Courier New < /string >
< /edit >
< /match >

< match target="pattern" >
< test qual="any" name="family" compare="eq" >
< string > Lucida Typewriter < /string >
< /test >
< edit name="family" mode="prepend" binding="same" >
< string > Courier New < /string >
< /edit >
< /match >

< match target="pattern" >
< test qual="any" name="family" compare="eq" >
< string > Luxi Mono < /string >
< /test >
< edit name="family" mode="prepend" binding="same" >
< string > Courier New < /string >
< /edit >
< /match >

< match target="pattern" >
< test qual="any" name="family" compare="eq" >
< string > Monaco < /string >
< /test >
< edit name="family" mode="prepend" binding="same" >
< string > Courier New < /string >
< /edit >
< /match >

< match target="pattern" >
< test qual="any" name="family" compare="eq" >
< string > Terminal < /string >
< /test >
< edit name="family" mode="prepend" binding="same" >
< string > Courier New < /string >
< /edit >
< /match >

< !--
cursive
-- >
< match target="pattern" >
< test qual="any" name="family" compare="eq" >
< string > Apple Chancery < /string >
< /test >
< edit name="family" mode="prepend" binding="same" >
< string > Comic Sans MS < /string >
< /edit >
< /match >

< match target="pattern" >
< test qual="any" name="family" compare="eq" >
< string > Lucida Handwriting < /string >
< /test >
< edit name="family" mode="prepend" binding="same" >
< string > Comic Sans MS < /string >
< /edit >
< /match >

< match target="pattern" >
< test qual="any" name="family" compare="eq" >
< string > URW Chancery L < /string >
< /test >
< edit name="family" mode="prepend" binding="same" >
< string > Comic Sans MS < /string >
< /edit >
< /match >

< match target="pattern" >
< test qual="any" name="family" compare="eq" >
< string > Zapf Chancery < /string >
< /test >
< edit name="family" mode="prepend" binding="same" >
< string > Comic Sans MS < /string >
< /edit >
< /match >

< !--
fantasy
-- >
< match target="pattern" >
< test qual="any" name="family" compare="eq" >
< string > Copperplate < /string >
< /test >
< edit name="family" mode="prepend" binding="same" >
< string > Impact < /string >
< /edit >
< /match >

< match target="pattern" >
< test qual="any" name="family" compare="eq" >
< string > Desdemona < /string >
< /test >
< edit name="family" mode="prepend" binding="same" >
< string > Impact < /string >
< /edit >
< /match >

< match target="pattern" >
< test qual="any" name="family" compare="eq" >
< string > Kino < /string >
< /test >
< edit name="family" mode="prepend" binding="same" >
< string > Impact < /string >
< /edit >
< /match >

< match target="pattern" >
< test qual="any" name="family" compare="eq" >
< string > Techno < /string >
< /test >
< edit name="family" mode="prepend" binding="same" >
< string > Impact < /string >
< /edit >
< /match >

< !--
Provide required aliases for standard names.
-- >
< alias >
< family > sans-serif < /family >
< prefer >
< family > Arial < /family >
< /prefer >
< /alias >

< alias >
< family > serif < /family >
< prefer >
< family > Georgia < /family >
< /prefer >
< /alias >

< alias >
< family > monospace < /family >
< prefer >
< family > Courier New < /family >
< /prefer >
< /alias >

< alias >
< family > cursive < /family >
< prefer >
< family > Comic Sans MS < /family >
< /prefer >
< /alias >

< alias >
< family > fantasy < /family >
< prefer >
< family > Impact < /family >
< /prefer >
< /alias >

< /fontconfig >

Thursday, November 03, 2005

Fonts - custom TrueType


- put custom TrueType fonts in a directory

/usr/share/fonts/truetype/custom

- create font indices for X

# cd /usr/share/fonts/truetype/custom
# sudo mkfontscale
# sudo mkfontdir

- add the new font path in X config

# vi /etc/X11/xorg.conf

FontPath "/usr/share/fonts/truetype/custom"

- rebuild font information cache files

# sudo fc-cache -f -v

***

- add the new font path in fontconfig

# vi /etc/fonts/local.conf

Wednesday, November 02, 2005

Fonts - more TTF


- make a list of available installable fonts

# NEWFONTS=`dpkg -l 'ttf-*' | grep '^[up]n\b' | awk '{print $2}'`
# echo $NEWFONTS

- install all of them

# sudo apt-get install $NEWFONTS

***

- alternatively, install my recommended fonts

# sudo apt-get install ttf-bitstream-vera ttf-dejavu ttf-dustin ttf-f500 ttf-freefont ttf-gentium ttf-isabella ttf-junicode ttf-larabie-deco ttf-larabie-straight ttf-larabie-uncommon ttf-mgopen ttf-opensymbol ttf-staypuft ttf-summersby ttf-thryomanes ttf-ubuntu-title ttf-xfree86-nonfree

Tuesday, November 01, 2005

X-Window DPI


# vi /etc/X11/xorg.conf

Section "Monitor"
# displaysize = {pixelsize}/{dpi}*25.4
#DisplaySize 169 135 # 1280x1024 192dpi
#DisplaySize 225 180 # 1280x1024 144dpi
#DisplaySize 270 216 # 1280x1024 120dpi
DisplaySize 338 270 # 1280x1024 96dpi
#DisplaySize 433 347 # 1280x1024 75dpi
#DisplaySize 451 361 # 1280x1024 72dpi