Я довольно новичок в Django и LaTeX, поэтому я надеюсь, что кто-то уже делал что-то подобное раньше:
Я пытаюсь создать приложение Django, которое может читать файл LaTeX,Извлеките все переменные (вещи этой формы: "\newcommand{\StartDate}{January 1, 2018}
") и поместите их как пары ключ / значение в словарь, с которым я могу работать внутри Django.
Идея состоит в том, что каждая переменная вФайл LaTeX начинается со значения заполнителя.Я буду создавать динамическую форму, которая использует словарь для создания поля / значений, и пусть пользователь заменит значение заполнителя реальным.После того, как пользователь установил все значения, я хотел бы иметь возможность записать эти новые значения обратно в файл LaTeX и сгенерировать из него pdf.
Я пробовал регулярные выражения, но натолкнулся напроблема в том, что некоторые из «переменных» будут содержать, например, блоки списков, подобных LaTeX.Я также посмотрел на TexSoup, который выглядит очень многообещающим, но я пока не смог до конца разобраться.Вот раздел из преамбулы примера файла LaTeX, подобного тому, с которым я буду иметь дело:
%% Project Name
\newcommand{\projectName}{Project Name}
%% Start and End dates
\newcommand{\startDate}{January 1, 2018}
\newcommand{\finDate}{December 31, 2018}
%% Name of User
\newcommand{\userName}{aUser}
% What tasks will be a part of this process?
\newcommand{\tasks}{
\begin{itemize}[noitemsep,topsep=0pt]
\item Planning of \projectName{} on \startDate{}
\item Construction of \projectName{}
\item Configuration of \projectName{} by \userName{} on \finDate{}
\end{itemize}
}
Используя TexSoup, я могу вытянуть файл LaTex в объект, найти все экземпляры'\ newcommand' в объект генератора, который я могу перебрать:
from TexSoup import TexSoup
soup = TexSoup(open('slatex.tex'))
newcommands = list(soup.find_all('newcommand'))
Я знаю, что это вытягивает каждую '\ newcommand' в свой собственный элемент и поддерживает форматы должным образом, потому что я легко могу их распечататьпо одному.
Я застрял, пытаясь выяснить, как извлечь '\ newcommand' из каждого элемента, получить имя элемента в ключ словаря и значение в значение словаря.Я хотел бы думать, что TexSoup выставляет тех с каким-то атрибутом или методом, но я ничего не могу найти об этом.Если это не так, я снова вернусь к регулярным выражениям?