数学研发论坛

 找回密码
 欢迎注册
查看: 193|回复: 5

[讨论] 极简latex公式代码?

[复制链接]
发表于 2019-1-18 12:39:38 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?欢迎注册

x
对于我自己来说,写latex的时候一直都有些强迫症,我希望用最短的代码实现同样的功能。

当然这里的最短仅仅是指“去冗余”,而不是做变换。

比如$2^n$,标准代码可能是2^{n},但我会写成2^n。如果想要开发一个程序,希望能输入一个公式,得到其最简表达式,估计要怎么实现?

(可以去掉的东西,一般是不必要的花括号,以及不必要的空格。)

纯粹头脑风暴了~
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2019-1-18 13:29:57 | 显示全部楼层
$2^n$Latex也能识别,如果是$2^(n^2+3n+7)$不用{}就识别不了了。最不方便的是除法,要写成\frac{}{}的形式,没有直接()/()方便,我是希望所见即所得,代码里不要出现公式里没有出现的东西,比如\frac这几个字符比\复杂多了。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2019-1-18 13:36:55 | 显示全部楼层
lsr314 发表于 2019-1-18 13:29
$2^n$Latex也能识别,如果是$2^(n^2+3n+7)$不用{}就识别不了了。最不方便的是除法,要写成\frac{}{}的形式 ...

很简单,在mathematica里面输入分子,然后按ctrl+/,然后输入分母,然后复制成LaTeX代码,我都用mathematica软件搞到LaTeX代码,我没兴趣慢慢整LaTeX代码
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2019-1-18 18:51:42 | 显示全部楼层
只有一些特殊情况可以简化。比如
  1. `\frac xn`,$n^2/33$,`\overset{ab}x`
复制代码
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2019-1-18 20:42:19 | 显示全部楼层
不知道是不是我没说清楚。我的意思不是怎么设计更好的latex,我的意思就是在目前的latex语法前提下去冗余。
这可以看成是一道编程题。
我知道2^{n}可以去掉而2^{2n}不行,就好比a b可以去掉空格变成ab,但是\theta a就不能去掉空格。
如果是直接从维基百科或者mathematica、mathtype转换过来的latex,还多数是{{ \frac {3} {2} }},有大量没意义的花括号和空格,这时候看起来很烦,编辑起来也很烦。

所以就想着如何设计这样的一个工具,能得到极简的latex表达式(而不是要重新设计一门数学公式语言啊)。
再强调一次,极简只是基于去冗余,而不是基于转写,转写那就更复杂了。

还有,latex语法我写了快10年了(十年前博客就用latex写公式),所以给我一个latex公式我也知道它哪些能化简哪些不能,所以重点不是给我举例哪些能化简,而是请大家想一下,真要设计这样的工具,可以怎么着手。
(比如就针对多余的空格和多余的花括号)

点评

我感觉很难有统一的规律,所以算法是不太可能有的。只能基于经验来列举规则,比如跟你已知可以化简的类型来加入模板。就好比人的思维过程一样。  发表于 2019-1-18 21:15
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

小黑屋|手机版|数学研发网 ( 苏ICP备07505100号 )

GMT+8, 2019-2-24 10:41 , Processed in 0.051224 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表