web-dev-qa-db-ja.com

アンチエイリアスをオンのままにして、Firefoxでフォントヒンティングをオフにするにはどうすればよいですか?

驚くべきことに、これはすでに尋ねられた質問の1つではありません。

対照的に、フォントヒンティングをオフにしたいのですが、アンチエイリアシングはオンのままにしておきます。

これは可能ですか?

3
Mike Battaglia

私にとって有効な方法の1つは、ファイル~/.fonts.confを編集することです(Xubuntu18.04でFirefox57.0.1を使用していますが、SuperUserの他の回答のように、XFCEのヒント設定を使用していないようです。 FirefoxでWebサイトのフォントを上書きする方法 )などを示しています。

~/.fonts.confで「特定のフォントのヒンティングをオフにする」ために、2つの一致タグを順番に(orderルールは上から下に評価されているようです)、1つはすべてのヒントのフォントヒントをオンにし、もう1つは特定のフォントのヒントをオフにします(私の場合、Noto Sans Mono CJK SCNoto Sans CJK SCおよびNoto Sans):

<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<fontconfig>
 <match target="font">
  <edit mode="assign" name="rgba">
   <const>rgb</const>
  </edit>
 </match>

 <match target="font">                      <!-- This match tag sets the -->
  <edit mode="assign" name="hintstyle">     <!-- default for all fonts: -->
   <const>hintslight</const>                <!-- Turn On Slight Hint    -->
  </edit>
  <edit mode="assign" name="hinting">
   <bool>true</bool>
  </edit>
 </match>

 <match target="font">                      <!-- This match tag sets    -->
    <test name="family" qual="any">         <!-- the exception for the  -->
    <string>Noto Sans Mono CJK SC</string>  <!-- fonts that do not need -->
    <string>Noto Sans CJK SC</string>       <!-- hinting                -->
    <string>Noto Sans</string>
    </test>
    <edit mode="assign" name="hintstyle">
     <const>hintnone</const>
    </edit>
  <edit mode="assign" name="hinting">
   <bool>false</bool>
  </edit>
 </match>

 <match target="font">
  <edit mode="assign" name="antialias">
   <bool>true</bool>
  </edit>
 </match>
  <match target="font">
  <edit mode="assign" name="lcdfilter">
    <const>lcdlight</const>
  </edit>
  </match>
</fontconfig>

設定が有効になっていることを確認するには、fc-matchコマンドを使用して、その出力を調べます。

fc-match -s -v mono | grep hinting

ヒントが「True」に設定されているが、「Noto Sans MonoCJKSC」が「False」に設定されているフォントが多数表示されます。

$ fc-match -s -v mono | grep hinting
hinting: True(w)
hinting: True(w)
hinting: True(w)
hinting: True(w)
hinting: True(w)
hinting: False(w)  <-- This one is for Noto Sans Mono CJK SC
hinting: True(w)
hinting: True(w)
hinting: True(w)
hinting: True(w)
hinting: True(w)
hinting: True(w)
...

これがお役に立てば幸いです。

1
Tommy Chen