> For the complete documentation index, see [llms.txt](https://mwm5.twelite.info/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://mwm5.twelite.info/1.0-2/references/untitled/twefont/createfont.md).

# createFont???()

フォントジェネレータ関数は、収録フォントごとに定義されています。関数パラメータは共通で、以下のようになります。

```cpp
const FontDef& createFontShinonome16(
    uint8_t id,
    uint8_t line_space = 0,
    uint8_t char_space = 0,
    uint32_t u32Opt = 0);
```

上記は東雲フォント16ドット版（常用漢字収録）のジェネレータの例です。

`id`は、ユーザが指定するフォントID。

`line_space`はフォントの行間スペースをピクセル数で指定します。

`char_space`は文字間スペースでピクセルで指定します。文字間スペースはシングル幅のフォントの指定です。ダブル幅のフォントの場合は倍になります。

`u32Opt`は、フォントのオプションを指定します。オプションは`U32_OPT_FONT_TATEBAI`と`U32_OPT_FONT_YOKOBAI`があり、論理和で指定します。

フォントジェネレータの戻り値は`FontDef&`になっています。この戻り値はライブラリ内部のフォント管理テーブルに生成されたオブジェクトへの参照です。既に登録済みのIDであるばあいは、そのIDに対して上書きを行います。登録できなかった場合は`.is_default()`メソッドが`true`になるデフォルトフォントが返されます。

```cpp
if (createFontShinonome16(11).is_default()) {
    // フォント作成のエラー
}
```
