كتيبات سطر الأوامر

Man » دليل groff عبر الإنترنت - وثائق مفصلة عبر الإنترنت لصفحة دليل groff

🌍
groff - واجهة أمامية لنظام GNU roff لتنسيق المستندات

ملخص

groff [-abcCeEgGijklNpRsStUVXzZ] [-d ctext] [-d string=text] [-D fallback-encoding] [-f fontfamily] [-F font-directory] [-I inclusion-directory] [-K input-encoding] [-L spoolerargument] [-m macro-package] [-M macro-directory] [-n page-number] [-o page-list]
[-P postprocessor-argument] [-r cnumeric-expression] [-r register=numeric-expression]
[-T output-device] [-w warning-category] [-W warning-category] [file ...]

groff -h
groff --help

groff -v [option ...] [file ...]
groff --version [option ...] [file ...]

الوصف

groff هي الواجهة الرئيسية لنظام GNU roff لتنسيق المستندات. GNU roff هو نظام تنسيق يعالج ملفات نصية بسيطة تتضمن أوامر تنسيق لإنتاج مخرجات بتنسيق PostScript أو PDF أو HTML أو DVI أو تنسيقات أخرى، أو للعرض على الطرفية. يمكن أن تكون أوامر التنسيق عبارة عن عمليات تنسيق أساسية أو وحدات ماكرو من حزمة مُزوَّدة، أو وحدات ماكرو مُعرَّفة من قِبل المستخدم. يمكن دمج جميع الأساليب الثلاثة. إذا لم يتم تحديد أي ملفات، أو إذا كان الملف هو "-"، فستقرأ groff من مجرى الإدخال القياسي.

groff هو إصدار مُعاد تنفيذه ومُوسع للمُنسِّق من نظام AT&T Unix، وهو موجود في معظم أنظمة POSIX نظرًا لارتباطه الطويل بدليل Unix (بما في ذلك صفحات الدليل). وهو ونسخته السابقة معروفان بإنتاجهما العديد من الكتب الأكثر مبيعًا في مجال هندسة البرمجيات. groff قادر على إنتاج مستندات متطورة من الناحية الطباعية مع استهلاك الحد الأدنى من موارد النظام.

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

الخيارات

-h و --help يعرضان رسالة استخدام ويخرجان.

نظرًا لأن groff يهدف إلى تجميع معظم عمليات استدعاء المستخدمين المباشرة لبرنامج troff (1)، فإن البرنامجين يشتركان في مجموعة من الخيارات. ومع ذلك، لدى groff بعض الخيارات التي لا يمتلكها troff، أو التي يفسرها بشكل مختلف. في الوقت نفسه، ليست كل خيارات troff الصالحة قابلة للاستخدام مع groff.

خيارات خاصة بـ groff

الخيارات التالية إما أنها غير موجودة في GNU troff أو أنها تُفسَّر بشكل مختلف بواسطة groff.

-D enc تعيين ترميز الإدخال الاحتياطي المستخدم بواسطة preconv (1) إلى enc؛ يعني -k.

-e قم بتشغيل المعالج المسبق eqn (1).

-g قم بتشغيل المعالج المسبق grn (1).

-G قم بتشغيل المعالج المسبق grap (1)؛ يعني -p.

-I dir يعمل كخيار troff (انظر أدناه)، ولكنه يعني أيضًا -g و -s. يتم تمريره إلى soelim (1) وبرنامج تشغيل الإخراج، ويتم تمرير -M إلى grn كمعامل له.

-j     قم بتشغيل المعالج المسبق chem(1)؛ يعني هذا الخيار -p.

-k     قم بتشغيل المعالج المسبق preconv(1). راجع صفحته الخاصة لمعرفة سلوكه إذا لم يتم تحديد أي من خيارات groff، وهما -K أو -D.

-K enc قم بتعيين ترميز الإدخال المستخدم بواسطة المعالج المسبق preconv(1) إلى `enc`؛ يعني هذا الخيار -k.

-l     أرسل الإخراج إلى برنامج معالجة للطباعة. يحدد التوجيه "print" في ملف وصف الجهاز الأمر الافتراضي الذي سيتم استخدامه؛ انظر groff_font(5). إذا لم يكن هناك توجيه كهذا لجهاز الإخراج، فسيتم توجيه الإخراج إلى lpr(1). انظر الخيارات -L و -X.

-L arg مرر `arg` إلى برنامج معالجة الطباعة. إذا كانت هناك حاجة إلى وسائط متعددة، فمرر كل وسيطة باستخدام خيار -L منفصل. لا يضيف groff بادئة شرطة إلى `arg` قبل تمريرها إلى برنامج المعالجة.

-M     يعمل مثل خيار troff (انظر أدناه)، ولكنه يتم تمريره أيضًا إلى eqn(1) و grap(1) و grn(1).

-N     يمنع الأسطر الجديدة بين محددات eqn: مرر -N إلى eqn(1).

-p     قم بتشغيل المعالج المسبق pic(1).

-P arg مرر `arg` إلى المعالج اللاحق. إذا كانت هناك حاجة إلى وسائط متعددة، فمرر كل وسيطة باستخدام خيار -P منفصل. لا يضيف groff بادئة شرطة إلى `arg` قبل تمريرها إلى المعالج اللاحق.

-R     قم بتشغيل المعالج المسبق refer(1). لا توجد آلية لتمرير الوسائط إلى refer لأن معظم خيارات refer لها عناصر لغة مكافئة يمكن تحديدها داخل المستند.

-s     قم بتشغيل المعالج المسبق soelim(1).

-S     تشغيل في "وضع أكثر أمانًا"؛ انظر -U أدناه للحصول على عكس ذلك. لأسباب تتعلق بالأمان، يتم تمكين الوضع الأكثر أمانًا افتراضيًا.

-t     قم بتشغيل المعالج المسبق tbl(1).

-T dev قم بتوجيه troff لتنسيق الإدخال لجهاز الإخراج `dev`. ثم يستدعي groff برنامج تشغيل إخراج لتحويل إخراج troff إلى شكل مناسب لـ `dev`؛ انظر القسم الفرعي "أجهزة الإخراج" أدناه.

-U     تشغيل في وضع غير آمن: مرر الخيار -U إلى pic و troff.

-v
--version

اكتب معلومات الإصدار لـ groff وجميع البرامج التي يتم تشغيلها بواسطة groff إلى تيار الإخراج القياسي؛ أي أن سطر الأوامر المحدد تتم معالجته بالطريقة المعتادة، مع تمرير -v إلى المنسق وأي معالجات مسبقة أو لاحقة يتم استدعاؤها.

-V     أخرج مسار العمل الذي سيقوم groff بتشغيله إلى تيار الإخراج القياسي، ولكن لا تقم بتشغيله. إذا تم إعطاء هذا الخيار أكثر من مرة، فسيقوم groff بكتابة وتشغيل مسار العمل.

-X     استخدم gxditview(1) بدلاً من المعالج اللاحق المعتاد لمعاينة مستند على شاشة X11. يؤدي الجمع بين هذا الخيار و -Tps إلى استخدام مقاييس الخطوط الخاصة بجهاز PostScript، بينما تستخدم الخيارات -TX75 و -TX100 مقاييس خطوط X11.

-Z     تعطيل المعالجة اللاحقة. سيظهر إخراج troff على تيار الإخراج القياسي (إلا إذا تم قمعه باستخدام -z)؛ انظر groff_out(5) للحصول على وصف لهذا التنسيق.

الخيارات الشفافة

يتم تمرير الخيارات التالية كما هي إلى برنامج المنسق troff(1) ويتم وصفها بمزيد من التفصيل في صفحته الخاصة.


-a     توليد تقريب نصي لإخراج النص المنسق.

-b     كتابة تتبع إلى تدفق الخطأ القياسي في كل خطأ أو تحذير.

-c     ابدأ مع تعطيل إخراج الألوان.

-C     تمكين وضع توافق AT&T troff؛ يعني -c.

-d cs
-d name=string
تعريف سلسلة.

-E     منع رسائل خطأ troff؛ يعني -Ww.

-f fam تعيين عائلة الخط الافتراضية.

-F dir ابحث في الدليل dir عن دليل الجهاز والأوصاف الخاصة بالجهاز المحدد.

-i     معالجة الإدخال القياسي بعد الملفات المحددة.

-I dir ابحث في الدليل dir عن الملفات المدخلة.

-m name
معالجة name.tmac قبل الملفات المدخلة.

-M dir ابحث في الدليل dir عن ملفات الماكرو.

-n num قم بترقيم الصفحة الأولى بالرقم num.

-o list
إخراج الصفحات الموجودة في القائمة فقط.

-r cnumeric-expression
-r register=numeric-expression
تعريف تسجيل.

-w name
-W name
تمكين (-w) أو منع (-W) إصدار التحذيرات في الفئة name.

-z     قم بقمع إخراج الجهاز المستقل المنسق من troff.

الاستخدام

يتبع هيكل نظام GNU roff هيكل تطبيقات roff المستقلة عن الجهاز الأخرى، ويتكون من معالجات مسبقة، وحزم ماكرو، ومشغلات إخراج (أو "معالجات لاحقة")، ومجموعة من الأدوات، والمُنسِّق troff في صلب الأمر. انظر roff(7) للحصول على نظرة عامة حول كيفية عمل نظام roff.

تسهل البرامج الأمامية المتاحة في نظام GNU roff عملية الاستخدام مقارنة بتطبيقات roff التقليدية التي تتطلب إنشاء خطوط أو استخدام ملفات مؤقتة لنقل مستند المصدر من تنسيق قابل للصيانة إلى تنسيق جاهز للجهاز. يلخص ما يلي المكونات المكونة لنظام GNU roff. إنه يكمل roff(7) بمعلومات خاصة بـ groff.

البدء

قد يفضل أولئك الذين يفضلون التعلم من خلال التجربة أو يرغبون في الحصول على تعليقات سريعة من النظام البدء بمستند "Hello, world!".

$ echo "Hello, world!" | groff -Tascii | sed '/^$/d'

Hello, world!

استخدمنا أمر sed فقط لإزالة 65 سطرًا فارغًا والتي من شأنها أن تغمر شاشة المحطة الطرفية. (تم تطوير أنظمة roff في أيام المحطات الطرفية القائمة على الورق التي تحتوي على 66 سطرًا في الصفحة).

قد يفضل مستخدمو اليوم إخراجًا إلى محطة طرفية تدعم UTF-8.

$ echo "Hello, world!" | groff -Tutf8 | sed '/^$/d'

إنتاج PDF أو HTML أو DVI الخاص بـ TeX أمر بسيط أيضًا. قد يكون الجزء الصعب هو اختيار برنامج عارض للإخراج.

$ echo "Hello, world!" | groff -Tpdf > hello.pdf
$ evince hello.pdf
$ echo "Hello, world!" | groff -Thtml > hello.html
$ firefox hello.html
$ echo "Hello, world!" | groff -Tdvi > hello.dvi
$ xdvi hello.html

استخدام groff كـ REPL

قد يسر أولئك الذين لديهم ميل برمجي أنهم يستطيعون استخدام groff في حلقة قراءة وتقييم وطباعة (REPL). يمكن أن يكون هذا مفيدًا للتحقق من فهم المرء لسلوك المنسق و/أو بناء الجملة الذي يقبله. يمكن أن يساعد تشغيل جميع التحذيرات باستخدام -ww في تحقيق هذا الهدف.

$ groff -ww -Tutf8
# هذا تعليق. دعنا نحدد تسجيلًا.
.nr a 1
# قم بإجراء عمليات حسابية عددية باستخدام العمليات التي يتم تقييمها من اليسار إلى اليمين.
.nr b \n[a]+5/2
# دعنا نحصل على النتيجة في تدفق الخطأ القياسي.
.tm \n[b]
3   # سنقوم الآن بتعريف سلسلة.
.ds name Leslie" This is another form of comment.
.nr b (\n[a] + (7/2))
# قم بوضع النص المدخل التالي في المنتصف.
.ce 2
Hi, \\*[name].
Your secret number is \n[b].
# سنرى أن القسمة مقربة نحو الصفر.
It is
# فيما يلي هيكل تحكم if-else.
.ie (\n[b] % 2) odd.
.el even.
# يؤدي هذا الخدعة إلى تعيين طول الصفحة على الموضع الرأسي الحالي، بحيث لا تظهر الأسطر الفارغة عند الانتهاء.
.pl \n[nl]u
<Control-D>
Hi, Leslie.
Your secret number is 4.
It is even.

تنسيق الورق

في GNU roff، يتم التعامل مع أبعاد الصفحة لكل من برنامج التنسيق troff وأجهزة الإخراج بشكل منفصل. في برنامج التنسيق، يتم استخدام الطلبات لتعيين طول الصفحة (.pl)، وإزاحة الصفحة (أو الهامش الأيسر، .po)، وطول السطر (.ll). لا يتم تكوين الهامش الأيمن بشكل صريح؛ يوفر الجمع بين إزاحة الصفحة وطول السطر المعلومات اللازمة لاشتقاقه. يوفر حزمة وحدات الماكرو papersize، التي يتم تحميلها تلقائيًا بواسطة troff، واجهة لتكوين أبعاد الصفحة عن طريق أسماء ملائمة، مثل "letter" أو "A4"؛ راجع groff_tmac(5). الإعداد الافتراضي لبرنامج التنسيق في هذا التثبيت هو "A4".

يقع على عاتق كل حزمة وحدات ماكرو احترام أبعاد الصفحة التي تم تكوينها بهذه الطريقة. تقدم بعضها آليات بديلة.

بالنسبة لكل جهاز إخراج، يمكن تعيين حجم وسيط الإخراج في ملف DESC الخاص به. تتعرف معظم برامج تشغيل الإخراج أيضًا على خيار سطر الأوامر -p لتجاوز الأبعاد الافتراضية وخيار -l لاستخدام التوجه الأفقي. راجع groff_font(5) للحصول على وصف للتوجيه papersize، الذي يأخذ وسيطة بنفس الشكل الذي يأخذه -p. قد تكون صفحة دليل برنامج تشغيل الإخراج، مثل grops(1)، مفيدة أيضًا. يستخدم groff خيار سطر الأوامر -P لتمرير الخيارات إلى أجهزة الإخراج؛ على سبيل المثال، استخدم ما يلي للإخراج بتنسيق PostScript على ورق A4 في التوجه الأفقي.

groff -Tps -dpaper=a4l -P-pa4 -P-l -ms foo.ms > foo.ps

الواجهة الأمامية

برنامج groff هو برنامج تغليف حول برنامج troff(1). يسمح بتحديد المعالجات المسبقة عبر خيارات سطر الأوامر وتشغيل المعالج اللاحق المناسب لجهاز الإخراج المحدد تلقائيًا. من خلال القيام بذلك، يمكن تجنب الإنشاء اليدوي لخطوط الأوامر أو إدارة الملفات المؤقتة المطلوبة لمستخدمي أنظمة roff(7) التقليدية. استخدم برنامج grog(1) لاستنتاج سطر أوامر groff مناسب لتنسيق مستند.

اللغة

الإدخال إلى نظام roff هو نص عادي متشابك مع أسطر تحكم وتسلسلات هروب. يشكل هذا المزيج مستندًا في إحدى عائلات اللغات التي نسميها أيضًا roff؛ راجع roff(7) للحصول على معلومات أساسية. يمكن العثور على نظرة عامة على بناء جملة ولغة GNU roff، بما في ذلك قوائم لجميع تسلسلات الهروب والطلبات والسجلات المعرفة مسبقًا، في groff(7). التفاصيل حول امتدادات GNU roff إلى لغة AT&T troff، وهي مجموعة فرعية شائعة من لهجات roff الموجودة اليوم، موجودة في groff_diff(7).


المعالجات الأولية

المعالِج الأولي يفسّر لغةً خاصةً بالمجال، ينتج عنها مخرجات بلغة [roff]. غالبًا ما يقتصر هذا الإدخال على أقسام أو مناطق من ملف إدخال [roff] (محاطة باستدعاءات وحدات كبيرة خاصة بكل معالج أولي)، والتي يستبدلها. لذلك، غالبًا ما يفسّر المعالجات الأولية مجموعة فرعية من صيغة [roff] إلى جانب لغتها الخاصة. يوفر [GNU roff] تطبيقات جديدة لمعظم المعالجات الأولية المألوفة لمستخدمي [AT&T troff]؛ غالبًا ما تحتوي هذه التطبيقات على ميزات موسعة و/أو تتطلب [GNU troff] لتنسيق مخرجاتها.

[tbl] يرتب الجداول؛
[eqn] ينسق المعادلات الرياضية؛
[pic] يرسم الرسوم التوضيحية؛
[refer] يعالج المراجع الببليوغرافية؛
[soelim] يعالج ملفات الإدخال "المستوردة"؛
[grn] يعرض رسوم [gremlin(1)]؛
[chem] يرسم الصيغ الهيكلية الكيميائية باستخدام [pic]؛
[gperl] يملأ سجلات وسلاسل [groff] باستخدام [perl(1)]؛
[glilypond] يضمّن نوتات موسيقى [LilyPond]؛ و
[gpinyin] يسهّل إدخال اللغة الصينية الماندرين باستخدام نظام [Hanyu Pinyin].

المعالِج الأولي الفريد لـ [GNU roff] هو [preconv(1)]، الذي يحول التشفيرات المختلفة للإدخال إلى شيء يمكن لـ [GNU troff] فهمه. عند استخدامه، يتم تشغيله قبل أي معالجات أولية أخرى.

تضمّ معظم المعالجات الأولية المحتوى بين زوج من الرموز المميزة. يجب أن يظهر هذا الرمز المميز في بداية سطر الإدخال ويستخدم حرف التحكم النقطة. يجب ألا توجد مسافات أو علامات تبويب بعد حرف التحكم أو قبل نهاية سطر الإدخال. يؤدي الانحراف عن هذه القواعد إلى منع المعالج الأولي من التعرف على الرمز المميز. يتم بشكل عام الحفاظ على الرموز المميزة في مخرجات المعالج الأولي وتفسيرها على أنها استدعاءات وحدات كبيرة بواسطة [troff] لاحقًا. المعالج الأولي المثالي غير متوفر بعد في [groff].

┌──────────────┬─────────────────┬────────────────┐
│ معالج أولي  │ رمز البداية    │ رمز النهاية   │
├──────────────┼─────────────────┼────────────────┤
│     [chem]    │     .[cstart]   │     .[cend]    │
│     [eqn]     │       .[EQ]     │      .[EN]     │
│     [grap]    │       .[G1]     │      .[G2]     │
│     [grn]     │       .[GS]     │      .[GE]     │
│    [ideal]    │       .[IS]     │      .[IE]     │
│              │                 │      .[IF]     │
│     [pic]     │       .[PS]     │      .[PE]     │
│              │                 │      .[PF]     │
│              │                 │      .[PY]     │
│    [refer]    │       .[R1]     │      .[R2]     │
│     [tbl]     │       .[TS]     │      .[TE]     │
├──────────────┼─────────────────┼────────────────┤
│  [glilypond]  │ .[lilypond start] │ .[lilypond stop] │
│    [gperl]    │   .[Perl start]   │   .[Perl stop]   │
│   [gpinyin]   │  .[pinyin start]  │  .[pinyin stop]  │
└──────────────┴─────────────────┴────────────────┘

حزم الماكرو

ملفات الماكرو هي ملفات إدخال roff مصممة لإنتاج أي مخرجات، بل تسهل إعداد مستندات roff أخرى. عند تثبيت ملف ماكرو في موقع قياسي ومناسب للاستخدام من قبل جمهور عام، يُطلق عليه اسم حزمة ماكرو.

يمكن تحميل حزم الماكرو قبل أي مستندات إدخال roff باستخدام الخيار -m. يقوم نظام GNU roff بتنفيذ معظم حزم الماكرو المعروفة لـ AT&T troff بطريقة متوافقة ويوسعها. لها أسماء مكونة من حرف واحد أو حرفين، ناتجة عن ممارسات مكثفة في تسمية الاقتصاد في الحقبة الأولى من ثقافة Unix، وهو نهج موجز أدى إلى تحديد العديد من الحزم في الاستخدام العام مع حرف خيار nroff و troff المستخدم لاستدعائها، وأحيانًا مع تأثير مرح، كما هو الحال مع "man" (اختصار لـ "دليل")، وحتى مع الشرطة، كما في حالة الحزمة s، المعروفة بشكل أفضل باسم ms أو حتى -ms.

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

`an` تُستخدم لإنشاء صفحات الدليل بالتنسيق الذي نشأ في الإصدار 7 من Unix (1979)؛ انظر `groff_man(7)`. يمكن تحديدها في سطر الأوامر كـ `-man`.

`doc` تُستخدم لإنشاء صفحات الدليل بالتنسيق الذي نشأ في 4.3BSD-Reno (1990)؛ انظر
`groff_mdoc(7)`. يمكن تحديدها في سطر الأوامر كـ `-mdoc`.

`e` هي مجموعة الماكرو متعددة الأغراض من Berkeley، التي تم تطويرها كبديل لمجموعة AT&T `s`؛ انظر
`groff_me(7)`. يمكن تحديدها في سطر الأوامر كـ `-me`.

`m` تنفذ التنسيق المستخدم بواسطة مجموعة الماكرو AT&T متعددة الأغراض من الجيل الثاني للمستندات العامة، وهو خليفة لـ `s`؛ انظر `groff_mm(7)`. يمكن تحديدها في سطر الأوامر كـ `-mm`.

`om` (يُطلق عليها دائمًا "mom") هي حزمة حديثة كتبها بيتر شافتر خصيصًا لـ

GNU roff. راجع دليل mom HTML للحصول على وثائق شاملة. يمكن تحديدها في سطر الأوامر كـ -mom.

`s` هي مجموعة مستندات AT&T الأصلية متعددة الأغراض؛ انظر `groff_ms(7)`. يمكن تحديدها في سطر الأوامر كـ `-ms`.

البعض الآخر عبارة عن ملحقات. على سبيل المثال، andoc هي حزمة تغليف خاصة بـ GNU roff تحدد ما إذا كان المستند يستخدم تنسيق man أو mdoc وتحمل حزمة الماكرو المقابلة. يمكن تحديدها في سطر الأوامر كـ -mandoc. قد يستخدم برنامج مكتبة man ملف الماكرو هذا لتفويض تحميل حزمة الماكرو الصحيحة؛ وبالتالي، ليس من الضروري أن يقوم man نفسه بفحص محتويات المستند لتحديد المشكلة.


تعمل العديد من ملفات الماكرو على توسيع وظيفة حزم الخدمات الكاملة، أو مستندات roff التي لا تستخدم هذه الحزمة – وغالبًا ما توصف الأخيرة بأنها "خام". يتم وصف هذه الحزم المساعدة، بالإضافة إلى تفاصيل تسمية ملفات الماكرو وموضعها، في groff_tmac(5).

المحولات

المحول، وهو البرنامج الذي يفسر مدخلات لغة roff، هو troff(1). يوفر ميزات برنامجي AT&T troff و nroff بالإضافة إلى العديد من الإضافات. يقوم خيار سطر الأوامر -C بتبديل troff إلى وضع التوافق، والذي يحاول محاكاة AT&T troff بأكبر قدر ممكن من الدقة لتمكين تنسيق المستندات المكتوبة للنظام القديم.

تحاكي سكريبت shell، nroff(1)، سلوك AT&T nroff. يحاول ترميز الإخراج بشكل صحيح بناءً على الإعدادات المحلية، مما يزيل الحاجة إلى تحديد جهاز إخراج باستخدام الخيار -T، وبالتالي فهو مناسب للاستخدام مع أجهزة إخراج الطرفية، كما هو موضح في القسم التالي.

ينتج GNU troff إخراجًا بلغة وصف صفحات مستقلة عن الجهاز، ولكنها ليست مستقلة تمامًا عن الجهاز، ويتم وصفها بالتفصيل في groff_out(5).

أجهزة الإخراج

يتم تنسيق إخراج troff لجهاز إخراج معين، وعادةً ما يتم تحديده بواسطة الخيار -T للمحول أو واجهة المستخدم. إذا لم يتم استخدام هذا الخيار أو متغير البيئة GROFF_TYPESETTER، فإن جهاز الإخراج الافتراضي هو ps. يمكن أن يكون جهاز الإخراج أيًا مما يلي:

ascii   للأطراف التي تستخدم مجموعة أحرف وترميز ISO 646 1991:IRV، والمعروفة أيضًا باسم USASCII.
cp1047  للأطراف التي تستخدم مجموعة أحرف وترميز IBM code page 1047.
dvi لتنسيق TeX DVI.
html
xhtml   لإخراج HTML و XHTML على التوالي.
latin1  للأطراف التي تستخدم مجموعة أحرف وترميز ISO Latin-1 (ISO 8859-1).
lbp لطابعات Canon CaPSL (سلسلة LBP-4 و LBP-8 من الطابعات الليزرية).
lj4 لطابعات HP LaserJet4 المتوافقة (أو أي طابعات أخرى متوافقة مع PCL5).
pdf لإخراج PDF.
ps  لإخراج PostScript.
utf8    للأطراف التي تستخدم مجموعة أحرف ISO 10646 ("Unicode") و ترميز UTF-8.
X75 للمعاينة باستخدام gxditview بدقة 75 نقطة في البوصة وحجم خط أساسي 10 نقاط.
X75-12  للمعاينة باستخدام gxditview بدقة 75 نقطة في البوصة وحجم خط أساسي 12 نقاط.
X100    للمعاينة باستخدام gxditview بدقة 100 نقطة في البوصة وحجم خط أساسي 10 نقاط.
X100-12 للمعاينة باستخدام gxditview بدقة 100 نقطة في البوصة وحجم خط أساسي 12 نقاط.

معالجات ما بعد المعالجة

أي برنامج يفسر إخراج GNU troff هو معالج ما بعد المعالجة. معالجات ما بعد المعالجة التي توفرها GNU roff هي برامج تشغيل الإخراج، والتي تعد وثيقة للعرض أو الطباعة. يمكن تصور معالجات ما بعد المعالجة لأغراض أخرى، مثل إعادة ترتيب الصفحات أو القياس الإحصائي لوثيقة.


يدعم برنامج تشغيل الإخراج جهاز إخراج واحد أو أكثر، ولكل منها ملف وصف جهاز خاص بها. يحدد الجهاز برنامج المعالجة اللاحقة الخاص به باستخدام التوجيه postpro في ملف وصف الجهاز؛ راجع groff_font(5). يتجاوز الخيار -X هذا التحديد، مما يتسبب في استخدام gxditview كبرنامج تشغيل الإخراج.

grodvi(1)
يوفر dvi.

grohtml(1)
يوفر html و xhtml.

grolbp(1)
يوفر lbp.

grolj4(1)
يوفر lj4.

gropdf(1)
يوفر pdf.

grops(1)
يوفر ps.

grotty(1)
يوفر ascii، cp1047، latin1، و utf8.

gxditview(1)
يوفر X75، X75-12، X100، و X100-12، ويمكنه أيضًا معاينة ps.

الأدوات المساعدة

يتضمن GNU roff مجموعة من الأدوات المساعدة.

gdiffmk(1)
يحدد الفروق بين ملفي إدخال roff.

grog(1)
يستنتج أمر groff الذي يتطلبه المستند.

تُعد عدة أدوات أوصاف الخطوط، مما يتيح للمُنسِّق استخدامها عند إنشاء إخراج لجهاز معين.

addftinfo(1)
يضيف معلومات إلى ملفات وصف خطوط AT&T troff لتمكين استخدامها مع GNU troff.

afmtodit(1)
ينشئ ملفات وصف الخطوط لخطوط PostScript Type 1.

pfbtops(1)
يحول خط PostScript Type 1 بتنسيق PFB (Printer Font Binary) إلى تنسيق PFA (Printer Font ASCII)، والذي يمكن بعد ذلك تفسيره بواسطة afmtodit.

hpftodit(1)
ينشئ ملفات وصف الخطوط لمجموعة طابعات HP LaserJet 4.

tfmtodit(1)
ينشئ ملفات وصف الخطوط لجهاز TeX DVI.

xtotroff(1)
ينشئ ملفات وصف الخطوط لخطوط نظام X Window.

تُحوّل مجموعة من الأدوات المواد التي تم إنشاؤها باستخدام لغات ما قبل المعالجة الخاصة بـ roff إلى ملفات صور رسومية.

eqn2graph(1)
يحول معادلة eqn إلى صورة مُقتصة.

grap2graph(1)
يحول مخطط grap إلى صورة مُقتصة.

pic2graph(1)
يحول مخطط pic إلى صورة مُقتصة.

تعمل مجموعة أخرى من البرامج مع ملفات البيانات المرجعية التي يستخدمها برنامج refer(1) للمعالجة المسبقة.

indxbib(1)
ينشئ فهارس معكوسة لقواعد البيانات المرجعية، مما يسرع عمليات البحث فيها.

lkbib(1)
يبحث في قواعد البيانات.

lookbib(1)
يبحث بشكل تفاعلي في قواعد البيانات.

حالة الخروج

يخرج groff بحالة فشل إذا كانت هناك مشكلة في تحليل وسيطاته وحالة نجاح إذا تم تحديد أحد الخيارين -h أو --help. بخلاف ذلك، يقوم groff بتشغيل سلسلة معالجة الإدخال؛ إذا خرجت جميع الأوامر الموجودة في السلسلة بنجاح، فسيقوم groff بذلك أيضًا. إذا لم يكن الأمر كذلك، فإن حالة خروج groff تشفر ملخصًا للمشاكل التي تمت مواجهتها، حيث يتم تعيين البت 0 إذا خرج أحد الأوامر بحالة فشل، والبت 1 إذا تم إنهاء أحد الأوامر بإشارة، والبت 2 إذا لم يتمكن أحد الأوامر من التنفيذ. (وبالتالي، إذا حدثت جميع هذه المصائب في سلسلة العمليات، فسيخرج groff بحالة 2^0 + 2^1 + 2^2 = 1+2+4 = 7.) لاستكشاف مشاكل سلسلة العمليات، قد ترغب في إعادة تشغيل أمر groff باستخدام الخيار -V وتقسيم سلسلة العمليات التي تم الإبلاغ عنها إلى مراحل منفصلة، وفحص حالة الخروج ورسائل التشخيص التي تصدرها كل مرحلة.


البيئة

عادةً، يكون فاصل المسار في متغيرات البيئة التي تنتهي بـ PATH هو النقطتان (:)؛ قد يختلف هذا حسب نظام التشغيل. على سبيل المثال، يستخدم Windows فاصلة منقوطة (;) بدلاً من ذلك.

GROFF_BIN_PATH
يُستخدم مسار البحث هذا، متبوعًا بـ PATH، لتحديد موقع الأوامر التي يتم تنفيذها بواسطة groff. إذا لم يتم تعيينه، يتم البحث في دليل تثبيت أدوات GNU roff، وهو /usr/bin، قبل البحث في PATH.

GROFF_COMMAND_PREFIX
يمكن تهيئة GNU roff في وقت الترجمة لتطبيق بادئة على أسماء البرامج التي توفرها والتي كان لها نظير في AT&T troff، وذلك لتجنب تعارض الأسماء في وقت التشغيل. البادئة الافتراضية هي سلسلة فارغة.

عند استخدامها، تكون هذه البادئة تقليديًا الحرف "g". على سبيل المثال، سيتم تثبيت GNU troff كـ gtroff. بالإضافة إلى troff، تنطبق البادئة على المنسق nroff؛ والمعالجات الأولية eqn و grn و pic و refer و tbl و soelim؛ والأدوات المساعدة indxbib و lookbib.

GROFF_ENCODING
يتم تمرير قيمة هذا المتغير إلى الخيار -e الخاص بالمعالج الأولي preconv(1) لتحديد ترميز الأحرف للملفات المدخلة. يشير وجود هذا المتغير إلى خيار groff -k. إذا تم تعيينه ولكنه فارغ، فإن groff يستدعي preconv بدون خيار -e. يتجاوز الخيار -K الخاص بـ groff القيمة الموجودة في GROFF_ENCODING.

GROFF_FONT_PATH
ابحث عن دليل الجهاز والملفات الوصفية للخطوط الخاصة بجهاز الإخراج المحدد في هذه القائمة من الأدلة. راجع troff(1) و groff_font(5).

GROFF_TMAC_PATH
ابحث عن ملفات الماكرو في هذه القائمة من الأدلة. راجع troff(1) و groff_tmac(5).

GROFF_TMPDIR
أنشئ ملفات مؤقتة في هذا الدليل. إذا لم يتم تعيينه، ولكن تم تعيين متغير البيئة TMPDIR، فسيتم إنشاء الملفات المؤقتة هناك بدلاً من ذلك. على أنظمة Windows، إذا لم يتم تعيين أي من السابقين، فسيتم أيضًا فحص متغيرات البيئة TMP و TEMP (بهذا الترتيب). وإلا، فسيتم إنشاء الملفات المؤقتة في /tmp. تستخدم الأوامر refer(1) و grohtml(1) و grops(1) ملفات مؤقتة.

GROFF_TYPESETTER
قم بتعيين جهاز الإخراج الافتراضي. إذا كان فارغًا أو لم يتم تعيينه، فسيتم استخدام ps. يتجاوز الخيار -T القيمة الموجودة في GROFF_TYPESETTER.

SOURCE_DATE_EPOCH
طابع زمني (معبر عنه بالثواني منذ بداية حقبة يونكس) لاستخدامه كطابع زمني لإنشاء الإخراج بدلاً من الوقت الحالي. يتم تحويل الوقت إلى شكل قابل للقراءة بواسطة الإنسان باستخدام gmtime(3) و asctime(3) عند بدء تشغيل المنسق وتخزينه في السجلات التي يمكن الوصول إليها بواسطة المستندات وحزم الماكرو.

TZ
المنطقة الزمنية المراد استخدامها عند تحويل الوقت الحالي إلى شكل قابل للقراءة بواسطة الإنسان؛ راجع tzset(3). إذا تم استخدام SOURCE_DATE_EPOCH، فسيتم دائمًا تحويله إلى شكل قابل للقراءة بواسطة الإنسان باستخدام التوقيت العالمي المنسق (UTC).

أمثلة

تُعرف أنظمة roff بشكل أفضل بتنسيق صفحات الدليل. بمجرد أن يحدد برنامج man(1) الخاص بالمكتبة صفحة دليل، قد يقوم بتنفيذ أمر groff مشابه لما يلي. groff -t -man -Tutf8 /usr/share/man/man1/groff.1 ستقوم المكتبة أيضًا بتمرير الإخراج من خلال أداة عرض الصفحات، والتي قد لا تفسر تسلسلات الهروب الطرفية SGR التي تصدرها groff للخط العريض أو التسطير أو المائل؛ راجع قسم "القيود" أدناه.


لمعالجة ملف إدخال roff باستخدام المعالجات المسبقة tbl و pic وحزمة الماكرو me بالطريقة التي اعتاد عليها مستخدمو AT&T troff، يمكنك كتابة (أو إنشاء) سلسلة أوامر.

pic foo.me | tbl | troff -me -Tutf8 | grotty

باستخدام groff، يمكن اختصار هذه السلسلة إلى أمر مكافئ.

groff -p -t -me -T utf8 foo.me

هناك طريقة أسهل وهي استخدام grog(1) لتخمين المعالج المسبق وخيارات الماكرو وتنفيذ النتيجة باستخدام ميزة استبدال الأوامر في shell.

$(grog -Tutf8 foo.me)

يجب تحديد كل خيار من خيارات سطر الأوامر للمعالج اللاحق باستخدام أي شرطات بادئة مطلوبة "-"، لأن groff يمرر الوسائط كما هي إلى المعالج اللاحق؛ وهذا يسمح بنقل وسائط عشوائية. على سبيل المثال، لتمرير عنوان إلى المعالج اللاحق gxditview، تكون أوامر shell: groff -X -P -title -P 'trial run' mydoc.t و groff -X -Z mydoc.t | gxditview -title 'trial run' متكافئة.

القيود

عند تقسيم الإخراج للأجهزة ascii و cp1047 و latin1 و utf8، قد تتطلب برامج مثل more(1) و less(1) خيارات سطر أوامر لمعالجة بعض تسلسلات الهروب الطرفية بشكل صحيح؛ انظر grotty(1).

على أنظمة EBCDIC مثل OS/390 Unix، لا تتوفر أجهزة الإخراج ascii و latin1. وعلى العكس من ذلك، لا يتوفر جهاز الإخراج cp1047 على الأنظمة القائمة على معيار ترميز الأحرف ISO 646 أو ISO 8859.

أدلة التثبيت

يقوم GNU roff بتثبيت الملفات في مواقع مختلفة اعتمادًا على تكوين وقت الترجمة. في هذا التثبيت، يتم استخدام المواقع التالية.

/etc/X11/app-defaults دليل الإعدادات الافتراضية للتطبيق لـ gxditview(1).

/usr/bin الدليل الذي يحتوي على أوامر groff التنفيذية.

/usr/share/groff/1.23.0/eign قائمة بالكلمات الشائعة لـ indxbib(1).

/usr/share/groff/1.23.0 دليل ملفات البيانات.

/usr/dict/papers/Ind الفهرس الافتراضي لـ lkbib(1) و refer(1).

/usr/share/doc/groff-base دليل الوثائق.

/usr/share/doc/groff-base/examples دليل الأمثلة.

/usr/share/groff/1.23.0/font دليل الخطوط.

/usr/share/doc/groff-base/html دليل وثائق HTML.

/usr/lib/font دليل الخطوط القديم.

/usr/share/groff/site-font دليل الخطوط المحلي.

/usr/share/groff/site-tmac دليل حزمة الماكرو المحلية (ملف tmac).

/usr/share/groff/1.23.0/tmac دليل حزمة الماكرو (ملف tmac).

/usr/share/groff/1.23.0/oldfont دليل الخطوط للتوافق مع الإصدارات القديمة من groff؛ انظر grops(1).

/usr/share/doc/groff-base/pdf دليل وثائق PDF.

دليل ماكرو groff يتم تخزين معظم ملفات الماكرو المرفقة مع GNU roff في /usr/share/groff/1.23.0/tmac لتثبيت يتوافق مع هذا المستند. كقاعدة عامة، يتم البحث في أدلة متعددة عن ملفات الماكرو؛ انظر troff(1). للحصول على كتالوج لملفات الماكرو التي يوفرها GNU roff، انظر groff_tmac(5).


دليل وصف الأجهزة والخطوط الخاص بـ groff

تُخزَّن ملفات وصف الأجهزة والخطوط المُزوَّدة مع GNU roff في /usr/share/groff/1.23.0/. الخط المستخدم لتثبيت هذا المستند. بشكل عام، يتم البحث في أدلة متعددة للعثور على ملفات وصف الأجهزة والخطوط؛ راجع troff(1). لمعرفة تنسيقات هذه الملفات، راجع groff_font(5).

التوفر

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

يمكن العثور على تطبيق مجاني لمعالج grap الأولي، كتبه تيد فابر، على موقع grap. يدعم groff هذا المعالج فقط.

المؤلفون

تم كتابة groff (كل من الأمر الأمامي والنظام بأكمله) في الأصل بواسطة جيمس كلارك. يشمل المساهمون في هذا المستند كلارك، وتيرنت أ. فيشر، وفيرنر ليمبيرغ، وبرند واركن، وج. براندن روبنسون.

انظر أيضًا

Groff: تطبيق GNU لـ troff، من تأليف تيرنت أ. فيشر وفيرنر ليمبيرغ، هو الدليل الرئيسي لـ groff. يمكنك تصفحه بشكل تفاعلي باستخدام "info groff".

مقدمة وتاريخ وقراءة إضافية: roff(7)

عارض لوثائق groff (و AT&T المستقلة عن الجهاز troff): gxditview(1)

معالجات أولية:
chem(1)، eqn(1)، neqn(1)، glilypond(1)، grn(1)، preconv(1)، gperl(1)، pic(1)، gpinyin(1)،
refer(1)، soelim(1)، tbl(1)

حزم الماكرو والأدوات الخاصة بالحزم: groff_hdtbl(7)، groff_man(7)، groff_man_style(7)، groff_mdoc(7)، groff_me(7)، groff_mm(7)، groff_mmse(7) (فقط في اللغات السويدية)، mmroff(1)، groff_mom(7)، pdfmom(1)، groff_ms(7)، groff_rfc1345(7)، groff_trace(7)، groff_www(7)

أدوات إدارة قواعد البيانات الببليوغرافية: indxbib(1)، lkbib(1)، lookbib(1)

اللغة والاصطلاحات وتوسيعات GNU: groff(7)، groff_char(7)، groff_diff(7)، groff_font(5)، groff_tmac(5)

لغة الإخراج المتوسطة: groff_out(5)

برنامج التنسيق: troff(1)

أغلفة التنسيق: nroff(1)، pdfroff(1)

معالجات لاحقة لأجهزة الإخراج: grodvi(1)، grohtml(1)، grolbp(1)، grolj4(1)، gropdf(1)، grops(1)، grotty(1)

أدوات دعم الخطوط: addftinfo(1)، afmtodit(1)، hpftodit(1)، pfbtops(1)، tfmtodit(1)، xtotroff(1)

أدوات تحويل الرسومات: eqn2graph(1)، grap2graph(1)، pic2graph(1)

أداة تحديد الفروق: gdiffmk(1)

أداة "تخمين groff":
grog(1)