| TANGLE(1) | General Commands Manual | TANGLE(1) |
نام (NAME)
tangle, otangle - تبدیل اسناد برنامهنویسی ادیبانه WEB به پاسکال
خلاصه دستور (SYNOPSIS)
tangle [options] webfile[.web] [{changefile[.ch]|-} [outfile[.p]]]
توضیحات (DESCRIPTION)
برنامه tangle یک سند منبع برنامهنویسی ادیبانه (Literate Programming) به زبان WEB را به یک برنامه Pascal تبدیل میکند. علاوه بر پردازش توسط کامپایلر Pascal، امروزه خروجی Pascal اغلب به زبان C ترجمه میشود؛ این همان روشی است که برنامههای خانواده TeX در TeX Live کامپایل میشوند.
زبان WEB به شما امکان میدهد سندی واحد آماده کنید که شامل تمام اطلاعات لازم برای تولید یک برنامه کامپایلپذیر Pascal و نیز یک سند قالببندیشده مناسب برای توصیف برنامه با هر میزان جزئیاتی است که نویسنده مایل باشد. کاربر WEB باید با هر دوی TeX و Pascal آشنا باشد. همچنین WEB یک سامانه ماکروی نسبتاً ساده اما کافی فراهم میکند که اجازه میدهد یک برنامه Pascal به صورت ماژولهای کوچک و با هر ترتیبی دلخواه نوشته شود.
خط فرمان باید شامل یک، دو یا سه نام فایل باشد. اولین فایل به عنوان فایل WEB در نظر گرفته میشود؛ اگر پسوندی نداشته باشد، پسوند «.web» به آن افزوده میشود.
اگر نام فایل دومی ارائه شود، به عنوان فایل تغییرات در نظر گرفته شده و در صورت نبود پسوند، «.ch» به آن اضافه میشود. فایل تغییرات همانطور که در مستندات سامانه WEB توضیح داده شده است، بخشهایی از فایل WEB را رونویسی (override) میکند. در صورت عدم ذکر نام فایل دوم، فایل تغییراتی وجود نخواهد داشت.
اگر نام فایل سومی داده شود، به عنوان فایل خروجی Pascal در نظر گرفته میشود و در صورت نبود پسوند، «.p» به آن اضافه میگردد. برای تعیین فایل خروجی بدون اعمال تغییرات، میتوانید از «-» برای آرگومان دوم استفاده کنید که به معنی فایل تغییرات خالی است (و نه stdin). در صورتی که نام فایل سوم داده نشود، نام فایل Pascal با افزودن «.p» به نام ریشه فایل WEB ساخته میشود.
فایل خروجی در خطوطی با ۷۲ کاراکتر یا کمتر فشرده میشود و تنها امتیاز آن به خوانایی، پایان یافتن خطوط در نقطهویرگولها در صورت امکان است.
اگر برنامه WEB از ویژگی داخلی مدیریت رشته (رشتههای درون نقلقول دوتایی) استفاده کند، فایل خروجی دومی به عنوان فایل مخزن رشتهها (string pool file) ایجاد میشود که نام آن همیشه با افزودن «.pool» به ریشه نام فایل Pascal تشکیل میگردد.
نسخه otangle از دامنه گستردهتری از کاراکترها پشتیبانی میکند. این نسخه برای پروژه Omega نوشته شد، نخستین نسخه TeX که از یونیکد پشتیبانی میکرد و اکنون به عنوان برنامه جانشین aleph(1) ارائه میشود.
گزینهها (OPTIONS)
برای مشاهده جزئیات تجزیه خط فرمان، به tex(1) مراجعه کنید.
برخی از این گزینهها ممکن است خروجی را برای پردازش توسط یک کامپایلر Pascal نامناسب سازند.
- --help
- نمایش پیام راهنما و خروج.
- --length number
- تنها مقایسه تعداد number کاراکتر اول شناسهها هنگام بررسی تداخل. مقدار پیشفرض ۳۲ است؛ برنامه اصلی tangle از ۷ استفاده میکرد.
- --loose
- هنگام بررسی تداخل میان شناسهها، تنظیمات گزینههای --lowercase، --mixedcase، --uppercase و --underline را رعایت میکند. این حالت پیشفرض است.
- --lowercase
- تبدیل تمام شناسهها به حروف کوچک.
- --mixedcase
- حفظ بزرگی و کوچکی حروف شناسهها. این حالت پیشفرض است.
- --strict
- هنگام بررسی تداخل میان شناسهها، خطوط زیرین حذف شده و ابتدا تمام شناسهها به حروف بزرگ تبدیل میشوند.
- --underline
- حفظ خطوط زیرین (همچنین شناختهشده به عنوان underscore) در شناسهها.
- --uppercase
- تبدیل تمام شناسهها به حروف بزرگ. این رفتار برنامه اصلی tangle است.
- --version
- نمایش اطلاعات نسخه و خروج.
برنامه otangle فقط از گزینههای --help و --version پشتیبانی میکند.
محیط (ENVIRONMENT)
این برنامهها با استفاده از متغیر محیطی WEBINPUTS به دنبال فایلهای ورودی میگردند. اگر این متغیر مقداردهی نشده باشد، از پیشفرض سیستم استفاده میشود. برای جزئیات نحوه جستجو، به راهنمای Kpathsea در نشانی https://tug.org/kpathsea مراجعه کنید.
همچنین ببینید (SEE ALSO)
Donald E. Knuth, The WEB System of Structured
Documentation.
https://mirrors.ctan.org/info/knuth-pdf/web/webman.pdf
Donald E. Knuth, LiterateProgramming, CSLI Lecture Notes,
no. 27.
https://www-cs-faculty.stanford.edu/~knuth/lp.html
Donald E. Knuth, TeX: The Program (جلد
B از Computers & Typesetting).
Donald E. Knuth, Metafont: The Program (جلد D
از Computers & Typesetting).
این دو مورد
اخیر با
اختلاف
بزرگترین
نمونههای
موجود از
برنامههای
WEB هستند.
موضوع
برنامهنویسی
ادیبانه در
CTAN: https://ctan.org/topic/litprog
صفحه بسته
در CTAN: https://ctan.org/pkg/tangle
بخش مربوطه
در راهنمای
Web2c: https://tug.org/texinfohtml/web2c.html#tangle-invocation
کد منبع
حروفچینیشده
برای تمام
برنامههای
اصلی WEB
استنفورد:
https://ctan.org/pkg/knuth-pdf
نویسندگان (AUTHORS)
سامانه WEB توسط Donald E. Knuth بر اساس سامانه پیشین به نام DOC (پیادهسازیشده توسط Ignacio Zabala) و با الهام از کارهای قابلتوجه پیشین، بهویژه مفهوم «holon programming» متعلق به Pierre-Arnoul de Marneffe (https://github.com/holon-scribe/holon-programming) طراحی شد.
بهروزرسانیهای مربوط به Omega توسط John Plaice و Yannis Haralambous نوشته شد.
خود برنامههای tangle و weave به زبان WEB نوشته شدهاند. این سامانه در ابتدا در دانشگاه استنفورد توسط Howard Trickey و در دانشگاه کرنل توسط Pavel Curtis به Unix پورت شد.
فهرست بحث عمومی و گزارش باگها: https://lists.tug.org/tex-k
| 25 January 2026 | Web2C 2026 |