كيفية استخدام Troff لتنسيق مستندات PDF في Linux

Troff هو معالج نصوص مستندات بسيط ولكنه قوي لأنظمة Linux. يتيح لك إنشاء مستندات جاهزة للطباعة بسهولة عن طريق تجميع ملفات المصدر من سطر الأوامر. على عكس LaTeX ، فإن Troff خفيف الوزن بشكل لا يصدق ومثبت مسبقًا على معظم أنظمة Linux. يوضح لك هذا البرنامج التعليمي كيفية استخدام Troff لتنسيق مستندات PDF في Ubuntu.

كيفية استخدام Troff لتنسيق مستندات PDF في Linux - %categories

ما هو Troff ولماذا استخدامه

بالمعنى الأساسي ، Troff هو برنامج معالجة نصوص يحول البرامج النصية التي تشبه التعليمات البرمجية إلى مستندات قابلة للطباعة. على عكس معالجات الكلمات ، لا يعتمد Troff على نموذج “WYSIWYG”. بدلاً من ذلك ، يتطلب منك استخدام أنواع معينة من التعليمات البرمجية للتعامل مع التنسيق الخاص بك.

كيفية استخدام Troff لتنسيق مستندات PDF في Linux - %categories

تعد البساطة واحدة من أكبر مزايا هذا الأسلوب. سيحتوي التثبيت الأساسي لـ Troff على كل ما تحتاجه لإنشاء مستند. علاوة على ذلك ، فإن افتقارها إلى واجهة مستخدم رسومية يعني أنه يمكنك إنشاء مستند حتى عبر SSH.

كيفية استخدام Troff لتنسيق مستندات PDF في Linux - %categories

نصيحة: تعرف على كيفية إعادة توجيه تطبيقات واجهة المستخدم الرسومية عبر SSH في Linux.

تثبيت Troff

غالبًا ما يتم تجميع Troff افتراضيًا في معظم توزيعات Linux. يمكنك التحقق مما إذا كان لديك في نظامك عن طريق تشغيل علامة -h الخاصة به. سيعرض هذا قائمة مختصرة بجميع العلامات التي يقبلها تثبيت Troff.

troff -h

كيفية استخدام Troff لتنسيق مستندات PDF في Linux - %categories

هناك حالات لا تجمع فيها التوزيعات Troff افتراضيًا. في هذه الحالة ، يمكنك تثبيته بالبحث عن الحزمة “groff”.

كيفية استخدام Troff لتنسيق مستندات PDF في Linux - %categories

هذا إعادة تنفيذ لبرامج Troff و Nroff بواسطة مشروع GNU ، والذي يتضمن عددًا من الميزات الجديدة والحديثة.

يمكنك تثبيت groff في Ubuntu باستخدام الأمر التالي:

sudo apt install groff

كيفية استخدام Troff لتنسيق مستندات PDF في Linux - %categories

إنشاء مستند Troff الأول

على غرار التعليمات البرمجية المصدر ، كل مستند Troff عبارة عن ملف نصي يحتوي على إرشادات حول كيفية إنشاء مستند. يتضمن ذلك عرض الصفحة والهامش بالإضافة إلى تباعد الأحرف والصفحات.

كيفية استخدام Troff لتنسيق مستندات PDF في Linux - %categories

يسمح لك مستوى التحكم هذا بمعالجة البرنامج لإنشاء أي نوع من المستندات. لتبسيط ذلك ، أنشأ مطورو Troff “وحدات ماكرو” تكثف هذه الأوامر إلى صيغة أبسط.

كيفية استخدام Troff لتنسيق مستندات PDF في Linux - %categories
أحد أكثر وحدات الماكرو شيوعًا التي ستستخدمها في Troff هو “مللي ثانية”. سيتم إنشاء مستند بأسلوب المقالة. يمكنك إنشاء مستند ms باستخدام الأمر touch:

touch my-first-document.ms

نظرًا لأن جميع مستندات Troff هي نصوص ، يمكنك فتح المستند باستخدام محرر نصوص. في حالتي ، أنا أستخدم vim. بدلاً من ذلك ، يمكنك استخدام أي من برامج تحرير النصوص هذه لنظام التشغيل Linux.

vim my-first-document.ms

كيفية استخدام Troff لتنسيق مستندات PDF في Linux - %categories

فهم تنسيق Troff

تتبع جميع مستندات Troff بنية مماثلة. يجب أن يكون كل أمر تنسيق تقوم به في سطر منفصل في المحتوى الذي يحاول تنسيقه. على هذا النحو ، سيبدو مستند Troff النموذجي كما يلي:

.COMMAND1
This is a piece of content in a Troff document.
 
.COMMAND2
This is a different piece of content in a Troff document.

اثنان من أكثر الأوامر الأساسية التي ستستخدمها في مللي ثانية هما TL و .PP. الأول يحول النص الخاص بك إلى عنوان ويقوم بتوسيطه في المستند الخاص بك ، بينما يقوم الأخير بتنسيق النص الخاص بك ليتبع نمطًا يشبه الفقرة.

اقرأ أيضا:  دليل المبتدئين لبرمجة Shell في Linux

على سبيل المثال ، يستخدم المقتطف التالي كلا الأمرين TL و .PP:

.TL
My First Troff Document
 
.PP
This is content that I want to look like a paragraph in my final document. It is not a very long content but it is my first Troff document and it is something that I am proud of. It is about three sentences long and it should wrap around the document properly.

كيفية استخدام Troff لتنسيق مستندات PDF في Linux - %categories

من هنا ، قم بإنشاء المستند الخاص بك عن طريق تمرير ملفك إلى برنامج Troff.

groff -ms -Tpdf ./my-first-document.ms > output.pdf

كيفية استخدام Troff لتنسيق مستندات PDF في Linux - %categories

نصيحة: إذا كنت تفضل شيئًا أبسط ، فتعلم كيفية الكتابة بتنسيق MLA في محرر مستندات Google.

إنشاء نص غامق ومائل وتسطير

تمامًا مثل معالج النصوص العادي ، توفر معظم وحدات Troff macros عددًا من أوامر النمط لتخصيص المستند. بالنسبة إلى ms ، هذه هي .B و. I و. UL و .BX.

  • يغير الأمر B النص إلى غامق.
  • يغير الأمر .I النص إلى الخط المائل.
  • UL و. BX هما أمران يرسمان تسطيرًا ومربعًا حول النص ، على التوالي.

على غرار الأوامر أعلاه ، يتطلب استخدام هذه الأوامر في مستندك فصل كل نمط على سطر خاص به:

.TL
My First Troff Document
 
.PP
This is
.B
content
.R
that I want to look like a paragraph in my final document. [...]

في هذا المثال ، أنشأت سطرًا جديدًا قبل كلمة “محتوى” وأضفت الأمر .B لتغييره إلى غامق ، ثم أنشأت سطرًا جديدًا وأضفت الأمر .R. هذا يسمح لـ Troff بالعودة إلى أسلوبه السابق.

كيفية استخدام Troff لتنسيق مستندات PDF في Linux - %categories

من المهم ملاحظة أنك تحتاج دائمًا إلى إضافة الأمر .R عند تغيير النمط. على سبيل المثال ، لن يؤدي المقتطف التالي إلى إنهاء الأمر .I لأن Troff لم ير ملف .R بعده:

.TL
My First Troff Document
 
.PP
This is
.I
content
that I want to look like a paragraph in my final document. [...]

كيفية استخدام Troff لتنسيق مستندات PDF في Linux - %categories

إنشاء أقسام وثيقة جديدة

على غرار LaTeX ، يدعم Troff أيضًا اكتشاف الأقسام والتسلسل الهرمي ، لذلك لا تحتاج إلى ترتيب ومطابقة مستوى كل رأس عند التحرير.

اقرأ أيضا:  كيفية تثبيت Linux على M1 Mac باستخدام Apple Silicon

لإنشاء قسم جديد في المستند الخاص بك ، استخدم الأمر .NH متبوعًا باسم العنوان الخاص بك.

.TL
My First Troff Document
 
.NH
My First Heading
.PP
This is content that I want to look like a paragraph in my final document.

كيفية استخدام Troff لتنسيق مستندات PDF في Linux - %categories

بشكل افتراضي ، يحتوي كل رأس Troff على قيمة مستوى تحدد كيفية بناء البرنامج وعرض محتواه في المستند النهائي. مع العلم أنه يمكنك تغيير هذه القيمة لضبط مستوى العنوان.

على سبيل المثال ، يؤدي ما يلي إلى إنشاء عنوان من المستوى 2 أسفل الأصل مباشرة:

.TL
My First Troff Document
 
.NH
My First Heading
.NH 2
My First Subheading
.PP
This is content that I want to look like a paragraph in my final document.

كيفية استخدام Troff لتنسيق مستندات PDF في Linux - %categories

بصرف النظر عن الرؤوس المرقمة العادية ، يمكن لـ Troff أيضًا إنشاء رؤوس فارغة ستظل تتبع التسلسل الهرمي لمستوى المستند.

للقيام بذلك ، استبدل .NH بأمر SH:

.TL
My First Troff Document
 
.SH
My First Heading
.SH 2
My First Subheading
.PP
This is content that I want to look like a paragraph in my final document.

كيفية استخدام Troff لتنسيق مستندات PDF في Linux - %categories

نصيحة: تعرف على كيفية تغيير الهوامش في محرر مستندات Google.

إنشاء قوائم في Troff

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

تتكون كل قائمة في Troff من ثلاثة أجزاء: مسافة بادئة ورصاصة ومحتوى. لإنشاء مسافة بادئة ، استخدم الأمرين .RS و. RE. سيؤدي ذلك إلى تحريك مستوى المسافة البادئة الحالي لأي نص بداخله بمقدار أربع مسافات.

.RS
This is my first item.
.RE

كيفية استخدام Troff لتنسيق مستندات PDF في Linux - %categoriesبعد ذلك ، قم بإنشاء الرمز النقطي لعنصر القائمة الخاص بك باستخدام .IP. هذا هو أمر “مسافة بادئة للفقرة” الذي يعمل على إصلاح الهامش الأيسر للنص بعرض معين.

يسمح لك الأمر IP أيضًا بتعيين نقطة تعداد مخصصة والمسافة بينها وبين النص الخاص بك. في هذه الحالة ، أقوم بضبط الرمز النقطي الخاص بي على “[1]” وسأعطيه أربع مسافات.

.RS
.IP [1] 4
This is my first item.
.RE

كيفية استخدام Troff لتنسيق مستندات PDF في Linux - %categoriesالآن انسخ والصق أمر IP الخاص بك لإنشاء عناصر قائمة إضافية.

.RS
.IP [1] 4
This is my first item.
.IP [2] 4
This is my second item.
.IP [3] 4
This is my third item.
.RE

كيفية استخدام Troff لتنسيق مستندات PDF في Linux - %categories

أخيرًا ، قم بأتمتة هذه العملية عن طريق إنشاء ماكرو مخصص. على سبيل المثال ، يربط المقتطف التالي أمر IP الخاص بي بـ QW.

.de QW
.IP [-] 4
..
 
.RS
.QW
This is my first item.
.QW
This is my second item.
.QW
This is my third item.
.RE

كيفية استخدام Troff لتنسيق مستندات PDF في Linux - %categories

إنشاء الجداول مع المعالجات المسبقة في Troff

أحد الأمور الغريبة في Troff هو أن معظم ميزاته موجودة كـ “معالجات أولية”. بالنسبة للجزء الأكبر ، هذه ثنائيات خارج البرنامج تعمل عن طريق إنشاء “برامج نصية لحاوية المعالج المسبق” وتحويلها إلى كود Troff ذي المستوى المنخفض.

اقرأ أيضا:  كيفية حماية كمبيوتر Linux الخاص بك من محركات أقراص USB الإحتيالية

كيفية استخدام Troff لتنسيق مستندات PDF في Linux - %categories

يُعد Tbl مثالًا رائعًا على معالج Troff المسبق. إنه برنامج يدير الجداول في مستند. تبدو حاوية Tbl الأساسية كما يلي:

.TS
allbox ;
c c c.
item1 <Tab> item2 <Tab> item3
item4 <Tab> item5 <Tab> item6
 
.TE
  • يخبر الأمران .TS و .TE Tbl أن هذه بيئة يمكنه قراءتها.
  • يخبر السطر الثاني البرنامج بكيفية تنسيق هذا الجدول.
  • السطر الثالث هو حقل مفصول بمسافة يحدد مقدار الأعمدة ومحاذاة الجدول الخاص بك.
  • السطران الرابع والخامس عبارة عن حقول مفصولة بعلامات جدولة تحتوي على محتويات الجدول الخاص بك.

كيفية استخدام Troff لتنسيق مستندات PDF في Linux - %categories

يختلف تجميع مستند باستخدام Tbl قليلاً عن ملف Troff العادي. أولاً ، قم بتحميل ملفك:

tbl my-first-document.ms > preprocessed.ms

بعد ذلك ، قم بتغذية إخراج البرنامج إلى Troff:

groff -ms -Tpdf ./preprocessed.ms > output.pdf

أخيرًا ، أتمتة هذه العملية باستخدام أنابيب UNIX:

tbl my-first-document.ms | groff -ms -Tpdf > output.pdf

كيفية استخدام Troff لتنسيق مستندات PDF في Linux - %categories

أسئلة شائعة:

س1: هل من الممكن استخدام Troff في Windows؟

الجواب. بشكل افتراضي ، لا يتم نقل Troff و Groff رسميًا إلى Windows. على الرغم من ذلك ، لا يزال بإمكانك استخدام Groff مع أدوات GNU الأخرى عن طريق تثبيت نظام Windows الفرعي لنظام Linux.

س2: هل لدى Troff ميزة تتبع ببليوغرافيا؟

الجواب. نعم. الإحالة هي معالج أولي بسيط يستخدم ملف ببليوغرافيا خارجيًا لتتبع المراجع تلقائيًا في مستند Troff. يمكنك معرفة المزيد حول كيفية عملها من خلال زيارة صفحة الدليل الخاصة بها عن طريق تشغيل man الإحالة.

س3: كيف يمكنني إصلاح خطأ “DESC المفقود” عند تجميع Troff؟

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

قد يعجبك ايضا