我有一个托管在Heroku上的Django应用程序。其中,我正在使用一个由LaTeX编写的视图来即时生成pdf,并安装了Heroku LaTeX Buildpack使其正常工作。我的LaTeX视图如下。
def pdf(request):
context = {}
template = get_template('cv/cv.tex')
rendered_tpl = template.render(context).encode('utf-8')
with tempfile.TemporaryDirectory() as tempdir:
process = Popen(
['pdflatex', '-output-directory', tempdir],
stdin=PIPE,
stdout=PIPE,
)
out, err = process.communicate(rendered_tpl)
with open(os.path.join(tempdir, 'texput.pdf'), 'rb') as f:
pdf = f.read()
r = HttpResponse(content_type='application/pdf')
r.write(pdf)
return r
当我在cv.tex
中使用现有的文档类之一(例如\documentclass{article}
)时,一切正常,但我想使用一个名为res
的自定义文档类。通常我认为有两种使用自定义文档类的选项。
将类文件(在本例中为
res.cls
)放置在与.tex
文件相同的文件夹中。对于我来说,这将放置在我的应用程序的模板文件夹中。我尝试过这样做,但pdflatex
找不到类文件。(可能是因为它没有在模板文件夹中运行,而是在临时目录中运行?有没有办法将类文件复制到临时目录中?)将类文件放置在具有结构
localtexmf/tex/latex/res.cls
的另一个文件夹中,并使用此问题的答案中概述的方法使pdflatex
知道它。我尝试在Heroku上使用heroku run bash
运行CLI指令,但它无法识别initexmf
,而且我不太确定如何指定相关目录。
我如何告诉pdflatex
在哪里找到类文件?