My .font.conf for perfect font rendering
| <?xml version="1.0"?><!DOCTYPE fontconfig SYSTEM "fonts.dtd"> | |
| <fontconfig> | |
| <dir>~/.fonts</dir> | |
| <!-- | |
| Documented at | |
| http://linux.die.net/man/5/fonts-conf | |
| To check font mapping run the command at terminal | |
| $ fc-match 'helvetica Neue' | |
| WARNING :: Droid Sans font with autohinter becomes bad, without autohinter looks great, but becomes smallish, cant help | |
| even the smallish is so good, that i am using it on desktop | |
| but cannot be used as a substitution for arial, since 12px (which is very common on websites) becomes small as if tahoma 10px | |
| Noto sans does better in this case, can be used as arial substitution without loss of size | |
| noto sans is slightly fatter than droid sans | |
| Open sans is much fat, and open sans bold looks bad, hence we choose noto sans as the replacement for arial | |
| Download the following fonts | |
| Droid fonts whole sets | |
| Download from google web fonts | |
| open sans all styles | |
| noto sans all styles | |
| noto serif all styles | |
| --> | |
| <!-- | |
| .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 | |
| Does not work in Chrome properly | |
| In chrome 13px evalutes to 17.4px pixelsize test, funny! | |
| --> | |
| <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. | |
| hintfull for all fonts by default | |
| --> | |
| <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="append" binding="same"> | |
| <string>serif</string> | |
| </edit> | |
| </match> | |
| <match target="pattern"> | |
| <test qual="any" name="family" compare="eq"> | |
| <string>Bitstream Vera Sans</string> | |
| </test> | |
| <edit name="family" mode="append" binding="same"> | |
| <string>sans</string> | |
| </edit> | |
| </match> | |
| <match target="pattern"> | |
| <test qual="any" name="family" compare="eq"> | |
| <string>DejaVu Sans</string> | |
| </test> | |
| <edit name="family" mode="append" binding="same"> | |
| <string>sans</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> | |
| <!-- | |
| Dont do this, overriding freesans will cause utf fonts to be come rubbish in chrome | |
| --> | |
| <!-- | |
| <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> | |
| --> | |
| <!-- | |
| ON web pages if font family is like this | |
| font-family: 'Helvetica Neue', arial, sans-serif; | |
| google chrome will immediately move to next font, if it does not find the first, even if there are append entries | |
| But firefox will take the append entry if the font does not exist :) | |
| --> | |
| <match target="pattern"> | |
| <test qual="any" name="family" compare="eq"> | |
| <string>Helvetica</string> | |
| </test> | |
| <edit name="family" mode="append" binding="same"> | |
| <string>Sans</string> | |
| </edit> | |
| </match> | |
| <match target="pattern"> | |
| <test qual="any" name="family" compare="eq"> | |
| <string>Helvetica Neue</string> | |
| </test> | |
| <edit name="family" mode="append" binding="same"> | |
| <string>Sans</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. | |
| EDIT Silver Moon : not replacing verdana with arial. | |
| hey verdana is slightly fatty, how about replacing it with open sans or noto sans | |
| open sans is fattier compared to droid sans | |
| BAH, it looks good | |
| Open Sans is cramped at 11px with autohint = true | |
| 'sa' the s and a will stick badly | |
| '50' the 5 and 0 will stick badly | |
| But 12px onwards Open Sans is better than Noto Sans | |
| But the vote goes to noto sans for verdana replaced to maintain beauty at 11px | |
| Another note | |
| noto sans has single stroke small g , open sans has the 2 round style g | |
| noto sans p is thin, open sans p is better looking | |
| --> | |
| <match target="pattern"> | |
| <test qual="any" name="family" compare="eq"> | |
| <string>Verdana</string> | |
| </test> | |
| <edit name="family" mode="prepend" binding="same"> | |
| <string>Noto Sans</string> | |
| </edit> | |
| <edit name="family" mode="prepend" binding="same"> | |
| <string>Open Sans</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>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="append" binding="same"> | |
| <string>monospace</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>monospace</string> | |
| </edit> | |
| </match> | |
| <match target="pattern"> | |
| <test qual="any" name="family" compare="eq"> | |
| <string>DejaVu Sans Mono</string> | |
| </test> | |
| <edit name="family" mode="append" binding="same"> | |
| <string>monospace</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"> | |
| <!-- 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> | |
| <!-- | |
| Added by Silver Moon (m00n.silv3r@gmail.com) | |
| Changes focussing on Droid Sans, replacing windows old fonts like arial, courier | |
| and fixing some fonts like lucida grande bold, and hindi fonts | |
| --> | |
| <!-- | |
| Replace arial fonts larger than 12px by droid sans | |
| Works only in firefox, not in chrome | |
| --> | |
| <match target="pattern"> | |
| <test qual="any" name="family" compare="eq"> | |
| <string>Arial</string> | |
| </test> | |
| <test qual="any" name="pixelsize" compare="more"> | |
| <double>12.0</double> | |
| </test> | |
| <edit name="family" mode="assign" binding="strong"> | |
| <string>droid sans</string> | |
| </edit> | |
| </match> | |
| <match target="pattern"> | |
| <test qual="any" name="family" compare="eq"> | |
| <string>Arial</string> | |
| </test> | |
| <test qual="any" name="pixelsize" compare="less"> | |
| <double>13.0</double> | |
| </test> | |
| <edit name="family" mode="assign" binding="same"> | |
| <string>noto sans</string> | |
| </edit> | |
| </match> | |
| <match target="pattern"> | |
| <test qual="any" name="family" compare="eq"> | |
| <string>Arial</string> | |
| </test> | |
| <edit name="family" mode="assign" binding="same"> | |
| <string>noto sans</string> | |
| </edit> | |
| </match> | |
| <!-- | |
| Replace Georgia by Noto Serif | |
| --> | |
| <match target="pattern"> | |
| <test qual="any" name="family" compare="eq"> | |
| <string>Georgia</string> | |
| </test> | |
| <edit name="family" mode="assign" binding="same"> | |
| <string>Noto Serif</string> | |
| </edit> | |
| </match> | |
| <!-- | |
| Behavioug is similar to droid sans, | |
| WITHOUT AUTOHINTER | |
| 1. becomes smallish, like droid sans, very small on desktop , | |
| 2. DESKTOP - HIGHLY PROPORTIONATE, HIGHLY CLEAR | |
| 2. WEBPAGES - less clearer - vertical stands become hazy | |
| 3. slightly less STRETCHED | |
| WITH AUTOHINTER : | |
| 1. very slightly STRETCHED | |
| 2. CRYSTAL CLARITY on webpages, | |
| 3. lesser proportionate on desktop, CLARITY KIND OF OK OK | |
| 3. bold font ugly with hintfull, good with hintslight | |
| Since we are using noto sans as arial replacement, hint it fully with autohinter. | |
| hintslight will compromise clarity | |
| thought of doing this, above 12px autohint = false | |
| below 13px authint = true | |
| but autohint false leads to loss of clarity, but makes width correct | |
| moreover chrome does not obey pixelsize correctly | |
| --> | |
| <match target="font"> | |
| <test qual="any" name="family" compare="eq"> | |
| <string>noto sans</string> | |
| </test> | |
| <edit mode="assign" name="autohint"> | |
| <bool>true</bool> | |
| </edit> | |
| <edit mode="assign" name="hintstyle"> | |
| <const>hintfull</const> | |
| </edit> | |
| </match> | |
| <match target="font"> | |
| <test qual="any" name="family" compare="eq"> | |
| <string>ubuntu</string> | |
| </test> | |
| <edit mode="assign" name="autohint"> | |
| <bool>true</bool> | |
| </edit> | |
| <edit mode="assign" name="hintstyle"> | |
| <const>hintfull</const> | |
| </edit> | |
| </match> | |
| <!-- | |
| DROID SANS | |
| WITHOUT AUTOHINTER | |
| 1.CLEARER 13px onwards | |
| 2. 12px on webpages very small | |
| 3. super clear at 12px | |
| 4. 9pt desktop super clear, super PROPORTIONATE | |
| AUTOHINT = TRUE | |
| 1. LESS CLEARER | |
| 2. 'n' is cramped | |
| 3. 9pt desktop, slightly distorted | |
| 4. 12px webpage is normal sized, but not great as noto sans with autohint = true. but better than arial | |
| droid sans with autohinter, becomes more disproportionate on gnome, this is lesser with noto sans | |
| in browser there is not much difference between autohint true/false | |
| true leads to clarity loss | |
| --> | |
| <match target="font"> | |
| <test qual="any" name="family" compare="eq"> | |
| <string>Droid Sans</string> | |
| <string>Droid Sans Mono</string> | |
| </test> | |
| <edit mode="assign" name="autohint"> | |
| <bool>false</bool> | |
| </edit> | |
| <edit mode="assign" name="hintstyle"> | |
| <const>hintfull</const> | |
| </edit> | |
| </match> | |
| <match target="font"> | |
| <test qual="any" name="family" compare="eq"> | |
| <string>liberation mono</string> | |
| </test> | |
| <edit mode="assign" name="autohint"> | |
| <bool>false</bool> | |
| </edit> | |
| <edit mode="assign" name="hintstyle"> | |
| <const>hintmedium</const> | |
| </edit> | |
| </match> | |
| <!-- time for stupid tricks for 2 stupid browsers, namely firefox and chrome --> | |
| <!-- stupid trick for firefox | |
| firefox obeys pixelsize but not size | |
| --> | |
| <match target="font"> | |
| <test qual="any" name="family" compare="eq"> | |
| <string>noto sans</string> | |
| </test> | |
| <test qual="any" name="pixelsize" compare="less"> | |
| <double>16</double> | |
| </test> | |
| <test qual="any" name="weight" compare="more"> | |
| <const>medium</const> | |
| </test> | |
| <edit mode="assign" name="autohint"> | |
| <bool>true</bool> | |
| </edit> | |
| <edit mode="assign" name="hintstyle" binding="weak"> | |
| <const>hintslight</const> | |
| </edit> | |
| </match> | |
| <!-- | |
| stupid trick for chrome | |
| chrome obeys size, but not pixelsize below 17.4 pixel | |
| --> | |
| <match target="font"> | |
| <test qual="any" name="family" compare="eq"> | |
| <string>noto sans</string> | |
| </test> | |
| <test qual="any" name="size" compare="less"> | |
| <double>16</double> | |
| </test> | |
| <test qual="any" name="weight" compare="more"> | |
| <const>medium</const> | |
| </test> | |
| <edit mode="assign" name="antialias"> | |
| <bool>true</bool> | |
| </edit> | |
| <edit mode="assign" name="autohint"> | |
| <bool>true</bool> | |
| </edit> | |
| <edit mode="assign" name="hintstyle" binding="weak"> | |
| <const>hintslight</const> | |
| </edit> | |
| </match> | |
| <!-- use droid sans mono for monospace --> | |
| <match target="pattern"> | |
| <test qual="any" name="family" compare="eq"> | |
| <string>monospace</string> | |
| </test> | |
| <edit name="family" mode="prepend" binding="same"> | |
| <string>Droid Sans Mono</string> | |
| </edit> | |
| </match> | |
| <!-- use droid sans mono for sans-serif --> | |
| <match target="pattern"> | |
| <test qual="any" name="family" compare="eq"> | |
| <string>sans-serif</string> | |
| </test> | |
| <edit name="family" mode="prepend" binding="same"> | |
| <string>Noto Sans</string> | |
| </edit> | |
| </match> | |
| <!-- use droid sans mono for Courier New --> | |
| <match target="pattern"> | |
| <test qual="any" name="family" compare="eq"> | |
| <string>Courier New</string> | |
| </test> | |
| <edit name="family" mode="prepend" binding="same"> | |
| <string>Droid Sans Mono</string> | |
| </edit> | |
| </match> | |
| <!-- replace times new roman with droid serif --> | |
| <match target="pattern"> | |
| <test qual="any" name="family" compare="eq"> | |
| <string>Times New Roman</string> | |
| <string>serif</string> | |
| </test> | |
| <edit name="family" mode="prepend" binding="same"> | |
| <string>Noto Serif</string> | |
| </edit> | |
| </match> | |
| <!-- lucida grande bold, with hintfull, becomes stiff looking, with 1 part of a letter more fat than the other, therefor hintslight--> | |
| <match target="font"> | |
| <test qual="any" name="family" compare="eq"> | |
| <string>Lucida Grande</string> | |
| </test> | |
| <test qual="any" name="weight" compare="more"> | |
| <const>medium</const> | |
| </test> | |
| <edit mode="assign" name="hintstyle"> | |
| <const>hintslight</const> | |
| </edit> | |
| </match> | |
| <!-- lucida grande bold, with hintfull, becomes stiff looking, with 1 part of a letter more fat than the other, therefor hintslight--> | |
| <match target="font"> | |
| <test qual="any" name="family" compare="eq"> | |
| <string>Lucida Console</string> | |
| </test> | |
| <edit name="antialias" mode="assign"> | |
| <bool>true</bool> | |
| </edit> | |
| <edit mode="assign" name="autohint"> | |
| <bool>false</bool> | |
| </edit> | |
| <edit mode="assign" name="hintstyle"> | |
| <const>hintfull</const> | |
| </edit> | |
| </match> | |
| <!-- | |
| Open sans WITHOUT autohint, becomes fattish in chrome/firefox | |
| WITH autohint, becomes crytalline, very good | |
| but like noto sans, the bold version is not beautiful | |
| need to fix : TODO | |
| --> | |
| <match target="font"> | |
| <test compare="eq" name="family" qual="any"> | |
| <string>Open Sans</string> | |
| </test> | |
| <edit mode="assign" name="autohint"> | |
| <bool>true</bool> | |
| </edit> | |
| <edit mode="assign" name="hintstyle"> | |
| <const>hintfull</const> | |
| </edit> | |
| </match> | |
| <!-- | |
| Styling for hindi fonts | |
| Hindi (hi) | |
| --> | |
| <!-- force Lohit Hindi for hindi font --> | |
| <match target="pattern"> | |
| <test compare="eq" name="lang"> | |
| <string>hi</string> | |
| </test> | |
| <edit binding="strong" mode="prepend" name="family"> | |
| <string>Lohit Hindi</string> | |
| </edit> | |
| </match> | |
| <!-- do some antialiasing tweak for gargi and lohit hindi font --> | |
| <match target="font"> | |
| <test compare="eq" name="family" qual="any"> | |
| <string>gargi</string> | |
| <string>Lohit Hindi</string> | |
| </test> | |
| <edit mode="assign" name="antialias"> | |
| <bool>true</bool> | |
| </edit> | |
| <edit mode="assign" name="autohint"> | |
| <bool>true</bool> | |
| </edit> | |
| <edit mode="assign" name="hintstyle"> | |
| <const>hintslight</const> | |
| </edit> | |
| </match> | |
| <!-- Replace mangal with lohit hindi, mangal is a stupid font --> | |
| <match target="pattern"> | |
| <test compare="eq" name="family" qual="any"> | |
| <string>mangal</string> | |
| </test> | |
| <edit binding="strong" mode="assign" name="family"> | |
| <string>Lohit Hindi</string> | |
| </edit> | |
| </match> | |
| <!-- Hindi (hi) ends --> | |
| <match target="font"> | |
| <edit name="lcdfilter" mode="assign"> | |
| <const>lcddefault</const> | |
| </edit> | |
| </match> | |
| </fontconfig> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
This comment has been minimized.
Memo: https://www.reddit.com/r/linux/comments/orbysv/method_get_perfect_font_rendering_on_linux/