簡體   English   中英

有沒有辦法通過 python 編譯 latex 代碼?

[英]Is there a way to compile latex code through the python?

import requests
import json
import jinja2
from PIL import Image
from jinja2 import Template
import os
from latex import build_pdf
latex_jinja_env = jinja2.Environment(
    block_start_string = '\BLOCK{',
    block_end_string = '}',
    variable_start_string = '\VAR{',
    variable_end_string = '}',
    comment_start_string = '\#{',
    comment_end_string = '}',
    line_statement_prefix = '%%',
    line_comment_prefix = '%#',
    trim_blocks = True,
    autoescape = False,
    loader = jinja2.FileSystemLoader(os.path.abspath('.'))
)
url = 'https://api.unsplash.com/search/photos/?query='
inpt = 'hat'
access = ''
url = url +inpt+'&'+access
r = requests.get(url)
js = json.loads(r.text)
js = js["results"]
counter = 1
ids = list()
for item in js:
    image = requests.get(item["urls"]["regular"])
    file = open("image"+str(counter)+'.png', 'wb')
file.write(image.content)
file.close()
counter+=1
ids.append(item['id'])

d_ids = dict()
for item in ids:
    url1 = 'https://api.unsplash.com/photos/' + item +'?'+ access
    r1 = requests.get(url1)
    js = json.loads(r1.text)
    if js['exif'] == 'None':
        break
    d_ids[item] = js['exif']

f_list =list()
counter = 1 
for item in d_ids:
    im = 'image' + str(counter)
    f_list.append([im,d_ids[item]['make'],d_ids[item]['model'],d_ids[item]['exposure_time'],d_ids[item]['aperture']])
    counter+=1
template = latex_jinja_env.get_template('imgview.tex')
kinstarva = template.render(data = f_list,inpt =inpt)
latex_jinja_env.compile('imgview.tex')
s = open('final.tex', 'w')
s.write(kinstarva)
s.close()

這就是我上面的代碼:我要做的是從 api 中提取數據並將其發送到 Z25F7E525B5C0641E1EB1FB3BDEBEB15B5Z 代碼。 在 latex 代碼中,它將格式化和不格式化並創建 pdf。 但我必須 go 到 texworks 並運行代碼以獲取 pdf。 問:有沒有辦法從上面的 python 代碼中做到這一點?

根據這個答案,您可以使用以下代碼編譯 latex 程序與 python。

import os  
os.system("pdflatex mylatex.tex")

NVM 我使用了子進程,結果很干凈。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM