DETEX(1) General Commands Manual DETEX(1)

detex - فیلتری برای حذف دستورات TeX از فایل .tex

detex [ -clnstw ] [ -e environment-list ] [ filename[.tex] ... ]

دستور Detex هر فایل را به ترتیب می‌خواند، تمام کامنت‌ها و توالی‌های کنترلی TeX را حذف کرده و باقی‌مانده را در خروجی استاندارد می‌نویسد. تمام متن‌های موجود در حالت ریاضی (math mode) و حالت نمایشی (display mode) حذف می‌شوند. به‌طور پیش‌فرض، detex دستورات \input را دنبال می‌کند. اگر فایلی باز نشود، یک پیام هشدار چاپ شده و از آن دستور صرف‌نظر می‌شود. اگر گزینهٔ -n به کار رود، هیچ دستور \input یا \include پردازش نخواهد شد. این قابلیت امکان پردازش یک فایل تکی را فراهم می‌کند. چنانچه هیچ فایل ورودی در خط فرمان مشخص نشده باشد، detex از ورودی استاندارد می‌خواند.

اگر توالی جادویی «\begin{document}» در متن ظاهر شود، detex فرض می‌کند با یک سورس LaTeX سر و کار دارد و ساختارهای اضافی به‌کاررفته در LaTeX را شناسایی می‌کند. این موارد شامل دستورات \include و \includeonly می‌شوند. گزینهٔ -l می‌تواند برای اجبار حالت LaTeX و گزینهٔ -t می‌تواند برای اجبار حالت TeX صرف‌نظر از محتوای ورودی استفاده شود.

متن موجود در محیط‌های گوناگونِ LaTeX نادیده گرفته می‌شود. حالت‌های پیش‌فرض عبارتند از: array، eqnarray، equation، longtable، picture، tabular و verbatim. گزینهٔ -e می‌تواند برای مشخص کردن یک فهرست جداشده با کاما از محیط‌ها (environment-list) جهت نادیده گرفتن استفاده شود. این فهرست جایگزین پیش‌فرض‌ها می‌شود؛ بنابراین تعیین یک فهرست خالی عملاً سبب می‌شود هیچ محیطی نادیده گرفته نشود.

گزینهٔ -c می‌تواند در حالت LaTeX استفاده شود تا detex آرگومان‌های ماکروهای \cite، \ref و \pageref را منعکس کند. این قابلیت زمانی که خروجی به یک بررسی‌کننده سبک نگارش (style checker) فرستاده می‌شود، می‌تواند مفید باشد.

دستور Detex فرض می‌کند رده‌های نویسه استاندارد برای TeX استفاده می‌شوند. Detex هنگام شناسایی مواردی همچون محیط‌های LaTeX، فاصله‌های خالی (white space) میان توالی‌های کنترلی و نویسه‌های جادویی مانند «{» را مجاز می‌داند.

گزینهٔ -r تلاش می‌کند تا به‌طور ساده‌لوحانه $..$، $$..$$، \(..\) و \[..\] را با اسم‌ها و فعل‌ها (به‌ویژه «noun» و «verbs») به گونه‌ای جایگزین کند که خوانایی جملات حفظ شود.

اگر پرچم -w داده شود، خروجی یک فهرست کلمات خواهد بود؛ یک «کلمه» (رشته‌ای از دو یا چند حرف و آپاستروف که با یک حرف آغاز می‌شود) در هر خط، و همه نویسه‌های دیگر نادیده گرفته می‌شوند. بدون -w خروجی از متن اصلی پیروی می‌کند، با این تفاوت که حذفیات یادشده اعمال می‌شوند. نویسه‌های خط جدید (newline) تا جای ممکن حفظ می‌شوند تا خطوط خروجی تا حد امکان با ورودی مطابقت داشته باشند.

گزینهٔ -1 پیشوند `filename:linenumber:` را به ابتدای هر خط چاپ‌شده اضافه می‌کند که نشان‌دهنده موقعیت آن خط در سند اصلی (La)TeX است.

متغیر محیطی TEXINPUTS برای یافتن فایل‌های \input و \include استفاده می‌شود. این متغیر همانند TeX، نویسه «:» در ابتدا یا انتهای مقدار را به عنوان TEXINPUTS پیش‌فرض تفسیر می‌کند. این متغیر از توالی جادویی «//» برای گسترش دایرکتوری پشتیبانی نمی‌کند.

اکنون Detex به متصل‌نویسی‌های (ligatures) پایه‌ای TeX به عنوان یک حالت ویژه رسیدگی کرده و این متصل‌نویسی‌ها را با جایگزین‌های نویسه‌ای مناسب تعویض می‌کند. این امر خطاهای املایی ناشی از حذف صرف آن‌ها را برطرف می‌سازد. این متصل‌نویسی‌ها عبارتند از: \aa، \ae، \oe، \ss، \o، \l (و معادل‌های بزرگ آن‌ها). نویسه‌های خاص «بدون نقطه» (dotless) یعنی \i و \j نیز به ترتیب با i و j جایگزین می‌شوند.

توجه داشته باشید که نسخه‌های پیشین detex توالی‌های کنترلی را با یک نویسه فاصله جایگزین می‌کردند تا از چسبیدن کلمات به یکدیگر جلوگیری شود. با این حال، این کار باعث می‌شد که اعراب‌ها و نشانه‌های وسط کلمات موجب شکستن کلمه شده و «خطاهای املایی» نامطلوبی پدید آورند. بنابراین، نسخهٔ جدید صرفاً این اعراب‌ها را حذف می‌کند. عملکرد پیشین را می‌توان اساساً با استفاده از گزینهٔ -s دوباره به کار گرفت.

tex(1)

تودرتو بودن دستورات \input مجاز است، اما تعداد فایل‌های باز نباید از محدودیت سیستم برای تعداد فایل‌های هم‌زمان بازشده فراتر رود. Detex نویسه‌های گزینه ناشناخته را پس از چاپ یک پیام هشدار نادیده می‌گیرد.

در ابتدا توسط Daniel Trinkle، دپارتمان علوم کامپیوتر دانشگاه پردو (Purdue University) نوشته شده است.

نگهداری توسط Piotr Kubowicz https://github.com/pkubowicz/opendetex.

دستور Detex یک مفسر TeX نیست (این ابزار اساساً ورودی را با یک برنامه (f)lex می‌خواند)، بنابراین ممکن است به آسانی توسط برخی ساختارها دچار سردرگمی شود. بیشتر خطاها منجر به خروجی بیش از حد به جای خروجی کمتر از حد می‌شوند.

اجرای سورس‌کد LaTeX بدون «\begin{document}» از طریق detex ممکن است خطاهایی ایجاد کند.

پیشنهادها برای بهبود برنامه (تا حدی) مورد استقبال قرار می‌گیرد.

August 12, 1993 Purdue University