تک (نرم‌افزار)

تک
که در متن ساده به صورت TeX نوشته می‌شود، سیستم حروف‌چینی است که توسط دونالد کنوث ایجاد شده‌است. در کنار زبان برنامه‌نویسی متافونت برای توصیف (ایجاد) قلم‌های کامپیوتری، و با خانواده قلم‌های Computer Modern، با دو هدف اساسی طراحی شده‌است: اول این‌که هر کسی بتواند با تلاشی محدود و منطقی کتاب‌هایی با کیفیت عالی تولید کند، و دیگر این که سیستمی ایجاد کند که بر روی کامپیوترهای مختلف نتایج یکسان تولید نماید. تک رایگان است و در محیط‌های آکادمیک، به خصوص در ریاضیات، فیزیک، علوم کامپیوتر و جامعه مهندسین شهرت و استفاده زیادی دارد. تک، به صورت گسترده‌ای جایگزین troff، دیگر نرم‌افزار حروف‌چینی در محیط یونیکس شده‌است.
تک معمولا بهترین راه حروف‌چینی فرمول‌های پیچیده ریاضی به‌شمار می‌رود، اما به خصوص در قالب LaTeX و دیگر بسته‌ها و الگوها، اکنون برای مقاصد بسیار متنوعی در حروف‌چینی استفاده می‌شود.
تاریخچه
زمانی که اولین نسخه کتاب «هنر برنامه‌نویسی رایانه» توسط دانلد نوث در ۱۹۶۹ منتشر شد، این کتاب توسط مونوتایپ، با فناوری قرن ۱۹ امی حروف‌چینی شد که نوث از «ظاهر مناسب و کلاسیک» آن راضی بود. اما هنگامی که نسخه دوم در ۱۹۷۶ به چاپ رسید، تمام کتاب باید دوباره حروف‌چینی می‌شد. چرا که فناوری مونوتایپ به صورت گسترده با روش‌های عکس‌برداری جایگزین شده بود و قلم‌های قبلی دیگر در دسترس نبودند. به هر صورت، هنگامی که دانلد نوث پیش‌نمایش کتاب جدیدش را در ۳۰ مارس ۱۹۷۷ دریافت کرد، متوجه شد که بسیار بدشکل هستند. در این زمان، نوث برای اولین بار خروجی با کیفیت حروف‌چینی دیجیتال را مشاهده کرد، و به حروف‌چینی دیجیتال علاقه‌مند شد. پیش‌نمایش‌های مایوس‌کننده در نهایت موجب شدند که او تصمیم بگیرد با طراحی سیستم حروف‌چینی خود این مشکل را یک بار، و برای همه حل کند. در ۱۳ می۱۹۷۷، او یادداشتی برای خود نوشت که ویژگی‌های اولیه تک را شرح می‌داد.
او تصمیم گرفت که این کار را در ۱۹۷۸ به پایان برساند، اما آنچه که اتفاق افتاد این بود که در نهایت در ۱۹۸۹، یعنی ده سال بعد این کار متوقف شد. گای استیل در تابستان ۱۹۷۸، هنگامی که نوث مشغول ایجاد اولین نسخه تک بود، در استنفورد بود. هنگامی که او در پاییز به‌ام. آی. تی بازگشت، سیستم ورودی/خروجی تک را بازنویسی کرد تا تحت سیستم‌عامل آی.تی.اس. اجرا شود. اولین نسخه تک به زبان «سیل» نوشته شده بود تا بر روی یک پی.دی.پی. ۱۰ تحت سیستم‌عامل وایتس استنفورد اجرا شود. برای نسخه‌های بعدی تک، نوث شیوه «برنامه‌نویسی لفظی» را ابداع کرد که شیوه‌ای برای تولید کد منبع سازگار و مستندات با کیفیت بالا و پیوندیافته (که البته با تک حروف‌چینی می‌شود) از پرونده اصلی می‌باشد. زبان استفاده شده وب نامیده
می‌شود و برنامه‌هایی به زبان پاسکال تولید می‌کند.
نسخه جدید تک، بازنویسی و تک۸۲ نامیده شد و در سال ۱۹۸۲ منتشر گشت. از چیزهای قابل ذکر در مورد این نرم‌افزار می‌توان به الگوریتم فاصله‌گذاری اشاره کرد با الگوریتمی از فرانک لیانگ جایگزین شده بود. تک۸۲ همچنین از حساب ممیز ثابت به جای ممیز شناور استفاده می‌کرد تا از بازآفرینی نتایج بر روی سخت‌افزارهای متفاوت، اطمینان حاصل شود، و نیز شامل یک زبان برنامه‌نویسی واقعی و کامل از نظر تورینگ بود که به پیشنهاد گای استیل در آن گنجانده شده بود.
در سال ۱۹۸۹، دونالد نوث نسخه جدیدی از تک و متافونت عرضه نمود. با وجود این که او می‌خواست برنامه را پایدار نموده و از تغییرات پرهیز نماید، دریافت که ۱۲۸ نماد مختلف ورودی برای استفاده در زبان‌هایی غیر از انگلیسی کافی نیست؛ بنابراین مهم‌ترین تغییر در نسخه ۳٫۰ تک، قابلیت استفاده از ورودی ۸ بیتی بود که اجازه می‌داد ۲۵۶ نماد مختلف به صورت هم‌زمان در متن ورودی استفاده شوند.
از نسخه ۳، تک سیستم نسخه‌گذاری جدیدی را استفاده کرده‌است، به این صورت که به روز رسانی نرم‌افزار با افزودن رقم جدید در انتهای بخش اعشاری نسخه قبلی مشخص می‌شود، و به این ترتیب این عدد به ثابت پی نزدیک می‌گردد. این نشان دهنده این واقعیت است که تک اکنون بسیار پایدار است، و تنها به روزرسانی‌های جزئی بر روی آن انجام می‌گردد. نسخه جاری تک ۳٫۱۴۱۵۹۲ می‌باشد، و آخرین بار در دسامبر ۲۰۰۲ به روزرسانی شده‌است. طراحی نرم‌افزار از نسخه ۳٫۰ تغییری نکرده‌است و هیچ ویژگی جدید یا تغییر اساسی بعد از آن افزوده نخواهد شد، و بدین ترتیب نسخه‌های جدید تنها شامل رفع اشکال خواهند بود. با وجود این که حتی دانلد نوث، خود نیز پیشنهاد کرده‌است که در برخی زمینه‌ها تک امکان بهبود دارد، اشاره نموده‌است که بدون تغییر نگاه داشتن سیستم که موجب تولید خروجی‌های یکسان -کنون و در آینده- خواهد شد، مهم‌تر از معرفی ویژگی‌های جدید است. به همین دلیل، او تاکید کرده‌است که «آخرین تغییری که در تک (بعد از مرگ من) داده خواهد شد، این است که شماره نسخه به پی تغییر کرده و بدین ترتیب باگ‌های باقی‌مانده، «ویژگی» محسوب خواهند شد.
اما، از آن‌جا که کد منبع تک در «مالکیت عمومی» است (پایین‌تر را ببینید)، برنامه‌نویسان دیگر اجازه دارند (و صراحتا ترغیب شده‌اند) که این سیستم را بهبود بخشند، اما باید از نام دیگری برای توزیع تک تغییر یافته‌استفاده نمایند، و این بدان معنی است که کد منبع همچنان تحول می‌یابد. به‌طور مثال، پروژه امگا پس از سال ۱۹۹۱ با هدف اصلی ارتقاء تک برای حروف‌چینی چندزبانه ایجاد شد. دانلد نوث، خود نیز نسخه‌هایی «غیررسمی» مانند «تک-زت» ایجاد کرده‌است، که به کاربر اجازه می‌دهد تا متنی که از چپ به راست نوشته می‌شود با متن راست به چپ در یک سند ترکیب نماید.
سیستم حروف‌چینی
دستورها تک معمولا با یک ممیز معکوس شروع می‌شوند، و با یک جفت گیومه، گروه‌بندی می‌گردند. به هر صورت، تقریبا تمام ویژگی‌های نحوی تک قابل در هر لحظه قابل تغییر می‌باشند، و این کار تحلیل معنایی ورودی تک را برای هر چیزی جز خود تک بسیار دشوار می‌سازد. تک زبانی ماکرویی و مبتنی بر نشانه‌است: بسیاری از دستورها، از جمله دستورها تعریف شده توسط کاربر، در همان‌جا بسط داده می‌شوند، تا آن‌جا که تنها نشانه‌های غیرقابل بسط باقی بمانند و آن دستورها اجرا می‌شوند. بسط در عمل بدون تغییر جانبی است. ارجاع پیاپی ماکروها نیاز به حافظه‌ای ندارد، و ساختار اگر-آنگاه-غیر نیز در دسترس است. این از تک یک زبان کامل از نظر تورینگ، حتی در سطح گسترش می‌سازد.
این سیستم قابل تقسیم به چهار سطح است: در سطح اول، نمادها از ورودی خوانده می‌شوند و به هر کدام یک کد بخش تخصیص می‌یابد. ترکیب یک ممیز معکوس (در حقیقت هر نماد از گروه صفر) با یک حرف (نمادهای گروه ۱۱) یا یک تک‌نماد دیگر، با نشانه کنترلی جایگزین می‌شوند. به این معنی، این مرحله مانند تحلیل نحوی است، با این تفاوت که از ارقام، عدد نمی‌سازد. در مرحله بعد، دنباله‌های کنترلی (مانند شرط‌ها و ماکروهای تعریف شده) با متن جای‌گزین آن‌ها تعویض می‌شوند. با این ترتیب، ورودی مرحله ۳ شامل جریانی از نمادها (از جمله آن‌هایی که معنای خاصی دارند) و نیز دنباله‌های کنترلی غیرقابل گسترش (معمولا مقدارها و دستورها نمایشی) خواهد بود. در این مرحله نمادها در بندها قرار می‌گیرند. الگوریتم شکستن خط در تک با بهینه‌سازی نقاط شکست در سراسر بند انجام می‌گیرد. چهارمین مرحله، فهرست طولی خط‌ها و چیزهای دیگر را به صفحه‌ها می‌شکند.
سامانه تک اطلاعات دقیقی از اندازه تمام نمادها و سمبل‌ها دارد و با استفاده از این اطلاعات، بهترین حالت چینش حروف در هر خط، و خطوط در صفحه را محاسبه می‌نماید. سپس، یک پرونده خروجی دی.وی.آی. (مستقل از ابزار) تولید می‌نماید که شامل محل‌های نهایی تمام نمادهاست. این پرونده دی.وی.آی. می‌تواند با راه‌انداز مناسب به چاپ برسد، یا به قالب‌های دیگر تبدیل شود. این روزها، معمولا از پی.دی.اف. تک برای صرف نظر از دی.وی. آی؛ و تولید قالب پی.دی.اف. استفاده می‌شود.
سیستم مبنایی تک در حدود ۳۰۰ دستور، که اولیه‌ها نامیده می‌شوند، را درک می‌کند. به هر صورت، این دستورها سطح پایین، به ندرت توسط کاربران به کار می‌روند، و بیش‌تر کارایی تک توسط پرونده‌های تعریف قالب (تصویرهای پایین‌گذاری شده از تک بعد از بارگذاری مجموعه بزرگی از ماکروها) انجام می‌گیرد. قالب پیش‌گزیده اصلی نوث، که بیش از ۶۰۰ دستور را به تک اضافه می‌نمود، متن ساده نام دارد (که از طریق سیتان در دسترس است). قالبی که بیش از همه مورد استفاده قرار می‌گیرد، لی‌تک است، که ابتدا توسط لزلی لمپارت ایجاد شد، و شیوه‌های سند برای کتاب، نامه، اسلاید و… و نیز پشتیبانی فهرست منابع و تولید خودکار شماره بخش‌ها و معادله‌ها را اضافه نمود. دیگر قالبی که زیاد مورد استفاده قرار می‌گیرد، ای.ام.اس. تک نام دارد که توسط جامعه ریاضی آمریکا تولید شده‌است، و دستورها کاربرپسند بسیاری را ارائه می‌نماید که می‌تواند توسط مجلات برای سازگاری با شیوه خاصشان مورد استفاده قرار گیرد. بیش‌تر ویژگی‌های‌ای.ام.اس. تک با استفاده از «بسته»‌های‌ای.ام.اس. در لی‌تک مورد استفاده قرار گیرند. این به‌ای. ام.اس. لی‌تک تعبیر می‌شود. قالب‌های دیگری مانند کانتکست وجود دارند، که عموما برای نشر رومیزی استفاده می‌شوند. بخش اعظم کانتکست توسط هانس هاگن از شرکت پراگما نوشته شده‌است.
جنبه‌های مهم تک
نرم‌افزار تک چیزهایی را ارائه می‌کند که قبل از ارائه تک، در سامانه‌های حروف‌چینی دیگر، یا موجود نبودند، یا از کیفیت پایینی برخوردار بودند. بعضی از این نوآوری‌ها، بر مبنای الگوریتم‌های جالبی بنا نهاده شده‌است، و منجر به ارائه تعدادی تز توسط دانش‌جویان نوث گشته‌است. با وجود این که برخی از این یافته‌ها اکنون در سیستم‌های حروف‌چینی دیگر نیز قرار داده شده‌است، اما بعضی از این ویژگی‌ها، مانند فاصله‌گذاری ریاضی، هنوز در نوع خود منحصربه‌فرد هستند.
فاصله‌گذاری در فرمول‌های ریاضی
حروف‌چینی متن ریاضی با استفاده از تک و قلم ای.ام.اس. اویلر
از آن‌جا که هدف اصلی تک حروف‌چینی کتاب «هنر برنامه‌نویسی رایانه» با کیفیت بالا بود، نوث توجه زیادی به انتخاب قواعد فاصله‌گذاری مناسب برای فرمول‌های ریاضی نمود. او سه کار را به عنوان استاندارد کیفیت برای حروف‌چینی کامپیوتری در نظر گرفت: کتاب‌هایی که توسط ادیسون-وزلی، ویرایش‌گر «هنر برنامه‌نویسی رایانه» منتشر شده بودند، و به‌طور خاص کارهای هانس ولف. نسخه‌هایی از مجله آکتا متمتیکا با تاریخ حدود ۱۹۱۰؛ و یک نسخه از اینداگیشنز متمتیکا، یک مجله ریاضی آلمانی. نوث به دقت در این مثال‌ها کندوکاو کرد، تا قواعد فاصله‌گذاری مناسب برای تک را استخراج نماید. با وجود این که تک تعدادی قواعد پایه‌ای ارائه می‌نماید، و ابزارهایی برای مشخص نمودن فاصله‌گذاری مناسب لازم است، اما پارامترهای حقیقی به قلم مورد استفاده برای حروف‌چینی فرمول بستگی دارد. برای مثال: فاصله‌گذاری برای قلم «مدرن کامپیوتری» نوث، در طول سال‌ها به دقت تنظیم شده، و دیگر تغییر نخواهد کرد. اما قلم‌های دیگر مانند ای.ام.اس. اویلر، اولین بار که توسط نوث استفاده شدند، پارامترهای فاصله‌گذاری جدیدی برای آن‌ها باید تعریف می‌شد.
چینش و فاصله‌گذاری متن
در مقایسه با حروف‌چینی دستی، مشکل چینش در سیستم‌های دیجیتالی مانند تک به راحتی قابل حل است. تک نقاط مناسبی برای شکستن خط ارائه می‌کند، و می‌تواند به صورت خودکار فاصله بین کلمه‌ها را افزایش دهد تا خط پر شود؛ بنابراین مسئله یافتن نقاط شکستی است که بهترین نتایج را ارائه کند. بسیاری از الگوریتم‌های شکست خط، از روش اولین تناسب استفاده می‌کنند که در آن برای هر خط یکی پس از دیگری محاسبه می‌شوند، و هیچ نقطه شکستی پس از تعیین تغییر داده نمی‌شود. چنین سامانه‌ای قادر به تعریف یک نقطه شکست در خط، یا تشخیص تاثیر آن بر خط‌های بعدی نیست. در قیاس با آن، الگوریتم تناسب کامل که توسط تک استفاده می‌شود، و توسط دانلد نوث و مایکل پلس ایجاد شده‌است، تمام حالت‌های ممکن نقاط شکست در یک بند را در نظر می‌گیرد، و بهترین ترکیب شکست خط را می‌یابد که بهترین چینش سراسری را ایجاد می‌نماید.
به‌طور رسمی‌تر، الگوریتم یک مقدار به نام «میزان بدی» تعریف می‌کند که به هر شکست خط ممکن تخصیص داده می‌شود. اگر لازم باشد که فاصله‌های موجود در خط افزایش پیدا کنند تا خط طول کافی داشته باشد، این میزان بدی افزایش پیدا می‌کند. اگر شکست خط ناخواسته باشد، میزان بدی به مقدار زیادی افزایش می‌یابد. مثلا در حالتی که نیاز به شکستن کلمه‌ای وجود داشته باشد، یا دو کلمه در دو خط پشت سرهم باید شکسته شود، یا یک خط گسترده با یک خط فشرده دنبال شود چنین اتفاقی می‌افتد. سپس این الگوریتم شکست‌هایی را می‌یابد که مجموع مربعات میزان بدی خط‌های حاصل شده (با در نظر گرفتن افزایش‌های خاص ذکر شده در بالا) را کمینه می‌کنند. اگر بند شامل n شکست خط ممکم باشد، تعداد حالت‌هایی که باید بررسی شوند، ۲ به توان n حالت است. به هر صورت با استفاده از تکنیک برنامه‌سازی پویا، پیچیدگی این الگوریتم تا n به توان ۲ کاهش می‌یابد. ساده‌سازی‌های بیشتر (به‌طور مثال، بررسی نکردن حالات غیرممکن مانند شکست اولین کلمه بند) منجر به الگوریتمی کارآ می‌گردد که زمان اجرای آن تقریبا از مرتبه n است. به هر صورت، در حالت کلی مقاله‌ای از مایکل پلس نشان می‌دهد که چگونه الگوریتم شکست صفحه می‌تواند NP-کامل باشد، که این به خاطر پیچیدگی اضافی چینش عکس‌ها در صفحه‌است. الگوریتم مشابهی برای تشخیص بهترین راه شکستن یک بند در طول دو صفحه وجود دارد که از بندهای تک‌خطی (تک‌خط حاضر در یک صفحه که بقیه آن در صفحه قبل یا بعد از آن قرار دارد) جلوگیری می‌کند.
الگوریتم شکست خط تک، در بسیاری از نرم‌افزارهای دیگر مانند برنامه نشر رومیزی ادوبی این‌دیزاین و دستور خط فرمان گنو اف.ام.تی. در یونیکس، الگوبرداری شده‌است.
اگر هیچ شکست خط مناسبی یافت نشود، این سامانه سعی می‌کند که یک کلمه را بشکند. نسخه اولیه تک، بر مبنای یک الگوریتم شکست کلمه با مجموعه‌ای از قوانین حذف پیش‌وند و پس‌وند کار می‌کرد و از آن برای تشخیص این که آیا باید یک شکست بین دو هجای صدادار در یک الگو به فرم بی‌صدا-صدادار-صدادار-بی‌صدا (که در اکثر مواقع ممکن است) قرار دهد بهره می‌برد. تک۸۲ از یک الگوریتم شکست خط جدید، که توسط فرانک لیانگ در ۱۹۸۳ طراحی شده بود، استفاده می‌کرد که به نقاط شکست در یک کلمه، اولویت‌هایی اختصاص می‌داد. در ابتدا فهرستی از الگوهای شکست کلمه به صورت خودکار و در قالب تعدادی کلمه شکسته شده (در حدود ۵۰،۰۰۰ کلمه) تولید می‌شد.
متافونت
با این که متافونت صریحا بخشی از تک نیست، اما ابزاری لازم برای این سامانه حروف‌چینی می‌باشد. متافونت یک سامانه توصیف (شرح) قلم است که به طراحان اجازه می‌دهد که نمادها را به صورت الگوریتمی توصیف نمایند. این سامانه از منحنی‌های بزیه به شیوه استاندارد برای تولید نماد خروجی برای نمایش استفاده می‌نماید، اما نوث توجه زیادی به مسئله نقطه‌ای شدن بر روی صفحه نمایش پیکسلی دارد. تز دیگری توسط جان هابی، مسئله «خط سیر قلم» را بیش‌تر بررسی می‌نماید. این عبارت از آن‌جا آمده‌است که متافونت نمادها را به این صورت توصیف می‌کند که آن‌ها توسط قلم‌هایی انتزاعی رسم می‌شوند.
امکان استفاده از تک و لی‌تک بدون استفاده از متافونت هم وجود دارد. می‌توان از قلم‌های ادوبی پست اسکریپت (نوع ۱) به جای آن استفاده نمود. تک (و لی‌تک) انتظار دارند که قلم‌های نقطه‌ای با اندازه مناسب در اختیارشان قرار گیرد، اما پست‌اسکریپت یک شرح برداری مقیاس‌پذیر در ابعاد متفاوت است، و این کار را کمی پیچیده می‌کند. با کمک تعدادی بسته از پیش تعیین‌شده، تک و لی‌تک قادر به استفاده از قلم‌های پست‌اسکریپت می‌باشند. ضمنا این توجه لازم است که «نوع ۱»(Type 1) و «T1» در مستندات به دو چیز متفاوت اشاره می‌کنند: قلم‌های ادوبی پست‌اسکریپت، و کدگذاری T1 تک برای نگاشت از مقدارهای بایتی به گلیف‌ها.
مثال‌هایی از تک
برای نوشتن برنامه سنتی Hello, World در تک ساده، پرونده‌ای به نام myfile.tex با محتویات زیر می‌سازیم:
Hello, World
\bye % نشان‌دهنده پایان پرونده‌است و در خروجی ظاهر نمی‌شود
به‌طور پیش‌گزیده، هر چیزی در یک خط که قبل از آن یک علامت % وجود داشته باشد، یک توضیح است، و تک از آن صرف‌نظر می‌کند. اجرا کردن تک بر روی این پرونده (به‌طور مثال با تایپ کردن tex myfile.tex (خط فرمان، یا با فراخوانی آن از رابط گرافیکی مورد استفاده)، پرونده خروجی با نام myfile.dvi را تولید خواهد کرد، که محتویات صفحه را به صورت مستقل از ابزار(DVI) ارائه می‌دهد. این خروجی هم به وسیله یک نمایش‌گر DVI قابل نمایش و چاپ می‌باشد، و هم به وسیله برنامه dvips، قابل تبدیل به یک قالب معمول‌تر مانند پست‌اسکریپت می‌باشد. این به دلیل آن است که تک به صورت معمول از قلم‌های نقطه‌ای استفاده می‌کند که برای نمایش مناسب در اندازه مشخصی طراحی شده‌اند، در حالی که پست‌اسکریپت معمولا از قلم‌های اندازه‌پذیر نوع ۱ استفاده می‌کند. اکنون این امکان وجود دارد که با کمی دست‌کاری، خروجی dvips از قلم‌های اندازه‌پذیر استفاده کند (نسخه‌های جدید گاست اسکریپت از آن پشتیبانی می‌کنند).
برای دیدن نتایج بیشتر از تک در عمل، به قالب‌بندی رابطه‌های ریاضی توسط آن توجه کنید. به‌طور مثال برای نوشتن رابطه معروف معادله درجه دوم، کافی است وارد کنید:
تک را بر روی پرونده بالا اجرا نمایید، خروجی حاصل باید مثل این باشد:
The quadratic formula is
توجه کنید که این رابطه به شیوه‌ای نوشته می‌شود که یک شخص آن را با دست می‌نویسد، یا حروف‌چینی می‌نماید. در یک سند، وارد شدن به حالت ریاضی، با وارد کردن یک $ شروع می‌شود و پس از وارد کردن رابطه با نحو تک، با یک $ دیگر بسته می‌شود. نمایش ریاضی، یا حالتی که فرمول‌ها بر روی یک خط جدید و در وسط آن ظاهر می‌شوند، با استفاده از $$ انجام می‌شود. به‌طور مثال، معادله درجه دوم بالا در حالت نمایش ریاضی به صورت زیر انجام می‌گیرد:
\bye
و به شکل:
The quadratic formula is
نمایش می‌یابد.
نرم‌افزار
کد منبع اصلی برای نسخه جاری تک، به زبان وب نوشته شده‌است، که ترکیبی از مستندات نوشته شده به زبان تک و مقدار محدودی کد به زبان پاسکال برای اطمینان از قابل حمل بودن برنامه می‌باشد. به‌طور مثال، تک تمام تخصیص‌های حافظه پویا را خود به صورت آرایه‌هایی با اندازه ثابت انجام می‌دهد و تنها از اعداد اعشاری با ممیز ثابت برای محاسبات داخلی خود استفاده می‌کند. در نتیجه، تک تقریبا به تمام سیستم‌عامل‌ها انتقال یافته‌است، و این کار معمولا با برنامه web2c که برای تبدیل کد منبع به سی به جای کامپایل کردن مستقیم کد پاسکال انجام می‌گیرد.
تک معمولا به صورت یک توزیع عرضه می‌گردد، که مجموعه‌ای آماده به نصب، متشکل از تک به همراه متافونت و دیگر قلم‌های ضروری، قالب‌های مستندات و ابزارهای کمکی لازم برای سیستم حروف‌چینی است. در سیستم‌های سازگار با یونیکس، مانند گنو/لینوکس و مک‌اواس اکس، تک به صورت توزیع تی‌تک(http://tug.org/teTeX) عرضه می‌شود. در ویندوز، توزیع میک‌تک (http://www.mixtex.org) (که توسط پروتک(http://tug.org/protex) توسعه داده شده‌است) و نیز اف.پی. تک(http://xemtex.groups.foundry.supelec.fr/xemtex-web-gb-2-5.html) وجود دارد.
سامانه‌های پردازش سند بسیاری بر مبنای تک ایجاد شده‌اند که از آن میان می‌توان به جیدتک، که از تک برای خروجی چاپی موتور دی.اس.اس.اس.ال. جیمز کلارک استفاده می‌کند، و نیز تک‌اینفو که سامانه پردازش مستندات پروژه گنو می‌باشد، اشاره کرد. تک از سال ۱۹۸۴، نرم‌افزار حروف‌چینی رسمی پروژه سیستم‌عامل گنو می‌باشد.
زی‌تک یک موتور جدید تک است که از یونی‌کد پشتیبانی می‌کند و این سامانه در ابتدا از فناوری‌های پیشرفته قلم خاص مک او اس اکس استفاده می‌کرد، اما اکنون از اپن تایپ پشتیبانی نموده و در لینوکس و ویندوز مایکروسافت نیز در دسترس است.
ضمایم و اضافات بسیاری برای نرم‌افزار تک موجود است. از آن میان می‌توان به بایب‌تک اشاره کرد که به همراه لی‌تک توزیع می‌شود و برای ایجاد کتاب‌شناسی به کار می‌رود. پی‌دی‌اف تک که به جای خروجی دی وی آی، خروجی را در قالب پی‌دی‌اف شرکت ادوبی تولید می‌کند، و امگا که به تک اجازه می‌دهد تا از مجموعه نمادهای یونی‌کد استفاده نماید. اغلب ضمایم تک به صورت رایگان از سی‌تان قابل تهیه می‌باشند. سی‌تان(CTAN) سرنام Comprehensive TeX Archive Network (شبکه جامع آرشیو تک) می‌باشد.
ویرایش‌گر تک‌مکس، یک ویرایش‌گر ویزی‌ویگ علمی است که خواسته‌است با تک و ای‌مکس سازگار باشد. این ویرایش‌گر از قلم‌های نوث استفاده می‌کند و می‌تواند خروجی تک تولید کند. لیکس یک سیستم پردازش مستندات وی‌زی‌ویم است که بر روی بسیاری از سیستم‌عامل‌ها از جمله لینوکس، ویندوز(۹۸، ۲۰۰ و بالاتر) و نیز مک او اس اکس اجرا می‌شود. تک‌شاپ (برای مک او اس اکس) و وین‌شل (برای ویندوز) ابزارهای مشابهی هستند که یک محیط مجتمع تولید(IDE) برای کار کردن با تک و لی‌تک فراهم می‌آورند. گنو ای‌مکس تعداد زیادی بسته توکار و نیز غیررسمی دارد که برای این کار استفاده می‌شوند. یکی از بهترین این بسته‌ها، اوک‌تک می‌باشد. برای ویرایش‌گر وی آی‌ام نیز محیط وی آی‌ام لی‌تک(http://vim-latex.sourceforge.net) وجود دارد.
نوث یک فهرست بسیار دقیق و شامل جزئیات اشکالات یافت‌شده در تک و تغییرات داده شده در آن از ۱۹۸۲ تهیه کرده‌است، که تا سال ۲۰۰۵ شامل ۴۱۹ مورد است که البته این شامل تغییر نسخه‌ها نمی‌شود، که این کار بعد از مرگ او به عنوان آخرین تغییر انجام خواهد گرفت.
اجازه‌نامه
دانلد نوث، بارها تاکید کرده‌است که کد منبع تک در مالکیت عمومی قرار گرفته‌است، و او قویا تغییرات و آزمون کد منبع را توصیه می‌نماید. به هر صورت او به قابلیت تولید مجدد خروجی تمام نسخه‌های تک بسیار اهمیت می‌دهد. نسخه‌های تغییر یافته تک نباید تک یا چیزی مشابه آن نامیده شوند. برای تقویت این قانون، جامعه ریاضی‌دانان آمریکا، نام تجاری تک را به ثبت رسانده‌است، و هر پیاده‌سازی از این سامانه باید از یک آزمون خاص که آزمون تریپ() نام دارد بگذرد تا اجازه داشته باشد تک نامیده شود.
تلفظ و نوشتن تک
نام تک باید به صورت تک (آی.پی.ای. /tɛx/) تلفظ شود که در آن ک مشابه حرف j اسپانیایی اروپایی، یا صدای پایانی loch در اسکاتلندی یا اسم هنرمند آلمانی Bach تلفظ شود. حرف X برای نشان دادن حرف یونانی (خی) به کار رفته‌است. تک خلاصه تخنه () است که کلمه‌ای یونانی به معنی «هنر» و «صنعت» است و منبع کلمه technical(فنی) در انگلیسی می‌باشد. انگلیسی زبان‌ها عموما آن را به صورت tek تلفظ می‌کنند که مشابه بخش اول کلمه technical می‌باشد. برای حروف‌چینی درست نرم‌افزار، E باید پایین‌تر از خط باشد و فاصله بین حروف کاهش یابد (این، همان‌گونه که در کتاب «تک بوک» دانلد نوث به آن اشاره شده‌است، برای ایجاد تمایز بین تک و نام سامانه‌های دیگر مانند TEX شرکت «هانی ول» (که سرنام Text Executive producer است) انجام شده‌است).
سامانه‌هایی که از اندیس و کاهش فاصله پشتیبانی نمی‌کنند، از تقریب "TeX" بهره می‌برند. طرفداران این سامانه علاقه دارند که نام‌های دیگری از کلمه تک بسازند. مانند تکنیسین(TeXnician، کاربر نرم‌افزار تک)، تکسپرت(TeXpert)، تک‌هکر (برنامه‌نویس تک)، تک‌مستر (برنامه‌نویس بسته‌های تک)، تک هکس و نیز تکنیک(Texnique).
مطالب کم‌اهمیت
دانلد نوث به کسانی که در تک اشکالی بیابند و آن را گزارش کنند، جایزه نقدی می‌دهد. جایزه هر اشکال از ۲/۵۶ دلار آغاز شده و هر سال دو برابر شده‌است تا این‌که که به مقدار کنونی آن یعنی ۳۲۷/۶۸ دلار رسیده‌است. این باعث فقر نوث نشده‌است، چرا که تعداد بسیار کمی باگ گزارش شده‌است. علاوه بر این، افراد معمولا به جای نقد کردن چک، آن را قاب می‌گیرند تا ثابت کنند در تک اشکالی یافته‌اند.
زی‌تک