Проекты*

LaTeX-редактор

Работа призёра открытой городской научно-практической конференции «Инженеры будущего» по направлению «Инженеры» в секции «Информационные технологии, программирование, прикладная математика, социальный инжиниринг» среди работ учащихся 10–11 классов

Направление работы: Информационные технологии, Программирование, Прикладная математика
Авторы работы: ГБОУ Школа № 171
Предметы: Информатика
Классы: 10 класс
Мероприятия: Открытая городская научно-практическая конференция «Инженеры будущего» по направлению «Инженеры» 2022 года

Актуальность

LaTeX – набор макрорасширений (или макропакет) системы компьютерной вёрстки TeX. Основная цель – упростить вёрстку текста, особенно в документах с математическими формулами, и облегчить набор документов в типографии. Чаще всего он используется для средних и крупных технических или научных документов.

Фундаментальной концепцией LaTeX является идея стиля документа, которая реализуется выбором надлежащего базового стиля и группы корректирующих стилей, дополняющих базовый.

Работа LaTeX разделена на две части. К первой части отнесены компоненты, реализующие основные концепции LaTeX – систему команд форматирования и набор файлов описания стиля, автоматизирующих подготовку общепринятых типов научных публикаций. Система позволяет готовить публикации на английском, русском, французском, немецком, итальянском и испанском языках с возможностью перехода с одного языка на другой в любом фрагменте текста. Эта часть программного обеспечения написана самим автором LaTeX или при его непосредственном участии, является устоявшейся и будет совместимой с любыми новыми версиями LaTeX.

Ко второй части отнесены те процедуры, которые в настоящее время не являются установившимися, особенно в русскоязычной версии системы: подготовка алфавитного указателя, построение библиографии из библиографических баз данных, ввод внешней графики, коллекция шрифтов и работа с ней.

Цель

Создать редактор для работы с кодом LaTeX.

Задачи

  1. Стилизация кода LaTeX для улучшения читабельности.
  2. Подсветка элементов кода LaTeX для удобства пользования.
  3. Возможности открытия, изменения, исправления и сохранения файлов с расширением .tex и сохранение .pdf.
  4. Настройка шрифтов, тем интерфейса, подсветки, shortcut-ов, сниппеты и т. п.
  5. Предпросмотр написанного кода перед сохранением для самопроверки.

Оснащение и оборудование, использованное при создании работы

  • Компьютер с установленным ПО (среда Qt Designer, язык программирования Python)

Описание

В процессе работы над проектом был создан редактор, который содержит 4 класса кодов.

  1. LatexEditor (главное окно приложения)

Самый большой и сложный класс. В нём же реализованы меню, Toolbar. Самый главный объект, над которым происходит работа, – self.plain_text, экземпляр класса QPlainTextEdit. Важная часть окна – Toolbar и меню сверху. В них располагаются основные функции: сохранение в разных форматах, удаление текущей темы, добавление новой темы, открытие SliderWindow и т. п.

  1. AddThemeWindow (окно для добавления темы)

Содержит 4 кнопки для выбора цвета. При нажатии открывается стандартный диалог выбора цвета. После этого цвет кнопки меняется на выбранный. Чтобы текст на кнопке оставался виден, его цвет меняется на негативный данному (каждый канал заменяется на 255 минус текущее значение).

  1. SliderWindow (окно со слайдером для изменения размеров экранов превью и кода) Окно со слайдером для изменения размеров экранов превью и кода. Для того, чтобы изменения были заметны сразу после закрытия окна, в методе closeEvent делается self.parent.resize(width + 1, height).
  2. SnippetsSettingsWindow (окно для настройки сниппетов)

Работает с базой данных с помощью QTableWidget. Заменяет, удаляет, добавляет сниппеты. Символы табуляции и перевода строки заменены на TAB и NEXT соответственно, т. к. они не записываются в базу данных SQLite.

Цели и задачи проекта автором были выполнены в полном объёме.

Результаты работы/выводы

1.         Наука. Latex – удобный инструмент для реализации математической графики, данный редактор позволяет в полной мере пользоваться его возможностями).

2.         Образование. С помощью этого редактора можно эффективно вести уроки математики, физики, химии и других предметов.

3.         Сохранение информации. Редактор позволяет использовать LaTeX для конспектирования информации и её сохранения для дальнейшего пользования.

Перспективы использования результатов работы

В перспективе автор планирует развитие следующих направлений проекта:

  1. увеличение количества функций;
  2. улучшение дизайна;
  3. добавление большего количества цветов в подсветку кода.