# Configuració: còmics

> Els paràmetres de comics: el marc i els carrers de les pàgines de còmic, els estils de vinyeta, la retolació, els estils de bafarada i el repartiment

- Versió HTML: https://postext.dev/ca/docs/configuration-comics
- Última actualització: 2026-10-10
- Temps de lectura: 3 min
- Altres idiomes: [en](https://postext.dev/en/docs/configuration-comics.md), [es](https://postext.dev/es/docs/configuration-comics.md), [pt](https://postext.dev/pt/docs/configuration-comics.md), [zh](https://postext.dev/zh/docs/configuration-comics.md), [ja](https://postext.dev/ja/docs/configuration-comics.md), [ar](https://postext.dev/ar/docs/configuration-comics.md)

## En poques paraules

Aquesta pàgina reuneix els paràmetres de les pàgines de còmic. Fixes el marc de la pàgina i l'espai entre vinyetes. Tries la tipografia i la mida de la retolació. Defineixes com es dibuixen les bafarades, les cartel·les i les onomatopeies. També pots donar la llista de personatges, perquè cadascun parli amb el seu propi estil. La guia de còmics explica com escriure les pàgines.

## Còmics

La propietat `comics` configura les pàgines de còmic (`:::page`), les tires (`:::strip`) i les dobles pàgines: el marc i els carrers de què es tallen les vinyetes, els estils de vinyeta, la retolació, els estils de bafarada i el repartiment. Només la llegeixen els documents amb còmics; un document sense còmics es compon exactament igual que abans, i un document amb còmics i sense secció `comics` pren els valors per defecte de la seva llengua. El marcatge i la manera com es retolen les pàgines s'expliquen a [Còmics](https://postext.dev/ca/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: 'Maya' }, { id: 'tomas', name: 'Avi Tomàs' }],
  },
};
```

| Propietat | Tipus | Per defecte | Descripció |
| --- | --- | --- | --- |
| `readingDirection` | `'auto' \| 'ltr' \| 'rtl'` | `'auto'` | L'ordre de les vinyetes dins d'una filera. `'auto'` llegeix de dreta a esquerra en un document de dreta a esquerra, en un de vertical i en japonès i xinès tradicional i, si no, en el sentit d'`artDirection` (també en xinès simplificat i coreà). L'atribut `direction` d'una pàgina el substitueix. Amb `page.binding: 'auto'`, un llibre els còmics del qual es llegeixen de dreta a esquerra s'enquaderna per la dreta. |
| `artDirection` | `'ltr' \| 'rtl'` | `'ltr'` | El sentit de lectura per al qual es va dibuixar l'art: `'rtl'` per al manga. |
| `mirrorArt` | `boolean` | `false` | Reflecteix els dibuixos d'una pàgina que es llegeix en el sentit contrari a `artDirection`. Una vinyeta conserva el dibuix tal com és amb `mirror=false`. |
| `frame.margins` | `PageMargins` | els marges de la pàgina | Marges propis per a les pàgines de còmic (`top`, `bottom`, `left`, `right`, `mirror`). Les vinyetes es tallen de la caixa que deixen; sense definir, de la caixa de text de la pàgina. |
| `gutter.horizontal` | `Dimension` | `4mm` | L'espai entre fileres. L'atribut `gutter` d'una pàgina el substitueix. |
| `gutter.vertical` | `Dimension` | `2mm` | L'espai entre vinyetes contigües d'una filera. |
| `panel` | `PanelStyleConfig` | vegeu més avall | L'estil de vinyeta per defecte. |
| `panelStyles` | `NamedPanelStyleConfig[]` | `[]` | Estils de vinyeta amb nom, que es trien amb `:::page{style=…}` o `::panel{style=…}`. Cadascun té un `id`, un `name` opcional (només per a les interfícies d'edició) i els camps d'un estil de vinyeta; els camps sense definir segueixen `panel`. |
| `lettering` | `LetteringConfig` | vegeu més avall | La lletra, el cos i les normes de la casa de totes les bafarades del llibre. |
| `balloonStyles` | `BalloonStyleConfig[]` | els nou estils integrats | Estils de bafarada per tipus. Els integrats hi són sempre; una entrada amb l'id d'un d'ells el modifica, i una entrada amb un id nou afegeix un estil que es posa per sobre de `speech`. |
| `cast` | `ComicCastMember[]` | `[]` | Els personatges (vegeu [Repartiment](https://postext.dev/ca/docs/configuration-comics.md#repartiment)). |
| `runningHeads` | `boolean` | `false` | Imprimeix les capçaleres i els folis a les pàgines de còmic. Desactivat, una pàgina de còmic és tota vinyetes i el seu número continua comptant. |
| `viewerLeaf` | `ComicViewerLeafConfig` | sense definir | Per als amfitrions les pàgines dels quals no són fulls: compon les pàgines de còmic en un full imprès (`width`, `height`, `margins`) escalat a `fitWidth` px (i com a màxim a `fitHeight` px d'alçada) a dalt de la pàgina. El visor HTML del Sandbox el fixa; no es desa mai amb un document. |

### Estils de vinyeta

`comics.panel` i cada entrada de `comics.panelStyles`:

| Propietat | Tipus | Per defecte | Descripció |
| --- | --- | --- | --- |
| `borderWidth` | `Dimension` | `1pt` | Gruix de la vora; `0` no en dibuixa cap. La vora es traça sobre el contorn de la vinyeta. |
| `borderColor` | `ColorValue` | negre | Color de la vora (es pot vincular a la paleta). |
| `borderRadius` | `Dimension` | `0` | Radi de les cantonades d'una vinyeta rectangular, limitat a la meitat del seu costat més curt. Una vinyeta tallada per una línia inclinada conserva les cantonades vives. |
| `borderStyle` | `'solid' \| 'rough' \| 'none'` | `'solid'` | Una línia neta, una línia feta a mà que tremola una mica (amb una llavor presa de la vinyeta, així que és igual a cada composició) o cap vora. |
| `background` | `ColorValue` | blanc | El farciment de sota el dibuix: el color d'una vinyeta buida i de les bandes que envolten un dibuix mostrat sencer. |
| `fit` | `'cover' \| 'contain'` | `'cover'` | `cover` retalla el dibuix per omplir la vinyeta, mai dins de la seva zona segura; `contain` el mostra sencer. |
| `bleed` | `boolean` | `false` | Les vinyetes d'aquest estil sobrepassen el marc fins al tall i la sang per cada costat que toca el marc. |

### Retolació

`comics.lettering` defineix totes les bafarades del llibre. Hi ha un sol cos: un estil de bafarada el pot escalar (`fontScale`), i el text no es redueix mai perquè càpiga en una bafarada.

| Propietat | Tipus | Per defecte | Descripció |
| --- | --- | --- | --- |
| `fontFamily` | `string` | segons la llengua | La lletra de la retolació. Sense definir: `Comic Neue`; `Zen Antique` en japonès, `Noto Sans SC` en xinès simplificat, `LXGW WenKai TC` en xinès tradicional, `Playpen Sans Arabic` en àrab, persa i urdú (`defaultComicFont(locale)`). |
| `fontSize` | `Dimension` | `7.5pt` | El cos del text de les bafarades. Els còmics se solen retolar a entre 7 i 9 pt a la pàgina impresa. |
| `lineHeight` | `number` | `1.15` | Distància entre línies, com a múltiple del cos. Si es deixa el valor per defecte, les bafarades verticals, xineses i japoneses prenen 1,5 i les àrabs 1,45. |
| `color` | `ColorValue` | negre | Color del text. |
| `bold`, `italic` | `boolean` | `false` | Posa tota la retolació en negreta o en cursiva. La retolació xinesa, japonesa i àrab no s'inclina mai. |
| `letterSpacing` | `Dimension` | `0` | Espai extra entre lletres; `em` és relatiu al cos del text. No s'aplica mai a l'àrab. |
| `writingMode` | `'auto' \| 'horizontal' \| 'vertical'` | `'auto'` | `'auto'` retola en columnes verticals el japonès, el xinès tradicional i qualsevol document compost en escriptura vertical, i tota la resta en horitzontal. Les marques `vertical` o `horizontal` d'una línia de guió componen aquella línia d'una altra manera (vegeu [Còmics › Retolació](https://postext.dev/ca/docs/comics.md#retolació)). |
| `textTransform` | `'none' \| 'uppercase'` | `'none'` | Tot en majúscules, l'aspecte clàssic de la retolació nord-americana i europea. Les escriptures sense majúscules queden com estan. |
| `dropFinalStop` | `'auto' \| boolean` | `'auto'` | Omet el punt que tanca una bafarada (`。` en el manga). `'auto'`: només en japonès i en xinès. |
| `doubleDash` | `boolean` | `false` | Retola el guió llarg com a `--`, un costum de la retolació nord-americana. |
| `inset` | `Dimension` | `1.5mm` | Espai que es deixa entre una bafarada i la vora de la seva vinyeta. Una cartel·la enganxada a la vora no el respecta. |
| `joinSameSpeaker` | `'butt' \| 'connector' \| 'none'` | `'butt'` | Dues bafarades seguides del mateix personatge: cossos fusionats en un sol contorn, units per un coll estret o separades. Una línia del guió pot demanar el seu comportament amb `join` o `join=false`. |
| `maxColumnChars` | `number` | `8` | Retolació vertical: el màxim de caràcters en una columna d'una bafarada. Les onomatopeies es parteixen després de cinc. |

### Estils de bafarada

Cada entrada de `comics.balloonStyles` es posa per sobre de l'estil integrat del mateix id (`speech`, `thought`, `whisper`, `shout`, `radio`, `caption`, `inner`, `note`, `sfx`), o per sobre de `speech` si l'id és nou. Els valors per defecte de sota són els de `speech`; la [pàgina Còmics](https://postext.dev/ca/docs/comics.md#estils-de-bafarada) explica què canvia cada estil integrat. Les longituds en `em` són relatives al cos del text de la bafarada.

| Propietat | Tipus | Per defecte | Descripció |
| --- | --- | --- | --- |
| `id` | `string` | obligatori | La paraula amb què una línia del guió anomena l'estil: `ben{whisper}: …` o `style=whisper`. |
| `name` | `string` | `id` | Nom llegible, només per a les interfícies d'edició. |
| `shape` | `'oval' \| 'rounded' \| 'rectangle' \| 'cloud' \| 'burst' \| 'wavy' \| 'electric' \| 'none'` | `'oval'` | El contorn que envolta el text. `'none'` posa el text directament sobre el dibuix. |
| `fill` | `ColorValue` | blanc | Farciment de la bafarada. |
| `stroke` | `ColorValue` | negre | Color del contorn. |
| `strokeWidth` | `Dimension` | `0.6pt` | Gruix del contorn. |
| `dash` | `boolean` | `false` | Un contorn discontinu (un xiuxiueig). |
| `double` | `boolean` | `false` | Un contorn doble. |
| `wobble` | `number` | `0` | Tremolor de mà del contorn, de 0 a 1, amb una llavor presa de la bafarada, de manera que no canvia mai d'una composició a una altra. |
| `roundness` | `number` | `2.2` | L'exponent de la superel·lipse d'un oval: 2 és una el·lipse, i els valors més alts són més quadrats. |
| `burstPoints` | `number` | `14` | Les punxes d'una explosió; `0` les compta a partir del perímetre. |
| `burstDepth` | `number` | `0.22` | La fondària de les punxes d'una explosió, com a fracció del radi del cos. |
| `padding` | `Dimension` | `0.55em` | L'aire entre el text i el contorn. |
| `aspect` | `number` | `1.6` | L'amplada dividida per l'alçada que busca el tall de línies per al bloc de text (retolació horitzontal). |
| `tail` | `'curved' \| 'wedge' \| 'bubbles' \| 'zigzag' \| 'none'` | `'curved'` | La cua. |
| `tailWidth` | `Dimension` | `0.9em` | L'amplada de la cua on surt del contorn. |
| `tailReach` | `number` | `0.55` | Fins on arriba la cua cap al seu personatge, com a fracció de la distància del contorn a la boca. |
| `target` | `'mouth' \| 'head'` | `'mouth'` | On apunta la cua: a la boca de l'àncora o al seu cap (bafarades de pensament). |
| `position` | `'auto' \| 'top-start' \| 'top-end' \| 'bottom-start' \| 'bottom-end' \| 'top' \| 'bottom'` | `'auto'` | On va la bafarada quan la línia no en fixa cap posició: la col·loca la retolació, o va a una cantonada o una vora de la vinyeta. |
| `butt` | `boolean` | `false` | Enganxa a la vora de la vinyeta una bafarada de cantonada o de vora (cartel·les). |
| `fontFamily` | `string` | la lletra de la retolació | La lletra d'aquest estil. `sfx` pren per defecte la lletra d'onomatopeies de la llengua: `Bangers`, `Dela Gothic One` en japonès, `ZCOOL KuaiLe` en xinès simplificat, `LXGW WenKai TC` en xinès tradicional, `Lalezar` en àrab (`defaultComicSfxFont(locale)`). |
| `fontScale` | `number` | `1` | El cos del text, com a múltiple del cos de la retolació. |
| `bold`, `italic` | `boolean` | el de la retolació | Text en negreta o en cursiva. |
| `color` | `ColorValue` | el de la retolació | Color del text. |
| `textTransform` | `'none' \| 'uppercase'` | el de la retolació | Tot en majúscules en aquest estil. |
| `letterSpacing` | `Dimension` | el de la retolació | Espai extra entre lletres. |
| `align` | `'center' \| 'start'` | `'center'` | Alineació de les línies dins de la bafarada. |
| `halo` | `Dimension` | cap | Un contorn al voltant de les lletres, i el seu gruix, perquè el text es llegeixi sobre el dibuix (onomatopeies). |
| `haloColor` | `ColorValue` | blanc | El color de l'halo. |
| `rotate` | `number` | `0` | Gir en graus, en el sentit de les agulles del rellotge. L'atribut `rotate` d'una línia té prioritat. |

### Repartiment

Cada entrada de `comics.cast` descriu un personatge:

| Propietat | Tipus | Per defecte | Descripció |
| --- | --- | --- | --- |
| `id` | `string` | obligatori | La clau del personatge al guió i a les àncores dels dibuixos. |
| `name` | `string` | `id` | El nom que la sortida HTML i l'EPUB adaptable imprimeixen davant de les línies del personatge, i que mostren els editors. |
| `balloonStyle` | `string` | `speech` | L'estil de les línies del personatge que no n'anomenen cap. |
| `color` | `ColorValue` | el de l'estil | Color del text de les bafarades del personatge. |
| `fill` | `ColorValue` | el de l'estil | Farciment de les bafarades del personatge. |
| `fontFamily` | `string` | la de l'estil | La lletra de les bafarades del personatge. |

El `color` i el `font` propis d'una línia tenen prioritat sobre el repartiment, i el repartiment sobre l'estil de bafarada. Qualsevol color d'un còmic pot ser una entrada de la paleta, que segueix la paleta com qualsevol color vinculat.

```ts
const resolved = resolveComicsConfig(config.comics, 'ja');
// => tots els camps plens; Zen Antique i Dela Gothic One com a lletres

const minimal = stripComicsDefaults(config.comics, 'ja');
// => undefined quan tot són valors per defecte

const shout = pickBalloonStyle(resolved, 'shout'); // el crit integrat amb els canvis del llibre
const night = pickPanelStyle(resolved, 'night');   // un estil de vinyeta amb nom o, si no, la vinyeta per defecte
```
