首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用latex \frac全局替换小数

如何用latex \frac全局替换小数
EN

Stack Overflow用户
提问于 2015-04-21 13:20:00
回答 3查看 183关注 0票数 1

我有一个非常大的表达式,其中包含许多小数(a/b)。我想用它们的latex形式替换所有的小数,即我的输出将是\frac{a}{b}全局。以下是输入文件的一部分:

代码语言:javascript
复制
      + 93
      - 220/3*zeta3
      + 536/9*zeta2
      - 4/5*zeta2^2

我的输出将类似于:

代码语言:javascript
复制
      + 93
      - \frac{220}{3}*zeta3
      + \frac{536}{9}*zeta2
      - \frac{4}{5}*zeta2^2

我可以通过vim编辑器手动完成(这非常耗时)。我正在寻找一个脚本,可以为所有这样的分数做它的全局。是否可以在shell脚本中执行此操作?

EN

回答 3

Stack Overflow用户

发布于 2015-04-21 13:27:34

假设您的分数只由数字组成,并且它们不会跨越多行:

代码语言:javascript
复制
:%s!\v(\d+)\s*/\s*(\d+)!\\frac{\1}{\2}!g
票数 3
EN

Stack Overflow用户

发布于 2015-04-21 13:46:28

使用正则表达式:

代码语言:javascript
复制
match : ^(\s+(\+|\-)\s+)(\d+)\/(\d+)(\*.*)$
replace : \1\\frac{\3}{\4}\5

使用sed等工具编辑文件。

请参阅DEMO

票数 0
EN

Stack Overflow用户

发布于 2015-04-21 20:47:19

通常,当你认为:

我可以通过vim编辑器手动完成(这非常耗时)。

您正在做一些错误的事情,因为在vim编辑器中不应该花费很长时间,因此:

使用vim宏

第一次搜索/

代码语言:javascript
复制
<esc>/\/

录制以下宏:

代码语言:javascript
复制
nbifrac{<esc>nvc}{<esc>ea}<esc>

循序渐进

开始在buffer q中录制宏

代码语言:javascript
复制
qq

查找下一次出现的/

代码语言:javascript
复制
n

走到分子前面并插入frac{

代码语言:javascript
复制
bifrac{<esc>

找到除号,选择它并将其更改为}{

代码语言:javascript
复制
nvc}{<esc>

跳过分母并附加}

代码语言:javascript
复制
ea}<esc>

停止录制宏:

代码语言:javascript
复制
q

如果您喜欢,可以将宏播放1000次:

代码语言:javascript
复制
1000@q
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29763558

复制
相关文章

相似问题

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