0

我的目标是创建一个动态表,我将从数据库中获取值并使用迭代在表中创建多行。我目前不知道是否可以使用“pylatex”。我现在关心的是使用 python 在我的 pdf 中创建一个数学方程。

跟随您可以一瞥我正在尝试做的事情。

from pylatex import Document, Section, Subsection, Tabular
from pylatex import Math, TikZ, Axis, Plot, Figure, Matrix, Alignat
from pylatex.utils import italic, bold
...
...
with doc.create(Subsection('Math Equations')):
        doc.append('Attempt to create dynamic table i.e creating dynamic rows depending on the number of rows in Database, and displaying those values in PDF Table. \n \n')
        with doc.create(Tabular('|p{3cm}|p{7cm}|p{3cm}|')) as table:
            table.add_hline()
            table.add_row((bold('ID'), bold('Equation'), bold('Result')))
            table.add_hline()
            table.add_row('1',Math(inline=False, data="\sum(a+b)", escape=None),'Result')
            table.add_hline()
            for x in range(0, 3):
                table.add_row((bold(x), bold(x+1), bold(x+2)))
                table.add_hline()

在此处输入图像描述

期望:

在此处输入图像描述

我还尝试过在乳胶中使用“pythontex”,使用 \sum_(a+b) 很容易创建方程式进行求和,但创建动态表似乎很困难或不可能。

期待您的建议。:)

4

1 回答 1

0

我在使用 pylatex 时很快学到的一个技巧是使用 NoEscape 将原始 LaTeX 嵌入到文档中,当 pylatex 不足时:

from pylatex import Document, Section, Subsection, Tabular, NoEscape
from pylatex import Math, TikZ, Axis, Plot, Figure, Matrix, Alignat
from pylatex.utils import italic, bold
...
...
with doc.create(Subsection('Math Equations')):
    doc.append('Attempt to create dynamic table i.e creating dynamic rows depending on the number of rows in Database, and displaying those values in PDF Table. \n \n')
    with doc.create(Tabular('|p{3cm}|p{7cm}|p{3cm}|')) as table:
        table.add_hline()
        table.add_row((bold('ID'), bold('Equation'), bold('Result')))
        table.add_hline()
        table.add_row('1', NoEscape(r"$$\sum(a+b)$$"), 'Result')
        table.add_hline()
        for x in range(0, 3):
            table.add_row((bold(x), bold(x+1), bold(x+2)))
            table.add_hline()

这里我使用显示方程,你也可以使用内联公式以及单个 $。

于 2021-03-24T13:50:13.867 回答