.\" Automatically generated by Pandoc .\" .TH "CWEB" "1" "April 30, 2025." "Web2c 2026" "General Commands Manual" .SH "نام (NAME)" ctangle, cweave \- تبدیل CWEB به C/C++ و/یا TeX .SH "خلاصه دستور (SYNOPSIS)" \f[B]ctangle\f[R] [\f[I]options\f[R]] \f[I]webfile\f[R][.w] [{\f[I]changefile\f[R][.ch]|\-} [\f[I]outfile\f[R][.c]]] .PD 0 .P .PD \f[B]cweave\f[R] [\f[I]options\f[R]] \f[I]webfile\f[R][.w] [{\f[I]changefile\f[R][.ch]|\-} [\f[I]outfile\f[R][.tex]]] .SH "توضیحات (DESCRIPTION)" برنامه \f[B]ctangle\f[R] یک سند منبع CWEB را به یک برنامه C/C++\ تبدیل می‌کند که می‌تواند به شیوه معمول کامپایل شود. فایل خروجی شامل مشخصات \f[B]#line\f[R] است تا اشکال‌زدایی بتواند بر اساس فایل منبع CWEB انجام پذیرد. .PP برنامه \f[B]cweave\f[R] همان فایل CWEB را به یک فایل TeX\ تبدیل می‌کند که می‌تواند به روش معمولی قالب‌بندی و چاپ شود. این برنامه به جزئیات تایپوگرافی مانند صفحه‌آرایی و استفاده از تورفتگی، \f[I]ایتالیک\f[R]، \f[B]پررنگ\f[R]، و غیره توجه مناسب دارد و اطلاعات جامع نمایه‌سازی متقابل را که به‌طور خودکار جمع‌آوری می‌کند، ارائه می‌دهد. .PP ابزار CWEB به شما امکان می‌دهد یک سند منفرد حاوی تمامی اطلاعات لازم، هم برای تولید یک برنامه C/C++\ قابل‌کامپایل و هم برای تولید سندی خوش‌قالب که برنامه را با هر میزان از جزئیات مدنظر نویسنده توصیف می‌کند، آماده کنید. کاربر CWEB باید هم با C/C++ و هم با TeX آشنایی داشته باشد. .SH "نحوه استفاده (USAGE)" خط فرمان باید شامل یک، دو یا سه نام باشد. نام اول به‌عنوان فایل ورودی CWEB در نظر گرفته می‌شود (و در صورت نداشتن پسوند، \f[B].w\f[R] اضافه می‌شود). اگر نام دومی وجود داشته باشد، فایل تغییرات است (و در صورت نداشتن پسوند، \f[B].ch\f[R] افزوده می‌شود). فایل تغییرات همان‌طور که در مستندات توضیح داده شده، بخش‌هایی از فایل CWEB را بازنویسی می‌کند. اگر نام سومی وجود داشته باشد، نام پیش‌فرض فایل خروجی را بازنویسی می‌کند؛ این نام در حالت عادی همان نام فایل ورودی (اما در دایرکتوری جاری) با پسوند \f[B].tex\f[R] است. اگر صرفاً می‌خواهید نام فایل خروجی را تغییر دهید اما فایل تغییراتی برای اعمال ندارید، می‌توانید از «\f[B]\-\f[R]» به‌عنوان آرگومان دوم استفاده کنید. .SH "تفاوت‌ها با CWEB اصلی (DIFFERENCES TO ORIGINAL CWEB)" ابزار CWEBbin بسیار تلاش می‌کند تا جایگزینی بی‌دردسر برای CWEB باشد، بنابراین در حالت کلی نباید هیچ تفاوتی در نحوه فراخوانی برنامه‌ها یا در خروجی حاصل مشاهده کنید. با این حال، چند تفاوت شایان ذکر وجود دارد: .IP \(bu 2 گزینه‌های \f[B]\-\-help\f[R]، \f[B]\-\-quiet\f[R]، \f[B]\-\-verbose\f[R]، \f[B]\-\-version\f[R]، و پرچم‌های \f[B]+c\f[R]، \f[B]\-i\f[R]، \f[B]\-o\f[R]، \f[B]+u\f[R] و \f[B]+lX\f[R] در CWEBbin و TeX\ Live جدید هستند. .IP \(bu 2 گزینه \f[B]+lX\f[R] با چندین فایل پوششی برای \f[B]cwebmac.tex\f[R] همراه است که حاوی عناوین ترجمه‌شده برای زبان‌های آلمانی (\f[B]+ld\f[R])، فرانسوی (\f[B]+lf\f[R]) و ایتالیایی (\f[B]+li\f[R]) است. .IP \(bu 2 جستجوی فایل با متغیر محیطی CWEBINPUTS گسترش یافته است تا چندین مسیر جداشده با دونقطه را بپذیرد؛ بخش «محیط (ENVIRONMENT)» در زیر را ببینید. .IP \(bu 2 در صورت پیکربندی مناسب، برنامه‌های اصلی \f[B]ctangle\f[R] و \f[B]cweave\f[R] با \(lqGNU gettext utilities\(rq بومی‌سازی شده‌اند. .SH "گزینه‌ها (OPTIONS)" گزینه‌ها در خط فرمان می‌توانند با «\f[B]\-\f[R]» غیرفعال شوند (اگر به‌طور پیش‌فرض فعال باشند) یا با «\f[B]+\f[R]» فعال گردند (اگر به‌طور پیش‌فرض غیرفعال باشند). در عمل، گزینه‌ها از چپ به راست پردازش می‌شوند، بنابراین دنباله‌ای مانند \f[B]\-\-verbose \-h\f[R] تنها \f[B]خط اعلان\f[R] (\f[B]+b\f[R]) و \f[B]گزارش پیشرفت\f[R] (\f[B]+p\f[R]) را نمایش می‌دهد، اما از \f[B]پیام موفقیت‌آمیز بودن\f[R] (\f[B]\-h\f[R]) صرف‌نظر می‌کند. .PP دسته‌ی اول گزینه‌ها بین هر دو برنامه \f[B]ctangle\f[R] و \f[B]cweave\f[R] مشترک هستند: .IP \(bu 2 \f[B]+b\f[R]: چاپ خط اعلان در ترمینال .IP \(bu 2 \f[B]+h\f[R]: چاپ پیام موفقیت در زمان اتمام کار .IP \(bu 2 \f[B]+p\f[R]: چاپ پیام‌های گزارش پیشرفت .IP \(bu 2 \f[B]+q\f[R]/\f[B]\-q\f[R]: میان‌بر برای \f[B]\-bhp\f[R]؛ همچنین \f[B]\-\-quiet\f[R] .IP \(bu 2 \f[B]+v\f[R]/\f[B]\-v\f[R]: میان‌بر برای \f[B]+bhp\f[R]؛ همچنین \f[B]\-\-verbose\f[R] (پیش‌فرض) .IP \(bu 2 \f[B]+c\f[R]: بررسی خروجی موقت برای تغییرات .IP \(bu 2 \f[B]+s\f[R]: چاپ آمار استفاده .IP \(bu 2 \f[B]\-\-help\f[R]: نمایش پیام راهنما و خروج .IP \(bu 2 \f[B]\-\-version\f[R]: نمایش اطلاعات نسخه و خروج .PP دو گزینه دیگر وجود دارد که تنها برای \f[B]ctangle\f[R] قابل اعمال هستند: .IP \(bu 2 \f[B]+k\f[R]: نگه‌داشتن جداکننده‌ها در مقادیر عددی در خروجی .IP \(bu 2 \f[B]+u\f[R]: نویسه‌گردانی نویسه‌های UTF-8 در کد C .PP هشت گزینه دیگر وجود دارد که تنها برای \f[B]cweave\f[R] قابل اعمال هستند: .IP \(bu 2 \f[B]\-e\f[R]: قرار ندادن بخش‌های C/C++\ در داخل \f[B]\(rsPB{\&...}\f[R] .IP \(bu 2 \f[B]\-f\f[R]: اجبار نکردن به رفتن به سطر جدید بعد از هر دستور C/C++\ در خروجی .IP \(bu 2 \f[B]\-F\f[R]: اجبار نکردن عبارت مرکب به شروع در یک خط جدید .IP \(bu 2 \f[B]\-i\f[R]: جلوگیری از تورفتگی در اعلان پارامترها .IP \(bu 2 \f[B]\-o\f[R]: جلوگیری از جداسازی اعلان‌ها و دستورها .IP \(bu 2 \f[B]\-x\f[R]: حذف نمایه‌ها، نام بخش‌ها و فهرست مطالب .IP \(bu 2 \f[B]+lX\f[R]/\f[B]\-lX\f[R]: استفاده از ماکروها برای زبان \f[I]X\f[R] مطابق با \f[I]X\f[R]\f[B]cwebmac.tex\f[R] .IP \(bu 2 \f[B]+t\f[R]: رفتار با \f[B]typename\f[R] در یک قالب مانند \f[B]typedef\f[R] .SH "محیط (ENVIRONMENT)" متغیر محیطی CWEBINPUTS برای جستجوی فایل‌های ورودی استفاده می‌شود، یا در صورت تنظیم نبودن CWEBINPUTS از پیش‌فرض سیستم استفاده می‌شود. برای جزئیات نحوه جستجو به tex(1) مراجعه کنید. جهت جلوگیری از تداخل با برنامه‌های دیگری که از متغیر محیطی CWEBINPUTS استفاده می‌کنند، می‌توانید دقیق‌تر عمل کرده و از CWEBINPUTS_cweb برای نیازمندی‌های خاص CWEB استفاده کنید. .PP در صورت آماده‌سازی برای پشتیبانی از NLS، برنامه‌های \f[B]ctangle\f[R] و \f[B]cweave\f[R] از متغیر محیطی TEXMFLOCALEDIR برای پیکربندی دایرکتوری بالادستی استفاده می‌کنند که در آن \(lqGNU gettext utilities\(rq به جستجوی کاتالوگ‌های ترجمه می‌پردازد. .PP این متغیرها از قبل در \f[B]texmf.cnf\f[R] مربوط به TeX\ Live پیکربندی شده‌اند. .SH "فایل‌ها (FILES)" محل فایل‌های ذکرشده در زیر از سیستمی به سیستم دیگر متفاوت است. از ابزار \f[B]kpsewhich\f[R] برای یافتن مکان آن‌ها استفاده کنید. .IP \(bu 2 \f[B]cwebmac.tex\f[R]: ماکروهای پیش‌فرض TeX\ که در خط اول فایل خروجی \f[B]cweave\f[R] به‌صورت \f[B]\(rsinput\f[R] فراخوانی می‌شوند. .IP \(bu 2 \f[B]cwebman.tex\f[R]: کتابچه راهنمای کاربری CWEB، موجود در قالب PDF از \c .UR https://ctan.org/pkg/cweb CTAN .UE \c \&. .SH "همچنین ببینید (SEE ALSO)" .IP \(bu 2 The CWEB System of Structured Documentation: نوشته Donald E.\ Knuth و Silvio Levy (نسخه چاپی \f[B]cwebman.tex\f[R] و فهرست کدهای منبع \f[B]common.w\f[R]، \f[B]ctangle.w\f[R] و \f[B]cweave.w\f[R]). .IP \(bu 2 Literate Programming: نوشته D.\ E.\ Knuth. .IP \(bu 2 Weaving a Program: نوشته Wayne Sewell. .PP cweb(1), tex(1), cc(1) .SH "نویسندگان (AUTHORS)" Don Knuth سیستم WEB را برای TeX و Pascal نوشت. .PD 0 .P .PD Silvio Levy با انطباق قراردادهای WEB با C و بازنویسی همه‌چیز در CWEB، سیستم CWEB را طراحی و توسعه داد. Knuth استفاده از CWEB را آغاز کرد و بهبودهای بیشتری اعمال نمود. .PD 0 .P .PD از بسیاری از همکاران دیگر در راهنمای CWEB قدردانی شده است. .PD 0 .P .PD توسعه امروزی در https://github.com/ascherer/cweb در حال انجام است.