Firefox OS のタイプフェイスや Web フォントとしても提供されている Fira Mono と定番の M+ FONTS を合成してみた。
FontForge による字間・行間調整と合成
字形は変えたくないので半角と全角の幅は字間のみで調整。
全角幅 1200 だと上手く合わないのでとりあえず 1100。2014.06.26:合うポイントサイズと合わないポイントサイズがあるらしいので Fira Mono の2倍の 1200 にした。- 2014.06.29:1100 でできた。
*Fira は SIL Open Font License により派生には同じ名前を含められないことになっています。
#!/usr/bin/env fontforge width = 1100 margin = 0 WinAscent = 785 + margin WinDescent = 215 + margin HHeadAscent = 785 + margin HHeadDescent = -215 - margin TypoLineGap = 0 HHeadLineGap = 0 ### ソースフォント設定 ### mx_type = "2m" mx_weight = "regular" mx_dir = "/usr/local/src/repos/mplus_outline_fonts/work.d/targets/mplus-" mx = mx_dir + mx_type + "/" \ + mx_weight + "/" \ + "mplus-" + mx_type + "-" + mx_weight + ".ttf" fira = "/usr/local/src/repos/Fira/otf/FiraMono-Regular.otf" ### M+ FONTS ### Open(mx) SelectWorthOutputting() # 2014.06.29: サイズを一回り小さくする Scale(90) SetWidth(width) if (width >= 1001) SetLBearing((width-1000)/2,1) endif SetOS2Value("WinAscent", WinAscent) SetOS2Value("WinDescent", WinDescent) SetOS2Value("HHeadAscent", HHeadAscent) SetOS2Value("HHeadDescent", HHeadDescent) SetOS2Value("TypoLineGap", TypoLineGap) SetOS2Value("HHeadLineGap", HHeadLineGap) ### Fira Mono ### Open(fira) SetUniqueID(0) SelectWorthOutputting() SetWidth(width/2) if (width >= 1001) SetBearing(((width-1000)/2)/2,1) endif SetOS2Value("WinAscent", WinAscent) SetOS2Value("WinDescent", WinDescent) SetOS2Value("HHeadAscent", HHeadAscent) SetOS2Value("HHeadDescent", HHeadDescent) SetOS2Value("TypoLineGap", TypoLineGap) SetOS2Value("HHeadLineGap", HHeadLineGap) MergeFonts(mx) SetFontNames("FiraMono-Regular-Mixed", \ "Fira Mono Mixed", \ "Fira Mono Mixed") SetTTFName(0x409, 1, "Fire Mono Mixed") SetTTFName(0x409, 2, "Regular") SetTTFName(0x409, 4, "Fira Mono Mixed") SetTTFName(0x411, 1, "Fira Mono Mixed") SetTTFName(0x411, 2, "レギュラー") SetTTFName(0x411, 4, "Fira Mono Mixed") Generate($fontname + ".ttf", "") Quit(0)
ImageMagick のテキストレンダリング 16pt で出力したもの。左が Fira Mono と M+ 2M の合成、右が本来の M+ 2M。
*古くなったので消した
Komodo Edit での表示。等幅和文フォントなので全角と半角のずれは今のところなし。ただ、DejaVuSansMono より小さいみたいなのでもう少し調整した方がよさそう。
*古くなったので消した
〈今後の課題〉
- Fira Mono をベースにしたためフォントが和文フォントとして認識されない。
- 残り2ウェイトを作成する。
字間・行間をもう少し調整する。
2014.06.27
Fira Mono / M+ 2M / DejaVu Sans Mono 比較
正確なサイズを調べたのでメモ。DejaVu Sans Mono の () 内は EM=1000 の場合の推定値。
Fira Mono | M+ 2M | DejaVu Sans Mono | |
---|---|---|---|
Em Size | 1000 | 1000 | 2048 |
Ascent | 785 | 860 | 1556 (760) |
Descent | 215 | 140 | 492 (240) |
Win Ascent | 1050 | 1075 | 1901 (928) |
Win Descent | 500 | 320 | 483 (236) |
Typo Line Gap | 200 | 90 | 410 (200) |
HHead Line Gap | 0 | 90 | 0 |
VHead Column Spacing | - | 90 | - |
Fira 入手先
Fira サンプル
M+ FONTS
http://mplus-fonts.sourceforge.jp/
*CVS を利用する場合は FontForge + Python が必要。
- 作者:柳田 寛之
- 発売日: 2011/04/04
- メディア: ムック
新詳説DTP基礎[改訂三版] (MdN DESIGN BASICS)
- 作者:波多江潤子
- 発売日: 2012/02/01
- メディア: 単行本