تخ (برمجية)

في البداية، تخ أو تك هو نظام للصف الطباعي، صممه وكتب أغلبه دونالد كانوث، وتم إصداره في سنة 1978 . وتعرض الأقسام التالية جوانب أخرى من الموضوع.
في هذا الإطار، تم تصميم تخ فضلًا عن لغة «التي تصف الخطوط والعائلة الأصلية التي تسمى لعائلة الخطوط » لهدفين رئيسيين هما إتاحة إنتاج كتب عالية الجودة لأي شخص بمجهود معقول، وتوفير نظام يعطي نفس الناتج على أي حاسوب، الآن أو في المستقبل، ينسق الاسم على شكل باستخدام تخ نفسه.
وفي هذا السياق، تم تصميم تخ مع وضع هدفين رئيسيين في الاعتبار: السماح لأي شخص بإنتاج كتب عالية الجودة بأقل جهد، وتوفير نظام من شأنه أن يعطي نفس النتائج تمامًا على جميع أجهزة الكمبيوتر.
ومن جهة أخرى، يرى الكثيرون أن تخ أفضل نظام لكتابة المعادلات الرياضية المعقدة. يشيع تخ بين الأكاديميين وخاصة وسط الرياضياتيين والفزيائيين. كما إستبدل بدرجة كبيرة - منسق مفضل آخر - على أنظمة يونكس، التي تستعمل كليهما لأغراض مختلفة. يستعمل كذلك تخ الآن في الكثير من الأغراض الطباعية الأخرى وخاصة في صورة لاتخ (LaTeX) وغيره من حزم القوالب، هناك شائع الاستخدام لملفات تخ هو application/x-tex ، تخ مجاني ومن البرمجية حرة.
أمثلة رياضياتية
The quadratic formula is $-b \pm \sqrt{b^2 - 4ac} \over 2a$
إضافةً إلى ذلك، يوفر تخ سياقا نصيا للمعادلات الرياضية. مثلا، معادلة ايجاد الجذور للمعادلات التربيعيه الشهيرة تكتب على الملف:
كيف يعمل تخ
مثال برنامج أهلا بالعالم باستخدام تخ الصِرف:
Hello, World
ومن جهة أخرى، يمكن حفظ الملف باسم myfile.tex ، حيث دوت تخ.tex هو امتداد ملفات تخ الشائع.
علاوةً على ذلك، يعتبر تخ أي شيء بعد علامة النسبة المؤوية تعليقا ويتجاهله. تشغيل تخ على هذا الملف (مثلا بكتابة tex myfile.tex في سطر الأوامر، أو استدعاؤه من الواجهة الرسومية) سينتج ملفا باسم myfile.dvi. يمكن طباعة الناتج مباشرة من عارض DVI أو تحويله إلى نسق أكثر شيوعا مثل بوست سكريبت (PostScript) باستخدام برنامج dvips. سبب هذا أن تخ يستعمل خطوط نقطية مصممة للعرض جيدا في حجم معين، بينما PostScript يستعمل خطوط متجهية. تنويعات تخ الأخرى مثل تنتج ملفا PDF مباشرة.
وفي السياق ذاته، \end % marks the end of the file; not shown in the final output
\end
الناتج سيشبه:
ملاحظات
نبذة تاريخية
وفي هذا السياق، عندما نُشر أول جزء من كتاب دونالد كانوث فن برمجة الحاسوب سنة 1969، تم تصفيفه باستخدام الطباعة المعدنية بواسطة آلة طباعة من القرن التاسع عشر من شركة مونوتيب، منتجة “طرازا تقليدي جيد” أعجب به دونالد كانوث، وعندما نشرت الطبعة الثانية في 1976 تعين إعادة تصفيف الكتاب من البداية لأن تقنيات مونوتيب إستُبدلت إلى حدّ كبير وحل محلها تقنيات النسخ الضوئي، ولم يعد الخط الأصلي متاحا، ولكن عندما استلم كانوث عينات الكتاب في مارس 1977 لمراجعتها وجدها قبيحة في هذه الأثناء رأي كانوث للمرة الأولى نتائج نظام طباعة رقمي عالي الجودة، وصار مهتما بالطباعة الرقمية. العينات غير المرضية أعطته الدافع ليحل هذه المشكلة مرة واحدة بتصميم نظامه الخاص للطباعة. في 13 مايو 1977 كتب ملاحظة لنفسه يصف فيها الخصائص الأولية لتخ.
في هذا الإطار، وبالمثل فإصدارات ميتافونت بعد 2.0 تقترب بصمت من ثابت إيه e ، وسيحدث تغيير مماثل بعد وفاة كانوث.
في هذا الإطار، مع هذا، وحيث أن كود تخ المصدري يكاد يكون ملكية عامة (انظر ما يلي)، يسمح (بل ويشجع صراحة) للمبرمجين الآخرين بتحسين النظام بشرط استخدام اسم آخر لتوزيع تخ المعدل، مما يعني أن الكود يمكن أن يتطور. فمثلا مشروع أوميجا طُوّر بعد 1991 ويهدف أساسا لإضافة إمكانيات تعدد اللغات إلى تخ. دونالد كانوث نفسه أنشأ نسخ معدلة “غير رسمية” من تخ مثل TeX-XeT التي تتيح الخلط بين أنظمة الكتابة من اليمين لليسار ومن اليسار لليمين.
نظام الطباعة
في هذا الإطار، يمكن تقسيم النظام إلى أربع مستويات: في الأول تقرأ الحروف من ملف الدخْل وتسند إلى رمز فئة (يسمى أحيانا “catcode” اختصارا). التجميعات من الشرطة الراجعة (أو أي محرف في الفئة 0) متبوعة بحروف (المحارف من الفئة 11) أو محرف واحد آخر، تستبدل برمز تتابع تحكم. مما يعني أن هذه المرحلة أشبح بالتحليل البنيوي، يالرغم من أنها لا تكون أعدادا من الأرقام. في المرحلة التالية تتابعات التحكم التي يمكن فكها تستبدل بنصها البديل. عندها يكون دخل المرحلة الثالثة تيار من المحارف (شاملة تلك التي تحمل معان خاصة) وتتابعات تحم لا تفك. هنا تركب المحارف لتكون فقرة. تعمل خوارزمية تقسيم الفقرات في تخ على أمثلة نقاط التقسيم عبر الفقرة بأكملها. المرحلة الرابعة تقطع القائمة الأفقية من السطور والمواد الأخرى لتشكل صفحات.
وفي السياق ذاته، يعرف تخ بدقة أبعاد كل المحارف والرموز، وباستخدام هذه المعلومات يحسب الترتيب الأمثل للحروف في كل سطر والسطور في كل صفحة. بعدها ينتج ملف DVI (اختصار “DeVice Independent”) يحتوي المواضع النهائية لكل المحارف. يمكن بعدها طباعة ملف dvi مباشرة باستخدام مشغل الطابعة المناسب، أو تحويله إلى أنساق أخرى. هذه الأيام يستعمل بكثرة متخطيا خطوة إنتاج ملف DVI.
من جهة ثانية، يفهم نظام تخ قرابة 300 أمر، تسمى أوليات. لكن هذه الأوامر منخفضة المستوى نادرا ما يستعملها المستعمل مباشرة، وأغلب الوظائف توفرها ملفات التنسيق (صور طرح ذاكرة تخ بعد تحميل حزم الماكرو الكبيرة). تنسيق كانوث المبدئي الأصلي، والذي يضيف قرابة 600 أمر، يسمى تخ الصرف (يتوفر من CTAN). أكثر التنسيقات استخداما هو لاتخ أو لاتك، الذي بدأ تطويره ليزلي لامبورت، والذي يشمل أنساق المستندات مثل الكتب والخطابات والشرائح إلخ.. ويضيف دعم المراجع وترقيم الأقسام والمعادلات تلقائيا. ومن التنسيقات شائعة الاستخدام كذلك من مجتمع الرياضيات الأمريكي والذي يوفر الكثير من الأوامر صديقة المستعمل والتي يمكن تغييرها لتناسب احتياجات دور النشر. أغلب مميزات أ.م.س يمكن استخدامها في لاتخ باستخدام “حزم” AMS. ومن التنسيقات الأخرى الذي يستعمل أساسا للنشر المكتبي.
وفي هذا الصدد، تبدأ أوامر تخ غالبا بشرطة مائلة عكسية وتجمع بين أقواس مجعدة، مع هذا فتقريبا كل الخصائص النحوية لتخ يمكن تغييرها على الهواء مما يجعل تحليل مدخلات تخ صعبا على أي شيء عدا تخ نفسه. لغة تخ لغة ماكرو ورموز (token): الكثير من الأوامر بما فيها أغلب الأوامر التي يُعرّفها المستعمل يتم فكّها على الهواء حتى تبقى الرموز التي لا تفك فيتم تنفيذها. الفك في حد ذاته خال عمليا من الأعراض الجانبية. يجعل هذا من تخ لغة تورنغ كاملة حتى على مستوى الفك.
📝 هل في هذه المقالة خطأ؟
إذا وجدت معلومة تحتاج تصحيحاً أو إضافة، أو أردت حذف المقالة، أرسل لنا طلباً وسنراجعه.
ما رأيك في هذه المقالة؟