Chapitre 10 · Partie II · Le métier
Configuration : bande dessinée
Les réglages de bande dessinée : cadre et gouttières des planches, styles de case, lettrage, styles de bulles et distribution
En bref
Cette page présente les réglages des planches de bande dessinée. Vous fixez le cadre de la page et l’espace entre les cases. Vous choisissez la police et la taille du lettrage. Vous définissez la façon dont sont dessinés les bulles, les récitatifs et les onomatopées. Vous pouvez aussi énumérer les personnages, pour que chacun parle dans son propre style. Le guide Bande dessinée explique comment écrire les planches elles-mêmes.
#Bande dessinée
La propriété comics configure les planches (:::page), les strips (:::strip) et les doubles pages : le cadre et les gouttières dans lesquels les cases sont découpées, les styles de case, le lettrage, les styles de bulles et la distribution. Seuls les documents qui contiennent de la bande dessinée la lisent ; un document sans BD se compose exactement comme avant, et un document avec BD mais sans section comics prend les valeurs par défaut de sa langue. Le balisage et la façon dont les planches sont lettrées sont expliqués dans Bande dessinée.
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: 'Grandpa Tomás' }],
},
};| Propriété | Type | Par défaut | Description |
|---|---|---|---|
readingDirection | 'auto' | 'ltr' | 'rtl' | 'auto' | L’ordre des cases dans une bande. 'auto' lit de droite à gauche dans un document de droite à gauche, dans un document vertical et en japonais et en chinois traditionnel, et dans le sens d’artDirection sinon (chinois simplifié et coréen compris). L’attribut direction d’une planche a la priorité. Avec page.binding: 'auto', un livre dont la BD se lit de droite à gauche est relié à droite. |
artDirection | 'ltr' | 'rtl' | 'ltr' | Le sens de lecture pour lequel le dessin a été fait : 'rtl' pour le manga. |
mirrorArt | boolean | false | Retourner les dessins d’une planche lue dans le sens opposé à artDirection. Une case garde son dessin tel qu’il a été dessiné avec mirror=false. |
frame.margins | PageMargins | les marges de la page | Des marges propres aux planches (top, bottom, left, right, mirror). Les cases sont découpées dans la boîte qu’elles laissent ; sans ce réglage, dans le bloc de texte de la page. |
gutter.horizontal | Dimension | 4mm | L’espace entre les bandes. L’attribut gutter d’une planche a la priorité. |
gutter.vertical | Dimension | 2mm | L’espace entre les cases côte à côte dans une bande. |
panel | PanelStyleConfig | voir ci-dessous | Le style de case par défaut. |
panelStyles | NamedPanelStyleConfig[] | [] | Des styles de case nommés, choisis avec :::page{style=…} ou ::panel{style=…}. Chacun a un id, un name facultatif (pour les interfaces d’édition seulement) et les champs d’un style de case ; les champs non définis suivent panel. |
lettering | LetteringConfig | voir ci-dessous | Le caractère, le corps et les règles maison de toutes les bulles du livre. |
balloonStyles | BalloonStyleConfig[] | les neuf styles prédéfinis | Les styles de bulles par type. Les styles prédéfinis sont toujours présents ; une entrée qui porte l’un de leurs ids le modifie, une entrée avec un nouvel id ajoute un style superposé à speech. |
cast | ComicCastMember[] | [] | Les personnages (voir Distribution). |
runningHeads | boolean | false | Imprimer les titres courants et les folios sur les planches. Désactivé, une planche n’est faite que de cases et son numéro compte quand même. |
viewerLeaf | ComicViewerLeafConfig | non défini | Pour les hôtes dont les pages ne sont pas des feuillets : met les planches en page sur un feuillet imprimé (width, height, margins) mis à l’échelle sur fitWidth px (et au plus fitHeight px de haut) en haut de la page. La visionneuse HTML du Sandbox le définit ; il n’est jamais enregistré avec un document. |
#Styles de case
comics.panel et chaque entrée de comics.panelStyles :
| Propriété | Type | Par défaut | Description |
|---|---|---|---|
borderWidth | Dimension | 1pt | Épaisseur de la bordure ; 0 n’en trace aucune. La bordure est tracée sur le contour de la case. |
borderColor | ColorValue | noir | Couleur de la bordure (peut être liée à la palette). |
borderRadius | Dimension | 0 | Rayon des coins d’une case rectangulaire, limité à la moitié de son plus petit côté. Une case coupée par une ligne oblique garde des coins vifs. |
borderStyle | 'solid' | 'rough' | 'none' | 'solid' | Un trait net, un trait à main levée qui tremble un peu (tiré d’une graine propre à la case, donc identique à chaque génération), ou aucun trait. |
background | ColorValue | blanc | Le fond sous le dessin : la couleur d’une case vide et des bandes autour d’un dessin montré en entier. |
fit | 'cover' | 'contain' | 'cover' | cover recadre le dessin pour remplir la case, sans jamais entamer sa zone de sécurité ; contain le montre en entier. |
bleed | boolean | false | Les cases de ce style dépassent le cadre jusqu’à la coupe et au fond perdu, de chaque côté qui touche le cadre. |
#Lettrage
comics.lettering règle toutes les bulles du livre. Il n’y a qu’un seul corps : un style de bulle peut le mettre à l’échelle (fontScale), et le texte n’est jamais réduit pour tenir dans une bulle.
| Propriété | Type | Par défaut | Description |
|---|---|---|---|
fontFamily | string | selon la langue | Le caractère de lettrage. Par défaut : Comic Neue ; Zen Antique en japonais, Noto Sans SC en chinois simplifié, LXGW WenKai TC en chinois traditionnel, Playpen Sans Arabic en arabe, en persan et en ourdou (defaultComicFont(locale)). |
fontSize | Dimension | 7.5pt | Le corps du texte des bulles. La bande dessinée est en général lettrée entre 7 et 9 pt sur la page imprimée. |
lineHeight | number | 1.15 | Distance entre les lignes, en multiple du corps. Laissée à sa valeur par défaut, les bulles verticales, chinoises et japonaises prennent 1,5 et les bulles arabes 1,45. |
color | ColorValue | noir | Couleur du texte. |
bold, italic | boolean | false | Composer tout le lettrage en gras ou en italique. Le lettrage chinois, japonais et arabe n’est jamais incliné. |
letterSpacing | Dimension | 0 | Espace supplémentaire entre les lettres ; em est relatif au corps du texte. Jamais appliqué à l’arabe. Il ne modifie pas les glyphes : les ligatures restent. |
writingMode | 'auto' | 'horizontal' | 'vertical' | 'auto' | 'auto' lettre le japonais et le chinois traditionnel, ainsi que tout document composé en écriture verticale, en colonnes verticales, et tout le reste horizontalement. L’indicateur vertical ou horizontal d’une ligne de script compose cette ligne autrement (voir Bande dessinée › Lettrage). |
textTransform | 'none' | 'uppercase' | 'none' | Tout en capitales, l’aspect classique du lettrage américain et européen. Les écritures sans casse restent telles quelles. |
dropFinalStop | 'auto' | boolean | 'auto' | Omettre le point qui termine une bulle (。 dans le manga). 'auto' : en japonais et en chinois seulement. |
doubleDash | boolean | false | Lettrer un tiret cadratin en --, une habitude du lettrage américain. |
inset | Dimension | 1.5mm | Espace laissé entre une bulle et la bordure de sa case. Un récitatif collé contre la bordure l’ignore. |
joinSameSpeaker | 'butt' | 'connector' | 'none' | 'butt' | Deux bulles à la suite du même locuteur : corps fusionnés en un seul contour, reliés par un col étroit, ou gardés séparés. Une ligne de script demande son propre comportement avec join ou join=false. |
maxColumnChars | number | 8 | Lettrage vertical : le nombre maximal de caractères dans une colonne d’une bulle. Les onomatopées passent à la colonne suivante après cinq. |
strictPlacement | boolean | true | Une bulle redessinée pour tenir dans sa case ne sépare pas pour autant un mot chinois : chaque mot que coupent ses nouvelles lignes, et que sa forme préférée laisse entier, coûte plus cher qu’une bulle lue dans le désordre, de sorte que le placement déplace d’abord la bulle ou change l’ordre. Le lettrage japonais, coupé par groupes de mots, n’est pas concerné. false lettre comme le faisait postext 1.27 ; un document enregistré avant la 1.28 qui contient une BD est lu avec cette valeur. |
#Styles de bulles
Chaque entrée de comics.balloonStyles se superpose au style prédéfini de même id (speech, thought, whisper, shout, radio, caption, inner, note, sfx), ou à speech pour un nouvel id. Les valeurs par défaut ci-dessous sont celles de speech ; la page Bande dessinée indique ce que change chaque style prédéfini. Les longueurs en em sont relatives au corps du texte de la bulle.
| Propriété | Type | Par défaut | Description |
|---|---|---|---|
id | string | obligatoire | Le mot par lequel une ligne de script nomme le style : ben{whisper}: … ou style=whisper. |
name | string | id | Nom lisible, pour les interfaces d’édition seulement. |
shape | 'oval' | 'rounded' | 'rectangle' | 'cloud' | 'burst' | 'wavy' | 'electric' | 'none' | 'oval' | Le contour autour du texte. 'none' compose le texte directement sur le dessin. |
fill | ColorValue | blanc | Remplissage de la bulle. |
stroke | ColorValue | noir | Couleur du contour. |
strokeWidth | Dimension | 0.6pt | Épaisseur du contour. |
dash | boolean | false | Un contour en tirets (un chuchotement). |
double | boolean | false | Un contour double. |
wobble | number | 0 | Tremblement à main levée du contour, de 0 à 1, tiré d’une graine propre à la bulle pour ne jamais changer d’une génération à l’autre. |
roundness | number | 2.2 | L’exposant de superellipse d’un ovale : 2 donne une ellipse, des valeurs plus élevées une forme plus carrée. |
burstPoints | number | 14 | Les pointes d’une explosion ; 0 les compte d’après le périmètre. |
burstDepth | number | 0.22 | La profondeur des pointes d’une explosion, en fraction du rayon du corps. |
padding | Dimension | 0.55em | Le blanc entre le texte et le contour. |
aspect | number | 1.6 | Le rapport largeur sur hauteur que vise la coupure des lignes pour le bloc de texte (lettrage horizontal). |
tail | 'curved' | 'wedge' | 'bubbles' | 'zigzag' | 'none' | 'curved' | L’appendice. |
tailWidth | Dimension | 0.9em | La largeur de l’appendice là où il quitte le contour. |
tailReach | number | 0.55 | Jusqu’où l’appendice s’avance vers son locuteur, en fraction de l’écart entre le contour et la bouche. |
target | 'mouth' | 'head' | 'mouth' | Ce que vise l’appendice : la bouche de l’ancre, ou sa tête (bulles de pensée). |
position | 'auto' | 'top-start' | 'top-end' | 'bottom-start' | 'bottom-end' | 'top' | 'bottom' | 'auto' | L’endroit où va la bulle quand la ligne ne l’épingle pas : placée par le lettrage, ou dans un coin ou contre un bord de la case. |
butt | boolean | false | Coller une bulle de coin ou de bord contre la bordure de la case (récitatifs). |
fontFamily | string | le caractère de lettrage | Le caractère de ce style. sfx prend par défaut le caractère d’onomatopées de la langue : Bangers, Dela Gothic One en japonais, ZCOOL KuaiLe en chinois simplifié, LXGW WenKai TC en chinois traditionnel, Lalezar en arabe (defaultComicSfxFont(locale)). |
fontScale | number | 1 | Le corps du texte, en multiple du corps du lettrage. |
bold, italic | boolean | ceux du lettrage | Texte en gras ou en italique. |
color | ColorValue | celle du lettrage | Couleur du texte. |
textTransform | 'none' | 'uppercase' | celui du lettrage | Tout en capitales pour ce style. |
letterSpacing | Dimension | celui du lettrage | Espace supplémentaire entre les lettres. |
align | 'center' | 'start' | 'center' | Alignement des lignes dans la bulle. |
halo | Dimension | aucun | Un contour tracé autour des lettres, ici son épaisseur, pour que le texte se lise sur le dessin (onomatopées). |
haloColor | ColorValue | blanc | La couleur du halo. |
rotate | number | 0 | Rotation en degrés, dans le sens des aiguilles d’une montre. L’attribut rotate d’une ligne l’emporte. |
#Distribution
Chaque entrée de comics.cast décrit un personnage :
| Propriété | Type | Par défaut | Description |
|---|---|---|---|
id | string | obligatoire | La clé de locuteur du script et des ancres des dessins. |
name | string | id | Le nom que la sortie HTML et l’EPUB recomposable impriment avant les répliques du personnage, et que les éditeurs affichent. |
balloonStyle | string | speech | Le style des répliques du personnage qui n’en nomment aucun. |
color | ColorValue | celle du style | Couleur du texte des bulles du personnage. |
fill | ColorValue | celui du style | Remplissage des bulles du personnage. |
fontFamily | string | celui du style | Le caractère des bulles du personnage. |
La color et la font propres à une ligne l’emportent sur la distribution, et la distribution sur le style de bulle. Toute couleur de BD peut être une entrée de la palette, qui suit alors la palette comme n’importe quelle couleur liée.
const resolved = resolveComicsConfig(config.comics, 'ja');
// => every field filled; Zen Antique and Dela Gothic One as the faces
const minimal = stripComicsDefaults(config.comics, 'ja');
// => undefined when everything is a default
const shout = pickBalloonStyle(resolved, 'shout'); // the built-in shout with the book's changes
const night = pickPanelStyle(resolved, 'night'); // a named panel style, else the default panel