latex 分数_关于Mathematica的表达式导出为LaTeX公式产生格式错乱的问题

728e097f717abec609cc10eb73d38ee8.png

除了很多时候mathematica可以拿来当作某种草稿本来用,甚至可以当作公式编辑器,因为可以直接将表达式复制为

,粘贴到别的地方去,但是这样会产生一些奇怪的格式错乱的问题。

比如我想要打出

那么在mma里面这么操作

6ad0ebb9c625f56d10f3fc6c63359b77.png

但是看看剪贴板里的内容,发现是这个

于此类似的还有标准的tex格式输出函数TeXForm

TeXForm[a^-1]
(*frac{1}{a}*)

虽然它们(指

)等价,但是我不想这么做,怎么办?

总结一下刚才的问题

问题1:负数幂转化为分数 ,分数幂转化为根式

TeXForm

问题2:加法乘法顺序的调换

原理是mma内部的加法和乘法都是无序的,所以在进行某种操作的时候顺序会重新安排。

TeXForm

问题3:分数的重新分配

TeXForm


问题4:特定字符的重写

说你呢,E和I。因为这两家伙解释为自然对数的底数和单位虚数,所以会导致转化的时候大写变小写。

TeXForm

使用HoldForm

例子:要打出

HoldForm的确是起作用了,但是对于最开始的情况:

TeXForm

没用!怎么办?

这里[1]提供了一种解决方法,将HoldForm再搞到里面去

TeXForm

成功!再试试别的例子

例如,我要打出

TeXForm

可以看到的确解决了问题,缺点是当式子很多的时候需要大量HoldForm。

还有HoldForm对第四种问题并没有作用。


使用字符串

TeXForm

可以看到也很好地解决了问题,缺点是没法转化矩阵

7d25fdfcd3ccb3ccdbfcfff392d27780.png

447ff92249127fcf2ec3c96da2ec2d16.png

修改内部过程(最佳)

在这里[2]看到了这个操作,原理比较复杂,做法是重载一个函数,直接将其改没

System`FEDump`

运行这句话以后,虽然TeXForm函数输出还是会重新排版,但是右键复制为latex就能保持原格式了。

缺点是除非重新启动mathematica,否则右键复制为latex再也不能帮你做小动作了。


除此以外还有很多杂七杂八的操作,但都是治标不治本,比如专门取消加法和乘法的无序特性、使用奇怪的中缀或者是替换等等,我觉得最巧妙的还是最后一种解决方法。

参考

  1. ^https://mathematica.stackexchange.com/questions/69655/holdform-does-not-hold-form-for-fractions-sometimes
  2. ^https://mathematica.stackexchange.com/questions/76860/how-do-i-prevent-mathematica-from-reformatting-the-expressions-that-i-copy-as-la
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值