ТеХ
Разработчик(и) | Дональд Кнут |
---|---|
Первоначальный выпуск | 1978 год |
Стабильная версия | ТеХ Live 2024 [1]
/ 13 марта 2024 г |
Репозиторий | |
Написано в | ВЕБ / Паскаль |
Операционная система | Кросс-платформенный |
Тип | верстка |
Лицензия | Разрешительное бесплатное программное обеспечение |
Веб-сайт | парень |
Расширение имени файла |
.tex |
---|---|
Тип интернет-СМИ |
приложение/х-текс [а] |
Первоначальный выпуск | 1978 год |
Тип формата | Формат файла документа |
TeX ( / t ɛ x / , см. ниже ), стилизованная внутри системы как T e X , представляет собой набора текста программу , разработанную и написанную учёным-компьютерщиком и профессором Стэнфордского университета Дональдом Кнутом. [2] и впервые выпущен в 1978 году. Этот термин теперь относится к системе расширений, которая включает в себя программы, называемые движками TeX , наборы макросов TeX и пакеты, которые обеспечивают дополнительные функции набора текста, построенные на основе исходного языка TeX. TeX — популярное средство набора сложных математических формул ; она была отмечена как одна из самых сложных цифровых типографских систем. [3]
TeX широко используется в академических кругах , особенно в математике , информатике , экономике , политологии , технике , лингвистике , физике , статистике и количественной психологии . Он уже давно вытеснил Unix troff , [б] ранее предпочтительная система форматирования в большинстве Unix установок . Он также используется для многих других задач верстки, особенно в виде LaTeX , ConTeXt и других макросов пакетов .
TeX был разработан с двумя основными целями: позволить любому создавать высококачественные книги с минимальными усилиями и предоставить систему, которая давала бы одинаковые результаты на всех компьютерах в любой момент времени (вместе с Metafont языком ). для описания шрифта и Computer Modern семейства шрифтов ). [4] TeX — бесплатное программное обеспечение , что сделало его доступным широкому кругу пользователей.
История
[ редактировать ]Кнута Когда в 1968 году был опубликован первый бумажный том «Искусства компьютерного программирования» , [5] он был набран методом горячего набора на машине Monotype . Этот метод, восходящий к 19 веку, позволил создать «классический стиль», который ценил Кнут. [6] Когда в 1976 году вышло второе издание, всю книгу пришлось верстать заново, поскольку технология монотипии была в значительной степени заменена фотонабором , а оригинальные шрифты больше не были доступны. Когда Кнут получил гранки новой книги 30 марта 1977 года, он нашел их хуже. Разочарованный, Кнут решил разработать собственную систему набора текста.
Кнут впервые увидел результаты высококачественной системы цифрового набора текста и заинтересовался цифровой типографикой. 13 мая 1977 года он написал себе записку, описывающую основные возможности TeX. [7] Он планировал закончить его во время своего творческого отпуска в 1978 году, но так получилось, что язык не был « заморожен » (готов к использованию) только в 1989 году, более десяти лет спустя. Гай Стил оказался в Стэнфорде летом 1978 года, когда Кнут разрабатывал свою первую версию TeX. Когда Стил той осенью вернулся в Массачусетский технологический институт , он переписал систему ввода-вывода TeX ( I/O ), чтобы она работала под управлением операционной системы Inсовместимой системы разделения времени (ITS). Первая версия TeX, получившая название TeX78, была написана на языке программирования SAIL для работы на PDP-10 под управлением Стэнфордской операционной системы WAITS . [8]
WEB и грамотное программирование
[ редактировать ]Для более поздних версий TeX Кнут изобрел концепцию грамотного программирования — способ создания компилируемого исходного кода и связанной документации, набранной в TeX из одного и того же исходного файла. Используемый язык называется WEB и создает программы на DEC PDP-10 Pascal .
ТеХ82
[ редактировать ]TeX82, новая версия TeX, переписанная с нуля, была опубликована в 1982 году. Среди других изменений исходный алгоритм расстановки переносов был заменен новым алгоритмом, написанным Фрэнком Лянгом . TeX82 также использует арифметику с фиксированной запятой вместо плавающей , чтобы гарантировать воспроизводимость результатов на различном компьютерном оборудовании. [9] и включает в себя настоящий, полный по Тьюрингу язык программирования, созданный после интенсивного лоббирования со стороны Гая Стила. [10] В 1989 году Дональд Кнут выпустил новые версии TeX и Metafont . [11] Несмотря на свое желание сохранить стабильность программы, Кнут понял, что 128 различных символов для ввода текста недостаточно для поддержки иностранных языков; Таким образом, основным изменением в версии TeX 3.0 является возможность работать с 8-битными вводами, что позволяет вводить 256 различных символов. TeX3.0 был выпущен 15 марта 1990 года. [12]
Начиная с версии 3, TeX использовал своеобразную систему нумерации версий , в которой обновления обозначались добавлением дополнительной цифры в конце десятичного числа, так что номер версии асимптотически приближается к π . Это отражение того факта, что TeX сейчас очень стабилен и ожидаются лишь незначительные обновления. Текущая версия TeX — 3.141592653; последний раз оно обновлялось в 2021 году. [13] После версии 3.0 дизайн был заморожен, и никаких новых функций или фундаментальных изменений добавляться не будет, поэтому все новые версии будут содержать только ошибок . исправления [14] Хотя сам Дональд Кнут предложил несколько областей, в которых TeX можно было бы улучшить, он указал, что твердо верит, что наличие неизмененной системы, которая будет производить один и тот же результат сейчас и в будущем, более важно, чем введение новых функций. По этой причине он заявил, что «абсолютно окончательным изменением (который будет сделан после моей смерти)» будет изменение номера версии на π , после чего все оставшиеся ошибки станут функциями. [15] Аналогично, версии Metafont после 2.0 асимптотически приближаются к e (сейчас это 2,7182818), и аналогичное изменение будет применено после смерти Кнута. [14]
Общественное достояние
[ редактировать ]Поскольку исходный код TeX по существу находится в свободном доступе (см. ниже), другим программистам разрешено (и явно поощряется) улучшать систему, но они обязаны использовать другое имя для распространения модифицированного TeX, а это означает, что исходный код может еще развиваться. Например, проект Omega был разработан после 1991 года, в первую очередь для расширения возможностей TeX по многоязычному набору текста. [16] Кнут создал «неофициальные» модифицированные версии, такие как TeX-XeT , которые позволяют пользователю смешивать слева направо и справа налево . тексты, написанные в системах письма в одном документе [17]
Использование TeX
[ редактировать ]В нескольких технических областях, таких как информатика, математика, инженерное дело и физика, TeX стал стандартом де-факто . Многие тысячи книг были опубликованы с использованием TeX, включая книги, изданные Addison-Wesley , Cambridge University Press , Elsevier , Oxford University Press и Springer . Многочисленные журналы в этих областях создаются с использованием TeX или LaTeX, что позволяет авторам отправлять свои необработанные рукописи, написанные в TeX. [18] Хотя многие публикации в других областях, включая словари и юридические публикации, были созданы с использованием TeX, он не имел такого успеха, как в более технических областях, поскольку TeX был в первую очередь разработан для набора математических данных.
Создавая TeX, Дональд Кнут не верил, что единая система набора текста сможет удовлетворить потребности каждого; вместо этого он разработал множество крючков внутри программы, чтобы можно было писать расширения, и выпустил исходный код, надеясь, что издатели разработают версии, адаптированные к их собственным потребностям. Хотя такие расширения были созданы (в том числе и самим Кнутом), [17] большинство людей расширяли TeX только с помощью макросов, и он остался системой, связанной с техническим набором текста. [19] [20]
Система набора текста
[ редактировать ]Команды TeX обычно начинаются с обратной косой черты и группируются с помощью фигурных скобок . Почти все синтаксические свойства TeX можно изменить на лету, что затрудняет анализ входных данных TeX кем-либо, кроме самого TeX. TeX — это язык, основанный на макросах и токенах : многие команды, включая большинство определяемых пользователем, расширяются на лету до тех пор, пока не остаются только нерасширяемые токены, которые затем выполняются. Само расширение практически не имеет побочных эффектов. Хвостовая рекурсия макросов не требует памяти, и доступны конструкции if-then-else. Это делает TeX тьюринг-полным языком даже на уровне расширения. [21] Систему можно разделить на четыре уровня: на первом символы считываются из входного файла и им присваивается код категории (иногда называемый для краткости «кошачьим кодом»). Комбинации обратной косой черты (фактически любой символ нулевой категории), за которой следуют буквы (символы категории 11) или один другой символ, заменяются токеном управляющей последовательности. В этом смысле данный этап подобен лексическому анализу, хотя и не образует числа из цифр. На следующем этапе расширяемые управляющие последовательности (например, условные выражения или определенные макросы) заменяются заменяющим их текстом. Входными данными для третьего этапа является поток символов (в том числе имеющих особое значение) и нерасширяемые управляющие последовательности (обычно назначения и визуальные команды). Здесь символы собираются в абзац, а алгоритм разрыва абзаца TeX работает путем оптимизации точек останова по всему абзацу. Четвертый этап разбивает вертикальный список строк и другого материала на страницы.
Система TeX точно знает размеры всех символов и символов и, используя эту информацию, вычисляет оптимальное расположение букв в строке и строк на странице. Затем он создает файл DVI («DeVice Independent»), содержащий конечные местоположения всех символов. Этот файл DVI затем можно распечатать напрямую с помощью соответствующего драйвера принтера или преобразовать в другие форматы. В настоящее время pdfTeX , который вообще обходит генерацию DVI. часто используется [22] Базовая система TeX понимает около 300 команд, называемых примитивами . [23] Эти низкоуровневые команды редко используются пользователями напрямую, и большая часть функций обеспечивается файлами форматирования (предварительно созданными образами памяти TeX после загрузки больших коллекций макросов). Исходный формат Кнута по умолчанию, который добавляет около 600 команд, — Plain TeX. [24] Наиболее широко используемый формат — LaTeX , первоначально разработанный Лесли Лэмпортом , который включает стили документов для книг, писем, слайдов и т. д., а также добавляет поддержку ссылок и автоматической нумерации разделов и уравнений. Другой широко используемый формат, AMS-TeX , разработан Американским математическим обществом и предоставляет множество более удобных для пользователя команд, которые журналы могут изменять в соответствии со своим стилем. Большинство функций AMS-TeX можно использовать в LaTeX с помощью «пакетов AMS» (например, amsmath
, amssymb
) и «классы документов AMS» (например, amsart
, amsbook
). Тогда это называется AMS-LaTeX . [25] Другие форматы включают ConTeXt , используемый в основном для настольных издательских систем и написанный главным образом Хансом Хагеном из Pragma .
Как это работает
[ редактировать ]Пример программы Hello world на простом TeX:
Hello, World
\bye % marks the end of the file; not shown in the final output
Это может быть файл myfile.tex , поскольку .tex — это обычное расширение для простых файлов TeX. По умолчанию все, что следует за знаком процента в строке, является комментарием и игнорируется TeX. Запуск TeX для этого файла (например, набрав tex myfile.tex в интерпретаторе командной строки или вызвав его из графического пользовательского интерфейса ) создаст выходной файл с именем , представляющий содержимое страницы в устройства от независимом формате myfile.dvi (DVI). Затем файл DVI можно было либо просмотреть на экране, либо преобразовать в подходящий формат для любого из различных принтеров, для которых существовал драйвер устройства (поддержка принтера обычно не была функцией операционной системы на момент создания TeX). Кнут сказал, что в TeX нет ничего, что требовало бы DVI в качестве выходного формата, а более поздние версии TeX, особенно pdfTeX, XeTeX и LuaTeX, поддерживают вывод непосредственно в PDF .
Математический пример
[ редактировать ]
TeX предоставляет другой текстовый синтаксис специально для математических формул. Например, квадратная формула (которая является решением квадратного уравнения ) выглядит так:
Исходный код | Отображается как |
---|---|
The quadratic formula is $-b \pm \sqrt{b^2 - 4ac} \over 2a$
\bye
|
Формула печатается так, как если бы человек писал ее от руки или печатал уравнение. В документе вход в математический режим осуществляется путем начала с символа $, затем ввода формулы в синтаксисе TeX и повторного закрытия другим тем же символом. Кнут в шутку объяснил, что он выбрал знак доллара для обозначения начала и конца математического режима в простом TeX, потому что традиционно предполагалось, что верстка математики будет дорогой. [26] Математика отображения (математика, представленная в центре новой строки) аналогична, но вместо одного символа $ используется $$. Например, приведенное выше с квадратичной формулой в математике отображения:
Исходный код | Отображается как |
---|---|
The quadratic formula is $$-b \pm \sqrt{b^2 - 4ac} \over 2a$$
\bye
|
(Приведенные здесь примеры на самом деле не отображаются с помощью TeX; интервал, размеры символов и все остальное могут отличаться.)
Аспекты
[ редактировать ]Программное обеспечение TeX включает в себя несколько аспектов, которые были недоступны или имели более низкое качество в других программах набора текста на момент выпуска TeX. Некоторые инновации основаны на интересных алгоритмах и легли в основу нескольких диссертаций учеников Кнута. Хотя некоторые из этих открытий теперь включены в другие программы набора текста, другие, такие как правила математических интервалов, по-прежнему уникальны.
Математический интервал
[ редактировать ]Поскольку основной целью языка TeX является высококачественная верстка для издателей книг, Кнут уделил много внимания правилам пробелов в математических формулах. [27] [28] Он взял три работы, которые считал стандартами совершенства в математической типографике: книги, набранные издательством Addison-Wesley (издатель книги «Искусство компьютерного программирования ») под руководством Ганса Вольфа; издания математического журнала Acta Mathematica примерно 1910 года; и экземпляр Indagationes Mathematicae , голландского математического журнала. Кнут внимательно просмотрел эти печатные статьи, чтобы разобраться и найти свод правил относительно интервалов. [29] Хотя TeX предоставляет некоторые основные правила и инструменты, необходимые для указания правильного интервала, точные параметры зависят от шрифта, используемого для набора формулы. Например, интервал для шрифтов Knuth's Computer Modern был точно настроен на протяжении многих лет и теперь установлен; но когда другие шрифты, такие как AMS Euler , были использованы Кнутом впервые, пришлось определить новые параметры интервалов. [30]
Набор математических данных в TeX не лишен критики, особенно в отношении технических деталей показателей шрифта, которые были разработаны в эпоху, когда значительное внимание уделялось требованиям к хранению. Это привело к тому, что некоторые «хаки» перегрузили некоторые поля, что, в свою очередь, потребовало других «хаков». На эстетическом уровне изображение радикалов также подвергалось критике. [31] Спецификация математического шрифта OpenType во многом заимствована из TeX, но имеет некоторые новые функции/улучшения. [32] [33] [34]
Расстановка переносов и обоснование
[ редактировать ]По сравнению с ручным набором текста, проблему выравнивания легко решить с помощью цифровой системы, такой как TeX, которая, при условии, что определены хорошие точки для разрыва строки, может автоматически распределять пробелы между словами для заполнения строки. Таким образом, проблема состоит в том, чтобы найти набор точек останова, который даст наиболее визуально приятный результат. Многие алгоритмы разрыва строк используют первого подбора подход , при котором точки останова для каждой строки определяются одна за другой, и ни одна точка останова не изменяется после ее выбора. [35] Такая система не способна определить точку останова в зависимости от того, какой эффект она окажет на следующие строки. Для сравнения: алгоритм разрыва строк с полным соответствием , используемый TeX и разработанный Дональдом Кнутом и Майклом Плассом, рассматривает все возможные точки разрыва в абзаце и находит комбинацию разрывов строк, которая создаст наиболее глобально приятное расположение.
Формально алгоритм определяет значение, называемое badness , связанное с каждым возможным разрывом строки; плохость увеличивается, если пробелы в строке должны слишком сильно растягиваться или сжиматься, чтобы линия имела правильную ширину. Штрафы добавляются, если точка останова особенно нежелательна: например, если слово должно быть расставлено через дефис , если две строки подряд расставлены через дефис или если за очень свободной строкой сразу следует очень узкая строка. Затем алгоритм найдет точки останова, которые минимизируют сумму квадратов плохости (включая штрафы) полученных строк. Если в абзаце есть возможных точек останова, количество ситуаций, которые необходимо оценить наивно, равно . Однако, используя метод динамического программирования , сложность алгоритма можно снизить до (см. обозначение Big O ). Дальнейшие упрощения (например, отказ от проверки крайне маловероятных точек останова, таких как переносы в первом слове абзаца или очень переполненные строки) приводят к эффективному алгоритму, время работы которого составляет , где это ширина линии. Аналогичный алгоритм используется для определения наилучшего способа разбить абзацы на две страницы, чтобы избежать висячих или потерянных строк (строк, которые появляются на странице отдельно, в то время как остальная часть абзаца находится на следующей или предыдущей странице). Однако в целом диссертация Майкла Пласса показывает, как проблема разрыва страниц может быть NP-полной из -за дополнительной сложности размещения цифр. [36] Алгоритм разрыва строк TeX был принят в нескольких других программах, таких как Adobe InDesign ( для настольных издательских систем приложение ). [37] и GNU fmt Unix утилита командной строки . [38]
Если для строки не найден подходящий разрыв строки, система попытается расставить слова через перенос. Первоначальная версия TeX использовала алгоритм расстановки переносов, основанный на наборе правил удаления префиксов и суффиксов слов, а также для принятия решения о том, следует ли вставлять разрыв между двумя согласными в шаблоне формы гласная – согласная – согласная – гласная (что возможно в большинстве случаев). [39] TeX82 представил новый алгоритм расстановки переносов, разработанный Фрэнком Лянгом в 1983 году, для назначения приоритетов точкам останова в группах букв. Список шаблонов расстановки переносов сначала создается автоматически на основе набора слов с переносами (список из 50 000 слов). Если TeX должен найти приемлемые позиции переноса, например, в слове «энциклопедия» , он учтет все подслова расширенного слова «.энциклопедия». , где . — специальный маркер, обозначающий начало или конец слова. В список подслов входят все подслова длины 1 ( . , e , n , c , y и т. д.), длины 2 ( .e , en , nc и т. д.) и т. д., вплоть до подслова длины 14, то есть само слово, включая маркеры. Затем TeX просмотрит свой список шаблонов расстановки переносов и найдет подслова, для которых он рассчитал желательность расстановки переносов в каждой позиции. В случае с нашим словом можно сопоставить 11 таких узоров, а именно 1 в 4 л 4 , 1 cy, 1 d 4 i 3 a, 4 edi, e 3 Dia, 2 i 1 a, ope 5 d, 2 p 2 изд, 3 педи, педиа 4 , у 1 в. Для каждой позиции в слове TeX рассчитает максимальное значение , полученное среди всех совпадающих шаблонов, что дает en 1 cy 1 c 4 l 4 o 3 p 4 e 5 d 4 i 3 a 4 . Наконец, допустимыми позициями являются те, которые обозначены нечетным числом, что дает приемлемые переносы en-cy-clo-pe-di-a . Эта система, основанная на подсловах, позволяет определять очень общие шаблоны (например, 2 i 1 a) с небольшими ориентировочными числами (четными или нечетными), которые затем могут быть заменены более конкретными шаблонами (например, 1 d 4 i 3 a ) при необходимости. Эти шаблоны находят около 90% дефисов в исходном словаре; что еще более важно, они не вставляют ложных дефисов. Кроме того, в формат Plain TeX включен список исключений (слов, для которых шаблоны не предсказывают правильную расстановку переносов); дополнительные могут быть указаны пользователем. [40] [ нужна страница ] [41]
Метафонт
[ редактировать ]Metafont, не являющийся строго частью TeX, представляет собой систему описания шрифтов, которая позволяет дизайнеру описывать символы алгоритмически. Он использует кривые Безье довольно стандартным способом для генерации реальных отображаемых символов, но Кнут уделяет значительное внимание проблеме растеризации на растровых дисплеях. Другая диссертация Джона Хобби исследует проблему оцифровки «траекторий кисти». Этот термин происходит от того факта, что Metafont описывает символы как нарисованные абстрактными кистями (и ластиками). Принято считать, что TeX основан на растровых шрифтах, но на самом деле эти программы «не знают» ничего об используемых ими шрифтах, кроме их размеров. Ответственность за правильную обработку шрифтов других типов, включая PostScript Type 1 и TrueType, лежит на драйвере устройства. Computer Modern (широко известный как «шрифт TeX») доступен бесплатно в формате Type 1, как и математические шрифты AMS. Пользователи систем TeX, которые выводят непосредственно в PDF, таких как pdfTeX, XeTeX или LuaTeX, обычно вообще никогда не используют вывод Metafont.
Язык макросов
[ редактировать ]Документы TeX пишутся и программируются с использованием необычного макроязыка. Вообще говоря, запуск этого макроязыка включает этапы расширения и выполнения, которые не взаимодействуют напрямую. Расширение включает в себя как буквальное расширение определений макросов, так и условное ветвление, а выполнение включает в себя такие задачи, как установка переменных/регистров и фактический процесс набора текста с добавлением глифов в поля.
Определение макроса включает не только список команд, но и синтаксис вызова. Он отличается от наиболее широко используемых лексических препроцессоров , таких как M4 , тем, что тело макроса маркируется во время определения.
Макроязык TeX использовался для написания более крупных систем создания документов, в первую очередь включая LaTeX и ConTeXt.
Разработка
[ редактировать ]Исходный исходный код текущего программного обеспечения TeX написан на WEB , представляющем собой смесь документации, написанной на TeX и подмножестве Pascal , чтобы обеспечить читаемость и переносимость. Например, TeX самостоятельно выполняет все динамическое распределение из массивов фиксированного размера и использует только арифметику с фиксированной запятой для своих внутренних вычислений. В результате TeX был портирован практически на все операционные системы , обычно с использованием программы web2c для преобразования исходного кода в C вместо прямой компиляции кода Pascal. Кнут вел очень подробный журнал всех исправленных им ошибок и изменений, внесенных в программу с 1982 года; по состоянию на 2021 год [update], список содержит 440 записей, не считая модификации версии, которая должна быть сделана после его смерти как окончательное изменение в TeX. [42] [43] Кнут предлагает денежные вознаграждения людям, которые находят и сообщают об ошибках в TeX. Вознаграждение за ошибку начиналось с 2,56 доллара США (один «шестнадцатеричный доллар»). [44] ) и удваивался каждый год, пока не был заморожен на нынешнем уровне 327,68 доллара. Кнут потерял сравнительно немного денег, поскольку было заявлено очень мало ошибок. Кроме того, известно, что получатели подставляют свой чек как доказательство того, что они обнаружили ошибку в TeX, а не обналичивают его. [45] [46]
Из-за того, что мошенники нашли отсканированные копии его чеков в Интернете и использовали их, чтобы попытаться опустошить его банковский счет, Кнут больше не рассылает настоящие чеки, но те, кто отправляет отчеты об ошибках, вместо этого могут получить кредит в Банке Сан-Серифе . [47]
Дистрибутивы и расширения
[ редактировать ]TeX обычно предоставляется в виде простого в установке пакета самого TeX вместе с Metafont и всеми необходимыми шрифтами, форматами документов и утилитами, необходимыми для использования системы набора текста. В UNIX-совместимых системах, включая Linux и Apple macOS , TeX распространяется как часть более крупного дистрибутива TeX Live . (До TeX Live дистрибутив teTeX был фактическим стандартом для UNIX-совместимых систем.) В Microsoft Windows существует дистрибутив MiKTeX (расширенный proTeXt) и версия TeX Live для Microsoft Windows.
Несколько систем обработки документов основаны на TeX, в частности jadeTeX , который использует TeX в качестве серверной части для печати из Джеймса Кларка , DSSSL Engine системы публикации Arbortext , и Texinfo , системы обработки документации GNU. TeX является официальным пакетом набора текста для операционной системы GNU с 1984 года.
Существуют многочисленные расширения и сопутствующие программы для TeX, в том числе BibTeX для библиографий (распространяется вместе с LaTeX); pdfTeX, TeX-совместимый механизм, который может напрямую создавать PDF-файлы (а также продолжать поддерживать исходный DVI-выход); XeTeX , TeX-совместимый движок, поддерживающий Unicode и OpenType ; и LuaTeX , расширение TeX с поддержкой Unicode, которое включает в себя среду выполнения Lua с обширными возможностями подключения к базовым процедурам и алгоритмам TeX. Большинство расширений TeX доступны бесплатно в CTAN , Комплексной сети архивов TeX.
Редакторы
[ редактировать ]Существует множество редакторов, предназначенных для работы с TeX :
- Текстовый редактор TeXmacs — это научный текстовый редактор WYSIWYG - WYSIWYM , вдохновленный TeX и Emacs . Он использует шрифты Кнута и может генерировать выходные данные в формате TeX.
- Overleaf — это онлайн-редактор с частичным WYSIWYG, который предоставляет облачное решение для TeX, а также дополнительные функции совместного редактирования в реальном времени.
- LyX — это процессор документов WYSIWYM , который работает на различных платформах, включая:
- Линукс ,
- Microsoft Windows (более новые версии требуют Windows 2000 или более поздней версии)
- Apple macOS (с использованием неродного интерфейса Qt ).
- TeXShop (для macOS), TeXworks (для Linux, macOS и Windows) и WinShell (для Windows) представляют собой аналогичные инструменты и предоставляют интегрированную среду разработки (IDE) для работы с LaTeX или TeX. Для KDE /Qt Kile предоставляет такую IDE.
- Texmaker — это эквивалент Kile в Pure Qt, с пользовательским интерфейсом, почти таким же, как у Kile.
- TeXstudio — это форк Texmaker с открытым исходным кодом (2009 г.) , который предлагает другой подход к настройке и функциям. Доступны бесплатные загружаемые двоичные файлы для Windows, Linux, macOS, OS/2 и FreeBSD.
- GNU Emacs имеет различные встроенные и сторонние пакеты с поддержкой TeX, основным из которых является AUCTeX .
- Код Visual Studio . Заметным расширением является LaTeX Workshop.
- Для Vim возможные плагины включают Vim-LaTeX Suite, [48] Автоматический ТеХ [49] и ТеХ-9. [50]
- Для Apache OpenOffice и LibreOffice расширения iMath и TexMaths могут обеспечивать математическую верстку TeX. [51] [52]
- Для MediaWiki расширение Math обеспечивает математическую верстку TeX, но код должен быть окружен
<math>
ярлык.
Лицензия
[ редактировать ]Дональд Кнут несколько раз указывал [53] [54] [55] что исходный код TeX был помещен в « общественное достояние », и он настоятельно рекомендует вносить изменения или экспериментировать с этим исходным кодом. Однако, поскольку Кнут высоко ценит воспроизводимость вывода всех версий TeX, любая измененная версия не должна называться TeX или чем-то подобным до степени смешения. Чтобы обеспечить соблюдение этого правила, любая реализация системы должна пройти набор тестов, называемый тестом TRIP. [56] прежде чем ему разрешили называться TeX. Вопрос лицензии несколько сбивает с толку утверждения, включенные в начало исходного кода TeX: [57] которые указывают, что «все права защищены. Копирование этого файла разрешено только в том случае, если... вы не вносите в свою копию никаких изменений». Это ограничение следует интерпретировать как запрет на изменение исходного кода, пока файл называется tex.web . Примечание об авторских правах в начале tex.web (и mf.web) было изменено в 2021 году, чтобы прямо указать это. Эта интерпретация подтверждается позже в исходном коде, когда упоминается тест TRIP («Если эта программа будет изменена, полученная система не должна называться «TeX » »). [58] В начале 1980-х годов Американское математическое общество попыталось зарегистрировать товарный знак TeX. Это предложение было отклонено, поскольку в то время «TEX» (все заглавные буквы) было зарегистрировано компанией Honeywell для системы обработки текста « Text EXecutive ». [ нужна ссылка ]
XML-публикация
[ редактировать ]Можно использовать TeX для автоматического создания сложной структуры данных XML. Различия в синтаксисе между двумя языками описания можно преодолеть с помощью TeXML . Таким образом, в контексте публикации XML TeX можно рассматривать как альтернативу XSL-FO . TeX позволил свести научные статьи по математическим дисциплинам к относительно небольшим файлам, которые можно было визуализировать на стороне клиента, что позволило обмениваться полностью отпечатанными научными статьями через ранний Интернет и развивающуюся Всемирную паутину, даже когда отправка больших файлов была затруднена. Это проложило путь к созданию хранилищ научных статей, таких как arXiv , с помощью которых статьи можно было «публиковать» без посредника-издателя. [59]
Произношение и написание
[ редактировать ]Разработчик задумал название TeX произносить как / t ɛ x / с последней согласной loch. [60] Буквы имени обозначают заглавные греческие буквы тау , эпсилон и хи , поскольку TeX — это аббревиатура от τέχνη ( ΤΕΧΝΗ technē ), греческого слова, обозначающего «искусство» и «ремесло», которое также является корневым словом технический . Носители английского языка часто произносят его / t ɛ k / , как первый слог технического слова . Кнут советует набирать букву «Е» под базовой линией и уменьшать расстояние между буквами. Это сделано, как упоминает Кнут в своей книге TeXbook , чтобы отличить TeX от других названий систем, таких как TEX, процессор Text EXecutive (разработанный Honeywell Information Systems). [61] Поклонникам нравится увеличивать количество имен от слова «TeX», например TeXnician (пользователь программного обеспечения TeX), TeXhacker (программист TeX), TeXmaster (компетентный программист TeX), TeXhax и TeXnique . [62]
Сообщество
[ редактировать ]Известные организации в сообществе TeX включают группу пользователей TeX (TUG), которая в настоящее время издает TUGboat и ранее издавала журнал PracTeX Journal , охватывающий широкий спектр тем цифровой типографики, имеющих отношение к TeX. Deutschsprachige Anwendervereinigung TeX (DANTE) — это большая группа пользователей в Германии. Группа пользователей TeX была основана в 1980 году для образовательных и научных целей и представляет собой организацию для тех, кто интересуется типографикой и дизайном шрифтов и является пользователями системы набора текста TeX, изобретенной Кнутом. Группа пользователей TeX представляет интересы пользователей TeX по всему миру. Группа пользователей TeX издает журнал TUGboat три раза в год; [63] DANTE издает Die TeXnische Komödie четыре раза в год. Другие группы пользователей включают DK-TUG в Дании , GUTenberg во Франции , GuIT в Италии , NTG в Нидерландах и UK-TUG в Великобритании ; группы пользователей совместно ведут полный список. [64]
Расширения
[ редактировать ]См. также
[ редактировать ]- Сравнение языков разметки документов
- Редактор формул
- Список языков разметки документов
- MathJax — TeX на веб-страницах с помощью JavaScript
- Математическое время
- Новая система набора текста - повторная реализация TeX (снято с производства)
- ПГФ/ТикЗ
- PSTricks
- xdvi – программа для просмотра файлов .dvi
- Справка:Отображение формулы , помощь в отображении математических формул в Википедии.
Примечания
[ редактировать ]- ^ Незарегистрированный тип носителя.
- ^ Хотя troff по-прежнему остается форматировщиком документации UNIX по умолчанию.
Ссылки
[ редактировать ]- ^ «TeX Live — Группа пользователей TeX» . туг.орг . Проверено 25 апреля 2024 г.
- ^ «Пер Ботнер (участник встреч TeX Project) обсуждает авторство» .
Кнут определенно сам написал большую часть кода, по крайней мере, для переписывания Metafont, о чем я лично знаю. Однако некоторые из его учеников (например, Майкл Пласс и Джон Хобби) работали над алгоритмами, используемыми в TeX и Metafont.
- ^ Яннис Хараламбус. Шрифты и кодировки (перевод П. Скотта Хорна) . Пекин; Севастополь, Калифорния: O'Reilly Media, 2007, стр. 235.
- ^ Годёль, Алексия (27 марта 2006 г.). «Реагируют ли разработчики с открытым исходным кодом на конкуренцию?: Пример (La)TeX». дои : 10.2139/ssrn.908946 . S2CID 154052655 . ССРН 908946 .
{{cite journal}}
: Для цитирования журнала требуется|journal=
( помощь ) - ^ Кнут, Дональд Э. «Менее краткая биография» . Домашняя страница Дона Кнута . Архивировано из оригинала 5 декабря 2016 года . Проверено 9 января 2017 г.
- ^ Кнут, Дональд Э. «Памятная лекция Киотской премии, 1996 г.» (PDF) . Киотская премия . Архивировано из оригинала (PDF) 27 января 2018 года . Проверено 18 августа 2018 г.
- ^ Кнут, Дональд Эрвин, TEXDR.AFT , заархивировано из оригинала 12 января 2015 г.
- ^ Эта статья основана на материалах, взятых из TeX в Бесплатном онлайн-словаре вычислительной техники до 1 ноября 2008 г. и включенных в соответствии с условиями «повторного лицензирования» GFDL версии 1.3 или более поздней.
- ^ Кнут и Пласс 1981 , стр. 144.
- ^ Кнут, Дональд Э. Кнут встречается с членами NTG , NTG: MAPS. 16 (1996), 38–49. Перепечатано как «Вопросы и ответы», III , глава 33 « Цифровой типографии» , стр. 648.
- ^ Кнут, Дональд Э. Новые версии TeX и METAFONT , TUGboat 10 (1989), 325–328; 11 (1990), 12. Перепечатано как глава 29 журнала Digital Typography .
- ^ Хёниг, Алан (1998). TeX Unbound: стратегии LaTeX и TeX для шрифтов, графики и многого другого . Издательство Оксфордского университета. ISBN 978-0-19-509686-6 .
- ^ «Выпуск TeX 21» . Проверено 5 января 2022 г.
- ^ Перейти обратно: а б «Какое будущее у TeX?» . Часто задаваемые вопросы по TeX . 27 мая 2018 г. Архивировано из оригинала 28 апреля 2019 г. . Проверено 21 июля 2019 г.
- ^ Кнут, Дональд Э. Будущее TeX и METAFONT , журнал NTG MAPS (1990), 489. Перепечатано как глава 30 журнала Digital Typography , стр. 571.
- ^ «Разработка TeX Engine» . Часто задаваемые вопросы по TeX . 24 мая 2018 г. Архивировано из оригинала 28 апреля 2019 г. . Проверено 21 июля 2019 г.
- ^ Перейти обратно: а б Кнут, Дональд Э; Маккей, Пьер (1987), «Смешивание текстов с письмом справа налево с текстами с письмом слева направо» (PDF) , TUGboat , 8 : 14–25 . Перепечатано как Бигелоу, Чарльз; Дэй, Дональд (1983). «Глава 4». Цифровая типография . Том. 249. с. 106. Бибкод : 1983SciAm.249b.106B . doi : 10.1038/scientificamerican0883-106 .
{{cite book}}
:|journal=
игнорируется ( помогите ) - ^ Биб 2004 , с. 10.
- ^ Кнут, Дональд Э. (1996), «Вопросы и ответы I», TUGboat , 17 : 7–22 . Перепечатано как Бигелоу, Чарльз; Дэй, Дональд (1983). «Глава 31». Цифровая типография . Том. 249. с. 598. Бибкод : 1983SciAm.249b.106B . doi : 10.1038/scientificamerican0883-106 .
{{cite book}}
:|journal=
игнорируется ( помогите ) - ^ Кнут, Дональд Э. (1996), «Вопросы и ответы II», TUGboat , 17 : 355–367 . Перепечатано как Бигелоу, Чарльз; Дэй, Дональд (1983). «Глава 32». Цифровая типография . Том. 249. стр. 616–617. Бибкод : 1983SciAm.249b.106B . doi : 10.1038/scientificamerican0883-106 .
{{cite book}}
:|journal=
игнорируется ( помогите ) - ^ Джеффри, Алан (1990), «Списки во рту TeX» (PDF) , TUGboat , 11 (2): 237–45
- ^ «CTAN: Пакет pdftex» . ctan.org . Проверено 21 июля 2019 г.
- ^ Кнут 1984 , с. 9.
- ^ Обычный TeX (исходный код), CTAN
- ^ «Что такое пакеты AMS (amsmath и т. д.)?» . Часто задаваемые вопросы по TeX . 27 мая 2018 г. Архивировано из оригинала 28 апреля 2019 г. . Проверено 21 июля 2019 г.
- ^ Кнут 1984 , с. 127, гл. 16: Ввод математических формул.
- ^ Слейтер, Роберт (1989), Портреты в кремнии , MIT Press, стр. 349, ISBN 9780262691314
- ^ Сиропулос, Апостол; Цсоломитис, Антонис; Софрониу, Ник (2003), Цифровая типографика с использованием LaTeX , Springer, стр. 93, ISBN 9780387952178
- ^ Кнут, Дональд Э. (1996), «Вопросы и ответы II», TUGboat , 17 : 355–367 . Перепечатано как Бигелоу, Чарльз; Дэй, Дональд (1983). «Глава 32». Цифровая типография . Том. 249. стр. 620–624. Бибкод : 1983SciAm.249b.106B . doi : 10.1038/scientificamerican0883-106 .
{{cite book}}
:|journal=
игнорируется ( помогите ) - ^ Кнут, Дональд Э. Набор текста конкретной математики , TUGboat 10 (1989), стр. 31–36, 342. Перепечатано как глава 18 журнала Digital Typography , стр. 367–378.
- ^ Вьет, Ульрик. «Математическая верстка в TEX: хорошо, плохо, ужасно» (PDF) . Архивировано из оригинала (PDF) 20 января 2022 года.
- ^ «Качественное редактирование и отображение математического текста в Office 2007» .
- ^ «ЛайнСервис» .
- ^ «Карта» (PDF) . ntg.nl.
- ^ Барнетт, Майкл П. (1965), Компьютерный набор текста: эксперименты и перспективы , Кембридж , Массачусетс : MIT Press
- ^ Кнут и Пласс 1981 .
- ^ «Дональд Э. Кнут» , TUGboat (интервью), 21 год , Юрист : 103–10, 2000 г., архивировано из оригинала 22 января 2009 г. , получено 26 декабря 2005 г.
- ^ «4.1 fmt: Переформатировать текст абзаца» , Руководство по основным утилитам GNU (GNU coreutils) , Проект GNU, 2016
- ^ Лян 1983 , стр. 3.
- ^ Лян 1983 .
- ^ «Приложение H: Расстановка переносов», The TeXbook , стр. 449–55.
- ^ Кнут, Дональд Э. Список обновлений листинга TeX82, опубликованный в сентябре 1982 года , доступен на CTAN .
- ^ Кнут, Дональд Э. Приложение к «Ошибки TeX» статье , доступно на CTAN, последнее изменение в январе 2003 г.
- ^ Кнут, Дональд Э. «Кнут: часто задаваемые вопросы» . Стэнфордская информатика . Архивировано из оригинала 6 марта 2008 года . Проверено 28 ноября 2019 г.
- ^ Кара Платони (май – июнь 2006 г.). «Любовь с первого байта» . Стэнфордский журнал . Архивировано из оригинала 4 июня 2006 года.
- ^ «История TeX» . Группа пользователей TeX . Проверено 28 ноября 2019 г.
- ^ Кнут, Дональд Э (2008). «Кнут: Последние новости – финансовое фиаско» . Стэнфордская информатика . Архивировано из оригинала 29 ноября 2019 года . Проверено 29 ноября 2019 г.
- ^ Vim-LaTex , SourceForge, заархивировано из оригинала 8 марта 2024 г.
- ^ Автоматический плагин TeX , стартовая панель [ постоянная мертвая ссылка ]
- ^ TeX-9 , Vim.org
- ^ Домашняя страница TexMaths , free.fr
- ^ iMath , SourceForge
- ^ Бигелоу, Чарльз; Дэй, Дональд (1983). «Будущее TeX и METAFONT». Цифровая типография . Том. 249. с. 572. Бибкод : 1983SciAm.249b.106B . doi : 10.1038/scientificamerican0883-106 .
{{cite book}}
:|journal=
игнорируется ( помогите ) - ^ Кнут, Дональд Э. (1986), «Компьютеры и набор текста» (PDF) , TUGboat , 7 : 95–98
- ^ Бигелоу, Чарльз; Дэй, Дональд (1983). «Глава 28» (PDF) . Цифровая типография . Том. 249. с. 560. Бибкод : 1983SciAm.249b.106B . doi : 10.1038/scientificamerican0883-106 .
{{cite book}}
:|journal=
игнорируется ( помогите ) - ^ «Путешествие», CTAN (TeX) (исходный код)
- ^ Кнут, Дональд Э. (1986), TeX: Программа , Компьютеры и набор текста, том. Б, Ридинг, Массачусетс: Аддисон-Уэсли, ISBN 0-201-13437-3
- ^ Открытый исходный код: технологии и политика Фади П. Дик, Джеймс А. М. Макхью «Общественное достояние», стр. 227 (2008 г.)
- ^ О'Коннелл, Хит (2002). «Физики преуспевают благодаря безбумажным публикациям». Hep Lib.web . 6 : 3.arXiv : физика/0007040 .
- ^ Кнут, Дональд Э. The TeXbook , гл. 1: Название игры, с. 1.
- ^ Кнут, Дональд Э. Логотип TeX в различных шрифтах , TUGboat 7 (1986), 101. Перепечатано как глава 6 « Цифровой типографии» .
- ^ «Жаргонный файл — TeX» . Проверено 23 июля 2016 г.
- ^ «Сообщения группы пользователей TeX» . туг.орг . Группа пользователей TeX . Проверено 15 марта 2019 г.
- ^ «Все группы пользователей TeX» . туг.орг . Группа пользователей TeX . Проверено 17 ноября 2019 г.
Источники
[ редактировать ]- Биб, Нельсон Х.Ф. (2004), «25 лет TeX и METAFONT: взгляд назад и вперед» (PDF) , TUGboat , 25 : 7–30 .
- Кнут, Дональд Эрвин (1984), The TeXbook , Компьютеры и набор текста , том. А, Ридинг, Массачусетс : Аддисон-Уэсли, ISBN 0-201-13448-9 . Исходный код книги в TeX (и необходимый набор макросов [1] ) доступен онлайн на CTAN . Он предоставлен только в качестве примера, и его использование для подготовки книг типа The TeXbook не допускается.
- ——— (1986), TeX: Программа , Компьютеры и набор текста, том. Б, Ридинг, Массачусетс : Аддисон-Уэсли, ISBN 0-201-13437-3 . Полный исходный код TeX; также доступен на CTAN . Будучи написанным с использованием грамотного программирования , он содержит множество удобочитаемой документации.
- ——— (1999), Цифровая типография , Конспекты лекций, Центр изучения языка и информации, ISBN 1-57586-010-4 .
- ———; Пласс, Майкл Ф. (1981), «Разбиение абзацев на строки», Software: Practice and Experience , 11 (11): 1119–84, doi : 10.1002/spe.4380111102 , S2CID 206508107 . Перепечатано как Бигелоу, Чарльз; Дэй, Дональд (1983). «Глава 3». Цифровая типография . Том. 249. стр. 67–155. Бибкод : 1983SciAm.249b.106B . doi : 10.1038/scientificamerican0883-106 .
{{cite book}}
:|journal=
игнорируется ( помощь ) . - ———, TeX (исходный код), заархивированный из оригинала ( WEB ) 27 сентября 2011 г., содержит обширную документацию об алгоритмах, используемых в TeX.
- Лэмпорт, Лесли (1994), LaTeX : система подготовки документов (2-е изд.), Ридинг, Массачусетс : Аддисон-Уэсли, ISBN 0-201-52983-1 .
- Лян, Франклин Марк (август 1983 г.), «Перенос слов с помощью компьютера» ( докторская диссертация), факультет компьютерных наук, Стэнфордский университет .
- Саломон, Дэвид (1995), The Advanced TeXbook , Springer, Bibcode : 1995adte.book.....S , ISBN 0-387-94556-3 .
- Спивак, доктор медицины (1990), The Joy of TeX (ссылка) (2-е изд.), Американское математическое общество, ISBN 0-8218-2997-1 на AMS-TeX.
- Вулис, Майкл (1992), Современный TeX и его приложения , CRC Press, ISBN 0-8493-4431-Х .
Внешние ссылки
[ редактировать ]- Группа пользователей TeX
- TeX (вопросы и ответы), StackExchange .
- Эйхаут, Виктор. TeX по теме. Архивировано 25 февраля 2021 г. в Wayback Machine.
- TeX для нетерпеливых
- Дональд Кнут обсуждает разработку программного обеспечения для TEX в Xerox PARC 21 февраля 1980 г. https://archive.org/details/xerox-parc-tapes-v49.