Python3.7.9+Pylatex1.4.1:NoEscape生成TeX时\times丢失反斜杠求助
Pylatex NoEscape插入公式丢失反斜杠的解决办法
问题根源:Python普通字符串中,单个反斜杠
\会被当作转义字符处理,直接写\times时,\x会被解析为无效转义并忽略,最终传入NoEscape的字符串已经变成了imes,导致生成的tex文件出错。两种可行解决方式:
- 使用Python原始字符串:在公式字符串前添加
r前缀,让Python不解析字符串内的转义字符:from pylatex import NoEscape, Document doc = Document() # 原始字符串保留反斜杠 formula = NoEscape(r"$g(10)=1\times 3\times 7\times 9 = 189$") doc.append(formula) doc.generate_pdf("output", clean_tex=False) - 手动转义反斜杠:给每个
\再加一个反斜杠,写成\\times,确保Python解析后保留单个反斜杠:formula = NoEscape("$g(10)=1\\times 3\\times 7\\times 9 = 189$")
- 使用Python原始字符串:在公式字符串前添加
效果验证:采用上述任意一种方式后,生成的
.tex文件中会正确保留\times,编译PDF时公式显示正常。
内容的提问来源于stack exchange,提问作者Ajanix123
相关产品推荐
相关产品推荐

