"Рваные" буквы в шрифтах


Никак не могу это побороть. Установка fontconfig-lcd ничего не дала, крутил по всякому ~/.fonts.conf - тоже без изменений. Бывает что рвет только какой-нибудь один символ, и каждый раз разный. Прям куски у букв пропадают, как будто их ластиком стерли. Но вообще шрифты выглядят очень хорошо, никаких нареканий.
Кстати как-то видел на форуме на чьем-то скриншоте такую же проблему.
Странно…, 200 - максимальный размер шрифта в сообщении. Как добились такого?
bobart
Как добились такого?
Так скриншот же. И не с форума даже. Не?

PS. ТС, где создавали текст, чтобы попробовать повторить.
Окно браузера скриншотил

Вот теперь “рвет” букву “С”, обратите внимание - только в трех местах.
Хинтинг какой? у меня если средний и выше в кедах, рвёт букву Ф
Ну я перепробовал все режимы: none, hintslight, hintmedium, hintfull; пробовал и с Xft.hinting: false, и с Xft.hinting: true. Никакой не пропустил? И вот еще вопрос - где все-таки правильнее (по-арчевски) прописывать настройки: в ~/.fonts.conf, в ~/.Xdefaults или в ~/.Xresources? Смотрю народ то там пишет, то там, и если в одном файле настройки указаны, надо ли их указывать в другом? Не будет ли конфликта?
Я в ~/.Xdefaults прописываю, а ~/.Xresources и ~/.fonts.conf у меня вообще нет.
Вот мой:
Xft.dpi: 96.0
Xft.hinting: true
Xft.hintstyle: hintslight
Xft.antialias: true
Xft.rgba: rgb
Xft.lcdfilter: lcddefault
Попробуйте создать вот такой ~/.fonts.conf :
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
 <match target="font" >
  <edit mode="assign" name="antialias" >
   <bool>false</bool>
  </edit>
  <edit mode="assign" name="rgba" >
   <const>none</const>
  </edit>
  <edit mode="assign" name="hinting" >
   <bool>false</bool>
  </edit>
  <edit mode="assign" name="hintstyle" >
   <const>hintfull</const>
  </edit>
  <edit mode="assign" name="autohint" >
   <bool>false</bool>
  </edit>
 </match>
</fontconfig>
Перезагрузите браузер и проверьте разрывы в шрифтах.
Если разрывы не пропали, значит хинтинг ни при чём.

Если они пропали, по очереди меняйте параметры
hinting true
autohint true
hintstyle hintslight
hintstyle hintmedium
в этом файле, после каждого перезагружайте браузер.
Если разрывы появятся после включения hinting, значит проблемы со встроенным хинтингом этого шрифта.
Если после autohint и дальше – на этом шрифте вылезает баг одного из видов автохинтинга freetype.
Сделал так, и разрывы не пропали. Они вообще у меня никогда не пропадают. Я и понимал, что хинтинг тут ни при чем, но как это победить?
Не факт, но для исключения вариантов: настроечные dpi соответствуют заводским dpi монитора?
По скрину трудно судить, но то, что у вас в браузере не назову “хорошо”.
А вот это хорошо:

ps. Это в опере (в ней настройки шрифтов более запутанные, в фоксе всё проще): Системный: Liberation Sans 10, в опере аналогично, дефолт для вэб-страниц Liberation Sans 17, моноширинный: он-же, 13. В стилях дефолт Режим автора: таблицы и стили страницы, шрифты и цвета страницы, мои шрифты и цвета, мой стиль ссылок
Вообще, стоит внимательно и вдумчиво разбираться по вики, пробовать разные варианты.
Мои ~/.fonts.conf
<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<fontconfig>
 <match target="font">
  <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>
  <edit mode="assign" name="hinting">
   <bool>true</bool>
  </edit>
  <edit mode="assign" name="rgba">
   <const>rgb</const>
  </edit>
  <!-- lcdnone, lcddefault, lcdlight, lcdlegacy -->
  <edit mode="assign" name="lcdfilter">
   <const>lcddefault</const>
  </edit>
 </match>
 <match target="font">
  <test compare="less_eq" name="size">
   <double>10</double>
  </test>
  <edit mode="assign" name="autohint">
   <bool>true</bool>
  </edit>
 </match>
 <match target="font">
  <test compare="more_eq" name="size">
   <double>14</double>
  </test>
  <edit mode="assign" name="rgba">
   <const>none</const>
  </edit>
 </match>
 <match target="font">
  <test name="family">
   <string>Tahoma</string>
  </test>
  <test compare="eq" name="size">
   <double>6</double>
  </test>
  <test compare="more_eq" name="weight">
   <const>medium</const>
  </test>
  <edit mode="assign" name="autohint">
   <bool>true</bool>
  </edit>
 </match>
 <!-- Replace Clean font with sans-serif -->
 <match target="pattern" name="family">
  <test name="family" qual="any">
   <string>Clean</string>
  </test>
  <edit mode="assign" name="family">
   <string>sans-serif</string>
  </edit>
 </match>
 <!-- Replace Fixed font with monospace -->
 <match target="pattern" name="family">
  <test name="family" qual="any">
   <string>Fixed</string>
  </test>
  <edit mode="assign" name="family">
   <string>monospace</string>
  </edit>
 </match>
 <!-- Replace Nimbus family font with default -->
 <match target="pattern" name="family">
  <test name="family" qual="any">
   <string>Nimbus Sans L</string>
  </test>
  <edit mode="assign" name="family">
   <string>sans-serif</string>
  </edit>
 </match>
 <match target="pattern" name="family">
  <test name="family" qual="any">
   <string>Nimbus Roman No9 L</string>
  </test>
  <edit mode="assign" name="family">
   <string>serif</string>
  </edit>
 </match>
 <match target="pattern" name="family">
  <test name="family" qual="any">
   <string>Nimbus Mono L</string>
  </test>
  <edit mode="assign" name="family">
   <string>monospace</string>
  </edit>
 </match>
 <!-- Set default font -->
 <alias>
  <family>Liberation Serif</family>
  <default>
   <family>serif</family>
  </default>
 </alias>
 <alias>
  <family>Liberation Sans</family>
  <default>
   <family>sans-serif</family>
  </default>
 </alias>
 <alias>
  <family>Liberation Sans Mono</family>
  <default>
   <family>monospace</family>
  </default>
 </alias>
 <alias>
  <family>serif</family>
  <prefer>
   <family>Liberation Serif</family>
  </prefer>
 </alias>
 <alias>
  <family>sans-serif</family>
  <prefer>
   <family>Liberation Sans</family>
  </prefer>
 </alias>
 <alias>
  <family>monospace</family>
  <prefer>
   <family>Liberation Sans Mono</family>
  </prefer>
 </alias>
 <match target="font">
  <edit mode="assign" name="rgba">
   <const>none</const>
  </edit>
 </match>
 <match target="font">
  <edit mode="assign" name="hinting">
   <bool>true</bool>
  </edit>
 </match>
 <match target="font">
  <edit mode="assign" name="hintstyle">
   <const>hintslight</const>
  </edit>
 </match>
 <match target="font">
  <edit mode="assign" name="antialias">
   <bool>true</bool>
  </edit>
 </match>
</fontconfig>

и ~/.Xdefaults
! Xft settings
!Xft.dpi: 96 #эти dpi, конечно, не читаются, осталось после многочисленных экспериментов, на память.
! hintnone, hintslight, hintmedium, hintfull
Xft.hintstyle: hintslight
Xft.hinting: true
Xft.antialias: true
! lcdnone, lcddefault, lcdlight, lcdlegacy
Xft.lcdfilter: lcddefault
Xft.rgba: rgb
DPI читаются из /etc/X11/xorg.conf:
Section "Monitor"
    Identifier     "Monitor0"
    VendorName     "Unknown"
    ModelName      "NEC P221W"
    HorizSync       31.0 - 83.0
    VertRefresh     56.0 - 75.0
    DisplaySize     473.0  296.0
EndSection
$ xdpyinfo | grep resolution 
  resolution:    90x90 dots per inch

Вобщем, надо проверять всё. Надеюсь, хоть чем-то поможет.
 
Зарегистрироваться или войдите чтобы оставить сообщение.