PyLatex如何添加自定义usepackage

时间:2017-01-29 22:09:14

标签: python

我想知道将自定义使用包添加到pylatex的命令。我已经尝试过使用document.append函数和document.preamble.append函数,但我仍然遇到错误。

# encoding=utf-8

from pylatex import Document, Section, Subsection, Command
from pylatex.utils import italic, NoEscape
from pylatex.package import Package
from pylatex import Document, Section, UnsafeCommand
from pylatex.base_classes import Environment, CommandBase, Arguments





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: $&#{}')


if __name__ == '__main__':
# Basic document
doc = Document('basic')
fill_document(doc)

doc.generate_pdf(clean_tex=False)
doc.generate_tex()

# Document with `\maketitle` command activated
doc = Document()

#packages = [Package('caratula',"showRevisiones")]


#doc.append(Package("caratula"))

doc.data.append(Package("caratula"))

doc.preamble.append(Command('begin', 'document'))
doc.preamble.append(Command('materia', 'Materia del Apunte'))
doc.preamble.append(Command('tipoapunte', str('Tipo de Apunte (Teorico o       Practico)')))
doc.preamble.append(Command('fecha', NoEscape(r'\today')))
doc.preamble.append(Command('tema', NoEscape(r'Tema')))
doc.preamble.append(Command('subtema', NoEscape(r'Subtema')))
doc.preamble.append(Command('autor',["Apellido", "Nombre2", "002/01","email2@dominio.com"]))
doc.preamble.append(Command('revision',["05/01/2015", "Apellido, Nombre2", "em"]))
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


import subprocess
subprocess.Popen("basic_maketitle2.tex",shell=True)

1 个答案:

答案 0 :(得分:7)

自定义包是什么意思?如果你指的是你创建的 .sty 文件,那么我不知道(可能是相同的),但如果你只是想添加一个标准的包,那么就像。

doc.packages.append(Package('tikz'))

适合我(从pylatex导入 Package 之后)。

干杯。