انتقل إلى المحتوى الرئيسي

الفصل 6 · الجزء II · الحرفة

الإعدادات: الحواشي والإحالات

الحواشي السفلية وترقيم الأسطر والإحالات المرجعية والاستشهادات، وجدول المحتويات والفهرس الأبجدي

آخر تحديث 2026-10-104 دقائقenescaptzhjaar

باختصار

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

#الحواشي السفلية

تحدد الخاصية footnotes أين تذهب الحواشي المستشهد بها عبر [^id]، وكيف تُرقَّم وكيف تبدو. الترميز موصوف في صيغة المستند.

interface FootnotesConfig {
  placement?: 'column' | 'chapterEnd' | 'spread'; // Foot of the citing column, after the chapter, or beside the text of a spread.
  numbering?: 'chapter' | 'document' | 'page' | 'column' | 'spread'; // Start again at each chapter, run on, or start again on each page / column / spread.
  numberFormat?: string;      // decimal, lower-roman, circled-decimal (①)…
  symbols?: string[];         // رموز الإحالة التي يكتبها numberFormat: 'symbols'.
  markerPosition?: 'auto' | 'superscript' | 'inline' | 'side' | 'right'; // Raised, on the baseline, beside the word, or right of a vertical line.
  markerSize?: Dimension;     // Inline, side or right marker size; em is the text around it.
  numberGap?: 'en' | 'em';    // Space after the note's own number.
  chapterEndAlign?: 'foot' | 'text';   // chapterEnd: notes at the column foot, or under the text.
  fontSize?: Dimension;       // Note size; em is the body size.
  lineHeight?: Dimension;     // Note leading; em is the note size.
  color?: ColorValue;         // Note colour; the body colour when unset.
  textAlign?: TextAlign;      // The body alignment when unset.
  hangingIndent?: Dimension;  // Indent of a note's turnover lines.
  spaceBetween?: Dimension;   // Space between two notes.
  spaceAbove?: Dimension;     // Space between the text and the rule; em is the body size.
  spaceBelowRule?: Dimension; // Space between the rule and the first note.
  separator?: {
    enabled?: boolean;        // Draw the rule.
    width?: number;           // Rule length, a fraction of the column width.
    lineWidth?: Dimension;    // Rule thickness.
    color?: ColorValue;       // The note colour when unset.
  };
}
الخاصيةالنوعالقيمة الافتراضيةالوصف
placement'column' | 'chapterEnd' | 'spread''column' (الكتب اليابانية العمودية: 'chapterEnd')'column' تضع كل حاشية في أسفل العمود الذي يحوي السطر المستشهِد بها، تحت خط فاصل قصير؛ وفي تخطيط من عمود واحد يكون ذلك أسفل الصفحة. و'chapterEnd' تضع كل حواشي الفصل بعد آخر كتلة فيه، بترتيب الاستشهاد. و'spread' (傍注، للنص العمودي وحده) تضع الحواشي المستشهد بها في صفحتَي الصفحتين المتقابلتين في آخر صفحتهما الفردية، وهي الصفحة اليسرى في الكتاب المجلّد من اليمين، تحت الخط الفاصل: فالحواشي المستشهد بها في الصفحة الزوجية تنتظرها، والحاشية التي كانت ستترك للصفحة الفردية أقل من سطر نص واحد تبقى في أسفل الصفحة الزوجية مع ما بعدها، والفصل الذي ينتهي في صفحة زوجية يُبقي حواشيه المنتظرة فيها. وفي النص الأفقي تعود إلى 'column' مع التحذير unknownConfigValue. منذ postext 1.16.
numbering'chapter' | 'document' | 'page' | 'column' | 'spread''chapter' (الكتب اليابانية الأفقية: 'page'؛ ومع placement: 'spread': 'spread'؛ ومع numberFormat: 'symbols' في ذيل العمود: 'page')'chapter' تبدأ من 1 من جديد تحت كل عنوان من المستوى 1 وفي بداية كل مستند. و'document' تستمر عبر المستند، وفي الكتاب الذي يُخرَج فصلًا فصلًا تستمر من فصل إلى الذي يليه (تحمل continuationAfter الرقم الأخير في continuation.footnoteNumber). و'page' تبدأ من 1 من جديد في كل صفحة، و'column' في كل عمود، فتعدّ الحواشي حيث يضعها الإخراج (أعمدة الصفحة بترتيب القراءة): وهي الحواشي المعتادة أسفل الصفحة في الكتاب الصيني، 页下注. يُخرَج المستند، ثم يُرقَّم بحسب المواضع التي وقعت فيها حواشيه، ثم يُعاد إخراجه حتى تثبت الأرقام (ثلاث عمليات بناء إضافية على الأكثر). كلتاهما تنطبقان على الحواشي في أسفل العمود: مع placement: 'chapterEnd' تُرقَّم الحواشي بحسب الفصل. و'spread' تبدأ من جديد في كل صفحتين متقابلتين (الصفحتان 2–3، و4–5…)، بترتيب الاستشهاد، مع placement: 'spread'.
numberFormatstring'decimal'طريقة كتابة الأرقام، بأي صيغة كتابة تقبلها إعدادات الترقيم: 'decimal'، 'lower-roman'، 'lower-alpha'، 'circled-decimal' (أو '①')، 'cjk-decimal'، '一'… وتستخدمها العلامة والرقم الذي يفتتح الحاشية كلاهما. تكتب circled-decimal الأرقام التي تتجاوز 50 بالأرقام العشرية. والاسم غير المعروف يُرقِّم بالأرقام العشرية، مع تحذير unknownNumberFormat. وتُعلِّم 'symbols' (أو '*') الحواشي برموز الإحالة، رموز symbols بالترتيب: * † ‡ § ‖ ¶، ثم مضاعفةً (** †† ‡‡…) ثم مثلَّثة؛ وعندئذ يُعاد عدّ الحواشي في كل صفحة ما لم يُضبط numbering. منذ postext 1.19.
symbolsstring[]['*', '†', '‡', '§', '‖', '¶']التسلسل الذي يكتبه numberFormat: 'symbols'، يُضاعَف ثم يُثلَّث متى نفد. تحمل الملفات اللاتينية في Google Fonts وFontsource الرموز * † § ¶ (الخنجر في latin-ext) دون ‡ و‖، فيرسمهما ملف PDF بمحرف .notdef في الخط مع تحذير missingGlyph: مع خط كهذا احذفهما (['*', '†', '§', '¶']) أو صُفَّ الحواشي بخط يحتويهما. تُهمَل السلاسل الفارغة، وتُبقي القائمة الفارغة التسلسل الافتراضي. منذ postext 1.19.
markerPosition'auto' | 'superscript' | 'inline' | 'side' | 'right''auto''superscript' ترفع العلامة في النص والرقمَ الذي يفتتح الحاشية، بحجم مصغَّر. و'inline' تضعهما على خط الأساس: العلامة بحجم markerSize، ورقم الحاشية بحجم الحاشية؛ وفي النص الرأسي تقف العلامة الدائرية ضمن السطر منتصبةً في خلية خاصة بها. و'right' تضع علامة مصغّرة ملاصقة للجانب الأيمن من السطر العمودي، كما تنضّد الكتب اليابانية العمودية (1)؛ وفي النص الأفقي تكون مرفوعة. و'side' (合印) تضع علامة صغيرة بجانب الكلمة المعلَّمة، على جانب الروبي فيها، تنتهي حيث ينتهي آخر حرف في الكلمة؛ ولا تأخذ حيّزًا في السطر، الذي ينكسر ويُضبط كأنها غير موجودة، والفجوة بين الأسطر الأضيق من أن تتسع لها يُبلَّغ عنها بالتحذير rubyExceedsLeading. و'auto' تعني ضمن السطر مع circled-decimal، و'right' في الكتاب الياباني العمودي، ومرفوعة في غير ذلك. وفي الحالتين تبقى العلامة مع الحرف الذي قبلها ولا تفتتح سطرًا أبدًا.
markerSizeDimension1em؛ و0.6em مع 'side'، و0.7em مع 'right'حجم العلامة ضمن السطر أو الجانبية أو اليمنى؛ وem هو حجم النص المحيط بها (0.75em تصغير شائع). لا أثر له في العلامة المرفوعة.
numberGap'en' | 'em''en' (الحواشي اليابانية بعد الفصل: 'em')المسافة بعد الرقم الذي يفتتح الحاشية: مسافة en، أو em كامل بحجم الحاشية (مسافة إيديوغرافية حين يحوي الرقم أو الحاشية نص CJK)، لا تتسع ولا تنكسر أبدًا. منذ postext 1.16.
markerTemplatestring'{n}' (الكتب اليابانية العمودية: '({n})')طريقة كتابة رقم الحاشية، حيث يمثّله {n} بتنسيق الترقيم وبأرقام المستند: '({n})' تعطي العلامات المحاطة بأقواس المعهودة في الكتب العربية، «(١)». وتكتب بها العلامةَ في النص والرقمَ الذي يفتتح الحاشية على السواء. والقالب الذي يخلو من {n} يُقرأ على أنه القيمة الافتراضية.
noteNumberPosition'auto' | 'superscript' | 'inline''auto'موضع الرقم الذي يفتتح الحاشية: مرفوعًا، أو على السطر بحجم الحاشية. 'auto' تتبع markerPosition. الكتب العربية ترفع العلامة في النص وتضع رقم الحاشية نفسها على السطر.
chapterEndAlign'foot' | 'text''foot'مع placement: 'chapterEnd': 'foot' تضع الحواشي التي تختم عمودًا في أسفله، وتبقى الأسطر المتبقية بين النص والحواشي، كما تقف الحواشي في أسفل العمود. و'text' تضعها مباشرةً تحت النص.
fontSizeDimension0.8emحجم نص الحاشية. em وrem هما حجم المتن. تستخدم الحواشي عائلة خط المتن وأوزانه.
lineHeightDimension1.25emتباعد أسطر نص الحاشية؛ وem هو حجم الحاشية. الحواشي خارج شبكة خطوط الأساس: تتراكم صعودًا من أسفل العمود، ويبقى النص فوقها على الشبكة.
colorColorValueلون المتنلون نص الحاشية.
textAlignTextAlignمحاذاة المتنمحاذاة نص الحاشية.
hangingIndentDimension0إزاحة السطر الثاني وما بعده من الحاشية، كي تصطف بعد رقمها.
spaceBetweenDimension0المسافة بين حاشيتين.
spaceAboveDimension0.5emالمسافة بين آخر سطر من النص والخط الفاصل؛ وem هو حجم المتن. مع 'chapterEnd' وchapterEndAlign: 'text'، يكون مجموع spaceAbove + spaceBelowRule هو المسافة بين النص وأول حاشية.
spaceBelowRuleDimension0.4emالمسافة بين الخط الفاصل وأول حاشية.
separator.enabledbooleantrueيرسم الخط الفاصل فوق حواشي كل عمود. ومع false تبقى المسافات التي فوقها.
separator.widthnumber0.3طول الخط الفاصل كسرًا من عرض العمود (0–1)، بدءًا من الحافة اليسرى للعمود.
separator.lineWidthDimension0.5ptسُمك الخط الفاصل.
separator.colorColorValueلون الحاشيةلون الخط الفاصل.
footnotes: {
  fontSize: { value: 7.5, unit: 'pt' },
  lineHeight: { value: 9.5, unit: 'pt' },
  hangingIndent: { value: 0.8, unit: 'em' },
  separator: { width: 0.25, lineWidth: { value: 0.4, unit: 'pt' } },
}

الكتب اليابانية. المستند الياباني (locale: 'ja'، منذ postext 1.16) يعطي الحقول التي يتركها دون ضبط قيم JLReq §4.2. فالكتاب العمودي يضع حواشيه بعد الفصل (placement: 'chapterEnd'، 後注)، مرقّمة بحسب الفصل، مع علامات ({n}) على يمين السطر (markerPosition: 'right'، والأرقام قائمة بحسب cjk.uprightDigits)؛ والأفقي يضعها في أسفل الصفحة، مرقّمة لكل صفحة، مع علامات مرفوعة. وكلاهما يرسم الخط الفاصل بطول ثلث عرض السطر (separator.width: 1/3)، والحواشي بعد الفصل تأخذ numberGap: 'em' ومسافة بادئة معلّقة بعرض 2 em. والقيمة الصريحة هي التي تُعتمد، وتُحفظ عند الحفظ (يقارن stripFootnotesDefaults بالقيم الافتراضية للمستند نفسه)؛ وتُحسم المستندات الصينية والعربية واللاتينية كما كانت. وتعيد footnoteDocumentDefaults(locale, writingMode, placement?) هذه القيم. واكتب العلامة قبل 。 التي تختم الجملة (先生[^1]。): فهي تبقى مع الحرف الذي قبلها، و。 لا تفتتح سطرًا أبدًا. انظر الإخراج الياباني › الحواشي.

كيف تُخرَج الحواشي في أسفل العمود:

  • الحاشية والاستشهاد يتشاركان العمود. قبل أن يضع الإخراج سطرًا، يضيف ارتفاع الحواشي التي يستشهد بها ذلك السطر لأول مرة (والخط الفاصل، مع أول حاشية في العمود). والسطر الذي لا تتسع حواشيه تحته ينتقل إلى العمود التالي مع بقية فقرته، وفق قاعدتي الأسطر اليتيمة والأرامل. تتقلص مساحة النص في العمود بمقدار ارتفاع الحواشي، فلا تحسب موازنةُ الأعمدة والشريطُ الختامي للفصل إلا النص.
  • عدة حواشي في عمود واحد تتراكم بترتيب الاستشهاد تحت خط فاصل واحد. والحاشية التي يُستشهد بها مرة أخرى لاحقًا تحتفظ برقمها ولا تُنضَّد ثانيةً.
  • العناصر العائمة السفلية. الشكل الذي يشغل أسفل عمود بعد وضع حواشيه يوضع فوقها؛ والحواشي التي توضع بعد الشكل تأتي فوقه.
  • الإطارات. الحاشية المستشهد بها داخل إطار (ضمن السطر أو عائم أو ثابت) تذهب إلى أسفل العمود الذي يستمر فيه النص بعد الإطار، وهو عادةً العمود نفسه. والإطار الذي يختم المستند يترك حواشيه في أسفل العمود الذي انتهى فيه النص.
  • الحدود. لا تُقسَم الحاشية أبدًا: الحاشية الأطول من العمود تفيض منه. والعلامات في التعليقات وخلايا الجداول والعناوين لا تُقرأ (تُطبع كما كُتبت).
  • المُخرجات. ترسم Canvas وHTML وPDF الحواشي والعلامات (رقمًا مرفوعًا) والخط الفاصل. في PDF ترتبط كل علامة بحاشيتها، وPDF الموسوم يجعل كل حاشية عنصر Note بمعرّف /ID فريد مُدرج في /IDTree من شجرة البنية (PDF/UA-1). الحواشي كتل VDTBlock عُيّنت فيها footnoteNote، في page.floats؛ والخطوط الفاصلة في page.footnoteAreas.
  • التحذيرات. undefinedFootnote (علامة بلا تعريف: يُطبع الرقم فوق حاشية فارغة) وunusedFootnote (تعريف لا تستشهد به أي علامة: لا يُنضَّد).

دالتا الحل والتجريد مماثلتان لنظيراتهما في الأقسام الأخرى:

import { DEFAULT_FOOTNOTES_CONFIG, resolveFootnotesConfig, stripFootnotesDefaults, footnoteDocumentDefaults } from 'postext';
 
resolveFootnotesConfig(config.footnotes, 'ja', 'vertical-rl'); // unset fields take the Japanese vertical defaults

#ترقيم الأسطر

تطبع الخاصية lineNumbers في الهامش رقمَ كل سطر خامس (أو كل سطر رقمه من مضاعفات N) بجوار السطر، كما تفعل الطبعات المحققة ومختارات الشعر والنصوص القانونية والطبعات المدرسية. وهي تعدّ أبيات قصائد :::verse، أو كل أسطر النص. وهي معطّلة افتراضيًا. يُرسم كل رقم على خط قاعدة سطره، بحجم خاص به، ولا يحرّك أي سطر أبدًا: تُخرَج الصفحة تمامًا كما تُخرَج بلا أرقام. منذ postext 1.23.

interface LineNumbersConfig {
  enabled?: boolean;        // معطّلة افتراضيًا.
  count?: 'verse' | 'all';  // أبيات القصائد، أو كل أسطر النص.
  interval?: number;        // اطبع مضاعفات N.
  numberFirst?: boolean;    // اطبع أيضًا أول سطر بعد كل إعادة للعدّ.
  restart?: 'document' | 'chapter' | 'section' | 'page' | 'poem'; // أين يبدأ العدّ من جديد.
  startAt?: number;         // رقم أول سطر بعد إعادة العدّ.
  position?: 'outer' | 'inner' | 'left' | 'right' | 'start' | 'end' | 'side';
  multiColumn?: 'each' | 'gutter' | 'outer-edges'; // الصفحات ذات العمودين أو أكثر.
  gap?: Dimension;          // من النص إلى الرقم؛ وem حجم الرقم.
  align?: 'auto' | 'left' | 'right';
  fontFamily?: string;      // عائلة خط المتن إن لم تُحدَّد.
  fontSize?: Dimension;     // وem حجم المتن.
  fontWeight?: number;      // وزن المتن إن لم يُحدَّد.
  italic?: boolean;
  color?: ColorValue;       // لون المتن إن لم يُحدَّد.
  format?: string;          // decimal، lower-roman، arabic-indic، 一…
}
الخاصيةالنوعالافتراضيالوصف
enabledbooleanfalseيطبع أرقام الأسطر. المستند العمودي (layout.writingMode: 'vertical-rl') لا يأخذ أي رقم، ويُبلَّغ عن true فيه بالتحذير lineNumbersUnsupported.
count'verse' | 'all''verse''verse' يعدّ أبيات قصائد :::verse، كل بيت مرة واحدة: ما ينتقل إلى السطر التالي من بيت أطول من العرض لا يأخذ رقمًا، والمسافة بين المقاطع لا تُعدّ. والقصيدة المنضّدة بالتخطيط العربي الكلاسيكي تعدّ سطرًا واحدًا لكل بيت؛ والسطر الثاني من البيت المدرَّج لا يُعدّ. و'all' يعدّ كل أسطر فقرات المتن وعناصر القوائم والاقتباسات والأبيات، بترتيب القراءة: صفحةً صفحة، وعمودًا عمودًا، من الأعلى إلى الأسفل.
intervalnumber5يطبع رقم كل سطر رقمه من مضاعفات هذا العدد (5، 10، 15…). والقصيدة التي أول أبياتها 37 تطبع 40، 45… ويمكن لسطر فتح القصيدة أن يحدّد فاصلًا خاصًا بها (interval=N).
numberFirstbooleanfalseيطبع أيضًا رقم أول سطر يُعدّ بعد كل إعادة للعدّ.
restart'document' | 'chapter' | 'section' | 'page' | 'poem''poem' مع count: 'verse'، و'page' مع count: 'all'أين يبدأ العدّ من جديد: أبدًا ('document'، فيستمر عبر فصول الكتاب)، أو عند كل عنوان من المستوى 1 ('chapter')، أو عند كل عنوان من المستوى 1 أو 2 ('section')، أو في كل صفحة ('page')، أو عند كل قصيدة :::verse ('poem'). ويعيد lineStart=N في قصيدة وlines=N في الموجّه :::numbering العدَّ في أي موضع، أيًّا كان الوضع.
startAtnumber1رقم أول سطر بعد إعادة العدّ.
position'outer' | 'inner' | 'left' | 'right' | 'start' | 'end' | 'side''outer'الجهة التي تقف فيها الأرقام. 'outer' هي الجهة البعيدة عن الكعب: يمين الصفحة الفردية ويسار الزوجية، وبالعكس في الكتاب المجلَّد من اليمين. و'inner' جهة الكعب. و'left' و'right' ثابتتان في كل الصفحات. و'start' و'end' تتبعان اتجاه المستند: 'start' هي اليمين في كتاب من اليمين إلى اليسار. و'side' تضعها في العمود الجانبي لتخطيط 'oneAndHalf' مع layout.sideColumnRole: 'floats'، ملاصقةً لحافة العمود الجانبي المجاورة للنص (ولا يُستعمل gap)؛ وفي صفحة بلا عمود جانبي تعود إلى 'outer'.
multiColumn'each' | 'gutter' | 'outer-edges''outer-edges'الصفحات التي فيها عمودان من النص أو أكثر جنبًا إلى جنب. 'outer-edges' تضع أرقام العمود الأول على يساره وأرقام العمود الأخير على يمينه، وتتبع الأعمدة بينهما 'each'. و'gutter' تضعها في الفواصل بين الأعمدة: أرقام العمود الأول على يمينه، وأرقام غيره على يسارها. و'each' تضع أرقام كل عمود في جهة position.
gapDimension1emالمسافة من حافة العمود إلى الرقم؛ وem حجم الرقم نفسه.
align'auto' | 'left' | 'right''auto''auto' تحاذي كل رقم نحو النص: إلى اليمين في هامش أيسر، وإلى اليسار في هامش أيمن. و'left' و'right' تحاذيان الأرقام داخل عرض أعرض رقم في الصفحة.
fontFamilystringعائلة خط المتنخط الأرقام. يُحمَّل ويُضمَّن كأي عائلة أخرى.
fontSizeDimension0.8emحجم الأرقام؛ وem حجم المتن.
fontWeightnumberوزن المتنوزن الأرقام.
italicbooleanfalseينضّد الأرقام بخط مائل.
colorColorValueلون المتنلون الأرقام. واللون المرتبط باللوحة يتبع لوحات الأجزاء والأقسام.
formatstringعشريكيف تُكتب الأرقام، بأي من صيغ كتابة أنماط الترقيم ('lower-roman'، 'arabic-indic'، '一'…). وتُكتب الأرقام العشرية بأرقام المستند (numerals). والاسم غير المعروف يرقّم بالعشري، مع التحذير unknownNumberFormat.
lineNumbers: {
  enabled: true,
  count: 'verse',
  interval: 5,
  restart: 'document',          // عدّ واحد للكتاب كله
  position: 'outer',
  fontSize: { value: 0.75, unit: 'em' },
  italic: true,
}

ما يُعدّ وما لا يُعدّ:

  • لا يُعدّ أبدًا: العناوين، والتعليقات، والجداول والصور، والصيغ المنفصلة، ونصوص التصميم (صفحات الافتتاح والترويسات)، والحواشي السفلية وحواشي آخر الفصل، وجدول المحتويات، ومداخل الفهرس وقائمة المراجع، والصفحات الفارغة.
  • الإطارات والنثر. نص الإطار لا يُعدّ، ومع count: 'verse' لا يُعدّ النثر أيضًا، إلا إذا قال نمط الفقرة الذي يُنضَّد به lineNumbers: true؛ والنمط الذي فيه lineNumbers: false لا يُعدّ أبدًا (انظر أنماط الفقرات).
  • قصيدة واحدة. يقبل سطر فتح القصيدة numbered=false (لا تُعدّ أبياتها)، وlineStart=N (أول أبياتها رقمه N، ومنه يبدأ العدّ من جديد)، وinterval=N. و:::numbering{lines=N} يعطي السطرَ المعدود التالي الرقمَ N، أينما كان. انظر صيغة المستند › :::verse و:::numbering.

في كتاب يُخرَج فصلًا فصلًا، ينقل restart: 'document' العدّ من فصل إلى الذي يليه عبر continuation.lineNumber. ويعدّ continuationAfter الأبيات من النص؛ أما مع count: 'all' فيتوقف العدّ على الإخراج، فيمرّر التطبيق المضيف lastLineNumber من مستند الفصل السابق، كما يفعل Sandbox.

مع position: 'side' تتقاسم الأرقام العمود الجانبي مع الإطارات والتعليقات والأشكال الجانبية. والرقم الذي يتراكب مع أحدها يُرسم مع ذلك، ولا يتحرك أيٌّ منهما، ويصدر الإخراج تحذير محتوى lineNumberOverlap يشير إلى السطر المرقَّم.

المُخرجات. ترسم Canvas وPDF وعارض HTML وEPUB ذو التخطيط الثابت الأرقام. وفي PDF الموسوم تكون عناصر زخرفية (artifacts) في الإخراج، ويحمل كل منها /ActualText فارغًا، فينتقل النص المنسوخ أو المستخرج من سطر إلى سطر بدونها. ويخفيها مُخرَج HTML عن التقنيات المساعدة (aria-hidden) وعن التحديد وعن النص المنسوخ. أما EPUB المتدفق، الذي ينضّد نظام القراءة أسطره، فيحتفظ بأرقام الأبيات وحدها: عنصر span من الصنف pt-line-number (وaria-hidden هو أيضًا) في هامش البداية من المقطع، بجوار كل بيت يحمل رقمًا في النسخة المطبوعة. وفي VDT تكون الأرقام خانة تصميم في كل صفحة (page.lineNumbers، وكتل نصها معلَّمة بـ artifact) وقائمة علامات (page.lineNumberMarks: number وlabel وcolumnIndex وblockId وlineIndex)؛ ويسجّل المستند lastLineNumber.

غير مدعوم: أرقام الأسطر في النص العمودي، والإحالة المرجعية التي تطبع رقم سطر، والحواشي المربوطة بأرقام الأسطر، وأرقام أسطر خلايا الجداول والتعليقات وقوائم الشيفرة.

في Sandbox هذه الإعدادات هي قسم ترقيم الأسطر في لوحة التصميم. ودالتا الحل والتجريد مماثلتان لنظيراتهما في الأقسام الأخرى؛ والخط والوزن واللون تأتي من المتن:

import { DEFAULT_LINE_NUMBERS_CONFIG, resolveLineNumbersConfig, stripLineNumbersDefaults } from 'postext';
 
resolveLineNumbersConfig(config.lineNumbers, resolvedBodyText); // الخط والوزن واللون غير المحدَّدة تتبع المتن

#الإحالات المرجعية

تحدد الخاصية crossRefs الكلمات التي تطبعها الإحالة المرجعية حول رقم أو صفحة، والنمطَ الذي تأخذه :ref حين لا تحدد نمطًا. يحمل كل قالب {n} حيث يوضع الرقم؛ والقالب الذي يخلو منه يأتي الرقم بعده مسبوقًا بمسافة غير قابلة للكسر ("§" يطبع § 3.2). والقالب غير المعيَّن يتبع لغة المستند: chapter / section / p. بالإنجليزية، وcapítulo / sección / pág. بالإسبانية، و第{n}章 / 第{n}节 / 第{n}页 بالصينية، وهكذا للفرنسية والألمانية والإيطالية والبرتغالية والكتالونية والهولندية.

interface CrossRefsConfig {
  chapter?: string;  // Words around a level-1 heading's number: "chapter {n}".
  section?: string;  // Around any other heading's number: "section {n}".
  page?: string;     // Around a page number: "p. {n}".
  defaultStyle?: 'default' | 'number' | 'title' | 'page'; // A :ref without style=.
}
الخاصيةالنوعالقيمة الافتراضيةالوصف
chapterstringبحسب اللغةإحالة إلى عنوان من المستوى 1: "chapter {n}". ورقم العنوان الذي يتضمن قالبُه الكلمةَ أصلًا (Chapter {1}، 第{1:一}章) يُطبع كما هو.
sectionstringبحسب اللغةإحالة إلى عنوان من المستوى 2 إلى 6: "section {n}"، "§ {n}".
pagestringبحسب اللغةإحالة إلى صفحة (style=page): "p. {n}"، "page {n}".
defaultStyle'default' | 'number' | 'title' | 'page''default'ما تطبعه :ref إلى عنوان أو مرساة دون style=. 'default': العنوان المرقّم بكلمته ورقمه، وغير المرقّم بنص عنوانه، والمرساة بنصها. والإحالة التي تعيّن style تحتفظ به، ولا تتأثر الإحالات إلى الأشكال والجداول.

تأخذ الإحالات لون كل إحالة ووزن خطها وميلها (bodyText.referenceColor، referenceBold، referenceItalic).

#الاستشهادات

تختار الخاصية citations نمط الاستشهاد وطريقة ظهور الاستشهادات وقائمة المراجع. الترميز موصوف في الاستشهادات والمراجع؛ ويطبّق النمطَ الحزمةُ postext-citeproc.

interface CitationsConfig {
  style?: string;          // 'apa', 'ieee', 'chicago-notes-bibliography'… or 'custom'
  customStyle?: string;    // a whole CSL style (.csl XML), used with style: 'custom'
  locale?: string;         // CSL locale; the document language when unset
  link?: boolean;          // citations link to their entries
  marker?: 'style' | 'brackets' | 'parentheses' | 'superscript' | 'corner';
  collapseRanges?: boolean;
  notes?: 'footnote' | 'warichu';
  numbering?: 'book' | 'chapter';
  bibliography?: {
    title?: string;        // unset: the document language's word; '' or ' ': none
    scope?: 'book' | 'chapter';
    auto?: boolean;
    fontSize?: Dimension;
    lineHeight?: Dimension;
    hangingIndent?: Dimension;
    entrySpacing?: Dimension;
    labelWidth?: Dimension;
    labelAlign?: 'left' | 'right';
    doi?: 'link' | 'text' | 'hide';
    includeUncited?: boolean;
    groupByLanguage?: boolean;
  };
}
الخاصيةالنوعالقيمة الافتراضيةالوصف
stylestring'apa'معرّف نمط مضمَّن (انظر الأنماط) أو 'custom'. النمط هو الذي يقرر ما تقوله الاستشهادات والمُدخلات: الأسماء، والتواريخ، والترتيب، وعلامات الترقيم، وهل الاستشهادات حواشٍ.
customStylestring—نمط CSL كامل، أي محتوى XML لملف .csl، يُستخدم حين تكون style هي 'custom'. يحمّله Sandbox من ملف.
localestringلغة المستندلغة CSL المحلية التي يكتب بها النمط كلماته (en-US، es-ES، zh-CN، zh-TW، ja-JP…). والمستند الياباني يُقرأ على أنه ja-JP: تصل الاستشهادات السردية بين مؤلفَين بـ と وتختصر الأكثر بـ ほか.
linkbooleantrueيرتبط الاستشهاد بمُدخله في قائمة المراجع (رابط في PDF، ومرساة في HTML، ونقرة في Sandbox).
marker'style' | 'brackets' | 'parentheses' | 'superscript' | 'corner''style'كيف يعلّم النمط المرقَّم الاستشهاد: كما يكتبه النمط، أو [1]، أو (1)، أو رقمًا مرفوعًا، أو 〔1〕 (منتصبًا في النص الرأسي). ويلي الرقمَ محدِّدُ الموضع (locator).
collapseRangesbooleantrueالأرقام المتتالية تُكتب نطاقًا: 1–3 في علامة واحدة خاصة بها، و[2]–[4] في نمط IEEE. وfalse تبقيها منفصلة.
notes'footnote' | 'warichu''footnote'أين يضع نمطُ الحواشي استشهاداته: في حواشٍ سفلية (توضع وتُرقَّم كما تحدد footnotes)، أو في تعليقات من صفين داخل السطر (夹注).
numbering'book' | 'chapter''book'الاستشهادات عبر الكتاب كله، أو كل فصل وحده (كل مستند، وكل عنوان من المستوى 1 بعد استشهاد): يرقّم النمط الرقمي كل فصل من 1، ويأخذ العمل المستشهد به في فصلين رقم كل فصل؛ ويكتب نمط الحواشي العمل كاملًا عند أول استشهاد به في كل فصل. يُستعمل مع bibliography.scope: 'chapter'، فتأخذ قوائم الفصول أرقام فصولها.
bibliography.titlestringبحسب اللغةالعنوان فوق القائمة، فقرة بخط عريض. إن تُرك فارغًا فلا عنوان. والعنوان الذي تكتبه بنفسك يوضع فوق :::bibliography.
bibliography.scope'book' | 'chapter''book'قائمة واحدة بكل عمل يستشهد به الكتاب، أو قائمة لكل فصل بالأعمال التي يستشهد بها. في المستند المؤلف من عدة فصول، يبدأ كل H1 قائمة فصل جديدة؛ ومع auto يحصل الفصل الذي لا يضع :::bibliography على قائمته في نهايته.
bibliography.autobooleantrueيضع القائمة بعد النص (في الفصل الأخير، للقائمة الشاملة للكتاب) حين لا تضعها أي :::bibliography.
bibliography.fontSizeDimension0.9emحجم المُدخلات؛ وem هو حجم المتن.
bibliography.lineHeightDimensionتباعد أسطر المتنتباعد أسطر المُدخلات.
bibliography.hangingIndentDimension2emإزاحة الأسطر التالية من المُدخل غير المرقّم.
bibliography.entrySpacingDimension0.3emالمسافة بين مُدخلين.
bibliography.labelWidthDimensionأطول تسميةعرض العمود الذي تقف فيه أرقام القائمة المرقّمة: يبدأ نص كل مُدخل على هذه المسافة إلى الداخل، في سطره الأول كما في أسطره التالية، فيتشارك 9. و10. العمود. وتبقى التسمية جزءًا من نص المُدخل.
bibliography.labelAlign'left' | 'right''left'موضع التسمية في عمودها: ملاصقة لحافته اليسرى، أو ملاصقة للنص (فينتهي 9. و10. معًا).
bibliography.doi'link' | 'text' | 'hide''link'معرّفات DOI وعناوين URL روابطَ، أو نصًّا عاديًا، أو تُحذف.
bibliography.includeUncitedbooleanfalseيُدرج كل مرجع، سواء استُشهد به أم لا (مثل nocite: "@*").
bibliography.groupByLanguagebooleanfalseالأعمال المكتوبة بالصينية واليابانية والكورية أولًا، ثم الأخرى. لأنماط المؤلف والتاريخ والمؤلف والصفحة فقط: القائمة المرقّمة تحتفظ بترتيب أرقامها.

#جدول المحتويات

تضبط الخاصية toc ما يطبعه التوجيه :::toc (انظر صيغة المستند). تُجمَع المحتويات من مخطّط المستند (outline): كل عنوان برقمه وتسمية صفحته، وكل :::part؛ ولذلك تتبع الفصول: إن غيّرت اسم فصل، أو نقلته إلى جزء آخر، أو غيّرت مؤلفيه، تغيّرت المداخل معه. يتكوّن المدخل من رقم العنوان في عمود خاص به، ثم العنوان، ثم خط الإرشاد (leader) وتسمية الصفحة عند الحافة اليمنى، ثم سطر عنوان فرعي اختياري؛ أما الجزء فصفّ يصمّمه parts.design.

const config: PostextConfig = {
  toc: {
    levels: [{ level: 1, fontWeight: 700, color: { hex: '#00507b', model: 'hex' }, numberWidth: { value: 7.4, unit: 'mm' } }],
    unnumbered: { color: { hex: '#000000', model: 'hex' } },
    pageNumber: { fontWeight: 400, width: { value: 8, unit: 'mm' } },
    leader: { char: '.', gap: { value: 1, unit: 'mm' } },
    subtitle: { enabled: true, attr: 'author', italic: true, fontSize: { value: 8.5, unit: 'pt' } },
    parts: {
      height: { value: 23, unit: 'pt' },
      marginTop: { value: 11.5, unit: 'pt' },
      design: { elements: [/* a band box, 'SECTION {number}', '{titleText}', '{pageNumber}' */] },
    },
  },
};
الخاصيةالنوعالقيمة الافتراضيةالوصف
levelsTocLevelConfig[]المستوى 1مستويات العناوين المُدرَجة، ولكل منها تنضيد مدخله: fontFamily، fontSize، lineHeight (افتراضيًا تباعد أسطر المتن، فتستقر المحتويات على الشبكة)، fontWeight، italic، color، indent (للمدخل كله)، numberWidth / numberGap (عمود الرقم الذي يبدأ العنوان بعده؛ تُحاذى الأرقام فيه إلى اليمين، والرقم الأعرض من numberWidth، مثل الفصل الحادي عشر أو Chapter 12، يوسّع عمود مستواه إلى عرض أعرض الأرقام)، numberFontFamily، numberFontSize، numberFontWeight، numberColor، marginTop، marginBottom. الحقول غير المضبوطة ترث إعدادات نص المتن. يقع الرقم على خط أساس السطر الأول من العنوان، أيًّا كان محرفه وحجمه، على Canvas وفي HTML وفي PDF (حتى postext 1.4 كان الرقم يتوسّط ارتفاع الحرف x (x-height) مثل نقطة القائمة، فكان محرف العرض أو الحجم الأكبر يعلو فوق العنوان). يجد المُخرِج الذي تكتبه بنفسك خط الأساس هذا في bulletBaselineY من كتلة المدخل؛ وما زال bulletY منتصف مربّع em للرقم، كما في 1.4، فيرسم المُخرِج الأقدم من الحقل الجديد الأرقام حيث كان يرسمها دائمًا.
unnumberedTocEntryStyleConfig—قيم بديلة للعناوين التي يحمل نمطها numbered: false (كالتمهيد): لا تطبع رقمًا وتبدأ محاذية لإزاحة indent الخاصة بالمستوى.
pageNumberكائنمحرف المستوى 1، بوزن المتنfontFamily، fontSize، fontWeight، italic، color لتسمية الصفحة، وwidth (افتراضيًا 2em): العمود المحجوز لها عند الحافة اليمنى، حيث تُحاذى إلى اليمين.
leaderكائنيتكرّر char على امتداد الفراغ بين العنوان ورقم الصفحة، محاذى إلى اليمين لتصطفّ نقاط المداخل المتتالية ('. ' يباعد بينها)؛ وgap أقل مسافة تُترك بين العنوان وخط الإرشاد. يأخذ خط الإرشاد من المحارف ما يتّسع له المكان، مقيسًا سلسلةً كاملة بمحرفه، فالمحرف الذي يباعد بين النقاط المتتالية بتقنين الأزواج (kerning) ينال نقاطًا أقل بدل نقاط تصل إلى رقم الصفحة. (حتى postext 1.4 كان العدد يُحسب من نقطة واحدة، وفي محرف كهذا كان خط الإرشاد يمتد من العنوان إلى داخل الرقم.) والعنوان الذي لا يترك للتسمية مكانًا يلتفّ أبكر قليلًا. ويُصفّ خط الإرشاد بثلاثة محارف أو أكثر: فإن لم يتّسع المكان إلا لمحرف أو اثنين بقي الصف بلا خط إرشاد، لأن نقطة مفردة قبل رقم الصفحة تُقرأ نقطةَ نهاية جملة. وفي PDF الموسوم تكون النقاط عناصر زخرفية من عناصر الإخراج، فلا تدخل في النص المستخرَج. ويضع نص المتن خطوط الإرشاد نفسها عند مواضع الجدولة.
subtitleكائنسطر ثانٍ تحت المدخل مأخوذ من سمة في العنوان (attr)، أي مؤلفي الفصل، وله fontFamily وfontSize وfontWeight وitalic (افتراضيًا true) وcolor خاصة به وإزاحة indent إضافية. يشارك السطر المدخل تباعد أسطره ولا ينفصل أبدًا عن عنوانه.
parts.enabledbooleantrueهل تنال فواصل الأجزاء صفًّا.
parts.breakBeforebooleanfalseافتح صفحة جديدة قبل كل صف جزء ما عدا الأول، فتُدرَج فصول كل جزء في صفحة خاصة بها.
parts.designDesignSlotفارغتصميم الصف؛ حاويته هي الصف (عرض العمود × height). العناصر النائبة: ، ، …، و (تسمية صفحة الجزء؛ ومع parts.page: false، الذي لا يفتح صفحة جزء، تسمية الصفحة التي يبدأ عليها محتوى الجزء، حيث تنتقل الترويسات إليه؛ وفي كتاب يُخرَج فصلًا فصلًا، يشير السياج الذي يُغلق فصله إلى أول صفحة محتوى في الفصل التالي). تأخذ الألوان المرتبطة بلوحة الألوان قيمَ palette الخاصة بالجزء، فيأتي صف كل قسم بلونه. وحين يكون التصميم فارغًا، يُنضَّد (وبينهما numberSeparator الخاص بعنوان H1) ورقم الصفحة بتنضيد مدخل المستوى 1.
parts.height، marginTop، marginBottomDimension2em، 0، 0ارتفاع الصف والمسافة حوله. وحدة em هي حجم نص المتن، فارتفاع الصف الافتراضي ضعف حجم المتن، لا سطران من المتن: مع متن 9.5/13.5 pt يكون 19 pt. ولصفّ بارتفاع سطرين من المتن، أعطِ الارتفاع بوحدة pt (27pt في ذلك المثال).

تسميات الصفحات هي التي يطبعها المستند. يعيد buildDocument() إخراج المستند الذي يحوي :::toc بتسميات الجولة السابقة حتى تستقر (ثلاث جولات إضافية على الأكثر)؛ أما المضيف الذي يُخرج كتابًا فصلًا فصلًا فيقدّم بدلًا من ذلك مخطّط الكتاب كله في PostextContent.outline، مجمَّعًا من contentOutline() (العناوين والأجزاء من النص وحده) وoutlineFromDoc() (المداخل نفسها بتسميات الصفحات في إخراجٍ ما)، ويعيد إخراج فصل المحتويات كلما تغيّر outlineKey() لذلك المخطّط. يحمل كل مدخل عنوانٍ الرقمَ number الذي تطبعه المحتويات، ويحمل العنوان المرقّم كذلك counter الخاص به: العدّ الجاري لمستواه بعد أي startAt، أيًّا كان ما يطبعه القالب، وهو ما يعرضه المضيف بجانب الفصل في قوائمه الخاصة.

#الفهرس الأبجدي

تضبط الخاصية index ما يطبعه التوجيه :::index (انظر صيغة المستند): المصطلحات المعلَّمة بـ :index[…] و:index{term="…"} في النص، مرتّبةً ومجمّعةً حسب الحرف الأول (وفي الصينية حسب الحرف الأول من قراءة pinyin أو حسب عدد الضربات، وفي اليابانية حسب صف غوجوون، انظر groupBy)، ولكل منها الصفحات التي يقع فيها. يتكوّن المدخل من مصطلحه، ففاصل، فأرقام صفحاته؛ وتليه مداخله الفرعية، بخطوة إزاحة واحدة لكل مستوى، وتتدلّى أسطره الملتفّة بمقدار turnoverIndent فلا تصطفّ أبدًا مع مدخل فرعي.

const config: PostextConfig = {
  headingStyles: [
    // The index in two columns, under its own heading.
    { id: 'index', numbered: false, layout: { layoutType: 'double', gutterWidth: { value: 6, unit: 'mm' } } },
  ],
  index: {
    fontSize: { value: 8.5, unit: 'pt' },
    lineHeight: { value: 11, unit: 'pt' },
    rangeFormat: 'chicago',
    groups: { fontFamily: 'Source Sans 3', fontWeight: 700, color: { hex: '#8a1c1c', model: 'hex' } },
  },
};
الخاصيةالنوعالقيمة الافتراضيةالوصف
fontFamily، fontSize، lineHeight، fontWeight، color—نص المتنتنضيد المداخل. كل سطر في الفهرس، بما فيه رؤوس الحروف، يُنضَّد على lineHeight؛ للفهرس إيقاعه الخاص ولا يلتزم بشبكة خطوط الأساس.
indentDimension1emإزاحة كل مستوى من المداخل الفرعية.
turnoverIndentDimension2emإزاحة إضافية للأسطر الملتفّة من المدخل، فوق إزاحة مستواه.
entrySpacingDimension0المسافة فوق كل مدخل رئيسي.
separator، locatorSeparator، rangeSeparatorstring', '، ', '، '–'؛ والأوّلان '، ' في الخط العربيما يُطبع بين المصطلح وأول صفحة له، وبين صفحتين، وبين طرفي النطاق.
mergeRangesbooleantrueاضمم الصفحات المتتالية ذات صيغة الترقيم الواحدة في نطاق: 12, 13, 14 تُطبع 12–14. لا تُضمّ الصفحات الرئيسية أبدًا.
rangeFormat'full' | 'chicago''full'كيف يُكتب الرقم الثاني في النطاق: كاملًا (234–237)، أو بحذف الأرقام التي يشترك فيها مع الأول، كما يطلب The Chicago Manual of Style (9.64): 71–72، 100–104، 101–8، 321–28، 1496–500. التسميات الرومانية تُكتب كاملة دائمًا.
mainعريضكيف تُنضَّد الصفحة الرئيسية (main على العلامة).
seeحسب اللغة، مائل (قائم في الخط العربي)الكلمات التي تسبق الإحالة. إن لم تُضبط تتبع لغة المستند: See / See also، Véase / Véase también، Voir / Voir aussi، 见 / 另见 (見 / 另見 في الصينية التقليدية)… يضع الفهرس الصيني الإحالة بعد نقطة، بلا مسافة: 贾琏 12。见贾政.
localestringلغة المستنداللغة التي يُرتَّب بترتيبها الأبجدي المداخل (وسم BCP 47 يقرؤه Intl.Collator). في الإسبانية تأتي ñ بعد n وتتصدّر مجموعة خاصة بها؛ ولا تغيّر العلامات فوق الحروف (accents) الترتيب أبدًا.
groupBy'auto' | 'letter' | 'pinyin' | 'stroke' | 'gojuon' | 'kana' | 'none''auto'ما تكونه رؤوس المجموعات. 'letter': الحرف الأول من مفتاح الترتيب. 'pinyin': المدخل الذي يبدأ بمقطع صيني (Han) يُصنَّف تحت الحرف اللاتيني الأول من قراءته بالـ pinyin (贾宝玉 تحت J)، ومفتاح الترتيب اللاتيني تحت حرفه، بعد المداخل الصينية لذلك الحرف (إذ يضع المرتِّب الحروف اللاتينية بعد المقاطع الصينية): sort="jia mu" يُختَم به حرف J. 'stroke': تحت عدد ضربات المقطع الأول، 一畫، 二畫… (一画… في الصينية المبسّطة). 'gojuon': يُصنَّف مدخل الكانا تحت صف غوجوون الخاص به، あ行، か行 … わ行، و'kana' تحت أول حرف كانا فيه (وتتشارك الكاتاكانا والهيراغانا الرؤوس)، بترتيب JIS X 4061 للفهرس الياباني: حسب القراءة (yomi في العلامة، وإلا قراءة الكانا في الروبي الذي فيها، وإلا sort، وإلا النص)، والكاتاكانا كالهيراغانا، والكانا الصغيرة كالكبيرة، و ー كالحرف الصوتي الذي قبلها، وغير المجهور (清) قبل المجهور (濁) قبل شبه المجهور (半濁)؛ الرموز أولًا، ثم الأرقام حسب قيمتها، ثم الكلمات اللاتينية تحت حروفها، ثم الكانا؛ والمدخل الذي ما زال يبدأ بكانجي يُبلَّغ عنه بالتحذير indexReadingMissing ويُنضَّد بعد الكانا بلا رأس. 'none': بلا رؤوس؛ تُفصَل الرموز والأرقام والكلمات بمسافة groups.marginTop وحدها. أما 'auto' فيجمّع الفهرس الياباني (ja، ja-*) حسب صف غوجوون، والفهرس الصيني المبسّط (zh، zh-Hans، zh-CN) حسب pinyin، والتقليدي (zh-Hant، zh-TW، zh-HK) حسب الضربات، وكل لغة أخرى حسب الحرف. تُرتَّب المداخل بالترتيب الذي تأتي منه الرؤوس: فالفهرس zh-Hant المجمَّع حسب pinyin يُرتَّب حسب pinyin. القراءات وأعداد الضربات هي ما يعطيه المرتِّب (CLDR)؛ وحيث يقرأ مقطعًا قراءة خاطئة (重 بقراءة zhòng في 重阳، و行 بقراءة xíng في 行业)، أعطِ العلامة مفتاح sort بمقاطع ليس لها إلا القراءة التي تريدها، فيُرتَّب المدخل في موضعه: sort="崇阳" لـ 重阳، وsort="航业" لـ 行业. والمتصفح الذي لا يملك بيانات الترتيب الصيني يطبع فهرس pinyin أو فهرس الضربات بلا رؤوس.
ignoreArticlebooleantrue في العربيةرتّب المداخل العربية وجمّعها كأن أداة التعريف ال (ٱل) في أولها غير موجودة: تُصنَّف البصرة تحت ب، بين بدر وبغداد، وتُطبع كما كُتبت. تحتفظ الله بأداة التعريف، والمدخل الذي له مفتاح sort خاص يُرتَّب بذلك المفتاح كما هو. وأيًّا كانت قيمة هذا الإعداد، يتجاهل الفهرس العربي الحركات والتطويل، ويصنّف أ إ آ ٱ تحت ا، ويرتّب ؤ كما يرتّب و، وئ وى كما يرتّب ي، وة كما يرتّب ه.
groups.enabledbooleantrueاطبع رأسًا فوق كل مجموعة من المداخل (A، B…، أو عدد الضربات، و0–9 للأرقام، وSymbols للبقية؛ و数字 / 數字 و符号 / 符號 في الصينية).
groups.fontFamily، fontSize، fontWeight، italic، color—ما للمداخل، والوزن 700محرف رأس الحرف. يُنضَّد على خطوة أسطر المداخل.
groups.marginTopDimensionسطر واحد من الفهرسالمسافة فوق كل مجموعة، برأس أو بدونه؛ ولا مسافة فوق المجموعة الأولى، التي تحدّد بُعدَها عن العنوان مسافةُ العنوان نفسه، ولا في أعلى العمود.
groups.symbolsLabel، numbersLabelstringحسب اللغة؛ '0–9'، و'数字' / '數字' في الصينيةرأسا المداخل التي تبدأ برمز والتي تبدأ برقم.

تأتي أرقام الصفحات من مخطّط الكتاب، كما تأتي أرقام المحتويات: يُدرج computeOutline() وcontentOutline() علامات الفهرس في النص مداخلَ من النوع 'indexMark' (مع indexMark.path وsort وsee وseeAlso وmain وrange وindex)، ويعطي outlineFromDoc() كلًّا منها الصفحة التي وقعت عليها، وهي ما يسجّله البناء في doc.indexMarks ({ sourceStart, pageIndex } لكل علامة). يعيد buildDocument() إخراج المستند الذي يطبع فهرسه بنفسه حتى تستقر الأرقام؛ أما المضيف الذي يُخرج كتابًا فصلًا فصلًا فيسلّم الفصلَ الذي يحوي :::index مخطّطَ الكتاب كله في PostextContent.outline. يقسم tocOutline() وindexOutline() المخطّط إلى ما تقرؤه المحتويات وما يقرؤه الفهرس، ليتمكّن المضيف من ربط كل فصل بالجزء الذي يطبعه: فلا يعيد Sandbox إخراج فصل الفهرس إلا حين تتحرّك علامة، ولا فصل المحتويات إلا حين يتحرّك عنوان. ويخبر contentOutline() كذلك هل يطبع النص فهرسًا (hasIndex).