تخ

من ويكيبيديا، الموسوعة الحرة
اذهب إلى: تصفح، ‏ ابحث
تخ
TeX
TeX logo.svg
المطور دونالد كانوث
آخر إصدار 3.1415926 / مارس 2008
مكتوب بلغة باسكال
نظام تشغيل متعدد
النوعية تصفيف المحارف
الترخيص يمكن تعديله بحرية، مادام الناتج لا يسمى TeX
موقع وب http://www.tug.org

تعديل

تخ (بالإنجليزية: TeX) هو نظام لصف الحروف (للطباعة) كتبه دونالد كانوث. صمم تخ - بالإضافة إلى لغة ميتا فونت لوصف الخطوط وخط الحاسوب الحديث - بهدفين رئيسيين؛ إتاحة إنتاج كتب عالية الجودة لأي شخص بمجهود معقول، وتوفير نظام يعطي نفس الناتج على أي حاسوب، الآن أو في المستقبل. ينسق الاسم على شكل TeX باستخدام تخ نفسه.

يرى الكثيرون أن تخ أفضل نظام لكتابة المعادلات الرياضية المعقدة [1]. يشيع تخ بين الأكاديميين وخاصة وسط الرياضياتيين والفزيائيين. كما استبدل بشكل كبير troff -منسق مفضل آخر- على أنظمة يونكس، التي تستخدم كليهما لأغراض مختلفة. يستخدم أيضا تخ الآن في الكثير من الأغراض الطباعية الأخرى وخاصة في صورة لاتخ وغيره من حزم القوالب.

نوع MIME الشائع الاستخدام لملفات تخ هو application/x-tex. تخ برمجية حرة.

التاريخ[عدل]

عندما نُشر أول جزء من كتاب كانوث فن برمجة الحاسوب سنة 1969، تم تصفيفه باستخدام الطباعة المعدنية بواسطة آلة طباعة من القرن التاسع عشر من شركة مونوتيب، منتجة “طرازا تقليديا جيدا” أعجب به كانوث. عندما نشرت الطبعة الثانية في 1976 تعين إعادة تصفيف الكتاب من البداية لأن تقنيات مونوتيب استُبدلت بشكل كبير وحل محلها تقنيات النسخ الضوئي، ولم يعد الخط الأصلي متاحا.[2] ولكن عندما استلم كانوث عينات الكتاب في مارس 1977 لمراجعتها وجدها قبيحة [3] في هذه الأثناء رأي كانوث للمرة الأولى نتائج نظام طباعة رقمي عالي الجودة، وصار مهتما بالطباعة الرقمية. العينات غير المرضية أعطته الدافع ليحل هذه المشكلة مرة واحدة بتصميم نظامه الخاص للطباعة. في 13 مايو 1977 كتب ملاحظة لنفسه يصف فيها الخصائص الأولية لتخ.[4]

كان كانوث يخطط لإنهائه خلال إجازته سنة 1978 لكن اللغة لم تُجمّد إلا في 1989، متأخرا أكثر من عشر سنوات. في صيف 1978 زار Guy Steele جامعة ستانفورد عندما كان كانوث يطور أول إصدارة من تخ. عندما عاد Steele إلى معهد ماساوسيتوش للتقانة أعاد كتابة نظام دخْل/خرْج تخ ليعمل على نظام التشغيل ITS. كتبت أول إصداة من تخ بلغة البرمجة SAIL لتعمل على PDP-10 تحت نظام تشغيل ستانفورد WAITS. في الإصدارات التالية طور كانوث مفهوم البرمجة الأدبية، وهي طريقة لإنتاج كود مصدري مع توثيق عال الجودة (مصفوف باستخدام تخ طبعا) من نفس الملف الأصلي. اللغة المستخدمة تسمى WEB وتنتج برامج بلهجة باسكال الخاصة ب‍ DEC PDP-10.

نشرت إصدارة جديدة (مكتوبة من جديد من الصفر) من تخ في سنة 1982 باسم TeX82. من ضمن التغييرات استبدال خوارزمية قطع الكلمات (في نهاية السطر) بخوارزمية جديدة من تطوير فرانك ليانج. يستخدم TeX82 حسابات النقطة الثابتة بدلا من حسابات النقطة العائمة لضمان تكرار النتائج على عتاد الحواسيب المختلف، [5] ويحتوي على لغة برمجة تورنج كاملة، بعد إلحاح من Guy Steele. [6]

في 1989 أصدر كانوث إصدارة أخرى من تخ وميتافونت.[7] بالرغم من رغبته في جعل البرنامج مستقر، وجد كانوث أن 128 محرفا مختلفا في دخْل تخ ليست كافية لاستيعاب اللغات الأجنبية؛ لذا كان التغيير الرئيسي في الإصدارة 3.0 هو إمكانية استخدام دخْل من 8 بتة مما يسمح ب‍ 256 محرفا مختلفا.

منذ الإصدارة 3 يستخدم تخ نظام ترقيم إصدارات تمييزي، حيث تميز الإصدارات بإضافة رقم في نهاية الرقم العشري بحيث يصل رقم الإصدارة إلى ط. هذا انعكاس لحقيقة أن تخ الآن مستقر جدا ولا يتوقع سوى تحديثات طفيفة. الإصدارة الحالية من تخ 3.1415926 صدرت في مارس 2008. تم تجميد التصميم بعد الإصدارة 3.0، ولن تضاف أي خصائص جديدة أو تغييرات أساسية بعد هذا، بحيث لا تحتوي الإصدارات الجديدة إلا على إصلاح للعلل البرمجية. على الرغم من أن كانوث نفسه أشار إلى عدة مواضع في تخ تحتاج إلى التحسين، إلا أنه وضح أنه يؤمن بشدة الحصول على نظام غير متغير سيعطي نفس الناتج الآن وفي المستقبل، أكثر أهمية من إضافة خصائص جديدة. لهذا السبب قرر أن “التغيير النهائي (بعد وفاتي)” سيكون تغيير رقم الإصدارة إلى ط، وعندها تصبح العلل الباقية مميزات.[8] وبالمثل فإصدارات ميتافونت بعد 2.0 تقترب بصمت من e، وسيحدث تغيير مماثل بعد وفاة كانوث.

مع هذا، وحيث أن كود تخ المصدري يكاد يكون ملكية عامة (انظر ما يلي)، يسمح (بل ويشجع صراحة) للمبرمجين الآخرين بتحسين النظام بشرط استخدام اسم آخر لتوزيع تخ المعدل، مما يعني أن الكود يمكن أن يتطور. فمثلا مشروع أوميجا طُوّر بعد 1991 ويهدف أساسا لإضافة إمكانيات تعدد اللغات إلى تخ. دونالد كانوث نفسه أنشأ نسخ معدلة “غير رسمية” من تخ مثل TeX-XeT التي تتيح الخلط بين أنظمة الكتابة من اليمين لليسار ومن اليسار لليمين.[9]

نظام الطباعة[عدل]

تبدأ أوامر تخ غالبا بشرطة راجعة وتجمع بين أقواس مجعدة، مع هذا فتقريبا كل الخصائص النحوية لتخ يمكن تغييرها على الهواء مما يجعل تحليل مدخلات تخ صعبا على أي شيء عدا تخ نفسه. لغة تخ لغة ماكرو ورموز (token): الكثير من الأوامر بما فيها أغلب الأوامر التي يُعرّفها المستخدم يتم فكّها على الهواء حتى تبقى الرموز التي لا تفك فيتم تنفيذها. الفك في حد ذاته خال عمليا من الأعراض الجانبية. يجعل هذا من تخ لغة تورنج كاملة حتى على مستوى الفك.

يمكن تقسيم النظام إلى أربع مستويات: في الأول تقرأ الحروف من ملف الدخْل وتسند إلى رمز فئة (يسمى أحيانا “catcode” اختصارا). التجميعات من الشرطة الراجعة (أو أي محرف في الفئة 0) متبوعة بحروف (المحارف من الفئة 11) أو محرف واحد آخر، تستبدل برمز تتابع تحكم. مما يعني أن هذه المرحلة أشبح بالتحليل البنيوي، يالرغم من أنها لا تكون أعدادا من الأرقام. في المرحلة التالية تتابعات التحكم التي يمكن فكها تستبدل بنصها البديل. عندها يكون دخل المرحلة الثالثة تيار من المحارف (شاملة تلك التي تحمل معان خاصة) وتتابعات تحم لا تفك. هنا تركب المحارف لتكون فقرة. تعمل خوارزمية تقسيم الفقرات في تخ على أمثلة نقاط التقسيم عبر الفقرة بأكملها. المرحلة الرابعة تقطع القائمة الأفقية من السطور والمواد الأخرى لتشكل صفحات.

يعرف تخ بدقة أبعاد كل المحارف والرموز، وباستخدام هذه المعلومات يحسب الترتيب الأمثل للحروف في كل سطر والسطور في كل صفحة. بعدها ينتج ملف DVI (اختصار “DeVice Independent”) يحتوي المواضع النهائية لكل المحارف. يمكن بعدها طباعة ملف dvi مباشرة باستخدام مشغل الطابعة المناسب، أو تحويله إلى أنساق أخرى. هذه الأيام يستخدم بي‌دي‌إف‌تخ بكثرة متخطيا خطوة إنتاج ملف DVI.

يفهم نظام تخ حوالي 300 أمر، تسمى أوليات.[10] لكن هذه الأوامر منخفضة المستوى نادرا ما يستخدمها المستخدم مباشرة، وأغلب الوظائف توفرها ملفات التنسيق (صور طرح ذاكرة تخ بعد تحميل حزم الماكرو الكبيرة). تنسيق كانوث المبدئي الأصلي، والذي يضيف حوالي 600 أمر، يسمى تخ الصرف (يتوفر من CTAN). أكثر التنسيقات استخداما هو لاتخ، الذي بدأ تطويره ليزلي لامبورت، والذي يشمل أنساق المستندات مثل الكتب والخطابات والشرائح إلخ.. ويضيف دعم المراجع وترقيم الأقسام والمعادلات تلقائيا. ومن التنسيقات شائعة الاستخدام أيضا أ.م.س.تخ من مجتمع الرياضياتيين الأمريكيين والذي يوفر الكثير من الأوامر صديقة المستخدم والتي يمكن تغييرها لتناسب احتياجات دور النشر. أغلب مميزات أ.م.س يمكن استخدامها في لاتخ باستخدام “حزم” AMS. ومن التنسيقات الأخرى كنتكست الذي يستخدم أساسا للنشر المكتبي.

كيف يعمل تخ[عدل]

صفحة عينة لتخ باستخدام حزمة لاتخ.

مثال على برنامج أهلا يا عالم باستخدام تخ الصِرف:

Hello, World
\end        % marks the end of the file; not shown in the final output

يمكن حفظ هذا باسم myfile.tex،حيث .tex هو امتداد ملفات تخ شائع.

يعتبر تخ أي شيء بعد علامة النسبة المؤوية تعليقا ويتجاهله. تشغيل تخ على هذا الملف (مثلا بكتابة tex myfile.tex في سطر الأوامر، أو استدعاؤه من الواجهة الرسومية) سينتج ملفا باسم myfile.dvi. يمكن طباعة الناتج مباشرة من عارض DVI أو تحويله إلى نسق أكثر شيوعا مثل PostScript باستخدام برنامج dvips. سبب هذا أن تخ يستخدم خطوط نقطية مصممة للعرض جيدا في حجم معين، بينما PostScript يستخدم خطوط متجهية. تنويعات تخ الأخرى مثل بي‌دي‌إف‌تخ تنتج ملفا PDF مباشرة.

أمثلة رياضياتية[عدل]

يوفر تخ سياقا نصيا للمعادلات الرياضية. مثلا، معادلة ايجاد الجذور للمعادلات التربيعيه الشهيرة تكتب على الملف:

The quadratic formula is $-b \pm \sqrt{b^2 - 4ac} \over 2a$
\end

الناتج سيشبه:

\hbox{The quadratic formula is } \textstyle{-b \pm \sqrt{b^2 - 4ac} \over 2a}

انظر أيضا[عدل]

ملاحظات[عدل]

  1. ^ بيكاري، كلاديو. صف الرياضيات للعلم والتقانة طبقا ل ISO31XI. جريدة مجموعو مستخدمي تخ . (1997).
  2. ^ دونالد إ. كانوث. الطباعة الرقمية. كلمة جائزة كيوتو، كيوتو، 1996. أعيد طبعها لتصبح الفصل الأول لكتاب الطباعة الرقمية.
  3. ^ الطباعة الرقمية, ص 5. “لقد مكثت 15 سنة أكتب هذه الكتب، وإذاكانت قبيحة فلا أريد الكتابة ثانيا.
  4. ^ دوانالد إ. كانوث. TEXDR.AFT، فصل 24 من كتاب "الطباعة الرقمية.
  5. ^ كانوث وبلاس، ص. 144
  6. ^ دونالد إ.كانوث، كانوث يقابل أعضاء NTG ، NTG: MAPS. 16 (1996), 38–49. أعيد طبعه ليكون الفصل 33 من كتاب "الطباعة الرقمية" الأسألة والأجوبة، III، ص. 648.
  7. ^ دونالد إ. كانوث. "الإصدارة الجديدة من تخ وميتافونت"، TUGboat ‏10 (1989)، 325–328؛ 11 (1990)، 12. أعيد طبعه ليكون الفصل 29 من "الطباعة الرقمية".
  8. ^ دونالد إ.كانوث مستقبل تخ وميتافونت"، جريدة NTG ‏(1990)، 489. أعيد طبعها لتكون الفصل 30 من "الطباعة الرقمية"، ص. 571.
  9. ^ دونالد إ. كانوث وبيري ماكاي. خلط النصوص من اليمين لليسار مع النصوص من اليسار لليمين، TUGboat‏ 8 (1987)، 14–25. أعيد طبعه ليكون الفصل 4 من الطباعة الرقمية.
  10. ^ كتاب تخ، ص. 9.

وصلات خارجية[عدل]