#python #latex #pylatex
#python #Латекс #pylatex
Вопрос:
Я пытаюсь запустить точный код отсюда, чтобы получить пример работы pylatex.
В каталоге, в котором я работаю, я скопировал и вставил ссылку:
from pylatex import Document, Section, Subsection, Command
from pylatex.utils import italic, NoEscape
import pdflatex
def fill_document(doc):
"""Add a section, a subsection and some text to the document.
:param doc: the document
:type doc: :class:`pylatex.document.Document` instance
"""
with doc.create(Section('A section')):
doc.append('Some regular text and some ')
doc.append(italic('italic text. '))
with doc.create(Subsection('A subsection')):
doc.append('Also some crazy characters: $amp;#{}')
if __name__ == '__main__':
# Basic document
doc = Document('basic')
fill_document(doc)
doc.generate_pdf(clean_tex=False,compiler='pdflatex')
doc.generate_tex()
# Document with `maketitle` command activated
doc = Document()
doc.preamble.append(Command('title', 'Awesome Title'))
doc.preamble.append(Command('author', 'Anonymous author'))
doc.preamble.append(Command('date', NoEscape(r'today')))
doc.append(NoEscape(r'maketitle'))
fill_document(doc)
doc.generate_pdf('basic_maketitle', clean_tex=False)
# Add stuff to the document
with doc.create(Section('A second section')):
doc.append('Some text.')
doc.generate_pdf('basic_maketitle2', clean_tex=False)
tex = doc.dumps() # The document as string in LaTeX syntax
Я постоянно получаю ошибку:
Traceback (most recent call last):
File "test.py", line 26, in <module>
doc.generate_pdf(clean_tex=False,compiler='pdflatex')
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.7/site-packages/pylatex/document.py", line 280, in generate_pdf
'Either specify a LaTex compiler '
pylatex.errors.CompilerError: No LaTex compiler was found
Вы можете увидеть некоторые вещи, которые я пробовал, основываясь на предложениях других людей:
1. если я просто открою консоль python в этом каталоге и наберу:
from pylatex import Document, Section, Subsection, Command
from pylatex.utils import italic, NoEscape
import pdflatex
ошибок нет, что означает, что импорт был успешным.
-
Я видел еще одну рекомендацию о том, что perl должен быть установлен, и это:
localhost:test1 $ perl —version: возвращает информацию о perl
-
Я указал компилятор, как было предложено в другом месте в StackOverflow: ‘doc.generate_pdf(clean_tex= False,compiler =’pdflatex’)’
Что еще я могу сделать? Конечная цель состоит в том, что я сгенерировал строки и изображение с помощью python, и я хочу поместить их как в PDF, так и в формат, на случай, если есть лучшая альтернатива, которую кто-нибудь может предложить. P.s. Я знаю об обмене стеками tex, но мне особенно нужен способ для latexвзаимодействие с python, вот почему я спросил здесь.
Комментарии:
1. вы нашли решение этой проблемы? Я сталкиваюсь с той же проблемой
2. К сожалению, я этого не сделал, извините, но мне очень интересно его найти!
Ответ №1:
Очевидно, вам нужно будет запустить эти две зависимости apt-get
sudo apt-get install latexmk
sudo apt-get install -y texlive-latex-extra
также установите pdflatex
с помощью pip
pip install pdflatex
затем используйте
doc.generate_pdf(compiler='pdflatex')
Комментарии:
1. Я мог бы установить
pdflatex
через pip, но я не могу установитьlatexmk
: я не могу сделатьapt-get install
так, как мне нужно, чтобы запустить это безsudo
. Однако ошибка гласит, что либо укажите компилятор LaTeX, либо убедитесь, что у вас установлен latexmk или pdfLaTex .latexmk
Действительно ли это необходимо? Как я могу обойти это безsudo
?
Ответ №2:
Для меня, на CentOS 8, мне пришлось запустить:
pip install pylatex
sudo dnf install texlive
sudo dnf install texlive-lastpage
Тогда это сработало для меня.
Ответ №3:
У меня была такая же ошибка, и моя проблема заключалась в том, что я забыл добавить pdflatex (через MiKTeX) в свой путь к среде в Windows. Мой код работал после перезагрузки моего терминала. Кстати, я не установил Perl.