282842712474 发表于 2019-1-18 12:39:38

极简latex公式代码?

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

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

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

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

纯粹头脑风暴了~

lsr314 发表于 2019-1-18 13:29:57

$2^n$Latex也能识别,如果是$2^(n^2+3n+7)$不用{}就识别不了了。最不方便的是除法,要写成\frac{}{}的形式,没有直接()/()方便,我是希望所见即所得,代码里不要出现公式里没有出现的东西,比如\frac这几个字符比\复杂多了。

mathematica 发表于 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代码

kastin 发表于 2019-1-18 18:51:42

只有一些特殊情况可以简化。比如
`\frac xn`,$n^2/33$,`\overset{ab}x`

282842712474 发表于 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公式我也知道它哪些能化简哪些不能,所以重点不是给我举例哪些能化简,而是请大家想一下,真要设计这样的工具,可以怎么着手。
(比如就针对多余的空格和多余的花括号)
页: [1]
查看完整版本: 极简latex公式代码?