GNU TeXmacs

Текстовый процессор с открытым исходным кодом
GNU TeXmacs
Разработчик(и)Проект GNU
Стабильный релиз
2.1.4 [1]  / 11 марта 2024 г.
Репозиторий
  • svn.savannah.gnu.org/viewvc/texmacs/
Написано вС++
Операционная системаLinux , Windows , macOS , Unix-подобные [2]
Платформаx86 , x86-64
ТипТекстовый процессор
ЛицензияGPL-3.0 или более поздняя версия [3]
Веб-сайтwww.texmacs.org

GNU TeXmacs — научный текстовый процессор и компонент набора текста проекта GNU . Он возник как вариант GNU Emacs с функциональными возможностями TeX , хотя и не разделяет код с этими программами, используя шрифты TeX. [4] Он написан и поддерживается Йорисом ван дер Хувеном и группой разработчиков. [5] Программа создает структурированные документы с пользовательским интерфейсом WYSIWYG . Пользователь может создавать новые стили документов. Редактор предоставляет высококачественные алгоритмы набора текста , а также шрифты TeX и другие шрифты для публикации профессионально выглядящих документов.

Фон

Как структурированный WYSIWYG-редактор и система подготовки документов, TeXmacs похож на более ранние структурированные редакторы документов, такие как Interleaf (первый выпуск 1985), Framemaker (1986), SoftQuad Author/Editor (1988), [6] Lilac, [7] Grif  [fr] (1991), [8] и Thot; [9] также проводились академические исследования в области интерактивного редактирования сложных типографских конструкций, представленных логически. [10] [11]

В 2000-х и 2010-х годах интерес к интерактивному редактированию структурированного текста стимулировал разработку программ, предназначенных для ученых-гуманитариев; примером этого является CWRC-Writer, визуальный XML-редактор с «близким к WYSIWYG редактированием и обогащением научных текстов осмысленными визуальными представлениями разметки» [12] .

С другой стороны, в мире редактирования и подготовки документов существует программа для визуального взаимодействия со структурированными текстами, написанными в LaTeX,LyX , которая нацелена не на редактирование WYSIWYG, а на визуальное представление структуры ( WYSIWYM ).

Функции

Скриншот, показывающий математические формулы и курсивный шрифт. Голубая рамка фокуса окружает внутреннюю среду (среду формулы), в которой находится курсор, в то время как едва заметная серая рамка окружает другой активный тег (среду теоремы).

Как и во многих редакторах WYSIWYG (например, Microsoft Word ), авторы манипулируют документом на экране, который должен быть распечатан на похожей бумажной копии. Цель TeXmacs — предоставить редактор WYSIWYG, который, тем не менее, позволяет писать правильно структурированные документы с эстетически приятными результатами набора. TeXmacs не является интерфейсом для LaTeX [13], но документы TeXmacs можно преобразовать как в TeX, так и в LaTeX. LaTeX также можно импортировать (в некоторой степени), и предусмотрен как импорт, так и экспорт в HTML , Scheme, Verbatim и XML ; [14] экспорт HTML можно стилизовать с помощью CSS (начиная с версии 1.99.14). Также есть конвертер для MathML , и TeXmacs может выводить PDF и PostScript для печати. ​​[15]

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 структура и внешний вид документа представлены одновременно; [16] структура становится очевидной для пользователя путем окружения логических единиц документа вложенными фокусными рамками, несущими цветовые подсказки, которые отображаются в соответствии с движением курсора. [17] Подробное описание структуры вблизи курсора приводится в нижнем колонтитуле окна редактора, точно выбираемое с помощью нажатий стрелок влево-вправо. [16] В редакторе можно переключаться между текстовым режимом и режимом редактирования исходного текста, а также присутствует поддержка композиции макросов; редактор исходного текста поддерживает синтаксис . [18]

Математическая типографика

TeXmacs облегчает ввод математических формул, отображая последовательности нажатий клавиш на символы. Например, символ можно ввести, набрав . {\displaystyle \Стрелка вправо} =>

Некоторые символы не имеют такого представления ( например). Их можно вводить с помощью клавиш (например, для нажатий клавиш . Этот ввод с помощью клавиатуры отличается от других редакторов формул, которые, как правило, предоставляют меню «укажи и щелкни» для этой задачи. [19] {\displaystyle \Стрелка вверх } Tab ↹ {\displaystyle \Стрелка вверх } =>Tab ↹Tab ↹

Пакетная обработка

TeXmacs можно использовать как пакетный процессор (это обычный режим работы LaTeX ), используя виртуальный фреймбуфер X , чтобы избежать открытия нежелательных окон во время обработки. Например, команда

$ xvfb-run texmacs --convert article.tm article.pdf --quit

создает PDF- файл «article.pdf» из документа TeXmacs «article.tm».

Формат TeXmacs

Все документы TeXmacs или фрагменты документов можно рассматривать как деревья (концепция дерева существует также в языке разметки SGML , которому формат Texmacs подобен). Например, дерево

представляет собой формулу

х + у + 1 2 + у + з {\displaystyle x+y+{\frac {1}{2}}+{\sqrt {y+z}}}

(здесь написано с помощью разметки TeX, используемой Википедией) и преобразовано собственным движком набора TeXmacs в набранную формулу, вставленную здесь как изображение:

Деревья TeXmacs представлены в файлах TeXmacs как строки, а в редакторе TeXmacs как наборное представление документа вместе с его интерактивным поведением. [20] В экранном представлении дерева TeXmacs перемещение курсора представляет собой движение внутри дерева. На диске существуют три представления формата TeXmacs: собственное представление, представление XML и представление с Scheme S-выражениями; представление Scheme полезно для взаимодействия с программами Scheme.

Набор текста и контроль документов

Процесс набора преобразует деревья TeXmacs в блоки. [21] Оценка деревьев TeXmacs происходит путем сокращения примитивов, то есть путем оценки макроприложений. Примитивы набора разработаны так, чтобы быть очень быстрыми, и встроены в редактор; рендеринг многих примитивов можно настраивать с помощью встроенных переменных среды; язык таблиц стилей позволяет пользователям писать новые примитивы как макросы поверх встроенных примитивов.

TeXmacs использует глобальный алгоритм «разрыва строк» ​​(похожий на алгоритм TeX ) и, кроме того, использует глобальный алгоритм «разрыва страниц»; алгоритм разрыва страниц учитывает плавающие объекты (рисунки, таблицы, сноски) и многоколоночное содержимое.

Контроль документов

Документы могут контролироваться через собственную макросистему и через Guile-Scheme. Можно настраивать меню редактора и сочетания клавиш, а также программно воздействовать на дерево документа.

Макросы TeXmacs

Макросы TeXmacs предоставляют средства структурированного ввода (как в TeX/LaTeX), и они немедленно набираются, в то же время сохраняя редактируемые поля ввода. Они написаны в исходном коде, хотя редактор WYSIWYG может помочь в их составлении посредством перевода визуальных структур в их синтаксис. [22]

Контроль документов через схему

Scheme встроен в TeXmacs через GNU Guile ; сам редактор может управляться следующим образом: [21] меню и сочетания клавиш могут быть настроены. Команды Scheme могут быть вызваны интерактивно внутри документов TeXmacs, могут быть вызваны из командной строки и из макросов TeXmacs. Деревья TeXmacs могут быть переданы в Scheme в разных формах: как «пассивные деревья» (удобно для непосредственного управления содержимым с помощью стандартных процедур Scheme в списках), как «активные деревья» (отслеживают положение дерева внутри глобального дерева документов и могут использоваться для программного изменения документов) и в «гибридном» представлении.

Графика

Графические объекты также являются частью формата TeXmacs и могут программно управляться из Scheme. Пример графики TeXmacs, созданной в сеансе TeXmacs Scheme, показан ниже вместе с сеансом, который сгенерировал изображение. Изображения, созданные программно в сеансе Scheme, также можно редактировать с помощью внутреннего редактора чертежей, поскольку они вставляются в документ в виде дерева; Скрипты Scheme также могут быть выполнены с помощью макроса externTeXmacs — в этом случае в документе доступен только набранный материал, и прямое редактирование невозможно (изменения должны быть сделаны в коде Scheme).

Scheme ] ( define pi ( acos -1 )) ;; Функция для определения точки в графическом формате TeXmacs с использованием двух координат Scheme ] ( define ( pt x y ) ' ( point , ( number->string x ) , ( number->string y ))) ;; Установить точки Схема ] ( определить xC ( - ( * 2 ( cos ( / pi 3 ))))) Схема ] ( определить yC ( * 2 ( sin ( / pi 3 )))) Схема ] ( определить pA ( pt -2 0 )) Схема ] ( определить pB ( pt 2 0 )) Схема ] ( определить pC ( pt xC yC )) Схема ] ( определить tA ( pt -2.3 -0.5 )) Схема ] ( определить tB ( pt 2.1 -0.5 )) Схема ] ( определить tC ( pt ( - xC 0.2 ) ( + yC 0.2 ))) ;; Сгенерировать графическую схему ] ( stree->tree ' ( with "gr-geometry" ( tuple "geometry" "400px" "300px" "center" ) ( graphics ( with "color" "blue" ( text-at ( TeXmacs ) , ( pt -0.55 -0.75 ))) ( with "color" "black" ( arc , pA , pC ,pB )) ( с "цветом" "черный"                                                                                            ( линия , pA , pB )) ( с "цветом" "красный" ( линия , pA , pB , pC )) ( с "цветом" "черный" ( текст-в "A" , tA )) ( с "цветом" "черный" ( текст-в "B" , tB )) ( с "цветом" "черный" ( текст-в "C" , tC )))))                           

Поддерживаемые бэкэнды

Сессия TeXmacs от Maxima

TeXmacs имеет бэкэнды, поддерживающие множество технологий.

Встраивание редактируемого вывода плагина

Выходные данные плагина могут быть встроены в документы TeXmacs с помощью «исполняемых переключателей»; [23] таким образом можно переключаться между заданным входом в систему и соответствующим выходом, который органично вписывается в документ.

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

Ссылки

  1. Йорис ван дер Хувен (2 апреля 2024 г.). «TeXmacs 2.1.4» . Проверено 2 апреля 2024 г.
  2. ^ "Загрузка и установка TeXmacs (проект FSF GNU)". Texmacs.org . Получено 29-05-2010 .
  3. ^ "GNU General Public License". Texmacs.org . Получено 27.12.2010 .
  4. ^ Часто задаваемые вопросы (проект FSF GNU)
  5. ^ "Авторы GNU TeXmacs" . Получено 2019-09-23 .
  6. ^ Браун, Сьюзан (2015-03-01). «Исправление редактора». Interdisciplinary Science Reviews . 40 (1): 78–94. Bibcode :2015ISRv...40...78B. doi : 10.1179/0308018814Z.000000000106 . ISSN  0308-0188. S2CID  144086542.
  7. ^ Брукс, К. П. (июнь 1991 г.). «Сирень: редактор документов с двумя представлениями». Computer . 24 (6): 7–19. doi :10.1109/2.86832. ISSN  0018-9162. S2CID  2239112.
  8. ^ "GriF SGML Editor" . Получено 2020-11-27 .[ постоянная мертвая ссылка ]
  9. ^ "Редактор структурированных документов Thot" . Получено 2020-11-26 .
  10. ^ Структурированная модель документа, Клемент Шин Тай-Инь, докторская диссертация, кафедра вычислительной техники, Имперский колледж Лондона, 1989 г.
  11. ^ «Редактирование графических объектов с использованием процедурных представлений», Пол Асенте, докторская диссертация, кафедра компьютерных наук, Стэнфордский университет (1987)
  12. ^ CWRC-Writer: XML-редактор в браузере, G. Rockwell et al., Digital Humanities 2012 Conference
  13. ^ ван дер Хувен, Йорис (21.08.2006). "GNU TeXmacs: научная платформа редактирования" (PDF) . www.texmacs.org . стр. 7f . Получено 16.01.2016 . Поскольку TeXmacs не является интерфейсом LaTeX, из этого следует, что мы можем гарантировать корректные преобразования только для (довольно большого) подъязыка LaTeX.
  14. ^ ван дер Хувен, Йорис; Зайдль, Андреас (2011). «Часто задаваемые вопросы». www.texmacs.org . Проверено 16 января 2016 г.
  15. ^ ван дер Хувен, Йорис (2012). «Добро пожаловать в GNU TeXmacs». www.texmacs.org . Проверено 16 января 2016 г.
  16. ^ ab van der Hoeven, Joris. «GNU TeXmacs, свободный, структурированный, wysiwyg и технический текстовый редактор» (PDF) . Cahiers Gutenberg . 39–40: 39–50.
  17. ^ "Руководство TeXmacs. 2.2. Набор структурированного текста" (PDF) . Получено 20.11.2020 .
  18. ^ "Руководство пользователя GNU TEXMACS; 11.2. Отображение файлов стилей и пакетов" (PDF) . Получено 27.11.2020 .
  19. ^ См. руководство пользователя: «Ввод математических символов».
  20. ^ ван дер Хувен, Йорис. «Формат TeXmacs» . Проверено 10 августа 2019 г.
  21. ^ ab M. Gubinelli, The Guile in TeXmacs, презентация на Guile and Guix Days в Страсбурге, 21–22 июня 2019 г. pdf Получено 21 сентября 2019 г.
  22. ^ "Руководство TeXmacs; 11.1 Написание простого пакета стилей" (PDF) . Получено 27.11.2020 .
  23. ^ "Руководство пользователя TeXmacs, раздел "Обход презентации"" (PDF) . Получено 10.11.2020 .
  • Официальный сайт
  • Архивы списков рассылки texmacs-users
  • Форум
Взято с "https://en.wikipedia.org/w/index.php?title=GNU_TeXmacs&oldid=1180340217"