| tbl(1) | General Commands Manual | tbl(1) |
الاسم¶
tbl - يُحضّر الجداول لمستندات groff
موجز¶
tbl |
[-C] [file ...] |
tbl |
--help |
tbl |
-v |
tbl |
--version |
الوصف¶
يُعدّ تطبيق GNU للأداة tbl جزءًا من نظام تنسيق المستندات groff(1) إن tbl هو معالج مسبق لـ troff(1) يترجم أوصاف الجداول المضمنة في ملفات مدخلات roff(7) إلى اللغة التي يفهمها troff. ينسخ محتويات كل ملف إلى مجرى المخرجات القياسي، باستثناء الأسطر بين .TS و .TE التي تُفسر كأوصاف للجداول. بينما تتوافق صيغة مدخلات GNU tbl بشكل كبير مع AT&T tbl، إلا أن المخرجات التي ينتجها GNU tbl لا يمكن معالجتها بواسطة AT&T troff؛ لذا يجب استخدام GNU troff (أو أي troff يطبق امتدادات GNU المستخدمة). عادةً، لا يُنفّذ tbl مباشرةً من قبل المستخدم، بل يُستدعى بتحديد الخيار -t للأداة groff(1). إذا لم تُعطَ أي معاملات ملف على سطر الأوامر، أو إذا كان الملف هو “-”، يقرأ tbl مجرى المدخلات القياسي.
نظرة عامة¶
يتوقع tbl العثور على أوصاف الجداول بين أسطر المدخلات التي تبدأ بـ .TS (بداية الجدول) و .TE (نهاية الجدول). كل منطقة جدول من هذا القبيل تضم وصفاً واحداً أو أكثر للجداول. داخل منطقة الجدول، يجب أن يسبق كل وصف جدول (بعد الوصف الأول) سطر مدخلات يبدأ بـ .T&. هذه الآلية لا تبدأ منطقة جدول جديدة؛ تُعامل جميع أوصاف الجداول كجزء من غلاف .TS/.TE الخاص بها، حتى لو كانت محاطة بإطارات أو لها عناوين أعمدة تتكرر في الصفحات اللاحقة (انظر أدناه).
(يجب على مستخدمي roff المتمرسين ملاحظة أن tbl ليس مفسرًا للغة roff: يجب استخدام محرف التحكم المبدئي، ولا يُسمح بمسافات أو علامات جدولة بين محرف التحكم واسم الماكرو. تظل رموز مدخلات tbl هذه كما هي في المخرجات، حيث تصبح استدعاءات ماكرو عادية. غالبًا ما تُعرّف حزم الماكرو ماكروهات TS و T& و TE للتعامل مع مشكلات وضع الجداول في الصفحة. ينتج tbl كود groff لتعريف هذه الماكروهات كفارغة إذا لم تكن تعريفاتها موجودة عندما يواجه المنسق منطقة جدول.)
قد تبدأ كل منطقة جدول بـ خيارات المنطقة، ويجب أن تحتوي على تعريف جدول واحد أو أكثر؛ يحتوي كل تعريف جدول على مواصفات التنسيق متبوعة بسطر مدخلات واحد أو أكثر (صفوف) من المدخلات. تشكل هذه المدخلات بيانات الجدول.
خيارات المنطقة¶
قد يحدد السطر الذي يلي رمز .TS مباشرةً خيارات المنطقة، وهي كلمات مفتاحية تؤثر على تفسير أو صيرورة المنطقة ككل أو جميع مدخلات الجدول داخلها دون تمييز. يجب فصلها بفواصل، أو مسافات، أو علامات جدولة. تلك التي تتطلب معاملًا بين قوسين تسمح بمسافات وعلامات جدولة بين اسم الخيار وقوس الفتح. تتراكم الخيارات ولا يمكن إلغاؤها داخل منطقة بمجرد التصريح عنها؛ وإذا تكرر خيار يأخذ معاملًا، فإن التكرار الأخير هو الذي يسود. في حال وجودها، يجب إنهاء مجموعة خيارات المنطقة بفاصلة منقوطة (;).
أي من خيارات المنطقة allbox و box و doublebox و frame و doubleframe تجعل الجدول “مؤطرًا” لغرض المناقشة اللاحقة.
- allbox
- إحاطة كل مدخل في الجدول بإطار؛ ويتضمن ذلك الخيار box.
- box
- إحاطة منطقة الجدول بأكملها بإطار. كامتداد لـ GNU، يُتعرف أيضاً على اسم الخيار البديل frame.
- center
- مركز منطقة الجدول بالنسبة للإزاحة الحالية وطول السطر؛ المبدئي هو محاذاتها لليسار. كامتداد لـ GNU، يُتعرف أيضاً على اسم الخيار البديل centre.
- decimalpoint(c)
- التعرف على المحرف c كفاصل عشري في الأعمدة التي تستخدم المصنف N (الرقمي) (انظر القسم الفرعي “مصنفات الأعمدة” أدناه). هذا امتداد من GNU.
- delim(xy)
- Recognize characters x and y as start and end delimiters, respectively, for eqn(1) input, and ignore input between them. x and y need not be distinct.
- doublebox
- إحاطة منطقة الجدول بأكملها بإطار مزدوج؛ ويتضمن ذلك الخيار box. كامتداد لـ GNU، يُتعرف أيضاً على اسم الخيار البديل doubleframe.
- expand
- مدّ الجدول أفقيًا لملء المساحة المتاحة (طول السطر ناقص الإزاحة) عن طريق زيادة الفصل بين الأعمدة. عادةً، يُنشأ الجدول بالعرض الضروري فقط لاستيعاب عروض مدخلاته وفواصل أعمدته (سواء كانت محددة أو مبدئية). عندما يُطبق expand على جدول يتجاوز المساحة الأفقية المتاحة، يُقلل فصل الأعمدة إلى أقصى حد ضروري (حتى الصفر). ينتج tbl مدخلات groff تُصدر تشخيصاً إذا حدث مثل هذا الضغط. يتجاوز معدل العمود x (انظر أدناه) هذا الخيار.
- linesize(n)
- Draw lines or rules (e.g., from box) with a thickness of n points. المبدئي هو حجم الخط الحالي عند بدء المنطقة. يُتجاهل هذا الخيار على أجهزة الطرفية.
- nokeep
- عدم استخدام تحويلات (diversions) لـ roff لإدارة فواصل الصفحات. عادةً، يستخدمها tbl لتجنب كسر الصفحة داخل صف الجدول. قد يتداخل هذا الاستخدام أحيانًا بشكل سيئ مع استخدام حزم الماكرو للتحويلات—عند استخدام الحواشي السفلية، على سبيل المثال. هذا امتداد من GNU.
- nospaces
- تجاهل المسافات البادئة واللاحقة في مدخلات الجدول. هذا امتداد من GNU.
- nowarn
- اكبت رسائل التشخيص الناتجة في وقت تنسيق المستند عندما تكون أطوال الأسطر أو الصفحات غير كافية لاحتواء صف جدول. هذا امتداد من GNU.
- tab(c)
- استخدام المحرف c بدلًا من علامة الجدولة للفصل بين المدخلات في صف من بيانات الجدول.
مواصفات تنسيق الجدول¶
تُعد مواصفات تنسيق الجدول إلزامية: فهي تحدد عدد الأعمدة في الجدول وتوجه كيفية تنضيد المدخلات داخله. مواصفات التنسيق هي سلسلة من واصفات الأعمدة. يرمز كل واصف لـ مصنف متبوعًا بصفر أو أكثر من المعدلات. المصنفات هي أحرف (يتم التعرف عليها بغض النظر عن حالة الأحرف) أو رموز ترقيم؛ وتتكون المعدلات من أحرف أو أرقام أو تبدأ بها. تفصل المسافات وعلامات الجدولة والأسطر الجديدة والفاصلات بين الواصفات. أسطر السطر الجديدة والفواصل خاصة؛ فهي تطبق الواصفات التي تليها على صف لاحق من الجدول. (يسمح هذا، على سبيل المثال، بمركزة رؤوس الأعمدة أو جعلها بخط عريض بينما لا تكون مدخلات الجدول الخاصة بالبيانات كذلك.) نسمي مجموعة واصفات الأعمدة الناتجة بـ تعريف الصف. داخل تعريف الصف، غالباً ما يكون الفصل بين واصفات الأعمدة (بواسطة المسافات أو علامات الجدولة) اختيارياً؛ فقط بعض المعدلات، الموضحة أدناه، تجعل الفصل ضرورياً.
يبدأ كل واصف عمود بـ مصنف إلزامي، وهو محرف يختار من بين عدة ترتيبات. يحدد بعضها موضع مدخلات الجدول داخل خلية مستطيلة: موسطة، محاذاة لليسار، رقمية (محاذاة لفاصل عشري قابل للضبط)، وهكذا. تؤدي مصنفات أخرى عمليات خاصة مثل رسم الخطوط أو دمج المدخلات من الخلايا المتجاورة في الجدول. باستثناء “|”، يمكن أن يتبع أي مصنف واحد أو أكثر من المعدلات؛ بعض هذه المعدلات يقبل معاملًا، والذي يمكن في GNU tbl وضعه بين قوسين. تختار المعدلات الخطوط، وتضبط حجم التنضيد، وتؤدي مهام أخرى موضحة أدناه.
يمكن أن تشغل مواصفات التنسيق عدة أسطر مدخلات، ولكن يجب أن تنتهي بنقطة “.” متبوعة بسطر جديد. يُطبَّق كل تعريف صف بدوره على صف واحد من الجدول. يُطبَّق تعريف الصف الأخير على صفوف بيانات الجدول التي تزيد عن تعريفات الصفوف.
للتوضيح في أمثلة هذا المستند، سنكتب المصنفات بأحرف كبيرة والمعدلات بأحرف صغيرة. بناءً على ذلك، “CbCb,LR.” يُعرّف صفين من عمودين. تكون مدخلات الصف الأول موسطة وعريضة؛ بينما تكون الأعمدة الأولى والثانية للصف الثاني وأي صفوف أخرى محاذاة لليسار ولليمين، على التوالي.
يحدد تعريف الصف الذي يحتوي على أكبر عدد من واصفات الأعمدة عدد الأعمدة في الجدول؛ وأي تعريف صف يحتوي على عدد أقل يُمدد ضمنيًا من الجانب الأيمن بمصنفات L بقدر ما يلزم لجعل الجدول مستطيلًا.
مصنفات الأعمدة¶
المصنفات L و R و C هي الأسهل فهمًا واستخدامًا.
- A, a
- توسيط أطول مدخل في هذا العمود، ومحاذاة المدخلات المتبقية في العمود لليسار بالنسبة للمدخل الموسط، ثم إزاحة جميع المدخلات بمقدار en واحد. يمكن استخدام مثل هذه المدخلات “الأبجدية” (ومن هنا جاء اسم المصنف) في نفس العمود مع المدخلات المصنفة كـ L، كما في “LL,AR.”. غالبًا ما تُسمى مدخلات A بـ “الأعمدة الفرعية” نظرًا لإزاحتها.
- C, c
- توسيط المدخلة داخل العمود.
- L, l
- محاذاة المدخلة لليسار داخل العمود.
- N, n
- محاذاة المدخلة رقميًا في العمود. يُحاذي tbl أعمدة الأرقام عموديًا عند منزلة الآحاد. إذا تجاور أكثر من فاصل عشري مع رقم ما، يُستخدم الفاصل الذي في أقصى اليمين للمحاذاة العمودية. إذا لم يوجد فاصل عشري، يُستخدم الرقم في أقصى اليمين للمحاذاة العمودية؛ وإلا، يوسط tbl المدخلة داخل العمود. تحدد المحرفة الوهمية \& في roff ضمن مدخلة ما الرسم الذي يسبقها (إن وجد) كمنزلة للآحاد؛ وإذا تكررت في البيانات، تُستخدم المنزلة التي في أقصى اليسار للمحاذاة.
- If N-classified entries share a column with L or R entries, tbl centers the widest N entry with respect to the widest L or R entry, preserving the alignment of N entries with respect to each other.
- قد يكون ظهور معادلات eqn ضمن الأعمدة المصنفة N مزعجًا بسبب الفحص النصي المسبق للبحث عن فاصل عشري. استخدم خيار المنطقة delim لجعل tbl يتجاهل البيانات داخل محددات eqn لهذا الغرض.
- R, r
- محاذاة المدخلة لليمين داخل العمود.
- S, s
- دمج المدخلة السابقة على اليسار في هذا العمود.
- ^
- دمج المدخلة في نفس العمود من الصف السابق في هذا الصف.
- _, -
- استبدال مدخلة الجدول بخط أفقي. يُتوقع وجود مدخلة جدول فارغة لتتوافق مع هذا المصنف؛ وإذا وُجدت بيانات هناك، يُصدر tbl رسالة تشخيصية.
- =
- استبدال مدخلة الجدول بخط أفقي مزدوج. يُتوقع وجود مدخلة جدول فارغة لتتوافق مع هذا المصنف؛ وإذا وُجدت بيانات هناك، يُصدر tbl رسالة تشخيصية.
- |
- وضع خط عمودي على الصف المقابل من الجدول (إذا تجاور اثنان من هذه، يوضع خط عمودي مزدوج). لا يساهم هذا المصنف في عدد الأعمدة ولا تقابله أي مدخلات جدول. يؤدي وضع | إلى يسار واصف العمود الأول أو إلى يمين الأخير إلى إنشاء خط عمودي عند حافة الجدول؛ وهذه الخطوط زائدة (وتُتجاهل) في الجداول المؤطرة.
لتغيير تنسيق الجدول داخل منطقة tbl، استخدم رمز .T& في بداية السطر. يتبعه مواصفة تنسيق وبيانات جدول، ولكن ليس خيارات منطقة. لا يمكن لعدد الأعمدة في تنسيق جدول جديد يُقدم بهذه الطريقة أن يزيد مقارنة بتنسيق الجدول السابق؛ وفي هذه الحالة، يجب عليك إنهاء منطقة الجدول وبدء أخرى. إذا لم يكن ذلك مفيدًا لأن المنطقة تستخدم خيارات الإطار أو لأن الأعمدة تتحاذى بطريقة غير مرغوب فيها، يجب تصميم مواصفات تنسيق الجدول الأولية لتشمل أقصى عدد مطلوب من الأعمدة، واستخدام مصنف الدمج الأفقي S عند الضرورة لتحقيق محاذاة الأعمدة المطلوبة.
تُعد محاولة التوسيع الأفقي في العمود الأول أو التوسيع العمودي في الصف الأول خطأً. مناطق التوسيع غير المستطيلة غير مدعومة أيضًا.
معدلات الأعمدة¶
يمكن لأي
عدد من
المعدلات
أن يتبع
مصنف
العمود.
المعطيات
الممررة
للمعدلات،
حيثما
تُقبل،
حساسة
لحالة
الأحرف. إذا
طُبق نفس
المعدل على
واصف عمود
أكثر من
مرة، أو إذا
طُبقت
معدلات
متعارضة،
فإن
التكرار
الأخير فقط
هو الذي
يسري
مفعوله. The
modifier x is mutually exclusive with e
and w, but e is not mutually exclusive
with w; if these are used in combination,
x unsets both e and w, while either
e or w overrides x.
- b, B
- تنسيق المدخلة بخط عريض، وهو اختصار لـ f(B).
- d, D
- محاذاة مدخلة الجدول المدمجة عموديًا إلى الأسفل (“down”)، بدلاً من التوسيط، ضمن نطاقها. هذا امتداد من GNU.
- e, E
- ساوِ بين عروض الأعمدة باستخدام هذا المعدل. العمود ذو العرض الأكبر هو الذي يتحكم. يضبط هذا المعدل طول السطر المبدئي المستخدم في كتلة نصية.
- f, F
- اختيار نوع الخط لمدخلة الجدول. يجب أن يتبع هذا المعدل اسم خط أو نمط (حرف واحد أو حرفان لا يبدآن برقم)، أو موضع وصل الخط (رقم واحد)، أو اسم أو موضع وصل بأي طول بين قوسين. الشكل الأخير هو امتداد من جيإنيو. (يقابل هذا المعطى ما يقبله طلب ft في troff.) يجب فصل المعطى المكون من حرف واحد وغير الموجود بين قوسين بمسافة واحدة أو أكثر أو علامات جدولة عما يليه.
- i, I
- تنسيق المدخلة بخط مائل، وهو اختصار لـ f(I).
- m, M
- استدعاء ماكرو groff قبل تنسيق كتلة نصية (انظر القسم الفرعي “الكتل النصية” أدناه). هذا امتداد من GNU. يجب أن يتبع هذا المعدل اسم ماكرو مكون من حرف واحد أو حرفين أو اسم بأي طول بين قوسين. يجب فصل اسم الماكرو المكون من حرف واحد وليس بين قوسين بمسافة واحدة أو أكثر أو بعلامات جدولة عما يليه. يجب تعريف الماكرو المسمى قبل مواجهة منطقة الجدول التي تحتوي على معدل العمود هذا. يجب أن يحتوي الماكرو على طلبات groff بسيطة فقط لتغيير تنسيق النص، مثل الضبط أو الوصل. يُستدعى الماكرو بعد سريان مفعول معدلات العمود b و f و i و p و v؛ وبالتالي يمكنه تجاوز معدلات العمود الأخرى.
- p, P
- اضبط حجم الخط لمدخلة الجدول. This modifier must be followed by an integer n with an optional leading sign. If unsigned, the type size is set to n scaled points. Otherwise, the type size is incremented or decremented per the sign by n scaled points. استخدام رقم متعدد الخانات مع إشارة هو امتداد من جيإنيو. (يقابل هذا المعطى ما يقبله طلب ps في troff.) إذا كان معدل حجم الخط متبوعًا بمعدل فصل الأعمدة (انظر أدناه)، فيجب فصلهما بمسافة واحدة أو علامة جدولة واحدة على الأقل.
- t, T
- محاذاة مدخلة الجدول المدمجة عموديًا إلى الأعلى، بدلاً من التوسيط، ضمن نطاقها.
- u, U
- تحريك العمود للأعلى بمقدار نصف سطر، مما يؤدي لـ “تبادل” الصفوف. هذا امتداد من GNU.
- v, V
- اضبط التباعد العمودي ليُستخدم في كتلة نصية. This modifier must be followed by an integer n with an optional leading sign. If unsigned, the vertical spacing is set to n points. Otherwise, the vertical spacing is incremented or decremented per the sign by n points. استخدام رقم متعدد الخانات مع إشارة هو امتداد من جيإنيو. (يقابل هذا المعطى ما يقبله طلب vs في troff.) إذا كان معدل التباعد العمودي متبوعًا بمعدل فصل الأعمدة (انظر أدناه)، فيجب فصلهما بمسافة واحدة أو علامة جدولة واحدة على الأقل.
- w, W
- ضبط العرض الأدنى للعمود. يجب أن يتبع هذا المعدل رقم، وهو إما عدد صحيح بدون وحدة، أو قياس أفقي بواسطة roff بين قوسين. يُشترط استخدام القوسين إذا كان العرض سيُتبع مباشرة بفصل صريح للأعمدة (كبديل، يمكن إتباع العرض بمسافة واحدة أو أكثر أو علامة جدولة). في حال عدم تحديد وحدة، يُفترض أنها بوحدة en. يضبط هذا المعدل طول السطر المبدئي المستخدم في كتلة نصية.
- x, X
- توسيع العمود. بعد حساب عروض الأعمدة، يتم توزيع أي طول متبقي للسطر بالتساوي على جميع الأعمدة التي تحمل هذا المعدل. Applying the x modifier to more than one column is a GNU extension. يضبط هذا المعدل طول السطر المبدئي المستخدم في كتلة نصية.
- z, Z
- تجاهل مدخلات الجدول المقابلة لهذا العمود لأغراض حساب العرض؛ أي يتم حساب عرض العمود باستخدام المعلومات الموجودة في واصفه فقط.
- n
- تحدد اللاحقة الرقمية في واصف العمود مسافة الفصل (بوحدات en) عن العمود التالي؛ والمسافة المبدئية هي 3n. يتم ضرب هذا الفصل تناسبيًا إذا كان خيار منطقة expand مفعلًا؛ وفي حالة الجداول التي يفوق عرضها طول سطر المخرجات، قد يكون هذا الفصل صفرًا. لا يمكن تحديد مسافة فصل سالبة. إن وجود قيمة فصل بعد آخر عمود في الصف أمر لا معنى له ويؤدي لصدور رسالة تشخيصية من tbl.
بيانات الجدول¶
تأتي بيانات الجدول بعد مواصفة التنسيق. يقابل كل سطر مدخلات صفًا في الجدول، باستثناء أن الخط المائل العكسي في نهاية سطر بيانات الجدول يواصل المدخلة في سطر المدخلات التالي. (كتل النصوص، الموضحة أدناه، توزع مدخلات الجدول أيضًا عبر أسطر إدخال متعددة.) تُفصل مدخلات الجدول داخل الصف في الإدخال بمحرف جدولة (tab) بشكل مبدئي؛ راجع خيار المنطقة tab أعلاه. تُستبعد المدخلات الزائدة في صف من بيانات الجدول (تلك التي ليس لها واصف عمود مقابل، ولا حتى واصف ضمني ناتج عن جعل الجدول مستطيلًا) مع رسالة تشخيصية. تُقبل أسطر تحكم roff بين صفوف بيانات الجدول وداخل الكتل النصية. إذا كنت ترغب في وسم مدخلة جدول فارغة بشكل مرئي في مصدر المستند، فاملأها بمحرف roff الوهمي \&. تُقاطع بيانات الجدول بسطر يتكون من وسم الإدخال .T&، وتنتهي بالسطر .TE.
عادةً، تُنضد مدخلة الجدول بشكل صارم. لا يُملأ، أو يُكسر، أو يُوصل بواصلة، أو يُضبط، أو يُزود بمساحات إضافية بين الجمل. يوجه tbl المنسق لقياس كل مدخلة جدول فور ظهورها في الإدخال، محدثًا العرض المطلوب للعمود المقابل لها. إذا طُبق المعدل z على العمود، يُتجاهل هذا القياس؛ وإذا طُبق w وكان معطاه أكبر من هذا العرض، يُستخدم هذا المعطى بدلًا منه. على عكس إدخال roff التقليدي (داخل فقرة مثلًا)، فإن التغييرات في تنسيق النص، مثل اختيار الخط أو التباعد العمودي، لا تستمر بين المدخلات.
تُفسر أشكال عديدة من مدخلات الجدول بشكل خاص.
- •
- إذا احتوى صف الجدول على شرطة سفلية أو علامة يساوي فقط (_ أو =)، يُرسم خط أفقي فردي أو مزدوج، على التوالي، عبر الجدول عند تلك النقطة.
- •
- تُستبدل مدخلة الجدول التي تحتوي فقط على _ أو = في صف ممتلئ ببيانات أخرى بخط أفقي فردي أو مزدوج، على التوالي، يصل بين جيرانها.
- •
- إن سبق الشرطة السفلية أو علامة اليساوي المنفردة خط مائل عكسي فله معنى أيضًا. إذا تكونت مدخلة الجدول فقط من \_ أو \= في صف ممتلئ ببيانات أخرى، تُستبدل بخط أفقي فردي أو مزدوج، على التوالي، لا يصل (تمامًا) بين جيرانه.
- •
- A table entry consisting of \Rx , where x is any roff ordinary or special character, is replaced by enough repetitions of the glyph corresponding to x to fill the column, albeit without joining its neighbors.
- •
- في أي صف عدا الصف الأول، تؤدي مدخلة جدول تحتوي على \^ إلى توسيع المدخلة التي فوقها لتشمل المدخلة الحالية.
في بعض الأحيان، قد تكون هذه الوسوم الخاصة مطلوبة كبيانات جدول حرفية. لاستخدام _ أو = حرفيًا وبمفردهما في مدخلة، أضف محرف roff الوهمي \& كبادئة أو لاحقة لهما. للتعبير عن \_ أو \= أو \R، استخدم تسلسل هروب roff لإقحام الخط المائل العكسي (\e أو \[rs]). ثمة طريقة موثوقة لوضع تسلسل الرموز \^ داخل مدخلة جدول وهي استخدام زوج من تسلسلات هروب المحارف الخاصة لـ groff (\[rs]\[ha]).
يمكن تداخل صفوف مدخلات الجدول مع أسطر تحكم groff؛ وهذه لا تُحسب كبيانات جدول. في هذه الأسطر، يجب استخدام محرف التحكم المبدئي (.) (وعدم تغييره)؛ ولا يُتعرف على محرف التحكم غير القابل للكسر. لبدء أول مدخلة جدول في صف بنقطة، اسبقها بمحرف roff الوهمي \&.
كتل النصوص¶
يمكن لمحتويات مدخلة جدول عادية أن تجعل العمود، وبالتالي الجدول، عريضًا بشكل مفرط؛ وعندها يتجاوز الجدول طول سطر الصفحة، ويصبح قبيحًا أو يتعرض للقطع بواسطة جهاز الإخراج. عندما تتطلب مدخلة جدول تنضيدًا أكثر تقليدية، بحيث تنكسر عبر أكثر من سطر إخراج (وبالتالي تزيد من ارتفاع صفها)، يمكن وضعها داخل كتلة نص.
يفسر tbl مدخلة الجدول التي تبدأ بـ “T{” في نهاية سطر المدخلات ليس كبيانات جدول، بل كرمز يبدأ كتلة نصية. وبالمثل، فإن “T}” في بداية سطر المدخلات ينهي كتلة نصية؛ ويجب أن ينهي أيضًا مدخلة الجدول. يمكن لأوسمة كتل النصوص مشاركة سطر إدخال مع بيانات جدول أخرى (تسبق T{ وتلي T}). أسطر الإدخال بين هذه الأوسمة تُنسق في تحويلة بواسطة troff. لا يمكن تداخل كتل النصوص. يمكن أن تحدث كتل نصوص متعددة في صف واحد من الجدول.
تُنسق كتل النصوص كما كان النص قبل الجدول، مع تعديلها بواسطة واصفات الأعمدة المعمول بها. تحديدًا، تحدد المصنفات A و C و L و N و R و S محاذاة كتلة النص داخل خليتها، ولكن ليس ضبطها. أضف طلبات na أو ad إلى بداية كتلة النص لتغيير ضبطها بشكل متميز عن النصوص الأخرى في المستند. كما هو الحال مع مدخلات الجدول الأخرى، عند انتهاء كتلة النص، تُهمل أي تعديلات على معلمات التنسيق. ولا تؤثر على مدخلات الجدول اللاحقة، ولا حتى على كتل نصوص أخرى.
إذا لم تُحدد المعدلات w أو x لـ كافة أعمدة توسيع الكتلة النصية، فإن الطول المبدئي للكتلة النصية (بمزيد من الدقة، طول السطر المستخدم لمعالجة تحويل الكتلة النصية) يُحسب كـ L×C/(N+1)، حيث L هو طول السطر الحالي، وC هو عدد الأعمدة التي تشغلها الكتلة النصية، وN هو عدد الأعمدة في الجدول. إذا لزم الأمر، يمكنك أيضًا التحكم في عرض كتلة النص بتضمين طلب ll (طول السطر) فيها قبل أي نص مطلوب تنسيقه. نظرًا لاستخدام التحويل لتنسيق الكتلة النصية، فإن ارتفاعها وعرضها يتاحان لاحقًا في المسجلين dn وdl، على التوالي.
واجهة roff¶
يخزن المسجل TW عرض منطقة الجدول بالوحدات الأساسية؛ ولا يمكن استخدامه داخل المنطقة نفسها، ولكنه يُعرف قبل إخراج رمز .TE لكي يتمكن ماكرو groff المسمى TE من استخدامه. T. هو مسجل بقيمة منطقية يشير إلى ما إذا كان يتم معالجة الجزء السفلي من الجدول. يميز المسجل #T أعلى الجدول. تجنب استخدام هذه الأسماء لأي غرض آخر.
يعرف tbl أيضًا ماكرو T# لإنتاج الخطوط السفلية والجانبية لجدول مُحاط بإطار. بينما يقوم tbl نفسه بترتيب المخرجات لتشمل استدعاءً لهذا الماكرو في نهاية هذا الجدول، يمكن استخدامه أيضًا بواسطة حزم الماكرو لإنشاء إطارات للجداول متعددة الصفحات عن طريق استدعائه من ماكرو تذييل الصفحة الذي يُستدعى بدوره بواسطة مصيدة (trap) موضوعة بالقرب من أسفل الصفحة. راجع قسم “القيود” أدناه لمزيد من المعلومات حول الجداول متعددة الصفحات.
GNU tbl internally employs register, string, macro, and diversion names beginning with the numeral 3. يجب ألا يستخدم المستند المراد معالجته مسبقًا بـ GNU tbl أيًا من هذه المعرفات.
التفاعل مع eqn¶
يجب دائمًا استدعاء tbl قبل eqn(1). (يرتب groff(1) المعالجات المسبقة آليًا بالترتيب الصحيح.) لا تستدعِ ماكروات EQ و EN داخل الجداول؛ بدلًا من ذلك، اضبط المحددات في إدخال eqn الخاص بك واستخدم خيار منطقة delim لكي يتعرف عليها tbl.
تحسينات GNU tbl¶
بالإضافة إلى الامتدادات المذكورة أعلاه، يزيل GNU tbl القيود التي كان يعاني منها مستخدمو AT&T tbl.
- •
- يمكن تحديد خيارات المنطقة بأي حالة أحرف.
- •
- لا يوجد حد لعدد الأعمدة في الجدول، بغض النظر عن تصنيفها، ولا يوجد أي حد لعدد كتل النصوص.
- •
- تُراعى كافة صفوف الجدول عند تحديد عروض الأعمدة، وليس فقط تلك الموجودة في أول 200 سطر مدخلات من المنطقة. وبالمثل، يُتعرف على رموز متابعة الجدول (.T&) خارج أول 200 سطر مدخلات من المنطقة.
- •
- قد تظهر المدخلات الرقمية والأبجدية في العمود نفسه.
- •
- قد تمتد المدخلات الرقمية والأبجدية أفقيًا.
استخدام GNU tbl داخل الماكروات¶
يمكنك تضمين منطقة جدول داخل تعريف ماكرو. ومع ذلك، بما أن tbl يكتب تعريفات الماكرو الخاصة به في بداية كل منطقة جدول، فمن الضروري استدعاء ماكروات الإنهاء بدلًا من إنهاء تعريفات الماكرو بـ “..”. بالإضافة إلى ذلك، يجب تعطيل محرف الهروب.
لا يمكن استخدام جميع ميزات tbl من هذه الماكروات لأن tbl هو معالج مسبق لـ roff: فهو يرى الإدخال قبل أن يراه troff. على سبيل المثال، تفشل المحاذاة العمودية للفواصل العشرية إذا كانت الأرقام التي تحتوي عليها تظهر كبارامترات ماكرو أو سلسلة نصية؛ حيث تُنفذ المحاذاة بواسطة tbl نفسه، الذي يرى فقط \$1 و\$2 وهكذا، وبالتالي لا يمكنه التعرف على الفاصل العشري الذي لا يظهر إلا لاحقًا عندما يقحم troff تعريف الماكرو أو السلسلة النصية.
استخدام
ماكروات tbl
داخل إدخال
مشروط (أي،
يعتمد على
طلب if أو ie
أو el أو while)
يمكن أن
يؤدي إلى
أرقام أسطر
مضللة في
التشخيصات
اللاحقة.
يقوم tbl بحقن
مخرجاته
دون قيد أو
شرط في
المستند
المصدر،
ولكن الفرع
المشروط
الذي
يحتويه قد
لا يُسلك،
وإذا لم
يُسلك، فإن
طلبات lf
التي
يحقنها tbl
لاستعادة
رقم سطر
المصدر لا
يمكن أن
يسري
مفعولها.
فكر في نسخ
مسجل عداد
أسطر
المدخلات c.
واستعادة
قيمته في
موقع مناسب
بعد
العمليات
الحسابية
المطبقة.
الخيارات¶
يعرض --help رسالة استخدام، بينما يعرض -v و--version معلومات الإصدارة؛ وتخرج جميعها بعد ذلك.
- -C
- تمكين وضع توافق AT&T: التعرف على .TS و.TE حتى عندما يتبعهما محرفة غير المسافة أو السطر الجديد. علاوة على ذلك، فسر تسلسل هروب القائد غير المفسر \a.
القيود¶
الجداول متعددة الصفحات، إذا كانت محاطة بإطار و/أو كنت ترغب في تكرار عناوين أعمدتها بعد فواصل الصفحات، تتطلب دعمًا وقت تنسيق المستند. نشأ عرف لهذا الدعم في حزم الماكرو مثل ms و mm و me. لاستخدامه، اتبع وسم .TS بمسافة ثم “H”؛ سيقوم المنسق بتفسير ذلك كاستدعاء ماكرو TS مع معطى H. بعد ذلك، داخل بيانات الجدول، استدعِ ماكرو TH؛ وهذا يعلم حزمة الماكرو بمكان انتهاء العناوين. إذا لم يكن لجدولك صفوف عناوين كهذه، أو كنت لا ترغب في تكرارها، فاستدعِ TH مباشرة بعد مواصفات تنسيق الجدول. إذا كان الجدول متعدد الصفحات محاطًا بإطار أو يحتوي على عناوين أعمدة مكررة، فلا تحطه بماكروات الحفظ/التحرير (keep/release)، ولا تحوله بأي طريقة أخرى. علاوة على ذلك، لن يؤدي طلب bp إلى فاصل صفحات في جدول “TS H”. عرف ماكرو لتغليف bp: استدعِه بشكل طبيعي إذا لم يكن هناك تحويلة حالية. خلاف ذلك، مرر استدعاء الماكرو إلى التحويلة المحيطة باستخدام تسلسل هروب السطر الشفاف \!؛ سيؤدي هذا إلى "تصعيد" فاصل الصفحة إلى جهاز الإخراج. راجع قسم “أمثلة” أدناه للحصول على توضيح.
الخطوط الأفقية المزدوجة غير مدعومة بواسطة grotty(1); وتُستخدم الخطوط المفردة بدلًا منها. يتجاهل grotty أيضًا حركات نصف السطر، لذا ليس لمعدل العمود u أي تأثير. On terminal devices (“nroff mode”), horizontal rules and box borders occupy a full vee of space; this amount is doubled for doublebox tables. وبالتالي، تتطلب الجداول التي تستخدم هذه الميزات مساحة عمودية أكبر في وضع nroff عنها في وضع troff: اكتب طلبات ne وفقًا لذلك. تُرسم الخطوط العمودية بين الأعمدة في المسافة بين الأعمدة في وضع nroff؛ استخدام خطوط عمودية مزدوجة و/أو تقليل تباعد الأعمدة عن القيمة المبدئية يمكن أن يجعلها قبيحة أو يؤدي لتراكب بيانات الجدول فوقها.
يجب أن تكون كتلة النص داخل الجدول قادرة على الاحتواء في صفحة واحدة.
استخدام \a لوضع الرواد (leaders) في مدخلات الجدول لا يعمل في GNU tbl، إلا في وضع التوافق. هذا هو السلوك الصحيح: \a هو رائد غير مفسر. لا يزال بإمكانك استخدام محرف الرائد الخاص بـ roff (Control+A) أو تعريف سلسلة نصية لاستخدام \a كما صُمم: ليُفسر فقط في وضع النسخ.
.ds a \a .TS box center tab(;); Lw(2i)0 L. السكان\*a;6,327,119 .TE
| التعداد? | 6,327,119 |
تنتج العلامة | البادئة و/أو اللاحقة في مواصفة التنسيق، مثل “|LCR|.”، مساحة بمقدار en بين الخطوط العمودية ومحتوى الأعمدة المجاورة. إذا لم تكن هذه المساحة مرغوبة (بحيث يلامس الخط المحتوى)، يمكنك إدراج أعمدة “وهمية” بفاصل صفري ومدخلات جدول مقابلة فارغة قبلها و/أو بعدها.
.TS center tab(#); R0|L C R0|L. _ #ليفولوز#جلوكوز#ديكستروز# _ .TE
هذه الأعمدة الوهمية ذات عرض صفري وبالتالي فهي غير مرئية؛ ولسوء الحظ فإنها عادة لا تعمل كما هو مقصود على أجهزة الطرفية.
أمثلة¶
قد يكون من الأسهل اكتساب لغة tbl من خلال الأمثلة بدلاً من الوصف الرسمي، خاصة في البداية.
.TS box center tab(#); Cb Cb L L. القدرة#التطبيق القوة#يسحق طماطم الرشاقة#يتفادى طماطم ملقاة البنية#يأكل طماطم عمرها شهر دون أن يمرض الذكاء#يعرف أن الطماطم فاكهة الحكمة#يختار \f[I]ألا\f[] يضع الطماطم في سلطة فواكه الكاريزما#يبيع الحيوانات آكلة اللحوم سلطات فواكه تعتمد على الطماطم .TE
| القدرة | التطبيق |
| القوة | يسحق ثمرة طماطم |
| الرشاقة | يتفادى ثمرة طماطم مقذوفة |
| البنية | يأكل ثمرة طماطم عمرها شهر دون أن يمرض |
| الذكاء | يعرف أن الطماطم فاكهة |
| الحكمة | يختار ألا يضع الطماطم في سلطة فواكه |
| الكاريزما | يبيع الحيوانات آكلة اللحوم سلطات فواكه تعتمد على الطماطم |
يمكن أن يكون استيعاب مصنفات الأعمدة A و N في التصيير المرئي أسهل منه في الوصف.
.TS center tab(;); CbS,LN,AN. مدخول الطاقة اليومي (بالميغاجول) المغذيات الكبيرة .\" افتراض 3 أرقام معنوية للدقة كربوهيدرات;4.5 دهون;2.25 بروتين;3 .T& LN,AN. معدن Pu-239;14.6 _ .T& LN. الإجمالي;\[ti]24.4 .TE
| مدخول الطاقة اليومي (بالميغاجول) | |
| المغذيات الكبيرة | |
| كربوهيدرات | 4.5 |
| دهون | 2.25 |
| بروتين | 3 |
| معدن | |
| Pu-239 | 14.6 |
| الإجمالي | ~24.4 |
بعد ذلك، سنقوم بتعديل عرض مدمج للامتداد، والمحاذاة الـ عمودية، ومعدلات الأعمدة ذات العرض الصفري من مرجع mandoc لمفسر tbl الخاص به. إنه يستحق الدراسة المتأنية.
.TS box center tab(:); Lz S | Rt Ld| Cb| ^ ^ | Rz S. يسار:يمين يسار:مركز: :يمين .TE
| left | r | |
| l | center | |
| right | ||
ترنح الصفوف لا يمكن تحقيقه مرئياً على أجهزة الطرفية، ولكن الجدول الذي يستخدمه يمكن أن يظل مفهوماً رغم ذلك.
.TS center tab(|); Cf(BI) Cf(BI) Cf(B), C C Cu. n|n\f[B]\[tmu]\f[]n|الفرق 1|1 2|4|3 3|9|5 4|16|7 5|25|9 6|36|11 .TE
| n | n×n | الفرق |
| 1 | 1 | |
| 2 | 4 | 3 |
| 3 | 9 | 5 |
| 4 | 16 | 7 |
| 5 | 25 | 9 |
| 6 | 36 | 11 |
بعض ميزات tbl لا يمكن توضيحها في البيئة المحدودة لصفحة دليل محمولة.
يمكننا تعريف ماكرو خارج منطقة tbl يمكننا استدعاؤه من داخلها للتسبب في فاصل صفحات داخل جدول محاط بإطار متعدد الصفحات. يمكنك اختيار اسم مختلف؛ تأكد من تغيير كلا ظهوري “BP”.
.de BP . ie '\\n(.z'' .bp \\$1 . el \!.BP \\$1 ..
انظر أيضاً¶
“Tbl—برنامج لتنسيق الجداول”، بقلم M. E. Lesk، عام 1976 (نُقح في 16 يناير 1979)، تقرير مختبرات AT&T Bell التقني لعلوم الحوسبة رقم 49.
أُخذ مثال الامتداد أعلاه من صفحة دليل mandoc لـ تنفيذ tbl الخاص بها.
ترجمة¶
تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي <zayed.alsaidi@gmail.com>
هذه الترجمة هي وثيقة مجانية؛ راجع رخصة جنو العامة الإصدار 3 أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.
إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: kde-l10n-ar@kde.org.
| 2 مارس 2026 | groff 1.23.0 |