python-3.x - 如何使用 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']
这是一个开始,但我需要重新附加乳胶数学分隔符:我想知道是否可以让他们从一开始就进入?
解决方案
我终于用代码做到了:
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,所以欢迎任何改进!
推荐阅读
- javascript - 为什么执行不会在 await (async/await JS) 处停止?
- java - 如何从 Cypher 的路径中排除节点?
- javascript - 在 Javascript 中多次使用反引号
- r - R中按邮政编码(因子)比较均值(int)
- python - 如何对属于同一类的所有对象的参数之一求和
- c# - 具有枚举值和索引的 ASP.NET Core MVC 代码优先复杂关系
- ios - Swift 相当于 Ruby 的 Concurrent::Event?
- postgresql - postgres - UPDATE 被另一个表上的 SELECT 锁定
- excel - 匹配包含数组中第 N 个最大值的工作表名称的问题
- html - 将页脚推到短页面的底部