'\" t .TH \%grn 1 "2026-03-15" "groff 1.24.1" .SH "نام (NAME)" grn \- پیشپردازنده groff برای تصاویر gremlin . . .\" ==================================================================== .\" Legal Terms .\" ==================================================================== .\" .\" Copyright (C) 2000-2024 Free Software Foundation, Inc. .\" .\" Permission is granted to make and distribute verbatim copies of this .\" manual provided the copyright notice and this permission notice are .\" preserved on all copies. .\" .\" Permission is granted to copy and distribute modified versions of .\" this manual under the conditions for verbatim copying, provided that .\" the entire resulting derived work is distributed under the terms of .\" a permission notice identical to this one. .\" .\" Permission is granted to copy and distribute translations of this .\" manual into another language, under the above conditions for .\" modified versions, except that this permission notice may be .\" included in translations approved by the Free Software Foundation .\" instead of in the original English. . . .\" Save and disable compatibility mode (for, e.g., Solaris 10/11). .do nr *groff_grn_1_man_C \n[.cp] .cp 0 . .\" Define fallback for groff 1.23's MR macro if the system lacks it. .nr do-fallback 0 .if !\n(.f .nr do-fallback 1 \" mandoc .if \n(.g .if !d MR .nr do-fallback 1 \" older groff .if !\n(.g .nr do-fallback 1 \" non-groff *roff .if \n[do-fallback] \{\ . de MR . ie \\n(.$=1 \ . I \%\\$1 . el \ . IR \%\\$1 (\\$2)\\$3 . . .\} .rr do-fallback . . .\" ==================================================================== .SH "خلاصه دستور (SYNOPSIS)" .\" ==================================================================== . .SY \%grn .RB [ \-C ] .RB [ \-T\~\c .IR dev ] .RB [ \-M\~\c .IR dir ] .RB [ \-F\~\c .IR dir ] .RI [ file\~ .\|.\|.] .YS . . .P .SY \%grn .B \-? .YS . .SY \%grn .B \-\-help .YS . . .P .SY \%grn .B \-v .YS . .SY \%grn .B \%\-\-version .YS . . .\" ==================================================================== .SH "توضیحات (DESCRIPTION)" .\" ==================================================================== . دستور .I \%grn یک پیش‌پردازنده برای گنجاندن تصاویر .I gremlin در ورودی .MR \%troff 1 است. . دستور .I \%grn در خروجی استاندارد می‌نویسد، و تنها خطوط ورودی بین دو خطی را که با .B .GS و .B .GE آغاز می‌شوند پردازش می‌کند. . این خطوط باید شامل دستورات .I \%grn باشند (به زیر مراجعه کنید). . این ماکروها یک فایل .I gremlin را درخواست می‌کنند؛ تصویر موجود در آن فایل تبدیل شده و در جریان ورودی .I \%troff قرار می‌گیرد. . ماکروی .B .GS می‌تواند با یک آرگومان .BR C ، .BR L یا .B R فراخوانی شود تا کل تصویر .I gremlin را در مرکز، چپ‌چین، یا راست‌چین کند (حالت پیش‌فرض مرکزچین است). . اگر هیچ .IR فایلی ذکر نشود، ورودی استاندارد خوانده می‌شود. . در انتهای تصویر، موقعیت روی صفحه در پایین تصویر .I gremlin قرار می‌گیرد. . اگر ورودی .I \%grn به جای .B .GE با .B .GF پایان یابد، موقعیت در بالای تصویر رها می‌شود. . .PP در حال حاضر تنها بسته ماکروی .I me از .BR .GS ، .BR .GE و .B .GF پشتیبانی می‌کند. . .PP دستور .I \%grn دنباله‌های گریز ترسیمی تولید می‌کند که از پسوند طرح رنگ .IR groff .RB ( \[rs]D\[aq]F \~.\|.\|.\& \[aq] ) استفاده می‌کنند، و بنابراین ممکن است با سایر نگارش‌های .I troff کار نکند. . . .\" ==================================================================== .SS "دستورات \f[I]grn\f[]" .\" ==================================================================== . هر خط ورودی بین .B .GS و .B .GE می‌تواند شامل یک دستور .I \%grn باشد. . دستورات از یک یا دو رشته تشکیل شده‌اند که با فاصله از هم جدا می‌شوند؛ رشته اول دستور و رشته دوم عملوند آن است. . دستورات می‌توانند با حروف کوچک یا بزرگ نوشته شوند و می‌توان آن‌ها را تا یک نویسه مخفف کرد. . .PP دستوراتی که بر محیط یک تصویر اثر می‌گذارند (آن‌هایی که قبل از .RB \%\[lq] default \[rq] فهرست شده‌اند، به زیر مراجعه کنید) تنها برای تصویر جاری مؤثر هستند: محیط در آغاز تصویر بعدی به مقادیر پیش‌فرض بازنشانی می‌شود. . دستورات به شرح زیر هستند: . .TP .BI 1\~ N .TQ .BI 2\~ N .TQ .BI 3\~ N .TQ .BI 4\~ N اندازه متن شماره ۱ (۲، ۳، یا ۴) در .I gremlin را به .I N نقطه تنظیم می‌کند. . مقدار پیش‌فرض به ترتیب ۱۲ (۱۶، ۲۴ و ۳۶) است. . .TP .BI roman\~ f .TQ .BI italics\~ f .TQ .BI bold\~ f .TQ .BI special\~ f قلم معمولی/رومی (roman) (مورب/italics، توپر/bold، یا خاص/special) را به قلم .I f در .I \%troff (چه نام یا شماره) تنظیم می‌کند. . مقدار پیش‌فرض به ترتیب R (I، B و S) است. . .TP .BI l\~ f .TQ .BI stipple\~ f قلم ترام (stipple font) را به قلم ترام .I f در .I \%troff (نام یا شماره) تنظیم می‌کند. . دستور .B \%stipple را می‌توان تا .RB \[lq] st \[rq] مخفف کرد (برای جلوگیری از سردرگمی با .RB \%\[lq] special \[rq] ). . هیچ مقدار پیش‌فرضی برای ترام‌ها وجود ندارد (مگر اینکه مقداری توسط دستور .RB \%\[lq] default \[rq] تعیین شده باشد)، و گنجاندن یک تصویر .I gremlin با چندضلعی‌ها بدون تعیین قلم ترام نامعتبر است. . .TP .BI x\~ N .TQ .BI scale\~ N تصویر را (علاوه بر هرگونه بزرگ‌نمایی پیش‌فرض) به میزان .IR N ، یک عدد ممیز شناور بزرگ‌تر از صفر، بزرگ‌نمایی می‌کند. . دستور .B scale را می‌توان تا .RB \[lq] sc \[rq] مخفف کرد. . .TP .BI narrow\~ N .TQ .BI medium\~ N .TQ .BI thick\~ N ضخامت خطوط باریک (به ترتیب متوسط و ضخیم) در .I gremlin را به اندازه .I N برابر 0.15pt تنظیم می‌کند (این مقدار در زمان کامپایل قابل تغییر است). . مقادیر پیش‌فرض به ترتیب 1.0 (3.0 و 5.0) است، که معادل 0.15pt (به ترتیب 0.45pt و 0.75pt) می‌باشد. . مقدار ضخامت صفر کمترین ضخامت خط ممکن را انتخاب می‌کند. . مقادیر منفی باعث می‌شوند ضخامت خط متناسب با اندازه نقطه جاری باشد. . .TP .BR pointscale\~ [ off | on ] مقیاس‌بندی متن برای هماهنگی با تصویر. . متن Gremlin معمولاً با اندازه نقطه مشخص‌شده توسط دستورات .BR 1 ، .BR 2 ، .BR 3 یا .B 4 چاپ می‌شود، صرف‌نظر از هرگونه ضریب مقیاس در تصویر. . تنظیم .B pointscale باعث می‌شود که اندازه‌های نقطه به همراه تصویر مقیاس‌بندی شوند (البته در محدوده محدودیت‌های .IR \%troff ). . هر عملوندی به غیر از .B off مقیاس‌بندی متن را فعال می‌کند. . .TP .B default بازنشانی مقادیر پیش‌فرض محیط تصویر به تنظیمات تصویر جاری. . این دستور به عنوان سازوکاری برای تنظیم سراسری پارامترها در ابتدای ورودی .I \%troff در نظر گرفته شده است، اما در هر زمان دیگری نیز برای بازنشانی تنظیمات پیش‌فرض قابل استفاده است. . .TP .BI width\~ N اجبار تصویر به داشتن عرضی معادل .I N اینچ. . این دستور هرگونه ضریب مقیاس موجود در همان تصویر را لغو می‌کند. . مقدار .RB \[lq] "width 0" \[rq] نادیده گرفته می‌شود. . .TP .BI height\~ N اجبار تصویر به داشتن ارتفاعی معادل .I N اینچ، با لغو سایر ضرایب مقیاس. . اگر هر دو دستور .B width و .B height مشخص شده باشند، محدودیت سخت‌گیرانه‌تر مقیاس تصویر را تعیین می‌کند. . دستورات .B height و .B width توسط دستور .RB \%\[lq] default \[rq] ذخیره نمی‌شوند. . با این وجود، در صورت تنظیم بودن آن گزینه، بر مقیاس‌بندی اندازه نقطه اثر خواهند گذاشت. . .TP .BI file\~ name دریافت تصویر از فایل .I gremlin با نام .I name واقع در دایرکتوری جاری (یا در دایرکتوری کتابخانه؛ گزینه .B \-M در بالا را ببینید). . اگر چندین دستور .B file داده شود، آخرین دستور ملاک خواهد بود. . اگر .I name وجود نداشته باشد، پیام خطا گزارش شده و پردازش از خط .B .GE ادامه می‌یابد. . . .\" ==================================================================== .SS "استفاده با \f[I]groff\f[]" .\" ==================================================================== . از آنجا که .I \%grn یک پیش‌پردازنده است، به عناصر وضعیت قالب‌بندی (formatter state)، از جمله دندانه‌گذاری، طول خط، اندازه قلم، یا مقادیر ثبات‌ها دسترسی ندارد. . در نتیجه، هیچ ورودی .I \%troff نمی‌تواند بین ماکروهای .B .GS و .B .GE قرار گیرد. . با این حال، عناصر متنی .I gremlin متعاقباً توسط .I \%troff پردازش می‌شوند، بنابراین هر چیزی که در یک خط ورودی .I \%troff معتبر باشد، در یک خط از متن .I gremlin نیز معتبر خواهد بود (به جز نویسه کنترلی نقطه \[lq].\[rq] در ابتدای خط). . بنابراین، می‌توان در یک شکل .I gremlin با گنجاندن عبارات .I eqn محصور در جداکننده‌های از پیش تعیین‌شده (مانند \[lq]$$\[rq]) در فایل .IR gremlin ، معادلات ریاضی ایجاد کرد. . .PP هنگام استفاده از .I \%grn همراه با سایر پیش‌پردازنده‌ها، پیش‌پردازنده .MR \%tbl 1 را پیش از .IR \%grn ، .MR \%pic 1 و/یا .I ideal اجرا کنید. . اگر به .MR \%eqn 1 نیاز است، آن را به عنوان آخرین پیش‌پردازنده اجرا کنید. . دستور .MR groff 1 پیش‌پردازنده‌ها را به طور خودکار به ترتیب صحیح اجرا می‌کند. . .PP یک تصویر یک موجودیت واحد در نظر گرفته می‌شود، اما این موضوع مانع از تلاش .I \%troff برای شکستن آن در صورت قرار گرفتن در انتهای یک صفحه نمی‌شود. . قرار دادن تصویر بین نگه‌دارنده‌ها (\[lq]keeps\[rq]) در ماکروهای .I me جای‌گیری مناسب آن را تضمین می‌کند. . .PP دستور .I \%grn از ثبات‌های .B g1 تا .B g9 در .I \%troff استفاده می‌کند و قبل از ورود به ماکروی .BR .GS ، ثبات‌های .B g1 و .B g2 را به ترتیب به عرض و ارتفاع شکل .I gremlin (بر حسب واحدهای دستگاه) تنظیم می‌کند (این مورد برای افرادی است که قصد بازنویسی این ماکروها را دارند). . . .\" ==================================================================== .SS "قالب فایل gremlin" .\" ==================================================================== . دو قالب فایل متمایز برای .I gremlin وجود دارد: قالب اصلی برای پایانه‌های گرافیکی AED، و نسخه Sun یا X11. . پسوندی که توسط نسخه Sun/X11 استفاده می‌شود و امکان استفاده از نقاط مرجع با مختصات منفی را فراهم می‌آورد، با نسخه AED سازگار .I نیست . . تا زمانی که یک فایل .I gremlin حاوی مختصات منفی نباشد، هر دو قالب به درستی توسط هر دو نسخه .I gremlin یا .I \%grn خوانده می‌شوند. . تفاوت دیگر در قالب Sun/X11، استفاده از نام‌ها برای اشیاء تصویری (مانند .BR POLYGON ، .BR CURVE ) به جای اعداد است. . فایل‌هایی که تصویر یکسانی را نشان می‌دهند در زیر آورده شده‌اند: . .PP .EX .ie t .ne 18v .el .ne 19v .TS center, tab(@); l lw(0.1i) l. sungremlinfile@@gremlinfile 0 240.00 128.00@@0 240.00 128.00 CENTCENT@@2 240.00 128.00@@240.00 128.00 185.00 120.00@@185.00 120.00 240.00 120.00@@240.00 120.00 296.00 120.00@@296.00 120.00 *@@\-1.00 \-1.00 2 3@@2 3 10 A Triangle@@10 A Triangle POLYGON@@6 224.00 416.00@@224.00 416.00 96.00 160.00@@96.00 160.00 384.00 160.00@@384.00 160.00 *@@\-1.00 \-1.00 5 1@@5 1 0@@0 \-1@@\-1 .TE .EE . . .IP \[bu] 3n نخستین خط هر فایل .I gremlin شامل رشته .RB \%\[lq] gremlinfile \[rq] (AED) یا .RB \%\[lq] sungremlinfile \[rq] (Sun/X11) است. . . .IP \[bu] دومین خط فایل شامل جهت‌گیری و مقادیر .I x و .I y برای یک نقطه موقعیت‌یابی است که با فاصله از یکدیگر جدا شده‌اند. . جهت‌گیری، چه .B 0 یا .BR 1 ، توسط نسخه Sun/X11 نادیده گرفته می‌شود. . مقدار .B 0 به این معنی است که .I gremlin اشیاء را در قالب افقی نمایش می‌دهد (ناحیه ترسیمی که عرض آن بیشتر از ارتفاعش است، همراه با یک منو در بالا). . مقدار .B 1 به این معنی است که .I gremlin اشیاء را در قالب عمودی نمایش می‌دهد (ناحیه ترسیمی که ارتفاع آن بیشتر از عرضش است، همراه با یک منو در سمت چپ). . .I x و .I y مقادیر ممیز شناور هستند که نقطه موقعیت‌یابی را مشخص می‌کنند که هنگام خواندن این فایل در فایلی دیگر استفاده می‌شود. . محتوای این خط واقعاً چندان اهمیتی ندارد؛ مقدار .RB \[lq] "1 0.00 0.00" \[rq] پیشنهاد می‌شود. . . .IP \[bu] بقیه فایل شامل صفر یا چند مشخصه عنصر است. . پس از آخرین مشخصه عنصر، خطی قرار دارد که شامل رشته .RB \[lq] \-1 \[rq] است. . . .IP \[bu] خطوط طولانی‌تر از ۱۲۷ نویسه به همان طول بریده می‌شوند. . . .\" ==================================================================== .SS "مشخصات عناصر" .\" ==================================================================== . .IP \[bu] 3n نخستین خط هر عنصر شامل یک عدد ده‌دهی است که نوع عنصر (AED) یا نام آن (Sun/X11) را مشخص می‌کند. . . .IP .ie t .ne 18v .el .ne 19v .TS center, tab(@); css ccc nBlBl. \f[I]gremlin\f[] File Format: Object Type Specification _ AED Number@Sun/X11 Name@Description 0@BOTLEFT@text aligned to bottom left 1@BOTRIGHT@text aligned to bottom right 2@CENTCENT@center object 3@VECTOR@vector 4@ARC@arc 5@CURVE@curve 6@POLYGON@polygon 7@BSPLINE@b-spline 8@BEZIER@B\['e]zier 10@TOPLEFT@text aligned to top left 11@TOPCENT@text aligned to top center 12@TOPRIGHT@text aligned to top right 13@CENTLEFT@text aligned to center left 14@CENTRIGHT@text aligned to center right 15@BOTCENT@text aligned to bottom center .TE . . .IP \[bu] هر خط پس از نوع شیء، نقطه‌ای را مشخص می‌کند که برای نمایش آن عنصر به کار می‌رود. . این خط شامل یک مختصات .I x و یک مختصات .I y در قالب ممیز شناور است که با فاصله از هم جدا شده‌اند. . فهرست نقاط با خطی پایان می‌یابد که شامل رشته .RB \[lq] "\-1.0 \-1.0" \[rq] (در AED) یا یک علامت ستاره منفرد، .RB \[lq] * \[rq] (در Sun/X11) است. . . .IP \[bu] پس از نقاط، خطی شامل دو مقدار ده‌دهی می‌آید که قلم‌مو (brush) و اندازه (size) را برای عنصر مشخص می‌کند. . قلم‌مو سبکی را که اشیاء با آن رسم می‌شوند تعیین می‌کند. . برای بردارها، کمان‌ها و منحنی‌ها، شش مقدار معتبر قلم‌مو وجود دارد: . . .IP .TS center, tab(@); nB l. 1@خطوط نازک نقطه‌چین 2@خطوط نازک خط-نقطه 3@خطوط ضخیم توپر 4@خطوط نازک خط‌چین 5@خطوط نازک توپر 6@خطوط متوسط توپر .TE . . .IP برای چندضلعی‌ها، مقدار 0 نیز معتبر است: این مقدار یک حاشیه نامرئی را مشخص می‌کند. . برای متن، قلم‌مو یک قلم را به صورت زیر انتخاب می‌کند: . . .IP .TS center, tab(@); nB l. 1@رومی/عادی (قلم R در \f[I]\%troff\f[]) 2@مورب (قلم I در \f[I]\%troff\f[]) 3@توپر (قلم B در \f[I]\%troff\f[]) 4@خاص (قلم S در \f[I]\%troff\f[]) .TE . . .IP اگر از .I \%grn برای عبور دادن تصاویر خود از طریق .I groff استفاده می‌کنید، این قلم صرفاً یک قلم آغازین است. . رشته متنی می‌تواند شامل دنباله‌های قالب‌بندی مانند \[lq]\[rs]fI\[rq] یا \[lq]\[rs]d\[rq] باشد که ممکن است قلم را تغییر دهند (و همچنین کارهای متعدد دیگری انجام دهند). . برای متن، فیلد اندازه یک مقدار ده‌دهی بین ۱ تا ۴ است. . این فیلد اندازه قلمی را که متن با آن رسم خواهد شد تعیین می‌کند. . برای چندضلعی‌ها، این فیلد اندازه به عنوان شماره ترام برای پر کردن چندضلعی تفسیر می‌شود. . این شماره در زمان چاپ برای ارجاع به یک قلم ترام استفاده می‌شود. . . .IP \[bu] آخرین خط هر عنصر شامل یک عدد ده‌دهی و یک رشته از نویسه‌هاست، که با یک فاصله از یکدیگر جدا شده‌اند. . این عدد شمارنده تعداد نویسه‌ها در رشته است. . این اطلاعات تنها برای عناصر متنی استفاده می‌شود، و حاوی رشته متنی است. . می‌تواند فاصله‌هایی درون متن وجود داشته باشد. . برای کمان‌ها، منحنی‌ها و بردارها، تعداد نویسه‌ها صفر .RB ( 0 ) است که دقیقاً یک فاصله قبل از نویسه خط جدید به دنبال آن می‌آید. . . .\" ==================================================================== .SS "مختصات" .\" ==================================================================== . نرم‌افزار .I gremlin برای پایانه‌های AED طراحی شده بود، و مختصات آن نمایانگر فضای مختصات AED است. . برای تصاویر عمودی، مقادیر .I x از ۱۱۶ تا ۵۱۱، و مقادیر .I y از ۰ تا ۴۸۳ متغیر هستند. . برای تصاویر افقی، مقادیر .I x از ۰ تا ۵۱۱، و مقادیر .I y از ۰ تا ۳۶۷ متغیر هستند. . اگرچه لزومی ندارد دقیقاً به این محدوده پایبند باشید، اما اگر دست‌کم در همین حوالی بمانید نتایج بهتری دریافت خواهید کرد. . همچنین، فهرست نقاط با نقطه‌ای به مختصات (\-1, \-1) خاتمه می‌یابد، بنابراین هرگز نباید از مختصات منفی استفاده کنید. . نرم‌افزار .I gremlin مختصات را با استفاده از قالب \[lq]%f1.2\[rq] در .MR printf 3 می‌نویسد؛ اگر می‌خواهید کد .I \%grn را تغییر دهید احتمالاً استفاده از همین قالب ایده خوبی خواهد بود. . . .\" ==================================================================== .SS "مختصات Sun/X11" .\" ==================================================================== . هیچ محدودیتی در محدوده مختصات استفاده‌شده برای ایجاد اشیاء در نسخه Sun/X11 از .I gremlin وجود ندارد. . با این حال، فایل‌های دارای مختصات منفی در صورت نمایش در پایانه AED .I مسلماً باعث بروز مشکل خواهند شد. . . .\" ==================================================================== .SH "گزینه‌ها (OPTIONS)" .\" ==================================================================== . گزینه‌های .B \-?\& و .B \-\-help پیام راهنمای استفاده را نمایش می‌دهند، در حالی که .B \-v و .B \%\-\-version اطلاعات نگارش را نمایش می‌دهند؛ همگی پس از نمایش خارج می‌شوند. . . .TP 8.125n \" "-F dir" + 2n + hand-tuned for PDF .B \-C تشخیص .B .GS و .B .GE (و .BR .GF ) حتی زمانی که نویسه‌ای غیر از فاصله یا خط جدید بلافاصله پس از آن‌ها بیاید. . . .TP .BI \-F\~ dir جستجوی .I dir برای زیرشاخه‌های .IR dev name .RI ( name نام درایور خروجی است) جهت یافتن پرونده .I DESC پیش از دایرکتوری‌های پیش‌فرض قلم .IR /usr/\:\%share/\:\%groff/\:\%site\-font ، .IR /usr/\:\%share/\:\%groff/\:\%1.24.1/\:\%font و .IR /usr/\:\%lib/\:\%font . . . .TP .BI \-M\~ dir افزودن .I dir به ابتدای مسیر جستجوی فایل‌های .IR gremlin . . مسیر جستجوی پیش‌فرض به ترتیب دایرکتوری جاری، دایرکتوری خانگی (home)، .if !'no'no' .IR /usr/\:\%lib/\:\%groff/\:\%site\-tmac ، .IR /usr/\:\%share/\:\%groff/\:\%site\-tmac و .IR /usr/\:\%share/\:\%groff/\:\%1.24.1/\:\%tmac است. . . .TP .BI \-T\~ dev آماده‌سازی خروجی دستگاه با استفاده از درایور خروجی .IR dev . . مقدار پیش‌فرض .B \%ps است. . برای فهرستی از دستگاه‌های معتبر به .MR groff 1 مراجعه کنید. . . .\" ==================================================================== .SH "وضعیت خروج (EXIT STATUS)" .\" ==================================================================== . دستور .I \%grn در صورت اجرای موفق با .RB وضعیت\~ 0 خارج می‌شود، در صورتی که نتواند آرگومان‌های خط فرمان خود را تفسیر کند با .RB وضعیت\~ 2 ، و اگر در طول اجرا با خطایی روبرو شود با .RB وضعیت\~ 1 خارج می‌شود. . . .\" ==================================================================== .SH "فایل‌ها (FILES)" .\" ==================================================================== . .TP .IR /usr/\:\%share/\:\%groff/\:\%1.24.1/\:\%font/\:\%dev name /\:DESC دستگاه خروجی .I name را توصیف می‌کند. . . .\" ==================================================================== .SH "نویسندگان (AUTHORS)" .\" ==================================================================== . David Slattengren و Barry Roitblat نگارش اصلی برکلی .I grn را نوشتند. . Daniel Senderowicz و .MT wl@\:gnu\:.org Werner Lemberg .ME آن را برای .I groff تغییر دادند. . . .\" ==================================================================== .SH "همچنین ببینید (SEE ALSO)" .\" ==================================================================== . .MR gremlin 1 , .MR groff 1 , .MR \%pic 1 , .MR ideal 1 . . .\" Restore compatibility mode (for, e.g., Solaris 10/11). .cp \n[*groff_grn_1_man_C] .do rr *groff_grn_1_man_C . . .\" Local Variables: .\" fill-column: 72 .\" mode: nroff .\" End: .\" vim: set filetype=groff textwidth=72: