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

在渲染到 LaTeX 数据之前将过滤器应用于 jinja2 模板

如何解决在渲染到 LaTeX 数据之前将过滤器应用于 jinja2 模板

我想在 jinja 将数据呈现为由 LaTeX 生成器读取的数据之前对数据应用过滤器,对于上下文,这就是问题:

我有一个 python 函数 safe_tex:

def safe_tex(text: str) -> str:
    special_chars = ['&','%','$','_','{','}','#']
    for char in special_chars:
        text = text.replace(char,"\\" + char)
    return text

这样做有效的是转义任何已定义的字符,以便在呈现并放入 LaTeX 时,我可以将特殊字符用作常规字符串。

目前我已经能够通过使用 jinja 的过滤器功能在模板中做到这一点,如下所示:

\begin{document}

Company:    {{company.name|safe_tex}}

\end{document}

渲染到:

\begin{document}

Company:    AT\\&T

\end{document}

这对于公司名称是 AT&T 来说很好用(因为我需要为 LaTeX 转义“&”字符以生成正确的文档)但是我如何在我的 Python 环境中执行此操作以避免必须每次都在模板中执行?

(LaTeX 模板可以达到数千行,因此,我想避免在每个可能出现特殊字符的地方都应用过滤器)

非常感谢:)

乔希

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