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

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

الإخراج الصيني

كيف ينضّد Postext النص الصيني أفقيًا وعموديًا: المناطق، وكسر الأسطر، وعروض علامات الترقيم، وضبط الأسطر بين المحارف، وشبكة المحارف، والكتب المجلّدة من اليمين، والأرقام القائمة، والعلامات، والروبي، والواريتشو، والأعداد الصينية، والخطوط

آخر تحديث 2026-09-3026 دقيقةenescazhar

باختصار

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

الصفحة الصينية شبكة من الخانات المربّعة، والقواعد التي تملؤها تتوقف على مكان طباعة الكتاب.

ينضّد Postext النص الصيني عبر الصفحة ونزولًا فيها، من مصدر Markdown واحد وإعداد واحد. فالمحرّك نفسه يضع علامات الترقيم في رواية من البر الصيني الرئيسي حيث يضعها المعيار GB/T 15834، وعلامات طبعة تايوانية حيث يضعها دليل وزارة التربية، ويكسر أسطرها وفق قواعد كل منطقة، ويضبط البياض داخل كل علامة، ويوزّع السطر المضبوط بين محارفه، ويقيم الأرقام القصيرة في العمود العمودي، ويقلب الصفحات المتقابلة في الكتاب ليُفتح من اليمين. تشرح هذه الصفحة ما يفعله المحرّك والإعدادات التي تتحكم فيه. ويسرد مرجع الإعدادات كل مفتاح مع قيمته الافتراضية، ويصف صيغة المستند الترميز.

تتبع القواعد وثيقة W3C Requirements for Chinese Text Layout (clreq)، المستشهد بها أدناه بأرقام أقسامها، والمعايير الوطنية التي تستند إليها. والمصادر مسرودة في آخر الصفحة.

#الخانات والشبكات والمناطق

يملأ حرف الهان (المحرف الصيني) مربّعًا عرضه em واحد وارتفاعه em واحد، وكذلك كل علامة ترقيم كاملة العرض: نصف em للرسم ونصف em للبياض. وحين تُنضَّد المحارف متلاصقة تصطفّ نزولًا في الصفحة كما تصطفّ على طول السطر. لذلك تُحدَّد مساحة النص الصينية بالمحارف والأسطر لا بالمليمترات: حجم المتن، وعدد المحارف في السطر، وعدد الأسطر في الصفحة، والفراغ بين الأسطر، والفاصل بين الأعمدة حين يكون هناك عمودان (clreq §7.1.1). فالسطر ذو 28 محرفًا بحجم 10.5 pt عرضه 294 pt، وكل سطر مضبوط في الكتاب ينتهي في الخانة نفسها.

في الصفحة الأفقية تجري الأسطر من اليسار إلى اليمين ومن الأعلى إلى الأسفل، ويُجلَّد الكتاب من اليسار ككتاب غربي. وفي الصفحة العمودية تجري المحارف من الأعلى إلى الأسفل والأسطر من الحافة اليمنى إلى اليسرى؛ ويُجلَّد الكتاب من اليمين، فتكون صفحته الأولى صفحة يسرى وتُقرأ صفحاته المتقابلة من اليمين إلى اليسار (clreq §7.1.1.1).

صفحات صينية أفقية وعموديةصفحتان متقابلتان مرتين. الكتاب الأفقي مجلّد من اليسار: الصفحة 2 على اليسار والصفحة 3 على اليمين، والأسطر تجري من اليسار إلى اليمين متراصّة من الأعلى. والكتاب العمودي مجلّد من اليمين: الصفحة 2 على اليمين والصفحة 3 على اليسار، والمحارف تجري من الأعلى إلى الأسفل في أعمدة تتقدم من الحافة اليمنى إلى اليسرى.أفقي، مجلّد من اليسار此開卷第一回也作الكعب23الصفحة التاليةالأسطر تجري من اليسار إلى اليمينعمودي، مجلّد من اليمين此開卷第一回也作者自云因الكعب32الصفحة التاليةالأعمدة تبدأ من اليمين
النص نفسه، منضّدًا أفقيًا ومجلّدًا من اليسار، أو عموديًا ومجلّدًا من اليمين.

#المنطقة قبل نوع الكتابة

الحروف المبسّطة والتقليدية مسألة إملاء. أما القواعد الطباعية فتتبع مكان الطباعة: فالكتاب الكلاسيكي بالحروف التقليدية المطبوع في بكين يتبع معيار البر الرئيسي، والرواية التايوانية تتبع معيار تايوان. وتوصي clreq البرمجيات بأن تميّز القواعد الطباعية بحسب «المنطقة» لا بحسب «التقليدي أو المبسّط» (§1.2)، ويقرأ Postext الأمرين كليهما من لغة المستند، config.locale:

  • نوع الكتابة يختار الكلمات المدمجة: 图 أو 圖 للأشكال، و(续) أو (續) بعد تعليق جدول مستمر، و见 أو 見 في الفهرس الأبجدي، والأعداد التي يكتبها قالب العنوان. zh وzh-Hans وzh-CN وzh-SG مبسّطة؛ وzh-Hant وzh-TW وzh-HK وzh-MO تقليدية.
  • المنطقة تختار القيم الطباعية الافتراضية للمفتاح cjk. CN وSG وMY هي البر الرئيسي، وTW هي تايوان، وHK وMO هي هونغ كونغ، والوسم الخالي من المنطقة يتبع نوع كتابته: يُقرأ zh-Hant على أنه تايوان، وzh وzh-Hans على أنهما البر الرئيسي. ويتجاوز cjk.region ذلك.

اكتب الوسم كاملًا: zh-Hans أو zh-Hant، والمنطقة حين تعرفها (zh-Hans-CN، zh-Hant-TW، zh-Hant-HK). يُعلَن الوسم نفسه في HTML (السمة lang على المستند) وفي PDF (/Lang)، ويستعمله المتصفح وقارئ PDF لاختيار أشكال الرسوم الخاصة بالمنطقة: فـ Unicode يعطي 骨 نقطة ترميز واحدة، وخط البر الرئيسي وخط تايوان يرسمانه رسمًا مختلفًا. وفي المستند الصيني يكون تقسيم الكلمات بالواصلة معطّلًا ما لم تفعّله للكلمات اللاتينية.

القيمة الافتراضيةالبر الرئيسي (zh-Hans، zh-CN)تايوان (zh-Hant، zh-TW)هونغ كونغ (zh-HK، zh-MO)
كسر الأسطر (lineBreak)gbbasicbasic
عرض علامات الترقيم (punctuationWidth)kaimingfullwidthfullwidth
علامتان متجاورتان تأخذان 1.5 em (compressAdjacent)نعملانعم
تشذيب الأقواس عند حافتي السطر (trimLineStart)نعملانعم
、,。 عبر الصفحةأسفل يسار الخانةفي الوسطفي الوسط
、,。 نزولًا في الصفحةأعلى يمين الخانةفي الوسطفي الوسط
النقطة الوسطى ·نصف emem واحدem واحد
العلامات التي يجوز تعليقها، مع تفعيل hangingPunctuation、,。.;:?!、,。.، وعبر الصفحة فقط مع 'force'、,。.، وعبر الصفحة فقط مع 'force'
:book[…] (bookTitleMark)《》 حول العنوانخط متموّجخط متموّج
*…* على المحارف الصينية (emphasis)نقاط التوكيدنقاط التوكيدنقاط التوكيد
شكل، جدول مستمر، انظر图، (续)، 见圖، (續)، 見圖، (續)، 見
مجموعات الفهرس الأبجدي (index.groupBy)الحروف الأولى في البينيينعدد الضرباتعدد الضربات

يتبع الصفّان الأخيران نوع الكتابة لا المنطقة. فالكتاب الكلاسيكي بالحروف التقليدية المطبوع في بكين (zh-Hant-CN) يأخذ كسر الأسطر وعلامات الترقيم الخاصة بالبر الرئيسي، ويأخذ 圖 و(續) و見 والمجموعات بحسب عدد الضربات؛ والكتاب المبسّط الموسوم لهونغ كونغ (zh-Hans-HK) يأخذ 图 والمجموعات بحسب البينيين.

تحصل المستندات اليابانية والكورية على قاعدة تعطيل الواصلة وعلى منضِّد CJK، لكن ليست لها قواعدها الخاصة بعد: فهي تُنضَّد بالقيم الافتراضية للبر الصيني الرئيسي، والفقرة المكتوبة بالكانا أو الهانغول تحتفظ بعلامات الاقتباس والشرطات الخاصة بالخط نفسه.

#كتابة فصل صيني بـ Markdown

يُكتب النص الصيني بلغة Markdown نفسها التي يُكتب بها أي نص آخر. وبضع قواعد تجعل ذلك مريحًا:

  • لُفّ الأسطر حيث شئت. نهاية السطر بين محرفين صينيين تُحذف، كما يحذفها CSS، فالمحرر الذي يلفّ الأسطر عند 80 عمودًا لا يضيف مسافات إلى النص. وبين علامتين (”⏎“) يحسم الأمرَ المحرفان الواقعان خلفهما. أما المسافة المكتوبة داخل السطر فتبقى.
  • أنشئ المسافة البادئة بالإعدادات. المسافة البادئة للسطر الأول بعرض محرفين هي bodyText.firstLineIndent: { value: 2, unit: 'em' }؛ ويحذف المحلّل المسافات الإيديوغرافية (U+3000) التي تبدأ بها الفقرة.
  • اكتب الترميز بأحرف ASCII. طريقة الإدخال الصينية تعطي ::: و# و[^1] و{…} و**؛ وهذه تُطبع نصًا، ويبلّغ البناء عن كل سطر منها بالتحذير fullwidthMarkup مع صيغة ASCII الواجب كتابتها. ويجوز أن توضع قيم السمات بين “…” أو 「…」 وأن تستعمل =، ويجوز أن تلي سماتُ العنوان العنوانَ دون مسافة: # 第一回{style="hui"}. وتبقى المفاتيح بأحرف ASCII؛ فالمفتاح المكتوب بالصينية (作者=曹雪芹) يُحذف مع التحذير attributeKeyInvalid.
  • التوكيد والنطاقات. تعمل _ و__ بين المحارف الصينية (中文_斜体_中文). والعلامة ~ بين رقمين أو بين كلمتين صينيتين نطاق، وتبقى كما كُتبت (3~5天، 周一~周五).
  • المعرّفات وأسماء الملفات تحتفظ بالحروف الصينية: الفصل المعنون 第一回 يُخزَّن باسم chapters/001-第一回.md.

التوجيهات الخاصة بالعلامات الصينية والروبي والواريتشو والاتجاه موصوفة أدناه وفي صيغة المستند.

#التنضيد الأفقي

الفقرة التي تحوي من المحارف الصينية أو اليابانية أو الكورية أكثر مما تحوي من المسافات بين الكلمات ينضّدها منضِّد CJK. ولا تُعدّ مسافةً بين كلمتين إلا المسافة الواقعة بين كلمتين لاتينيتين أو رقمين أو رمزين: أما المسافات التي يكتبها نص الويب حول الكلمات اللاتينية والأرقام (2026 年 9 月 28 日، 安装 Node.js 和 Git) فلا تُعدّ، فتُنضَّد مثل هذه الجملة كما لو كُتبت دونها. يقطّع المنضِّد النص إلى وحدات (وحدة لكل محرف، ووحدة لكل كلمة لاتينية أو رقم، ووحدة لكل شرطة أو علامة حذف بعرض 2 em)، ويقيس كلًّا منها مرة واحدة، ويملأ الأسطر واحدًا تلو الآخر. وليس هنا ما يزنه بحث أمثل مثل Knuth–Plass: فكل فجوة تقريبًا بين محرفين موضع صالح للكسر، والقواعد التالية تستبعد القليل الذي لا يصلح. والفقرة اللاتينية التي تقتبس عنوانًا صينيًا تبقى على Knuth–Plass ويجوز أن تنكسر بجوار محارفها الصينية وفق القواعد نفسها. وتنكسر التعليقات وخلايا الجداول والحواشي السفلية والإطارات على مستوى المستند أيضًا.

#كسر الأسطر

قواعد بداية السطر ونهايته (避头尾) تحدد العلامات التي لا يجوز أن تفتتح سطرًا والتي لا يجوز أن تختمه. ويختار cjk.lineBreak واحدًا من المستويات الأربعة في clreq §6.1.1:

المستوىلا يقع أبدًا في بداية السطرلا يقع أبدًا في نهاية السطر
noneلا شيء: الصحف في تايوان وهونغ كونغ تكسر الأسطر في أي موضع.لا شيء.
basicعلامات الوقف والتوقف 、,;:。!?، وعلامات الاقتباس والأقواس الخاتمة ”’」』)〕]》〉، وعلامتا الوصل ~ و— المفردة، والنقاط الوسطى ·‧・، وعلامات التكرار 々، والوحدات % ‰ ° ℃.علامات الاقتباس والأقواس الفاتحة “‘「『(〔[《〈، ورموز العملات ¥ $ €.
gbbasic والخط المائل / (GB/T 15834—2011 §5.1.9).basic والخط المائل.
strictgb والعلامات بعرض 2 em —— ⸺ …… ⋯⋯.gb.

في كل المستويات لا يقسم السطر أبدًا الشرطة بعرض 2 em —— ولا علامة الحذف ……، ولا يفصل رقمًا عن رمزه أو وحدته (¥5,999، 50%، 120㎡، −3 ℃)، ولا يقسم كلمة لاتينية، ولا رقمًا مكتوبًا بأرقام كاملة العرض (12:30)؛ وتبقى علامة الحاشية السفلية و:ref والحرف المرفوع مع المحرف الذي يسبقها؛ ولا ينكسر السطر أبدًا قبل مسافة إيديوغرافية. والاستثناء الوحيد كلمة لاتينية أو عنوان ويب أعرض من السطر كله: تُقسَّم الكلمة عند مقطع، والعنوان عند أحد مفاصله.

حين لا يتسع السطر للمحرف التالي ينظر المنضِّد فيه. فإن جاز أن يفتتح سطرًا نزل إلى السطر التالي ووُزّع السطر المضبوط. وإن لم يجز (فاصلة، أو قوس خاتم، أو المحرف الذي يلي قوسًا فاتحًا) حاول السطر أولًا أن يستوعبه بالتخلي عن بياض علامات الترقيم، وهو الدفع إلى الداخل (push-in) في clreq §6.2.2.3؛ ولا ينتهي السطر أبكر حاملًا المحرف السابق مع العلامة إلى السطر التالي إلا إذا لم يكفِ ذلك البياض لتغطية الفائض. يأتي الدفع إلى الداخل أولًا لأنه يُبقي محارف السطر معًا؛ والدفع إلى الخارج (push-out) هو البديل.

#عروض علامات الترقيم

علامة الترقيم كاملة العرض نصف em للرسم ونصف em للبياض، وما تضبطه الإعدادات هو البياض لا الرسم أبدًا (clreq §6.3.2). وموضع هذا البياض يتوقف على المنطقة. فالبر الرئيسي يضع علامات الوقف والتوقف في زاوية من الخانة، فيلي البياضُ الرسمَ؛ أما تايوان وهونغ كونغ فتضعانها في الوسط، مع ربع em على كل جانب. وتحمل الأقواس وعلامات الاقتباس الفاتحة بياضها قبل الرسم، والخاتمة بعده، في كل المناطق.

موضع علامات الوقف والتوقف في خانتهاأربعة شرائط من الخانات فيها المحارف 甲 乙 丙 丁 تليها نقطة ثم فاصلة ثم علامة وقف ثم نقطتان. نص البر الرئيسي عبر الصفحة يضع العلامات أسفل يسار الخانة؛ ونص البر الرئيسي نزولًا في الصفحة يضعها أعلى يمينها. ونص تايوان وهونغ كونغ يضعها في الوسط في الاتجاهين.عبر الصفحةالبر الرئيسي甲乙丙丁تايوان وهونغ كونغ甲乙丙丁نزولًا في الصفحةالبر الرئيسي甲乙丙丁تايوان وهونغ كونغ甲乙丙丁
يأخذ الرسم نصف الخانة؛ والمنطقة تحدد أيّ النصفين.

يختار cjk.punctuationWidth مقدار البياض الذي تحتفظ به العلامة:

الأسلوبداخل السطرفي نهاية السطرأين يُستعمل
fullwidth 全角式كل علامة em واحد.em واحد.كتب تايوان وهونغ كونغ؛ ومعظم نصوص الويب.
kaiming 开明式。.?! em واحد؛ و,、;: والأقواس وعلامات الاقتباس والنقاط الوسطى نصف em.كل علامة نصف em.معظم كتب البر الرئيسي؛ والقيمة الافتراضية في 方正书版.
lineEndHalf 行末半角كل علامة em واحد.كل علامة نصف em.GB/T 15834—2011 §5.1.10 مقروءًا حرفيًا.
halfwidth 半角式كل علامة نصف em.نصف em.المعاجم.

ويعمل إعدادان آخران على العلامات في أي أسلوب. مع compressAdjacent تتخلى العلامتان المتجاورتان عن البياض بينهما، فتأخذ 。」 أو 》( أو ,「 em ونصفًا بدل اثنين. والعلامة 。 أو , الموضوعة في الوسط، كما تضعها تايوان وهونغ كونغ، تحتفظ بالـ em كاملًا قبل القوس الخاتم، فتبقى 。」 بعرض 2 em هناك؛ أما 》( و」, و,「 فتتقارب مع ذلك. ومع trimLineStart يتخلى القوس الفاتح الذي يبدأ به السطر عن نصفه الأمامي، فيصطفّ حبره مع حافة النص، ويتخلى القوس الخاتم الذي ينتهي به السطر عن نصفه الخلفي. والإعدادان مفعّلان للبر الرئيسي وهونغ كونغ ومعطّلان لتايوان، التي تُبقي كتبها كل علامة في خانتها.

علامات الترقيم كاملة العرض وعلى أسلوب كايمينغالسطر 曹雪芹著《红楼梦》(又名《石头记》)。 منضّدًا مرتين. في العرض الكامل تأخذ كل علامة em واحدًا ويبلغ طول السطر 19 em؛ والنصف الأبيض من كل علامة مظلَّل. وفي أسلوب كايمينغ تأخذ الأقواس نصف em لكل منها، والنقطة في نهاية السطر نصف em، فيبلغ طول السطر نفسه 15.5 em.العرض الكامل (全角式)曹雪芹著《红楼梦》(又名《石头记》)。19 emالبياض المتخلّى عنهكايمينغ (开明式)曹雪芹著《红楼梦》(又名《石头记》)。15.5 em
السطر نفسه بالعرض الكامل (19 em) وبأسلوب كايمينغ (15.5 em).

علامات الاقتباس وعلامة الحذف والشرطة والنقطة الوسطى مشتركة مع النص اللاتيني، والخط اللاتيني يرسمها ضيقة. وفي النص الصيني (حين يكون أقرب محرف على كلا الجانبين صينيًا) تأخذ صندوق علامة صينية مهما كان تقدّم الخط: “ و” em واحد لكل منهما (نصف em في أسلوب كايمينغ)، و…… بعرض 2 em في الوسط، و· نصف em في البر الرئيسي وem واحد في غيره. وتُطبع الشرطة الصينية 破折号 (——) خطًا واحدًا متصلًا على امتداد الـ em اثنين، مرفوعًا إلى منتصف المحارف. وبجوار الكلمات اللاتينية تحتفظ العلامات نفسها بعروضها في الخط، فتُنضَّد علامات الاقتباس الإنجليزية في 他说:He said “yes” and left. على الطريقة الإنجليزية.

نضّد الكتاب بخط من منطقته: Noto Serif SC أو Source Han Serif SC للبر الرئيسي، وTC لتايوان، وHK لهونغ كونغ. فالإخراج يحدد جانب العلامة الذي يحمل البياض من المنطقة لا من الخط، والخط التقليدي تحت وسم البر الرئيسي يضغط الجانب الخطأ من علاماته الموضوعة في الوسط.

#علامات الترقيم المعلّقة

مع hangingPunctuation: 'allow' يجوز للفاصلة أو النقطة التي كانت ستفتتح السطر التالي، ولا يستطيع الدفع إلى الداخل استيعابها، أن تتدلّى خارج نهاية السطر (clreq §6.1.3). أما 'force' فيعلّق مثل هذه العلامة كلما انتهى بها سطر. ولا تُعلَّق إلا علامة واحدة على الأكثر، ولا تُعلَّق أبدًا علامة ملاصقة لعلامة أخرى (。」). ومع 'allow' لا تُعلَّق أي علامة في نص تايوان أو هونغ كونغ الأفقي، لأن علاماته الموضوعة في الوسط ستبدو مقطوعة؛ أما 'force' فيعلّقها هناك أيضًا. ومعظم الكتب الصينية لا تعلّق علامات الترقيم؛ وتوصي بها clreq مع شبكة المحارف. والقيمة الافتراضية 'none'.

#ضبط الأسطر بين المحارف

يُضبط متن النص الصيني، والسطر المضبوط يُوزَّع بين محارفه. والسطر الذي ليس آخر فقرته يُملأ بالترتيب الوارد في clreq §6.2.2.4:

  1. المسافات بين الكلمات اللاتينية، حتى نصف em لكل منها.
  2. المسافات بين الهان واللاتينية (القسم التالي)، حتى نصف em لكل منها.
  3. كل فجوة بين المحارف، بالتساوي: بين محرفين من الهان، وبين محرف وعلامة، وبين الهان وكلمة لاتينية. ولا يكون ذلك أبدًا داخل كلمة لاتينية أو رقم أو علامة بعرض 2 em، ولا بجوار علامة وصل (~، أو — مفردة) أو خط مائل.

السطر الذي يحتاج إلى أكثر من نصف em بين محارفه (أو أكثر من bodyText.maxJustifyTracking حين يُضبط) يأخذ هذا المقدار وينتهي دون عرض السطر الكامل؛ ويبلّغ البناء عنه بتحذير المحتوى cjkLooseLine، الذي يسمّيه Sandbox، بيئة التجربة في المتصفح، سطر CJK أقصر من عرضه. والسبب المعتاد كلمة لاتينية طويلة أو عنوان ويب لا يمكن رفعه إلى السطر. ويُنضَّد آخر سطر في الفقرة دون توزيع. وفي التقسيم بالواصلة وضبط الأسطر التفاصيل، ومنها كيف يُحتسب سطر CJK في تمييز الأسطر المتخلخلة وكيف تُطيل موازنة الأعمدة الفقرة الصينية سطرًا واحدًا.

لا تنتهي الفقرة بسطر فيه محرف واحد، وحده أو مع العلامات التي تختمه (孤字، كما في 後。). فالسطر الذي فوقه يتخلى عن آخر محارفه، مع أي علامة يجب أن تبقى معه، ويُوزَّع حتى عرض السطر؛ وإذا تطلّب ذلك أكثر من الحد الأقصى للتتبّع بقي المحرف وحده. ويتبع ذلك bodyText.avoidRunts، المفعّل افتراضيًا، في اتجاهي الكتابة كليهما؛ ولا تُنشئ موازنة الأعمدة مثل هذا السطر أبدًا.

#المسافة بين الهان واللاتينية

يضع cjk.latinSpacing ربع em بين حرف من الهان وحرف لاتيني أو رقم مجاور له (clreq §6.3.3): فالنص 1999年的iPhone 15售价为¥5,999。 يُطبع بفجوة بعد 1999، وقبل iPhone 15 وبعده، ودون فجوة قبل ¥ لأنه رمز. ولا مسافة في بداية السطر أو نهايته، ولا بين كلمة لاتينية وعلامة صينية (用iPhone,)، ولا داخل الأقواس الصينية ((iPhone)). والمسافة التي كتبها المؤلف عند مثل هذا الحدّ، كما في كثير من نصوص الويب، تُستبدل بمسافة الهان واللاتينية، فيُنضَّد 用 iPhone 拍照 و用iPhone拍照 على نحو واحد. وفي السطر المضبوط تتسع المسافة حتى نصف em قبل توزيع المحارف، وتضيق إلى ثُمن em في السطر الذي يستوعب محرفًا إضافيًا. وهذه المسافة ليست نصًا: فالنسخ والبحث والنص المستخرج من PDF تقرأ 用iPhone拍照 كما كُتب. والقيمة 0 تعطّلها.

#شبكة المحارف

يحدد cjk.grid مساحة النص على الطريقة الصينية، بعدد المحارف في السطر وعدد الأسطر في الصفحة:

cjk: { grid: { enabled: true, charsPerLine: 28, linesPerPage: 28, show: true } }

يصبح كل عمود charsPerLine em من حجم المتن، ومساحة النص linesPerPage سطرًا من ارتفاع سطر المتن. وتعمل الهوامش المضبوطة في page.margins حدودًا دنيا: تتوسط مساحة النص الحيّز الذي تتركه، ويزيد كل هامش بنصف الفرق. ومع عمودين يُقرَّب الفاصل بين الأعمدة إلى عدد صحيح من em. والعدد الأكبر مما يتسع يُخفَّض ويُبلَّغ عنه (cjkGridClamped)؛ والعدد غير المضبوط يأخذ أكبر ما يتسع. ويرسم show الشبكة (稿纸) على الشاشة، مربّعًا لكل موضع محرف؛ ويُسقطها PDF ما لم يُعطَ renderToPdf القيمة characterGrid: true.

الكتب المعتادة، بحجم 五号 (10.5 pt) وفراغ 6 pt بين الأسطر، أي ارتفاع سطر 16.5 pt:

  • 大32开، 140 × 203 mm، 28 × 28 محرفًا: عرض سطر 103.7 mm ومساحة نص 163 mm.
  • 16开، 184 × 260 mm، عمودان من 23 محرفًا بحجم 小五 (9 pt، وأسطر 13.5 pt) مع فاصل بين العمودين بعرض محرفين.

توصي clreq بأسطر من 17 إلى 40 محرفًا، وبحد أقصى 48 عبر الصفحة و55 نزولًا فيها، وبفراغ بين الأسطر من نصف محرف إلى محرف كامل (clreq §7.1.1.5). وللأحجام الصينية أسماء: 五号 10.5 pt لنص الكتب، و小五 9 pt للصحف والحواشي، و小四 12 pt، و四号 14 pt، و三号 16 pt، و二号 22 pt. ويأخذ Postext الأحجام بالنقاط؛ فاكتب حجم 号 بقيمته بالنقاط.

#الترقيم

كل إعداد للترقيم يقبل أساليب الأعداد الصينية في CSS Counter Styles: أرقام الصفحات، والقوائم المرقّمة، وعدّادات الأشكال، وقوالب العناوين، والأجزاء، وتسميات صفحات PDF. يكتب simp-chinese-informal 一 و十二 و一百零一؛ وtrad-chinese-informal الشيء نفسه مع 萬 و億؛ وcjk-decimal 二〇二六؛ وsimp-chinese-formal وtrad-chinese-formal الأعداد المالية 壹贰叁؛ وcircled-decimal ①؛ وهناك أيضًا الجذوع السماوية 甲乙丙 والفروع الأرضية 子丑寅. وفي القالب يدلّ 一 على الأعداد غير الرسمية لنوع كتابة المستند، فيخدم قالب واحد الطبعتين كلتيهما:

headings: {
  levels: [{ level: 1, numberingTemplate: '第{1:一}回', numberSeparator: ' ' }],
},

يعطي ذلك من 第一回 إلى 第一百二十回، تليها مسافة إيديوغرافية قبل العنوان. ويُكتب البيتان المتقابلان في عنوان الفصل (回目) بفاصل أسطر داخل العنوان، # 甄士隱夢幻識通靈 \\ 賈雨村風塵懷閨秀. وتصميم العنوان يطبع {titleText} على سطرين، نصفًا في كل سطر: شريط صفحة الافتتاح، أو advancedDesign داخل العمود على المستوى أو على نمط عنوان (انظر التصميم الممتد والمتقدم). وفي كل موضع آخر يُوصل النصفان بمسافة إيديوغرافية: في المحتويات والترويسات وإشارات PDF المرجعية، وفي العنوان المنضّد في العمود دون تصميم، حيث يلتفّ العنوان الموصول عندئذ حيث ينتهي عرض السطر، وكثيرًا ما يكون ذلك داخل النصف الثاني. والفاصل بين محرف صيني ورقم أو كلمة لاتينية (# 示例市出版协会关于举办 \\ 2026年中文排版实务培训班的通知) يُنضَّد مسافةَ الهان واللاتينية في العمود والمحتويات والترويسات، وتصله إشارات PDF المرجعية وعنوان المستند دون شيء. ولا تصميم لأيٍّ من المثالين أدناه، فأعطِ العنوان تصميمًا حين ينبغي أن يقف البيتان على سطرين. ويكتب {1:words} الرقم بالكلمات الصينية في المستند الصيني (十二)، و{1:ordinal} مع 第 (第十二). والجزء المرقّم :::part{number="卷三"} يُقرأ 3 في العناصر النائبة التي تحتاج إلى رقم.

تتبع القوائم المرقّمة تسلسل GB/T 15834—2011 (一、 (一) 1. (1) ①) مع prefix قبل الرقم:

orderedLists: {
  levels: [
    { level: 1, numberFormat: 'simp-chinese-informal', separator: '、' },
    { level: 2, numberFormat: 'simp-chinese-informal', prefix: '(', separator: ')' },
    { level: 3, numberFormat: 'arabic', separator: '.' },
    { level: 4, numberFormat: 'arabic', prefix: '(', separator: ')' },
    { level: 5, numberFormat: 'circled-decimal', separator: '' },
  ],
},

أنواع الأشكال والجداول الصينية المدمجة تُرقَّم بحسب الفصل مع واصلة (图1-1، 表3-2). ولا تضع التعليقات الصينية مسافة بين التسمية والرقم، وتضع مسافة إيديوغرافية قبل النص: captionStyle: { labelNumberGap: '', labelSeparator: ' ' } يعطي 图1-1 大观园图، ويُقرأ :ref 图1-1. ويكتب PDF تسميات صفحات صينية، فيُظهر مربّع الصفحة في القارئ 一 و二 و三 حيث تطبعها الصفحات.

يجمع الفهرس الأبجدي (index) في الكتاب الصيني مداخله بحسب الحرف الأول في البينيين (المبسّطة) أو بحسب عدد الضربات (التقليدية)، من بيانات أداة الترتيب (collator) نفسها (index.groupBy، والقيمة الافتراضية 'auto'). والمحرف ذو القراءات المتعددة يُدرج تحت القراءة المعتادة لدى أداة الترتيب؛ فأعطِ مثل هذا المدخل مفتاح sort بمحارف تُقرأ كما تريد: :index[重阳]{sort="崇阳"}. انظر الفهرس الأبجدي.

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

يرقّم كتاب البر الرئيسي حواشيه (页下注) بأرقام في دوائر تبدأ من جديد في كل صفحة: ① هي الحاشية الأولى في كل صفحة، منضّدة على خط الأساس في النص وفي رأس الحاشية. ومعظم كتب تايوان وهونغ كونغ تفعل الشيء نفسه.

footnotes: { numberFormat: 'circled-decimal', numbering: 'page' },

مع circled-decimal تُنضَّد العلامة داخل السطر افتراضيًا (markerPosition: 'auto')؛ ويجعلها markerSize: { value: 0.75, unit: 'em' } أصغر من النص. والأرقام بعد 50 لا صيغة دائرية لها فتُكتب بالأرقام العشرية. ورقم الحاشية يتوقف على الصفحة التي تقع فيها، لذلك يُخرَج المستند المرقّم بحسب الصفحة فصلًا فصلًا أولًا، ثم يُرقَّم حيث وقعت حواشيه، ثم يُخرَج مرة أخرى؛ وعلامة الدائرة لها العرض نفسه مهما كان رقمها، فلا يحرّك البناء الثاني أي سطر. ويبدأ numbering: 'column' الترقيم من جديد في كل عمود، للكتب التي تنضّد حواشيها عمودًا عمودًا. وتبقى العلامة، مثل الحرف المرفوع، مع المحرف الذي يسبقها ولا تفتتح سطرًا أبدًا، وفي النص العمودي تقف قائمة في خانة خاصة بها. ويسرد الإعدادات الافتراضية للصينية في Sandbox هذه الإعدادات ضمن تغييراته. انظر الحواشي السفلية.

#الكتابة العمودية

يجعل layout.writingMode: 'vertical-rl' الكتاب منضّدًا نزولًا في الصفحة. ويسري كل التنضيد الموصوف أعلاه دون تغيير، على امتداد السطر نزولًا بدل امتداده عرضًا؛ وما يتغير هو الصفحة المحيطة به وطريقة وقوف كل محرف.

#الصفحة مُدارة ربع دورة

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

  • عمود التخطيط هو طبقة (tier، 栏). ويعطي layoutType: 'double' طبقتين متراصّتين من الأعلى إلى الأسفل، تُملآن بدءًا من أعلى اليمين، ويكون خط الفصل بين الأعمدة خطًا أفقيًا بينهما. ولا تُوازَن الطبقات في نهاية الفصل (clreq §7.1.3.4).
  • أعلى التدفق هو الحافة اليمنى للورقة: صفحة افتتاح الفصل شريط نازل على يمين الصفحة، والعنصر العائم في الأعلى يقف على اليمين، والعائم في الأسفل على اليسار، والحواشي السفلية تقع عند الطرف الأيسر من كل طبقة.
  • تحتفظ page.margins بأسمائها على الورقة. وتبقى الترويسات وأرقام الصفحات وعلامات القص والخلفية على الورقة أيضًا.
  • يجوز لنمط العنوان أن يضبط اتجاه كتابة خاصًا به، فيمكن أن يلي كتابًا عموديًا ملحقٌ أو فهرس أفقي.

يجد المضيف الذي يقرأ الإخراج VDTPage.flow في الصفحة العمودية، ودوالّ مساعدة (flowToPage، pageToFlow، flowRectToPage) للتحويل بين التدفق والورقة. انظر الكتابة العمودية في مرجع الإعدادات.

#التجليد من اليمين

القيمة الافتراضية لـ page.binding هي 'auto'، والتلقائي هو الحافة اليمنى في الكتاب العمودي. وتبقى الصفحة 1 فردية وتبقى الصفحة الفردية الأولى، فتحتفظ إعدادات الزوجية و:::pagebreak{parity="odd"} وأعداد الصفحات بمعناها؛ وما يتغير هو الجانب الذي تقع فيه الصفحة الفردية، أي الصفحة اليسرى من الصفحتين المتقابلتين (clreq §7.1.3.3). ومع الهوامش المنعكسة تحمل الصفحات الفردية هامشها الداخلي على اليمين. ويعرض Sandbox الصفحات المتقابلة بالترتيب 3 | 2، والصفحة 1 وحدها على يسار الكعب، ويُجري عارض HTML فيه الصفحات من اليمين إلى اليسار. ويطلب PDF الشيء نفسه من العارضات (/Direction /R2L و/PageLayout /TwoPageRight)؛ ويتبعه Acrobat وFoxit، ولا يتبعه العارض المدمج في Chrome. ويمكن تجليد الكتاب الأفقي من اليمين أيضًا. انظر التجليد.

#كيف يقف كل محرف

أيّ المحارف يقف قائمًا وأيّها يُدار يتبع خاصية الاتجاه العمودي في Unicode (UAX #50)، وفوقها الأعراف الصينية الواردة في الملحق A من clreq:

  • حروف الهان والكانا والبوبوموفو والحروف كاملة العرض تقف قائمة، em واحد لكل منها.
  • الكلمات اللاتينية والأرقام الأطول من حد الوقوف (القسم التالي) تُدار ربع دورة باتجاه عقارب الساعة وتحتفظ بعروضها الأفقية.
  • تأخذ الأقواس وعلامات الاقتباس صيغها العمودية (﹁﹂﹃﹄︵︶). وفي نص البر الرئيسي تُقرأ “ ” ‘ ’ على هيئة 『』「」، كما ينص GB/T 15834—2011 §5.2.3.
  • لا تُدار علامات الوقف والتوقف أبدًا، مع أن UAX #50 يدير :; في اليابانية. ويضع خط البر الرئيسي 、,。. في أعلى يمين الخانة و!?:; في نصفها الأيمن (GB/T 15834—2011 §5.2.1)؛ وتضعها خطوط تايوان وهونغ كونغ في الوسط.
  • الشرطات وعلامات الحذف وشرطة الموجة تجري نزولًا في العمود؛ والشرطة الصينية 破折号 خط واحد على محور المحارف.
  • الرموز التي يجعلها Unicode قائمة (× © ± § ℃ ①) تقف في خانة خاصة بها، حتى داخل رقم: 30×40 هي 30 و× و40، كلها قائمة.

تعمل عروض علامات الترقيم والضغط والتعليق ومسافة الهان واللاتينية على امتداد السطر نزولًا كما تعمل عليه عرضًا: فالعلامة 、 بأسلوب كايمينغ تأخذ نصف خانة، و」「 تأخذان خانة ونصفًا، و:;?! تحتفظ بخانة كاملة في كل المناطق.

#الأرقام القائمة

الرقم القصير يُقرأ أفضل قائمًا في خانة واحدة منه مستلقيًا على جنبه: tate-chu-yoko (縱中橫، clreq §2.1.3). ويحدد cjk.uprightDigits عدد الأرقام التي يجوز أن يحويها مثل هذا العدد: 2 افتراضيًا، أو 3 أو 4، أو 0 لإلغاء ذلك. فإما أن يقف العدد كله في الخانة وإما ألا يقف منه شيء، فمع القيمة الافتراضية يُنضَّد 2026年9月28日 بحيث يكون 2026 على جنبه، و9 قائمًا، و28 متجاورَي الرقمين في خانة واحدة؛ وتبقى A4 و3.14 و10,000 على جنبها مع حروفها وفواصلها. والعدد داخل جملة إنجليزية يتبعها على جنبه: في chapters 49 and 32 يجري العددان مع الكلمات المحيطة بهما، أما العدد المجاور لمحرف صيني فيقف (第 3 回، 用iPhone 15拍攝)، وكذلك أعداد الوقت والنتيجة والتاريخ في النص الصيني، التي تقود نقطتاها وواصلاتها إلى محارف صينية (上午12:30开会، 比分3:2). وثلاث علامات تتجاوز الإعداد يدويًا:

第:tcy[120]回,:upright[GDP]增長:sideways[12]倍。

يضع :tcy[…] نصه في خانة قائمة واحدة، مضغوطًا إلى em حين يكون أعرض؛ ويقيم :upright[…] كل محرف في خانة خاصة به، للاختصار الذي يُقرأ حرفًا حرفًا؛ ويدير :sideways[…] المقطع. وفي النص الأفقي لا تغيّر شيئًا. والنصوص الأدبية تكتب الأعداد عادةً بالأعداد الصينية، التي لا تحتاج إلى شيء من هذا.

#الأشكال والجداول والتعليقات

تقف الأشكال والجداول قائمة في الكتاب العمودي. يملأ الشكل ارتفاع طبقته بقدر ما يسمح تعليقه، والعرض الذي يأخذه على الورقة هو الحيّز الذي يستعمله في التدفق؛ ويُنضَّد تعليقه أفقيًا تحته، وكذلك خلايا الجدول (تلاحظ clreq أن التعليقات والجداول وأرقام الصفحات تحتفظ عادةً بالكتابة الأفقية، §2.1.1). والجدول الأطول من طبقته تُقطَّع صفوفه عبر الطبقات. ويُتجاهل placement.rotate حيث يُستشهد بالشكل أول مرة في نص عمودي، مع التحذير rotateIgnoredVertical.

#الترويسات وأرقام الصفحات

تبقى الترويسات وأرقام الصفحات على الورقة وتُنضَّد أفقيًا، كما في معظم الكتب العمودية (clreq §7.2). وهناك عُرفان آخران شائعان، ويمكن من أجلهما تنضيد عنصر نص عموديًا (writingMode: 'vertical-rl') وتثبيته بالهامش الخارجي للصفحة (anchor.to: 'outer'):

  • ترويسات الحافة الخارجية: عنوان الفصل نازلًا في الهامش الخارجي، يبدأ على بعد نحو أربعة محارف تحت رأس مساحة النص، ورقم الصفحة ينتهي على بعد نحو خمسة محارف فوق أسفلها، بالأعداد الصينية، بنحو 80 % من حجم المتن. ويضيفها Sandbox بخطوة واحدة (الترويسة › ترويسات الحافة الخارجية (عمودية)).
  • رقم الصفحة في الزاوية السفلية الخارجية، كما تطلب قواعد تايوان للكتب العمودية: عنصر أفقي في التذييل أسفل يسار الصفحات الفردية وأسفل يمين الصفحات الزوجية في كتاب مجلّد من اليمين.

القالب موجود في مرجع الإعدادات، تحت عناصر النص العمودية.

#النص العمودي في كل مُخرَج

ترسم اللوحة (Canvas) الصفحة العمودية بنفسها، فتعيد تدوير كل محرف قائم حول مركز خانته. ولاستعمال الصيغ العمودية لعلامات الترقيم الموجودة في الخط، يحمّل المضيف في المتصفح نسخة توأمًا من كل عائلة مع تفعيل الميزة vert في OpenType (loadVerticalAlternates)؛ ويفعل Sandbox ذلك لكل عائلة في الكتاب العمودي، ودون النسخة التوأم يدير المحرّك العلامات أو ينقلها بنفسه. ويُظهر PDF المحارف القائمة عبر قاموس خط ثانٍ في الوضع العمودي (Identity-V) فوق الملف المضمَّن نفسه، مشكَّلًا بالميزة vert، فيحدد القرّاء العمود وينسخونه سطرًا واحدًا ولا يُضمَّن شيء مرتين؛ ويعلن PDF الموسوم WritingMode /TbRl. ويضع HTML كل سطر في صندوق مع writing-mode: vertical-rl وtext-combine-upright للأعداد في خانة واحدة. وتضع المُخرَجات الثلاثة كل محرف في حدود أجزاء قليلة من مئة من em من الإخراج العمودي في HarfBuzz.

#العلامات والشروح

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

此事:dots[不可]輕忽。:name[賈寶玉]與:name[林黛玉]讀:book[西廂記]。
 
{滿紙|mǎn|zhǐ}荒唐言,:ruby[一把]{rt="yì bǎ"}辛酸淚!
 
寶玉:warichu[甲戌側批:此是第一首標題詩。]{open="〔" close="〕"}道:

#نقاط التوكيد

يضع :dots[…] نقطة توكيد واحدة (着重号) تحت كل محرف عبر الصفحة وعلى يمينه نزولًا فيها، ولا شيء على علامات الترقيم (clreq §5.3.1؛ GB/T 15834—2011 §4.12، و§5.2.5 للنص العمودي). ويختار style نقطة أو دائرة مفرغة أو نقطة سمسمية. وتوكيد Markdown يفعل الشيء نفسه في المستند الصيني: cjk.emphasis قيمته 'dots' افتراضيًا هناك، فيطبع *不可* نقاطًا، إذ لا مائل في الخط الصيني يُرجَع إليه. وتحتفظ الحروف اللاتينية داخل التوكيد نفسه بمائلها.

#علامة أسماء الأعلام وعلامة عناوين الكتب

يرسم :name[…] خط أسماء الأعلام (专名号) تحت النص، وعلى يساره في النص العمودي. ويطبع :book[…] علامة عناوين الكتب (书名号) كما يحدد cjk.bookTitleMark: 《》 حول العنوان، كما تكتبه كتب البر الرئيسي الحديثة (و〈〉 لعنوان داخل عنوان آخر)، أو الخط المتموّج تحته في الطبعات الكلاسيكية والتايوانية، أو لا شيء. لذلك يخدم مصدر واحد طبعة حديثة من البر الرئيسي وطبعة كلاسيكية. وحيث يلتقي اسمان أو عنوانان، يتخلى كل خط عن ثُمن em عند الملتقى، فيُقرأ :name[賈寶玉]:name[林黛玉] اسمين.

#الروبي: البينيين والزويين

يضع :ruby[紅樓]{rt="hóng lóu"} قراءة فوق كل محرف؛ وحين يتساوى عدد القراءات وعدد المحارف يجوز أن ينكسر السطر بينها، ويضع group قراءة واحدة فوق الكلمة كلها. والصيغة المختصرة {紅樓|hóng|lóu} تُقرأ بالطريقة نفسها حين تحوي القاعدة محارف صينية، فيبقى {x|x>0} في النثر اللاتيني نصًا. والقراءات بالبوبوموفو (الزويين) تقف في عمود على يمين كل محرف، مع علامة النغمة بجانب العمود ونصف حبرها فوق الرمز الأخير (clreq §5.5.3.3)؛ أما البينيين فيوضع فوق النص عبر الصفحة وعلى يمينه نزولًا فيها. والقراءة الأعرض من قاعدتها توسّع صندوق القاعدة، مطروحًا منه ربع حجم الروبي الذي يجوز أن تمتد به فوق محرف مجاور بلا قراءة. ويضبط cjk.ruby الخط والحجم (نصف النص افتراضيًا) واللون والجانب الافتراضي.

#الواريتشو

يضع :warichu[…] حاشية في صفّين بنصف الحجم داخل السطر (双行夹注)، وهي صورة التعليقات في الطبعات الكلاسيكية. يأخذ الصف العلوي نصف كل جزء على الأقل، فلا يكون الصف السفلي أطول أبدًا، ولا تفتتح الصفَّ السفلي أبدًا علامةٌ لا يجوز أن تفتتح سطرًا. والحاشية الطويلة تملأ ما بقي من السطر وتستمر في السطر أو العمود أو الصفحة التالية، ولا توضع أقواسها إلا قبل الصف الأول وبعد الصف الأخير. وفي النص العمودي يُقرأ العمود الفرعي الأيمن أولًا. ويضبط cjk.warichu الحجم واللون والأقواس الافتراضية.

#المتّسع في تباعد الأسطر

لا تتغير خطوة الأسطر أبدًا: النقاط والخطوط والقراءات تعيش في الفجوة بين الأسطر. ويحذّر البناء حين تكون فجوة الفقرة أضيق مما تحمله: أقل من نصف em مع علامات على جانب واحد، وخمسة أثمان مع علامات على الجانبين (clreq §5.6.1)، ويُبلَّغ عن ذلك بالتحذير cjkMarksExceedLeading، وبالتحذير rubyExceedsLeading للقراءات الأطول من الفجوة. أعطِ الفقرات المشروحة نمط فقرة بتباعد أسطر أكبر. وتُرسم العلامات والقراءات في الفقرات والعناوين وعناصر القوائم والاقتباسات والإطارات؛ أما التعليقات وخلايا الجداول والحواشي والترويسات فتطبع النص دونها.

#الخطوط

ينضّد Postext كل نمط بعائلة خط واحدة ولا يلجأ إلى عائلة أخرى عند غياب محرف: فـ Noto Serif TC لا يستعير من Noto Serif SC. ويجب أن يغطي الخط كل محرف يطبعه الكتاب، بما في ذلك علامات الترقيم.

  • في المتصفح وفي Sandbox تأتي العائلة الصينية من Fontsource في نحو مئة ملف لكل وزن، يحمل كلٌّ منها جزءًا من المحارف ويُعلَن بـ unicode-range الخاص به؛ ويحمّل المتصفح الملفات التي يمسّها النص. وتبويب PDF في Sandbox يفعل الشيء نفسه: يقرأ مزوّد الخطوط فيه ورقة أنماط العائلة ويسلّم renderToPdf الشرائح التي تستعملها الصفحات، فتُضمَّن كل منها مجموعةً جزئية. والمجموعات الجزئية المسمّاة في Fontsource ناقصة (فـ chinese-traditional في Noto Serif TC ليس فيها ,!? كاملة العرض)، فاستعمل الشرائح المرقّمة.
  • في الحزمة وزّع الخطوط مقتطعة على محارف الكتاب نفسه، بما فيها علامات الترقيم والصيغ العمودية. واقتطع ملفًا ثابتًا لكل وزن من الخط المتغير: فـ pdf-lib يضمّن النسخة الافتراضية من الخط المتغير، فيُطبع العنوان الغامق بالوزن الافتراضي (variableFontDefaultInstance). وفضّل إصدارات TrueType (Google Fonts، Fontsource) على ملفات .otf بصيغة CFF، التي يضمّنها postext-pdf كاملة، حتى 25 MB للوزن (cffEmbeddedWhole). واحتفظ بميزات الإخراج (vert، vrt2) وبالمقاييس العمودية (vhea، vmtx) عند الاقتطاع: فمنها تأتي علامات الترقيم العمودية.
  • الرسوم الغائبة تُطبع مربّعًا فارغًا من الخط. ويبلّغ renderToPdf عنها لكل خط (missingGlyph)، ويسردها Sandbox في لوحة الفحوص بعد كل PDF.
  • خط المنطقة. ترسم Noto Serif SC وTC وHK نقاط الترميز نفسها بأشكال منطقتها، وتضع علامات الوقف والتوقف حيث تضعها منطقتها. وينبغي أن يتوافق خط الكتاب ولغته.
  • لا مائل. لا مائل في الخطوط الصينية؛ وسيُميل المتصفح وPDF الرسوم. ضع التوكيد بالنقاط أو بخط كاي (楷体، مثل LXGW WenKai) أو بالغامق.

تتوزع الأصوات التقليدية للكتاب الصيني على العائلات: سونغ (宋体، Noto Serif) للنص، وهَي (黑体، Noto Sans) للعناوين والتسميات، وكاي (楷体) للاقتباسات والشعر والمقدمات، وفانغسونغ (仿宋) للوثائق الرسمية. وفي الخطوط الصينية واليابانية والكورية في مرجع الإعدادات شيفرة مزوّد الخطوط.

#إعدادان كاملان

#رواية من البر الرئيسي، منضّدة أفقيًا

كتاب بقطع 大32开، 28 × 28 محرفًا من Noto Serif SC بحجم 10.5 pt، وفصول مرقّمة 第一章، وحواشٍ مرقّمة ① في كل صفحة، وعلامات ترقيم بأسلوب كايمينغ وكسر أسطر GB مأخوذان من اللغة:

import type { PostextConfig } from 'postext';
 
const pt = (value: number) => ({ value, unit: 'pt' as const });
const mm = (value: number) => ({ value, unit: 'mm' as const });
const ink = { hex: '#1a1a1a', model: 'hex' as const };
 
const config: PostextConfig = {
  locale: 'zh-Hans-CN',
  page: {
    sizePreset: 'custom', width: mm(140), height: mm(203),
    margins: { top: mm(18), bottom: mm(20), left: mm(16), right: mm(20), mirror: true },
  },
  layout: { layoutType: 'single' },
  bodyText: {
    fontFamily: 'Noto Serif SC', fontSize: pt(10.5), lineHeight: pt(16.5),
    textAlign: 'justify', firstLineIndent: { value: 2, unit: 'em' },
    color: ink, boldColor: ink, italicColor: ink,
  },
  headings: {
    fontFamily: 'Noto Sans SC', color: ink,
    levels: [
      { level: 1, fontSize: pt(16), numberingTemplate: '第{1:一}章', numberSeparator: ' ',
        breakBefore: { enabled: true, parity: 'any' } },
    ],
  },
  captionStyle: { labelNumberGap: '', labelSeparator: ' ' },
  footnotes: { numberFormat: 'circled-decimal', numbering: 'page' },
  cjk: { grid: { enabled: true, charsPerLine: 28, linesPerPage: 28 } },
  header: { elements: [] },
  footer: { elements: [
    { kind: 'text', id: 'folio', content: '{pageNumber}', fontFamily: 'Noto Serif SC', fontSize: pt(9),
      overflow: 'clip', color: ink, placement: { anchor: { to: 'container', edge: 'center' } } },
  ] },
};

لا يضبط المفتاح cjk إلا الشبكة: أما المنطقة وكسر الأسطر وعروض علامات الترقيم والضغط ومسافة الهان واللاتينية فتتبع zh-Hans-CN. وتُفتتح الفصول في أي صفحة، كما في معظم روايات البر الرئيسي (另页起).

#رواية تايوانية، منضّدة عموديًا ومجلّدة من اليمين

كتاب بقطع 25開 (148 × 210 mm) بخط Noto Serif TC، 38 محرفًا في العمود، وفصول مرقّمة 第一回، وترويسات على الحافة الخارجية وأرقام صفحات صينية؛ وعلامات الترقيم كاملة العرض الموضوعة في الوسط وكسر الأسطر الأساسي في تايوان تأتي من zh-Hant-TW، والتجليد من اليمين يأتي من اتجاه الكتابة:

const config: PostextConfig = {
  locale: 'zh-Hant-TW',
  page: {
    sizePreset: 'custom', width: mm(148), height: mm(210),
    margins: { top: mm(24), bottom: mm(18), left: mm(16), right: mm(22), mirror: true },
    pageNumbering: { format: 'trad-chinese-informal' },
  },
  layout: { layoutType: 'single', writingMode: 'vertical-rl' },
  bodyText: {
    fontFamily: 'Noto Serif TC', fontSize: pt(10.5), lineHeight: pt(18),
    textAlign: 'justify', firstLineIndent: { value: 2, unit: 'em' },
    color: ink, boldColor: ink, italicColor: ink,
  },
  headings: {
    fontFamily: 'Noto Serif TC', color: ink,
    levels: [
      { level: 1, fontSize: pt(14), numberingTemplate: '第{1:一}回', numberSeparator: ' ',
        breakBefore: { enabled: true, parity: 'odd' } },
    ],
  },
  cjk: { grid: { enabled: true, charsPerLine: 38 } },
  header: { elements: [
    { kind: 'text', id: 'head', content: '{chapterTitle}', writingMode: 'vertical-rl', pages: 'body',
      fontFamily: 'Noto Serif TC', fontSize: pt(8.4), overflow: 'clip', align: 'left', color: ink,
      placement: { anchor: { to: 'outer', edge: 'top' }, offset: { y: { value: 4, unit: 'em' } } } },
    { kind: 'text', id: 'folio', content: '{pageNumber}', writingMode: 'vertical-rl',
      fontFamily: 'Noto Serif TC', fontSize: pt(8.4), overflow: 'clip', align: 'left', color: ink,
      placement: { anchor: { to: 'outer', edge: 'bottom' }, offset: { y: { value: -5, unit: 'em' } } } },
  ] },
  footer: { elements: [] },
};

يفتتح parity: 'odd' كل فصل في صفحة فردية، وهي في هذا الكتاب صفحة يسرى. وقد أُغفل linesPerPage، فتأخذ الصفحة من الأعمدة قدر ما يتسع له عرضها. وتجري ترويسات الحافة الخارجية نزولًا في الهامش الأيسر للصفحات الفردية والهامش الأيمن للزوجية، ويطبع {pageNumber} 一百零三 في الصفحة 103.

#في Sandbox ودليل الوصفات

في Sandbox يضم التصميم › نظام الكتابة لغة المستند واتجاه الكتابة والتجليد وكل إعدادات cjk، ويُعدّ الإعدادات الافتراضية للصينية › مراجعة… الكتابَ للصينية بخطوة واحدة، بعد أن يسرد كل تغيير أولًا (انظر Sandbox). وفي رف العروض حلم المقصورة الحمراء (紅樓夢، 程乙本 لعام 1792) بثلاث طبعات: تقليدية، عمودية ومجلّدة من اليمين، ومبسّطة وأفقية، والفصول الـ 56 الأولى في الترجمة الإنجليزية لـ H. Bencraft Joly. ولدليل Sandbox نفسه طبعة صينية منضّدة بالطريقة نفسها: عمودية ومجلّدة من اليمين، في طبقتين، مع أشرطة الفصول نازلة على الحافة اليمنى، والترويسات نازلة على الحافة الخارجية، وأرقام الصفحات بالأعداد الصينية. ويجمع دليل الوصفات الوصفات الصينية في مجموعته الإخراج الصيني، وكلٌّ منها صفحة أو صفحتان متقابلتان مع البرنامج النصي الذي ينضّدها.

#حدود معروفة

  • اليابانية والكورية تُنضَّدان بالقيم الافتراضية للبر الصيني الرئيسي. وقواعدهما الخاصة (JLREQ، KLREQ) غير منفّذة.
  • نص التصميم (الترويسات، وصفحات الافتتاح، وعناوين الإطارات) يكسر النص الصيني بين أي محرفين، دون قواعد بداية السطر ونهايته ودون عروض علامات الترقيم. اضبط مثل هذه العناوين يدويًا.
  • اتجاه كتابة واحد لكل صفحة. لا يتوفر إطار أفقي داخل صفحة عمودية، ولا جداول عمودية أصيلة بصف رأس على اليمين، ولا تعليقات بجانب شكل قائم. والصيغ الرياضية داخل السطر والشارات وعيّنات الألوان تُدار على جنبها مع السطر العمودي.
  • الأحجام بالنقاط. لا وحدات 号 ولا Q.
  • المقاييس العمودية. كل محرف قائم يتقدم em واحدًا؛ ولا تُستعمل المقاييس العمودية التناسبية (vpal) ولا تقنين الأزواج (kerning) العمودي.
  • الروبي والواريتشو: لا روبي على الجانبين، ولا قراءات تلقائية، ولا حواشٍ في صف واحد؛ والحواشي والقراءات في التعليقات والخلايا ونص التصميم تُطبع نصًا عاديًا.
  • الخطوط: لا لجوء من عائلة إلى أخرى، ولا مائل في الخطوط الصينية، والخطوط بصيغة CFF تُضمَّن كاملة.
  • الفهرس الأبجدي: المحرف ذو القراءات المتعددة يأخذ القراءة المعتادة لدى أداة الترتيب ما لم يكن لمدخله مفتاح sort؛ والترتيب بحسب الجذور غير متوفر.

#المصادر