Введение
Текстовый процессор с открытым исходным кодом
GNU TeXmacs — это научный текстовый процессор и компонент системы компьютерной верстки проекта GNU. Изначально он возник как вариант GNU Emacs с функциональностью TeX, однако не имеет общего кода с этими программами, используя при этом шрифты TeX. Программа написана и поддерживается Жорийсом ван дер Ховеном и командой разработчиков. Программа позволяет создавать структурированные документы с использованием WYSIWYG-интерфейса. Пользователи могут создавать собственные стили документов. Редактор предоставляет алгоритмы высококачественной компьютерной верстки, а также шрифты TeX и другие шрифты для публикации документов профессионального качества.
Предыстория
Как структурированный редактор WYSIWYG и система подготовки документов, TeXmacs схож с более ранними редакторами структурированных документов, такими как Interleaf (первый выпуск 1985), Framemaker (1986), SoftQuad Author/Editor (1988), Lilac, lt=Grif (1991) и Thot; велись также академические исследования в области интерактивного редактирования сложных типографских конструкций, представленных в логической форме. В 2000-х и 2010-х годах возросший интерес к интерактивному редактированию структурированного текста способствовал разработке программ, предназначенных для исследователей в области гуманитарных наук; примером является CWRC Writer – визуальный XML-редактор, обеспечивающий "редактирование, близкое к WYSIWYG, и обогащение научных текстов содержательными визуальными представлениями разметки". С другой стороны, в сфере редактирования и подготовки документов, программой для визуального взаимодействия со структурированными текстами, написанными на LaTeX, является LyX, которая не стремится к редактированию WYSIWYG, а к визуализации структуры (WYSIWYM).
Особенности
Как и во многих редакторах WYSIWYG (таких как Microsoft Word), авторы редактируют документ на экране, который должен быть напечатан в виде аналогичной бумажной копии. Цель TeXmacs – предоставить редактор WYSIWYG, который, тем не менее, позволяет создавать правильно структурированные документы с эстетически привлекательным оформлением. TeXmacs не является интерфейсом к LaTeX, но документы TeXmacs можно преобразовать в TeX или LaTeX. LaTeX также можно импортировать (в определенной степени), предусмотрены импорт из и экспорт в HTML, Scheme, Verbatim и XML; экспорт в HTML можно стилизовать с помощью CSS (начиная с версии 1.99.14). Также имеется конвертер для MathML, и TeXmacs может выводить PDF и PostScript для печати. TeXmacs поддерживает математические формулы, таблицы, изображения, перекрестные ссылки и библиографические ссылки. Его можно использовать в качестве интерфейса к ряду систем компьютерной алгебры, таких как Maxima, FriCAS и SageMath, и он может интегрировать часть их вывода в процесс набора. TeXmacs также поддерживает язык расширений Scheme под названием Guile для настройки программы и разработки расширений. В нем также реализован режим презентации и небольшой редактор технических чертежей, а также есть планы по развитию в полноценный научный офисный пакет с функциями электронных таблиц. Реализация электронных таблиц доступна начиная с версии 1.99.12; электронные таблицы в TeXmacs могут использовать плагины (например, Python или Maxima) для вычисления значений ячеек. В настоящее время TeXmacs работает на большинстве Unix-подобных архитектур, включая Linux, FreeBSD, Cygwin, Haiku и macOS. Помимо версии для Cygwin, существует и нативный порт для Microsoft Windows.
Редактор TeXmacs
В редакторе TeXmacs структура и внешний вид документа представлены одновременно; структура становится наглядной для пользователя благодаря выделению логических блоков документа во вложенных фокусных рамках с цветовой индикацией, отображаемой в зависимости от положения курсора. Детальное описание структуры в окрестностях курсора приводится в нижней панели окна редактора и может быть точно выбрано нажатием клавиш со стрелками влево и вправо.
Математическая типография
TeXmacs облегчает ввод математических формул, сопоставляя последовательности нажатий клавиш символам. Например, символ можно ввести, набрав . Некоторые символы не имеют такого представления (например, ). Их можно ввести с помощью клавиши (например, для получения нажатия клавиш ). Этот способ ввода с клавиатуры отличается от других редакторов формул, которые обычно предоставляют меню выбора и щелчка для этой задачи.
Some symbols have no such representation ( for instance). These can be input with key (e. g. for the key presses are This keyboard based entry differs from other formulae editors, that tend to provide point and click menus for this task.
Обработка партий
Можно использовать TeXmacs как пакетный процессор (что является обычным режимом работы LaTeX), используя виртуальный буфер кадра X, чтобы избежать открытия нежелательных окон при обработке. Например, команда
генерирует PDF-файл "article.pdf" из документа TeXmacs "article.tm".
Настройка текста и управление документами
Процесс типографического набора преобразует деревья TeXmacs в блоки. Вычисление деревьев TeXmacs происходит путем сведения примитивов, то есть путем вычисления применений макросов. Примитивы типографического набора разработаны для обеспечения высокой скорости и встроены в редактор; отрисовка многих примитивов может быть настроена с помощью встроенных переменных окружения; язык таблиц стилей позволяет пользователям определять новые примитивы как макросы, основанные на встроенных примитивах. TeXmacs использует глобальный алгоритм для переноса строк (аналогичный TeX) и, кроме того, глобальный алгоритм для переноса страниц; алгоритм переноса страниц учитывает плавающие объекты (рисунки, таблицы, сноски) и многоколоночный контент.
Контроль документов
Документы можно управлять с помощью встроенной макросистемы и Guile Scheme. Возможно настраивать меню редактора и сочетания клавиш, а также программно воздействовать на дерево документов.
Макросы TeXmacs
Макросы TeXmacs предоставляют возможность структурированного ввода (как в TeX/LaTeX) и сразу же форматируются, при этом сохраняя редактируемые поля ввода. Они записываются в исходном коде, хотя WYSIWYG-редактор может помочь в их создании, преобразуя визуальные структуры в их синтаксис.
Контроль документов через схему
Схема встроена в TeXmacs посредством GNU Guile; сам редактор может управляться таким образом: это позволяет переключаться между заданным вводом в систему и соответствующим выводом, который органично интегрируется в документ.