将 LaTeX 美元符号转换为 \( \)

phi*_*ole 3 regex latex

我需要将包含带有美元符号符号的数学的纯文本文件转换$myformula$\(myformula\)符号。但是我希望双美元符号$$myformula$$替换。

到目前为止,我都是手动完成此操作,找到用开头语法替换所有美元符号之前的空格\(,用关闭语法替换所有其他美元符号\),并手动纠正剩余的错误(例如行开头、双美元符号) )。我认为我可以使用正则表达式命令通过终端转换多个文件,这会大大加快速度。

下面是它的外观和应该的样子的示例:

前:

这是$a+b_{k}+c$句子。

另一个测试$s_\text{hi}+3$。

$x=y$ 在那里。

$$y=z$$ 为什么?

$$z=z$$

这可能是 ($3^2$, $x_1$)。

后:

This is \(a+b_{k}+c\) sentence. Another test \(s_\text{hi}+3\). \(x=y\) there. $$y=z$$ why? $$z=z$$ This could be (\(3^2\), \(x_1\)).

谢谢!

Haz*_*erd 5

正则表达式([^\$])\$([^\$]+)\$([^\$])
正则表达式:(^|[^\$])\$([^\$]+)\$([^\$]|$)
替换$1\\($2\\)$3

3 个捕获组相当混乱,但它似乎完全满足了需要。

首先捕获不是 的任何字符$,然后是由 包裹的任何$字符,然后是另一个不是 的字符$,并将其全部替换为用括号包裹的第二组,由第一组和第三组包裹。

编辑:第一个捕获组还应该检查^文件的开头,第三组应该检查$文件的结尾。新的演示中有一些示例,这些示例将在我的第一个声明中被打破。

不好的演示
好的演示