Capítulo 10 · Parte II · O ofício
Configuração: quadrinhos
Os ajustes de comics: o quadro e as sarjetas das páginas de quadrinhos, os estilos de requadro, o letreiramento, os estilos de balão e o elenco
Em poucas palavras
Esta página reúne os ajustes das páginas de quadrinhos. Você define a moldura da página e o espaço entre os quadros. Escolhe a fonte e o tamanho do letreiramento. Define como são desenhados os balões, os recordatórios e as onomatopeias. Também pode listar os personagens, para que cada um fale com seu próprio estilo. O guia de quadrinhos explica como escrever as páginas.
#Quadrinhos
A propriedade comics configura as páginas de quadrinhos (:::page), as tiras (:::strip) e as páginas duplas: a moldura e as sarjetas de onde os quadros são recortados, os estilos de quadro, o letreiramento, os estilos de balão e o elenco. Só os documentos com quadrinhos a leem; um documento sem eles é diagramado exatamente como antes, e um documento com quadrinhos e sem a seção comics usa os padrões do seu idioma. A marcação e a forma como as páginas são letreiradas estão explicadas em Quadrinhos.
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' }],
},
};| Propriedade | Tipo | Padrão | Descrição |
|---|---|---|---|
readingDirection | 'auto' | 'ltr' | 'rtl' | 'auto' | A ordem dos quadros numa fileira. 'auto' lê da direita para a esquerda num documento da direita para a esquerda, num documento vertical e em japonês e chinês tradicional e, nos demais casos, no sentido de artDirection (incluídos o chinês simplificado e o coreano). O atributo direction de uma página tem prioridade. Com page.binding: 'auto', um livro cujos quadrinhos são lidos da direita para a esquerda é encadernado à direita. |
artDirection | 'ltr' | 'rtl' | 'ltr' | O sentido de leitura para o qual a arte foi desenhada: 'rtl' para mangá. |
mirrorArt | boolean | false | Espelha os desenhos de uma página lida no sentido contrário ao de artDirection. Um quadro mantém o desenho como foi feito com mirror=false. |
frame.margins | PageMargins | as margens da página | Margens próprias para as páginas de quadrinhos (top, bottom, left, right, mirror). Os quadros são recortados da caixa que elas deixam; sem valor, da área de texto da página. |
gutter.horizontal | Dimension | 4mm | O espaço entre fileiras. O atributo gutter de uma página tem prioridade. |
gutter.vertical | Dimension | 2mm | O espaço entre quadros lado a lado numa fileira. |
panel | PanelStyleConfig | veja abaixo | O estilo de quadro padrão. |
panelStyles | NamedPanelStyleConfig[] | [] | Estilos de quadro nomeados, escolhidos com :::page{style=…} ou ::panel{style=…}. Cada um tem um id, um name opcional (só nas interfaces de editor) e os campos de um estilo de quadro; os campos sem valor seguem panel. |
lettering | LetteringConfig | veja abaixo | A fonte, o corpo e as regras da casa de todos os balões do livro. |
balloonStyles | BalloonStyleConfig[] | os nove estilos integrados | Estilos de balão por tipo. Os integrados estão sempre presentes; uma entrada com o id de um deles o altera, e uma entrada com um id novo acrescenta um estilo aplicado sobre speech. |
cast | ComicCastMember[] | [] | Os personagens (veja Elenco). |
runningHeads | boolean | false | Imprime os cabeços e os fólios nas páginas de quadrinhos. Desligado, uma página de quadrinhos é só quadros, e o seu número continua contando. |
viewerLeaf | ComicViewerLeafConfig | sem valor | Para hosts cujas páginas não são folhas: diagrama as páginas de quadrinhos numa folha impressa (width, height, margins) escalada para fitWidth px (e no máximo fitHeight px de altura) no topo da página. O visualizador HTML do Sandbox a define; ela nunca é salva com um documento. |
#Estilos de quadro
comics.panel e cada entrada de comics.panelStyles:
| Propriedade | Tipo | Padrão | Descrição |
|---|---|---|---|
borderWidth | Dimension | 1pt | Espessura da borda; 0 não desenha nenhuma. A borda é traçada sobre o contorno do quadro. |
borderColor | ColorValue | preto | Cor da borda (pode ser vinculada à paleta). |
borderRadius | Dimension | 0 | Raio dos cantos de um quadro retangular, limitado à metade do seu lado menor. Um quadro cortado por uma linha inclinada mantém os cantos vivos. |
borderStyle | 'solid' | 'rough' | 'none' | 'solid' | Uma linha limpa, uma linha à mão que treme um pouco (com semente tirada do quadro, então sai igual em toda construção) ou nenhuma. |
background | ColorValue | branco | O preenchimento sob o desenho: a cor de um quadro vazio e das faixas em volta de um desenho mostrado inteiro. |
fit | 'cover' | 'contain' | 'cover' | cover recorta o desenho para preencher o quadro, nunca dentro da área segura; contain o mostra inteiro. |
bleed | boolean | false | Os quadros deste estilo passam da moldura até o refile e a sangria em todos os lados que tocam a moldura. |
#Letreiramento
comics.lettering define todos os balões do livro. Há um único corpo: um estilo de balão pode escalá-lo (fontScale), e o texto nunca é reduzido para caber num balão.
| Propriedade | Tipo | Padrão | Descrição |
|---|---|---|---|
fontFamily | string | conforme o idioma | A fonte do letreiramento. Sem valor: Comic Neue; Zen Antique em japonês, Noto Sans SC em chinês simplificado, LXGW WenKai TC em chinês tradicional, Playpen Sans Arabic em árabe, persa e urdu (defaultComicFont(locale)). |
fontSize | Dimension | 7.5pt | O corpo do texto dos balões. Os quadrinhos costumam ser letreirados em 7 a 9 pt na página impressa. |
lineHeight | number | 1.15 | Distância entre as linhas, um múltiplo do corpo. Deixado no padrão, os balões verticais, chineses e japoneses usam 1,5 e os árabes 1,45. |
color | ColorValue | preto | Cor do texto. |
bold, italic | boolean | false | Compõe todo o letreiramento em negrito ou em itálico. O letreiramento em chinês, japonês e árabe nunca é inclinado. |
letterSpacing | Dimension | 0 | Espaço extra entre as letras; em é relativo ao corpo do texto. Nunca se aplica ao árabe. |
writingMode | 'auto' | 'horizontal' | 'vertical' | 'auto' | 'auto' letreira o japonês e o chinês tradicional, e qualquer documento composto em escrita vertical, em colunas verticais, e todo o resto na horizontal. A marca vertical ou horizontal de uma linha do roteiro compõe essa linha de outro modo (veja Quadrinhos › Letreiramento). |
textTransform | 'none' | 'uppercase' | 'none' | Tudo em maiúsculas, o visual clássico do letreiramento americano e europeu. As escritas sem caixa ficam como estão. |
dropFinalStop | 'auto' | boolean | 'auto' | Omite o ponto final que fecha um balão (。 no mangá). 'auto': só em japonês e chinês. |
doubleDash | boolean | false | Letreira um travessão como --, um costume do letreiramento americano. |
inset | Dimension | 1.5mm | Espaço mantido entre um balão e a borda do seu quadro. Um recordatório encostado na borda o ignora. |
joinSameSpeaker | 'butt' | 'connector' | 'none' | 'butt' | Dois balões seguidos do mesmo personagem: corpos fundidos num só contorno, ligados por um gargalo estreito, ou mantidos separados. Uma linha do roteiro pede o seu próprio comportamento com join ou join=false. |
maxColumnChars | number | 8 | Letreiramento vertical: o máximo de caracteres numa coluna de um balão. As onomatopeias quebram depois de cinco. |
#Estilos de balão
Cada entrada de comics.balloonStyles se sobrepõe ao estilo embutido de mesmo id (speech, thought, whisper, shout, radio, caption, inner, note, sfx), ou a speech quando o id é novo. Os valores padrão abaixo são os de speech; a página de Quadrinhos lista o que cada estilo embutido muda. Os comprimentos em em são relativos ao tamanho do texto do balão.
| Propriedade | Tipo | Padrão | Descrição |
|---|---|---|---|
id | string | obrigatório | A palavra com que uma linha do roteiro nomeia o estilo: ben{whisper}: … ou style=whisper. |
name | string | id | Nome legível, só para as interfaces de edição. |
shape | 'oval' | 'rounded' | 'rectangle' | 'cloud' | 'burst' | 'wavy' | 'electric' | 'none' | 'oval' | O contorno em volta do texto. 'none' põe o texto direto sobre o desenho. |
fill | ColorValue | branco | Preenchimento do balão. |
stroke | ColorValue | preto | Cor do contorno. |
strokeWidth | Dimension | 0.6pt | Espessura do contorno. |
dash | boolean | false | Um contorno tracejado (um sussurro). |
double | boolean | false | Um contorno duplo. |
wobble | number | 0 | Tremor de traço feito à mão no contorno, de 0 a 1, com uma semente tirada do balão para que nunca mude de uma composição para outra. |
roundness | number | 2.2 | O expoente de superelipse de um oval: 2 é uma elipse, e valores maiores o deixam mais quadrado. |
burstPoints | number | 14 | As pontas de uma explosão; 0 as conta a partir do perímetro. |
burstDepth | number | 0.22 | A profundidade das pontas de uma explosão, como fração do raio do corpo. |
padding | Dimension | 0.55em | O respiro entre o texto e o contorno. |
aspect | number | 1.6 | A razão entre largura e altura que a quebra de linhas busca para o bloco de texto (letreiramento horizontal). |
tail | 'curved' | 'wedge' | 'bubbles' | 'zigzag' | 'none' | 'curved' | O rabicho. |
tailWidth | Dimension | 0.9em | A largura do rabicho no ponto em que sai do contorno. |
tailReach | number | 0.55 | Até onde o rabicho avança em direção a quem fala, como fração da distância entre o contorno e a boca. |
target | 'mouth' | 'head' | 'mouth' | Para onde o rabicho aponta: a boca da âncora ou a cabeça (balões de pensamento). |
position | 'auto' | 'top-start' | 'top-end' | 'bottom-start' | 'bottom-end' | 'top' | 'bottom' | 'auto' | Onde fica o balão quando a linha não fixa nenhuma posição: onde o letreiramento o colocar, ou num canto ou numa borda do quadro. |
butt | boolean | false | Encosta na borda do quadro um balão de canto ou de borda (recordatórios). |
fontFamily | string | a fonte do letreiramento | A fonte deste estilo. sfx usa por padrão a fonte de onomatopeias do idioma: Bangers, Dela Gothic One em japonês, ZCOOL KuaiLe em chinês simplificado, LXGW WenKai TC em chinês tradicional, Lalezar em árabe (defaultComicSfxFont(locale)). |
fontScale | number | 1 | O tamanho do texto, como múltiplo do tamanho do letreiramento. |
bold, italic | boolean | os do letreiramento | Texto em negrito ou em itálico. |
color | ColorValue | a do letreiramento | Cor do texto. |
textTransform | 'none' | 'uppercase' | o do letreiramento | Tudo em maiúsculas neste estilo. |
letterSpacing | Dimension | o do letreiramento | Espaço extra entre as letras. |
align | 'center' | 'start' | 'center' | Alinhamento das linhas dentro do balão. |
halo | Dimension | nenhum | Um contorno traçado em volta das letras, com essa espessura, para que o texto se leia sobre o desenho (onomatopeias). |
haloColor | ColorValue | branco | A cor do halo. |
rotate | number | 0 | Rotação em graus, no sentido horário. O atributo rotate da linha tem prioridade. |
#Elenco
Cada entrada de comics.cast descreve um personagem:
| Propriedade | Tipo | Padrão | Descrição |
|---|---|---|---|
id | string | obrigatório | A chave de quem fala no roteiro e nas âncoras dos desenhos. |
name | string | id | O nome que a saída HTML e o EPUB refluível imprimem antes das falas do personagem, e que os editores mostram. |
balloonStyle | string | speech | O estilo das falas do personagem que não nomeiam nenhum. |
color | ColorValue | a do estilo | Cor do texto dos balões do personagem. |
fill | ColorValue | o do estilo | Preenchimento dos balões do personagem. |
fontFamily | string | a do estilo | A fonte dos balões do personagem. |
A color e a font próprias de uma linha têm prioridade sobre o elenco, e o elenco sobre o estilo de balão. Qualquer cor dos quadrinhos pode ser uma entrada da paleta, que acompanha a paleta como qualquer cor vinculada.
const resolved = resolveComicsConfig(config.comics, 'ja');
// => todos os campos preenchidos; Zen Antique e Dela Gothic One como fontes
const minimal = stripComicsDefaults(config.comics, 'ja');
// => undefined quando tudo está no valor padrão
const shout = pickBalloonStyle(resolved, 'shout'); // o grito embutido com as mudanças do livro
const night = pickPanelStyle(resolved, 'night'); // um estilo de quadro com nome ou, se não houver, o quadro padrão