微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

有没有办法通过python编译latex代码?

如何解决有没有办法通过python编译latex代码?

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 中提取数据并将其发送到乳胶代码。在乳胶代码中,它会格式化,然后创建一个 pdf。但是我必须去texworks并运行代码才能获得pdf。 问题:有没有办法从上面的 python 代码中做到这一点?

解决方法

根据this的回答,可以使用以下代码用python编译latex程序。

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

NVM 我使用了子进程,结果很干净。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。