我想使用 Latex 用我的 Django 模板创建 PDF 文件。
但是,当它生成 PDF 文件时,某些字符的编码方式不正确,尤其是 '(撇号):Latex 停止编译,如果我忽略该错误,则输出为 '。
我是法国人,所以我的 Python 文件是 UTF-8,我的数据库是 UTF8-general-CI,我将这些包用于 Latex: [utf8]{inputenc} [T1]{fontenc} [francais]{babel} {lmodern}
全部法语口音都生成了,所以不知道问题出在哪里?
任何的想法?
这是我的观点:
# -*- coding: utf-8 -*-
...
def results_contact(request, checkup_id):
...
title = get_object_or_404(Checkup, pk=checkup_id).name
...
template_file = 'activities/results.tex'
t = loader.get_template(template_file)
context = Context({
...
"title": title,
...
})
...
f.write(smart_str(t.render(context)))
...
return HttpResponseRedirect('/download_file/upload/checkups/%s.pdf' % basename)
还有我的模板:
\documentclass[11pt]{lettre}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[francais]{babel}
\usepackage{lmodern}
...
\begin{document}
\begin{letter}{...}
\name{My name}
\address{My address}
\lieu{My city}
...
\conc{ {{ title }} } %here is my variable
...
\end{letter}
\end{document}
例如,如果 title=Visite d'Adam,输出将是
Objet : Visite d'Adam
这是日志:
! Misplaced alignment tab character &.
<argument> Visite d&
##39;embauche
l.35 \conc{ Visite d'Adam }
?
最佳答案
这是 automatic HTML escaping 的结果.由于您没有生成 HTML,您可以 turn this feature off :
{% autoescape off %}
\documentclass[11pt]{lettre}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[francais]{babel}
\usepackage{lmodern}
...
\begin{document}
\begin{letter}{...}
\name{My name}
\address{My address}
\lieu{My city}
...
\conc{ {{ title }} }
...
\end{letter}
\end{document}
{% endautoescape %}
关于Django 模板和 latex ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20194758/