מהו קובץ TEX?
TeX היא שפה המורכבת מתכנות כמו גם תכונות סימון, המשמשות לקביעת מסמכים. דונלד קנות’ מאוניברסיטת סטנפורד, הוא היוצר של מערכת כתיבה רבת תושייה זו. ברחבי העולם, TeX היא הבחירה האולטימטיבית של מחברים ומוציאים לאור להפקת מסמכים טכניים באיכות גבוהה. TeX מבצע עבודה יוצאת דופן של עיצוב ביטויים מתמטיים מורכבים. בשילוב עם קביעת הדפסה באיכות גבוהה, TeX מתחרה בתוצאות המופקות על ידי מיטב מערכות הקביעה המסורתיות. לפיכך נחשבות למערכות הטיפוגרפיות הדיגיטליות האלגנטיות ביותר.
קבצי קלט TeX מבוססים על קוד ASCII, ובכך מאפשרים שיתוף כתבי יד בין כותבים, מנהלי הוצאה לאור ומבקרים. מגוון רחב של סביבות מחשוב, כמעט כל פלטפורמה מודרנית והרבה פלטפורמות ישנות יותר תומכות ב-TeX. יתרה מכך, TeX היא תוכנה חינמית, הזמינה למגוון רחב של צרכנים. התקנות UNIX רבות משתמשות הן ב-UNIX troff והן ב-TeX כמערכת העיצוב שלהן למטרות שונות. משימות קביעת סוגים אחרות מבוצעות בצורה אדירה בצורה של LaTeX, ConTeXt וחבילות מאקרו אחרות.
היסטוריה קצרה
TeX תוכנן ונכתב על ידי דונלד קנות’ בשנת 1978. גאי סטיל מהמכון הטכנולוגי של מסצ’וסטס שינה את הקלט/פלט של TeX כדי לגרום לו לפעול תחת מערכת ההפעלה הבלתי תואמת כמו Timesharing System (ITS). הגרסה הראשונה של TeX פותחה תחת מערכת ההפעלה WAITS של סטנפורד בשפת התכנות (SAIL) ונבדקה לרוץ על PDP-10. Knuth הציג את הרעיון של תכנות אורייני לגרסאות מתקדמות. תכנות קרוא וכתוב הוא דרך ליצור קוד מקור וסוגים הניתנים להידור (ב-TeX) עבור תיעוד צולב באמצעות הקובץ המקורי. השפה המשמשת לפיתוח גרסאות מתקדמות אלו של TeX נקראת WEB, תערובת של תוכניות DEC PDP-10 Pascal כדי להבטיח ניידות.
גרסה חדשה מתוקנת של TeX שפורסמה ב-1982 ונקראה TeX82. השינוי העיקרי הוא החלפת אלגוריתם המיקוף המקורי באלגוריתם החדש שנכתב על ידי פרנק ליאנג. כדי להבטיח ניידות על פני פלטפורמות שונות, במקום להשתמש בנקודה צפה, TeX82 משתמש בחשבון של נקודה קבועה יחד עם שפת תכנות אמיתית ומלאת Turing. בשנת 1989, שוחררו גרסאות חדשות של TeX ושל Metafont. אז גרסה 3.0 של TeX מאפשרת כניסות של 8 סיביות, ומאפשרת 256 תווים שונים בטקסט. לאחר גרסה 3, עדכונים מסומנים על ידי הוספת ספרה נוספת בסוף העשרוני, למשל הגרסה הנוכחית של TeX מצוינת כ-3.14159265. גרסה זו עודכנה לאחרונה ב-12-1-2014.
קלט TeX
ניתן להכין קובץ קלט ל-TEX עם עורך טקסט באמצעות טקסט רגיל. שלא כמו מעבד תמלילים טיפוסי, קובץ קלט זה מונע כל תווי בקרה בלתי נראים. ניתן להטמיע קובץ אחד בקובץ אחר, המכיל הגדרות מאקרו והגדרות עזר המשפרות את היכולות של TeX. אם התקנת TeX מגיעה עם קבצי מאקרו כלשהם, המידע המקומי על TeX מדגים על השימוש בקבצי מאקרו. הצורה הסטנדרטית של TeX, משלבת שילוב של פקודות מאקרו והגדרות אחרות הידועות בשם plain TEX.
על בסיס ידע מדויק של הגדלים של כל התווים והסמלים, הוא מחשב את הארגון האופטימלי של אותיות בשורה ושורות בעמוד. בזמן עיבוד המסמכים, מופק קובץ .dvi, כאשר “dvi” מייצג “התקן עצמאי”. נדרשות תוכניות מנהל התקן להדפסה או תצוגה מקדימה של המסמך עם סיומת dvi. כיום, יצירת dvi עוקפת על ידי pdf-TeX נפוץ. אין ידע מוקדם בגופנים זמין בהתקנת TeX, כך שקובצי גופנים חיצוניים, שהם חלק מסביבת TeX מקומית משמשים להשגת מידע למסמך.
מערכת קביעת סוג
ניתן להבין כ-300 פרימיטיבים (פקודות) על ידי מערכת TeX הבסיסית. פרימיטיבים הם פקודות ברמה נמוכה, לכן משתמש נפוץ כמעט ולא השתמש בהן ישירות ורוב הפונקציונליות מבוצעת על ידי קבצי פורמט. קבצי הפורמט הללו הם תמונות זיכרון שנטענו מראש של TeX ואחריהן טעינה של אוספי מאקרו גדולים. פורמט ברירת המחדל המקורי של השפה כלומר רגיל TeX מוסיף כ-600 פקודות.
קו נטוי אחורי מקובץ עם סוגרים מסולסלים מציין את ההתחלה של פקודות TeX. מכיוון ש-TeX היא שפה מבוססת מאקרו ואסימונים, ניתן לשנות כמעט את כל המאפיין התחבירי של TeX בזמן הריצה, כולל אלו המוגדרים על ידי המשתמש, מלבד אסימונים בלתי ניתנים להרחבה אשר לאחר מכן מבוצעים. ההרחבה עצמה כמעט ללא בעיות. פקודות מסוימות צריכות לבוא אחרי ארגומנטים שעוזרים להסביר את הפונקציה של פקודה. לדוגמה, הפקודה \vskip מנחה את TEX לדלג למטה/מעלה בעמוד ואחריו ארגומנט שקובע כמה מקום לדלג.
גרסאות
LaTeX הוא הפורמט הנפוץ ביותר שפותח במקור על ידי לסלי למפורט. LaTeX משלב סגנונות מסמכים שונים עבור קבצים, מכתבים, ספרים ושקופיות ומציע הפניה ומספור אוטומטי עבור מקטעים וביטויים מתמטיים שונים. AMS-TeX הוא פורמט פופולרי נוסף, שפותח על ידי האגודה האמריקאית למתמטיקה.
AMS-TeX מציע הרבה יותר פקודות ידידותיות למשתמש, שניתן להגדיר מחדש על ידי יומנים כדי להתאים לסגנון המקומי שלהם. LaTeX יכול לקחת את היתרונות של AMS-TeX על ידי שימוש ב"חבילות" של AMS אשר נקראות אז AMS-LaTeX. ConTeXt הוא פורמט נוסף שנכתב על ידי הנס האגן המשמש בעיקר לפרסום שולחני.
תוכנת TeX מציעה מספר תכונות שלא היו זמינות, או באיכות נמוכה יותר, במערכות קביעת סוגים אחרות בזמן יצירתה. חלק מהמאפיינים החדשניים של שפה זו מבוססים על אלגוריתמים מעניינים שנגזרו מהתזות של תלמידיו של קנוט. בעוד שתוכניות כתיבה אחרות משלבות כעת תכונות שימושיות של TeX בתוכניות שלהן.