# 設定：漫画

> comicsの設定：漫画のページの枠と間白、コマのスタイル、写植、吹き出しのスタイル、登場人物

- HTML版: https://postext.dev/ja/docs/configuration-comics
- 最終更新: 2026-10-10
- 読了時間: 3分
- 他の言語: [en](https://postext.dev/en/docs/configuration-comics.md), [es](https://postext.dev/es/docs/configuration-comics.md), [ca](https://postext.dev/ca/docs/configuration-comics.md), [pt](https://postext.dev/pt/docs/configuration-comics.md), [zh](https://postext.dev/zh/docs/configuration-comics.md), [ar](https://postext.dev/ar/docs/configuration-comics.md)

## かんたんな説明

このページでは、漫画のページの設定を説明します。ページの枠と、コマとコマのあいだの空きを決めます。せりふの文字のフォントと大きさを選びます。吹き出し、ナレーション、描き文字の描き方を決めます。登場人物を並べておくと、人物ごとに決まったスタイルで話させることもできます。ページそのものの書き方は、漫画のガイドで説明しています。

## 漫画

`comics`プロパティは、漫画のページ（`:::page`）、帯漫画（`:::strip`）、見開きを設定します。コマを割り出す枠と間白、コマのスタイル、写植、吹き出しのスタイル、登場人物です。読むのは漫画のある文書だけです。漫画のない文書はこれまでとまったく同じに組まれ、漫画があって`comics`の節がない文書は、その言語の既定値を使います。マークアップとページの写植のしかたは[漫画](https://postext.dev/ja/docs/comics.md)で説明しています。

```ts
const config: PostextConfig = {
  comics: {
    readingDirection: 'auto',
    gutter: { horizontal: { value: 5, unit: 'mm' }, vertical: { value: 2.5, unit: 'mm' } },
    panel: { borderWidth: { value: 0.8, unit: 'pt' }, borderStyle: 'rough' },
    panelStyles: [{ id: 'night', background: { hex: '#14142b', model: 'hex' }, borderColor: { hex: '#ffffff', model: 'hex' } }],
    lettering: { fontSize: { value: 8.5, unit: 'pt' }, textTransform: 'uppercase' },
    balloonStyles: [{ id: 'eerie', shape: 'wavy', italic: true }],
    cast: [{ id: 'maya', name: 'マヤ' }, { id: 'tomas', name: 'トマスじいさん' }],
  },
};
```

| プロパティ | 型 | 既定値 | 説明 |
| --- | --- | --- | --- |
| `readingDirection` | `'auto' \| 'ltr' \| 'rtl'` | `'auto'` | 段の中のコマの順序です。`'auto'`は、右から左に書く文書、縦組みの文書、日本語と繁体字中国語の文書では右から左へ、それ以外では（簡体字中国語と韓国語を含め）`artDirection`の方向へ読みます。ページの`direction`属性が優先されます。`page.binding: 'auto'`のとき、コミックを右から左に読む本は右綴じになります。 |
| `artDirection` | `'ltr' \| 'rtl'` | `'ltr'` | 絵が前提とする読む方向です。マンガなら`'rtl'`です。 |
| `mirrorArt` | `boolean` | `false` | `artDirection`と逆の方向に読むページの絵を左右反転します。`mirror=false`を付けたコマは、絵を描いたままにします。 |
| `frame.margins` | `PageMargins` | ページの余白 | 漫画のページ独自の余白です（`top`、`bottom`、`left`、`right`、`mirror`）。コマはその内側の箱から割り出します。未設定なら、ページの版面から割り出します。 |
| `gutter.horizontal` | `Dimension` | `4mm` | 段と段の間隔です。ページの`gutter`属性が優先されます。 |
| `gutter.vertical` | `Dimension` | `2mm` | 段の中で横に並ぶコマの間隔です。 |
| `panel` | `PanelStyleConfig` | 後述 | 既定のコマのスタイルです。 |
| `panelStyles` | `NamedPanelStyleConfig[]` | `[]` | 名前付きのコマのスタイルで、`:::page{style=…}`か`::panel{style=…}`で選びます。それぞれ`id`、任意の`name`（エディターの画面でだけ使います）、コマのスタイルの項目を持ち、設定していない項目は`panel`に従います。 |
| `lettering` | `LetteringConfig` | 後述 | 本のすべての吹き出しの書体、サイズ、表記の決まりです。 |
| `balloonStyles` | `BalloonStyleConfig[]` | 組み込みの9つのスタイル | 種類ごとの吹き出しのスタイルです。組み込みのスタイルは常にあり、そのIDを持つ項目はそのスタイルを変更し、新しいIDの項目は`speech`に重ねたスタイルを加えます。 |
| `cast` | `ComicCastMember[]` | `[]` | 登場人物です（[登場人物](https://postext.dev/ja/docs/configuration-comics.md#登場人物)を参照）。 |
| `runningHeads` | `boolean` | `false` | 漫画のページに柱とノンブルを入れます。オフのとき、漫画のページはコマだけになり、ページ番号は数えられます。 |
| `viewerLeaf` | `ComicViewerLeafConfig` | 未設定 | ページが紙面の形をしていないホストのためのものです。漫画のページを印刷用の紙面（`width`、`height`、`margins`）に組み、それを`fitWidth` pxの幅（高さは最大`fitHeight` px）に縮小してページの上端に置きます。SandboxのHTMLビューアーが設定し、文書とともに保存されることはありません。 |

### コマのスタイル

`comics.panel`と、`comics.panelStyles`の各項目は次の項目を持ちます。

| プロパティ | 型 | 既定値 | 説明 |
| --- | --- | --- | --- |
| `borderWidth` | `Dimension` | `1pt` | 枠線の太さです。`0`で枠線を描きません。枠線はコマの輪郭の上に描きます。 |
| `borderColor` | `ColorValue` | 黒 | 枠線の色です（パレットにリンクできます）。 |
| `borderRadius` | `Dimension` | `0` | 長方形のコマの角の半径で、短い辺の半分までに抑えます。斜めの線で切ったコマの角はとがったままです。 |
| `borderStyle` | `'solid' \| 'rough' \| 'none'` | `'solid'` | きれいな線、少し揺れる手描きの線（揺れはコマから決まる値をシードにするので、何度組んでも同じ線になります）、または枠線なし。 |
| `background` | `ColorValue` | 白 | 絵の下の塗りです。空のコマの色と、全体表示した絵の周りに残る帯の色になります。 |
| `fit` | `'cover' \| 'contain'` | `'cover'` | `cover`はコマを埋めるように絵をトリミングしますが、セーフエリアには食い込みません。`contain`は絵全体を表示します。 |
| `bleed` | `boolean` | `false` | このスタイルのコマを断ち切りにします。枠に接するすべての辺を、枠の外の仕上がり線と裁ち落としまで伸ばします。 |

### 写植

`comics.lettering`は、本のすべての吹き出しを決めます。サイズは1つだけです。吹き出しのスタイルはそれを倍率で変えられますが（`fontScale`）、吹き出しに収めるために文字を縮めることはありません。

| プロパティ | 型 | 既定値 | 説明 |
| --- | --- | --- | --- |
| `fontFamily` | `string` | 言語による | 写植の書体です。未設定のときは`Comic Neue`、日本語では`Zen Antique`、簡体字中国語では`Noto Sans SC`、繁体字中国語では`LXGW WenKai TC`、アラビア語、ペルシア語、ウルドゥー語では`Playpen Sans Arabic`です（`defaultComicFont(locale)`）。 |
| `fontSize` | `Dimension` | `7.5pt` | 吹き出しの文字のサイズです。印刷されたページでは、漫画の写植は7〜9 ptにするのが普通です。 |
| `lineHeight` | `number` | `1.15` | 行と行の間隔で、サイズの倍数です。既定のままにすると、縦書きの吹き出しと中国語・日本語の吹き出しは1.5、アラビア語の吹き出しは1.45になります。 |
| `color` | `ColorValue` | 黒 | 文字の色です。 |
| `bold`, `italic` | `boolean` | `false` | すべての写植をボールドかイタリックにします。中国語、日本語、アラビア語の写植は斜体にしません。 |
| `letterSpacing` | `Dimension` | `0` | 文字と文字の間に加える間隔です。`em`は文字サイズに対する値です。アラビア語には適用しません。 |
| `writingMode` | `'auto' \| 'horizontal' \| 'vertical'` | `'auto'` | `'auto'`は、日本語と繁体字中国語、そして縦組みの文書を縦書きで写植し、それ以外は横書きで写植します。台本の行に`vertical`か`horizontal`を付けると、その行だけ組み方向を変えられます（[漫画 › 写植](https://postext.dev/ja/docs/comics.md#写植)を参照）。 |
| `textTransform` | `'none' \| 'uppercase'` | `'none'` | すべて大文字にします。アメリカやヨーロッパの写植の伝統的な見た目です。大文字と小文字の区別のない文字体系はそのままです。 |
| `dropFinalStop` | `'auto' \| boolean` | `'auto'` | 吹き出しを終える句点を省きます（マンガの`。`）。`'auto'`：日本語と中国語でだけ省きます。 |
| `doubleDash` | `boolean` | `false` | 全角ダッシュを`--`で写植します。アメリカの写植の習慣です。 |
| `inset` | `Dimension` | `1.5mm` | 吹き出しとコマの枠線の間に空ける間隔です。枠線に付けたナレーションには適用しません。 |
| `joinSameSpeaker` | `'butt' \| 'connector' \| 'none'` | `'butt'` | 同じ話し手の吹き出しが2つ続くとき、本体を1つの輪郭にまとめるか、細い首でつなぐか、離しておくかです。台本の行ごとに`join`か`join=false`で指定することもできます。 |
| `maxColumnChars` | `number` | `8` | 縦書きの写植で、吹き出しの1行に入れる最大の字数です。描き文字は5字で改行します。 |

### 吹き出しのスタイル

`comics.balloonStyles`の各項目は、同じIDの組み込みのスタイル（`speech`、`thought`、`whisper`、`shout`、`radio`、`caption`、`inner`、`note`、`sfx`）に、新しいIDなら`speech`に重ねられます。下の既定値は`speech`のものです。組み込みの各スタイルが変える点は[漫画 › 吹き出しのスタイル](https://postext.dev/ja/docs/comics.md#吹き出しのスタイル)に挙げています。`em`で表す長さは、吹き出しの文字サイズに対する値です。

| プロパティ | 型 | 既定値 | 説明 |
| --- | --- | --- | --- |
| `id` | `string` | 必須 | 台本の行がスタイルを指定するときの語です。`ben{whisper}: …`または`style=whisper`。 |
| `name` | `string` | `id` | 人が読むための名前で、エディターの画面でだけ使います。 |
| `shape` | `'oval' \| 'rounded' \| 'rectangle' \| 'cloud' \| 'burst' \| 'wavy' \| 'electric' \| 'none'` | `'oval'` | 文字の周りの輪郭です。`'none'`は文字を絵の上に直接置きます。 |
| `fill` | `ColorValue` | 白 | 吹き出しの塗りです。 |
| `stroke` | `ColorValue` | 黒 | 輪郭の色です。 |
| `strokeWidth` | `Dimension` | `0.6pt` | 輪郭の太さです。 |
| `dash` | `boolean` | `false` | 破線の輪郭です（ささやき）。 |
| `double` | `boolean` | `false` | 二重線の輪郭です。 |
| `wobble` | `number` | `0` | 輪郭の手描きの揺れで、0〜1です。吹き出しから決まる値をシードにするので、ビルドごとに変わることはありません。 |
| `roundness` | `number` | `2.2` | 楕円の超楕円の指数です。2で楕円になり、値を大きくするほど四角に近づきます。 |
| `burstPoints` | `number` | `14` | ギザギザのとげの数です。`0`なら周の長さから数を決めます。 |
| `burstDepth` | `number` | `0.22` | ギザギザのとげの深さで、本体の半径に対する割合です。 |
| `padding` | `Dimension` | `0.55em` | 文字と輪郭の間の余白です。 |
| `aspect` | `number` | `1.6` | 改行で文字の塊に目指させる幅と高さの比です（横書きの写植）。 |
| `tail` | `'curved' \| 'wedge' \| 'bubbles' \| 'zigzag' \| 'none'` | `'curved'` | しっぽです。 |
| `tailWidth` | `Dimension` | `0.9em` | 輪郭から出るところのしっぽの幅です。 |
| `tailReach` | `number` | `0.55` | しっぽが話し手に向かってどこまで伸びるかで、輪郭から口までの隔たりに対する割合です。 |
| `target` | `'mouth' \| 'head'` | `'mouth'` | しっぽが指すもので、アンカーの口か頭（思考の吹き出し）です。 |
| `position` | `'auto' \| 'top-start' \| 'top-end' \| 'bottom-start' \| 'bottom-end' \| 'top' \| 'bottom'` | `'auto'` | 行が位置を固定していないときの吹き出しの位置です。写植が配置するか、コマの角か辺に置きます。 |
| `butt` | `boolean` | `false` | 角や辺に置いた吹き出しを、コマの枠線にぴったり付けます（ナレーション）。 |
| `fontFamily` | `string` | 写植の書体 | このスタイルの書体です。`sfx`の既定値は言語に合った描き文字の書体で、`Bangers`、日本語では`Dela Gothic One`、簡体字中国語では`ZCOOL KuaiLe`、繁体字中国語では`LXGW WenKai TC`、アラビア語では`Lalezar`です（`defaultComicSfxFont(locale)`）。 |
| `fontScale` | `number` | `1` | 文字のサイズで、写植のサイズの倍数です。 |
| `bold`, `italic` | `boolean` | 写植の値 | ボールドまたはイタリックの文字です。 |
| `color` | `ColorValue` | 写植の値 | 文字の色です。 |
| `textTransform` | `'none' \| 'uppercase'` | 写植の値 | このスタイルをすべて大文字にします。 |
| `letterSpacing` | `Dimension` | 写植の値 | 文字と文字の間に加える間隔です。 |
| `align` | `'center' \| 'start'` | `'center'` | 吹き出しの中の行のそろえ方です。 |
| `halo` | `Dimension` | なし | 文字の周りに描く縁（袋文字）の太さで、絵の上でも文字が読めるようにします（描き文字）。 |
| `haloColor` | `ColorValue` | 白 | 縁の色です。 |
| `rotate` | `number` | `0` | 時計回りの回転角（度）です。行の`rotate`属性が優先されます。 |

### 登場人物

`comics.cast`の各項目は、1人の登場人物を表します。

| プロパティ | 型 | 既定値 | 説明 |
| --- | --- | --- | --- |
| `id` | `string` | 必須 | 台本と絵のアンカーで使う話し手のキーです。 |
| `name` | `string` | `id` | HTMLの出力とリフロー型のEPUBが人物のセリフの前に印字し、エディターが表示する名前です。 |
| `balloonStyle` | `string` | `speech` | スタイルを指定していない、その人物の行のスタイルです。 |
| `color` | `ColorValue` | スタイルの値 | その人物の吹き出しの文字の色です。 |
| `fill` | `ColorValue` | スタイルの値 | その人物の吹き出しの塗りです。 |
| `fontFamily` | `string` | スタイルの値 | その人物の吹き出しの書体です。 |

行自身の`color`と`font`は登場人物の設定に優先し、登場人物の設定は吹き出しのスタイルに優先します。漫画の色はどれもパレットの項目にでき、ほかのリンクした色と同じくパレットに従います。

```ts
const resolved = resolveComicsConfig(config.comics, 'ja');
// => すべての項目が埋まり、書体はZen AntiqueとDela Gothic One

const minimal = stripComicsDefaults(config.comics, 'ja');
// => すべてが既定値ならundefined

const shout = pickBalloonStyle(resolved, 'shout'); // 本の変更を加えた組み込みのshout
const night = pickPanelStyle(resolved, 'night');   // 名前付きのコマのスタイル、なければ既定のコマ
```
