« 『未知の土地へ』 (To Lands Unknown) の紹介 | トップページ | Pangoって何のソフト? »

2015年10月29日 (木)

Fontconfigを使って日本語斜体を別フォントに置き換える方法

Fontconfigを使って日本語斜体を別フォントに置き換える方法

はじめに

具体例としては特定のソフトの話なのですが、何かのヒントになるかもしれないのでfontconfigの話として書いておきます。そもそもの動機はPangoのマークアップだけで〜の最後をご覧ください。傍点は結構良かったのですが、怪しげなやりかたなのでいつか人に迷惑をかけそうでした。そこで、自分の設定だけで良くしようと思ったのがこの設定を試した理由です。

イタリックを別フォントへ置き換え

置き換えたかったソフトはDroid Sans Japaneseを日本語フォントとして利用しています。他では使っていないのでそのフォントかつitalicの時は別のフォントに置き換えるようにしました。ユーザーの設定としたかったので、設定ファイルは~/.config/fontconfig/fonts.confにしました。

<!-- 日本語「イタリック」用 -->
<match target="pattern">
  <test qual="any" name="family"><string>Droid Sans Japanese</string></test>
  <test qual="any" name="slant" compare="eq"><const>italic</const></test>
  <edit name="family" mode="assign" binding="same"><string>FGPKyokashoNT</string></edit>
</match>

Droid Sans Japaneseかつitalicの時にFGPKyokashoNTへ置き換える設定です。とりあえず動きましたが、fontconfigはよく分からないのでアホなことをやっているかもしれません。

フォントの微調整

FGPKyokashoNTは線が細くて小さ目だったので、italicでないDroid Sans Japaneseと混ぜるとバランスが取れませんでした。そのため、少々大き目にして擬似ボールドを指定しました。ついでに擬似斜体を元に戻しました。擬似斜体はシステムのfontconfig設定で行っているやつです。

<!-- Droid Sans Japaneseと比べると線が細いでの太く & 大きさを合わせる & 擬似斜体を元に戻す -->
<match target="font">
  <test qual="any" name="family" compare="eq"><string>FGPKyokashoNT</string></test>
  <test target="pattern" name="slant" compare="eq"><const>italic</const></test>
  <edit name="embolden" mode="assign"><bool>true</bool></edit>
  <edit name="matrix" mode="assign">
    <matrix><double>1.1</double><double>-0.22</double>
            <double>0</double><double>1.1</double>
    </matrix> <!--- 大きさ1.1倍 擬似斜体戻す 1.1✕-0.2 -->
  </edit>
</match>

これで次のようになります。2行目が斜体の指定をしたところです。

次の傍点と比べるとインパクトが足りませんね。

引用文とかには良さそうですが、単語1つを強調とかには向かないようです。引用符をつけるという手もあるけど、元の英文の引用符に対応させても使うので区別したいです(英文の引用符に強調の意味はないそうです。文字通り引用か、皮肉)。やっぱり傍点がいいな…

全設定

最後にこの設定をした~/.config/fontconfig/fonts.confの全部を示します。

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>

<!-- 日本語「イタリック」用 -->
<match target="pattern">
  <test qual="any" name="family"><string>Droid Sans Japanese</string></test>
  <test qual="any" name="slant" compare="eq"><const>italic</const></test>
  <edit name="family" mode="assign" binding="same"><string>FGPKyokashoNT</string></edit>
</match>

<!-- Droid Sans Japaneseと比べると線が細いでの太く & 大きさを合わせる & 擬似斜体を元に戻す -->
<match target="font">
  <test qual="any" name="family" compare="eq"><string>FGPKyokashoNT</string></test>
  <test target="pattern" name="slant" compare="eq"><const>italic</const></test>
  <edit name="embolden" mode="assign"><bool>true</bool></edit>
  <edit name="matrix" mode="assign">
    <matrix><double>1.1</double><double>-0.22</double>
            <double>0</double><double>1.1</double>
    </matrix> <!--- 大きさ1.1倍 擬似斜体戻す 1.1✕-0.2 -->
  </edit>
</match>

</fontconfig>

« 『未知の土地へ』 (To Lands Unknown) の紹介 | トップページ | Pangoって何のソフト? »

パソコン・インターネット」カテゴリの記事

コメント

コメントを書く

コメントは記事投稿者が公開するまで表示されません。

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.f.cocolog-nifty.com/t/trackback/2064309/62273504

この記事へのトラックバック一覧です: Fontconfigを使って日本語斜体を別フォントに置き換える方法:

« 『未知の土地へ』 (To Lands Unknown) の紹介 | トップページ | Pangoって何のソフト? »