Hacker News new | ask | show | jobs
by shmerl 4418 days ago
The fonts look messed up for me (Debian testing / Firefox 29.0.1). In some cases letter i has a shifted dot (see the word Wikipedia in the last search result in the image below):

https://i.imgur.com/SsicEFJ.png

The fonts come from here:

* https://duckduckgo.com/font/ProximaNova-Sbold-webfont.woff

* https://duckduckgo.com/font/ProximaNova-Reg-webfont.woff

1 comments

This is due to patents. I blogged a solution some while ago, but since then removed my the entire blog, here is a raw paste of the original commit: https://gist.github.com/klrr/73ce6da0fb6947ed92a5
My settings already include antialiasing and hinting (with medium level). The only difference I see is that in your configuration autohint is true across all fonts (not in mine). I enabled it for a few fonts only, since it's recommended not to use it for all:

https://wiki.archlinux.org/index.php/Font_Configuration#Auto...

> The Autohinter attempts to do automatic hinting and disregards any existing hinting information. Originally it was the default because TrueType2 fonts were patent-protected but now that these patents have expired there's very little reason to use it. It does work better with fonts that have broken or no hinting information but it will be strongly sub-optimal for fonts with good hinting information. Generally common fonts are of the later kind so autohinter will not be useful.

Anyway, I don't think it's related to the shifted letter "i".

By the way, how does fontconfig translate to the Web fonts? Is there any way to affect them through it on the individual basis and not with global configuration?

UPDATE: Just found this: https://necoro.wordpress.com/2013/04/29/matching-web-fonts-w...

Autohinter did make things better for the "i" letter (but not completely).

Here is my final result for adding to $HOME/.config/fontconfig/fonts.conf

    <!-- Fixing DuckDuckGo font -->
    <match target="font">
      <test name="family">
        <string>@font-face:DDG_ProximaNova</string>
      </test>
      <edit mode="assign" name="autohint">
        <bool>true</bool>
      </edit>
      <edit mode="assign" name="lcdfilter">
        <const>lcddefault</const>
      </edit>
    </match>