Способ конвертировать латексный файл в PDF только с помощью Python? (без необходимости что-либо устанавливать локально)

Я создаю математическое программное обеспечение с помощью PyQt и хотел бы предоставить пользователям результат в файле, написанном на LaTex, а также его скомпилированную версию в формате PDF. Однако я не могу найти способ сделать это. Все решения, которые я видел, требуют установки компилятора локально.

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

Этот вопрос касается не отображения математического набора в Qt, а создания отчета о документе в LaTex, а также простого способа его визуализации в PDF.

Вам нужно будет включить в программу латексный компилятор.

Gaberocksall 18.07.2024 09:42

Нет, нет никакого способа. Вам нужно будет установить библиотеку Python, что нарушает правило ничего не устанавливать.

Elerium115 18.07.2024 10:09

Ваш вопрос касается только набора уравнений или набора полных документов в LaTeX? Если только уравнения, то, возможно, вы могли бы использовать подход, аналогичный описанному здесь . Короче говоря, он использует MathJax для рендеринга уравнений в QWebEngineView. Я думаю, это также возможно с KaTeX. Нет необходимости в локальной установке LaTeX, но необходимые библиотеки JavaScript необходимо будет загрузить с соответствующих URL-адресов. QWebEngineView обеспечивает printToPdf() вывод PDF.

simon 18.07.2024 10:12

Вопрос в полных документах! Мы обрабатываем некоторые уравнения и после этого предоставляем отчет. Поскольку наши пользователи используют наше программное обеспечение в своих исследованиях, мы считаем, что было бы неплохо создать документ таким образом, чтобы они могли просто копировать и вставлять его в свои статьи, а также легко (и удобно) визуализировать его в формате .PDF.

Lavínia Beghini 18.07.2024 14:36

Благодарю за разъяснение. В этом случае, боюсь, я согласен с другими комментаторами: если вы хотите печатать в LaTeX, вам нужно самостоятельно установить среду LaTeX (если вы не хотите, чтобы ваши пользователи устанавливали ее отдельно).

simon 18.07.2024 14:44
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
5
78
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

LaTeX использует сложный механизм набора текста. Вот почему он используется — наборный механизм профессионального уровня. Что-то должно сделать эту верстку. Один из способов — «просто» переопределить этот движок на Python самостоятельно. Возможно, вам нужна только часть LaTeX. Возможно, вы сможете преобразовать синтаксис LaTeX во что-то более простое, например, в уценку, и преобразовать его в PDF.

Для набора математических данных вам может подойти катекс, как упомянуто в комментарии.

Возможно, ваш вариант использования позволяет вам создать архитектуру программного обеспечения клиент-сервер и выполнить компиляцию на сервере. LaTeX.Online имеет докер-контейнер для создания API.

Другие упоминали традиционный способ: просто упаковать зависимость.

Я не могу ожидать, что пользователи установят компилятор

Вот почему вам следует установить его вместе с остальной частью вашей программы.

MiKTeX обеспечивает бесшумную установку.

В TeX live есть аналогичные опции

Другие вопросы по теме