# تروفف

تروفف، اختصار ل"typesetter roff"، هو العنصر الرئيسي في نظام معالجة الوثائق مطورة من قبل منظمة اي تي اند تي من اجل نظام تشغيل يونكس.
في حين أن nroff كان يهدف إلى إنتاج مخرجات على المحطات الطرفية والطابعات الخطية، كان الهدف من troff هو إنتاج مخرجات على أنظمة التنضيد، وتحديداً أنظمة الرسوميات (كات التي تم تقديمها في عام 1972. كلاهما يستخدم نفس لغة الترميز الأساسية ويمكن عادة استخدام ملف مصدر واحد بواسطة nroff أو troff دون تغيير.
يتميز (تروفف) بأوامر لتعيين الخطوط والتباعد والفقرات والهوامش والحواشي السفلية والمزيد. على عكس العديد من مُنسِّقات النصوص الأخرى، يمكن لـ (تروفف) وضع الأحرف بشكل تعسفي على الصفحة، حتى أنها متداخلة، ولها لغة إدخال قابلة للبرمجة بالكامل. تُستخدم المعالجات الأولية المنفصلة لإنتاج أكثر ملاءمة للجداول والرسوم البيانية والرياضيات. مدخلات (تروفف) هي ملفات نصية عادية يمكن إنشاؤها بواسطة أي محرر نصوص.
تم إنشاء حزم ماكرو واسعة النطاق لأنماط المستندات المختلفة. A توزيع نموذجية من برنامج ترتيب النصوص يشمل لي حدات الماكرو لتنسيق الأبحاث ورجل وحدات الماكرو mdoc لخلق يونيكس رجل صفحات، وحدات الماكرو MV لخلق ركوب الشفاف، ومللي وحدات الماكرو ملم للرسائل والكتب والمذكرات التقنية، والتقارير.

## تاريخ

أصول (تروفف) " الصورة يمكن أن تعزى إلى تنسيق النص برنامج يسمى الجريان السطحي، الذي كتبه جيروم سالتزر ل نظام التشغيل MIT CTSS في منتصف الستينات. (يُزعم أن الاسم جاء من العبارة سأخرجها من المستند.)
نقله بوب موريس إلى GE 635الهندسة المعمارية ودعا البرنامج (roff) (اختصار للجريان السطحي). تم إعادة كتابتها على أنها الترددات اللاسلكية ار اف ل PDP-7، وفي نفس الوقت (1969)، دوغ ماكلروي أعاد كتابة صيغة موسعة ومبسطة من (roff) فيلغة البرمجة بي سي بي ال.
الإصدار الأول من يونيكس تم تطويره في PDP-7 والذي كان موجودًا حول مختبرات بيل. في عام 1971، المطورون أرادو الحصول على PDP-11 لمزيد من العمل على نظام التشغيل. من أجل تبرير تكلفة هذا النظام، اقترحوا أن يقوموا بتنفيذ نظام تنسيق المستندات لقسم براءات الاختراع في مختبرات بيل كان برنامج التنسيق الأول هذا بمثابة إعادة تنفيذ لخطاب ماكلروي ، الذي كتبه جو اف.اوسانا.
عندما احتاجوا إلى لغة أكثر مرونة، تمت كتابة نسخة جديدة من (roff) تسمى (nroff) ("roff" أحدث)، والتي وفرت الأساس لجميع الإصدارات المستقبلية. عندما حصلوا على آلة (كات) للتصوير الضوئي لأنظمة الرسوم البيانية، قامت اوسانا بتعديل (nroff) لدعم الخطوط المتعددة والتباعد النسبي. برنامج ترتيب النصوص يطلق عليها اسم، لroff الطباع، خرج المتطور دهشتها الصانع الطباع والخلط بين المراجعين، الذين اعتقدوا ان ذلك المخطوطات باستخدام برنامج ترتيب النصوص قد نشرت من قبل. على هذا النحو، اسم برنامج ترتيب النصوص غير وضوحا /ˈtiːrɒf/ بدلا من * /ˈtrɒf/ .
مع (Troff)جاء (nroff) (كانوا في الواقع تقريبا نفس البرنامج)، والذي كان لإنتاج الناتج عن الطابعات خط وحرف المحطات. لقد فهم كل شيء قام به (troff) ، وتجاهل الأوامر التي لم تكن قابلة للتطبيق، على سبيل المثال، تغييرات الخط.
وقد كتب برنامج أوسانا لترتيب النصوص في PDP-11 لغة التجميع وينتج الناتج خصيصا لCAT phototypesetter . أعاد كتابته في C ، على الرغم من أنه أصبح الآن 7000 سطر من التعليمات البرمجية غير الموصوفة ولا يزال يعتمد على CAT. نظرًا لأن CAT أصبح أقل شيوعًا، ولم يعد مدعومًا من قبل الشركة المصنعة، أصبحت الحاجة إلى جعله يدعم الأجهزة الأخرى أولوية. توفي Ossanna قبل اكتمال هذه المهمة، لذلك تولى Brian Kernighan مهمة إعادة كتابة (تروفف) . أنتجت النسخة المعاد كتابتها حديثًا رمزًا مستقلًا عن الجهاز كان من السهل جدًا على المعالجات اللاحقة قراءته وترجمته إلى أكواد الطابعة المناسبة. أيضا، وكان هذا الإصدار الجديد من برنامج ترتيب النصوص (غالبا ما تسمى ditroff للجهاز برنامج ترتيب النصوص مستقل) عدة ملحقات، التي شملت الرسم وظائف. وتحدد وثائق البرنامج تنسيق الإخراج من ditroff، والذي يستخدم من قبل العديد من الحيوانات المستنسخة برنامج ترتيب النصوص الحديثة مثل GNU جروف.
جمع برنامج ترتيب النصوص من الأدوات (بما في ذلك ما قبل - وبعد المعالجات) افتتحت في نهاية المطاف <i id="mwcA">منضدة الموثق في</i> (دي دبليو بي)، وكانت تحت التطوير المستمر في مختبرات بيل وبعد ذلك في العرضية يونكس النظام مختبرات (USL) خلال عام 1994. في ذلك الوقت، تولى سوفت كواد الصيانة، على الرغم من استمرار Brian Kernighan في تحسين troff بمفرده. وبالتالي، هناك ما لا يقل عن ما يلي المتغيرات الأصلي للبرنامج ترتيب النصوص مختبرات بيل في الاستخدام:
* (SoftQuad DWB)، استنادًا إلى USL DWB 2.0 من 1994 ؛
* الDWB 3.4 من Lucent Software Solutions (USL سابقًا)؛
* troff ، إصدار الخطة 9.
بينما قد حلت (تروفف) محلها برامج أخرى مثل البينية، و صانع الاطار، ولاتيكس، لا تزال تستخدم على نطاق واسع جدا. يبقى المنسق الافتراضي لوثائق يونكس.
تمت إعادة تطبيق البرنامج باعتباره (groff) لنظام جنو بدءًا من عام 1990. وبالإضافة، يرجع ذلك إلى مصادر مفتوحة من يونيكس القديمة النظم، وكذلك خلفاء الحديثة مثل (ditroff) وجدت على أساس الإصدارات مفتوحة المصدر على أوبن سولاريس والخطة 9 من مختبرات بيل، هناك عدة إصدارات من AT & T برنامج ترتيب النصوص (CAT وditroff القائم) متاح بموجب تراخيص مفتوحة المصدر مختلفة.

## وحدات الماكرو

(تروفف) يتضمن مجموعات من الأوامر تسمى وحدات الماكرو التي يتم تشغيلها قبل البدء في معالجة المستند. وحدات الماكرو تتضمن إعداد رؤوس الصفحات وتذيلاها وتحديد أوامر جديدة والتأثير بشكل عام على كيفية تنسيق الإخراج. إن وسيطة سطر الأوامر لتضمين مجموعة ماكرو هي ام نيم ، مما أدى إلى أن العديد من مجموعات الماكرو تُعرف باسم الملف الأساسي مع بادئة ام.
مجموعات الماكرو القياسية، مع بادئة m هي:
* مان لإنشاء صفحات الدليل
* mdoc لصفحات الدليل ذات التعليقات التوضيحية الدلالية، والتي تتكيف بشكل أفضل مع تحويل mandoc إلى تنسيقات أخرى. mandoc عبارة عن اندماج يدعم مجموعتي الأوامر اليدوية.
* مي لإنشاء الأوراق البحثية
* مم لإنشاء المذكرات
* مس لإنشاء الكتب والتقارير والوثائق الفنية
عادةً ما يتم سرد قائمة أكثر شمولاً لوحدات الماكرو المتوفرة في صفحة دليل tmac(5) .

## المعالجات

مع تطور (تروفف) ، نظرًا لوجود العديد من الأشياء التي لا يمكن القيام بها بسهولة في (تروفف) ، تم تطوير العديد من المعالجات الأولية. تقوم هذه البرامج بتحويل أجزاء معينة من المستند إلى مدخلات (تروفف) ، وتناسب بشكل طبيعي استخدام «خطوط الأنابيب» في نظام Unix - إرسال إخراج أحد البرامج كمدخل إلى آخر (انظر الأنابيب والمرشحات). عادةً ما يترجم كل معالج أولي أقسامًا فقط من ملف الإدخال التي تم تمييزها خصيصًا، ويمرر بقية الملف بدون تغيير. تتم كتابة تعليمات المعالجة المسبقة المضمنة بلغة برمجة بسيطة خاصة بالتطبيق، والتي توفر درجة عالية من القوة والمرونة.
* يسمح المعالج (eqn) المسبق بتحديد الصيغ الرياضية بطريقة بسيطة وبديهية.
* (tbl) هو معالج أولي لتنسيق الجداول.
* الإحالة (والبرمجيات المشابهة) تعالج االاقتباسات في مستند وفقًا لقاعدة بيانات ببليوغرافية.
ثلاثة معالجات أولية توفر ل (تروفف) قدرات رسم من خلال تحديد لغة خاصة بالمجال لوصف الصورة.
* الموافقة المسبقة عن علم هي لغة برمجة إجرائية توفر وظائف رسم مختلفة مثل الدائرة والمربع.
* يسمح الخيار المثالي برسم الصور بشكل إعلاني، واشتقاق الصورة عن طريق حل نظام المعادلات المتزامنة بناءً على المتجهات والتحولات الموصوفة بمدخلاتها.
* (grn) يصف الصور من خلال عناصر رسومية مرسومة في إحداثيات مطلقة، بناءً على تنسيق ملف (gremlin) المحدد بواسطة محطة عمل رسومات مبكرة.
ومع هذا، فإن المزيد من المعالجات السابقة تتيح رسم صور معقدة أكثر عن طريق توليد مخارج للموافقة المسبقة عن علم.
* (grab)يرسم المخططات، مثل المخططات المبعثرة والمدرج التكراري.
* الكيميائي توجه الرسوم البيانية هيكل الكيميائية.
* (dformat) يرسمهياكل البيانات المستندة إلى السجلات.

## إعادة التنفيذ

* (groff) هو بديل مجاني لـ مشروع جنو لكل من (troff) و (nroff).
* (unroff نسخة محفوظة 22 ديسمبر 2008 على موقع واي باك مشين.) هو بديل قابل للتوسيع من (troff) المكتوب في المخطط
* يعتمد تراث الإرث على (troff) من أوبن سولاريس. يتضمن دعمًا لخطوط اوبن تايب ودعمًا محسنًا لخطوط تايب 1 ودعم يونيكود وخوارزمية تنسيق فقرة جديدة ووضع توافق (groff).
* mandoc هو مترجم / منسق متخصص فقط لحزم الماكرو man و mdoc.
* Neatroff هو تطبيق (troff) الجديد، بما في ذلك دعم ميزات الخط المتقدمة والنص ثنائي الاتجاه.