Saltar al contingut principal

Capítol 3.12 · Part II · L'ofici

Configuració: requadres d'avís

Estils amb nom per als requadres :::callout: marc, fons, franja, títol, icona i marcador, enunciats numerats, tipografia dins del requadre i requadres partits entre pàgines

Actualitzat 2026-10-1628 minAl capítol 3 Configuracióenescadefritptzhjaar

En poques paraules

Aquesta pàgina explica els requadres que separen del text una nota, un consell, una advertència o una llista d'objectius. Dones a cada classe de requadre un nom i un aspecte: el fons, la vora, una franja de color, un títol i una icona. Un requadre pot portar un número, com un teorema o un exemple en un llibre de text. Tries les tipografies de dins del requadre. Quan un requadre llarg continua a la pàgina següent, tries què marca el tall.

#Estils d'avís

La propietat calloutStyles declara els estils de caixa amb nom que el document aplica mitjançant un contenidor :::callout{type="…"} — notes, consells, advertiments, objectius d'aprenentatge, qualsevol contingut separat del text corregut en una caixa tintada o amb vora. Per defecte s'inclou un estil neutre, note (fons gris clar, sense vora, sense franja, sense icona, sense títol), de manera que :::callout funciona sense cap configuració; declarar calloutStyles substitueix aquesta llista per defecte.

const config: PostextConfig = {
  calloutStyles: [
    { id: 'note', name: 'Nota' },
    {
      id: 'objectives',
      name: "Objectius d'aprenentatge",
      title: 'Objectius',
      stripe: { enabled: true, side: 'left' },
      icon: { kind: 'glyph', glyph: '✓' },
      titleStyle: { textTransform: 'uppercase' },
      lists: { bulletChar: '–' },
    },
    {
      id: 'warning',
      title: 'Advertiment',
      backgroundEnabled: false,
      border: { enabled: true, color: { hex: '#AA0000', model: 'hex' }, width: { value: 1, unit: 'pt' } },
      borderRadius: { value: 1, unit: 'mm' },
      titleStyle: { color: { hex: '#AA0000', model: 'hex' } },
    },
  ],
};
:::callout{type="objectives"}
- Descriure les parts del fanal.
- Retallar el ble en fer-se fosc.
:::
 
:::callout{type="warning" title="No toquis la lent"}
El vidre continua calent una hora després d'apagar la flama.
:::
PropietatTipusPer defecteDescripció
idstring—Identificador que selecciona :::callout{type="…"}. Una tanca amb un type desconegut o absent usa el primer estil configurat (el sandbox avisa dels tipus desconeguts).
namestringidNom llegible (només per a la interfície de l'editor).
titlestring''Text de títol per defecte; buit vol dir sense títol. L'atribut title de la tanca el sobreescriu a cada instància.
span'column' | 'page' | 'side''column'Extensió horitzontal: la columna, l'amplada completa de l'àrea de contingut o la columna lateral només per a flotants d'una disposició de columna i mitja (layout.sideColumnRole: 'floats') — la caixa surt llavors del flux i s'apila en aquella columna al costat del text que interromp. Es pot sobreescriure per instància amb l'atribut span. En disposicions multicolumna una caixa 'page' es converteix en un bloc d'amplada de pàgina: divideix la pàgina en bandes de columnes i ocupa la seva pròpia columna a tota l'amplada (vegeu la secció del contenidor més avall). Una caixa lateral que no cap a la columna lateral de la seva pàgina ocupa la de la pàgina següent; si abans s'acaba el capítol (o el document), cada caixa que encara espera es compon a la columna lateral d'una pàgina posterior al text, en l'ordre de les seves tanques, i la composició ho avisa (afterText; fins a postext 1.24 les caixes posteriors a la primera d'aquestes pàgines es perdien).
columnsnumber1Quantes columnes contigües ocupa una caixa flotant (placement 'auto', 'top' o 'bottom', amb span: 'column'), com fa placement.columns amb una figura: el requadre d'una notícia sobre tres de les cinc columnes d'un diari. Tantes columnes com té la pàgina, o més, la converteixen en una caixa a tota l'amplada. Una caixa composta en el flux ('here') es queda a la seva columna. Es pot sobreescriure a cada instància amb l'atribut columns. Des de postext 1.18.
placement'here' | 'auto' | 'top' | 'bottom' | 'fixed''here'On va la caixa. 'here' la deixa en línia en el flux; 'top' / 'bottom' la fan flotar com un recurs ('auto' pren la primera banda que quedi lliure, la capçalera o el peu) — surt del flux on apareix i ocupa la primera banda lliure en aquell punt o després (el peu de la pàgina actual, o la capçalera / el peu de la pàgina següent que obre el flux), i el text que la segueix omple la pàgina al seu voltant; 'fixed' l'ancora a coordenades de pàgina mitjançant fixed, fora del flux de columnes. Vegeu la secció del contenidor per als detalls. Es pot sobreescriure per instància amb l'atribut placement.
sideAtColumnEnd'before' | 'after''before'On es col·loca un requadre lateral (span: 'side') quan el text que segueix la seva tanca no continua a la mateixa columna: la columna ja no té lloc per a ell, o les regles de tall el porten més enllà (un paràgraf que les regles de vídues i òrfenes mouen sencer, un encapçalament que va amb el seu text). 'before' el deixa a la seva tanca, en aquella pàgina, al costat del text anterior, pujant des del peu de la columna si no hi cap sota la tanca: el lloc d'una glossa escrita després del passatge que explica. 'after' el posa a l'altura de la primera línia del text que segueix la tanca, a la columna lateral de la pàgina on continua aquest text: el lloc d'un número de línia o d'un titolet marginal escrit abans de la seva línia. Quan el text continua a la mateixa columna, els dos valors posen el requadre a la seva tanca. Un requadre que no té res al darrere en el seu capítol es queda amb el text anterior en els dos casos, i els requadres laterals amb tanca un darrere l'altre conserven el seu ordre. Fins a postext 1.4 tots els requadres laterals es comportaven com 'before', que continua sent el valor per defecte: un estil per a glosses manté els seus requadres a la pàgina del passatge que expliquen.
fixedPosició d'una caixa 'fixed': un ElementAnchor (to: 'container' = l'àrea de contingut de la pàgina, reflectida a les pàgines parelles; 'page' = la caixa de tall; 'bleed' = la caixa de sang; edge: una de les nou vores del contenidor) més un offset opcional (dimensions x / y).
floatBarrierbooleanfalseConverteix la caixa en una barrera de flotants: tota figura o taula referenciada abans es col·loca abans que ella — als buits lliures de la pàgina, o en pàgines obertes per davant de la caixa —, de manera que cap flotant no s'escapa més enllà de la caixa que tanca el capítol (normalment un resum de «punts clau»). Les obertures de capítol, els :::part i el final del document són sempre barreres.
Una caixa span: 'page' en una pàgina a diverses columnes talla la banda sota el text que la precedeix; una figura a tota l'amplada referenciada abans pren aquest tall primer: el text s'anivella, la figura queda just on ha acabat i la caixa continua a sota (o passa a la pàgina següent quan ja no hi cap). Una figura massa alta per seguir el text anivellat obre la pàgina següent, amb la caixa darrere, i la banda que deixa continua acabant anivellada. Una caixa divisible (keepTogether: false) s'obre sota el text i la figura amb els elements que hi caben, i la resta continua a la pàgina següent.
width'fill' | 'auto''fill''fill' ocupa tota l'amplada disponible; 'auto' s'ajusta al títol (ús com a etiqueta) i ignora els fills.
backgroundEnabled / backgroundboolean / ColorValuetrue / #f4f4f4Emplenament de la caixa.
border{ enabled, color, width }false, #cccccc, 0.5ptContorn de la caixa, traçat per dins de la seva vora, com el d'un element de caixa (vegeu Elements de caixa).
borderRadiusDimension0Radi de les cantonades del fons / la vora (limitat a la meitat de l'amplada i de l'alçada de la caixa). La franja el segueix: en una caixa arrodonida es retalla al marc arrodonit, com CSS retalla un border-left a border-radius. La pestanya label conserva les cantonades rectes.
padding{ top, right, bottom, left }0.75em cadascunMarge interior entre la vora de la caixa i el seu contingut. Els valors en em són relatius a la mida del cos de l'avís.
stripe{ enabled, side, width, color }false, 'left', 1.5em, color principalFranja sòlida al llarg d'un costat. Una franja 'left' / 'right' estreny el contingut; una franja 'top' el desplaça cap avall. 'left' i 'right' són costats del flux del text (en un llibre de dreta a esquerra 'left' és la dreta del plec); 'start' i 'end' segueixen la direcció de la caixa mateixa, de manera que un :::callout{dir=ltr} en un llibre àrab posa a la seva esquerra una franja 'start'. En una caixa amb borderRadius les seves cantonades exteriors s'arrodoneixen amb les del marc (fins a postext 1.4 quedaven rectes i sobresortien per fora de l'arrodoniment).
icon{ kind, glyph, resourceId, fontFamily, fontWeight, size, width, color, align, position, cornerSide }'none', font d'encapçalaments, 400, 1.5em, color principal, 'top'Un glif de text (kind: 'glyph') o un recurs bitmap / SVG (kind: 'resource' + resourceId) al costat del contingut. Amb franja lateral la icona se centra sobre la franja; si no, reserva la seva pròpia columna (size + titleStyle.gap). align: 'center' la centra verticalment sobre el contingut. Una imatge de recurs s'ajusta dins del quadrat conservant la seva proporció; una icona més alta que el contingut fa més gran la caixa per contenir-la (i, amb align: 'center', centra el contingut sobre ella). Amb width la imatge s'ajusta a una caixa de width × size (una tira ampla d'icones). position: 'corner' penja la icona d'una cantonada superior com una insígnia, mig fora de la vora i sense ocupar lloc en el contingut; una icona ampla (width) se centra a la cantonada segons l'amplada amb què es dibuixa, i a la cantonada esquerra el títol comença passada la seva meitat interior (fins a postext 1.4 es col·locava segons la seva alçada, de manera que una tira ampla sobresortia de la caixa i tapava el títol); cornerSide tria la cantonada: 'right' / 'left', o 'outer' / 'inner', que segueixen la paritat de la pàgina amb marges simètrics (exterior = dreta en una pàgina senar, esquerra en una parella).
marker{ kind, glyph, resourceId, fontFamily, fontWeight, size, color, align, gap, rule }'none', font de títols, 400, 1.5em, color principal, 'center', 0.5em, filet desactivat (0.5pt, color principal, longitud 0)Una segona icona dibuixada fora de la caixa, en una columna a la seva esquerra, amb un rule (filet vertical) opcional entre ella i la caixa: la mà de «toca aquí» al costat d'un distintiu d'autoavaluació. El marc passa a ser [marker][rule][gap][box] i mesura el que fa el més alt dels tres; align els centra entre si o els alinea a dalt. rule.length és un mínim: el filet abasta sempre almenys l'alçada de la caixa.
titleStyle{ fontFamily, fontSize, fontWeight, italic, color, textTransform, gap, letterSpacing, indent, lineHeight }font d'encapçalaments, mida del cos, 700, false, color principal, 'none', 0.5em, 0, 0, 1.2emTipografia del títol. gap és l'espai entre el títol i el primer fill (i el buit de la columna de la icona). lineHeight és l'interlineat de les línies del títol, i em compta la mida del mateix títol; la línia de base queda a 0,8 d'aquest dins de cada línia, com en el text corregut, així que un títol amb l'interlineat del text (lineHeight: 12pt sobre una retícula de 12 pt) deixa el requadre en un nombre enter de línies i el seu títol a la retícula, mentre que l'1,2 em per defecte afegeix una fracció de línia a cada requadre. textTransform: 'uppercase' conserva la longitud del text. letterSpacing aplica un tracking al títol (canvas letterSpacing / PDF Tc); indent el desplaça a la dreta de la vora interior de la caixa. Una insígnia de cantonada que penja del costat del títol (la cantonada esquerra) reserva abans el seu propi lloc — la seva meitat interior més gap — de manera que el títol l'esquivi caigui a la pàgina que caigui; indent només hi afegeix a partir d'aquí.
body{ fontFamily, fontSize, lineHeight, color, boldColor, italicColor, fontWeight, boldFontWeight, italic, smallCaps, textAlign, hyphenation, paragraphSpacing, firstLineIndent, tabStops, tabInterval }hereta de bodyText; italic / smallCaps falseTipografia dels paràgrafs i elements de llista dins de la caixa. Cada camp hereta del text de cos quan no s'indica; italicColor fixa el color de les cursives (una cita destacada en cursiva amb el color de la caixa). fontWeight / boldFontWeight fixen el pes dels trams normals i en negreta; italic compon la caixa en cursiva, amb els trams … en rodona; smallCaps, en versaletes; tabStops i tabInterval substitueixen els del text de cos dins de la caixa (vegeu Tabulacions). Vegeu Tipografia dins d'un requadre per a la resta del que pren el text de la caixa.
lists{ bulletChar, color, indent, gap, itemSpacing, bulletFontSize, bulletFontWeight }hereta de unorderedListsTipografia de les llistes dins de la caixa (color, indent, gap i itemSpacing s'apliquen també a les llistes ordenades). bulletFontSize / bulletFontWeight componen la vinyeta amb la font del cos de la caixa a aquella mida i aquell pes (una vinyeta gruixuda de color).
label{ fontFamily, fontSize, fontWeight, color, background, position, height, paddingX, offset, inset, icon, rule }sense definir (sense pestanya)Una pestanya sobre la vora superior de la caixa que imprimeix l'atribut label de la tanca —el número d'un requadre numerat («REQUADRE 1-1»)—. S'enganxa a la cantonada position ('top-right' / 'top-left') amb una separació inset, sobresurt offset per sobre de la vora (aquest espai forma part del bloc, a més de marginTop, i es conserva també al capdamunt d'una columna), fa height d'alçada amb paddingX a cada costat del text, i pot portar un recurs icon al costat ({ resourceId, width, gap }, cap a l'interior) i un filet rule ({ enabled, color, width }) al llarg de la vora superior des de la cantonada oposada fins a ella. Per defecte: font d'encapçalaments, mida del cos, 700, blanc sobre el color principal, 1.4em d'alçada, 0.6em de farciment. La pestanya és una forma pròpia recolzada al marc, així que conserva les cantonades rectes sigui quin sigui el borderRadius de la caixa.
columnGapDimension1.5emSeparació entre les columnes d'un grup :::columns dins de la caixa (vegeu la secció del contenidor).
marginTop / marginBottomDimension0.75em / 0.75emEspai sobre la caixa (es fon amb el marge del bloc anterior) i espai mínim sota seu (l'espai exacte amb snapToGrid: false). Una caixa flotant (placement: 'top', 'bottom' o 'auto') deixa entre la seva banda i el text el buit dels flotants, una línia del cos; un marginBottom més gran fixa l'espai sota una caixa en una banda superior, i un marginTop més gran l'espai sobre una caixa en una banda inferior, arrodonits a la retícula amb la banda. Fins a postext 1.4 una caixa flotant no feia cas dels seus marges.
snapToGridbooleantrueAmb true el flux torna a la retícula de base després de la caixa, de manera que l'espai sota seu és marginBottom arrodonit cap amunt a línies senceres de la retícula. Amb false la caixa conserva el seu marginBottom exacte, que es fon amb el marge superior del bloc següent — dues caixes consecutives d'aquest estil queden exactament a max(marginBottom, marginTop) — i el text que la segueix pot quedar fora de la retícula fins al punt d'ajust següent (un encapçalament, el final d'una llista), com després d'un encapçalament amb headings.snapToGrid: false. Pensat per a documents fets de caixes apilades (fitxes, formularis). S'aplica a les caixes del flux; les caixes d'amplada de pàgina en una maquetació de diverses columnes, les flotants, les fixes i les laterals conserven la retícula, perquè les bandes de columnes i les zones de flotants s'hi disposen a sobre. Les palanques d'equilibri de columnes no canvien: una caixa que tanca una columna continua baixant fins a l'última línia de la retícula d'aquella columna.
keepTogetherbooleantrueAmb true la caixa es manté sencera: un avís que no cap a l'espai restant passa sencer a la columna o pàgina següent. Només una caixa més alta que una columna completa i buida — una pàgina sencera en una caixa span: 'page' — no es pot mantenir sencera: es parteix amb les regles de false que segueixen en lloc de desbordar, començant on apareix, i una continuació que cap en una columna passa llavors sencera; una caixa flotant (placement: 'top' | 'bottom' | 'auto') tan alta no flota, sinó que continua en el flux on apareix. Amb false qualsevol caixa es pot partir entre els seus blocs fills o entre les línies d'un paràgraf o d'un element de llista: el tall més profund que hi cap tanca la columna actual (o, en una caixa span: 'page', la pàgina, arran del peu de les columnes) i la resta continua a l'inici de la següent en una caixa pròpia — mateix marc i franja, sense icona, i sense títol tret que repeatTitle el repeteixi —, partint-se de nou si continua sent massa alta. El text de cada fragment conserva, buida, la columna que ocupa al començament una icona en línia, així que la caixa té la mateixa mesura a totes les pàgines. Un tall dins d'un element de llista deixa la vinyeta amb el començament. El marc de cada fragment comparteix el contentIndex / containerId de la tanca i registra callout.part / callout.continued. Fes-lo servir en una caixa de «punts clau» llarga de tancament juntament amb headings.balancing.beforeSpan, o en un estil de nota les caixes del qual no hagin d'expulsar mai una figura de la pàgina. Una caixa niada (un :::callout dins d'un altre) és un fill més de la seva mare: un tall pot caure abans o després d'ella, i a dins només si el seu propi estil permet partir-la (keepTogether: false, o més alta que una columna completa), segons el seu propi splitMinLines.
splitMinLinesnumber2Mínim de línies de text que un fragment d'una caixa partida (keepTogether: false, o una caixa unida més alta que una columna completa) conserva a cada costat del tall. Només protegeix el text: un costat amb almenys una figura, taula, fórmula en bloc o caixa niada és vàlid tingui les línies que tingui, de manera que una caixa d'imatges pot deixar-ne una sola en una pàgina. Un tall dins d'un paràgraf o d'un element de llista continua comptant totes les línies de cada costat (una figura o fórmula, com una línia), i a més deixa almenys layout.boxChildSplitMinLines línies d'aquell paràgraf o element a cada costat (dues per defecte; aquest mínim si és menor, així que amb 1 n'hi ha prou amb una). Amb els valors per defecte, un element de dues o tres línies no es parteix mai i un de quatre només es parteix en dues i dues. Amb el valor per defecte cap caixa no es parteix deixant una línia de text sola al peu d'una columna o a l'inici de la següent; si cap tall no compleix el mínim, la caixa passa sencera. (Abans de postext 1.5, un tall dins d'un paràgraf només comprovava les línies de tot el costat, així que un element de dues línies es podia partir en una i una si altres línies de la caixa completaven el mínim.)
repeatTitlebooleanfalseRepeteix el títol al principi de cada continuació d'una caixa partida, seguit de continuedSuffix («Punts clau (cont.)»). La repetició pren l'estil del títol. Una caixa sense títol no repeteix res. Vegeu Marques d'un requadre partit.
continuedSuffixstring'(cont.)'Text després del títol repetit, en la llengua del document (locale o, si no, la de la partició de mots), com el d'una taula partida, i unit al títol igual que en aquella.
continuesMarkerEnabledbooleanfalsePosa continuesMarker sota l'última línia de cada part d'una caixa partida que continua, dins de la caixa.
continuesMarkerstring'Continued' / 'Continúa'Text d'aquest indicador (el «(CONTINUA)» d'un guió), amb la font i el cos del text de la caixa, segons la llengua del document.
continuesMarkerAlign'left' | 'center' | 'right''right'Posició de l'indicador en l'amplada interior de la caixa.
continuesMarkerItalicbooleantrueCompon l'indicador en cursiva.
numbering{ label, counter, numberingTemplate, resetOn, counterFormat, placement, bold, italic, suffix }sense definirCompta les caixes d'aquest estil com a enunciats numerats: teoremes, lemes, definicions. Vegeu Enunciats numerats i demostracions.
endMarkstring''Una marca alineada a la dreta al final de l'última línia de la caixa, com el '∎' o el '□' amb què acaba una demostració: en aquesta línia si hi cap després d'un espai i, si no, en una línia pròpia. Una caixa que acaba en una fórmula en bloc sense número la hi posa com a etiqueta de la fórmula. Amb les matemàtiques actives, els quadrats (∎ □ ■ ▪ ◻ ▫) es dibuixen amb els glifs de TeX, de manera que surten encara que la font no els tingui (els fitxers latin de Fontsource); amb les matemàtiques desactivades es componen en la font del cos del requadre.

#El contenidor :::callout

Una línia :::callout{type="<id>"} obre la caixa i una línia ::: tota sola la tanca. La tanca admet cinc atributs — type (l'id de l'estil), title (sobreescriu el títol de l'estil), span, placement i columns (sobreescriuen els valors de l'estil) — i el contingut intermedi es compon dins la caixa: un títol opcional i després els paràgrafs, llistes, cites, fórmules o recursos incrustats, cadascun amb la tipografia body / lists de l'estil (els encapçalaments conserven els seus estils habituals). Els marges entre fills es fonen com en el text corregut; l'interior abandona la retícula de base i el flux hi torna després de la caixa garantint com a mínim marginBottom per sota (la retícula mana; el marge és un mínim — la mateixa convenció que segueixen els recursos). Un estil amb snapToGrid: false conserva, en canvi, el marginBottom exacte, i el text després de la caixa queda fora de la retícula fins al següent encapçalament o final de llista. Un encapçalament immediatament anterior a un avís es manté unit a ell.

Límits d'aquesta versió:

  • Un avís es manté sencer tret que el seu estil indiqui keepTogether: false. Quan no cap a l'espai que queda de la columna passa sencer a la columna o pàgina següent — també des d'una columna buida que les bandes de flotants o un topall de banda han escurçat, sempre que una columna completa l'allotgés. Una caixa més alta que una columna completa es parteix al seu lloc, com una de divisible; només la que cap tall no pot partir (una figura o taula més alta que la columna, o un splitMinLines que cap tall no compleix) es col·loca igualment i desborda; la maquetació registra llavors un avís calloutOverflow (VDTDocument.warnings), que el sandbox llista. Un grup :::columns es talla com la caixa que l'envolta, entre les seves subcolumnes (des de postext 1.25); es manté sencer, i pot desbordar de la mateixa manera, només amb layout.flowColumns: false o dins d'una caixa niada. Una caixa divisible deixa enrere la part que hi cap — fills sencers, o les línies d'un paràgraf fins a splitMinLines a cada costat (n'hi ha prou amb una figura, taula o fórmula en bloc en un costat) — i continua en una caixa sense icona a la columna o pàgina següent, sense títol tret que l'estil el repeteixi i, si es vol, amb un indicador sota la part que deixa (vegeu Marques d'un requadre partit).
  • Els flotants cedeixen davant d'una caixa indivisible. Quan el bloc que segueix la referència d'una figura és un avís keepTogether, no s'agafa un buit que deixaria la caixa sense cap columna de la banda actual on anar a parar (la columna de la referència o una de buida posterior, que abans del flotant l'allotjava): la figura passa al seu buit següent, normalment la pàgina següent, i la caixa segueix en el flux — com la compondria un caixista, en lloc d'expulsar la caixa de la pàgina i deixar la columna amb la figura sola.
  • span: 'page' en una disposició multicolumna converteix la caixa en un bloc d'amplada de pàgina: es compon a l'amplada completa de l'àrea de contingut i divideix la pàgina en bandes de columnes — les columnes de text que hi ha a sobre es tanquen a la línia de tall, la caixa ocupa la seva pròpia columna a tota l'amplada i a sota s'obre una banda nova de columnes de text, de manera que el flux continua sota la caixa a totes les columnes. On les columnes estan anivellades — al començament d'una pàgina, just sota un encapçalament d'obertura amb span: 'page', just sota un altre bloc d'amplada de pàgina o just sota una banda de flotants superior — la caixa simplement talla allà. Si arriba a mitja pàgina, amb les columnes desiguals, es compon com ho faria un caixista: el text que hi ha a sobre es talla anivellat a totes les columnes (el motor repeteix la col·locació amb les columnes de la banda escurçades al mateix nombre de línies de retícula, de manera que el text desborda de columna en columna de forma natural i continuen aplicant-se totes les regles d'òrfenes, vídues i encapçalaments units al seu text), la caixa ocupa l'amplada de la pàgina i les columnes continuen a sota. El tall costa un parell de passades de col·locació addicionals; quan la línia de tall no deixaria lloc per a la caixa més el mínim de línies vídues de cos per sota, o cap disposició no encaixa després d'uns quants intents, la caixa passa al començament de la pàgina següent. El text de sobre respecta el tall: un paràgraf que no pot començar a les poques línies que li queden a una columna sota una figura passa a la columna següent (la figura queda sola a la seva columna), i quan un bloc encara passaria del tall, el tall es baixa una línia en lloc de quedar-se on acaba aquell bloc. Una caixa partida que obre la banda també es talla allà, de manera que la seva resta mai no passa del tall. Amb headings.balancing.beforeSpan (el valor per defecte) la banda que deixa es talla anivellada després d'ella — com la banda de tancament d'un capítol — i, quan l'estil permet partir-la (keepTogether: false), la part de la caixa que cap sota les columnes anivellades tanca la pàgina i la resta obre la següent; amb beforeSpan: false la pàgina que deixa simplement s'equilibra com sempre, sense forçar un salt de pàgina. Un encapçalament just abans d'un bloc d'amplada de pàgina no viatja amb ell. En disposicions d'una columna span: 'page' és simplement en línia.
  • placement: 'fixed' treu la caixa del flux: es compon (width: 'auto' s'ajusta al títol; 'fill' pren l'amplada de la columna de text sota el punt d'ancoratge) i es fixa a la pàgina on apareix en el flux, a la posició que descriuen fixed.anchor / fixed.offset — per defecte la cantonada inferior esquerra de l'àrea de contingut. Les columnes de text que cobreix cedeixen aquella zona (retallada per baix, o per dalt quan la columna encara és buida), exactament com una banda de flotants; quan la zona ja conté text, un flotant o un bloc d'amplada de pàgina, la caixa passa a la pàgina següent. Una caixa fixa que tanca el capítol (el bloc següent és una obertura de capítol, un :::part, una caixa barrera de flotants o el final del document) anivella primer les columnes que queden a sobre (headings.balancing.trailing), de manera que una pàgina de tancament curta acaba anivellada amb el distintiu a sota. La caixa i els seus fills viuen a page.floats i es pinten fora del retall de columna en tots els backends.
  • placement: 'top' | 'bottom' fa flotar la caixa com un recurs: surt del flux on apareix i pren la primera banda lliure a partir d'aquest punt — el peu de la pàgina actual ('bottom'), o el cap / el peu de la pàgina següent que obre el flux — a l'amplada de la columna (span: 'column') o a l'amplada completa de l'àrea de contingut (span: 'page'); el text que la segueix omple la pàgina que ha deixat. El seu marc i els seus fills van a page.floats, com els d'una caixa fixa. Una caixa flotant que encapçala una pàgina nova es col·loca abans que les figures que esperen aquella pàgina, i una figura citada en una pàgina anterior que llavors hi cap a sota pren la resta d'aquella pàgina encara que quedessin menys de tres línies de text (una pàgina galeria: caixa més figura, sense text entre totes dues). Una caixa span: 'side' mai no flota: s'apila al costat del text sigui quin sigui el seu placement. Amb columns més gran que 1 (a l'estil o com a atribut de la tanca, des de postext 1.18), una caixa span: 'column' ocupa aquest nombre de columnes contigües: el cap d'una sèrie de columnes buides que comencen a la mateixa altura, o el peu de la columna en curs i de les buides que la segueixen, com a :::callout{placement="top" columns="2"}.
  • width: 'auto' s'ajusta només al títol; els fills s'ignoren.
  • Un :::callout niat dins d'un altre avís és una caixa pròpia: es compon amb el seu propi estil (fons, vora, radi, farciment, franja, títol, icona, marcador, pestanya, tipografia) a l'amplada interior completa de la seva caixa mare i s'apila com un fill més, i el seu marginTop / marginBottom es fon amb el dels veïns. El seu span i el seu placement (de la tanca o de l'estil) s'ignoren —una caixa niada sempre flueix dins la seva mare—, igual que floatBarrier i snapToGrid. Les caixes es nien a qualsevol profunditat i poden anar dins d'un grup :::columns (cadascuna sencera, en una columna). Quan la caixa mare es parteix, el tall cau abans o després d'una caixa niada, o dins d'ella si el seu estil permet partir-la; cada fragment torna a dibuixar els marcs que travessa el tall, i una caixa niada que continua del fragment anterior perd el títol i la icona, com una continuació de primer nivell.
  • Un grup :::columns{count=N} … ::: entre els fills compon aquests fills en N columnes d'igual amplada, separades per columnGap, dins la caixa: la seqüència es talla pels límits de bloc o de línia que millor anivellen les columnes (un paràgraf o element de llista tallat a mitges continua al cap de la columna següent sense la vinyeta), cada columna comença a la part superior del grup i el grup fa l'alçada de la columna més alta; els fills posteriors recuperen l'amplada completa. Una caixa que es parteix (keepTogether: false, o més alta que una columna) també talla dins d'un grup, entre les seves columnes: un grup en serpentina omple les columnes per torns i continua al fragment següent, i un de paral·lel (breaks) continua corrent a corrent (des de postext 1.25; vegeu Format del document › :::columns). Un gap a la tanca substitueix columnGap per a aquell grup, i rule traça un filet al llarg de cada espai entre columnes. Serveix per a un resum de punts clau a dues columnes o per a les taules d'un requadre ample posades una al costat de l'altra.
  • El sisè atribut de la tanca, label, s'imprimeix a la pestanya label de l'estil (vegeu més amunt): :::callout{type="recuadro" label="RECUADRO 1-1" title="La regla del octeto"}; sense estil de pestanya l'atribut s'ignora.

Al VDT la caixa és un bloc marc de type: 'callout' la decoració del qual (fons, franja, icona, títol) viu a designOverlay, seguit dels seus blocs fills a la mateixa columna; el marc i cada fill porten el containerId de la tanca. Una caixa niada és un marc type: 'callout' propi entre els fills, seguit dels seus blocs; conserven el containerId de la tanca de primer nivell (la col·locació i l'equilibrat continuen veient una sola unitat) i afegeixen calloutPath, els identificadors de contenidor de les tanques niades que els envolten, de la més externa a la més interna (el d'un marc niat és l'última entrada). El PDF etiquetat dona a cada caixa niada un Div dins del de la seva mare. Les imatges d'icona es resolen com les dels recursos: el registre d'imatges del canvas, l'opció resourceImageUrl de l'HTML i el proveïdor resourceBytes del PDF.

const resolved = resolveCalloutStylesConfig(config.calloutStyles, resolvedBodyText, resolvedHeadings, resolvedUnorderedLists, config.locale);
// => cada camp heretat s'omple des de les seccions resoltes; el locale
//    opcional tria la llengua de les cadenes de continuació
 
const minimal  = stripCalloutStylesDefaults(config.calloutStyles);
// => undefined per al `note` per defecte; s'eliminen els valors estàtics per defecte

#Enunciats numerats i demostracions

Un estil amb numbering compta les seves caixes, com el paquet amsthm de LaTeX compta els entorns de teorema (des de postext 1.19). Cada caixa imprimeix el seu rètol i el seu número —«Teorema 2.» al començament del primer paràgraf—, i el title de la tanca segueix el número entre parèntesis: :::callout{type="theorem" title="Bradley–Terry"} comença amb «Teorema 2 (Bradley–Terry).». Una caixa oberta amb un identificador ({#thm:main}) és destí de referències creuades, que imprimeixen «Teorema 2» (:ref{id="thm:main"}), i \ref{thm:main} o style=number imprimeixen 2.

PropietatTipusPer defecteDescripció
labelstring—La paraula que precedeix el número: 'Teorema', 'Lema', 'Definition'.
counterstring | falsel'id de l'estilEl comptador que fan avançar les caixes. Els estils que anomenen un mateix comptador el comparteixen, com fa \newtheorem{lemma}[theorem]: Teorema 1, Lema 2, Teorema 3. 'equation' compta juntament amb les equacions etiquetades. false imprimeix el rètol sense número (el «Demostració.» d'una demostració).
numberingTemplate / resetOn / counterFormatstring / ResourceCounterReset / ResourceCounterFormat'{n}' / 'never' / 'decimal'Com els d'un tipus de recurs: '{h1}.{n}' amb resetOn: 'h1' numera Teorema 2.1, 2.2… per capítol, i '{h1}.{h2}.{n}' amb 'h2', per secció. Un comptador que comparteixen diversos estils continua el compte imprimeixin el que imprimeixin les seves plantilles. Un token admet un estil després de dos punts, com el d'un tipus de recurs: '{h1:A}.{n}' imprimeix Teorema A.1 en un apèndix amb lletra.
placement'runIn' | 'title''runIn''runIn' obre el primer paràgraf de la caixa amb el rètol (una caixa que comença amb una llista, una fórmula o una altra caixa rep un paràgraf per a ell); 'title' fa del rètol el títol de la caixa, amb el seu titleStyle: «Teorema 2 (Bradley–Terry)».
bold / italicbooleantrue / falseLa lletra del rètol en línia i del seu sufix, sigui quina sigui la del cos de la caixa: amb un cos en cursiva (body.italic), un rètol en rodona continua en rodona. El títol entre parèntesis es compon en rodona i amb el pes normal.
suffixstring'.'Es compon després del rètol en línia i el seu títol.

Una demostració és un estil amb un rètol sense número i una marca final:

calloutStyles: [
  { id: 'theorem', numbering: { label: 'Teorema' }, body: { italic: true } },
  { id: 'lemma', numbering: { label: 'Lema', counter: 'theorem' }, body: { italic: true } },
  { id: 'definition', numbering: { label: 'Definició' } },
  { id: 'proof', backgroundEnabled: false, endMark: '□',
    numbering: { label: 'Demostració', counter: false, bold: false, italic: true } },
]

En un llibre compost capítol a capítol, els comptadors continuen des del capítol anterior (LayoutContinuation.statementCounters, que omple continuationAfter), i l'esquema del llibre dona a l'àncora de cada caixa numerada el seu rètol (OutlineEntry.numberLabel), de manera que una referència des d'un altre capítol l'imprimeix.

#Tipografia dins d'un requadre

Una caixa d'avís —un requadre, com l'anomenen el tauler Estils de requadre del sandbox i el format del document— compon el seu contingut amb la tipografia body i lists del seu estil; tota la resta conserva els estils del document:

  • Els paràgrafs prenen el body de la caixa: font, cos, interlineat, color, colors d'èmfasi, gruixos, italic, smallCaps, alineació, partició de mots, sagnat i espaiat entre paràgrafs. Un camp sense definir hereta de bodyText. Un color d'èmfasi heretat conserva el seu vincle amb la paleta, així que les negretes, les cursives i les etiquetes de :ref d'una caixa canvien amb colorPalette igual que fora d'ella. (Fins a postext 1.4 la negreta d'una caixa es quedava en #295AA3 fos quin fos el color principal).
  • Les llistes de vinyetes prenen el lists de la caixa (caràcter de vinyeta, color, mida i gruix del glif, sagnat, separació, espaiat entre elements) sobre unorderedLists, i el seu text és el del cos de la caixa. Un lists.bulletChar o un lists.color diferent del del document (unorderedLists) substitueix la vinyeta o el color de tots els nivells; un que el repeteix, o que no es defineix, deixa a cada nivell els seus (unorderedLists.levels), de manera que els guions dels nivells niats es conserven a la caixa.
  • Les llistes ordenades prenen lists.indent, gap i itemSpacing, i lists.color sempre que l'estil el defineix, també quan coincideix amb el color de vinyeta del document; un estil que no el defineix deixa els números en orderedLists.color. (Fins a postext 1.4 el color només arribava als números si era diferent d'unorderedLists.color, així que donar-li justament aquest color no tenia efecte). El número —la seva font, el seu cos i el seu separador— ve dels orderedLists globals, perquè lists només té camps de vinyeta: és allà on es dona estil als números d'una caixa.
  • Els :::paragraphs dins d'una caixa fan servir el seu estil de paràgraf, també en caixes niades. Els camps que l'estil no defineix hereten del bodyText del document, no del body de la caixa (ni de la seva cursiva ni de les seves versaletes).
  • Els grups :::columns no tenen estil propi: totes les columnes comparteixen la tipografia de cos i de llistes de la caixa, i columnGap fixa la separació entre elles.
  • Les cites prenen la font, el cos i els gruixos del text de la caixa (en cursiva i en gris, com en el text corregut) i les seves versaletes. Els encapçalaments conserven els seus estils; les fórmules en bloc, la configuració de matemàtiques.
  • Les figures i les taules conserven els estils de peu i de taula del document, a l'amplada interior de la caixa; els seus gruixos normal i negreta segueixen els gruixos del body de la caixa.
  • Els xips conserven el seu estil de xip; una mida en em es mesura sobre el cos del text de la caixa.
  • :::space es mesura en línies del text de la caixa (vegeu :::space per saber on es descarta).
  • Una caixa niada pren el seu propi estil complet; el seu span, el seu placement, el seu floatBarrier i el seu snapToGrid s'ignoren.

#Marques d'un requadre partit

Quan una caixa es parteix entre columnes o pàgines (keepTogether: false, o una caixa més alta que una columna), cada part posterior a la primera comença sense el títol ni la icona i, per defecte, res no avisa el lector que la caixa continua. Dues opcions afegeixen les marques que fan servir un llibre o un guió:

  • repeatTitle: true repeteix el títol al començament de cada continuació, seguit de continuedSuffix — «Punts clau (cont.)» per defecte. La repetició pren l'estil del títol, així que amb textTransform: 'uppercase' dona el «HAMLET (CONT.)» d'un guió. La icona i la pestanya d'etiqueta es queden a la primera part.
  • continuesMarkerEnabled: true posa continuesMarker — «Continúa» en un document en castellà, «Continued» en anglès — sota l'última línia de cada part que continua, dins la caixa, en la font i el cos del text de la caixa: en cursiva tret que continuesMarkerItalic sigui false, i alineat a la dreta tret que continuesMarkerAlign digui 'left' o 'center'. L'indicador ocupa lloc a la part que tanca, i el tall es tria perquè hi càpiga.
calloutStyles: [{
  id: 'parlamento',
  keepTogether: false,
  titleStyle: { textTransform: 'uppercase' },
  repeatTitle: true,
  continuedSuffix: '(CONT.)',
  continuesMarkerEnabled: true,
  continuesMarker: '(SEGUEIX)',
  continuesMarkerAlign: 'center',
  continuesMarkerItalic: false,
}],
:::callout{type="parlamento" title="Hamlet"}
Un parlament prou llarg per passar del peu de la pàgina…
:::

La part que tanca la pàgina acaba amb «(SEGUEIX)» i la pàgina següent comença amb «HAMLET (CONT.)». Totes dues són elements de paginació: en un PDF accessible són artefactes i a l'HTML s'amaguen a les tecnologies de suport, de manera que el títol es llegeix una sola vegada. Al VDT són blocs de text de designOverlay marcats amb artifact: true.