stringtranslate.com

ТеХ

TeX ( / t ɛ x / , см. ниже), стилизованная внутри системы как T e X , представляет собой систему набора текста , которая была разработана и написана ученым-компьютерщиком и профессором Стэнфордского университета Дональдом Кнутом [1] и впервые выпущена в 1978 году. TeX — это популярное средство набора сложных математических формул ; она была отмечена как одна из самых сложных цифровых типографских систем. [2]

TeX широко используется в академических кругах , особенно в математике , информатике , экономике , политологии , технике , лингвистике , физике , статистике и количественной психологии . Она уже давно вытеснила Unix troff , [b] ранее предпочтительную систему форматирования, в большинстве установок Unix . Он также используется для многих других задач верстки, особенно в виде LaTeX , ConTeXt и других пакетов макросов .

TeX был разработан с двумя основными целями: позволить любому создавать высококачественные книги с минимальными усилиями и предоставить систему, которая давала бы одинаковые результаты на всех компьютерах в любой момент времени (вместе с языком Metafont ) . для описания шрифта и семейства шрифтов Computer Modern ). [3] TeX — свободное программное обеспечение , что сделало его доступным широкому кругу пользователей.

История

Когда в 1968 году был опубликован первый бумажный том книги Кнута « Искусство компьютерного программирования» , [4] он был набран с использованием горячего набора текста на машине Monotype . Этот метод, восходящий к 19 веку, позволил создать «классический стиль», который ценил Кнут. [5] Когда в 1976 году было опубликовано второе издание, всю книгу пришлось набирать заново, поскольку технология монотипии была в значительной степени заменена фотонабором , а оригинальные шрифты больше не были доступны. Когда Кнут получил гранки новой книги 30 марта 1977 года, он нашел их хуже. Разочарованный, Кнут решил разработать собственную систему набора текста.

Кнут впервые увидел результаты высококачественной системы цифрового набора текста и заинтересовался цифровой типографикой. 13 мая 1977 года он написал себе записку, описывающую основные возможности TeX. [6] Он планировал закончить его во время своего творческого отпуска в 1978 году, но так получилось, что язык не был « заморожен » (готов к использованию) только в 1989 году, более десяти лет спустя. Гай Стил оказался в Стэнфорде летом 1978 года, когда Кнут разрабатывал свою первую версию TeX. Когда той осенью Стил вернулся в Массачусетский технологический институт , он переписал систему ввода-вывода TeX ( I/O ) для работы под операционной системой Inсовместимой системы разделения времени (ITS). Первая версия TeX, получившая название TeX78, была написана на языке программирования SAIL для работы на PDP-10 под управлением Стэнфордской операционной системы WAITS .

WEB и грамотное программирование

Для более поздних версий TeX Кнут изобрел концепцию грамотного программирования — способ создания компилируемого исходного кода и связанной документации, набранной в TeX из одного и того же исходного файла. Используемый язык называется WEB и создает программы на DEC PDP-10 Pascal .

ТеХ82

TeX82, новая версия TeX, переписанная с нуля, была опубликована в 1982 году. Среди других изменений исходный алгоритм расстановки переносов был заменен новым алгоритмом, написанным Фрэнком Лянгом. TeX82 также использует арифметику с фиксированной запятой вместо арифметики с плавающей запятой , чтобы гарантировать воспроизводимость результатов на различном компьютерном оборудовании [7] и включает в себя настоящий, полный по Тьюрингу язык программирования, после интенсивного лоббирования со стороны Гая Стила. [8] В 1989 году Дональд Кнут выпустил новые версии TeX и Metafont . [9] Несмотря на свое желание сохранить стабильность программы, Кнут понял, что 128 различных символов для ввода текста недостаточно для поддержки иностранных языков; Таким образом, основным изменением в версии 3.0 TeX (также называемой TeX90) является возможность работать с 8-битными входными данными, что позволяет вводить 256 различных символов при вводе текста. TeX3.0 был выпущен 15 марта 1990 года. [10]

Начиная с версии 3, TeX использует своеобразную систему нумерации версий , в которой обновления обозначаются добавлением дополнительной цифры в конце десятичного числа, так что номер версии асимптотически приближается к π . Это отражение того факта, что TeX сейчас очень стабилен и ожидаются лишь незначительные обновления. Текущая версия TeX — 3.141592653; последний раз он обновлялся в 2021 году. [11] После версии 3.0 дизайн был заморожен, и никаких новых функций или фундаментальных изменений добавляться не будет, поэтому все новые версии будут содержать только исправления ошибок . [12] Хотя сам Дональд Кнут предложил несколько областей, в которых TeX можно было бы улучшить, он указал, что твердо верит, что наличие неизмененной системы, которая будет производить один и тот же результат сейчас и в будущем, более важно, чем введение новых функций. . По этой причине он заявил, что «абсолютно окончательным изменением (который будет сделан после моей смерти)» будет изменение номера версии на π , после чего все оставшиеся ошибки станут функциями. [13] Аналогично, версии Metafont после 2.0 асимптотически приближаются к e (сейчас это 2.7182818), и аналогичное изменение будет применено после смерти Кнута. [12]

Всеобщее достояние

Поскольку исходный код TeX по существу находится в свободном доступе (см. ниже), другим программистам разрешено (и явно поощряется) улучшать систему, но они обязаны использовать другое имя для распространения модифицированного TeX, а это означает, что исходный код может еще развиваться. Например, проект Omega был разработан после 1991 года, в первую очередь для расширения возможностей TeX по многоязычному набору текста. [14] Кнут создал «неофициальные» модифицированные версии, такие как TeX-XeT, которые позволяют пользователю смешивать тексты, написанные в системах письма слева направо и справа налево, в одном документе. [15]

Использование TeX

В нескольких технических областях, таких как информатика, математика, инженерное дело и физика, TeX стал стандартом де-факто . Многие тысячи книг были опубликованы с использованием TeX, включая книги, опубликованные издательствами Addison-Wesley , Cambridge University Press , Elsevier , Oxford University Press и Springer . Многочисленные журналы в этих областях создаются с использованием TeX или LaTeX, что позволяет авторам отправлять свои необработанные рукописи, написанные в TeX. [16] Хотя многие публикации в других областях, включая словари и юридические публикации, были созданы с использованием TeX, он не имел такого успеха, как в более технических областях, поскольку TeX был в первую очередь разработан для набора математических данных.

Создавая TeX, Дональд Кнут не верил, что единая система набора текста сможет удовлетворить потребности каждого; вместо этого он разработал множество крючков внутри программы, чтобы можно было писать расширения, и выпустил исходный код, надеясь, что издатели разработают версии, адаптированные к их собственным потребностям. Хотя такие расширения были созданы (в том числе некоторые самим Кнутом), [15] большинство людей расширяли TeX только с помощью макросов, и он остался системой, связанной с техническим набором текста. [17] [18]

Система набора текста

Команды TeX обычно начинаются с обратной косой черты и группируются с помощью фигурных скобок . Почти все синтаксические свойства TeX можно изменить на лету, что затрудняет анализ входных данных TeX кем-либо, кроме самого TeX. TeX — это язык, основанный на макросах и токенах : многие команды, включая большинство определяемых пользователем, расширяются на лету до тех пор, пока не остаются только нерасширяемые токены, которые затем выполняются. Само расширение практически не имеет побочных эффектов. Хвостовая рекурсия макросов не требует памяти, и доступны конструкции if-then-else. Это делает TeX тьюринг-полным языком даже на уровне расширения. [19] Систему можно разделить на четыре уровня: на первом символы считываются из входного файла и им присваивается код категории (иногда для краткости называемый «кошачьим кодом»). Комбинации обратной косой черты (фактически любой символ нулевой категории), за которой следуют буквы (символы категории 11) или одиночный другой символ, заменяются токеном управляющей последовательности. В этом смысле данный этап подобен лексическому анализу, хотя и не образует числа из цифр. На следующем этапе расширяемые управляющие последовательности (например, условные выражения или определенные макросы) заменяются заменяющим их текстом. Входными данными для третьего этапа является поток символов (в том числе имеющих особое значение) и нерасширяемые управляющие последовательности (обычно назначения и визуальные команды). Здесь символы собираются в абзац, а алгоритм разрыва абзаца TeX работает путем оптимизации точек останова по всему абзацу. Четвертый этап разбивает вертикальный список строк и другого материала на страницы.

Система TeX точно знает размеры всех знаков и символов и, используя эту информацию, вычисляет оптимальное расположение букв в строке и строк на странице. Затем он создает файл DVI («DeVice Independent»), содержащий конечные местоположения всех символов. Этот файл DVI затем можно распечатать напрямую с помощью соответствующего драйвера принтера или преобразовать в другие форматы. В настоящее время часто используется pdfTeX , который вообще обходит генерацию DVI. [20] Базовая система TeX понимает около 300 команд, называемых примитивами . [21] Эти низкоуровневые команды редко используются пользователями напрямую, и большая часть функций обеспечивается файлами форматирования (предварительно созданными образами памяти TeX после загрузки больших коллекций макросов). Исходный формат Кнута по умолчанию, который добавляет около 600 команд, — Plain TeX. [22] Наиболее широко используемый формат — LaTeX , первоначально разработанный Лесли Лэмпортом , который включает стили документов для книг, писем, слайдов и т. д., а также добавляет поддержку ссылок и автоматической нумерации разделов и уравнений. Другой широко используемый формат, AMS-TeX , разработан Американским математическим обществом и предоставляет множество более удобных для пользователя команд, которые журналы могут изменять в соответствии со своим стилем. Большинство функций AMS-TeX можно использовать в LaTeX с помощью «пакетов AMS» (например, amsmath, amssymb) и «классов документов AMS» (например, amsart, amsbook). Тогда это называется AMS-LaTeX . [23] Другие форматы включают ConTeXt , используемый в основном для настольных издательских систем и написанный в основном Хансом Хагеном из Pragma.

Как это работает

Пример страницы, созданной с использованием TeX с макросами LaTeX .

Пример программы Hello world на простом TeX:

Привет, World \bye  % отмечает конец файла; не отображается в конечном выводе

Это может быть файл myfile.tex , поскольку .tex — это обычное расширение для простых файлов TeX. По умолчанию все, что следует за знаком процента в строке, является комментарием и игнорируется TeX. Запуск TeX для этого файла (например, путем ввода tex myfile.texинтерпретатора командной строки или вызова его из графического пользовательского интерфейса ) создаст выходной файл с именем myfile.dvi , представляющий содержимое страницы в устройстве . независимый формат (DVI). Затем файл DVI можно было либо просмотреть на экране, либо преобразовать в подходящий формат для любого из различных принтеров, для которых существовал драйвер устройства (поддержка принтера обычно не была функцией операционной системы на момент создания TeX). Кнут сказал, что в TeX нет ничего, что требовало бы DVI в качестве выходного формата, а более поздние версии TeX, особенно pdfTeX, XeTeX и LuaTeX, поддерживают вывод непосредственно в PDF .

Математический пример

TeX предоставляет другой текстовый синтаксис специально для математических формул. Например, квадратная формула (которая является решением квадратного уравнения ) выглядит так:

Формула печатается так, как если бы человек писал ее от руки или печатал уравнение. В документе вход в математический режим осуществляется путем начала с символа $, затем ввода формулы в синтаксисе TeX и повторного закрытия другим тем же символом. Кнут в шутку объяснил, что он выбрал знак доллара для обозначения начала и конца математического режима в простом TeX, потому что традиционно предполагалось, что верстка математики будет дорогой. [24] Математика отображения (математика, представленная с новой строки) аналогична, но вместо одного символа $ используется $$. Например, приведенное выше с квадратичной формулой в математике отображения:

(Приведенные здесь примеры на самом деле не отображаются с помощью TeX; интервал, размеры символов и все остальное могут отличаться.)

Аспекты

Программное обеспечение TeX включает в себя несколько аспектов, которые были недоступны или имели более низкое качество в других программах набора текста на момент выпуска TeX. Некоторые инновации основаны на интересных алгоритмах и легли в основу нескольких диссертаций учеников Кнута. Хотя некоторые из этих открытий теперь включены в другие программы набора текста, другие, такие как правила математических интервалов, по-прежнему уникальны.

Математический интервал

Математический набор текста с использованием TeX и шрифта AMS Euler.

Поскольку основной целью языка TeX является высококачественная верстка для издателей книг, Кнут уделил много внимания правилам пробелов в математических формулах. [25] [26] Он взял три работы, которые он считал стандартами совершенства в математической типографике: книги, набранные издательством Addison-Wesley (издатель книги « Искусство компьютерного программирования ») под руководством Ганса Вольфа. ; издания математического журнала Acta Mathematica примерно 1910 года; и экземпляр Indagationes Mathematicae , голландского математического журнала. Кнут внимательно просмотрел эти печатные статьи, чтобы разобраться и найти свод правил относительно интервалов. [27] Хотя TeX предоставляет некоторые основные правила и инструменты, необходимые для указания правильного интервала, точные параметры зависят от шрифта, используемого для набора формулы. Например, интервал для шрифтов Knuth's Computer Modern был точно настроен на протяжении многих лет и теперь установлен; но когда другие шрифты, такие как AMS Euler , были использованы Кнутом впервые, пришлось определить новые параметры интервалов. [28]

Набор математических данных в TeX не лишен критики, особенно в отношении технических деталей показателей шрифта, которые были разработаны в эпоху, когда значительное внимание уделялось требованиям к хранению. Это привело к тому, что некоторые «хаки» перегрузили некоторые поля, что, в свою очередь, потребовало других «хаков». На эстетическом уровне изображение радикалов также подвергалось критике. [29] Спецификация математического шрифта OpenType во многом заимствована из TeX, но имеет некоторые новые функции/улучшения. [30] [31] [32]

Расстановка переносов и обоснование

По сравнению с ручным набором текста, проблему выравнивания легко решить с помощью цифровой системы, такой как TeX, которая, при условии, что определены хорошие точки для разрыва строки, может автоматически распределять пробелы между словами для заполнения строки. Таким образом, проблема состоит в том, чтобы найти набор точек останова, который даст наиболее визуально приятный результат. Многие алгоритмы разрыва строк используют подход первого подбора , при котором точки останова для каждой строки определяются одна за другой, и ни одна точка останова не изменяется после ее выбора. [33] Такая система не способна определить точку останова в зависимости от того, какое влияние она окажет на следующие строки. Для сравнения, алгоритм разрыва строк с полным соответствием , используемый TeX и разработанный Дональдом Кнутом и Майклом Плассом, рассматривает все возможные точки разрыва в абзаце и находит комбинацию разрывов строк, которая создаст наиболее глобально приятное расположение.

Формально алгоритм определяет значение, называемое badness , связанное с каждым возможным разрывом строки; плохость увеличивается, если пробелы в строке должны слишком сильно растягиваться или сжиматься, чтобы линия имела правильную ширину. Штрафы добавляются, если точка останова особенно нежелательна: например, если слово должно быть расставлено через дефис, если две строки подряд переносятся или если за очень свободной строкой сразу следует очень узкая строка. Затем алгоритм найдет точки останова, которые минимизируют сумму квадратов плохости (включая штрафы) полученных строк. Если абзац содержит возможные точки останова, количество ситуаций, которые необходимо оценить наивно, равно . Однако, используя метод динамического программирования , сложность алгоритма можно снизить до (см. обозначение Big O ). Дальнейшие упрощения (например, отказ от проверки крайне маловероятных точек останова, таких как переносы в первом слове абзаца или очень переполненные строки) приводят к эффективному алгоритму, время работы которого равно , где – ширина строки. Аналогичный алгоритм используется для определения наилучшего способа разбить абзацы на две страницы, чтобы избежать висячих или потерянных строк (строк, которые появляются на странице отдельно, в то время как остальная часть абзаца находится на следующей или предыдущей странице). Однако в целом диссертация Майкла Пласса показывает, как проблема разрыва страниц может быть NP-полной из-за дополнительной сложности размещения цифр. [34] Алгоритм разрыва строк TeX был принят в нескольких других программах, таких как Adobe InDesign ( приложение для настольных издательских систем ) [35] и утилита командной строки GNU fmt Unix . [36]

Если для строки не найден подходящий разрыв строки, система попытается расставить слова через перенос. Первоначальная версия TeX использовала алгоритм расстановки переносов, основанный на наборе правил удаления префиксов и суффиксов слов, а также для принятия решения о том, следует ли вставлять разрыв между двумя согласными в шаблоне формы гласнаясогласнаясогласнаягласная (что возможно в большинстве случаев). [37] TeX82 представил новый алгоритм расстановки переносов, разработанный Фрэнком Ляном в 1983 году, для назначения приоритетов точкам останова в группах букв. Список шаблонов расстановки переносов сначала создается автоматически на основе набора слов с переносами (список из 50 000 слов). Если TeX должен найти приемлемые позиции переноса , например, в слове «энциклопедия» , он учтет все подслова расширенного слова «.энциклопедия». , где . — специальный маркер, обозначающий начало или конец слова. В список подслов входят все подслова длины 1 ( . , e , n , c , y и т. д.), длины 2 ( .e , en , nc и т. д.) и т. д., вплоть до подслова длины 14, то есть само слово, включая маркеры. Затем TeX просмотрит свой список шаблонов расстановки переносов и найдет подслова, для которых он рассчитал желательность расстановки переносов в каждой позиции. В случае с нашим словом можно сопоставить 11 таких узоров, а именно 1 в 4 л 4 , 1 цы, 1 д 4 и 3 а, 4 еди, е 3 диа, 2 я 1 а, опе 5 д, 2 п 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а) с небольшими ориентировочными числами (нечетными или четными), которые затем при необходимости можно заменить более конкретными шаблонами (например, 1 d 4 i 3 a). Эти шаблоны находят около 90% дефисов в исходном словаре; что еще более важно, они не вставляют никаких ложных дефисов. Кроме того, в формат Plain TeX включен список исключений (слов, для которых шаблоны не предсказывают правильную расстановку переносов); дополнительные могут быть указаны пользователем. [38] [ нужна страница ] [39]

Метафонт

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 год список содержит 440 записей, не считая модификации версии, которая должна быть сделана после его смерти в качестве окончательного изменения в TeX. [40] [41] Кнут предлагает денежные вознаграждения людям, которые находят и сообщают об ошибке в TeX. Вознаграждение за ошибку начиналось с 2,56 доллара США (один «шестнадцатеричный доллар» [42] ) и удваивалось каждый год, пока не было заморожено на нынешнем уровне 327,68 доллара. Кнут потерял сравнительно немного денег, поскольку было заявлено очень мало ошибок. Кроме того, известно, что получатели подставляют свой чек как доказательство того, что они обнаружили ошибку в TeX, а не обналичивают его. [43] [44]

Из-за того, что мошенники нашли отсканированные копии его чеков в Интернете и использовали их, чтобы попытаться опустошить его банковский счет, Кнут больше не рассылает настоящие чеки, но те, кто отправляет отчеты об ошибках, вместо этого могут получить кредит в Банке Сан-Серифе . [45]

Дистрибутивы и расширения

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 :

  1. Текстовый редактор TeXmacs — это научный текстовый редактор WYSIWYG - WYSIWYM , вдохновленный TeX и Emacs . Он использует шрифты Кнута и может генерировать выходные данные в формате TeX.
  2. Overleaf — это онлайн-редактор с частичным WYSIWYG, который предоставляет облачное решение для TeX, а также дополнительные функции совместного редактирования в реальном времени.
  3. LyX — это процессор документов WYSIWYM , который работает на различных платформах, включая:
    1. Линукс ,
    2. Microsoft Windows (более новые версии требуют Windows 2000 или более поздней версии)
    3. Apple macOS (с использованием неродного интерфейса Qt ).
  4. TeXShop (для macOS), TeXworks (для Linux, macOS и Windows) и WinShell (для Windows) представляют собой аналогичные инструменты и предоставляют интегрированную среду разработки (IDE) для работы с LaTeX или TeX. Для KDE /Qt Kile предоставляет такую ​​IDE.
  5. Texmaker — это эквивалент Kile в Pure Qt, с пользовательским интерфейсом, почти таким же, как у Kile.
  6. TeXstudio — это форк Texmaker с открытым исходным кодом (2009 г.) , который предлагает другой подход к настройке и функциям. Доступны бесплатные загружаемые двоичные файлы для Windows, Linux, macOS, OS/2 и FreeBSD.
  7. GNU Emacs имеет различные встроенные и сторонние пакеты с поддержкой TeX, основным из которых является AUCTeX .
  8. Код Visual Studio . Заметным расширением является LaTeX Workshop.
  9. Для Vim возможные плагины включают Vim-LaTeX Suite, [46] Автоматический TeX [47] и TeX-9. [48]
  10. Для Apache OpenOffice и LibreOffice расширения iMath и TexMaths могут обеспечивать математическую верстку TeX. [49] [50]
  11. Для MediaWiki расширение Math обеспечивает математическую верстку TeX, но код должен быть окружен тегом <math>.

Лицензия

Дональд Кнут несколько раз указывал [51] [52] [53] , что исходный код TeX был помещен в « общественное достояние », и он настоятельно поощряет модификации или эксперименты с этим исходным кодом. Однако, поскольку Кнут высоко ценит воспроизводимость вывода всех версий TeX, любая измененная версия не должна называться TeX или чем-то подобным до степени смешения. Чтобы обеспечить соблюдение этого правила, любая реализация системы должна пройти набор тестов, называемый тестом TRIP [54] , прежде чем ей будет разрешено называться TeX. Вопрос лицензии несколько сбивает с толку заявления, включенные в начало исходного кода TeX, [55] которые указывают, что «все права защищены. Копирование этого файла разрешено только в том случае, если... вы не вносите абсолютно никаких изменений в свой копия». Это ограничение следует интерпретировать как запрет на изменение исходного кода , пока файл называется tex.web . Примечание об авторских правах в начале tex.web (и mf.web) было изменено в 2021 году, чтобы прямо указать это. Эта интерпретация подтверждается позже в исходном коде, когда упоминается тест TRIP («Если эта программа будет изменена, полученная система не должна называться «TeX » »). [56] В начале 1980-х годов Американское математическое общество попыталось зарегистрировать товарный знак TeX. Это предложение было отклонено, поскольку в то время «TEX» (все заглавные буквы) было зарегистрировано компанией Honeywell для системы обработки текста « Text EXecutive ». [ нужна цитата ]

XML-публикация

Можно использовать TeX для автоматического создания сложной структуры данных XML. Различия в синтаксисе между двумя языками описания можно преодолеть с помощью TeXML . Таким образом, в контексте публикации XML TeX можно рассматривать как альтернативу XSL-FO . TeX позволил свести научные статьи по математическим дисциплинам к относительно небольшим файлам, которые можно было визуализировать на стороне клиента, что позволило обмениваться полностью отпечатанными научными статьями через ранний Интернет и развивающуюся Всемирную паутину, даже когда отправка больших файлов была затруднена. Это проложило путь к созданию хранилищ научных статей, таких как arXiv , с помощью которых статьи можно было «публиковать» без посредника-издателя. [57]

Произношение и написание

Разработчик задумал название TeX произносить как / t ɛ x / с последней согласной loch. [58] Буквы имени обозначают заглавные греческие буквы тау , эпсилон и хи , поскольку TeX — это аббревиатура от τέχνη ( ΤΕΧΝΗ technē ), греческого, обозначающего как «искусство», так и «ремесло», которое также является корень слова технический . Носители английского языка часто произносят его / t ɛ k / , как первый слог технического слова . Кнут советует набирать букву «Е» под базовой линией и уменьшать расстояние между буквами. Это сделано, как упоминает Кнут в своей книге TeXbook , чтобы отличить TeX от других названий систем, таких как TEX, процессор Text EXecutive (разработанный Honeywell Information Systems). [59] Фанаты любят создавать имена от слова «TeX» — например, TeXnician (пользователь программного обеспечения TeX), TeXhacker (программист TeX), TeXmaster (компетентный программист TeX), TeXhax и TeXnique . [60]

Сообщество

Логотип группы пользователей TeX

Известные организации в сообществе TeX включают группу пользователей TeX (TUG), которая в настоящее время издает TUGboat и ранее издавала журнал PracTeX Journal , охватывающий широкий спектр тем цифровой типографики , имеющих отношение к TeX. Deutschsprachige Anwendervereinigung TeX (DANTE) — это большая группа пользователей в Германии. Группа пользователей TeX была основана в 1980 году для образовательных и научных целей и представляет собой организацию для тех, кто интересуется типографикой и дизайном шрифтов и является пользователями системы набора текста TeX, изобретенной Кнутом. Группа пользователей TeX представляет интересы пользователей TeX по всему миру. Группа пользователей TeX издает журнал TUGboat три раза в год; [61] ДАНТЕ издает Die TeXnische Komödie  [de] четыре раза в год. Другие группы пользователей включают DK-TUG в Дании , GUTenberg  [fr] во Франции , GuIT в Италии , NTG в Нидерландах и UK-TUG в Великобритании ; группы пользователей совместно ведут полный список. [62]

Расширения

Смотрите также

Примечания

  1. ^ Незарегистрированный тип носителя.
  2. ^ Хотя troff по-прежнему остается форматировщиком документации UNIX по умолчанию.

Рекомендации

  1. ^ «Пер Ботнер (участник встреч TeX Project) обсуждает авторство» . Кнут определенно сам написал большую часть кода, по крайней мере, для переписывания Metafont, о чем я лично знаю. Однако некоторые из его учеников (например, Майкл Пласс и Джон Хобби) работали над алгоритмами, используемыми в TeX и Metafont.
  2. ^ Яннис Хараламбус. Шрифты и кодировки (перевод П. Скотта Хорна) . Пекин; Севастополь, Калифорния: O'Reilly Media, 2007, стр. 235.
  3. Годёль, Алексия (27 марта 2006 г.). «Реагируют ли разработчики с открытым исходным кодом на конкуренцию?: Пример (La)TeX». дои : 10.2139/ssrn.908946. S2CID  154052655. SSRN  908946. {{cite journal}}: Требуется цитировать журнал |journal=( помощь )
  4. ^ Кнут, Дональд Э. «Менее краткая биография». Домашняя страница Дона Кнута . Архивировано из оригинала 5 декабря 2016 года . Проверено 9 января 2017 г.
  5. ^ Кнут, Дональд Э. «Памятная лекция Киотской премии, 1996 г.» (PDF) . Киотская премия . Архивировано из оригинала (PDF) 27 января 2018 года . Проверено 18 августа 2018 г.
  6. Кнут, Дональд Эрвин, TEXDR.AFT, заархивировано из оригинала 12 января 2015 г.
  7. ^ Кнут и Пласс 1981, стр. 144.
  8. ^ Кнут, Дональд Э. Кнут встречается с членами NTG , NTG: MAPS. 16 (1996), 38–49. Перепечатано как «Вопросы и ответы», III , глава 33 « Цифровой типографии» , стр. 648.
  9. ^ Кнут, Дональд Э. Новые версии TeX и METAFONT, TUGboat 10 (1989), 325–328; 11 (1990), 12. Перепечатано как глава 29 журнала Digital Typography .
  10. ^ Хёниг, Алан (1998). TeX Unbound: стратегии LaTeX и TeX для шрифтов, графики и многого другого. Издательство Оксфордского университета. ISBN 978-0-19-509686-6.
  11. ^ "Выпуск TeX 21" . Проверено 5 января 2022 г.
  12. ^ ab «Какое будущее у TeX?». Часто задаваемые вопросы по TeX . 27 мая 2018 г. Архивировано из оригинала 28 апреля 2019 г. . Проверено 21 июля 2019 г.
  13. ^ Кнут, Дональд Э. Будущее TeX и METAFONT, журнал NTG MAPS (1990), 489. Перепечатано как глава 30 журнала Digital Typography , стр. 571.
  14. ^ «Разработка TeX Engine». Часто задаваемые вопросы по TeX . 24 мая 2018 г. Архивировано из оригинала 28 апреля 2019 г. . Проверено 21 июля 2019 г.
  15. ^ Аб Кнут, Дональд Э; Маккей, Пьер (1987), «Смешивание текстов с письмом справа налево с текстами с письмом слева направо» (PDF) , TUGboat , 8 : 14–25. Перепечатано как Бигелоу, Чарльз; Дэй, Дональд (1983). "Глава 4". Цифровая типография . Том. 249. с. 106. Бибкод : 1983SciAm.249b.106B. doi : 10.1038/scientificamerican0883-106. {{cite book}}: |journal=игнорируется ( помощь )
  16. ^ Биб 2004, с. 10.
  17. ^ Кнут, Дональд Э (1996), «Вопросы и ответы I», TUGboat , 17 : 7–22. Перепечатано как Бигелоу, Чарльз; Дэй, Дональд (1983). «Глава 31». Цифровая типография . Том. 249. с. 598. Бибкод : 1983SciAm.249b.106B. doi : 10.1038/scientificamerican0883-106. {{cite book}}: |journal=игнорируется ( помощь )
  18. ^ Кнут, Дональд Э (1996), «Вопросы и ответы II», TUGboat , 17 : 355–367. Перепечатано как Бигелоу, Чарльз; Дэй, Дональд (1983). «Глава 32». Цифровая типография . Том. 249. стр. 616–617. Бибкод : 1983SciAm.249b.106B. doi : 10.1038/scientificamerican0883-106. {{cite book}}: |journal=игнорируется ( помощь )
  19. ^ Джеффри, Алан (1990), «Списки во рту TeX» (PDF) , TUGboat , 11 (2): 237–45
  20. ^ «CTAN: Пакет pdftex» . ctan.org . Проверено 21 июля 2019 г.
  21. ^ Кнут 1984, с. 9.
  22. ^ Plain TeX (исходный код), CTAN
  23. ^ «Что такое пакеты AMS (amsmath и т. д.)?». Часто задаваемые вопросы по TeX . 27 мая 2018 г. Архивировано из оригинала 28 апреля 2019 г. . Проверено 21 июля 2019 г.
  24. ^ Кнут 1984, с. 127, гл. 16: Ввод математических формул.
  25. ^ Слейтер, Роберт (1989), Портреты в кремнии, MIT Press, стр. 349, ISBN 9780262691314
  26. ^ Сиропулос, Апостол; Цсоломитис, Антонис; Софрониу, Ник (2003), Цифровая типографика с использованием LaTeX, Springer, стр. 93, ISBN 9780387952178
  27. ^ Кнут, Дональд Э (1996), «Вопросы и ответы II», TUGboat , 17 : 355–367. Перепечатано как Бигелоу, Чарльз; Дэй, Дональд (1983). «Глава 32». Цифровая типография . Том. 249. стр. 620–624. Бибкод : 1983SciAm.249b.106B. doi : 10.1038/scientificamerican0883-106. {{cite book}}: |journal=игнорируется ( помощь )
  28. ^ Кнут, Дональд Э. Набор текста конкретной математики, TUGboat 10 (1989), стр. 31–36, 342. Перепечатано как глава 18 журнала Digital Typography , стр. 367–378.
  29. ^ Вьет, Ульрик. «Математическая верстка в TEX: хорошо, плохо, ужасно» (PDF) . Архивировано из оригинала (PDF) 20 января 2022 года.
  30. ^ «Высококачественное редактирование и отображение математического текста в Office 2007».
  31. ^ "ЛайнСервисис".
  32. ^ «Карта» (PDF) . ntg.nl. _
  33. ^ Барнетт, Майкл П. (1965), Компьютерный набор текста: эксперименты и перспективы , Кембридж , Массачусетс : MIT Press
  34. ^ Кнут и Пласс 1981.
  35. ^ «Дональд Э. Кнут», TUGboat (интервью), Advogato , 21 : 103–10, 2000, заархивировано из оригинала 22 января 2009 г. , получено 26 декабря 2005 г.
  36. ^ «4.1 fmt: Переформатировать текст абзаца», Руководство по основным утилитам GNU (GNU coreutils) , Проект GNU, 2016
  37. ^ Лян 1983, с. 3.
  38. ^ Лян 1983.
  39. ^ «Приложение H: Расстановка переносов», The TeXbook , стр. 449–55.
  40. ^ Кнут, Дональд Э. Список обновлений листинга TeX82, опубликованный в сентябре 1982 года, доступен на CTAN .
  41. ^ Кнут, Дональд Э. Приложение к статье «Ошибки TeX», доступной на CTAN, последнее изменение в январе 2003 г.
  42. ^ Кнут, Дональд Э. «Кнут: Часто задаваемые вопросы». www-cs-faculty.stanford.edu/~knuth/ . Архивировано из оригинала 6 марта 2008 года . Проверено 28 ноября 2019 г. .
  43. ^ Кара Платони (май – июнь 2006 г.). «Любовь с первого байта». Стэнфордский журнал . Архивировано из оригинала 4 июня 2006 года.
  44. ^ Группа пользователей TeX. «История TeX». туг.орг . Проверено 28 ноября 2019 г. .
  45. ^ Кнут, Дональд Э (2008). «Кнут: Последние новости – финансовое фиаско». www-cs-faculty.stanford.edu/~knuth/ . Архивировано из оригинала 29 ноября 2019 года . Проверено 29 ноября 2019 г.
  46. ^ Vim‐LaTex, SourceForge
  47. ^ Автоматический плагин TeX, стартовая панель[ постоянная мертвая ссылка ]
  48. ^ TeX-9, Vim.org
  49. ^ Домашняя страница TexMaths, free.fr
  50. ^ iMath, SourceForge
  51. ^ Бигелоу, Чарльз; Дэй, Дональд (1983). «Будущее TeX и METAFONT». Цифровая типография . Том. 249. с. 572. Бибкод : 1983SciAm.249b.106B. doi : 10.1038/scientificamerican0883-106. {{cite book}}: |journal=игнорируется ( помощь )
  52. ^ Кнут, Дональд Э (1986), «Компьютеры и набор текста» (PDF) , TUGboat , 7 : 95–98
  53. ^ Бигелоу, Чарльз; Дэй, Дональд (1983). «Глава 28» (PDF) . Цифровая типография . Том. 249. с. 560. Бибкод : 1983SciAm.249b.106B. doi : 10.1038/scientificamerican0883-106. {{cite book}}: |journal=игнорируется ( помощь )
  54. ^ «Путешествие», CTAN (TeX) (исходный код)
  55. ^ Кнут, Дональд Э (1986), TeX: Программа , компьютеры и набор текста, том. Б, Ридинг, Массачусетс: Аддисон-Уэсли, ISBN 0-201-13437-3
  56. ^ Открытый исходный код: Технологии и политика Фади П. Дик, Джеймс А. М. Макхью «Общественное достояние», стр. 227 (2008 г.)
  57. ^ О'Коннелл, Хит (2002). «Физики преуспевают благодаря безбумажным публикациям». Hep Lib.web . 6 :3.arXiv : физика /0007040 .
  58. ^ Кнут, Дональд Э. The TeXbook , гл. 1: Название игры, с. 1.
  59. ^ Кнут, Дональд Э. Логотип TeX в различных шрифтах, TUGboat 7 (1986), 101. Перепечатано как глава 6 журнала Digital Typography .
  60. ^ "Жаргонный файл — TeX" . Проверено 23 июля 2016 г.
  61. ^ «Сообщения группы пользователей TeX». туг.орг . Группа пользователей TeX . Проверено 15 марта 2019 г.
  62. ^ «Все группы пользователей TeX» . туг.орг . Группа пользователей TeX . Проверено 17 ноября 2019 г.

Источники

Внешние ссылки