Написати програму, яка аналізуватиме TeX-файл, що містить створені користувачем власні команди (і оголошення (описи), і використання), та розкривати використання цих команд у відповідності з наведеними оголошеннями, за тими ж правилами, за якими це зробив би сам (La)TeX. Програма має обробляти (розкривати) команди користувача, задані за допомогою \def та задані за допомогою \newcommand та \renewcommand, а також середовища користувача, задані за допомогою \newenvironment та \newenvironment.
> >
> > І вхідним(и) файл(ом/ами), і вихідним файлом програми має бути TeX-файл, але вихідний повинен містити лише ті команди, яким не було дано означення користувача (або які були згадані в переліку виключень, див. далі).
> >
> > При проектуванні програми обов’язково врахувати, що команди користувача можуть бути вкладеними, тобто одні команди користувача можуть використовувати інші команди користувача. Можна обмежитися випадком без рекурсії.
> >
> > При проектуванні програми обов’язково врахувати можливість, що у різні моменти часу (у різних частинах документу) одне й те саме ім’я може мати різні означення.
> >
> > При проектуванні програми обов’язково врахувати, що TeX зберігає тексти команд у нерозгорнутому вигляді, розгортаючи вже під час використання, згідно поточних на момент використання означень інших команд.
> >
> > При проектуванні програми обов’язково врахувати, що усі означення користувача за замовчуванням (при відсутності \global) є локальними, тобто після закінчення чергового блоку (фігурних дужок) всі означення, задані всередині нього, завершуються (командам повертається той смисл, який був перед початком цього блоку).
> >
> > Програма повинна вміти підключати файли (виконувати TeX-команду \input).
> >
> > Програма повинна дозволяти (але не вимагати) задавати два переліки виключень: перелік команд користувача, які не треба розкривати (хоча їхні означення й зустрічаються у тексті), та перелік команд користувача, які треба розкривати не згідно означень заданих у тексті, а згідно означень заданих у додатковому файлі. Ці переліки мають записуватися у файли, імена цих файлів вказуватися за допомогою спеціальних ключів у параметрах командного рядка.
> >
> > Програма повинна працювати як фільтр (читати вхідн(ий/і) TeX-файл(и) і створювати вихідний TeX-файл, керування та налаштування опцій здійснюється за допомогою параметрів командного рядка). Додатково слід написати просту програму-оболонку, яка забезпечуватиме інтуїтивно зрозумілий графічний інтерфейс, просту довідку, тощо. При цьому програма-оболонка повинна викликати основну програму (а не дублювати її роботу).
Доброго дня. Я можу написати код на пайтоні, що буде розкривати код на латесі так, як Ви хочете.
Вважайте, що ми напишемо свій компілятор для латеху, але під пайтоном)
Hello,
Professional developers with similar expertise here. We are posting our bid as an expression of interest and appreciate further discussion in private message board. We are waiting for your message to communicate further in this regard so i can provide you with the detailed proposal with pricing and timeline.
Маю великий досвід роботи з C++, Linux, MYSQL
З LaTex знайомий слабо, тому більша частина часу піде на вивчення принципів його роботи
Завдання цікаве, буду радий його виконати