gpt4 book ai didi

python - 我如何用
$...$
之类的东西替换 LaTeX $...$ 和 $$...$$ 符号?

转载 作者:太空宇宙 更新时间:2023-11-03 14:25:48 25 4
gpt4 key购买 nike

我目前遇到的问题是 Jekyll 不能很好地与 Markdown 和 LaTeX 配合使用。所以我有很多关于 $\frac{some}{latex}$ 的文章或 $$\int^e_v {en} more$$ .

如何替换 $...$通过 <span>$...$</span>$$...$$通过 <div>$$..$$</div> ?

使这项任务变得困难的是:

  • ...可能包括换行符。事实上,...可能包含任何内容,除了 $
  • 第一个$<span>$ 取代, 但第二个 $</span>
  • $...$$$...$$可以在同一文档中使用(但始终至少由一个空格分隔)

编辑:我刚刚看到我还需要一些转义。所以这个任务还有一个难度:

  • \$不应与上述两种情况中的任何一种相匹配。

最佳答案

知道您要求使用正则表达式,但您会为您提到的需要手动处理的边缘情况而头疼。 (如果发布了其他正则表达式解决方案,请将此答案与他们的进行比较)。有了这个,可以很简单地更改双和单 TeX 标记的行为并处理 TeX 代码中的转义。这是一个非常简单的 pyparsing 示例,可以满足您的需求:

from pyparsing import *

D1 = QuotedString("$",escChar='\\')
D2 = QuotedString("$$",escChar='\\')

div_action = lambda x: "<div>$%s$</div>"%x[0]
span_action = lambda x: "<span>$$%s$$</span>"%x[0]
D1.setParseAction(span_action)
D2.setParseAction(div_action)
others = Word(printables)
grammar = OneOrMore(D2 | D1 | others).leaveWhitespace()

还有一个用例:

S = "$\LaTeX$ is worth $$x=\$3.40$$"
print grammar.transformString(S)

给予:

<span>$\LaTeX$</span> is worth <div>$$x=$3.40$$</div>

关于python - 我如何用 <div>$...$</div> 之类的东西替换 LaTeX $...$ 和 $$...$$ 符号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20845778/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com