تروف
تروف ( تُلفظ / ˈtiːrɒf / ) ، اختصارًا لـ "typesetter roff"، هو المكون الرئيسي لنظام معالجة المستندات الذي طورته مختبرات بيل لنظام التشغيل يونكس . وقد طُوّر كل من تروف و nroff المرتبط به من روف الأصلي .
بينما كان الهدف من nroff هو إنتاج مخرجات على المحطات الطرفية وطابعات الخطوط، كان الهدف من troff هو إنتاج مخرجات على أنظمة الطباعة ، وتحديداً نظام Graphic Systems CAT ، الذي تم تقديمه في عام 1972. وقد استخدم كلاهما نفس لغة الترميز الأساسية ، ويمكن عادةً استخدام ملف مصدر واحد بواسطة nroff أو troff دون تغيير.
يُتيح برنامج troff أوامر لتحديد الخطوط، والتباعد، والفقرات، والهوامش، والحواشي السفلية، وغير ذلك. وعلى عكس العديد من برامج تنسيق النصوص الأخرى، يُمكن لـ troff وضع الأحرف بشكلٍ عشوائي على الصفحة، حتى مع إمكانية تداخلها، كما أنه مزود بلغة إدخال قابلة للبرمجة بالكامل. ويستخدم معالجات مسبقة منفصلة لتسهيل إنشاء الجداول، والرسوم البيانية، والمعادلات الرياضية. وتكون مدخلات troff عبارة عن ملفات نصية عادية، ويمكن إنشاؤها باستخدام أي محرر نصوص.
تم إنشاء حزم ماكرو واسعة النطاق لأنماط المستندات المختلفة. تتضمن التوزيعة النموذجية لـ troff وحدات الماكرو me لتنسيق أوراق البحث، ووحدات الماكرو man و mdoc لإنشاء صفحات دليل Unix ، ووحدات الماكرو mv لإنشاء شفافيات قابلة للتركيب ، ووحدات الماكرو ms و mm للرسائل والكتب والمذكرات الفنية والتقارير.
تاريخ
يمكن تتبع أصول برنامج troff إلى برنامج لتنسيق النصوص يسمى RUNOFF ، والذي كتبه جيروم إتش. سالتزر لنظام التشغيل CTSS التابع لمعهد ماساتشوستس للتكنولوجيا في منتصف الستينيات. (ويزعم أن الاسم جاء من عبارة " سأقوم بطباعة مستند ").
قام بوب موريس بنقل البرنامج إلى بنية GE 635 وأطلق عليه اسم roff (اختصار لـ runoff ). أُعيدت كتابته باسم rf لجهاز PDP-7 ، وفي الوقت نفسه (1969)، أعاد دوغ ماكلروي كتابة نسخة موسعة ومبسطة من roff بلغة برمجة BCPL .
طُوِّرت النسخة الأولى من نظام يونكس على جهاز PDP-7 كان موجودًا في مختبرات بيل . في عام 1971، أراد المطورون الحصول على جهاز PDP-11 لمواصلة العمل على نظام التشغيل. ولتبرير تكلفة هذا النظام، اقترحوا إنشاء نظام لتنسيق المستندات لقسم براءات الاختراع في مختبرات بيل. [ 1 ] كان برنامج التنسيق الأول هذا إعادة تنفيذ لبرنامج roff الخاص بماكيلروي ، والذي كتبه جو إف. أوسانا .
عندما احتاجوا إلى لغة أكثر مرونة، طُوِّرت نسخة جديدة من لغة roff تُسمى nroff ( اختصارًا لـ "roff" الأحدث )، والتي شكلت الأساس لجميع النسخ اللاحقة. وعندما حصلوا على جهاز طباعة ضوئية من نوع Graphic Systems CAT ، عدّل أوسانا لغة nroff لدعم خطوط متعددة وتباعد متناسب . أُطلق عليها اسم troff ، اختصارًا لـ typesetter roff ، وقد أذهل مُخرجها المُتطور الشركة المُصنِّعة للجهاز وأربك المُراجعين ، الذين ظنوا أن مخطوطات تستخدم troff قد نُشرت سابقًا. [ 2 ] [ 3 ] ولذلك ، يُنطق اسم troff / ˈtiːrɒf / وليس / ˈtrɒf / .
مع برنامج troff ظهر برنامج nroff (كانا في الواقع متطابقين تقريبًا)، والذي كان يُستخدم لإنتاج مخرجات للطابعات الخطية ومحطات العرض النصية . كان nroff يفهم كل ما يفعله troff ، ويتجاهل الأوامر غير المناسبة، مثل تغييرات الخطوط .
كُتب برنامج troff الخاص بأوسانا بلغة التجميع PDP-11، وكان يُنتج مخرجات مُخصصة لجهاز الطباعة الضوئية CAT . أعاد أوسانا كتابته بلغة C ، إلا أنه أصبح يتألف من 7000 سطر من التعليمات البرمجية غير المُعلقة، ولا يزال يعتمد على جهاز CAT. مع تراجع استخدام جهاز CAT، وتوقف دعمه من قِبل الشركة المُصنعة، أصبحت الحاجة إلى جعله يدعم أجهزة أخرى أولوية. توفي أوسانا قبل إتمام هذه المهمة، فتولى برايان كيرنيغان مهمة إعادة كتابة troff . أنتجت النسخة المُعاد كتابتها حديثًا تعليمات برمجية مُستقلة عن الجهاز، مما سهّل على مُعالجات ما بعد المعالجة قراءتها وترجمتها إلى رموز الطابعة المُناسبة. كما احتوت هذه النسخة الجديدة من troff (والتي تُسمى غالبًا ditroff اختصارًا لـ device independent troff ) على العديد من الإضافات، بما في ذلك وظائف الرسم. [ 4 ] تُحدد وثائق البرنامج تنسيق إخراج ditroff ، والذي تستخدمه العديد من برامج troff الحديثة المُشابهة، مثل GNU groff .
في عام 1983، كان برنامج troff أحد أدوات UNIX العديدة المتاحة لنظام التشغيل UNOS التابع لشركة Charles River Data Systems بموجب ترخيص من مختبرات Bell . [ 5 ]
أُطلق على مجموعة أدوات troff (بما في ذلك المعالجات المسبقة واللاحقة) اسم Documenter's WorkBench (DWB)، وخضعت لتطوير مستمر في مختبرات Bell Labs، ثم لاحقًا في شركة Unix System Laboratories (USL) المنبثقة عنها حتى عام 1994. في ذلك الوقت، تولت شركة SoftQuad مسؤولية الصيانة، مع استمرار برايان كيرنيغان في تحسين troff بشكل مستقل. وبالتالي، توجد على الأقل الإصدارات التالية من troff الأصلية لمختبرات Bell Labs قيد الاستخدام:
- SoftQuad DWB، استنادًا إلى USL DWB 2.0 من عام 1994؛
- برنامج DWB 3.4 من شركة Lucent Software Solutions (المعروفة سابقًا باسم USL)؛
- تروف، إصدار الخطة 9 .
على الرغم من أن برنامج troff قد تم استبداله ببرامج أخرى مثل Interleaf و FrameMaker و LaTeX ، إلا أنه لا يزال يُستخدم على نطاق واسع. ولا يزال هو برنامج التنسيق الافتراضي لوثائق نظام UNIX .
تمت إعادة تنفيذ البرنامج باسم groff لنظام GNU بدءًا من عام 1990. بالإضافة إلى ذلك، ونظرًا لفتح مصادر أنظمة UNIX القديمة ، وكذلك الأنظمة الحديثة التي تلتها مثل الإصدارات مفتوحة المصدر القائمة على ditroff الموجودة على OpenSolaris و Plan 9 من مختبرات Bell ، فهناك العديد من إصدارات AT&T troff (القائمة على CAT وditroff [ 6 ] ) المتاحة بموجب تراخيص مفتوحة المصدر مختلفة.
وحدات الماكرو
بشكل عام، لم يكن يُنصح باستخدام برنامج Troff مباشرةً، بل كان يُفضّل استخدام واجهة أسهل. [ 7 ] [ 8 ] يتضمن Troff وحدات ماكرو تُشغّل قبل بدء معالجة المستند. تشمل هذه الوحدات إعداد رؤوس وتذييلات الصفحات، وتعريف أوامر جديدة، وتحديد كيفية تنسيق المخرجات. وسيط سطر الأوامر لتضمين مجموعة ماكرو هو ، مما أدى إلى تسمية العديد من مجموعات الماكرو باسم الملف الأساسي متبوعًا بالحرف m . [ 9 ]-mname
مجموعات الماكرو القياسية، مع البادئة m، هي:
- رجل لإنشاء صفحات الدليل [ 10 ] [ 11 ]
- mdoc لصفحات الدليل المشروحة دلاليًا ، ليحل محل man في BSDs [ 12 ] [ 13 ] [ 14 ]
- أنا لكتابة أوراق بحثية [ 15 ]
- mm لإنشاء المذكرات [ 16 ]
- ms لإنشاء الكتب والتقارير والوثائق الفنية [ 17 ]
كانت وحدات الماكرو ms أول هذه الوحدات، وقد طُوّرت في شركة AT&T، قبل أن تحل محلها وحدات الماكرو mm. [ 18 ] كان أحد أهداف وحدات الماكرو mm هو أن تكون قابلة للاستخدام من قِبل فريق الكتابة في مختبرات بيل، ومع مرور الوقت، تحقق ذلك وأصبحت وحدات الماكرو mm معيارًا في مختبرات بيل. [ 19 ] أتاحت AT&T وحدات الماكرو mm تجاريًا لنظام التشغيل System V Unix. [ 18 ] في المقابل، طُوّرت وحدات الماكرو me في بيركلي. [ 18 ]
مثال على رسالة عمل بسيطة تم إعدادها باستخدام وحدات الماكرو mm هو:
.TL.ND"January 10, 1993".AU"Ms. Jane Smith".AT"Upcoming appointment".MT5المرجع: A12345.sp4السيد صموئيل جونز.sp0مدير ميداني، مكتب التفتيش.sp01010 ساحة الحكومة.sp0كابيتول تاون، سانت.sp3السيد جونز المحترم،.sp2.Pبالإشارة إلى الالتزام المذكور بإخضاع عملية الإنتاج التي أنشأناها حديثًا للتفتيش الحكومي، نرجو منكم النظر في مدى عدم ملاءمة إخضاع تقنيات المستقبل المبتكرة لمتطلبات الأمس التي عفا عليها الزمن. إذا أرادت دولتنا العظيمة أن تزدهر في القرن الحادي والعشرين، فعلينا اتخاذ خطوات جادة..Bالآن ، في.Iهذا عام.Iهذا على مدى عقد من الزمان، قمنا بتجهيز قاعدتنا الصناعية للمنافسة بين الولايات وعلى الصعيد الدولي التي ستظهر حتماً. إن عمليتنا الجديدة تحقق ذلك تماماً. لذا، نرجو عدم السماح لبيئة تنظيمية لم تعد ملائمة بتقويضها..Pنشكركم على اهتمامكم بموقفنا..FCSincerely.SG
عادةً ما يتم إدراج قائمة شاملة بالوحدات البرمجية المتاحة في tmac(5)صفحة الدليل . [ 14 ]
المعالجات المسبقة
مع تطور برنامج تروف ، ونظرًا لوجود بعض الأمور التي يصعب إنجازها فيه ، تم تطوير العديد من المعالجات المسبقة . تقوم هذه البرامج بتحويل أجزاء معينة من المستند إلى مدخلات تروف ، مما ينسجم بسلاسة مع استخدام "خطوط المعالجة" في أنظمة يونكس - حيث يتم إرسال مخرجات برنامج ما كمدخلات لبرنامج آخر (انظر الأنابيب والمرشحات ). عادةً، يقوم كل معالج مسبق بترجمة أجزاء محددة من ملف الإدخال فقط، مع تمرير باقي الملف دون تغيير. تُكتب تعليمات المعالجة المسبقة المضمنة بلغة برمجة بسيطة خاصة بالتطبيق، مما يوفر درجة عالية من القوة والمرونة.
- تتيح المعالجة المسبقة للمعادلات تحديد الصيغ الرياضية بطريقة بسيطة وبديهية. [ 20 ]
- tbl هو معالج مسبق لتنسيق الجداول.
- يقوم برنامج refer (والبرنامج المماثل bib ) بمعالجة الاستشهادات في المستند وفقًا لقاعدة بيانات ببليوغرافية .
توفر ثلاث معالجات مسبقة لبرنامج troff إمكانيات الرسم من خلال تحديد لغة خاصة بالمجال لوصف الصورة.
- لغة البرمجة الإجرائية pic توفر وظائف رسم متنوعة مثل الدائرة والمربع. [ 21 ]
- تتيح لغة ideal رسم الصور بشكل تصريحي ، حيث تستنتج الصورة من خلال حل نظام من المعادلات الآنية بناءً على المتجهات والتحويلات الموصوفة بواسطة مدخلاتها. [ 22 ]
- يصف برنامج grn الصور من خلال عناصر رسومية مرسومة عند إحداثيات مطلقة، استنادًا إلى تنسيق ملف gremlin المحدد بواسطة محطة عمل رسومية مبكرة. [ 23 ]
بالإضافة إلى ذلك، يوجد أمر soelim الذي يزيل .soتوجيهات التضمين من النص المدخل. [ 24 ]
قد يكون الهيكل النموذجي لخط الأنابيب كالتالي:
soelim file | refer | ideal | pic | tbl | eqn | troff
ومع ذلك، تسمح المزيد من المعالجات المسبقة برسم صور أكثر تعقيدًا من خلال توليد مخرجات لـ pic .
- يرسم برنامج grap المخططات ، مثل مخططات التشتت والمدرجات التكرارية . [ 25 ]
- يرسم برنامج chem مخططات التركيب الكيميائي . [ 26 ]
- يرسم dformat هياكل البيانات القائمة على السجلات . [ 27 ]
واجهات أمامية أخرى
تم تطوير العديد من واجهات المستخدم الأخرى التي تهدف إلى أن تكون واجهات أكثر سهولة في الاستخدام لـ troff.
أحد هذه البرامج هو Sanscribe ، الذي طُوّر في الأصل في جامعة بيركلي، ثم جرى تحسينه خلال ثمانينيات القرن الماضي من قِبل العديد من المستخدمين، بما في ذلك Intel و InterACT . يُستخدم Sanscribe لكتابة المذكرات والتقارير والوثائق، وهو مبني على أوامر troff الأساسية، بالإضافة إلى وحدات me البرمجية، والعديد من المعالجات المسبقة واللاحقة مثل soelim وeqn وtbl وgrap وpic. مع ذلك، فهو برنامج رئيسي ثنائي، وليس معالجًا مسبقًا. تجعله إمكانية التضمين المشروط مفيدًا بشكل خاص في صيانة أدلة المراجع متعددة المنصات. ومع ذلك، فإن Sanscribe هش وعرضة لظهور أخطاء غامضة أو إنتاج نتائج بتنسيق غريب. [ 28 ]
يُعدّ vgrind واجهة أمامية مُخصصة ، تُنشئ قوائم برامج مصدرية مُنسقة بشكلٍ جيد، مع ميزات مثل وضع التعليقات بخط مائل، والكلمات المفتاحية بخط غامق، وأسماء الدوال مُظللة في الهوامش. يُمكن تشغيله إما كمرشح أو كبرنامج رئيسي مع تمرير مُخرجاته إلى troff. يدعم vgrind اللغات المُستخدمة في مرافق مختبرات بيل، بما في ذلك Fortran و C و C++ ، بالإضافة إلى أدوات خاصة بالمجال مثل Bourne shell و yacc، فضلاً عن لغات أخرى مثل Emacs Lisp و Icon . [ 24 ]
تستخدم مجموعة أدوات CADiZ نهجًا مختلفًا لترميز Z. فبدلاً من أن cadizيكون البرنامج معالجًا مسبقًا في بداية مسار المعالجة، فإنه يتفاعل عدة مرات مع troffالبيانات كمدخلات ومخرجات، باستخدام ملفات محفوظة بدلاً من مسار معالجة. كما تحتوي CADiZ على مجموعة خاصة بها من وحدات الماكرو، .ZAتُسمى .ZZ. [ 29 ]
انظر أيضاً
- النشر المكتبي
- كتاب المستندات
- بديل groff لبرنامج GNU troff/nroff
- نروف
- SGML
- TeX
- سكرايب (لغة الترميز)
مراجع
- ^ كيرنيغان ، بي دبليو (أكتوبر 2019). يونكس: تاريخ ومذكرات . كيندل للنشر المباشر. ص. 42. ردمك 9781695978553أُرشف من المصدر الأصلي بتاريخ 10 فبراير 2021. تم الاطلاع عليه بتاريخ 20 يونيو 2020 .
- ↑ جيه إف أوسانا. دليل مستخدم نروف/تروف . CSTR رقم 54، مختبرات بيل، 1976. تمت مراجعته بواسطة بي دبليو كيرنيغان، 1992.
- ↑ ماكيلروي، دكتور في الطب (1987). قارئ أبحاث يونكس: مقتطفات مشروحة من دليل المبرمج، 1971-1986 (ملف PDF) (تقرير فني). مختبرات بيل. 139.
- ↑ بي دبليو كيرنيغان. آلة طباعة مستقلة عن الطباعة . CSTR #97، مختبرات بيل، 1981، تمت مراجعتها في مارس 1982.
- ↑ دليل المطلع على الكون (ملف PDF) . شركة تشارلز ريفر لأنظمة البيانات، 1983. صفحة 13. مؤرشف (ملف PDF) من الأصل بتاريخ 25 فبراير 2024. تم الاطلاع عليه بتاريخ 10 فبراير 2024 .
- ↑ راجع صفحة دليل مُحوِّل ditroff إلى postscript على OpenSolaris: – دليل أوامر مستخدم illumos و OpenSolaris من أحدث إصدار من OpenSolaris المبني على Sun
- ↑ إيمرسون، ساندرا ل.؛ بولسيل، كارين (1987). تروف للطباعة لأنظمة يونكس . إنجلوود كليفس، نيو جيرسي: برنتيس هول. ص 9.
- ↑ جيهاني، نارين (1992). تنسيق المستندات وطباعتها على نظام يونكس ( الطبعة الثانية). سوميت، نيو جيرسي: سيليكون برس. الصفحات 11-12 . ISBN 978-0-9615336-2-5.
- ↑ ليندهولم، ستيفن. "وحدات ماكرو groff/troff: ms، mm، me أو mom" . ... مؤرشف من الأصل في 14 يوليو 2024. تم الاسترجاع في 3 يونيو 2024 .
- ↑ "كتابة وتنسيق صفحات دليل يونكس باستخدام وحدات الماكرو -man" . home.fnal.gov . مؤرشف من الأصل في 30 يوليو 2019. تم الاطلاع عليه في 7 مايو 2019 .
- ↑ – دليل لينكس المتنوع من ManKier.com
- ↑ – دليل معلومات متنوعة لنظام FreeBSD
- ↑ "الفهرس - وثائق ماندوك الموسعة" . ماندوك . مؤرشف من الأصل في 11 فبراير 2021. تم الاطلاع عليه في 7 مايو 2019 .
- 1 2 – دليل تنسيقات ملفات لينكس من موقع ManKier.com
- ↑ – دليل لينكس المتنوع من ManKier.com
- ↑ – دليل لينكس المتنوع من ManKier.com
- ↑ – دليل لينكس المتنوع من ManKier.com
- 1 2 3 سرينيفاسان، ب. (1993). معالجة المستندات والتنضيد في نظام يونكس . سنغافورة: وورلد ساينتيفيك. الصفحات 11-12 . ISBN 978-981-02-0605-5.
- ↑ ماشي، جون (18 يوليو 2018). داغ سبايسر (محرر). "التاريخ الشفوي لجون ماشي" (ملف PDF) (مقابلة). أجرى المقابلة جون ماركوف. ماونتن فيو، كاليفورنيا: متحف تاريخ الحاسوب. الصفحات 27-29 ، 37. تاريخ الاطلاع: 26 مايو 2024 .
- ↑ بي دبليو كيرنيغان ولوريندا إل تشيري. نظام لطباعة الرياضيات . CSTR #17، مختبرات بيل، مايو 1974.
- ↑ بي دبليو كيرنيغان. بيك - لغة رسومية للتنضيد (دليل المستخدم المنقح) . سي إس تي آر رقم 116، مختبرات بيل، ديسمبر 1984.
- ↑ سي جيه فان ويك. دليل مستخدم IDEAL . CSTR #103، مختبرات بيل، ديسمبر 1981.
- ↑ grn — معالج groff المسبق لملفات gremlin.
- 1 2 روبنز، أرنولد (1999). يونكس باختصار: مرجع سريع لسطح المكتب لنظام التشغيل System V الإصدار 4 وسولاريس 7 ( الطبعة الثالثة). سيباستوبول، كاليفورنيا: أورايلي ميديا. الصفحات 151، 187-189 . ISBN 978-1-56592-427-7أُرشف من المصدر الأصلي بتاريخ 13 يوليو 2024. تم الاطلاع عليه بتاريخ 13 يوليو 2024 .
- ↑ جيه إل بنتلي وبي دبليو كيرنيغان. GRAP - لغة لتنسيق الرسوم البيانية (دليل تعليمي ودليل المستخدم) . CSTR #114، مختبرات بيل، أغسطس 1984.
- ↑ جيه إل بنتلي، إل دبليو جيلينسكي، وبي دبليو كيرنيغان. CHEM — برنامج لطباعة مخططات التركيب الكيميائي . CSTR #122، الحوسبة والكيمياء، مختبرات بيل، أبريل 1986.
- ↑ جيه إل بنتلي. دي فورمات - برنامج لتنسيق البيانات . سي إس تي آر رقم 142، مختبرات بيل، أبريل 1988.
- ↑ سانسكرايب: دليل المستخدم والمرجع (الإصدار 3.0 ). ... 13 يناير 1989. الصفحات 1-1 ، 2-1 ، 3-2 ، 6-1 .
- ↑ جوردان، ديفيد؛ ماكديرميد، جون أ.؛ توين، إيان (1991). نيكولز، جيه إي (محرر). CADi– التصميم بمساعدة الحاسوب في Z. ورشة عمل مستخدمي Z، أكسفورد 1990: وقائع الاجتماع السنوي الخامس لمستخدمي Z، أكسفورد: 17-18ديسمبر1990. برلين، هايدلبرغ: سبرينغر-فيرلاغ. الصفحات93-104.
روابط خارجية
- معالج النصوص للمُنَضِّفين
- تاريخ تروف
- تطبيق تروف مجاني
- نسخة مشتقة من OpenSolaris من برنامج troff والبرامج ذات الصلة
- دليل المستخدم لإصدار Plan 9 من برنامج troff (بصيغة PostScript)
- يصف القسم 3 من "تاريخ نظام يونكس قبل بيركلي" تاريخ roff و nroff و troff و ditroff و tbl و eqn والمزيد.
- الكود المصدري الأصلي لـ nroff و troff والمعالجات المسبقة من مختبرات AT&T Bell Labs في شكل Documenter's Workbench (DWB) الإصدار 3.3 (تم نقله إلى أنظمة UNIX الحالية من http://www2.research.att.com/sw/download)
- تروف
- برنامج مجاني للتنضيد
- لغات وصف الصفحة
- تاريخ البرمجيات
- أوامر الخطة 9
- أدوات معالجة النصوص في نظام يونكس
