MANDOC(1) General Commands Manual MANDOC(1) نام (NAME) mandoc – قالببندی صفحههای راهنما خلاصه دستور (SYNOPSIS) mandoc [-ac] [-I os=name] [-K encoding] [-mdoc | -man] [-O options] [-T output] [-W level] [file ...] توضیحات (DESCRIPTION) ابزار mandoc صفحههای راهنما را برای نمایش قالببندی میکند. بهطور پیشفرض، mandoc متنهای mdoc(7) یا man(7) را از ورودی استاندارد (stdin) خوانده و خروجی -T locale تولید میکند. گزینهها به شرح زیر هستند: -a اگر خروجی استاندارد یک ترمینال باشد و -c مشخص نشده باشد، مانند man(1) از less(1) برای صفحهبندی خروجی استفاده میکند. -c صفحههای راهنمای قالببندیشده را بدون استفاده از less(1) برای صفحهبندی آنها، در خروجی استاندارد رونوشت میکند. این رفتار پیشفرض است. میتوان آن را برای لغو اثر -a مشخص کرد. -I os=name نام پیشفرض سیستمعامل (name) را برای ماکروی Os در mdoc(7) و ماکروی TH در man(7) بازنویسی میکند. -K encoding کدگذاری ورودی را مشخص میکند. آرگومانهای encoding پشتیبانیشده عبارتند از us-ascii ، iso-8859-1 و utf-8. در صورت مشخص نشدن، تشخیص خودکار از نخستین مورد منطبق در فهرست زیر استفاده میکند: 1. اگر سه بایت اول فایل ورودی، نشان ترتیب بایت (BOM، 0xefbbbf) مربوط به UTF-8 باشد، ورودی به عنوان utf-8 تفسیر میشود. 2. اگر خط اول یا دوم فایل ورودی با قالب خط حالت emacs مطابقت داشته باشد: .\" -*- [...;] coding: encoding; -*- آنگاه ورودی مطابق با encoding تفسیر میشود. 3. اگر نخستین بایت غیر ASCII در فایل، آغازگر یک توالی معتبر UTF-8 باشد، ورودی به عنوان utf-8 تفسیر میشود. 4. در غیر این صورت، ورودی به عنوان iso-8859-1 تفسیر میشود. -mdoc | -man با گزینهٔ -mdoc -، تمام فایلهای ورودی به عنوان mdoc(7) تفسیر میشوند. با -man -، تمام فایلهای ورودی به عنوان man(7) تفسیر میشوند. بهطور پیشفرض، زبان ورودی بهصورت خودکار برای هر فایل تشخیص داده میشود: اگر اولین ماکرو Dd یا Dt باشد، تجزیهکنندهٔ mdoc(7) به کار میرود؛ در غیر این صورت، تجزیهکنندهٔ man(7) استفاده میشود. همراه با سایر آرگومانها، -m بدون هیچ پیامی نادیده گرفته میشود. -O options گزینههای خروجی جدا شده با کاما. برای مشاهدهٔ options پشتیبانیشده، به توضیحات قالبهای خروجی اختصاصی مراجعه کنید. -T output قالب خروجی را انتخاب میکند. مقدارهای پشتیبانیشده برای آرگومان output عبارتند از ascii ، html ، مقدار پیشفرض locale ، man ، markdown ، pdf ، ps ، tree و utf8. حالت ویژهٔ -T lint فقط ورودی را تجزیه کرده و هیچ خروجی تولید نمیکند. این حالت به منزلهٔ -W all است و پیامهای تجزیهکننده را که معمولاً در خروجی خطای استاندارد ظاهر میشوند، به خروجی استاندارد هدایت میکند. -W level حداقل سطح پیام (level) را برای گزارش در خروجی خطای استاندارد و تأثیرگذاری بر وضعیت خروج تعیین میکند. سطح level میتواند base ، style ، warning ، error یا unsupp باشد. سطح base سیستمعامل را بهطور خودکار از محتوای ماکروی Os ، از گزینهٔ خط فرمان -Ios -، یا از مقدار بازگشتی uname(3) استخراج میکند. سطوح openbsd و netbsd گونههایی از base هستند که تشخیص خودکار را کنار گذاشته و اعتبارسنجی قراردادهای سیستم پایه را برای یک سیستمعامل خاص درخواست میکنند. سطح all نام مستعاری برای base است. بهطور پیشفرض، mandoc پیامی نمایش نمیدهد. برای جزئیات به وضعیت خروج (EXIT STATUS) و خطاها (DIAGNOSTICS) مراجعه کنید. گزینهٔ ویژهٔ -W stop به mandoc دستور میدهد پس از تجزیهٔ فایلی که هشدارهایی یا خطاهایی حداقل در سطح درخواستی ایجاد میکند، خارج شود. هیچ خروجی قالببندیشدهای از آن فایل تولید نخواهد شد. اگر هم یک level و هم stop درخواست شوند، میتوان آنها را با کاما به هم متصل کرد؛ به عنوان مثال -W error,stop. file از فایل ورودی دادهشده میخواند. اگر چندین فایل مشخص شده باشند، به ترتیب دادهشده پردازش میشوند. در صورت مشخص نشدن، mandoc از ورودی استاندارد میخواند. گزینههای -fhklw نیز پشتیبانی میشوند و در man(1) مستند شدهاند. در حالتهای -f و -k -، ابزار mandoc همچنین از گزینههای -CMmOSs که در راهنمای apropos(1) توضیح داده شدهاند پشتیبانی میکند. گزینههای -fkl مانعةالجمع هستند و یکدیگر را لغو میکنند. خروجی ASCII از -T ascii برای اجبار به خروجی متن با کدگذاری نویسههای ۷-بیتی ASCII مستندشده در صفحهٔ راهنمای ascii(7) ، صرفنظر از locale(1) تنظیمشده در محیط استفاده کنید. سبک قلمها با استفاده از نویسههای پسبر (back-spaced) اعمال میشود، بهطوری که نویسهٔ زیرخطدار ‘c’ بهصورت ‘_\[bs]c’ نمایش داده میشود، که در آن ‘\[bs]’ نویسهٔ پسبر با شماره ۸ است. نویسههای پررنگ بهصورت ‘c\[bs]c’ نمایش داده میشوند. این نشانهگذاری معمولاً توسط صفحهبند یا ul(1) به دنبالههای ترمینال مناسب تبدیل میشود. برای حذف نشانهگذاری، خروجی را به col(1) -b هدایت کنید. نویسههای ویژهای که در mandoc_char(7) مستند شدهاند، با بهترین تقریب ممکن به معادل ASCII نمایش داده میشوند. بهویژه، گیومههای تکی باز و بسته (‘single quotes’) به ترتیب با نویسههای شماره 0x60 و 0x27 نمایش داده میشوند که با تمام استانداردهای ASCII از ۱۹۶۵ تا آخرین بازنگری (۲۰۱۲) مطابقت دارد و با روش سنتی قالببندهای roff(7) در نمایش گیومههای تکی در خروجی ASCII همخوانی دارد. این نمایش صحیح ASCII ممکن است با قلمهای مدرن سازگار با یونیکد عجیب به نظر برسد؛ زیرا برخلاف ASCII، یونیکد از نقطهٔ کد U+0060 فقط برای اکسان گراو استفاده میکند و هرگز برای گیومهٔ باز بهکار نمیرود. آرگومانهای -O زیر پذیرفته میشوند: indent=indent حاشیهٔ چپ برای متن عادی بهجای پنج فاصلهٔ پیشفرض در mdoc(7) و هفت فاصله در man(7) ، روی indent نویسهٔ خالی تنظیم میشود. افزایش این مقدار توصیه نمیشود؛ ممکن است منجر به افت کیفیت قالببندی شود، برای نمونه سرریز خطوط یا شکستگیهای نامناسب در خط. هنگامی که خروجی به صفحهبندی در یک ترمینال با پهنای کمتر از ۶۶ ستون هدایت میشود، مقدار پیشفرض به سه ستون کاهش مییابد. mdoc فایلهای ورودی man(7) را به سبک خروجی mdoc(7) قالببندی میکند. این کار نام سیستمعامل را بهجای عنوان صفحه در سمت راست خط پاورقی چاپ میکند، و متضمن -O indent=5 است. یک کاربرد مفید آن بررسی این است که آیا خروجی -T man مشابه منبع mdoc(7) که از آن تولید شده قالببندی میشود یا خیر. tag[=term] اگر صفحهٔ راهنمای قالببندیشده در یک صفحهبند باز شود، بهجای نمایش صفحهٔ راهنما از ابتدا، به تعریف term پرش میکند. اگر هیچ term مشخص نشده باشد، از اولین آرگومان خط فرمان که شمارهٔ section نیست مجدداً استفاده میشود. اگر آن آرگومان در قالب key=val مربوط به apropos(1) باشد، بهجای کل آرگومان فقط val استفاده میشود. این ویژگی برای دستورهایی مانند ‘man -akO tag Ic=ulimit’ برای جستجوی یک کلیدواژه و پرش مستقیم به تعریف آن در صفحات راهنمای منطبق مفید است. width=width پهنای خروجی بهجای مقدار پیشفرض ۷۸ روی width تنظیم میشود. هنگامی که خروجی به صفحهبندی در ترمینالی با پهنای کمتر از ۷۹ ستون ارسال میشود، مقدار پیشفرض به یکی کمتر از پهنای ترمینال کاهش مییابد. در هر حال، خطوطی که در حالت پیشفرض (literal) خارج میشوند هرگز شکسته نمیشوند و ممکن است از پهنای خروجی فراتر روند. خروجی HTML خروجی تولیدشده توسط -T html با استفاده از تگهای خودبسته اختیاری با HTML5 مطابقت دارد. سبکهای پیشفرض فقط از CSS1 استفاده میکنند. معادلاتی که از بلوکهای eqn(7) تولید میشوند از MathML استفاده میکنند. فایل /usr/share/misc/mandoc.css کلاسهای شیوهنامه موجود برای سفارشیسازی خروجی را مستند میکند. اگر شیوهنامهای با -O style مشخص نشود، -T html بهطور پیشفرض خروجی سادهای (از طریق یک شیوهنامهٔ تعبیهشده) تولید میکند که در هر مرورگر وب گرافیکی یا متنی قابل خواندن است. نویسههای غیر ASCII بهصورت ارجاعات نویسهٔ شانزدهشانزدهی یونیکد نمایش داده میشوند. آرگومانهای -O زیر پذیرفته میشوند: fragment اعلامیهٔ و عنصرهای ،
و را حذف کرده و فقط زیردرخت درون عنصر را تولید میکند. آرگومان style نادیده گرفته خواهد شد. این ویژگی هنگام گنجاندن محتوای راهنما در اسناد موجود مفید است. includes=fmt رشتهٔ fmt ، برای مثال ../src/%I.html ، به عنوان الگویی برای فایلهای سرایند پیوند دادهشده (معمولاً از طریق ماکروی In) استفاده میشود. نمونههای ‘%I’ با نام فایل include جایگزین میشوند. حالت پیشفرض، عدم ارائهٔ پیوند است. man=fmt[;fmt] رشتهٔ fmt ، برای مثال ../html%S/%N.%S.html ، به عنوان الگویی برای راهنماهای پیوند دادهشده (معمولاً از طریق ماکروی Xr) استفاده میشود. نمونههای ‘%N’ و ‘%S’ به ترتیب با نام و بخش راهنمای پیوند دادهشده جایگزین میشوند. اگر بخشی گنجانده نشده باشد، بخش ۱ فرض میشود. حالت پیشفرض عدم ارائهٔ پیوند است. اگر دو الگو ارائه شود و فایل %N.%S در دایرکتوری جاری موجود باشد، الگوی اول استفاده میشود؛ در غیر این صورت، الگوی دوم به کار میرود. style=style.css فایل style.css برای شیوهنامهٔ خارجی استفاده میشود. این باید یک URI معتبر مطلق یا نسبی باشد. tag[=term] نحو و معناشناسی مشابه با خروجی ASCII. این مورد با ارسال یک URI با طرح file:// که به یک شناسهٔ بخش ختم میشود به صفحهبند پیادهسازی شده است، نه ارسال صرفاً یک نام فایل. هنگام استفاده از این آرگومان، از صفحهبندی استفاده کنید که از چنین URIهایی پشتیبانی میکند، به عنوان مثال: MANPAGER='lynx -force_html' man -T html -O tag=MANPAGER man MANPAGER='w3m -T text/html' man -T html -O tag=toc mandoc در نتیجه، برای خروجی HTML، این آرگومان با more(1) یا less(1) کار نمیکند. برای نمونه، ‘MANPAGER=less man -T html -O tag=toc mandoc’ کار نمیکند زیرا less(1) از URIهای file:// پشتیبانی نمیکند. toc اگر یک فایل ورودی حداقل شامل دو بخش غیر استاندارد باشد، فهرست مطالبی را نزدیک ابتدای خروجی چاپ میکند. خروجی Locale بهطور پیشفرض، mandoc بهصورت خودکار خروجی UTF-8 یا ASCII را بر اساس locale(1) جاری انتخاب میکند. اگر هر یک از متغیرهای محیطی LC_ALL ، LC_CTYPE یا LANG تنظیم شده باشند و اولین متغیری که تنظیم شده، کدگذاری نویسهٔ UTF-8 را انتخاب کند، خروجی UTF-8 تولید میشود؛ در غیر این صورت، به خروجی ASCII بازمیگردد. این حالت خروجی را میتوان صراحتاً با -T locale نیز انتخاب کرد. خروجی Man از -T man برای ترجمهٔ ورودی mdoc(7) به قالب خروجی man(7) استفاده کنید. این برای توزیع منابع صفحات راهنما به سیستمهای قدیمی که فاقد قالببندهای mdoc(7) هستند مفید است. کدهای تعبیهشدهٔ eqn(7) و tbl(7) پشتیبانی نمیشوند. اگر قالب ورودی یک فایل man(7) باشد، ورودی در خروجی رونوشت میشود. تجزیهکننده نیز اجرا میشود، و مثل همیشه، سطح -W مشخص میکند که کدام خطاها (DIAGNOSTICS) پیش از رونوشت ورودی به خروجی نمایش داده شوند. خروجی Markdown از -T markdown برای ترجمهٔ ورودی mdoc(7) به قالب markdown مطابق با مشخصات سال ۲۰۰۴ جان گروبر: http://daringfireball.net/projects/markdown/syntax.text استفاده کنید. خروجی همچنین تقریباً با مشخصات CommonMark: http://commonmark.org مطابقت دارد. مجموعه نویسههای مورد استفاده برای خروجی markdown برابر با ASCII است. نویسههای غیر ASCII بهصورت موجودیتهای HTML کدگذاری میشوند. از آنجا که این کار در زمینههای قلم لفظی (literal) ممکن نیست، زیرا آنها بهصورت کد درونخطی و بلوکهای کد در خروجی markdown نمایش داده میشوند، نویسههای غیر ASCII در این زمینهها به تقریبهای ASCII نویسهگردانی میشوند. مارکداون یک زبان نشانهگذاری بسیار ضعیف است، بنابراین تمام نشانهگذاریهای معنایی از بین میروند و حتی بخشی از نشانهگذاریهای نمایشی نیز ممکن است از دست بروند. از این گزینه به عنوان یک مرحلهٔ میانی برای تبدیل به HTML استفاده نکنید؛ بهجای آن، مستقیماً از -T html استفاده کنید. زبانهای ورودی man(7) ، tbl(7) و eqn(7) توسط حالت خروجی -T markdown پشتیبانی نمیشوند. خروجی PDF خروجی PDF-1.1 را میتوان با -T pdf تولید کرد. برای آرگومانهای -O و پیشفرضها، به خروجی PostScript مراجعه کنید. خروجی PostScript صفحات PostScript "Adobe-3.0" سطح ۲ را میتوان با -T ps تولید کرد. صفحات خروجی بهطور پیشفرض در اندازهٔ letter هستند و با خانوادهٔ قلم Times با اندازهٔ ۱۱ پوینت رندر میشوند. حاشیهها بهصورت ۱/۹ طول و عرض صفحه محاسبه میشوند. ارتفاع خط 1.4m است. نویسههای ویژه مانند خروجی ASCII نمایش داده میشوند. آرگومانهای -O زیر پذیرفته میشوند: paper=name نام اندازهٔ کاغذ (name) میتواند یکی از موارد a3 ، a4 ، a5 ، legal یا letter باشد. همچنین میتوانید ابعاد را بهصورت دستی به شکل NNxNN ، عرض در ارتفاع بر حسب میلیمتر مشخص کنید. در صورت مواجهه با یک مقدار ناشناخته، از letter استفاده میشود. خروجی UTF-8 از -T utf8 برای اجبار به خروجی متنی با کدگذاری نویسهٔ چندبایتی UTF-8، صرفنظر از تنظیمات locale(1) در محیط، استفاده کنید. برای اطلاعات مربوط به سبک قلمها و آرگومانهای -O به خروجی ASCII مراجعه کنید. در سیستمهای عاملی که فاقد پشتیبانی از locale یا نویسههای پهن هستند، و سیستمهایی که در آنها نمایش داخلی نویسهها UCS-4 نیست، mandoc همواره به خروجی ASCII بازمیگردد. خروجی درخت نحو (Syntax tree) از -T tree برای نمایش یک بازنمایی قابل خواندن برای انسان از درخت نحو استفاده کنید. این گزینه برای اشکالزدایی کد منبع صفحات راهنما مفید است. قالب دقیق ممکن است تغییر کند، بنابراین برای آن تجزیهکننده ننویسید. پاراگراف اول دادههای فرادادهٔ یافتشده در پیشدرآمد mdoc(7) ، خط TH در man(7) ، یا مقادیر جایگزین استفادهشده را نمایش میدهد. در تخلیهٔ درخت (tree dump)، هر خط خروجی یک گره درخت نحو را نشان میدهد. گرههای فرزند نسبت به گره والد خود دارای تورفتگی هستند. ستونها عبارتند از: 1. برای گرههای ماکرو، نام ماکرو؛ برای گرههای متنی و tbl(7) ، محتوا. قالب ویژهای برای گرههای eqn(7) وجود دارد. 2. نوع گره (text، elem، block، head، body، body-end، tail، tbl، eqn). 3. پرچمها: - یک پرانتز باز اگر گره یک جداکنندهٔ بازکننده باشد. - یک ستاره اگر گره خط ورودی جدیدی را آغاز کند. - شمارهٔ خط ورودی (شروع از یک). - یک دو نقطه. - شمارهٔ ستون ورودی (شروع از یک). - یک پرانتز بسته اگر گره یک جداکنندهٔ پایانبخش باشد. - یک نقطه اگر گره به یک جمله پایان دهد. - عبارت BROKEN اگر گره، بلوکی باشد که توسط بلوک دیگری شکسته شده است. - عبارت NOSRC اگر گره در فایل ورودی نباشد، بلکه بهطور خودکار از ماکروها تولید شده باشد. - عبارت NOPRT اگر قرار نباشد گره برای هیچ قالب خروجیای، خروجی تولید کند. آرگومان -O زیر پذیرفته میشود: noval اعتبارسنجی را نادیده گرفته و درخت نحو اعتبارسنجینشده را نمایش میدهد. این میتواند به تشخیص اینکه آیا یک رفتار مشخص ناشی از تجزیهکننده است یا اعتبارسنج کمک کند. در این حالت فراداده در دسترس نیست. محیط (ENVIRONMENT) LC_CTYPE کدگذاری نویسهٔ locale(1). هنگامی که خروجی Locale انتخاب شده باشد، تصمیم میگیرد که از قالب خروجی ASCII استفاده شود یا UTF-8. این متغیر هرگز بر تفسیر فایلهای ورودی تأثیری ندارد. MANPAGER هر مقدار غیرخالی متغیر محیطی MANPAGER بهجای برنامهٔ استاندارد صفحهبندی، یعنی less(1) استفاده میشود؛ برای جزئیات به man(1) مراجعه کنید. تنها در صورتی استفاده میشود که -a یا -l مشخص شده باشد. PAGER برنامهٔ صفحهبندی را در زمانی که MANPAGER تعریف نشده باشد مشخص میکند. اگر نه PAGER و نه MANPAGER تعریف نشده باشند، از less(1) استفاده میشود. تنها در صورتی استفاده میشود که -a یا -l مشخص شده باشد. وضعیت خروج (EXIT STATUS) ابزار mandoc با یکی از مقادیر زیر خارج میشود که توسط سطح پیام (level) مرتبط با گزینهٔ -W کنترل میشود: 0 هیچ نقض قراردادی در سیستم پایه، پیشنهادهای نگارشی، هشدار یا خطایی رخ نداده است، یا موارد رخداده نادیده گرفته شدند زیرا پایینتر از level درخواستی بودند. 1 حداقل یک مورد نقض قرارداد سیستم پایه یا پیشنهاد نگارشی رخ داده است، اما بدون هشدار یا خطا، و -W base یا -W style مشخص شده بود. 2 حداقل یک هشدار رخ داده است، اما خطایی رخ نداده، و -W warning یا یک level پایینتر درخواست شده بود. 3 حداقل یک خطای تجزیه رخ داده است، اما با هیچ ویژگی پشتیبانینشدهای مواجه نشد، و -W error یا یک level پایینتر درخواست شده بود. 4 حداقل با یک ویژگی پشتیبانینشده مواجه شد، و -W unsupp یا یک level پایینتر درخواست شده بود. 5 آرگومانهای نامعتبر خط فرمان مشخص شدهاند. هیچ فایل ورودی خوانده نشده است. 6 یک خطای سیستمعامل رخ داده است، به عنوان مثال اتمام حافظه، توصیفگرهای فایل یا مدخلهای جدول فرآیندها. چنین خطاهایی ممکن است باعث خروج فوری mandoc شوند، احتمالاً در میانهٔ تجزیه یا قالببندی یک فایل. توجه داشته باشید که انتخاب حالت خروجی -T lint متضمن -W all است. مثالها (EXAMPLES) برای صفحهبندی صفحات راهنما در ترمینال: $ mandoc -l mandoc.1 man.1 apropos.1 makewhatis.8 برای تولید صفحات راهنمای HTML با /usr/share/misc/mandoc.css به عنوان شیوهنامه: $ mandoc -T html -O style=/usr/share/misc/mandoc.css mdoc.7 > mdoc.7.html برای بررسی یک مجموعهٔ بزرگ از صفحات راهنما: $ mandoc -T lint `find /usr/src -name \*\.[1-9]` برای تولید یک سری از صفحات راهنمای PostScript برای کاغذ A4: $ mandoc -T ps -O paper=a4 mdoc.7 man.7 > manuals.ps تبدیل یک راهنمای مدرن mdoc(7) به قالب قدیمیتر man(7) ، جهت استفاده در سیستمهایی که فاقد تجزیهکنندهٔ mdoc(7) هستند: $ mandoc -T man foo.mdoc > foo.man خطاها (DIAGNOSTICS) پیامهای نمایشدادهشده توسط mandoc از این قالب پیروی میکنند: mandoc: file:line:column: level: message: macro arguments (os) سه بخش اول، نام file ، شمارهٔ line و شمارهٔ column فایل ورودی را که پیام در آن فعال شده است مشخص میکنند. شمارههای خط و ستون از ۱ شروع میشوند. هر دو برای پیامهایی که به یک فایل ورودی بهطور کلی اشاره دارند حذف میشوند. همهٔ رشتههای level و message در ادامه توضیح داده شدهاند. نام macro ایجادکنندهٔ پیام و arguments آن در جایی که بیمعنی باشند حذف میشوند. مشخصکنندهٔ سیستمعامل (os) برای پیامهایی که مربوط به همهٔ سیستمهای عامل هستند حذف میشود. پیامهای مهلک دربارهٔ آرگومانهای نامعتبر خط فرمان یا خطاهای سیستمعامل، برای نمونه زمانی که حافظه تمام شده است، ممکن است بخشهای file و level را نیز حذف کنند. سطوح پیام دارای معانی زیر هستند: syserr یک خطای سیستمعامل رخ داده است. الزاماً مشکلی در فایلهای ورودی وجود ندارد. با این وجود ممکن است خروجی ناقص یا از دست رفته باشد. badarg آرگومانهای نامعتبر خط فرمان مشخص شدهاند. هیچ فایل ورودی خوانده نشده و خروجی تولید نمیشود. unsupp یک فایل ورودی از ویژگیهای سطح پایین و پشتیبانینشدهٔ roff(7) استفاده میکند. خروجی ممکن است ناقص و/یا بدقالببندیشده باشد، بنابراین استفاده از GNU troff بهجای mandoc برای پردازش فایل ترجیح داده میشود. error نشاندهندهٔ خطر از دست رفتن اطلاعات یا قالببندی به شدت ناقص است که در بیشتر موارد به دلیل خطاهای نحوی جدی ایجاد میشود. warning نشاندهندهٔ این احتمال است که اطلاعات نمایشدادهشده یا قالببندی آن ممکن است به شکل جزئی با قصد نویسنده مغایرت داشته باشد. علاوه بر این، خطاهای نحوی حداقل به عنوان هشدار دستهبندی میشوند، حتی اگر معمولاً باعث خرابی قالببندی نشوند. style یک فایل ورودی از سبک مشکوک یا نامناسب استفاده میکند. این یک ایراد نحوی نیست، و احتمالاً نه قالببندی و نه قابلیت انتقال به خطر نمیافتند. در حالی که دقت زیادی به خرج داده میشود تا در سطوح پیام بالاتر از موارد مثبت کاذب جلوگیری شود، سطح style تلاش میکند احتمال نادیده ماندن مسائل را کاهش دهد، بنابراین ممکن است گاهی پیشنهادهای نادرست ارائه دهد. لطفاً از قضاوت درست خود برای تصمیمگیری در مورد اینکه آیا یک پیشنهاد خاص style واقعاً تغییر در فایل ورودی را توجیه میکند یا خیر، استفاده کنید. base قراردادی که در سیستم پایهٔ یک سیستمعامل خاص استفاده میشود، رعایت نشده است. اینها اشتباهات نشانهگذاری نیستند، و نه کیفیت قالببندی و نه قابلیت حمل در خطر نیستند. پیامهای سطح base با برچسب شهودیترِ سطحِ style چاپ میشوند. پیامهای سطوح base ، style ، warning ، error و unsupp پنهان هستند مگر اینکه سطح آنها، یا سطحی پایینتر، با استفاده از گزینهٔ -W یا حالت خروجی -T lint درخواست شده باشد. همانطور که در ادامه اشاره شده است، تمام بررسیهای base و برخی از بررسیهای style تنها در صورتی انجام میشوند که یک نام سیستمعامل خاص در آرگومانهای گزینهٔ خط فرمان -W -، ماکروی Os ، گزینهٔ خط فرمان -Ios یا در صورت عدم وجود هیچیک، در مقدار بازگشتی تابع uname(3) وجود داشته باشد. قواعد برای صفحههای راهنمای سیستم پایه Mdocdate found (mdoc, NetBSD) ماکروی Dd از جایگزینی کلیدواژهٔ CVS Mdocdate استفاده میکند که توسط سیستم پایهٔ NetBSD پشتیبانی نمیشود. در عوض استفاده از قالب مرسوم “Month dd, yyyy” را در نظر بگیرید. Mdocdate missing (mdoc, OpenBSD) ماکروی Dd از جایگزینی کلیدواژهٔ CVS Mdocdate استفاده نمیکند، اما استفاده از آن در سیستم پایهٔ OpenBSD بهطور سنتی مورد انتظار است. unknown architecture (mdoc, OpenBSD, NetBSD) آرگومان سوم ماکروی Dt با هیچیک از معماریهایی که این سیستمعامل روی آنها اجرا میشود مطابقت ندارد. operating system explicitly specified (mdoc, OpenBSD, NetBSD) ماکروی Os دارای آرگومان است. در سیستم پایه، این ماکرو طبق سنت خالی رها میشود. RCS id missing (OpenBSD, NetBSD) صفحهٔ راهنما فاقد خط توضیحی با شناسهٔ RCS تولیدشده توسط جایگزینی کلیدواژهٔ CVS OpenBSD یا NetBSD است که طبق سنت در این سیستمهای عامل استفاده میشود. پیشنهادهای نگارشی (Style suggestions) legacy man(7) date format (mdoc) ماکروی Dd از قالب تاریخ قدیمی man(7) به شکل “yyyy-dd-mm” استفاده میکند. در عوض استفاده از قالب تاریخ مرسوم mdoc(7) به شکل “Month dd, yyyy” را در نظر بگیرید. normalizing date format to: ... (mdoc, man) ماکروی Dd یا TH یک نام اختصاری ماه یا شمارهٔ روز با صفر اولیه ارائه میدهد. در خروجی قالببندیشده، نام ماه بهطور کامل نوشته شده و صفر اولیه حذف میشود. lower case character in document title (mdoc, man) عنوان همچنان همانطور که در ماکروی Dt یا TH داده شده استفاده میشود. duplicate RCS id یک صفحهٔ راهنما شامل دو رونوشت از شناسهٔ RCS برای یک سیستمعامل است. حذف نمونهٔ بعدی و انتقال اولین مورد به بالای صفحه را در نظر بگیرید. possible typo in section name (mdoc) تطبیق فازی رشته نشان داد که آرگومان یک ماکروی Sh مشابه، اما نه کاملاً یکسان با نام یک بخش استاندارد است. unterminated quoted argument (roff) آرگومانهای ماکرو را میتوان در نویسههای نقلقول دوگانه محصور کرد تا نیازی به گریز دادن نویسههای فاصله و نامهای ماکرو در آرگومان نباشد. گیومهٔ پایانی آخرین آرگومان یک ماکرو را میتوان حذف کرد. با این حال، حذف آن توصیه نمیشود زیرا خوانایی کد را دشوارتر میکند. useless macro (mdoc) یک ماکروی Bt ، Tn یا Ud یافت شد. بهسادگی آن را حذف کنید؛ هیچ کاربرد مفیدی ندارد. consider using OS macro (mdoc) رشتهای در متن ساده یا در یک ماکروی Bx یافت شد که میتواند با استفاده از Ox ، Nx ، Fx یا Dx نمایش داده شود. errnos out of order (mdoc, NetBSD) موارد Er در فهرست Bl ترتیب الفبایی ندارند. duplicate errno (mdoc, NetBSD) یک فهرست Bl شامل دو مدخل متوالی It است که یک شمارهٔ Er یکسان را توصیف میکنند. referenced manual not found (mdoc) یک ماکروی Xr به صفحهٔ راهنمایی ارجاع میدهد که پیدا نشد. هنگام اجرا با -W base ، جستجو به سیستم پایه محدود میشود، بهطور پیشفرض به /usr/share/man:/usr/X11R6/man. این مسیر را میتوان در زمان کامپایل با استفاده از ماکروی پیشپردازندهٔ MANPATH_BASE پیکربندی کرد. هنگام اجرا با -W style ، جستجو در امتداد کل مسیر جستجو طبق توضیحات صفحهٔ راهنمای man(1) انجام میشود، با رعایت گزینههای خط فرمان -m و -M -، متغیر محیطی MANPATH و فایل man.conf(5) و بازگشت به مسیر پیشفرض /usr/share/man:/usr/X11R6/man:/usr/local/man ، که در زمان کامپایل با استفاده از ماکروی پیشپردازندهٔ MANPATH_DEFAULT نیز قابل پیکربندی است. trailing delimiter (mdoc) آخرین آرگومان یک ماکروی Ex ، Fo ، Nd ، Nm ، Os ، Sh ، Ss ، St یا Sx به یک جداکنندهٔ پایانی ختم میشود. این معمولاً نگارش بدی است و اغلب نشاندهندهٔ غلط املایی است. به احتمال زیاد میتوان جداکننده را حذف کرد. no blank before trailing delimiter (mdoc) آخرین آرگومان ماکرویی که از آرگومانهای جداکنندهٔ پایانی پشتیبانی میکند، طولانیتر از یک بایت است و به یک جداکنندهٔ پایانی ختم میشود. درج یک فاصله را در نظر بگیرید تا جداکننده به یک آرگومان جداگانه تبدیل شود، و بدین ترتیب از دامنهٔ ماکرو خارج شود. fill mode already enabled, skipping (man) درخواست fi رخ داده در حالی که سند هنوز در حالت پر کردن است، یا پیشتر به حالت پر کردن بازگشته است. این هیچ اثری ندارد. fill mode already disabled, skipping (man) درخواست nf رخ داده در حالی که سند پیشتر به حالت بدون پر کردن تغییر کرده و هنوز به حالت پر کردن بازنگشته است. این هیچ اثری ندارد. input text line longer than 80 bytes شکستن خط متن ورودی را در یکی از نویسههای فاصله قبل از ستون ۸۰ در نظر بگیرید. verbatim "--", maybe consider using \(em (mdoc) اگرچه دستگاه خروجی ASCII خط تیرهٔ پیوسته (em-dash) را بهصورت "--" نمایش میدهد، اما این روش مناسبی برای نوشتن آن در فایل ورودی نیست زیرا در تمام دستگاههای خروجی دیگر ظاهر نامناسبی پیدا میکند. function name without markup (mdoc) کلمهای که به دنبال آن یک جفت پرانتز خالی قرار دارد در یک خط متن دیده شده است. استفاده از ماکروی Fn یا Xr را در نظر بگیرید. whitespace at end of input line (mdoc, man, roff) فاصلههای خالی در پایان خطوط ورودی تقریباً هرگز اهمیت معنایی ندارند — اما در موارد نادری که اهمیت داشته باشند، هنگام بازبینی و نگهداری اسناد بسیار گیجکننده خواهند بود. bad comment style (roff) خطوط توضیحات با یک نقطه، یک ممیز وارونه و یک نویسهٔ نقلقول دوگانه شروع میشوند. ابزار mandoc خط را حتی بدون ممیز وارونه به عنوان خط توضیحات در نظر میگیرد، اما حذف ممیز وارونه ممکن است با سایر ابزارها سازگار نباشد. هشدارهای مربوط به مقدمه سند (Prologue) missing manual title, using UNTITLED (mdoc) یک ماکروی Dt هیچ آرگومانی ندارد، یا هیچ ماکروی Dt پیش از اولین ماکروی غیر مقدماتی وجود ندارد. missing manual title, using "" (man) هیچ ماکروی TH وجود ندارد، یا آرگومانی ندارد. missing manual section, using "" (mdoc, man) یک ماکروی Dt یا TH فاقد آرگومان اجباری بخش است. unknown manual section (mdoc) شمارهٔ بخش در یک خط Dt نامعتبر است، اما همچنان استفاده میشود. filename/section mismatch (mdoc, man) نام فایل ورودیِ در حال پردازش مشخص است و پسوند نام فایل آن با یک رقم غیر صفر شروع میشود، اما ماکروی Dt یا TH شامل آرگومان section است که با رقم غیر صفر متفاوتی شروع میشود. آرگومان section به همان صورتی که داده شده استفاده میشود. بررسی اینکه آیا نام فایل یا آرگومان نیاز به اصلاح دارند را در نظر بگیرید. missing date, using "" (mdoc, man) سند به عنوان mdoc(7) تجزیه شده و فاقد ماکروی Dd است، یا ماکروی Dd هیچ آرگومانی ندارد یا فقط آرگومانهای خالی دارد؛ یا سند به عنوان man(7) تجزیه شده و فاقد ماکروی TH است، یا ماکروی TH کمتر از سه آرگومان دارد یا آرگومان سوم آن خالی است. cannot parse date, using it verbatim (mdoc, man) تاریخ ارائهشده در ماکروی Dd یا TH از قالب مرسوم پیروی نمیکند. date in the future, using it anyway (mdoc, man) تاریخ دادهشده در ماکروی Dd یا TH بیش از یک روز جلوتر از زمان فعلی سیستم time(3) است. missing Os macro, using "" (mdoc) سیستم پیشفرض یا فعلی در این مورد نشان داده نمیشود. late prologue macro (mdoc) یک ماکروی Dd یا Os پس از ماکرویی غیر از ماکروهای مقدمه رخ میدهد، اما همچنان اعمال میشود. prologue macros out of order (mdoc) ماکروهای مقدمه با ترتیب سنتی Dd ، Dt ، Os ارائه نشدهاند. هر سه ماکرو حتی زمانی که با ترتیب متفاوتی ارائه شوند اعمال میگردند. هشدارهای مربوط به ساختار سند .so is fragile, better use ln(1) (roff) گنجاندن فایلها تنها زمانی کار میکند که برنامهٔ تجزیهکننده با دایرکتوری کاری جاریِ صحیح اجرا شود. no document body (mdoc, man) بدنهٔ سند شامل هیچ متن یا ماکرویی نیست. یک سند خالی متشکل از تنها یک خط سرایند و یک خط پاورقی نمایش داده میشود. content before first section header (mdoc, man) برخی ماکروها یا متنها پیش از اولین سرآیند بخش Sh یا SH قرار گرفتهاند. ماکروها و متنهای خطاکار تجزیه شده و در بالاترین سطح درخت نحو، خارج از هر بلوک بخشی اضافه میشوند. first section is not NAME (mdoc) آرگومان اولین ماکروی Sh برابر با ‘NAME’ نیست. این ممکن است makewhatis(8) و apropos(1) را دچار سردرگمی کند. NAME section without Nm before Nd (mdoc) بخش NAME شامل هیچ ماکروی فرزند Nm پیش از اولین ماکروی Nd نیست. NAME section without description (mdoc) بخش NAME فاقد ماکروی اجباری فرزند Nd است. description not at the end of NAME (mdoc) بخش NAME شامل یک ماکروی فرزند Nd است، اما محتوای دیگری پس از آن آمده است. bad NAME section content (mdoc) بخش NAME شامل متن ساده یا ماکروهایی به غیر از Nm و Nd است. missing comma before name (mdoc) بخش NAME شامل یک ماکروی Nm است که نه اولین مورد است و نه کاما پیش از آن آمده است. missing description line, using "" (mdoc) ماکروی Nd فاقد آرگومان لازم است. خط عنوان صفحهٔ راهنما پس از خط تیره به پایان میرسد. description line outside NAME section (mdoc) یک ماکروی Nd خارج از بخش NAME ظاهر شده است. آرگومانها به هر حال چاپ میشوند و متن بعدی برای apropos(1) استفاده میشود، اما هیچیک از این رفتارها قابل انتقال نیستند. sections out of conventional order (mdoc) یک بخش استاندارد بعد از بخش دیگری که معمولاً پیش از آن قرار میگیرد، واقع شده است. همهٔ عناوین بخشها همانطور که داده شدهاند استفاده میشوند، و ترتیب بخشها تغییر نمیکند. duplicate section title (mdoc) یک عنوان بخش استاندارد بیش از یک بار ظاهر شده است. unexpected section (mdoc) یک سرآیند بخش استاندارد در بخشی از راهنما ظاهر شده که معمولاً در آنجا کاربردی ندارد. cross reference to self (mdoc) یک ماکروی Xr به نام و بخشی اشاره دارد که با بخش صفحهٔ راهنمای فعلی و نام ذکرشده در ماکروی Nm در بخش NAME یا SYNOPSIS، یا در ماکروی Fn یا Fo در SYNOPSIS مطابقت دارد. استفاده از Nm یا Fn بهجای Xr را در نظر بگیرید. unusual Xr order (mdoc) در بخش SEE ALSO، یک ماکروی Xr با شمارهٔ بخش پایینتر پس از ماکرویی با شمارهٔ بالاتر آمده است، یا دو ماکروی Xr که به یک بخش اشاره دارند ترتیب الفبایی ندارند. unusual Xr punctuation (mdoc) در بخش SEE ALSO، نشانهگذاری بین دو ماکروی Xr چیزی به جز یک کامای تنها است، یا بعد از آخرین ماکروی Xr نشانهگذاری اضافی وجود دارد. AUTHORS section without An macro (mdoc) یک بخش AUTHORS فاقد ماکروهای An ، یا شامل ماکروهای خالی است. احتمالاً نامهای نویسندگانی وجود دارد که فاقد نشانهگذاری هستند. هشدارهای مربوط به ماکروها و تو در تویی obsolete macro (mdoc) برای جایگزینها به راهنمای mdoc(7) مراجعه کنید. macro neither callable nor escaped (mdoc) نام ماکرویی که قابل فراخوانی نیست در یک خط ماکرو ظاهر شده است. بهصورت کلمهبهکلمه چاپ میشود. اگر هدف فراخوانی آن است، آن را به خط ورودی خودش منتقل کنید؛ در غیر این صورت با قرار دادن ‘\&’ در ابتدای آن، آن را بگریزانید. skipping paragraph macro در اسناد mdoc(7) ، این وضعیت در این موارد رخ میدهد: - در ابتدا و انتهای بخشها و زیربخشها - دقیقاً پیش از فهرستها و نماهای غیر فشرده - در انتهای موارد در فهرستهای غیر ستونی و غیر فشرده - و برای چندین ماکروی پاراگراف متوالی. در اسناد man(7) ، این وضعیت در این موارد رخ میدهد: - برای ماکروهای خالیِ P ، PP و LP - برای ماکروهای IP که نه آرگومان سرآیند دارند و نه بدنه - برای br یا sp دقیقاً پس از SH یا SS moving paragraph macro out of list (mdoc) یک مورد در یک فهرست Bl شامل یک ماکروی پاراگراف پایانی است. ماکروی پاراگراف به بعد از انتهای فهرست منتقل میشود. skipping no-space macro (mdoc) یک خط ورودی با یک ماکروی Ns شروع میشود، یا آرگومان بعدی بعد از ماکروی Ns یک جداکنندهٔ پایانی تنها است. ماکرو نادیده گرفته میشود. blocks badly nested (mdoc) اگر دو بلوک با یکدیگر همپوشانی دارند، یکی باید کاملاً دیگری را در بر بگیرد. در غیر این صورت، خروجی تولیدشده در هر قالب خروجی احتمالاً عجیب به نظر خواهد رسید، و رندر در قالبهای خروجی مبتنی بر SGML احتمالاً کاملاً نادرست خواهد بود زیرا چنین زبانهایی به هیچ وجه از بلوکهای بد تو در تو پشتیبانی نمیکنند. نمونههای معمول از بلوکهای بد تو در تو عبارتند از "Ao Bo Ac Bc" و "Ao Bq Ac". در این مثالها، Ac به ترتیب باعث شکستن Bo و Bq میشود. nested displays are not portable (mdoc) یک نمای Bd ، D1 یا Dl بهصورت تو در تو درون نمای Bd دیگری قرار گرفته است. این کار در mandoc کار میکند، اما در اکثر پیادهسازیهای دیگر با شکست مواجه میشود. moving content out of list (mdoc) یک بلوک فهرست Bl پیش از اولین ماکروی It شامل متن یا ماکرو است. فرزندان خطاکار به پیش از آغاز فهرست منتقل میشوند. first macro on line درون یک فهرست Bl -column -، ماکروی Ta به عنوان اولین ماکرو در یک خط ظاهر شده است که رفتاری غیر قابل حمل است. line scope broken (man) هنگام تجزیهٔ دامنهٔ خط بعدی ماکروی قبلی، ماکروی دیگری پیدا میشود که ماکروی قبلی را پیش از موعد خاتمه میدهد. ماکروی قطعشدهٔ قبلی از درخت تجزیه حذف میشود. هشدارهای مربوط به آرگومانهای گمشده skipping empty request (roff, eqn) نام ماکرو از درخواست تعریف ماکرو جا افتاده است، یا یک عبارت کنترلی یا کلیدواژهٔ عملیاتی در eqn(7) فاقد آرگومان لازم است. conditional request controls empty scope (roff) یک درخواست شرطی تنها زمانی مفید است که یکی از موارد زیر در همان خط ورودی منطقی به دنبال آن بیاید: - کلیدواژهٔ ‘\{’ برای باز کردن یک دامنهٔ چندخطی. - یک درخواست یا ماکرو یا مقداری متن، که منجر به یک دامنهٔ تکخطی میشود. - پایان فوری خط منطقی بدون هرگونه فاصلهٔ خالی، که منجر به دامنهٔ خط بعدی میشود. در اینجا، یک درخواست شرطی فقط با فاصلههای انتهایی همراه شده است و محتوای دیگری در خط ورودی منطقی آن وجود ندارد. توجه داشته باشید که فرقی نمیکند خط ورودی منطقی با نویسهٔ ادامهٔ خط ‘\’ به چندین خط ورودی فیزیکی تقسیم شده باشد یا خیر. این یکی از موارد نادری است که در آن فاصلهٔ خالی انتهایی از نظر نحوی اهمیت دارد. درخواست شرطی دامنهای را کنترل میکند که تنها شامل فاصلههای خالی است، بنابراین بعید است که تأثیر قابل توجهی داشته باشد، مگر اینکه یک بندِ بعدیِ el را کنترل کند. skipping empty macro (mdoc) ماکروی مشخصشده هیچ آرگومانی ندارد و بنابراین اثری نخواهد داشت. empty block (mdoc, man) یک بلوک Bd ، Bk ، Bl ، D1 ، Dl ، MT ، RS یا UR در بدنهٔ خود شامل هیچ چیزی نیست و خروجی تولید نخواهد کرد. empty argument, using 0n (mdoc) پهنای مورد نیاز بعد از -offset یا -width در Bd یا Bl جا افتاده است. missing display type, using -ragged (mdoc) ماکروی Bd بدون نوع نمای مورد نیاز فراخوانی شده است. list type is not the first argument (mdoc) در یک ماکروی Bl ، حداقل یک آرگومان دیگر قبل از آرگومان نوع آمده است. ابزار mandoc با هر ترتیبی از آرگومانها کار میکند، اما برخی از پیادهسازیهای دیگر mdoc(7) چنین قابلیتی ندارند. missing -width in -tag list, using 8n (mdoc) هر ماکروی Bl که آرگومان -tag دارد، به -width نیز نیاز دارد. missing utility name, using "" (mdoc) ماکروی Ex -std بدون آرگومان فراخوانی شده در حالی که پیش از آن Nm با یک آرگومان فراخوانی نشده است. missing function name, using "" (mdoc) ماکروی Fo بدون آرگومان فراخوانی شده است. هیچ نام تابعی چاپ نمیشود. empty head in list item (mdoc) در یک فهرست -diag -، -hang -، -inset -، -ohang یا -tag از نوع Bl ، یک ماکروی It فاقد آرگومان لازم است. سرآیند مورد خالی گذاشته میشود. empty list item (mdoc) در یک فهرست -bullet -، -dash -، -enum یا -hyphen از نوع Bl ، یک بلوک It خالی است. یک مورد فهرست خالی نشان داده میشود. missing argument, using next line (mdoc) یک ماکروی It در یک فهرست Bd -column هیچ آرگومانی ندارد. در حالی که mandoc از متن یا ماکروهای خط بعدی (در صورت وجود) برای سلول استفاده میکند، قالببندهای دیگر ممکن است فهرست را نادرست قالببندی کنند. missing font type, using \fR (mdoc) یک ماکروی Bf هیچ آرگومانی ندارد. به قلم پیشفرض تغییر وضعیت میدهد. unknown font type, using \fR (mdoc) آرگومان Bf نامعتبر است. بهجای آن از قلم پیشفرض استفاده میشود. nothing follows prefix (mdoc) یک ماکروی Pf بدون آرگومان است، یا فقط یک آرگومان دارد و هیچ ماکرویی در همان خط ورودی به دنبال آن نمیآید. این کار هدف آن را خنثی میکند؛ بهویژه، ایجاد فاصله قبل از متن یا ماکروهای موجود در خط ورودی بعدی سرکوب نمیشود. empty reference block (mdoc) یک ماکروی Rs بلافاصله با یک ماکروی Re در خط ورودی بعدی دنبال شده است. چنین بلوک خالی هیچ خروجی تولید نمیکند. missing section argument (mdoc) یک ماکروی Xr فاقد آرگومان دوم خود، یعنی شمارهٔ بخش است. آرگومان اول، یعنی نام، چاپ میشود اما بدون پرانتزهای متعاقب آن. missing -std argument, adding it (mdoc) یک ماکروی Ex یا Rv فاقد آرگومان الزامی -std است. ابزار mandoc حتی زمانی که مشخص نشده باشد، -std را فرض میکند، اما ممکن است پیادهسازیهای دیگر چنین نکنند. missing option string, using "" (man) ماکروی OP بدون هیچ آرگومانی فراخوانی شده است. یک جفت قلاب خالی نمایش داده میشود. missing resource identifier, using "" (man) ماکروی MT یا UR بدون هیچ آرگومانی فراخوانی شده است. یک جفت علامت کوچکتر/بزرگترِ خالی نمایش داده میشود. missing eqn box, using "" (eqn) یک علامت زیروبم یا یک عملگر دوتایی پیدا شده است، اما چیزی در سمت چپ آن وجود ندارد. یک جعبهٔ خالی درج میشود. هشدارهای مربوط به آرگومانهای نادرست ماکرو duplicate argument (mdoc) یک ماکروی Bd یا Bl دارای بیش از یک آرگومان -compact -، بیش از یک -offset یا بیش از یک -width است. تمام نمونههای این آرگومانها به جز آخرین مورد نادیده گرفته میشوند. skipping duplicate argument (mdoc) یک ماکروی An دارای بیش از یک آرگومان -split یا -nosplit است. تمام موارد این آرگومانها به جز اولین مورد نادیده گرفته میشوند. skipping duplicate display type (mdoc) یک ماکروی Bd بیش از یک آرگومان نوع دارد؛ اولین مورد استفاده میشود. skipping duplicate list type (mdoc) یک ماکروی Bl بیش از یک آرگومان نوع دارد؛ اولین مورد استفاده میشود. skipping -width argument (mdoc) یک فهرست -column -، -diag -، -ohang -، -inset یا -item از نوع Bl دارای آرگومان -width است. این هیچ اثری ندارد. wrong number of cells در یک خط از یک فهرست Bl -column -، تعداد نویسههای تب یا ماکروهای Ta کمتر از تعداد مورد انتظار از خط سرآیند فهرست است یا بیش از یک واحد از تعداد مورد انتظار فراتر رفته است. سلولهای ناموجود خالی میمانند، و تمام سلولهای فراتر از تعداد ستونها در یک تک سلول ترکیب میشوند. unknown AT&T UNIX version (mdoc) یک ماکروی At آرگومان نامعتبر دارد. بهصورت کلمهبهکلمه با پیشوند "AT&T UNIX " استفاده میشود. comma in function argument (mdoc) یک آرگومان از ماکروی Fa یا Fn شامل یک کاما است؛ احتمالاً باید به دو آرگومان تقسیم شود. parenthesis in function name (mdoc) اولین آرگومان یک ماکروی Fc یا Fn شامل پرانتز باز یا بسته است؛ احتمالاً این اشتباه است زیرا پرانتزها بهطور خودکار اضافه میشوند. unknown library name (mdoc, not on OpenBSD) یک ماکروی Lb دارای آرگومان نام ناشناخته است و بهصورت "library “name”" نمایش داده میشود. invalid content in Rs block (mdoc) یک بلوک Rs شامل متن ساده یا ماکروهای غیر % است. محتوای نامعتبر در درخت نحو باقی میماند. قالببندی ممکن است ناقص باشد. invalid Boolean argument (mdoc) یک ماکروی Sm آرگومانی به غیر از on یا off دارد. آرگومان نامعتبر از ماکرو خارج میشود که باعث میشود ماکرو خالی مانده و حالت فاصلهگذاری را تغییر دهد. argument contains two font escapes (roff) آرگومان دوم یک درخواست char شامل بیش از یک توالی گریز قلم است. قلم اشتباه ممکن است پس از استفاده از نویسه فعال بماند. unknown font, skipping request (man, tbl) یک درخواست ft در roff(7) یا یک اصلاحکنندهٔ طرحبندی f در tbl(7) دارای آرگومان font ناشناخته است. odd number of characters in request (roff) یک درخواست tr شامل تعداد فردی از نویسهها است. آخرین نویسه به نویسهٔ فاصله نگاشت میشود. هشدارهای مربوط به متن خام blank line in fill mode, using .sp (mdoc) معنای خطوط ورودی خالی تنها در حالت بدون پر کردن بهخوبی تعریف شده است: در حالت پر کردن، شکستگی خطوطِ متن ورودی نباید معنایی داشته باشد. با این حال، برای سازگاری با groff، خطوط خالی در حالت پر کردن مانند درخواستهای sp قالببندی میشوند. برای ایجاد شکستگی پاراگراف، بهجای خط خالی از Pp استفاده کنید. tab in filled text (mdoc, man) معنای نویسههای تب تنها در حالت بدون پر کردن بهخوبی تعریف شده است: در حالت پر کردن، فاصلهها نباید در خطوط ورودی متن معنایی داشته باشند. به عنوان یک انتخاب وابسته به پیادهسازی، نویسههای تب در خطوط متنی در هر صورت به قالببندها منتقل میشوند. با توجه به اینکه متنِ قبل از نویسهٔ تب پر خواهد شد، پیشبینی اینکه تب به کدام موقعیت پرشِ تب پیشروی خواهد کرد دشوار است. new sentence, new line (mdoc) یک جملهٔ جدید در میانهٔ یک خط متنی شروع میشود. آن را در یک خط ورودی جدید شروع کنید تا به قالببندها کمک کند فاصلهٔ مناسبی ایجاد کنند. invalid escape sequence (roff) یک توالی گریز دارای جداکنندهٔ آغازین نامعتبر برای آرگومان است، فاقد جداکنندهٔ پایانی آرگومان است، آرگومان قالب نامعتبر دارد، یا یک توالی گریز نویسه با نام نامعتبر است. اگر آرگومان ناقص باشد، \* و \n به یک رشتهٔ خالی منبسط میشوند، \B به رقم ‘0’ و \w به طول آرگومان ناقص بسط مییابد. همهٔ توالیهای گریز نامعتبر دیگر نادیده گرفته میشوند. undefined escape, printing literally (roff) در یک توالی گریز، اولین نویسه دقیقاً پس از ممیز وارونهٔ ابتدایی نامعتبر است. آن نویسه بهصورت لفظی چاپ میشود که معادل نادیده گرفتن ممیز وارونه است. undefined string, using "" (roff) اگر رشتهای بدون تعریف قبلی استفاده شود، مقدار آن بهطور ضمنی روی رشتهٔ خالی تنظیم میشود. با این حال، تعریف صریح رشتهها قبل از استفاده، کد را خواناتر نگه میدارد. هشدارهای مربوط به جدولها tbl line starts with span (tbl) اولین سلول در یک خط طرحبندی جدول یک گسترش افقی است (‘s’). دادههای ارائهشده برای این سلول نادیده گرفته شده و چیزی در سلول چاپ نمیشود. tbl column starts with span (tbl) اولین خط از مشخصات طرحبندی جدول یک گسترش عمودی را درخواست میکند (‘^’). دادههای ارائهشده برای این سلول نادیده گرفته شده و چیزی در سلول چاپ نمیشود. skipping vertical bar in tbl layout (tbl) مشخصات طرحبندی جدول شامل بیش از دو خط عمودی متوالی است. یک خط عمودی دوگانه چاپ میشود و خطوط اضافی دور ریخته میشوند. خطاهای مربوط به جدولها non-alphabetic character in tbl options (tbl) خط گزینههای جدول حاوی نویسهای به غیر از حرف، فاصله یا کاما در جایی است که انتظار میرود نام گزینه شروع شود. نویسه نادیده گرفته میشود. skipping unknown tbl option (tbl) خط گزینههای جدول شامل رشتهای از حروف است که با هیچ نام گزینهٔ شناختهشدهای مطابقت ندارد. کلمه نادیده گرفته میشود. missing tbl option argument (tbl) یک گزینهٔ جدول که نیاز به آرگومان دارد با پرانتز باز دنبال نشده است، یا پرانتز باز بلافاصله با پرانتز بسته دنبال شده است. گزینه نادیده گرفته میشود. wrong tbl option argument size (tbl) آرگومان گزینهٔ جدول شامل تعداد نویسههای نامعتبر است. هم گزینه و هم آرگومان نادیده گرفته میشوند. empty tbl layout (tbl) مشخصات طرحبندی جدول کاملاً خالی است و صفر خط و صفر ستون را مشخص میکند. به عنوان پیشفرض جایگزین، یک تک ستون تراز چپ استفاده میشود. invalid character in tbl layout (tbl) مشخصات طرحبندی جدول شامل نویسهای است که نه میتواند به عنوان کلید طرحبندی و نه به عنوان اصلاحکنندهٔ طرحبندی تفسیر شود، یا یک اصلاحکننده قبل از اولین کلید آمده است. نویسهٔ نامعتبر دور ریخته میشود. unmatched parenthesis in tbl layout (tbl) مشخصات طرحبندی جدول شامل پرانتز باز است، اما پرانتز بستهٔ منطبق ندارد. بقیهٔ خط ورودی، شروع از پرانتز، اثری ندارد. ignoring excessive spacing in tbl layout (tbl) یک اصلاحکنندهٔ فاصلهگذاری در طرحبندی جدول بهطور نامعقولی بزرگ است. بهجای آن از فاصلهگذاری پیشفرض 3n استفاده میشود. tbl without any data cells (tbl) یک جدول شامل هیچ سلول دادهای نیست. احتمالاً خروجی تولید نخواهد کرد. ignoring data in spanned tbl cell (tbl) یک سلول جدول به عنوان گسترش افقی (‘s’) یا گسترش عمودی (‘^’) در طرحبندی جدول علامتگذاری شده است، اما حاوی داده است. داده نادیده گرفته میشود. ignoring extra tbl data cells (tbl) یک خط داده شامل سلولهای بیشتری نسبت به خط طرحبندی متناظر است. دادههای موجود در سلولهای اضافی نادیده گرفته میشوند. data block open at end of tbl (tbl) یک بلوک داده با T{ باز شده، اما هرگز با T} منطبق بسته نشده است. خطوط دادهٔ باقیمانده از جدول همگی در یک سلول قرار میگیرند و هر سلول باقیمانده خالی میماند. خطاهای مربوط به کدهای roff، mdoc و man duplicate prologue macro (mdoc) یکی از ماکروهای مقدمه بیش از یک بار رخ داده است. آخرین مورد، همهٔ موارد قبلی را بازنویسی میکند. skipping late title macro (mdoc) ماکروی Dt بعد از اولین ماکروی غیر مقدماتی ظاهر شده است. قالببندهای سنتی نمیتوانند این مورد را مدیریت کنند زیرا سرآیند صفحه را قبل از تجزیهٔ بدنهٔ سند مینویسند. اگرچه این محدودیت فنی در مورد mandoc صدق نمیکند، معناشناسی سنتی حفظ میشود. ماکروی دیرهنگام به همراه آرگومانهایش دور ریخته میشود. input stack limit exceeded, infinite loop? (roff) محدودیتهای صریح بازگشتی برای قابلیتهای زیر پیادهسازی شدهاند تا از حلقههای نامتناهی جلوگیری شود: - بسط توالیهای گریز تو در تو از جمله بسط رشتهها و ثباتهای عددی، - بسط ماکروهای تعریفشده توسط کاربر تو در تو، - و گنجاندن فایل با so. هنگامی که به این محدودیت برخورد میشود، خروجی نادرست خواهد بود و معمولاً بخشی از محتوا از دست میرود، اما تجزیهکننده میتواند ادامه دهد. skipping bad character (mdoc, man, roff) فایل ورودی شامل بایتی است که نویسهٔ قابل چاپ ascii(7) نیست. پیام به شمارهٔ نویسه اشاره میکند. بایت خطاکار با یک علامت سوال (‘?’) جایگزین میشود. ویرایش فایل ورودی برای جایگزینی بایت با برگردان ASCII نویسهٔ مورد نظر را در نظر بگیرید. skipping unknown macro (mdoc, man, roff) اولین شناسه در خط درخواست یا ماکرو نه به عنوان درخواست roff(7) ، نه به عنوان ماکروی تعریفشده توسط کاربر، و نه به عنوان ماکروی mdoc(7) یا man(7) شناخته نشده است. ممکن است اشتباه تایپ شده باشد یا پشتیبانی نشود. درخواست یا ماکرو به همراه آرگومانهایش دور ریخته میشود. skipping request outside macro (roff) یک درخواست shift یا return خارج از هرگونه تعریف ماکرو رخ داده است و اثری ندارد. skipping insecure request (roff) یک فایل ورودی تلاش کرده دستوری در شل اجرا کند یا فایلی خارجی را بخواند یا بنویسد. چنین تلاشهایی به دلایل امنیتی رد میشوند. skipping item outside list (mdoc, eqn) یک ماکروی It خارج از هرگونه فهرست Bl رخ داده است، یا یک جداکنندهٔ above در eqn(7) خارج از یک توده رخ داده است. آن ماکرو یا جداکننده به همراه آرگومانهایش دور ریخته میشود. skipping column outside column list (mdoc) یک ماکروی Ta خارج از هرگونه بلوک Bl -column رخ داده است. به همراه آرگومانهایش دور ریخته میشود. skipping end of block that is not open (mdoc, man, eqn, tbl, roff) عناصر نحوی مختلف فقط میتوانند برای بستن صریح بلوکهایی استفاده شوند که پیشتر باز شدهاند. یک ماکروی بستن بلوک در mdoc(7) ، یک ماکروی ME ، RE یا UE در man(7) ، یک جداکنندهٔ راست یا آکوالاد بسته در eqn(7) ، یا پایان یک معادله، جدول، یا درخواست شرطی roff(7) مشاهده شده در حالی که هیچ بلوک منطبقی باز نیست. درخواست یا ماکروی خطاکار دور ریخته میشود. fewer RS blocks open, skipping (man) ماکروی RE با یک آرگومان فراخوانی شده است، اما کمتر از تعداد مشخصشده بلوک RS باز است. ماکروی RE دور ریخته میشود. inserting missing end of block (mdoc, tbl) ماکروهای مختلف mdoc(7) و همچنین جدولها نیاز به بستن صریح توسط ماکروهای اختصاصی دارند. بلوکی که از تو در تویی نامعتبر پشتیبانی نمیکند، پیش از بسته شدن کامل همهٔ فرزندانش به پایان میرسد. گرههای فرزندِ باز بهطور ضمنی بسته میشوند. appending missing end of block (mdoc, man, eqn, tbl, roff) در پایان سند، یک بلوک صریح mdoc(7) ، یک دامنهٔ خط بعدی در man(7) یا بلوک MT ، RS یا UR ، یک معادله، جدول، یا یک بلوک شرطی یا نادیدهگیری roff(7) همچنان باز است. بلوک باز بهطور ضمنی بسته میشود. escaped character not allowed in a name (roff) شناسههای ماکرو، رشته و ثبات از نویسههای ASCII قابل چاپ و غیر فاصله تشکیل شدهاند. توالیهای گریز و نویسهها و رشتههایی که با آنها بیان میشوند نمیتوانند بخشی از یک نام را تشکیل دهند. اولین آرگومان یک درخواست am ، as ، de ، ds ، nr یا rr ، یا هر آرگومان یک درخواست rm ، یا نام یک درخواست یا ماکروی تعریفشده توسط کاربر که فراخوانی میشود، با یک توالی گریز خاتمه مییابد. در موارد as ، ds و nr ، درخواست هیچ اثری ندارد. در موارد am ، de ، rr و rm ، آنچه تا این نقطه تجزیه شده به عنوان آرگومانهای درخواست استفاده میشود و بقیهٔ خط ورودی از جمله توالی گریز دور ریخته میشود. هنگام تجزیه برای نام یک درخواست یا ماکروی تعریفشده توسط کاربر برای فراخوانی، فقط توالی گریز دور ریخته میشود. نویسههای پیش از آن به عنوان نام درخواست یا ماکرو استفاده میشوند و نویسههای پس از آن به عنوان آرگومانهای درخواست یا ماکرو به کار میروند. using macro argument outside macro (roff) توالی گریز \$ خارج از هرگونه تعریف ماکرو رخ داده و به یک رشتهٔ خالی بسط مییابد. argument number is not numeric (roff) آرگومان توالی گریز \$ یک رقم نیست؛ توالی گریز به رشتهٔ خالی بسط مییابد. NOT IMPLEMENTED: Bd -file (mdoc) به دلایل امنیتی، ماکروی Bd از آرگومان -file پشتیبانی نمیکند. با درخواست درج یک فایل حساس، یک سند مخرب ممکن است کاربر دارای امتیازات بالا را فریب دهد تا ناخواسته فایل را روی صفحه نمایش دهد و محتوای آن را برای اطرافیان آشکار کند. این آرگومان و نام فایل به دنبال آن نادیده گرفته میشوند. skipping display without arguments (mdoc) یک ماکروی بلوک Bd هیچ آرگومانی ندارد. بلوک دور ریخته میشود و محتوای بلوک در هر حالتی که قبل از بلوک فعال بوده نمایش داده میشود. missing list type, using -item (mdoc) یک ماکروی Bl نوع فهرست را مشخص نکرده است. argument is not numeric, using 1 (roff) آرگومان یک درخواست ce یک عدد نیست. argument is not a character (roff) اولین آرگومان یک درخواست char نه یک نویسهٔ ASCII منفرد است و نه یک توالی گریز تکنویسهای. درخواست به همراه تمام آرگومانهایش نادیده گرفته میشود. missing manual name, using "" (mdoc) اولین فراخوانی Nm ، یا هر فراخوانی در بخش NAME، فاقد آرگومان لازم است. uname(3) system call failed, using UNKNOWN (mdoc) ماکروی Os بدون آرگومان فراخوانی شده و فراخوانی سیستمی uname(3) شکست خورده است. به عنوان راه حل، mandoc میتواند با -DOSNAME="\"string\"" کامپایل شود. unknown standard specifier (mdoc) یک ماکروی St دارای آرگومان ناشناخته است و دور ریخته میشود. skipping request without numeric argument (roff, eqn) یک درخواست it یا عبارت size یا gsize در eqn(7) دارای آرگومان غیر عددی یا منفی است یا اصلاً آرگومانی ندارد. درخواست یا عبارت نامعتبر نادیده گرفته میشود. excessive shift (roff) آرگومان یک درخواست shift بزرگتر از تعداد آرگومانهای ماکرویی است که در حال حاضر اجرا میشود. همهٔ آرگومانهای ماکرو حذف شده و \n(.$ روی صفر تنظیم میشود. NOT IMPLEMENTED: .so with absolute path or ".." (roff) به دلایل امنیتی، mandoc درخواستهای گنجاندن فایل با so را تنها با مسیرهای نسبی و فقط بدون صعود به دایرکتوری والد مجاز میداند. با درخواست درج یک فایل حساس، یک سند مخرب ممکن است کاربر دارای امتیازات بالا را فریب دهد تا ناخواسته فایل را روی صفحه نمایش دهد و محتوای آن را برای اطرافیان فاش کند. mandoc تنها مسیری را نشان میدهد که پس از so ظاهر میشود. .so request failed (roff) پاسخ به یک درخواست so نیازمند خواندن یک فایل خارجی است، اما فایل باز نشد. mandoc تنها مسیری را نشان میدهد که پس از so ظاهر میشود. skipping all arguments (mdoc, man, eqn, roff) ماکروی Bt ، Ed ، Ef ، Ek ، El ، Lp ، Pp ، Re ، Rs یا Ud در mdoc(7) ، یک ماکروی It در فهرستی که از سرآیند برای موارد پشتیبانی نمیکند، ماکروی LP ، P یا PP در man(7) ، ماکروی EQ یا EN در eqn(7) ، یا یک درخواست br ، fi یا nf در roff(7) یا درخواست بستن بلوک ‘..’ با حداقل یک آرگومان فراخوانی شده است. همهٔ آرگومانها نادیده گرفته میشوند. skipping excess arguments (mdoc, man, roff) یک ماکرو یا درخواست با آرگومانهای بیش از حد فراخوانی شده است: - Fo ، MT ، PD ، RS ، UR ، ft یا sp با بیش از یک آرگومان - An با یک آرگومان دیگر بعد از -split یا -nosplit - RE با بیش از یک آرگومان یا با یک آرگومان غیر عدد صحیح - OP یا درخواستی از خانوادهٔ de با بیش از دو آرگومان - Dt با بیش از سه آرگومان - TH با بیش از پنج آرگومان - Bd ، Bk یا Bl با آرگومانهای نامعتبر آرگومانهای اضافی نادیده گرفته میشوند. ویژگیهای پشتیبانینشده input too large (mdoc, man) در حال حاضر، mandoc نمیتواند فایلهای ورودی بزرگتر از محدودیت دلخواه خود یعنی 2^31 بایت (۲ گیگابایت) را پردازش کند. از آنجا که صفحات راهنمای مفید همواره کوچک هستند، این امر در عمل مشکلی ایجاد نمیکند. تجزیه به محض تشخیص این وضعیت متوقف میشود. unsupported control character (roff) یک نویسهٔ کنترلی ASCII که توسط سایر پیادهسازیهای roff(7) پشتیبانی میشود اما توسط mandoc پشتیبانی نمیشود در یک فایل ورودی پیدا شد. با یک علامت سوال جایگزین میشود. unsupported escape sequence (roff) یک فایل ورودی شامل یک توالی گریز است که توسط GNU troff یا Heirloom troff پشتیبانی میشود اما در mandoc پشتیبانی نمیشود، و احتمال دارد که این امر باعث از دست رفتن اطلاعات یا قالببندی بسیار ناقص شود. unsupported roff request (roff) یک فایل ورودی شامل یک درخواست roff(7) است که توسط GNU troff یا Heirloom troff پشتیبانی میشود اما در mandoc پشتیبانی نمیشود، و احتمال دارد که این امر باعث از دست رفتن اطلاعات یا قالببندی بسیار ناقص شود. eqn delim option in tbl (eqn, tbl) خط گزینههای یک جدول جداکنندههای معادله را تعریف میکند. هر کد منبع معادله که درون جدول قرار دارد بهصورت قالببندینشده چاپ خواهد شد. unsupported table layout modifier (tbl) مشخصات طرحبندی جدول شامل یک اصلاحکنندهٔ ‘m’ است. اصلاحکننده دور ریخته میشود. ignoring macro in table (tbl, mdoc, man) یک جدول حاوی فراخوانی یک ماکروی mdoc(7) یا man(7) یا یک ماکروی تعریفنشده است. ماکرو نادیده گرفته میشود، و آرگومانهای آن مانند یک خط متن در نظر گرفته میشوند. skipping tbl in -Tman mode (mdoc, tbl) یک فایل ورودی شامل ماکروی TS است. این پیام تنها در حالت خروجی -T man تولید میشود که در آن ورودیهای tbl(7) پشتیبانی نمیشوند. skipping eqn in -Tman mode (mdoc, eqn) یک فایل ورودی شامل ماکروی EQ است. این پیام تنها در حالت خروجی -T man تولید میشود که در آن ورودیهای eqn(7) پشتیبانی نمیشوند. آرگومانهای نادرست خط فرمان bad command line argument آرگومان به دنبال یکی از گزینههای خط فرمان -IKMmOTW نامعتبر است، یا یک file دادهشده به عنوان آرگومان خط فرمان باز نمیشود. duplicate command line argument گزینهٔ خط فرمان -I دو بار مشخص شده است. option has a superfluous value یک آرگومان برای گزینهٔ -O دارای مقدار است اما مقداری نمیپذیرد. missing option value یک آرگومان برای گزینهٔ -O مقداری ندارد اما نیازمند آن است. bad option value یک آرگومان برای گزینهٔ indent یا width از -O دارای مقدار نامعتبر است. duplicate option value یک گزینهٔ -O یکسان بیش از یک بار مشخص شده است. no such tag گزینهٔ -O tag مشخص شده است اما برچسب در هیچیک از صفحات راهنمای نمایشدادهشده پیدا نشد. -Tmarkdown unsupported for man(7) input (man) گزینهٔ -T markdown مشخص شده است اما یک فایل ورودی از زبان man(7) استفاده میکند. هیچ خروجی برای آن فایل ورودی تولید نمیشود. همچنین ببینید (SEE ALSO) apropos(1), man(1), eqn(7), man(7), mandoc_char(7), mdoc(7), roff(7), tbl(7) تاریخچه (HISTORY) ابزار mandoc نخستین بار در OpenBSD 4.8 ظاهر شد. گزینهٔ -I در OpenBSD 5.2 و گزینههای -aCcfhKklMSsw در OpenBSD 5.7 پدیدار شدند. نویسندگان (AUTHORS) ابزار mandoc توسط Kristaps Dzonsons