栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

用python脚本生成pdf-latex

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

用python脚本生成pdf-latex

您可以首先将模板tex文件定义为字符串:

content = r'''documentclass{article}begin{document}...textbf{huge %(school)s \}vspace{1cm}textbf{Large %(title)s \}...end{document}'''

接下来,使用

argparse
接受课程,标题,名称和学校的值:

parser = argparse.ArgumentParser()parser.add_argument('-c', '--course')parser.add_argument('-t', '--title')parser.add_argument('-n', '--name',) parser.add_argument('-s', '--school', default='My U')

将args粘贴进去只需要做一些字符串格式化

content

args = parser.parse_args()content%args.__dict__

将内容写到文件cover.tex之后,

with open('cover.tex','w') as f:    f.write(content%args.__dict__)

您可以

subprocess
用来打电话
pdflatex cover.tex

proc = subprocess.Popen(['pdflatex', 'cover.tex'])proc.communicate()

您也可以

lpr
在此处添加命令,以将打印添加到工作流程中。

删除不需要的文件:

os.unlink('cover.tex')os.unlink('cover.log')

然后可以这样调用脚本:

make_cover.py -c "Hardest Class Ever" -t "Theoretical Theory" -n Me

放在一起

import argparseimport osimport subprocesscontent = r'''documentclass{article}begin{document}... P & B textbf{huge %(school)s \}vspace{1cm}textbf{Large %(title)s \}...end{document}'''parser = argparse.ArgumentParser()parser.add_argument('-c', '--course')parser.add_argument('-t', '--title')parser.add_argument('-n', '--name',) parser.add_argument('-s', '--school', default='My U')args = parser.parse_args()with open('cover.tex','w') as f:    f.write(content%args.__dict__)cmd = ['pdflatex', '-interaction', 'nonstopmode', 'cover.tex']proc = subprocess.Popen(cmd)proc.communicate()retpre = proc.returnpreif not retpre == 0:    os.unlink('cover.pdf')    raise ValueError('Error {} executing command: {}'.format(retpre, ' '.join(cmd)))os.unlink('cover.tex')os.unlink('cover.log')


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/617644.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号