| grotty(1) | General Commands Manual | grotty(1) |
نام (NAME)
grotty - درایور خروجی groff برای دستگاههای شبیه ماشین تحریر (ترمینال)
خلاصه دستور (SYNOPSIS)
grotty |
[-dfhot] [-i|-r] [-F font-directory] [file ...] |
grotty -c |
[-bBdfhouU] [-F font-directory] [file ...] |
grotty |
--help |
grotty |
-v |
grotty |
--version |
توضیحات (DESCRIPTION)
درایور خروجی TTY (“تلهتایپ”) در GNU roff خروجی troff(1) را به قالبی مناسب برای دستگاههای شبیه ماشین تحریر، شامل شبیهسازهای ترمینال تصویری ترجمه میکند. بهطور معمول، هنگامی که یکی از گزینههای “-T ascii”، “-T latin1” یا “-T utf8” به groff(1) داده شود، grotty را فراخوانی میکند. (در این نصب، ps دستگاه خروجی پیشفرض است.) از گزینه -P در groff برای ارسال هر یک از گزینههای نشان دادهشده در بالا به grotty استفاده کنید. اگر هیچ آرگومان file (پرونده) داده نشود، یا اگر file برابر با “-” باشد، grotty جریان ورودی استاندارد را میخواند. این برنامه در جریان خروجی استاندارد مینویسد.
بهطور پیشفرض، grotty توالیهای گریز SGR (از استاندارد ISO 6429 که عموماً “گریزهای ANSI” نامیده میشوند) را برای تغییر ویژگیهای متن (پررنگ یا بولد، مورب یا ایتالیک، زیرخط، تصویر معکوس [“تصویر منفی”] و رنگها) منتشر میکند. دستگاههایی که از توالیهای SGR 30–37 و 40–47 پشتیبانی میکنند، میتوانند اسناد roff را با استفاده از هشت رنگ مختلف پسزمینه و پیشزمینه نمایش دهند. فایل tty.tmac مربوط به grotty، هشت نام رنگ استاندارد ISO 6429 را تعریف میکند: سیاه (black)، سفید (white)، قرمز (red)، سبز (green)، آبی (blue)، زرد (yellow)، سرخابی (magenta) و فیروزهای (cyan). رنگهای ناشناخته به رنگ پیشفرض نگاشت میشوند، که مقدار آن به تنظیمات ترمینال بستگی دارد. همچنین گزینه -t را در ادامه ببینید.
بهطور پیشفرض، grotty ابَرپیوندهای OSC 8 را روی دستگاههایی که از توالیهای گریز SGR استفاده میکنند، تولید مینماید.
مطابق با رویه دیرینه و با توجه به ترمینالها (شبیهسازها)یی که فاقد پشتیبانی از قلمهای مایل (کج یا ایتالیک) هستند، grotty بهطور پیشفرض خانههای نویسه ایتالیک را به جای آن با زیرخط مشخص میکند—اما گزینه -i را در ادامه ببینید.
پشتیبانی از SGR و OSC در صفحهبندها
هنگام صفحهبندی خروجی grotty با less(1)، باید به این برنامه دستور داده شود که توالیهای SGR و OSC را مستقیماً به دستگاه منتقل کند؛ گزینه -R در آن یکی از روشها برای دستیابی به این هدف است (برای پشتیبانی از OSC 8 به نگارش 566 یا بالاتر less نیاز است). در نتیجه، برنامههایی مانند man(1) که اسناد roff را با less صفحهبندی میکنند، باید آن را با یک گزینه مناسب فراخوانی کنند.
قالب خروجی سنتی (قدیمی)
گزینه -c به grotty میگوید از یک قالب خروجی سازگار با ترمینالهای کاغذی استفاده کند، مانند ماشینهای تلهتایپ که roff و nroff نخستین بار برای آنها توسعه داده شده بودند اما دیگر کاربرد گستردهای ندارند. توالیهای گریز SGR منتشر نمیشوند؛ بنابراین ویژگیهای نویسه پررنگ، مورب و زیرخطدار دستکاری نمیشوند. در عوض، grotty از چاپ روی چاپ (overstrike) استفاده میکند، به این صورت که نویسه پررنگ c را با توالی “c BACKSPACE c”، نویسه مورب (ایتالیک) c را با توالی “_ BACKSPACE c” و نویسه پررنگ-مورب را با “_ BACKSPACE c BACKSPACE c” نمایش میدهد. این نحوه نمایش زمانی که خود نویسه c یک زیرخط (underscore) باشد، ذاتاً دارای ابهام است.
قالب خروجی سنتی را میتوان با هدایت (پایپ کردن) خروجی grotty به ul(1) بر روی یک ترمینال ویدیویی (یا شبیهساز) نمایش داد، که ممکن است نویسههای پررنگ-مورب را به صورت تصویر معکوس نمایش دهد. برخی از پیادهسازیهای more(1) نیز قادر به نمایش این توالیها هستند؛ ممکن است بخواهید گزینه -b آن دستور را بیازمایید. برنامه less نویسههای پررنگ و مورب سنتی را بدون نیاز به هیچ گزینهای نمایش میدهد. برخلاف درایورهای خروجی ترمینال در برخی دیگر از پیادهسازیهای roff، برنامه grotty هرگز خطخوراک معکوس (reverse line feed) خروجی نمیدهد. نیازی نیست خروجی آن را برای حذف آنها از طریق col(1) پالایش (فیلتر) کنید.
دستورهای افزونه دستگاه
برنامه grotty دستور افزونه دستگاهی را که توسط درخواست device در groff یا توالی گریز \X در roff تولید میشود، شناسایی میکند.
- \X'tty: link [uri [key=value] ...]'
- گنجاندن یک ابرپیوند با استفاده از توالی گریز ترمینال OSC 8. مشخص کردن uri متن پیونددار را آغاز میکند، و حذف آن پیوند را پایان میدهد. هنگامی که uri وجود دارد، میتوان هر تعداد جفت کلید/مقدار اضافی را مشخص کرد؛ تفسیر آنها بر عهده صفحهبند یا ترمینال است. فاصلهها یا تبها نمیتوانند به صورت تحتاللفظی در uri، key یا value ظاهر شوند؛ آنها باید به شکلی جایگزین نشان داده شوند.
فایلهای توصیف دستگاه
اگر فایل DESC برای کدگذاری نویسه حاوی دستورالعمل “unicode” باشد، grotty نویسههای یونیکد را با کدگذاری UTF-8 منتشر میکند. در غیر این صورت، بسته به دادههای موجود در فایلهای توصیف قلم، نویسهها را در یک کدگذاری تکبایتی منتشر میسازد. ببینید: groff_font(5).
یک فایل توصیف قلم ممکن است حاوی یک دستورالعمل “internalname n” باشد که در آن n یک عدد صحیح دهدهی است. اگر بیت 01 در n تنظیم شده باشد، grotty با قلم به عنوان قلم مایل (slanted) رفتار میکند؛ اگر بیت 02 تنظیم شده باشد، grotty با قلم به عنوان قلم پررنگ (bold) رفتار میکند.
تایپفیسها (طرحهای قلم)
برنامه grotty از چهار سبک استاندارد پشتیبانی میکند: R (رومی یا roman)، I (مورب یا italic)، B (پررنگ یا bold) و BI (پررنگ-مورب). از آنجا که درایور خروجی در حالت nroff کار میکند، تلاشها برای تنظیم یا تغییر خانواده قلم یا اندازه قلم نادیده گرفته میشوند.
برنامه grotty از یک طرح نامگذاری برای تایپفیسهای شرق آسیا مشترک با grohtml(1)، gropdf(1) و grops(1) استفاده میکند.
گزینهها (OPTIONS)
گزینه --help پیام راهنمای استفاده را نمایش میدهد، در حالی که -v و --version اطلاعات نگارش را نمایش میدهند؛ پس از آن همگی خارج میشوند.
- -b
- جلوگیری از بهکارگیری چاپ روی چاپ (overstriking) برای نویسههای پررنگ در قالب خروجی سنتی.
- -B
- استفاده تنها از چاپ روی چاپ برای نویسههای پررنگ-مورب در قالب خروجی سنتی.
- -c
- استفاده از قالب خروجی سنتی grotty (زیربخش “قالب خروجی سنتی (قدیمی)” در بالا را ببینید). توالیهای گریز SGR و OSC منتشر نمیشوند.
- -d
- نادیده گرفتن تمام دستورهای رسم در ورودی. بهطور پیشفرض، grotty دستورهای “D l” را که دستکم یک آرگومان صفر دارند (و بنابراین افقی یا عمودی هستند)، با استفاده از نویسههای رسم کادر یونیکد (برای دستگاه utf8) یا نویسههای -، | و + (برای همه دستگاههای دیگر) ترسیم میکند. برنامه grotty با دستورهای “D p” که کاملاً از خطوط افقی و عمودی تشکیل شدهاند نیز به طور مشابه رفتار میکند. ببینید: groff_out(5).
- -f
- انتشار یک نویسه فرمفید (form feed) در انتهای هر صفحهای که در آخرین خط خود خروجی ندارد.
- -F dir
- افزودن پوشه dir/devname به ابتدای مسیر جستجوی فایلهای توصیف قلم و دستگاه؛ name کدگذاری نویسه دستگاه خروجی را مشخص میکند که یکی از ascii، latin1 یا utf8 است.
- -h
- استفاده از نویسههای تحتاللفظی تب افقی در خروجی. فرض میشود که تبها در هر ۸ ستون تنظیم شدهاند.
- -i
- ترسیم قلمهایی که به عنوان مایل علامتگذاری شدهاند با ویژگی SGR برای متن مورب (ایتالیک)، به جای متن زیرخطدار. بسیاری از ترمینالها از این ویژگی پشتیبانی نمیکنند؛ با این حال، xterm(1) از زمان پچ شماره ۳۱۴ (2014-12-28) از آن پشتیبانی میکند. اگر -c نیز مشخص شده باشد، نادیده گرفته میشود.
- -o
- جلوگیری از چاپ روی چاپ (overstriking) (به جز برای نویسههای پررنگ و/یا زیرخطدار هنگامی که قالب خروجی سنتی در حال استفاده است؛ گزینههای -b و -u را ببینید).
- -r
- ترسیم قلمهایی که به عنوان مایل علامتگذاری شدهاند با ویژگی SGR برای متن تصویر معکوس، به جای متن زیرخطدار. اگر -c یا -i نیز مشخص شده باشد، نادیده گرفته میشود.
- -t
- فرض اینکه دستگاه خروجی از توالیهای گریز SGR 38 و 48 پشتیبانی میکند، که امکان تعیین رنگهای پیشزمینه و پسزمینه خانه نویسه را در فضای رنگی RGB با ۸ بیت در هر کانال فراهم میسازند.
- -u
- جلوگیری از بهکارگیری زیرخط برای نویسههای مورب در قالب خروجی سنتی.
- -U
- استفاده تنها از زیرخط برای نویسههای پررنگ-مورب در قالب خروجی سنتی.
وضعیت خروج (EXIT STATUS)
برنامه grotty در صورت اجرای موفق با وضعیت 0، اگر نتواند آرگومانهای خط فرمان خود را تفسیر کند با وضعیت 2، و در صورت بروز خطا در حین اجرا با وضعیت 1 خارج میشود.
محیط (ENVIRONMENT)
- GROFF_FONT_PATH
- فهرستی از پوشهها که در آنها باید به دنبال پوشه فایلهای توصیف دستگاه و قلم برای دستگاه خروجی انتخابشده جستجو شود. ببینید: troff(1) و groff_font(5).
- GROFF_NO_SGR
- در صورت
تنظیم شدن،
قالب خروجی
سنتی grotty
دقیقاً
مانند
زمانی که
گزینه -c
مشخص شده
باشد به کار
گرفته
میشود؛
زیربخش
“قالب
خروجی سنتی
(قدیمی)” در
بالا را
ببینید.
فایلها (FILES)
- /usr/share/groff/1.24.1/font/devascii/DESC
- دستگاه خروجی ascii را توصیف میکند.
- /usr/share/groff/1.24.1/font/devascii/F
- قلم شناختهشده با نام F را در دستگاه ascii توصیف میکند.
- /usr/share/groff/1.24.1/font/devlatin1/DESC
- دستگاه خروجی latin1 را توصیف میکند.
- /usr/share/groff/1.24.1/font/devlatin1/F
- قلم شناختهشده با نام F را در دستگاه latin1 توصیف میکند.
- /usr/share/groff/1.24.1/font/devutf8/DESC
- دستگاه خروجی utf8 را توصیف میکند.
- /usr/share/groff/1.24.1/font/devutf8/F
- قلم شناختهشده با نام F را در دستگاه utf8 توصیف میکند.
- /usr/share/groff/1.24.1/tmac/tty.tmac
- ماکروهایی را برای استفاده با دستگاههای خروجی ascii، latin1 و utf8 تعریف میکند. این فایل هنگامی که هر یک از این دستگاههای خروجی انتخاب شوند، بهطور خودکار توسط troffrc بارگذاری میشود.
- /usr/share/groff/1.24.1/tmac/tty-char.tmac
- نویسههای جایگزین (fallback) را برای استفاده با grotty تعریف میکند. ببینید: nroff(1).
محدودیتها (LIMITATIONS)
برنامه grotty فقط برای اسناد ساده در نظر گرفته شده است.
- •
- هیچ پشتیبانی برای حرکتهای افقی یا عمودی کوچکتر از یک خانه نویسه وجود ندارد.
- •
- دستورهای ترسمیی که چیزی به جز خطوط افقی و عمودی تولید کنند، پشتیبانی نمیشوند.
- •
- مدیریت رنگ با سایر درایورهای خروجی تفاوت دارد. دستورهای خروجی GNU troff تولیدشده توسط درخواستها و توالیهای گریز که رنگهای ترسیم خط (stroke) و پر کردن (fill) را تنظیم میکنند، در عوض به ترتیب رنگهای پیشزمینه و پسزمینه خانه نویسه را تنظیم مینمایند.
دستورهای تولیدشده توسط توالیهای گریز \l و \L از یک سو، و توالی گریز خطکشی \D'l' از سوی دیگر، به دلیل دو عامل نخست مصالحههای متفاوتی انجام میدهند. به طور مشخص: (۱) \l خطوط افقی را با نویسههای زیرخط ترسیم میکند؛ \D'l' در صورت امکان از نویسههای رسم خط ACS یا یونیکد استفاده میکند، و در غیر این صورت از علامتهای خطفاصله-منفی (hyphen-minus) استفاده مینماید. (۲) \D'l' خطوط عمودی را به اندازه یک خانه نویسه بلندتر، و خطوط افقی را یک خانه به سمت راست امتداد میدهد. برنامه grotty این کار را برای تشخیص خطوط متقاطع انجام میدهد تا بتواند آنها را با نشانههای گرافیکی مناسب (مانند “+”) جایگزین کند. تفاوت را در زیر مشاهده کنید.
ورودی
Hello,\L'1v' world.\l'1n' .sp 2v Hello,\D'l 0 1v' world.\D'l 1n 0' .pl \n(nlu \" truncate page for convenience
که با “nroff -T
ascii” پردازش
شود، خروجی
زیر را
تولید
میکند.
Hello,
| world._
Hello,|
|world.--
مثالها (EXAMPLES)
سند groff زیر چندین ویژگی را به کار میگیرد که پشتیبانی دستگاه خروجی از آنها متفاوت است: (۱) سبک پررنگ؛ (۲) سبک مورب (زیرخط)؛ (۳) سبک پررنگ-مورب؛ (۴) ترکیب نویسه با چاپ روی چاپ (“coöperate”)؛ (۵) رنگ پیشزمینه؛ (۶) رنگ پسزمینه؛ و (۷) رسم خطوط افقی و عمودی.
You might see \f[B]bold\f[] and \f[I]italic\f[]. Some people see \f[BI]both at once\f[]. If the output device does (not) co\z\[ad]operate, you might see \m[red]red\m[]. Black on cyan can have a \M[cyan]\m[black]prominent\m[]\M[] \D'l 1i 0'\D'l 0 2i'\D'l 1i 0' look. .\" If in nroff mode, end page now. .if n .pl \n[nl]u
با توجه به ورودی بالا، خروجی دستورهای زیر را با یکدیگر مقایسه کنید.
$ groff -T ascii file $ groff -T utf8 -P -i file $ groff -T utf8 -P -c file | ul
همچنین ببینید (SEE ALSO)
“توابع کنترلی برای مجموعههای نویسه کدگذاریشده” (ECMA-48) ویرایش پنجم، Ecma International، ژوئن ۱۹۹۱. این سند که نسخهای رایگان از ISO 6429 است، شامل توصیفی هنجاری از توالیهای گریز SGR میباشد.
“ابَرپیوندها در شبیهسازهای ترمینال (Hyperlinks in Terminal Emulators)”، اگمونت کوبلینگر (Egmont Koblinger).
groff(1)، troff(1)، groff_out(5)، groff_font(5)، groff_char(7)، ul(1)، more(1)، less(1)، man(1)
| 2026-03-15 | groff 1.24.1 |