首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用命令行工具(如perl或sed )替换LaTex $分隔符?

如何使用命令行工具(如perl或sed )替换LaTex $分隔符?
EN

Stack Overflow用户
提问于 2018-05-10 02:59:17
回答 2查看 127关注 0票数 2

我有一堆木星笔记本,上面写着用LaTex写的方程式。我知道我可以将笔记本转换成HTML,如下所示。

代码语言:javascript
运行
复制
jupyter nbconvert --to html --template basic test.ipynb test.html

但是,保留LaTex标记。例如,如果我有$y = w'x$,那么它仍然显示在输出HTML中。我希望将生成的HTML导入WordPress (基本上是复制/粘贴),但是WordPress像这个$latex y = w'x$那样分隔LaTex。

如何使用perlsed (或其他任何东西)将$y = w'x转换为$latex y = w'x$

我知道我可以编写一个程序来完成这个任务,但我认为这太过分了,因为我确信这些可用的命令行工具可以做到这一点。此外,在Windows和Mac/Linux上都可以使用的任何工具都是额外的,因为我在这两种环境类型上都工作,并且不想使用类似于*nix的环境来进行这种转换(不过,Windows现在确实有Windows Linux子系统,所以我想如果它只是一个Linux工具的话,那就可以了)。

我试图从这个sed (在Mac上)修改这个帖子表达式,但是它没有工作。

代码语言:javascript
运行
复制
sed -e ' /\$\$/{s/\$\$/{\$latex }/;:a;N;/\$\$/!ba;s/\$\$/{\$}/};s/^\(\$\)\(.*\)\(\$\)$/{\$latex }\2{\$}/' test.html

意外EOF (待定})

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-05-10 03:17:03

您可以使用以下sed命令:

代码语言:javascript
运行
复制
sed -e 's/\$\([^$]*\)\$/$\\latex \1$/g'

输入:

代码语言:javascript
运行
复制
$ echo -e "abc \$y = w'x$ toto\n123 \$u = v'w$ xyz"
abc $y = w'x$ toto
123 $u = v'w$ xyz

输出:

代码语言:javascript
运行
复制
echo -e "abc \$y = w'x$ toto\n123 \$u = v'w$ xyz" | sed -e 's/\$\([^$]*\)\$/$\\latex \1$/g'
abc $\latex y = w'x$ toto
123 $\latex u = v'w$ xyz

解释:

在查找和替换模式中使用sed,它将通过下面的regex:\$\([^$]*\)\$替换两个$字符之间的所有内容(反向引用),并在开头添加\latex

最后但并非最不重要的一点是,下面的sed -e 's/\$\([^$]*\)\$/$latex \1$/g' sed命令在没有\的情况下执行$latex替换

票数 1
EN

Stack Overflow用户

发布于 2018-05-10 03:11:27

我不知道你的文件的全部格式。如果我以面值为例,并假设任何行上的第一个$位于第1列,那么

代码语言:javascript
运行
复制
sed -e's/^\$/$\\latex /'

为我工作。但是如果要转换的字符串在文件中的任何位置,那么事情就变得更加困难了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50264816

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档