# الإعدادات: التمارين

> أنماط التمارين (exerciseStyles) وإعدادات التمارين في الكتاب (exercises): شارات الأرقام، وخط التعليمة، وتسميات الخيارات وعلامات التأشير، والفراغات، وإجابات صح أو خطأ، والتوصيل، وبنوك الكلمات، ومساحات الكتابة، والشبكات، والقسمة المطوّلة، وعلامات الصعوبة، والأيقونات، ولون الإجابات، وموضع طباعة الحلول، وطبعة المعلم، وطبعات الشاشة

- نسخة HTML: https://postext.dev/ar/docs/configuration-exercises
- آخر تحديث: 2026-10-24
- مدة القراءة: 12 دقيقة
- لغات أخرى: [en](https://postext.dev/en/docs/configuration-exercises.md), [es](https://postext.dev/es/docs/configuration-exercises.md), [ca](https://postext.dev/ca/docs/configuration-exercises.md), [de](https://postext.dev/de/docs/configuration-exercises.md), [fr](https://postext.dev/fr/docs/configuration-exercises.md), [it](https://postext.dev/it/docs/configuration-exercises.md), [pt](https://postext.dev/pt/docs/configuration-exercises.md), [zh](https://postext.dev/zh/docs/configuration-exercises.md), [ja](https://postext.dev/ja/docs/configuration-exercises.md)

## باختصار

تسرد هذه الصفحة كل إعدادات مظهر التمارين. يحدد نمط التمرين كيف يُطبع الرقم، وكيف تُسمّى الخيارات، وما شكل الفراغ الذي يُملأ، وكيف تُسطَّر الأسطر التي يُكتب عليها، وكيف تُرسم الشبكات والعمليات الحسابية. وتحدد إعدادات الكتاب أين تُطبع الحلول، وهل الكتاب طبعة التلميذ أم طبعة المعلم. وتحدد أيضًا كيف يجيب القراء عن التمارين على الشاشة. أما طريقة كتابة التمارين نفسها فتشرحها صفحة التمارين.

## أنماط التمارين

تعرّف الخاصية `exerciseStyles` الأنماط المسمّاة التي يختارها التمرين بـ`:::exercise{style="…"}`. النمط شكلُ عائلة من التمارين؛ أما الأسئلة والإجابات فتبقى في Markdown (انظر [التمارين](https://postext.dev/ar/docs/exercises.md)). يأتي افتراضيًا نمط واحد هو `exercise`، فتعمل الحاوية دون أي إعداد؛ وتعريف `exerciseStyles` يستبدله، وأول نمط مُعرَّف هو الذي يأخذه التمرين الذي لا `style` له. كل الحقول اختيارية، والقيم الافتراضية تتبع لغة المستند حيث تختلف المدارس: تسميات الخيارات، وعلامتا صح وخطأ، وطريقة كتابة القسمة المطوّلة، والكلمات المطبوعة.

```ts
const config: PostextConfig = {
  exerciseStyles: [
    {
      id: 'activity',
      box: 'activity-frame',
      number: { shape: 'disc', background: { hex: '#2a5ea8', model: 'hex' } },
      instruction: { fontFamily: 'Noto Kufi Arabic' },
      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 } },
  ],
};
```

| الخاصية | النوع | القيمة الافتراضية | الوصف |
| --- | --- | --- | --- |
| `id` | `string` | — | المعرّف الذي يختاره `:::exercise{style="…"}`. والمعرّف غير المعروف يعود إلى أول نمط ويُبلَّغ عنه (`exerciseUnknownStyle`). |
| `name` | `string` | `id` | اسم مقروء للبشر (لواجهة المحرّر فقط). |
| `extends` | `string` | — | معرّف النمط الذي يُبنى عليه هذا النمط. تُدمج كل مجموعة (`number`، `options`، `blank`…) حقلًا حقلًا، و`icons` معرّفًا معرّفًا. |
| `box` | `string` | — | معرّف في [`calloutStyles`](https://postext.dev/ar/docs/configuration-callouts.md#أنماط-الإطارات) لإطار التمرين: الخلفية والحدّ والشريط والحشوة الداخلية والموضع والانقسام. وإن لم يُحدَّد صُفّ التمرين في النص الجاري بلا إطار، وبقي كاملًا في صفحة واحدة. |
| `number` | `object` | — | كيف يُطبع الرقم. انظر [الرقم](https://postext.dev/ar/docs/configuration-exercises.md#الرقم). |
| `instruction` | `object` | — | خط التعليمة. انظر [التعليمة](https://postext.dev/ar/docs/configuration-exercises.md#التعليمة). |
| `options` | `object` | — | خيارات سؤال الاختيار. انظر [الخيارات](https://postext.dev/ar/docs/configuration-exercises.md#الخيارات). |
| `blank` | `object` | — | كيف يُطبع `[[…]]`. انظر [الفراغات](https://postext.dev/ar/docs/configuration-exercises.md#الفراغات). |
| `trueFalse` | `object` | — | إجابتا عبارة صح أو خطأ. انظر [صح أو خطأ](https://postext.dev/ar/docs/configuration-exercises.md#صح-أو-خطأ). |
| `match` | `object` | — | عمودان يُوصل بينهما. انظر [التوصيل](https://postext.dev/ar/docs/configuration-exercises.md#التوصيل). |
| `bank` | `object` | — | بنك الكلمات. انظر [بنك الكلمات](https://postext.dev/ar/docs/configuration-exercises.md#بنك-الكلمات). |
| `area` | `object` | — | مساحات الكتابة. انظر [مساحة الكتابة](https://postext.dev/ar/docs/configuration-exercises.md#مساحة-الكتابة). |
| `grid` | `object` | — | خانات البحث عن الكلمات والكلمات المتقاطعة والعمليات. انظر [الشبكات](https://postext.dev/ar/docs/configuration-exercises.md#الشبكات). |
| `arithmetic` | `object` | — | العمليات في أعمدة. انظر [العمليات الحسابية](https://postext.dev/ar/docs/configuration-exercises.md#العمليات-الحسابية). |
| `level` | `object` | — | علامات الصعوبة. انظر [الصعوبة](https://postext.dev/ar/docs/configuration-exercises.md#الصعوبة). |
| `icons` | `Record<string, ExerciseIcon>` | `{}` | أيقونات النشاط بمعرّفاتها، تسمّيها `icon` في الحاوية. انظر [الأيقونات](https://postext.dev/ar/docs/configuration-exercises.md#الأيقونات). |
| `answers` | `object` | — | كيف تُطبع الإجابات في طبعة المعلم وفي البند النموذجي وفي الحلول. انظر [الإجابات](https://postext.dev/ar/docs/configuration-exercises.md#الإجابات). |
| `solutions` | `ExerciseSolutionsConfig` | — | [`exercises.solutions`](https://postext.dev/ar/docs/configuration-exercises.md#الحلول) الخاصة بالكتاب، لتمارين هذا النمط: لا يتغير إلا ما يُحدَّد هنا من حقول. |
| `digital` | `object` | — | ألوان طبعات الشاشة. انظر [ألوان الشاشة](https://postext.dev/ar/docs/configuration-exercises.md#ألوان-الشاشة). |
| `marginTop` | `Dimension` | `1em` | المساحة فوق التمرين الذي لا `box` له. |
| `marginBottom` | `Dimension` | `1em` | المساحة تحت التمرين الذي لا `box` له. |
| `itemSpacing` | `Dimension` | `0.25em` | المساحة بين بندين: الخيارات والأسئلة والعبارات والأزواج. |

### الرقم

تضبط `number` رقم التمرين. الرقم المجرد عريض، باللون الرئيسي، تليه نقطة؛ والرقم داخل شكل أبيض في قرص أو مربع أو مربع مستدير الزوايا باللون الرئيسي، ولا يليه شيء.

| الخاصية | النوع | القيمة الافتراضية | الوصف |
| --- | --- | --- | --- |
| `show` | `boolean` | `true` | يطبع الرقم. ويستمر العدّ في الحالتين. |
| `label` | `boolean \| string` | `false` | كلمة قبل الرقم: `true` تأخذ كلمة لغة المستند (تمرين، Exercise، Ejercicio، Exercice، Übung، 练习، 練習…)، والنص هو الكلمة نفسها (`'نشاط'`). |
| `shape` | `'none' \| 'disc' \| 'square' \| 'rounded'` | `'none'` | الشكل الذي يُصفّ فيه الرقم. |
| `color` | `ColorValue` | الأبيض داخل الشكل، وإلا اللون الرئيسي | لون الرقم. |
| `background` | `ColorValue` | اللون الرئيسي | تعبئة الشكل. |
| `fontFamily` | `string` | النص المحيط | عائلة خط الرقم. |
| `fontSize` | `Dimension` | `1em` | حجم الرقم، والـem هنا em التعليمة. |
| `fontWeight` | `number` | `700` | القيمة 600 فأكثر تجعله عريضًا. |
| `suffix` | `string` | `'.'`، ولا شيء مع الشكل | ما يُطبع بعد الرقم المجرد وكلمته: `'.'`، `')'`، `'、'`. |
| `template` | `string` | `'{n}'` | ما يُكتب في الرقم: `{n}` عدد التمرين، و`{h1}` و`{h2}` رقما الفصل والقسم (`'{h1}.{n}'` تطبع 3.4). |
| `resetOn` | `'never' \| 'h1' … 'h6'` | `'h1'` | مستوى العنوان الذي يبدأ عنده العدّ من جديد؛ و`'never'` تعدّ عبر الكتاب كله. |
| `counter` | `string` | `'exercise'` | العدّاد الذي يزيده النمط. الأنماط التي تسمّي عدّادًا واحدًا تتشاركه؛ والنمط الذي له عدّاد خاص (`'review'`) يرقّم تمارينه على حدة. |
| `format` | `ResourceCounterFormat` | `'decimal'` | أرقام `{n}`، كما في عدّاد الموارد: `'arabic-indic'` (١، ٢)، و`'roman-upper'`، و`'alpha-lower'`، و`'simp-chinese-informal'` (一، 二)، و`'circled-decimal'` (①، ②)… |

### التعليمة

تضبط `instruction` الفقرات التي يبدأ بها التمرين. والحقول غير المحددة تأخذ قيم النص الأساسي.

| الخاصية | النوع | القيمة الافتراضية | الوصف |
| --- | --- | --- | --- |
| `bold` | `boolean` | `true` | تُصفّ التعليمة بالعريض. |
| `italic` | `boolean` | `false` | تُصفّ بالمائل. |
| `color` | `ColorValue` | لون النص | لونها، ومعه المقاطع العريضة. |
| `fontFamily` | `string` | خط النص | عائلة خطها: تعليمة بخط كوفي أو بخط بلا زوائد فوق نص بخط النسخ شائعة في الكتب المدرسية. |
| `fontSize` | `Dimension` | حجم النص | حجمها. |

### الخيارات

تضبط `options` خيارات سؤال الاختيار (`- [ ] …`).

| الخاصية | النوع | القيمة الافتراضية | الوصف |
| --- | --- | --- | --- |
| `labels` | `ResourceCounterFormat \| 'none'` | بحسب اللغة | كيف تُعَدّ الخيارات: `'abjad'` في العربية (أ، ب، ج)، و`'alpha-lower'` (a، b، c)، و`'alpha-upper'` في الصينية (A، B، C)، و`'katakana'` في اليابانية (ア، イ، ウ). وأيضًا `'decimal'`، و`'katakana-iroha'`، و`'circled-decimal'`… و`'none'` لا تطبع تسمية. |
| `prefix` | `string` | `''` | قبل التسمية: `'('` لكتابة (أ). |
| `suffix` | `string` | `')'`؛ و`'.'` في الصينية، ولا شيء في اليابانية | بعد التسمية. |
| `marker` | `'none' \| 'box' \| 'circle'` | `'none'` | مربع أو دائرة قبل كل خيار، للتأشير. ومع `'none'` يضع القارئ دائرة حول التسمية. |
| `layout` | `'stack' \| 'row'` | `'stack'` | `'stack'`: خيار في كل سطر، وأسطره التالية معلّقة تحت نصه. `'row'`: الخيارات متجاورة. و`columns=n` في الحاوية تصفّها صفوفًا أيضًا. |
| `columns` | `number` | كلها | عدد الخيارات في الصف مع التخطيط `'row'` (حتى 6). |
| `shuffle` | `boolean` | `false` | تُطبع الخيارات بترتيب مخلوط، هو نفسه في كل المخرجات وفي المفتاح. |
| `indent` | `Dimension` | `1em` | إزاحة الخيارات عن حافة النص، في السؤال الذي لا رأس له. |
| `bracket` | `boolean` | `false` | قوسان `（　）` في آخر رأس كل سؤال يُكتب فيهما الحرف، كما تطبعهما الاختبارات الصينية واليابانية. وتكتب طبعة المعلم الحرف فيهما. |

### الفراغات

تضبط `blank` كيف يُطبع `[[…]]` في نص التلميذ: مساحة بقدر الإجابة عليها خط أو نقاط أو مربع، ولا تُرسم الإجابة نفسها.

| الخاصية | النوع | القيمة الافتراضية | الوصف |
| --- | --- | --- | --- |
| `look` | `'line' \| 'dots' \| 'box' \| 'none'` | `'line'` | خط يُكتب عليه، أو خط منقّط، أو مربع، أو مساحة فارغة. |
| `width` | `'answer' \| 'longest' \| Dimension` | `'longest'` | `'longest'`: كل فراغات التمرين بعرض أطول إجاباته، فلا يكشف فراغ إجابته. `'answer'`: كل فراغ بعرض إجابته. والطول: هذا العرض للجميع. و`{width=N}` في الفراغ مقدَّمة عليه. |
| `extra` | `Dimension` | `1.5em` | مساحة تُضاف إلى عرض الإجابة، بوحدات em كاملة. |
| `minWidth` | `Dimension` | `3em` | أضيق فراغ. |
| `color` | `ColorValue` | الأسود | لون الخط أو النقاط أو المربع. وإن حُدِّد لوّن أيضًا مربعات التأشير ودوائره وأطر كلمات البنك، وهي باللون الرئيسي إن لم يُحدَّد. |
| `weight` | `Dimension` | `0.6pt` | سماكة الخط. |

### صح أو خطأ

تضبط `trueFalse` الإجابتين في آخر العبارة.

| الخاصية | النوع | القيمة الافتراضية | الوصف |
| --- | --- | --- | --- |
| `labels` | `[string, string]` | بحسب اللغة | الإجابتان: `['صح', 'خطأ']` في العربية؛ وT F في الإنجليزية؛ وV F في الإسبانية والكتالونية والفرنسية والإيطالية والبرتغالية؛ وR F في الألمانية؛ و√ × في الصينية؛ و○ × في اليابانية. |
| `look` | `'boxes' \| 'bracket'` | `'boxes'` | `'boxes'`: لكل علامة مربع للتأشير، في آخر السطر. `'bracket'`: فراغ واحد تُكتب فيه الإجابة. |

### التوصيل

تضبط `match` تمرين الأزواج.

| الخاصية | النوع | القيمة الافتراضية | الوصف |
| --- | --- | --- | --- |
| `look` | `'dots' \| 'letters'` | `'dots'` | `'dots'`: عمودان بجانب كل بند فيهما نقطة، يُوصل بينها بخط. `'letters'`: بنود العمود الثاني بحروف، وبجانب كل بند في العمود الأول فراغ للحرف. |
| `gap` | `Dimension` | `4em` | المسافة بين العمودين. |
| `dotSize` | `Dimension` | `0.35em` | قطر النقاط. |
| `color` | `ColorValue` | اللون الرئيسي | النقاط، وإطار بنك الكلمات. |

### بنك الكلمات

تضبط `bank` إطار الكلمات في تمرين الفراغات الذي فيه `bank` أو `::bank[…]`، وفي كل تمرين تصنيف. ويُطبع الإطار حيث كُتب السطر `::bank`، وإلا فتحت التعليمة.

| الخاصية | النوع | القيمة الافتراضية | الوصف |
| --- | --- | --- | --- |
| `box` | `string` | إطار بلون التوصيل | معرّف في `calloutStyles` لإطار البنك. |
| `order` | `'shuffle' \| 'alpha' \| 'written'` | `'shuffle'` | الكلمات مخلوطة (ببذرة)، أو بالترتيب الألفبائي للغة المستند، أو كما كُتبت. |
| `separator` | `string` | مسافة em | ما بين كلمتين. وتُصفّ كل كلمة في شارة بإطار رفيع. |

### مساحة الكتابة

تضبط `area` المساحة تحت السؤال المفتوح، وتحت الجملة المبعثرة، وفي أعمدة تمرين التصنيف.

| الخاصية | النوع | القيمة الافتراضية | الوصف |
| --- | --- | --- | --- |
| `kind` | `'lines' \| 'dots' \| 'grid' \| 'seyes' \| 'tianzige' \| 'box' \| 'none'` | `'lines'` | أسطر، أو صف من النقاط، أو ورق مربعات، أو تسطير Seyès الفرنسي، أو مربعات 田字格، أو إطار فارغ، أو مساحة خالية. و`area` في الحاوية مقدَّمة عليها. |
| `lines` | `number` | `3` | الارتفاع بعدد الأسطر. و`lines` في الحاوية مقدَّمة عليها. |
| `spacing` | `Dimension` | 1.35 من ارتفاع سطر النص (1.2 للشبكات) | المسافة بين سطرين. |
| `color` | `ColorValue` | رمادي فاتح | لون التسطير. |
| `weight` | `Dimension` | `0.5pt` | سماكة التسطير. |

### الشبكات

تضبط `grid` خانات البحث عن الكلمات والكلمات المتقاطعة والعمليات في أعمدة.

| الخاصية | النوع | القيمة الافتراضية | الوصف |
| --- | --- | --- | --- |
| `cell` | `Dimension` | `1.6em` | ضلع الخانة. |
| `fontFamily` | `string` | خط النص | عائلة خط الحروف والأرقام. |
| `fontSize` | `Dimension` | 0.58 من ضلع الخانة | حجم الحروف والأرقام، والـem هو em النص. |
| `color` | `ColorValue` | لون النص | لون الحروف والأرقام. |
| `rule` | `ColorValue` | رمادي متوسط | خطوط الخانات. |
| `ruleWidth` | `Dimension` | `0.6pt` | سماكتها. |
| `blocked` | `ColorValue` | — | تعبئة خانات شبكة الكلمات المتقاطعة التي لا تشغلها كلمة. ومن دونها لا تُطبع إلا خانات الكلمات. |
| `uppercase` | `boolean` | `true` | تُكتب حروف البحث عن الكلمات والكلمات المتقاطعة كبيرة، بقواعد الحالة في لغة المستند. ولا أثر لها في الحروف العربية. |

### العمليات الحسابية

تضبط `arithmetic` العمليات في أعمدة.

| الخاصية | النوع | القيمة الافتراضية | الوصف |
| --- | --- | --- | --- |
| `division` | `'bracket' \| 'potence' \| 'inline'` | بحسب اللغة | القسمة المطوّلة. `'bracket'`: المقسوم عليه على يسار المقسوم، وفوق المقسوم قوس، وخارج القسمة في الأعلى (العربية والإنجليزية والصينية واليابانية، وكل لغة ليس لها عرف خاص). `'potence'`: المقسوم عليه على يمين المقسوم تحت زاوية على شكل L، وخارج القسمة تحت المقسوم عليه (الإسبانية والكتالونية والفرنسية والإيطالية والبرتغالية). `'inline'`: `864 : 4 =` وخارج القسمة في السطر والخطوات تحته (الألمانية). |
| `columns` | `number` | `4` | عدد العمليات في الصف، وأقل منه حين يضيق العمود. |

### الصعوبة

تضبط `level` العلامات التي تطبعها `level` في الحاوية بعد الرقم، بحجم أصغر.

| الخاصية | النوع | القيمة الافتراضية | الوصف |
| --- | --- | --- | --- |
| `glyph` | `string` | `'●'` | مستوى بُلغ: `'★'`، `'■'`. |
| `empty` | `string` | `'○'` | مستوى لم يُبلغ؛ و`''` لا تطبع شيئًا. |
| `max` | `number` | `3` | أعلى مستوى: `level=2` مع `max: 3` تطبع ●●○. |
| `color` | `ColorValue` | اللون الرئيسي | لون العلامات. |

### الأيقونات

تربط `icons` معرّفًا بأيقونة نشاط (شفهي، كتابي، عمل في ثنائيات، استماع، آلة حاسبة)، تُطبع بعد الرقم حين تسمّيها الحاوية: `icon="pair"`.

| الخاصية | النوع | القيمة الافتراضية | الوصف |
| --- | --- | --- | --- |
| `glyph` | `string` | — | محرف يُطبع: `'✎'`، `'🎧'`، أو رسم من خط أيقونات. |
| `fontFamily` | `string` | — | عائلة خط الأيقونات. |
| `color` | `ColorValue` | — | لون الأيقونة. |
| `resourceId` | `string` | — | مورد صورة نقطية أو SVG للأيقونة. |
| `alt` | `string` | — | ما تدل عليه الأيقونة، لقارئات الشاشة وملف PDF الموسوم. |
| `size` | `number` | `0.75` | ارتفاع الأيقونة بوحدة em من التعليمة: افتراضيًا ارتفاع الحرف الكبير. |

تُطبع الأيقونة رمزًا داخل السطر بعد الرقم: صورة `resourceId` إن سمّت واحدة، وإلا فـ`glyph` بخط `fontFamily` وبلون `color` (لون النص إن لم يُحدَّد). تقف على خط أساس التعليمة بارتفاع `size` em، ويُقرأ `alt` في موضعها.

### الإجابات

تضبط `answers` الإجابات حيثما ظهرت: في طبعة المعلم، وفي البند النموذجي لتمرين `example`، والدوائر والمربعات الممتلئة، والخطوط المرسومة بين الأزواج، والحروف والأرقام في الشبكات.

| الخاصية | النوع | القيمة الافتراضية | الوصف |
| --- | --- | --- | --- |
| `color` | `ColorValue` | `#d6246e`، أحمر أرجواني | لون الإجابات، كما يطبعها كتاب المعلم فوق النص. |
| `fontFamily` | `string` | خط النص | خط للإجابات: خط يشبه الكتابة باليد شائع. |
| `italic` | `boolean` | `false` | تُصفّ الإجابات داخل الفراغات بالمائل. |

### ألوان الشاشة

تضبط `digital` كيف يعرض عارض HTML وكتب EPUB الإجابة بعد فحصها.

| الخاصية | النوع | القيمة الافتراضية | الوصف |
| --- | --- | --- | --- |
| `correctColor` | `ColorValue` | أخضر (`#1e8e3e`) | الإجابة الصحيحة. |
| `wrongColor` | `ColorValue` | أحمر (`#c5221f`) | الإجابة الخاطئة. |

## إعدادات الكتاب

تحمل الخاصية `exercises` إعدادات الكتاب كله: الطبعة، وموضع طباعة الحلول، والبذرة التي يُخلط منها كل شيء، وطبعات الشاشة. والكتاب الذي لا يحدد `exercises` ولا `exerciseStyles` يُصفّ ويُحسب بصمته كما كان.

```ts
const config: PostextConfig = {
  exercises: {
    edition: 'student',
    solutions: { placement: 'chapterEnd', layout: 'key' },
    seed: 3,
    digital: { check: 'instant' },
  },
};
```

| الخاصية | النوع | القيمة الافتراضية | الوصف |
| --- | --- | --- | --- |
| `edition` | `'student' \| 'teacher'` | `'student'` | `'teacher'` تطبع كل إجابة في موضعها بلون `answers`: كتاب المعلم من نص التلميذ. |
| `solutions` | `ExerciseSolutionsConfig` | — | أين تُطبع الحلول وكيف. انظر [الحلول](https://postext.dev/ar/docs/configuration-exercises.md#الحلول). |
| `seed` | `number` | `1` | ما يُستمد منه كل خلط: الخيارات، والأعمدة الثانية، وبنود الترتيب، والكلمات المبعثرة، والبنوك، وحروف الحشو في البحث عن الكلمات. غيّرها لنسخة أخرى من الاختبار؛ وتبقى الطباعة والشاشة والمفتاح متطابقة. |
| `digital` | `object` | — | عارض HTML وكتب EPUB. انظر [الطبعات على الشاشة](https://postext.dev/ar/docs/configuration-exercises.md#الطبعات-على-الشاشة). |

### الحلول

`exercises.solutions`، وفوقها `solutions` في النمط لتمارين ذلك النمط.

| الخاصية | النوع | القيمة الافتراضية | الوصف |
| --- | --- | --- | --- |
| `placement` | `'none' \| 'after' \| 'inverted' \| 'chapterEnd' \| 'directive'` | `'none'` | `'none'`: لا حلول في الطباعة. `'after'`: بعد كل تمرين، بخط أصغر. `'inverted'`: بعد كل تمرين، مقلوبة رأسًا على عقب. `'chapterEnd'`: في آخر الفصل، تحت `heading`. `'directive'`: حيث يوجد سطر `:::solutions`. |
| `box` | `string` | إطار بلا حدود بخط أصغر | معرّف في `calloutStyles` لإطار الحل، ولقائمة حلول الفصل. |
| `heading` | `string` | كلمة لغة المستند | عنوان الحلول في آخر الفصل: الحلول، Solutions، Soluciones، Solucions، Corrigés، Lösungen، Soluzioni، Gabarito، 参考答案، 解答. وسطر `:::solutions{title="…"}` يحدد عنوانه بنفسه. |
| `layout` | `'key' \| 'full'` | `'full'` | `'key'`: الإجابات وحدها (1 ب · 2 الماء). `'full'`: المفتاح، ثم `:::solution` الخاص بالتمرين. |

### الطبعات على الشاشة

تضبط `exercises.digital` سلوك التمارين في عارض HTML وكتب EPUB.

| الخاصية | النوع | القيمة الافتراضية | الوصف |
| --- | --- | --- | --- |
| `interactive` | `boolean` | `true` | تمارين يجيب عنها القارئ. و`false` تعرضها كما طُبعت. |
| `persist` | `boolean` | `true` | تُحفظ إجابات القارئ في المتصفح، لكل كتاب على حدة. |
| `check` | `'button' \| 'instant'` | `'button'` | `'button'`: تُفحص الإجابات حين يطلب القارئ ذلك. `'instant'`: تُفحص كل إجابة لحظة كتابتها. |

ويمكن أن تكون للشاشة إعدادات تمارين خاصة بها: تأخذ `htmlViewer.overrides` أيضًا `exercises` و`exerciseStyles`، وتُدمجان فوق إعدادات الكتاب قبل أن يصفّ عارض HTML صفحاته. فتحتفظ الطباعة بحلولها في آخر الفصل وتخفيها الشاشة، أو تحذف الشاشة مساحات الكتابة التي لا حاجة للقارئ بها.

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