ベースをGoogleフォント版に変更
qrac opened this issue · comments
元々ベースにしていたNoto Sans CJK JPとGoogleフォントで配信されているNoto Sans JPには内包グリフ以外にも差異があるようで、混同して開発すると参照ウェイトがおかしくなったりする問題が報告された。後発のGoogleフォントはアップデートされているのかもしれない。
2023年現状だとリソースを入手しやすいのはGoogleフォント版であり、Web Fontとして使う場合も同じ。Noto Sans CJK JPのリンクは正直どこにあるのか探しづらい。多くの人はGoogleフォント版をダウンロードするだろう。よって、Googleフォント版で開発しておいた方が後々面倒が少ないと思われるため、すべて作り直す。
また、いつのどのフォントをもとにしたのか明確にするため、Googleフォントをダウンロードしたままの状態でライセンスを含めリポジトリに保存しておく。特にM PLUS Rounded 1cは本家サーバーからのダウンロードに時間がかかるので内包することで効率化できるメリットもある。その他の特徴は以下の通り。
- Noto Sans JP:日本語すべて?・ttf形式・Variable Fonts含む
- Noto Serif JP:日本語すべて?・otf形式(なぜこれだけotf?)
- M PLUS Rounded 1c:おそらく本家と同じ・日本語すべて?・ttf形式
一般的なサブセットは第一水準2965 文字+αにすることが多いが、Googleフォント版は17808文字でどのような文字選定かは不明だが文字のサポート率は高い(5万文字あるCJKのCKを削った分か?)。
ウェイトの変更点
YakuHanJP
- 2 weight 追加 (SemiBold 600, ExtraBold 800)
- 2 weight 名称変更 (Light 200 → ExtraLight 200, DemiLight 300 → Light)
font | W100 | W200 | W300 | W400 | W500 | W600 | W700 | W800 | W900 |
---|---|---|---|---|---|---|---|---|---|
before (CJKjp) | Thin | Light | DemiLight | Regular | Medium | - | Bold | - | Black |
after (Google) | Thin | ExtraLight | Light | Regular | Medium | SemiBold | Bold | ExtraBold | Black |
YakuHanMP
- 5 weight 繰り上げ(100 ~ 500 → 200 ~ 600)
font | W100 | W200 | W300 | W400 | W500 | W600 | W700 | W800 | W900 |
---|---|---|---|---|---|---|---|---|---|
before (CJKjp) | ExtraLight | Light | Regular | Medium | SemiBold | - | Bold | - | Black |
after (Google) | - | ExtraLight | Light | Regular | Medium | SemiBold | Bold | - | Black |
YakuHanRP
- 変更なし
font | W100 | W200 | W300 | W400 | W500 | W600 | W700 | W800 | W900 |
---|---|---|---|---|---|---|---|---|---|
before (Original) | Thin | - | Light | Regular | Medium | - | Bold | ExtraBold | Black |
after (Google) | Thin | - | Light | Regular | Medium | - | Bold | ExtraBold | Black |
Noto Sans JP, Noto Serif JPには2つのunicodeが割り当てられているものがある。M PLUS Rounded 1cには1つのグリフに1つのコード。なのでM PLUS Rounded 1cの仕様を変えずにNoto系に合わせるにはグリフを余分に持っておく必要がある。フィルタリンで差分があるとマージした時に不具合が出るため。
2つのunicodeが割り当てられているもの↓
Noto sans JP
- space: space
0020
+ nbspace00A0
- hyphenationpoint: hyphenationpoint
2027
+ dot-kata30FB
- angleLeft: angleLeft
2329
+ anglebracketleft3008
- angleRight: angleRight
232A
+ anglebracketright3009
Noto Serif JP
- space: space
0020
+ nbspace00A0
- angleLeft: angleLeft
2329
+ anglebracketleft3008
- angleRight: angleRight
232A
+ anglebracketright3009
リストフィルタ: yakuhanjp-v4
.notdef
space
nbspace
comma-han
comma-han.vert
period-han
period-han.vert
dot-kata
hyphenationpoint
colon.full
exclam.full
question.full
semicolon.full
colon.full.vert
angleLeft
angleRight
anglebracketleft
anglebracketright
blacklenticularbracketleft
blacklenticularbracketright
braceleft.full
braceright.full
cornerbracketleft
cornerbracketright
dblanglebracketleft
dblanglebracketright
tortoiseshellbracketleft
tortoiseshellbracketright
whitecornerbracketleft
whitecornerbracketright
whitelenticularbracketleft
whitelenticularbracketright
anglebracketleft.vert
anglebracketright.vert
blacklenticularbracketleft.vert
blacklenticularbracketright.vert
bracketleft.full
bracketright.full
cornerbracketleft.vert
cornerbracketright.vert
dblanglebracketleft.vert
dblanglebracketright.vert
parenleft.full
parenright.full
tortoiseshellbracketleft.vert
tortoiseshellbracketright.vert
whitecornerbracketleft.vert
whitecornerbracketright.vert
whitelenticularbracketleft.vert
whitelenticularbracketright.vert
braceleft.full.vert
braceright.full.vert
bracketleft.full.vert
bracketright.full.vert
parenleft.full.vert
parenright.full.vert
リストフィルタ: yakuhanjps-v4
.notdef
space
nbspace
angleLeft
angleRight
anglebracketleft
anglebracketright
blacklenticularbracketleft
blacklenticularbracketright
braceleft.full
braceright.full
cornerbracketleft
cornerbracketright
dblanglebracketleft
dblanglebracketright
tortoiseshellbracketleft
tortoiseshellbracketright
whitecornerbracketleft
whitecornerbracketright
whitelenticularbracketleft
whitelenticularbracketright
anglebracketleft.vert
anglebracketright.vert
blacklenticularbracketleft.vert
blacklenticularbracketright.vert
bracketleft.full
bracketright.full
cornerbracketleft.vert
cornerbracketright.vert
dblanglebracketleft.vert
dblanglebracketright.vert
parenleft.full
parenright.full
tortoiseshellbracketleft.vert
tortoiseshellbracketright.vert
whitecornerbracketleft.vert
whitecornerbracketright.vert
whitelenticularbracketleft.vert
whitelenticularbracketright.vert
braceleft.full.vert
braceright.full.vert
bracketleft.full.vert
bracketright.full.vert
parenleft.full.vert
parenright.full.vert
リストフィルタ: yoko-other
comma-han
period-han
dot-kata
hyphenationpoint
colon.full
exclam.full
question.full
semicolon.full
リストフィルタ: yoko-kakko
angleLeft
angleRight
anglebracketleft
anglebracketright
blacklenticularbracketleft
blacklenticularbracketright
braceleft.full
braceright.full
cornerbracketleft
cornerbracketright
dblanglebracketleft
dblanglebracketright
tortoiseshellbracketleft
tortoiseshellbracketright
whitecornerbracketleft
whitecornerbracketright
whitelenticularbracketleft
whitelenticularbracketright
bracketleft.full
bracketright.full
parenleft.full
parenright.full
リストフィルタ: tate-other
comma-han.vert
period-han.vert
colon.full.vert
リストフィルタ: tate-kakko
anglebracketleft.vert
anglebracketright.vert
blacklenticularbracketleft.vert
blacklenticularbracketright.vert
cornerbracketleft.vert
cornerbracketright.vert
dblanglebracketleft.vert
dblanglebracketright.vert
tortoiseshellbracketleft.vert
tortoiseshellbracketright.vert
whitecornerbracketleft.vert
whitecornerbracketright.vert
whitelenticularbracketleft.vert
whitelenticularbracketright.vert
braceleft.full.vert
braceright.full.vert
bracketleft.full.vert
bracketright.full.vert
parenleft.full.vert
parenright.full.vert
余白調整
yoko
ten: default / 200
maru: default / 400
other: 150 / 150
kakko: default / 200
tate
ten: default / 200
maru: default / 400
other: 150 / 150
kakko: default / 200
colon.full.vertはM PLUS Rounded 1cにも入っているが横を向いていないので余白調整はしない。
完了。