在渲染到 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 (将#修改为@)