首页 > 解决方案 > 如何使用 Python 在数学和文本环境之间拆分 LaTeX 文件

问题描述

为了仅对文本部分进行进一步的转换,我想拆分一个关于环境性质的乳胶文件:例如,如果我有:

latex_text = """A latex example
$$ \int = 0$$
with different
\[\sum \] 
\[\sum \]
math delimiters $\\cos(x)$.
"""

我想获得这样的东西:

["A latex example","$$ \int = 0$$","with different","\[\sum \]", "\[\sum \]","math delimiters","$\\cos(x)$","."]

re.split(r'([\\][[]|[\\][]]|[$][$]|[$])',latex_text),我有

['A latex example\n', '$$', ' \\int = 0', '$$', '\nwith different\n', '\\[', '\\sum ', '\\]', ' \n', '\\[', '\\sum ', '\\]', '\nmath delimiters ', '$', '\\cos(x)', '$', '.\n']

这是一个开始,但我需要重新附加乳胶数学分隔符:我想知道是否可以让他们从一开始就进入?

标签: python-3.xlatexre

解决方案


我终于用代码做到了:

res_prem = re.split(r'([\\][[]|[\\][]]|[$][$]|[$])',latex_text)


delim = {r'\[',r'$$',r'$'}

res = []
i = 0
while i < len(res_prem):
    u = res_prem[i]
    if u in delim:
        compact = res_prem[i] + res_prem[i+1] + res_prem[i+2]
        res.append(compact)
        i = i + 3
    else:
        res.append(u)
        i += 1

不确定它是否真的是pythonic,所以欢迎任何改进!


推荐阅读