Saltar al contingut principal

Capítol 3.13 · Part II · L'ofici

Configuració: exercicis

Els estils d'exercici (exerciseStyles) i els paràmetres d'exercicis del llibre (exercises): el número, la lletra de l'enunciat, les etiquetes i les caselles de les opcions, els buits, les respostes de vertader o fals, les parelles per relacionar, els bancs de paraules, els espais per escriure, les graelles, la divisió, les marques de dificultat, les icones, el color de les respostes, on s'imprimeixen les solucions, l'edició del professorat i les edicions en pantalla

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

En poques paraules

Aquesta pàgina recull tots els paràmetres de l'aspecte dels exercicis. Un estil d'exercici decideix com s'imprimeix el número, com s'etiqueten les opcions, quin aspecte té un buit per omplir, quina pauta tenen les línies per escriure i com es dibuixen les graelles i les operacions. Els paràmetres del llibre decideixen on s'imprimeixen les solucions i si el llibre és l'edició de l'alumne o la del professorat. També decideixen com responen els lectors els exercicis en pantalla. La pàgina Exercicis explica com s'escriuen els exercicis.

#Estils d'exercici

La propietat exerciseStyles declara els estils amb nom que un exercici tria amb :::exercise{style="…"}. Un estil és la forma d'una família d'exercicis; les preguntes i les respostes es queden al Markdown (vegeu Exercicis). Per defecte s'inclou un estil, exercise, de manera que el bloc funciona sense cap configuració; si declares exerciseStyles, el substitueixes, i el primer estil declarat és el que pren un exercici sense style. Tots els camps són opcionals, i els valors per defecte segueixen la llengua del document allà on les escoles fan les coses de manera diferent: les etiquetes de les opcions, les lletres de vertader o fals, la manera de disposar la divisió i les paraules que s'imprimeixen.

const config: PostextConfig = {
  exerciseStyles: [
    {
      id: 'activity',
      box: 'activity-frame',
      number: { shape: 'disc', background: { hex: '#2a5ea8', model: 'hex' } },
      instruction: { fontFamily: 'Source Sans 3' },
      options: { marker: 'circle' },
      blank: { look: 'dots', width: 'answer' },
      area: { kind: 'grid', lines: 4 },
      level: { glyph: '★', empty: '☆' },
      icons: { pair: { glyph: '👥' } },
    },
    { id: 'quiz', extends: 'activity', options: { layout: 'row', columns: 4 } },
  ],
};
PropietatTipusPer defecteDescripció
idstring—Identificador que tria :::exercise{style="…"}. Un id desconegut fa servir el primer estil i genera un avís (exerciseUnknownStyle).
namestringidNom llegible (només per a la interfície de l'editor).
extendsstring—L'id de l'estil en què es basa aquest. Cada grup (number, options, blank…) es fusiona camp per camp, i icons, per id.
boxstring—Un id de calloutStyles per al marc de l'exercici: fons, vora, franja, marges interiors, col·locació i partició. Si no s'indica, l'exercici es compon dins del text corregut, sense marc, i es manté sencer en una sola pàgina.
numberobject—Com s'imprimeix el número. Vegeu Número.
instructionobject—La lletra de l'enunciat. Vegeu Enunciat.
optionsobject—Les opcions d'una pregunta d'opció múltiple. Vegeu Opcions.
blankobject—Com s'imprimeix un [[…]]. Vegeu Buits.
trueFalseobject—Les respostes d'una afirmació de vertader o fals. Vegeu Vertader o fals.
matchobject—Dues columnes per relacionar. Vegeu Relacionar.
bankobject—El banc de paraules. Vegeu Banc de paraules.
areaobject—Els espais per escriure. Vegeu Espai per escriure.
gridobject—Les caselles de les sopes de lletres, els mots encreuats i les operacions. Vegeu Graelles.
arithmeticobject—Les operacions en columna. Vegeu Operacions.
levelobject—Les marques de dificultat. Vegeu Dificultat.
iconsRecord<string, ExerciseIcon>{}Icones d'activitat per id, que un bloc anomena amb icon. Vegeu Icones.
answersobject—Com s'imprimeixen les respostes en una edició del professorat, en un element model i a les solucions. Vegeu Respostes.
solutionsExerciseSolutionsConfig—Les exercises.solutions del llibre per als exercicis d'aquest estil: només canvien els camps que s'hi indiquen.
digitalobject—Els colors de les edicions en pantalla. Vegeu Colors a la pantalla.
marginTopDimension1emEspai per sobre d'un exercici sense box.
marginBottomDimension1emEspai per sota d'un exercici sense box.
itemSpacingDimension0.25emEspai entre dos elements: opcions, preguntes, afirmacions, parelles.

#Número

number defineix el número de l'exercici. Un número sol va en negreta, en el color principal, seguit d'un punt; un número dins d'una forma és una xifra blanca sobre un cercle, un quadrat o un quadrat arrodonit del color principal, sense res al darrere.

PropietatTipusPer defecteDescripció
showbooleantrueImprimeix el número. El compte avança igualment.
labelboolean | stringfalseUna paraula davant del número: true pren la paraula de la llengua del document (Exercici, Exercise, Ejercicio, Exercice, Übung, 练习, 練習, تمرين…); una cadena és la paraula mateixa ('Activitat').
shape'none' | 'disc' | 'square' | 'rounded''none'La forma on va el número.
colorColorValueblanc sobre una forma; si no, el color principalEl color del número.
backgroundColorValueel color principalEl fons de la forma.
fontFamilystringla del text que l'envoltaLa família del número.
fontSizeDimension1emLa mida del número; un em és el de l'enunciat.
fontWeightnumber700A partir de 600 es compon en negreta.
suffixstring'.'; cap sobre una formaEl que s'imprimeix després d'un número sol i de la seva paraula: '.', ')', '、'.
templatestring'{n}'El text del número: {n} és el compte de l'exercici, i {h1} i {h2}, els números del capítol i de la secció ('{h1}.{n}' imprimeix 3.4).
resetOn'never' | 'h1' … 'h6''h1'El nivell d'encapçalament que fa tornar a començar el compte; 'never' compta per tot el llibre.
counterstring'exercise'El comptador que fa avançar l'estil. Els estils que anomenen el mateix comptador el comparteixen; un estil amb un comptador propi ('review') numera els seus exercicis a part.
formatResourceCounterFormat'decimal'Els numerals de {n}, com en un comptador de recursos: 'roman-upper', 'alpha-lower', 'simp-chinese-informal' (一, 二), 'circled-decimal' (①, ②), 'arabic-indic'…

#Enunciat

instruction defineix els paràgrafs inicials de l'exercici. Els camps sense valor prenen el del text.

PropietatTipusPer defecteDescripció
boldbooleantrueCompon l'enunciat en negreta.
italicbooleanfalseEl compon en cursiva.
colorColorValueel del textEl color, també el dels trossos en negreta.
fontFamilystringla del textLa família: als llibres de text és habitual un enunciat de pal sec sobre un text amb gràcies.
fontSizeDimensionla del textLa mida.

#Opcions

options defineix les opcions d'una pregunta d'opció múltiple (- [ ] …).

PropietatTipusPer defecteDescripció
labelsResourceCounterFormat | 'none'segons la llenguaCom es compten les opcions: 'alpha-lower' (a, b, c), 'alpha-upper' en xinès (A, B, C), 'katakana' en japonès (ア, イ, ウ), 'abjad' en àrab (أ, ب, ج). També 'decimal', 'katakana-iroha', 'circled-decimal'… Amb 'none' no s'imprimeix cap etiqueta.
prefixstring''Davant de l'etiqueta: '(' per a (a).
suffixstring')'; '.' en xinès, cap en japonèsDesprés de l'etiqueta.
marker'none' | 'box' | 'circle''none'Una casella o un cercle davant de cada opció, per marcar. Amb 'none' el lector encercla l'etiqueta.
layout'stack' | 'row''stack''stack': una opció per línia, amb les línies que continuen alineades sota el seu text. 'row': les opcions una al costat de l'altra. El columns=n d'un bloc també les posa en files.
columnsnumbertotesOpcions per fila amb la disposició 'row' (fins a 6).
shufflebooleanfalseImprimeix les opcions barrejades, en el mateix ordre a totes les sortides i a la clau.
indentDimension1emEl sagnat de les opcions respecte a la vora del text, per a una pregunta sense enunciat propi.
bracketbooleanfalseUn parèntesi ( ) al final de cada pregunta per escriure-hi la lletra, com als exàmens xinesos i japonesos. Una edició del professorat hi escriu la lletra.

#Buits

blank defineix com s'imprimeix un [[…]] al text de l'alumne: un espai de la mida de la resposta amb una línia, punts o una caixa, sense pintar la resposta.

PropietatTipusPer defecteDescripció
look'line' | 'dots' | 'box' | 'none''line'Una línia per escriure-hi, una línia de punts, una caixa o un espai buit.
width'answer' | 'longest' | Dimension'longest''longest': tots els buits de l'exercici fan l'amplada de la resposta més llarga, perquè cap buit no delati la resposta. 'answer': cada buit fa l'amplada de la seva resposta. Una longitud: aquesta amplada per a tots. El {width=N} d'un buit té prioritat.
extraDimension1.5emEspai que s'afegeix a l'amplada de la resposta, en em sencers.
minWidthDimension3emL'amplada mínima d'un buit.
colorColorValuenegreEl color de la línia, dels punts o de la caixa. Si s'indica, també pinta les caselles i els cercles per marcar i els marcs de les paraules del banc, que, si no, van en el color principal.
weightDimension0.6ptEl gruix de la línia.

#Vertader o fals

trueFalse defineix les respostes del final d'una afirmació.

PropietatTipusPer defecteDescripció
labels[string, string]segons la llenguaLes dues respostes: ['V', 'F'] en català, castellà, francès, italià i portuguès; T F en anglès; R F en alemany; √ × en xinès; ○ × en japonès; صح خطأ en àrab.
look'boxes' | 'bracket''boxes''boxes': cada lletra amb una casella per marcar, al final de la línia. 'bracket': un sol buit per escriure-hi la resposta.

#Relacionar

match defineix un exercici de parelles.

PropietatTipusPer defecteDescripció
look'dots' | 'letters''dots''dots': dues columnes amb un punt al costat de cada element, per unir-los amb una línia. 'letters': la columna de la dreta amb lletres, i un buit al costat de cada element de l'esquerra per escriure-hi la lletra.
gapDimension4emEspai entre les dues columnes.
dotSizeDimension0.35emEl diàmetre dels punts.
colorColorValueel color principalEls punts i el marc del banc de paraules.

#Banc de paraules

bank defineix la caixa de paraules d'un exercici de buits amb bank o ::bank[…], i de tots els exercicis de classificar. La caixa va on és escrita la línia ::bank; sense línia, sota l'enunciat.

PropietatTipusPer defecteDescripció
boxstringun marc del color de matchUn id de calloutStyles per a la caixa del banc.
order'shuffle' | 'alpha' | 'written''shuffle'Les paraules barrejades (amb llavor), en ordre alfabètic segons la llengua del document, o tal com s'han escrit.
separatorstringun espai d'emEntre dues paraules. Cada paraula es compon en un xip amb un marc fi.

#Espai per escriure

area defineix l'espai que hi ha sota una pregunta oberta, sota una frase desordenada i a les columnes d'un exercici de classificar.

PropietatTipusPer defecteDescripció
kind'lines' | 'dots' | 'grid' | 'seyes' | 'tianzige' | 'box' | 'none''lines'Línies pautades, una filera de punts, paper quadriculat, la pauta Seyès francesa, quadrats 田字格, un marc buit o espai en blanc. L'area d'un bloc té prioritat.
linesnumber3Quantes línies d'alçada. Les lines d'un bloc tenen prioritat.
spacingDimension1,35 vegades l'interlineat del text (1,2 per a les quadrícules)La distància entre dues línies.
colorColorValueun gris clarEl color de la pauta.
weightDimension0.5ptEl gruix de la pauta.

#Graelles

grid defineix les caselles de les sopes de lletres, els mots encreuats i les operacions en columna.

PropietatTipusPer defecteDescripció
cellDimension1.6emEl costat d'una casella.
fontFamilystringla del textLa família de les lletres i les xifres.
fontSizeDimension0,58 del costat de la casellaLa mida de les lletres i les xifres; un em és el del text.
colorColorValueel del textEl color de les lletres i les xifres.
ruleColorValueun gris mitjàLes línies de les caselles.
ruleWidthDimension0.6ptEl seu gruix.
blockedColorValue—L'emplenament de les caselles dels mots encreuats que no ocupa cap paraula. Sense, la graella només imprimeix les caselles de les paraules.
uppercasebooleantrueCompon en majúscules les lletres de les sopes de lletres i dels mots encreuats, amb les regles de majúscules de la llengua del document.

#Operacions

arithmetic defineix les operacions en columna.

PropietatTipusPer defecteDescripció
division'bracket' | 'potence' | 'inline'segons la llenguaLa divisió. 'potence': el divisor a la dreta del dividend, dins d'un angle en forma de L, i el quocient sota el divisor (català, castellà, francès, italià, portuguès). 'bracket': el divisor a l'esquerra del dividend, una clau per sobre del dividend i el quocient a dalt (anglès, xinès, japonès, àrab i qualsevol llengua sense una disposició pròpia). 'inline': 864 : 4 = amb el quocient a la mateixa línia i els passos a sota (alemany).
columnsnumber4Operacions per fila, menys si la columna és massa estreta.

#Dificultat

level defineix les marques que el level d'un bloc imprimeix després del número, en una mida més petita.

PropietatTipusPer defecteDescripció
glyphstring'●'Un nivell assolit: '★', '■'.
emptystring'○'Un nivell no assolit; amb '' no se n'imprimeix cap.
maxnumber3El nivell més alt: level=2 amb max: 3 imprimeix ●●○.
colorColorValueel color principalEl color de les marques.

#Icones

icons associa un id a una icona d'activitat (oral, escrita, en parella, d'escoltar, amb calculadora), que s'imprimeix després del número quan un bloc l'anomena: icon="pair".

PropietatTipusPer defecteDescripció
glyphstring—Un caràcter per imprimir: '✎', '🎧', un glif d'una font d'icones.
fontFamilystring—La família d'una font d'icones.
colorColorValue—El color de la icona.
resourceIdstring—Un recurs de mapa de bits o SVG per a la icona.
altstring—El que representa la icona, per als lectors de pantalla i el PDF etiquetat.
sizenumber0.75L'alçada de la icona en em de l'enunciat: per defecte, la d'una majúscula.

Una icona s'imprimeix com un símbol en línia després del número: la imatge de resourceId si n'anomena una, i si no el glyph en fontFamily i en color (el del text si no s'indica). Recolza en la línia de base de l'enunciat, fa size em d'alçada i el seu alt es llegeix al seu lloc.

#Respostes

answers defineix les respostes allà on es mostren: una edició del professorat, l'element model d'un exercici amb example, els cercles i les caselles plenes, les línies entre parelles, les lletres i les xifres de les graelles.

PropietatTipusPer defecteDescripció
colorColorValue#d6246e, un vermell magentaEl color de les respostes, com les sobreimprimeix un llibre del professorat.
fontFamilystringla del textUna lletra per a les respostes: sovint és una lletra manuscrita.
italicbooleanfalseCompon en cursiva les respostes dels buits.

#Colors a la pantalla

digital defineix com mostren una resposta comprovada el visor HTML i els llibres EPUB.

PropietatTipusPer defecteDescripció
correctColorColorValueun verd (#1e8e3e)Una resposta correcta.
wrongColorColorValueun vermell (#c5221f)Una resposta incorrecta.

#Paràmetres del llibre

La propietat exercises conté els paràmetres de tot el llibre: l'edició, on s'imprimeixen les solucions, la llavor de totes les barreges i les edicions en pantalla. Un llibre que no fixa ni exercises ni exerciseStyles es compon i dona el mateix hash que abans.

const config: PostextConfig = {
  exercises: {
    edition: 'student',
    solutions: { placement: 'chapterEnd', layout: 'key' },
    seed: 3,
    digital: { check: 'instant' },
  },
};
PropietatTipusPer defecteDescripció
edition'student' | 'teacher''student''teacher' imprimeix cada resposta al seu lloc en el color d'answers: un llibre del professorat a partir del text de l'alumne.
solutionsExerciseSolutionsConfig—On i com s'imprimeixen les solucions. Vegeu Solucions.
seednumber1La llavor de totes les barreges: opcions, columnes de la dreta, elements per ordenar, paraules desordenades, bancs, lletres de farciment de les sopes de lletres. Canvia-la per obtenir una altra versió d'un examen; la impressió, la pantalla i la clau continuen coincidint.
digitalobject—El visor HTML i els llibres EPUB. Vegeu Edicions en pantalla.

#Solucions

exercises.solutions val per a tot el llibre; el solutions d'un estil hi canvia el que calgui per als exercicis d'aquell estil.

PropietatTipusPer defecteDescripció
placement'none' | 'after' | 'inverted' | 'chapterEnd' | 'directive''none''none': cap solució impresa. 'after': després de cada exercici, amb un cos més petit. 'inverted': després de cada exercici, capgirada. 'chapterEnd': al final del capítol, sota heading. 'directive': allà on hi ha una línia :::solutions.
boxstringun requadre sense marc amb un cos més petitUn id de calloutStyles per al requadre d'una solució i per a la llista de solucions d'un capítol.
headingstringla paraula de la llengua del documentEl títol de les solucions al final d'un capítol: Solucions, Solutions, Soluciones, Corrigés, Lösungen, Soluzioni, Gabarito, 参考答案, 解答, الحلول. Una línia :::solutions{title="…"} en fixa un de propi.
layout'key' | 'full''full''key': només les respostes (1 b · 2 aigua). 'full': la clau i, a continuació, el :::solution de l'exercici.

#Edicions en pantalla

exercises.digital defineix com es comporten els exercicis al visor HTML i als llibres EPUB.

PropietatTipusPer defecteDescripció
interactivebooleantrueExercicis que el lector pot respondre. Amb false es mostren com els impresos.
persistbooleantrueDesa les respostes del lector al navegador, per a cada llibre.
check'button' | 'instant''button''button': les respostes es comproven quan el lector ho demana. 'instant': cada resposta es comprova en el moment d'escriure-la.

La pantalla pot tenir uns paràmetres d'exercicis propis: htmlViewer.overrides també accepta exercises i exerciseStyles, que es fusionen amb els del llibre abans que el visor HTML faci la maquetació. Així, la impressió pot mantenir les solucions al final del capítol mentre la pantalla les amaga, o la pantalla pot prescindir dels espais per escriure, que en pantalla no fan cap servei.

const config: PostextConfig = {
  htmlViewer: {
    overrides: {
      exercises: { solutions: { placement: 'none' } },
      exerciseStyles: [{ id: 'exercise', area: { kind: 'none' }, blank: { minWidth: { value: 6, unit: 'em' } } }],
    },
  },
};