> For the complete documentation index, see [llms.txt](https://overleaf-pro.ayaka.space/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://overleaf-pro.ayaka.space/latex/uk/dokladni-statti/49-the-tex-family-tree-latex-pdftex-xetex-luatex-and-context.md).

# Дерево сімейства TeX: LaTeX, pdfTeX, XeTeX, LuaTeX і ConTeXt

Історія LaTeX бере свій початок аж у 1977 році, коли Дональд Кнут уперше усвідомив потребу у високоякісній програмі для верстки. Це надзвичайне свідчення якості LaTeX, що система, яку він тоді задумав, і сьогодні є найкращим інструментом для цієї роботи, хоча за десятиліття відтоді було зроблено багато корисних доповнень. Насправді LaTeX є одним із таких доповнень до оригінальної системи, яку розробив Дональд Кнут, і яка називалася [TeX](http://www.tug.org/).

Щоб не втратити свій авторитет у світі LaTeX, це треба писати з великою T і X та вимовляти як «Лей-Тек». Це тому, що X у TeX насправді є великою грецькою літерою хі (χ). Latex зі звичайним написанням і вимовою — це тип гуми!

## Оригінальний TeX

Існує велика родина інструментів, які нині походять від TeX, і спочатку це може виглядати як список безглуздих слів: LaTeX, pdfTeX, XeLaTeX, LuaTeX, ConTeXt тощо. Предком усіх них, звісно, є оригінальна програма TeX Кнута. Вона бере документ у простому тексті й перетворює його на красиво набраний документ. Кнут був дуже прискіпливим до верстки, і увага до деталей у TeX очевидна. Приклад документа TeX може виглядати приблизно так:

```latex
\TeX{} добре набирає слова на кшталт `fjord', `efficiency',
і `fiasco'. Він також добре набирає математику, наприклад
$a^2 + b^2 = c^2$.
\bye
```

Результат після запуску цього через програму TeX такий:

![Texsample.png](/files/861e3e05dc2d6da2cda538061c8ea9d6cd4a482d)

Зверніть увагу, як поєднання літер «fi», «fj» і «ff» у прикладних словах приємно зливаються, а математичні символи мають добре підібрані проміжки. У більшому масштабі TeX дуже добре розбиває рядки у відповідних місцях, створюючи добре вирівняний текст із переносами там, де це доречно.

Він не лише гарно набирає текст, а й має набір команд, як-от `\bye` та `\TeX` у наведеному вище прикладі. Вони можуть робити прості речі, як-от змінювати розмір шрифту або спосіб розташування тексту, а також значно потужніші речі, як-от вести нумерацію розділів для перехресних посилань на ваші сторінки або автоматично будувати зміст. Програма TeX має приблизно 300 вбудованих команд, але в ній можна визначати й інші команди. Дональд Кнут написав ще приблизно 600 корисних команд усередині TeX у пакеті під назвою Plain TeX, який полегшує деякі поширені завдання верстки.

## LaTeX

Команди в TeX і Plain TeX досі досить базові, і з ними нелегко робити складні речі. Щоб допомогти з цим, Леслі Лемпорт створив [LaTeX](http://www.latex-project.org/) на початку 1980-х років, щоб надати вищий рівень мови для роботи, ніж TeX. LaTeX — це набір команд, визначених через базові команди TeX, часто на багатьох, багатьох рівнях абстракції. Усі команди, які ви використовуєте в документі LaTeX, насправді є лише складними наборами команд TeX під капотом, якщо, звісно, ви не використовуєте команду TeX напряму! Такі поняття, як пакети (`\usepackage{...}`), середовища (`\begin{environment} ... \end{environment}`), і класи документів (`\documentclass{...}`) були запроваджені Леслі Лемпортом у LaTeX.

Створивши стандартизовану систему пакетів для LaTeX, Леслі Лемпорт дав змогу спільноті стати величезною. Тепер доступні тисячі й тисячі пакетів LaTeX, які дозволяють верстати все — від підзображень до схем для в’язання. Також доступно багато класів документів для різних типів документів, незалежно від того, чи ви пишете книгу, лабораторний звіт або резюме. Багато видавництв і журналів мають власні спеціальні класи документів, які оформлюють їхні матеріали так, як їм потрібно.

## pdfTeX

Програма TeX напрочуд стабільна для програмного забезпечення, якому вже понад 20 років; Кнут оголосив, що в 1989 році вона досягла завершеності за функціями, і відтоді вносилися лише виправлення помилок. Звісно, це не зупинило значного й безперервного розвитку LaTeX, адже він написаний самою TeX. Насправді стабільність TeX дала змогу процвітати таким пакетам, як LaTeX, побудованим поверх нього.

Це не означає, що базова програма TeX не зазнала жодних удосконалень за останні 20 років. Зовсім ні, просто поліпшення робилися поруч із TeX, а оригінальний TeX залишався стабільним. Найважливішим удосконаленням 1990-х років стало створення [pdfTeX](http://www.tug.org/applications/pdftex/) Хан Те Тханем для його докторської дисертації. Оригінальна програма TeX виводить набраний документ у спеціальному форматі під назвою DVI (формат DeVice Independent), який згодом можна перетворити на файл PostScript для друку. Однак у 1993 році з’явився формат PDF, і сьогодні ми бачимо, що саме він однозначно переміг як кращий формат порівняно з PostScript. Є багато можливостей, які роблять PDF кращим, наприклад гіперпосилання між розділами, розділ метаданих, що дає змогу бачити зміст у лівій частині вашого переглядача PDF, а також підтримка ширшого й сучаснішого набору форматів зображень. pdfTeX — це модифікація TeX, яка дозволяє виводити безпосередньо в PDF і тим самим використовувати ці додаткові можливості.

Коли ви сьогодні встановлюєте дистрибутив LaTeX у своїй системі, він насправді постачається з двома різними програмами: `tex`, і `pdftex`. Він також постачається ще з двома програмами понад ці: `latex` та `pdflatex`, але насправді це лише оболонки над `tex` та `pdftex` відповідно. Вони спочатку завантажують пакети LaTeX перед обробкою вашого документа, але всередині все одно є TeX. Якщо ви запустите `latex` або `tex` то отримаєте файл DVI, який можна перетворити на файл PostScript або PDF, але якщо ви запустите `pdflatex` то отримаєте PDF безпосередньо.

Здебільшого `pdftex` та `pdflatex` є покращеннями над `tex` та `latex`, але є один недолік. Оригінальний TeX і формат DVI підтримують файли Encapsulated PostScript (`.eps`) тому, що їх можна легко включати у файли PostScript (створені шляхом перетворення `.dvi` файлів у PostScript через [`Dvips`](https://www.tug.org/texinfohtml/dvips.html)). Однак `pdftex` не може включати файли EPS, і натомість слід використовувати PDF (які можна отримати з файлів EPS за допомогою команди `epstopdf` яка зазвичай входить до дистрибутивів LaTeX). Утім, за цей недолік pdfTeX додає підтримку `.png`, `.jpg` та `.pdf` зображень, тоді як оригінальний TeX підтримує лише .eps (через [`Dvips`](https://www.tug.org/texinfohtml/dvips.html)).

## XeLaTeX і LuaTeX

Дотепер ми бачили, що TeX розвивався двома різними шляхами від моменту свого виникнення: завдяки додаванню простіших у використанні команд поверх оригінальної системи (LaTeX) та завдяки оновленням базової програми для підтримки виводу PDF (pdfTeX). Проте на цьому історія не завершується, і зусилля з модернізації TeX тривали. У 2004 році Джонатан К'ю створив [XeTeX](http://tug.org/xetex/), що є ще однією модифікацією базового рушія TeX, цього разу для підтримки ширшого набору символів, а не лише звичайних англійських цифр і літер, а також для підтримки сучасних форматів шрифтів. Це значно полегшує написання іноземними мовами, а також дозволяє використовувати в LaTeX шрифти, які традиційно були доступні лише вашому текстовому редактору.

[LuaTeX](http://www.luatex.org/) є спробою розширити оригінальну програму TeX більш розумною мовою програмування. Хоча в принципі ви можете зробити абсолютно все всередині TeX, на практиці це дуже незграбна мова програмування для роботи, якщо її взагалі можна назвати мовою програмування. Значна частина внутрішньої структури LaTeX є складною і важкою для розуміння сторонніми через те, що доводиться працювати лише в TeX. LuaTeX розширено однойменною скриптовою мовою Lua, яка є простою та стабільною мовою, ідеальною для написання складних макросів. Станом на 2012 рік вона все ще перебуває в активній розробці, і її API може змінюватися, але вона все одно дуже придатна до використання.

## ConTeXt

Ми вже згадували LaTeX як розширення до команд, доступних у TeX, але це не єдиний пакет, який значно розширив TeX. [ConTeXt](http://wiki.contextgarden.net/What_is_ConTeXt) є ще однією системою, створеною 1990 року Гансом Гогеном. LaTeX прагне звільнити користувача від необхідності ухвалювати рішення щодо типографіки та верстки (ви вводите `\section` та `\emph` але не турбуєтеся про те, що вони роблять — це залишається на розсуд класу документа або макета). З іншого боку, ConTeXt прагне надати простий інтерфейс до розширених можливостей типографіки. На жаль, я знаю про ConTeXt не так багато, як хотів би, тож не можу розповісти про нього значно більше, але якщо я колись дійду до того, щоб експериментувати з ним більше, я обов’язково опишу свої висновки.

Як останню історичну примітку, слід згадати [AMSTeX](http://en.wikipedia.org/wiki/AMS-LaTeX) який був розширенням макросів Plain TeX і використовувався Американським математичним товариством (AMS) з 1982 до 1985 року. Його спадщина живе в пакетах AMS-LaTeX, які є невід’ємною частиною багатьох документів LaTeX: `\usepackage{amsmath}`.

## Майбутнє

Що ж принесе майбутнє TeX і LaTeX? Я поки що не знаю, але, як колись сказав Алан Кей:

> Найкращий спосіб передбачити майбутнє — це винайти його.

Із ShareLaTeX ми сподіваємося покращити TeX і LaTeX у третьому напрямку, суттєво вдосконаливши робочий процес LaTeX. Попри те, що LaTeX уже понад 20 років, він усе ще здебільшого є програмою командного рядка, яку доводиться використовувати в незручному циклі написання, компіляції та перевірки результату. Методи співпраці зазвичай передбачають незграбні електронні листи, а не більш зручні процеси, доступні для текстових процесорів на кшталт Google Documents.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://overleaf-pro.ayaka.space/latex/uk/dokladni-statti/49-the-tex-family-tree-latex-pdftex-xetex-luatex-and-context.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
