Capítulo 11 · Parte II · O ofício
Exercícios
Como o Postext compõe os exercícios de um livro didático ou de um caderno de atividades: o delimitador :::exercise, seus doze tipos, da múltipla escolha à conta de dividir, as respostas escritas no Markdown, a numeração, as soluções depois do exercício, de cabeça para baixo, no fim do capítulo ou do livro, a edição do professor, as verificações e os exercícios respondidos na tela em HTML e EPUB
Em poucas palavras
Esta página explica como escrever exercícios num livro do Postext: perguntas com alternativas, afirmações de verdadeiro ou falso, frases com lacunas, colunas para ligar, palavras para encontrar numa grade, contas para resolver e mais. Você escreve cada exercício e as respostas dele no texto do capítulo, e o Postext o imprime na forma certa, com o número, as alternativas e as linhas para preencher. As respostas podem sair logo depois do exercício, de cabeça para baixo, no fim do capítulo ou em lugar nenhum. O mesmo texto também dá uma edição do professor com todas as respostas preenchidas. Na tela, no visualizador HTML e nos livros EPUB, o leitor pode responder aos exercícios e conferir as respostas.
As perguntas e as respostas ficam no Markdown; o jeito de imprimi-las é um estilo de exercício.
Um exercício é um bloco do capítulo escrito entre :::exercise e :::. Dentro dele vão o enunciado, as perguntas, as alternativas, as lacunas com as respostas e, quando houver, uma resolução comentada. O Postext lê as respostas no texto, imprime o exercício para o aluno (linhas em branco, quadradinhos vazios, itens embaralhados), monta o gabarito e coloca as soluções onde o livro pede. O selo do número, os rótulos das alternativas, a aparência de uma lacuna e o pautado de uma área de escrita vêm de exerciseStyles; o lugar das soluções e a edição impressa vêm de exercises. Assim, o mesmo Markdown dá o livro do aluno, o livro do professor e uma edição interativa na tela.
Um exercício é composto como um boxe de parágrafos comuns, chips e desenhos; por isso, ele é posicionado, dividido entre colunas e páginas, marcado num PDF acessível e pintado em todas as saídas como qualquer boxe. Um livro sem :::exercise é diagramado como antes.
#O delimitador
:::exercise
Assinale a resposta certa.
- [ ] Rio de Janeiro
- [x] Brasília
- [ ] São Paulo
:::Os parágrafos do início do exercício, até a primeira lista, lacuna ou banco de palavras, formam o enunciado. Eles são compostos com a tipografia de enunciado do estilo (negrito, por padrão) depois do número do exercício. O que vem depois é o corpo: aquilo que o exercício pede.
O delimitador aceita estes atributos:
| Atributo | O que faz |
|---|---|
type | O tipo de exercício (veja abaixo). Pode ser omitido quando o conteúdo já o indica: uma lista de tarefas é choice, uma lista de pares com -> é match, um texto com [[…]] é gaps e qualquer outra coisa é open. Algumas outras grafias também são lidas (mcq, tf, cloze, matching…). |
style | O id de um estilo de exercício. Ausente ou desconhecido, vale o primeiro estilo de exerciseStyles. |
title | Um título impresso em negrito depois do número. |
#id | Uma âncora, como num boxe: :::exercise{#vulcoes}. |
n | Um número fixo, para manter a numeração de uma edição impressa. Os exercícios seguintes continuam a contagem a partir dele. |
level | Dificuldade de 1 até o máximo do estilo (3, por padrão), impressa como marcas depois do número: level=2 imprime ●●○. |
icon | Os ids dos ícones de atividade definidos pelo estilo, separados por espaços: icon="pencil pair". |
example | O primeiro item sai respondido, como modelo, e não é perguntado. |
columns | Múltipla escolha: as alternativas lado a lado, essa quantidade por fileira. |
select | Múltipla escolha: one ou many, quantas alternativas o leitor pode marcar na tela. Mais de um [x] já equivale a many. |
shuffle=false | Ligar colunas e ordenar: imprime os itens na ordem em que foram escritos, sem embaralhar. |
bank | Lacunas: imprime as respostas num banco de palavras. |
lines, area | Resposta aberta: quantas linhas há para escrever e o pautado do espaço. |
mark | Marcar: como a resposta marca uma palavra: circle (o padrão), box, underline ou highlight. |
size, directions, hidden | Caça-palavras: o lado da grade, as direções em que as palavras correm e a grade sem a lista de palavras embaixo. |
Dois delimitadores vão dentro de um exercício. :::solution … ::: guarda uma resolução ou uma resposta-modelo em qualquer Markdown; ela nunca sai dentro do exercício e vai para onde vão as soluções. :::hint … ::: guarda uma dica que as edições de tela mostram quando o leitor pede; o impresso a deixa de fora.
#Tipos de exercício
Os embaralhamentos partem de uma semente: um exercício sai embaralhado do mesmo jeito no canvas, no PDF, no visualizador HTML, no EPUB e no gabarito. Mude exercises.seed para imprimir outra versão de uma prova.
#Múltipla escolha e verdadeiro ou falso
Múltipla escolha
Uma lista de tarefas, com as alternativas certas marcadas:
:::exercise
Qual é o planeta mais próximo do Sol?
- [ ] Vênus
- [x] Mercúrio
- [ ] Marte
:::As alternativas saem uma por linha, com os rótulos a), b), c), e as linhas que quebram ficam recuadas sob o texto. Várias perguntas num só exercício formam uma lista numerada cujos itens são os enunciados, cada um com sua lista de tarefas recuada embaixo; os enunciados são numerados 1., 2. e as alternativas ficam sob eles:
:::exercise{columns=3}
Assinale a resposta certa.
1. As raízes da planta absorvem
- [x] água
- [ ] luz
- [ ] sementes
2. As folhas produzem alimento a partir da
- [ ] terra
- [ ] chuva
- [x] luz do Sol
:::columns=3 põe as alternativas em fileiras de três. Os rótulos e o sinal depois deles seguem a língua do documento: a) em português, nas outras línguas românicas e em inglês, A. em chinês, ア イ ウ em japonês, أ) ب) ج) em árabe. Um estilo pode pôr um quadradinho ou um círculo para marcar antes de cada alternativa (options.marker) ou, como nas provas chinesas e japonesas, parênteses ( ) no fim do enunciado para escrever a letra (options.bracket).
Verdadeiro ou falso
:::exercise{type=truefalse}
Marque V para verdadeiro e F para falso.
- [x] O Sol é uma estrela.
- [ ] A Lua é um planeta.
:::Cada afirmação é numerada e termina com as duas respostas no fim da linha, cada uma com um quadradinho: V □ F □. Um item marcado é verdadeiro. As letras seguem a língua: V/F em português, espanhol, catalão, francês e italiano, T/F em inglês, R/F em alemão, √/× em chinês, ○/× em japonês, صح/خطأ em árabe. Um estilo pode imprimir, em vez disso, uma só lacuna para escrever a resposta (trueFalse.look: 'bracket').
#Lacunas e banco de palavras
[[resposta]] é uma lacuna, impressa como uma linha para escrever:
:::exercise{bank}
Complete as frases com as palavras do quadro.
1. As raízes absorvem [[água]] do solo.
2. As folhas produzem o [[alimento]] da planta.
3. As flores atraem [[insetos | abelhas]].
::bank[pedras | vento]
:::[[quilo | quilograma]]: uma lacuna com várias respostas aceitas. O gabarito imprime a primeira.[[fui | (foi) | foram]]: uma escolha na linha. As opções saem no meio da frase,(fui / foi / foram), e a que está entre parênteses é a certa: o leitor a circula.[[foi]]{width=6}: uma lacuna de seis ems de largura.\|é uma barra literal dentro de uma resposta, e\[[um par literal de colchetes.
Todas as lacunas de um exercício têm a largura da resposta mais longa mais 1,5 em; assim, o comprimento de uma linha não entrega a resposta (blank.width muda isso). bank imprime as respostas embaralhadas num banco de palavras com moldura, sob o enunciado. Uma linha ::bank[pedras | vento] coloca o banco onde está escrita e acrescenta as suas palavras, que não entram em nenhuma lacuna; sozinha, a linha já pede o banco. [[…]] só é lido dentro de um exercício: dois colchetes em qualquer outro lugar do livro ficam como foram escritos.
Um exercício que começa pelo texto, sem enunciado, põe o número no começo do primeiro parágrafo:
:::exercise
Uma semana tem sete [[dias]], e um ano tem doze [[meses]].
:::#Ligar colunas e classificar
Ligar colunas
Pares escritos com -> (ou →):
:::exercise
Ligue cada animal à sua casa.
- Abelha -> Colmeia
- Passarinho -> Ninho
- Aranha -> Teia
- Coelho -> Toca
- -> Formigueiro
:::A coluna da esquerda sai na ordem escrita e a da direita embaralhada, com um ponto ao lado de cada item para ligar com um traço. - -> Formigueiro acrescenta à coluna da direita um item que não corresponde a nenhum outro. Com match.look: 'letters', a coluna da direita recebe letras e cada item da esquerda ganha parênteses para escrever a letra. shuffle=false mantém a coluna da direita como foi escrita.
Classificar
:::exercise{type=sort}
Classifique os alimentos pela parte da planta de onde vêm.
- Raiz: cenoura, mandioca
- Folha: alface, couve
- Fruto: tomate, banana
:::Todos os itens vão embaralhados para um banco de palavras, e cada categoria ganha uma coluna (até quatro) com o nome dela e linhas pautadas embaixo. Os itens podem ser separados por vírgulas, pontos e vírgulas, 、, , ou ،.
#Ordenação
Ordenar
:::exercise{type=order}
Numere as etapas na ordem em que acontecem.
1. A semente germina.
2. O caule cresce.
3. As flores se abrem.
4. Os frutos aparecem.
:::A lista é escrita na ordem certa e impressa embaralhada, cada item com um quadradinho para o número.
Frases embaralhadas
:::exercise{type=scramble}
Organize as palavras e forme frases.
- As plantas / precisam de / água
- O Sol / dá / luz e calor
:::Cada frase é cortada nas barras (ou nos espaços, quando não tem barras), e os pedaços saem embaralhados, separados por barras, com uma linha embaixo para escrever a frase.
#Marcar palavras
:::exercise{type=mark}
Circule os verbos: A menina [[rega]] as plantas e o Sol as [[aquece]].
:::O texto sai como está; as palavras entre [[…]] são as que devem ser marcadas. Nas respostas elas aparecem circuladas, ou então dentro de um quadro, sublinhadas ou destacadas com mark=box|underline|highlight no delimitador, ou palavra por palavra com [[rega]]{mark=underline}.
#Perguntas abertas e áreas de escrita
:::exercise{type=open lines=4}
Por que as plantas precisam de luz?
:::solution
Elas usam a luz para produzir o próprio alimento.
:::
:::Linhas pautadas para escrever vêm depois do enunciado: três por padrão, quatro aqui com lines=4. Quando o corpo é uma lista, cada item ganha suas próprias linhas. area muda o pautado: lines, dots, grid (papel quadriculado), seyes (o pautado escolar francês), tianzige (田字格, os quadrados em que os alunos chineses escrevem os caracteres), box (uma moldura vazia, para um desenho) ou none. O :::solution é a resposta-modelo, impressa com as soluções e escrita sobre as linhas numa edição do professor.
#Caça-palavras e palavras cruzadas
Caça-palavras
:::exercise{type=wordsearch size=10 directions="across down diagonal backwards"}
Encontre estas palavras no caça-palavras.
- RAIZ
- CAULE
- FOLHA
- FLOR
:::As palavras são colocadas numa grade de letras e a lista sai embaixo dela (hidden tira a lista). A grade cresce até caber a palavra mais longa; size define o lado. directions aceita across, down, diagonal e backwards; o padrão é na horizontal, na vertical e na diagonal. As letras saem em maiúsculas, a menos que o estilo diga outra coisa. Uma palavra que não cabe na grade é avisada.
Palavras cruzadas
:::exercise{type=crossword}
Resolva as palavras cruzadas.
- RAIZ: Parte que fica debaixo da terra
- FOLHA: Parte verde que produz o alimento
- FLOR: Atrai as abelhas
- CAULE: Sustenta a planta
:::Cada entrada é uma palavra e sua dica. O motor monta a grade, numera a primeira casa de cada palavra e imprime as dicas embaixo em duas listas com títulos na língua do documento (Horizontais e Verticais em português, Across e Down em inglês, ヨコのカギ・タテのカギ em japonês).
#Contas armadas
:::exercise{type=arithmetic}
Arme e efetue.
- 345 + 278
- 902 − 456
- 124 × 3
- 864 ÷ 4
:::Cada operação é montada em casas, como o aluno a escreve: os algarismos em colunas, o sinal à esquerda, um traço e casas vazias para o resultado, com até quatro operações por fileira. Numa página da direita para a esquerda, cada operação mantém os algarismos da esquerda para a direita, e as operações se sucedem da direita para a esquerda. Os sinais lidos são +, -, −, ×, x, *, ·, ⋅, ÷, : e /, com números inteiros. A conta de dividir segue o costume escolar da língua do documento, e arithmetic.division escolhe outro:
bracket: o divisor à esquerda, o dividendo sob uma chave, o quociente em cima dela. Livros em inglês, chinês, japonês e árabe.potence: o dividendo à esquerda, o divisor à direita dentro da chave em L, o quociente sob o divisor e o resto embaixo, como no método da chave. Livros em português, espanhol, catalão, francês e italiano.inline:864 : 4 =e as casas do quociente na mesma linha, com as etapas escritas embaixo. Livros em alemão.
#O primeiro item como modelo
example imprime o primeiro item resolvido, na cor das respostas: a primeira lacuna preenchida, a alternativa certa da primeira pergunta circulada, o primeiro par ligado, a primeira frase escrita. Esse item não é perguntado na tela, e a resposta dele fica fora do banco de palavras.
#Números, referências e dificuldade
Os exercícios são numerados 1, 2, 3 em cada capítulo. O estilo decide o resto: um número solto, em negrito e com ponto (o padrão), ou dentro de um círculo, de um quadrado ou de um quadrado arredondado (number.shape), uma palavra antes dele ("Exercício 3" com number.label: true, na língua do documento), os algarismos (number.format, como os chineses 一、二、), um modelo que acrescenta o capítulo ('{h1}.{n}') e onde a contagem recomeça (number.resetOn: em cada capítulo, em cada seção ou nunca). Os estilos que indicam o mesmo number.counter dividem uma só contagem, e o livro a leva de um capítulo para o outro.
n=12 num delimitador dá a esse exercício o número 12, e os seguintes continuam a partir do 13. #id faz do exercício um alvo de :ref, que imprime o nome dele, “Exercício 3” (a palavra de number.label, se o estilo definir uma; senão, a da língua do documento). style=number imprime 3, style=title o title do delimitador (ou o nome, se não houver) e style=page a página. A referência alcança também exercícios de outros capítulos do livro. level e icon saem depois do número: as marcas de dificuldade e os ícones de atividade que o estilo define.
#Soluções
#O gabarito
Todo exercício com resposta fechada tem um gabarito feito com as respostas dele: a alternativa certa (b) Brasília), as lacunas em ordem (1 água · 2 alimento · 3 insetos), V ou F para cada afirmação, os pares, a ordem, as frases, as palavras de uma cruzada com os números delas, os resultados das contas. Com a disposição full (a padrão), o gabarito vem seguido do :::solution do exercício. Um exercício de resposta aberta não tem gabarito: a resposta-modelo é a solução.
#Onde as soluções são impressas
exercises.solutions.placement decide para o livro inteiro; um estilo pode mudar isso para os seus próprios exercícios.
| Posição | O que é impresso |
|---|---|
none | Nenhuma solução no impresso (o padrão). As edições de tela continuam com elas. |
after | A solução logo depois do exercício, em corpo menor. |
inverted | O mesmo boxe de cabeça para baixo, como fazem as revistas de passatempos e as revistinhas infantis. |
chapterEnd | Todas as soluções do capítulo no fim dele, sob um título na língua do documento (Gabarito, Solutions, Soluciones, Lösungen, 参考答案…), cada uma depois do número do seu exercício. |
directive | Só onde o capítulo escreve :::solutions. |
Com directive, uma linha :::solutions imprime as soluções dos exercícios anteriores a ela que ainda não foram impressas; title="…" muda o título. :::solutions{scope="book"}, num capítulo próprio no fim, imprime o gabarito e as soluções de todos os exercícios do livro, capítulo por capítulo:
# Respostas
:::solutions{scope="book"}#Edição do professor
{ "exercises": { "edition": "teacher" } }imprime cada resposta no seu lugar, na cor das respostas (um vermelho magenta, a não ser que o estilo defina answers.color): as lacunas preenchidas, as alternativas certas circuladas ou com o quadradinho preenchido, o quadradinho de V ou F preenchido, os traços que ligam os pares, os números nos quadradinhos de ordenar, as frases e as palavras classificadas sobre as linhas, a resposta-modelo de uma pergunta aberta sobre as linhas dela, as palavras da cruzada e os resultados das contas nas casas.
#Verificações
O painel Verificações do Sandbox e collectContentWarnings informam o que o motor não consegue ler:
exerciseUnknownType: umtypeque não é nenhum dos doze.exerciseUnknownStyle: umstyleque não corresponde a nenhum estilo de exercício (é usado o primeiro estilo).exerciseNoAnswer: um exercício de resposta fechada sem nada para corrigir: uma pergunta sem alternativa marcada, lacunas sem[[…]], um ligar colunas sem pares.exerciseUnreadItem: um item de lista que o tipo do exercício não consegue ler, como um item de ligar colunas sem->ou uma operação que não tem dois números inteiros e um sinal.exerciseWordUnplaced: uma palavra que um caça-palavras ou uma cruzada não conseguiu colocar.exerciseNested: um exercício dentro de outro.solutionOutside: um:::solutionou um:::hintfora de um exercício. Não imprime nada.
#Exercícios em HTML e EPUB
No visualizador HTML e nos livros EPUB, os exercícios podem ser respondidos. O leitor digita nas lacunas e clica em alternativas, afirmações, pontos para ligar e casas de uma grade; depois confere as respostas, mostra a solução ou recomeça. As respostas certas e erradas aparecem com uma cor e uma marca (digital.correctColor, digital.wrongColor) e são anunciadas aos leitores de tela. As respostas ficam guardadas no navegador, por livro, e o leitor as encontra de novo na próxima visita (exercises.digital.persist). exercises.digital.check: 'instant' confere cada resposta assim que ela é dada; exercises.digital.interactive: false deixa as páginas como no impresso. O gabarito sempre vai no EPUB, seja qual for a posição escolhida para o impresso; assim, um sistema de leitura que não executa scripts também tem as respostas.
A tela pode dar aos exercícios uma forma própria com htmlViewer.overrides, que é mesclado sobre a configuração do livro antes de o visualizador HTML diagramar. O impresso mantém a sua:
const config: PostextConfig = {
exercises: { solutions: { placement: 'chapterEnd' } },
htmlViewer: {
overrides: {
exercises: { solutions: { placement: 'none' } },
exerciseStyles: [
{ id: 'exercise', blank: { minWidth: { value: 6, unit: 'em' } }, area: { kind: 'none' } },
],
},
},
};#Estilos de exercício
const config: PostextConfig = {
exerciseStyles: [
{
id: 'activity',
number: { shape: 'disc', background: { hex: '#2a5ea8', model: 'hex' } },
instruction: { fontFamily: 'Source Sans 3' },
options: { marker: 'circle' },
blank: { look: 'dots' },
},
],
};Todos os campos de um estilo, com tipo e valor padrão, estão em Configuração › Exercícios. Um estilo toma a moldura de um estilo de boxe (box); por isso, um exercício pode ficar num boxe com fundo colorido e faixa como qualquer outro boxe do livro. A skill postext-port segue os mesmos passos quando porta os exercícios de um livro didático ou de um caderno de atividades.