# まなび見本 / Manabi Mihon

幼児から就学後の、かな・数字の書字見本に使うための見本用フォント（字形改訂 0.130）。独自に作図した中心線から、TrueType / WOFF2 と書き順用データを生成しています。

## 使い方

- `specimen.html` をブラウザーで開くと、実際のフォントで全文字を確認できます。大きさ・太さ・書き順の色分けを切り替えられます。
- Windowsなどのアプリで使う場合は `fonts/ManabiMihon-Regular.ttf`（標準）または `fonts/ManabiMihon-Medium.ttf`（太め）を開いてインストールします。アプリによっては再起動が必要です。
- Webでは `manabi-mihon.css` を読み込み、`font-family: "Manabi Mihon", sans-serif; font-weight: 400;` を指定します。太めは500です。
- 作成した教材の印刷・配布にフォント名の表示は不要です。フォント自体を再配布するときは、同梱の `OFL.txt` を添えてください。

## 今回の配置改訂（0.130）

- 小さいかな24字を、横書きは左下、縦書きは右上の4分の1マス内に配置。
- フォント本体・アプリ・見本ページの色分け表示を同じ50%縮小と配置に統一。
- 見本ページに横書き／縦書きの比較と切り替えを追加。

## 前回の字形改訂（0.120）

- 「べ・ベ」の濁点を左下へ移動し、本体に近い右上へ配置。「ぺ・ペ」の半濁点も同様に調整。
- 「9・９」の丸い部分の横幅を抑え、縦長の形に変更。下へ引く線も整理。
- かなの本体や他の濁音の位置は維持。変更前は `_backup/manabi-mihon/be-nine-3482feb0caa9/` に保管。

## 前回の字形改訂（0.110）

- 「さ・き」：下部の左への戻りをなくし、右へ進む穏やかな曲線に変更。
- 「ぬ・め」：丸い部分の位置を上げ、交差部と内部の空間を整理。
- 「る・ろ」：折り返しと下部の丸みを調整し、「る」の結びに余裕を確保。
- 「ま・ほ・も」：横線の湾曲をなくし、ほぼ水平な直線に変更。
- 同じ問題のあった「あ・ね・む・ゆ」も結びと曲線を調整。「こ・ふ・ら」の余分な折り返しも削除。
- 字形と運筆は目視で確認。子どもによる使用評価・教育専門家の監修は未実施。

## 字形

- 「さ」は3画、「き」は4画で下の画を分離。「り」は2画を接続しません。
- 「シ／ツ」「ソ／ン」は点画の向き・位置を区別しています。
- 濁点と半濁点の空間を確保し、線の太さの変化を抑えています。
- 「そ」は1画の形、「4」は上を開いた形、「5」は横棒を最後に書く2画、「7」は2画を採用しています。
- 小さいかなは1マス全体を縦横50%に縮小し、横書きでは左下、縦書きでは右上の4分の1マス内に配置します。線の太さも一緒に縮小します。フォント自体に縦書き用の置換（vert / vrt2）を含みます。
- 半角数字も見本のマスに合わせて全角幅にしています。英数字の通常の等幅書体とは幅が異なります。

## 収録範囲

基本のひらがな46字、カタカナ46字、濁音・半濁音54字、小さいかな24字、数字（半角・全角）20字、長音・句読点・括弧など12字、結合濁点・結合半濁点2字、空白2字の計206コードポイント。正確な一覧は `coverage.txt` にあります。

漢字・英字・旧仮名「ゐ・ゑ・ヰ・ヱ」・半角カタカナ・アイヌ語用カタカナ等は未収録です。アプリでは従来のフォント／書き順データで補います。

Unicodeの分解形（例：か＋結合濁点）にも対応します。

## 作成と位置づけ

線は本プロジェクトで独自に作図しています。市販フォント、Klee One、KanjiVGのアウトラインは、本フォントの生成に使用していません。

参考にしたのは、[モリサワの教育向けUD書体の解説](https://www.morisawa.co.jp/products/fonts/bizplus/lp/school/)で紹介されている、線の太さの差を抑え、運筆を分かりやすくする考え方です。モリサワの製品や認定フォントではありません。

本版は字形確認・調整のための初版です。教育現場での監修、学習指導要領への適合審査、弱視・読み書きの困難さに関する実証評価は行っていません。指導に使う字形の判断は、実際の教材や指導方針と照らして行ってください。

## 書き方アプリとの関係

`kakikata-app.html` はフォント（標準）と同じ中心線を内蔵します。かな・数字は書き順のON/OFFどちらでも同じ形です。書き順OFFでは番号・色分け・始点・終点を表示しません。濃さを下げても交差部だけが濃くならないよう、単色では全画を一度に描画します。

フォント本体の標準WOFF2もHTML内に含めるため、HTMLだけで開いた場合も、かな・数字の見本は外部通信なしで描画できます。名前欄やタイトルにもフォントを使用します。漢字・英字は従来どおりKlee One等で表示します。

アプリの残存KanjiVGデータ（旧仮名等）はCC BY-SA 3.0のままです。本フォントのOFLとは別の素材です。

## 再生成

必要なPythonパッケージ：`fonttools==4.68.0`, `brotli==1.2.1`, `skia-pathops==0.9.2`。

```text
python build_font.py
```

字形の編集元は `source/glyphs.json`。109×109の左上原点のSVGパスで、配列の順番が筆順です。小書き・濁点・半濁点は共通定義から生成します。フォントと `manabi-strokes.js` を生成した後、`python install_into_app.py ../../kakikata-app.html` でアプリ内の `MANABI_FONT` / `MANABI_STROKES` ブロックも同じ内容に更新します。更新前のHTMLは `_backup/manabi-mihon/` に保存されます。

`qa/check-browser.cjs` でWebフォントの読み込み、分解形濁点の一致、スマートフォンでのはみ出し、見本ページを確認します。`qa/validate_font.py` は収録範囲、輪郭、線の分離などを確認します。`qa/check-app.cjs <リポジトリのパス>` はアプリを外部通信を遮断した状態で検証します。

検証用ブラウザーはPlaywrightとEdgeを使用します。Playwrightを通常のモジュール解決で見つけられない場合は、環境変数 `PLAYWRIGHT_MODULE` にインストール先を指定してください。`check-app.cjs` の第2引数に公開URLを渡すと、公開されたアプリにも同じ描画テストを実行できます。

## ライセンス

フォント・中心線データ・生成スクリプト：SIL Open Font License 1.1。予約フォント名は設けていません。全文は `OFL.txt`。
