Ubuntu: Сглаживание шрифтов с хинтингом на системном уровне

В Linux сейчас много способов добиться гладких, не размытых шрифтов, не прибегая к запатентованным технологиям.

К счастью, уже не нужно пересобирать freetype. Но мы так же знаем, что графических сред очень много и уже не редки те случаи, когда на одном PC, используется несколько сред. При этом, так же, не стоит забывать что каждая среда со шрифтами работает по-разному.

Поэтому, я предлагаю настроить сглаживание шрифтов в Ubuntu на системного уровне. Вот так выглядит шрифт Liberations у меня:

screenshot_002 screenshot_0011

Чтобы добиться того же у себя, в файле /etc/fonts/local.conf пишем:

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
  <match target="font">
    <edit name="autohint" mode="assign">
      <bool>true</bool>
    </edit>
  </match>
</fontconfig>

И перезапускам все приложения, что работали до изменений.
В настройках среды можно выставить антилязинг по вкусу (обычно включается по умолчанию).

  • Трэкбеки закрыты
  • Комментарии (8)
    • Sveolon
    • 26 сентября, 2009

    Спасибо, всё ходу подцепилось в Lotus Symphony, к примеру. Но вот на старые Tcl/Tk приложения магия не подействовала :( Password Gorilla, например.

      • Sb0y
      • 26 сентября, 2009

      С Tcl\Tk может помочь такая магия:


      sudo apt-get install tk8.5 libsnack2 tktray msttcorefonts
      sudo update-alternatives --config wish

      Там жать циферку соответствующую пункту «/usr/bin/wish8.5″, а потом на Enter и используем.

    • Alex
    • 26 сентября, 2009

    На убунту 9.10 по адресу /etc/fonts/conf.avail находится файлик 10-autohint.conf с абсолютно таким же содержанием, поэтому достаточно сделать
    ln -s /etc/fonts/conf.avail/10-autohint.conf /etc/fonts/conf.d/10-autohint.conf

    для достижения вашего результата :)

    • Sb0y
    • 26 сентября, 2009

    Кстати на всякий случай, мой ПОЛНЫЙ конфиг.

    <?xml version="1.0"?>
    <!DOCTYPE fontconfig SYSTEM "fonts.dtd">
    <!-- /etc/fonts/fonts.conf file to configure system font access -->
    <fontconfig>
     
    <!--
    	DO NOT EDIT THIS FILE.
    	IT WILL BE REPLACED WHEN FONTCONFIG IS UPDATED.
    	LOCAL CHANGES BELONG IN 'local.conf'.
     
    	The intent of this standard configuration file is to be adequate for
    	most environments.  If you have a reasonably normal environment and
    	have found problems with this configuration, they are probably
    	things that others will also want fixed.  Please submit any
    	problems to the fontconfig bugzilla system located at fontconfig.org
     
    	Note that the normal 'make install' procedure for fontconfig is to
    	replace any existing fonts.conf file with the new version.  Place
    	any local customizations in local.conf which this file references.
     
    	Keith Packard
    -->
     
    <!-- Font directory list -->
     
    	<dir>/usr/share/fonts</dir>
    	<dir>/usr/share/X11/fonts</dir> <dir>/usr/local/share/fonts</dir>
    	<dir>~/.fonts</dir>
     
    <!--
      Accept deprecated 'mono' alias, replacing it with 'monospace'
    -->
    	<match target="pattern">
    		<test qual="any" name="family">
    			<string>mono</string>
    		</test>
    		<edit name="family" mode="assign">
    			<string>monospace</string>
    		</edit>
    	</match>
     
    <!--
      Accept alternate 'sans serif' spelling, replacing it with 'sans-serif'
    -->
    	<match target="pattern">
    		<test qual="any" name="family">
    			<string>liberation serif</string>
    		</test>
    		<edit name="family" mode="assign">
    			<string>liberataion-serif</string>
    		</edit>
    	</match>
     
    <!--
      Accept deprecated 'sans' alias, replacing it with 'sans-serif'
    -->
    	<match target="pattern">
    		<test qual="any" name="family">
    			<string>sans</string>
    		</test>
    		<edit name="family" mode="assign">
    			<string>sans-liberation</string>
    		</edit>
    	</match>
     
    <match target="font">
        <edit name="autohint" mode="assign">
          <bool>true</bool>
        </edit>
      </match>
     
     
    <!--
      Load local system customization file
    -->
    	<include ignore_missing="yes">conf.d</include>
     
    <!-- Font cache directory list -->
     
    	<cachedir>/var/cache/fontconfig</cachedir>
    	<cachedir>~/.fontconfig</cachedir>
     
    	<config>
    <!--
      These are the default Unicode chars that are expected to be blank
      in fonts.  All other blank chars are assumed to be broken and
      won't appear in the resulting charsets
     -->
    		<blank>
    			<int>0x0020</int>	<!-- SPACE -->
    			<int>0x00A0</int>	<!-- NO-BREAK SPACE -->
    			<int>0x00AD</int>	<!-- SOFT HYPHEN -->
    			<int>0x034F</int>	<!-- COMBINING GRAPHEME JOINER -->
    			<int>0x0600</int>	<!-- ARABIC NUMBER SIGN -->
    			<int>0x0601</int>	<!-- ARABIC SIGN SANAH -->
    			<int>0x0602</int>	<!-- ARABIC FOOTNOTE MARKER -->
    			<int>0x0603</int>	<!-- ARABIC SIGN SAFHA -->
    			<int>0x06DD</int>	<!-- ARABIC END OF AYAH -->
    			<int>0x070F</int>	<!-- SYRIAC ABBREVIATION MARK -->
    			<int>0x115F</int>	<!-- HANGUL CHOSEONG FILLER -->
    			<int>0x1160</int>	<!-- HANGUL JUNGSEONG FILLER -->
    			<int>0x1680</int>	<!-- OGHAM SPACE MARK -->
    			<int>0x17B4</int>	<!-- KHMER VOWEL INHERENT AQ -->
    			<int>0x17B5</int>	<!-- KHMER VOWEL INHERENT AA -->
    			<int>0x180E</int>	<!-- MONGOLIAN VOWEL SEPARATOR -->
    			<int>0x2000</int>	<!-- EN QUAD -->
    			<int>0x2001</int>	<!-- EM QUAD -->
    			<int>0x2002</int>	<!-- EN SPACE -->
    			<int>0x2003</int>	<!-- EM SPACE -->
    			<int>0x2004</int>	<!-- THREE-PER-EM SPACE -->
    			<int>0x2005</int>	<!-- FOUR-PER-EM SPACE -->
    			<int>0x2006</int>	<!-- SIX-PER-EM SPACE -->
    			<int>0x2007</int>	<!-- FIGURE SPACE -->
    			<int>0x2008</int>	<!-- PUNCTUATION SPACE -->
    			<int>0x2009</int>	<!-- THIN SPACE -->
    			<int>0x200A</int>	<!-- HAIR SPACE -->
    			<int>0x200B</int>	<!-- ZERO WIDTH SPACE -->
    			<int>0x200C</int>	<!-- ZERO WIDTH NON-JOINER -->
    			<int>0x200D</int>	<!-- ZERO WIDTH JOINER -->
    			<int>0x200E</int>	<!-- LEFT-TO-RIGHT MARK -->
    			<int>0x200F</int>	<!-- RIGHT-TO-LEFT MARK -->
    			<int>0x2028</int>	<!-- LINE SEPARATOR -->
    			<int>0x2029</int>	<!-- PARAGRAPH SEPARATOR -->
    			<int>0x202A</int>	<!-- LEFT-TO-RIGHT EMBEDDING -->
    			<int>0x202B</int>	<!-- RIGHT-TO-LEFT EMBEDDING -->
    			<int>0x202C</int>	<!-- POP DIRECTIONAL FORMATTING -->
    			<int>0x202D</int>	<!-- LEFT-TO-RIGHT OVERRIDE -->
    			<int>0x202E</int>	<!-- RIGHT-TO-LEFT OVERRIDE -->
    			<int>0x202F</int>	<!-- NARROW NO-BREAK SPACE -->
    			<int>0x205F</int>	<!-- MEDIUM MATHEMATICAL SPACE -->
    			<int>0x2060</int>	<!-- WORD JOINER -->
    			<int>0x2061</int>	<!-- FUNCTION APPLICATION -->
    			<int>0x2062</int>	<!-- INVISIBLE TIMES -->
    			<int>0x2063</int>	<!-- INVISIBLE SEPARATOR -->
    			<int>0x206A</int>	<!-- INHIBIT SYMMETRIC SWAPPING -->
    			<int>0x206B</int>	<!-- ACTIVATE SYMMETRIC SWAPPING -->
    			<int>0x206C</int>	<!-- INHIBIT ARABIC FORM SHAPING -->
    			<int>0x206D</int>	<!-- ACTIVATE ARABIC FORM SHAPING -->
    			<int>0x206E</int>	<!-- NATIONAL DIGIT SHAPES -->
    			<int>0x206F</int>	<!-- NOMINAL DIGIT SHAPES -->
    			<int>0x2800</int>	<!-- BRAILLE PATTERN BLANK -->
    			<int>0x3000</int>	<!-- IDEOGRAPHIC SPACE -->
    			<int>0x3164</int>	<!-- HANGUL FILLER -->
    			<int>0xFEFF</int>	<!-- ZERO WIDTH NO-BREAK SPACE -->
    			<int>0xFFA0</int>	<!-- HALFWIDTH HANGUL FILLER -->
    			<int>0xFFF9</int>	<!-- INTERLINEAR ANNOTATION ANCHOR -->
    			<int>0xFFFA</int>	<!-- INTERLINEAR ANNOTATION SEPARATOR -->
    			<int>0xFFFB</int>	<!-- INTERLINEAR ANNOTATION TERMINATOR -->
    		</blank>
    <!--
      Rescan configuration every 30 seconds when FcFontSetList is called
     -->
    		<rescan>
    			<int>30</int>
    		</rescan>
    	</config>
     
    </fontconfig>
    • Vyacheslav
    • 26 сентября, 2009

    В Ubuntu нет пакета tktray!
    и
    $ sudo update-alternatives –config wish

    Есть только одна программа, которая предоставляет wish
    (/usr/bin/wish8.5). Настраивать нечего.

      • Sb0y
      • 26 сентября, 2009
      sb0y@PC ~ $ sudo update-alternatives --config wish
       
      Есть 2 альтернатив, которые предоставляют `wish'.
       
        Выбор        Альтернатива
      -----------------------------------------------
      *         1    /usr/bin/wish8.5
       +        2    /usr/bin/wish8.4
       
      Нажмите enter, чтобы сохранить значение по умолчанию[*], или введите выбранное число: 1
      Используется `/usr/bin/wish8.5' для предоставления `wish'.

      Ubuntu 9.04

  1. The quick brown fox jumps over the lazy dog and feels as if it were in the seventh heaven of typography.



Введите код с картинки