stringtranslate.com

ТеХ

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

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

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

История

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

Кнут впервые увидел результат работы высококачественной цифровой системы набора текста и заинтересовался цифровой типографикой. 13 мая 1977 года он написал себе записку, в которой описал основные особенности TeX. [7] Он планировал закончить ее в свой творческий отпуск в 1978 году, но так получилось, что язык не был « заморожен » (готов к использованию) до 1989 года, более чем десять лет спустя. Гай Стил оказался в Стэнфорде летом 1978 года, когда Кнут разрабатывал свою первую версию TeX. Когда Стил вернулся в Массачусетский технологический институт той осенью, он переписал ввод/вывод TeX ( I/O ) для работы под управлением операционной системы Incompatible Timesharing System (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 различных символов для текстового ввода недостаточно для поддержки иностранных языков; основным изменением в версии 3.0 TeX является возможность работать с 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] Систему можно разделить на четыре уровня: на первом символы считываются из входного файла и им назначается код категории (иногда называемый «catcode» для краткости). Комбинации обратной косой черты (на самом деле, любого символа категории ноль), за которыми следуют буквы (символы категории 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.

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

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

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

Привет, мир \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, потому что набор математики традиционно считался дорогим. [26] Математика отображения (математика, представленная по центру на новой строке) похожа, но использует $$ вместо одного символа $. Например, вышеприведенное с квадратной формулой в отображаемой математике:

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

Аспекты

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

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

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

Поскольку основной целью языка TeX является высококачественный набор для издателей книг, Кнут уделил много внимания правилам интервалов для математических формул. [27] [28] Он взял три группы работ, которые он считал стандартами совершенства для математической типографики: книги, набранные издательством Addison-Wesley Publishing house (издателем The Art of Computer Programming ) под руководством Ганса Вольфа; выпуски математического журнала Acta Mathematica, датируемые примерно 1910 годом; и копию Indagationes Mathematicae , голландского математического журнала. Кнут внимательно изучил эти печатные работы, чтобы отсортировать и найти набор правил для интервалов. [29] Хотя TeX предоставляет некоторые основные правила и инструменты, необходимые для указания правильного интервала, точные параметры зависят от шрифта, используемого для набора формулы. Например, интервал для шрифтов Computer Modern Кнута был точно настроен на протяжении многих лет и теперь установлен; Но когда Кнут впервые использовал другие шрифты, такие как AMS Euler , пришлось определить новые параметры интервала. [30]

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

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

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

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

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

Метафонт

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

Из-за того, что мошенники нашли отсканированные копии его чеков в Интернете и использовали их, чтобы попытаться опустошить его банковский счет, Кнут больше не рассылает настоящие чеки, но те, кто отправляет отчеты об ошибках, могут вместо этого получить кредит в The Bank of San Serriffe . [48]

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

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 , поддерживающее Unicode расширение для TeX, которое включает среду выполнения Lua с обширными зацепками в базовые процедуры и алгоритмы TeX. Большинство расширений TeX доступны бесплатно в CTAN , Comprehensive TeX Archive Network.

Редакторы

Существует множество редакторов, предназначенных для работы с 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 такую ​​IDE предоставляет Kile .
  5. Texmaker — это эквивалент Kile на чистом Qt, пользовательский интерфейс которого практически такой же, как у Kile.
  6. TeXstudio — это форк Texmaker с открытым исходным кодом (2009) , который предлагает другой подход к конфигурируемости и функциям. Бесплатные загружаемые двоичные файлы предоставляются для Windows, Linux, macOS, OS/2 и FreeBSD.
  7. GNU Emacs имеет различные встроенные и сторонние пакеты с поддержкой TeX, основным из которых является AUCTeX .
  8. Visual Studio Code . Известное расширение — LaTeX Workshop.
  9. Для Vim возможные плагины включают Vim-LaTeX Suite, [49] Automatic TeX [50] и TeX-9. [51]
  10. Для Apache OpenOffice и LibreOffice расширения iMath и TexMaths могут обеспечить математический набор TeX. [52] [53]
  11. Для MediaWiki расширение Math обеспечивает математический набор текста TeX, но код должен быть заключен в <math>тег.

Лицензия

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

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

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

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

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

Сообщество

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

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

Расширения

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

Примечания

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

Ссылки

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

Источники

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