wine运行msoffice 2007和mathtype6.5——成功和失败

Wine、Cedega、CrossOver 等配置
回复
头像
123rps
帖子: 189
注册时间: 2009-04-30 16:17

wine运行msoffice 2007和mathtype6.5——成功和失败

#1

帖子 123rps » 2010-07-03 21:02

本帖主要分享一下我探索wine安装msoffice2007和mathtype的经历,成功和失败,与大家讨论、交流。
之所以会需要wine运行msoffice和mathtype,是因为经常要写包含大量公式的科技论文,并且需要与别人交流(比如投稿),而无庸讳言,目前国内多数人和单位仍然使用windows和msoffice。openoffice虽然功能强大,但跟微软格式兼容性不好,而最重要的一点在于,二者的公式无法实现兼容。用word编写的公式(不管是用ms公式3.0、mathtype还是office2007最新的公式编辑器)到openoffice下总不能很好的显示,更不用说编辑了。openoffice的公式拿到word下也是一样。相比于开虚拟机用word写文章,如果wine能完美运行msoffice和mathtype,无疑方便很多。所以请不要再怀疑这样做的必要性! :em02

最新的docx格式微软已经将其开放了,它与openoffice的odt格式同样是用xml语言表示的,并且docx的公式用的是mathml语言,而odt的公式虽然不是用mathml表示的,但能在内部转换,所以理论上能够实现一种方法,将两种格式(包括其中的公式)相互转换。 sourceforge上已经有几个项目在做这件事了,但目前只能做到文档之间基本等价的转换(事实上odt格式还不完善,docx的部分功能odt不能支持。二者的对比见http://office.microsoft.com/zh-cn/word-help/HA010355788.aspx),而公式目前仍然是通过转换为图片来暂时实现显示功能。
至于用mathtype等公式编辑软件编写的公式,在转换时更是有难度。目前的做法是仍然保留为ole对象,这样做在windows下是没有问题的,openoffice的windows版本也可以正确的调用mathtype来编辑ole对象;但在linux下可就没有ole机制了,mathtype的公式显示时变得混乱,试图双击打开时,openoffice会无情的告诉你出现了“一般错误“(附件1)。可见两种格式之间的完全转换还是任重而道远。

这篇文章主要分享一下我探索wine安装msoffice2007和mathtype的经历,成功和失败。

今天偶然想到wine一个ms office,于是google一番,欣喜的发现wine已经能很好的运行ms office 2003和2007了。经过试验之后,发现用playonlinux来安装ms office 2007应该是最简单的一种方法了。方法如下:
安装playonlinux:
sudo apt-get install playonlinux -y --force-yes
然后打开playonlinux(应用程序-游戏),选office类,里面有ms office 2007,选中之,应用(附件2)。然后按提示进行就好了,中间会让插入ms office的安装光盘(附件3)。在安装过程中有一点必须注意,那就是一定不要安装microsoft拼音输入法,以及access和outlook(血泪经验啊...,附件4)。playonlinux会自己完成其他事情,比如安装必要的dll以及msxml等,不需要手动安装任何dll文件。

如果注意了上面提到的那点注意:-),安装应该是很顺利的,安装完成后playonlinux的主界面出现了安装软件的列表(附件5),word运行起来也很稳定(附件6)。于是开始考虑公式的问题,尝试安装mathtype。

还是在playonlinux中安装mathtype(这次要点击playonlinux界面左下角的文字链接了),安装很顺利。但打开word后却并没有识别出mathtype的宏,没有出现mathtype的集成菜单,也没有加载项。突然想到playonlinux对每个应用程序都使用一个单独的wine配置(prefix,附件7),也就是说相当于各个应用程序是安装在不同的虚拟windows机器中的,那word当然不知道有mathtype 的存在了。

为了把mathtype安装在office所在的prefix之下,复制mathtype的prefix下的C:\program files\mathtype目录到office所在的prefix下,然后复制mathtype的prefix下mathtype安装目录下的 mathpage\mathpage.wll和office support\mathtype commands 6 for word.dot复制到office的prefix下的C:\program files\microsoft office\office12\startup下,然后重新启动word。这次能够发现mathtype的宏,将其加为信任的发布者之后,在word的 “加载项“标签下能够显示mathtype的功能按钮,但点击mathtype的任何命令按钮,都显示“隐含模块编译错误:ULib“(附件8),尝试了无数次也没有解决。

考虑到mathtype安装时,可能向系统注册表中写入了信息,而且也可能向系统的其他地方写入了文件,而上面的做法仅仅复制了部分文件到 office所在的prefix中。有没有别的办法能把两个软件安装到同一个prefix下呢?后来想到其实 playonlinux安装office,跟wine安装完全一样,仅仅是省去了手动配置wine和安装附加dll的麻烦而已。比如office所在的 prefix下的文件结构(附件9):dosdevice目录、drive_c目录、system.reg文件、user.reg文件、 userdef.reg文件,跟~/.wine/完全一样。那么完全可以将这些文件复制到~/.wine/下,就相当于在wine中安装了office。这样再用wine 安装mathtype不就能安装到同一个虚拟windows了吗?赶快试试。

复制office所在的prefix(~/.PlayOnLinux/wineprefix/Office2007/)下的所有文件覆盖~ /.wine/下的内容,然后修改user.reg文件中出现的路径~/.PlayOnLinux/wineprefix/Office2007为~ /.wine/,然后用wine安装mathtype,这样就把mathtype和office装到同一个虚拟windows中了。打开word试验一下。果然这次识别了mathype的宏,也出现了集成菜单。但杯具的是,点击mathype的任何菜单命令时,还是显示“隐含模块编译错误:AutoExecuate“(附件10)。

无奈之下试验用“插入-对象“来插入mathtype公式。这种情况下mathype是能正常运行的(附件11),但一旦公式编辑完退出 mathtype返回word时,就像任何事情都没有发生一样,并没有公式插入文档中。office自带的公式编辑器也是一样的情况。而当编辑文件中已有的公式时,返回word后公式仍是原样,并没有编辑过的痕迹。

从目前的结果来看,个人觉得,wine对于com接口和ole对象的支持还是不完善,com组件无法启动,而 ole对象的退出操作也存在问题。似乎目前只能等待wine的继续发展了。将来wine发展更加完善时,能很好的处理com组件和ole,那么word和mathtype协同工作,将是一件振奋人心的好事。当然,也希望openoffice和odt格式在oracle和开源社区的努力下更加完善,从而把用wine运行msoffice变成一件多余的事。

作为没有办法的办法,目前个人能想到的一种可行的解决办法是在wine出来的word中使用2007新增的公式编辑器,文档保存为docx格式。如果与使用 office2003的人交流,可以建议对方打上office2007格式兼容的补丁(http://www.microsoft.com/downloads/deta ... bb74cd1466)。另一种办法就是使用mathtype编辑公式,但将其保存为wmf图元文件,然后在word里导入这个图元文件。

欢迎大家讨论、指正!
:em06

说明:文中附件顺序是上传顺序,传上来才发现附件是倒序显示的,各位看官将就一下了:)
附件
mathtype运行界面
mathtype运行界面
mathtype集成菜单运行问题
mathtype集成菜单运行问题
playonlinux prefix的文件结构
playonlinux prefix的文件结构
mathtype加载项运行问题
mathtype加载项运行问题
playonlinux的wine prefix
playonlinux的wine prefix
word运行界面
word运行界面
playonlinux安装软件列表
playonlinux安装软件列表
选择office安装组件
选择office安装组件
选择office2007安装光盘位置
选择office2007安装光盘位置
playonlinux安装windows软件界面
playonlinux安装windows软件界面
在openoffice中打开包含mathtype公式的doc文档并双击公式
在openoffice中打开包含mathtype公式的doc文档并双击公式
东西大街南北走
出门碰到人咬狗
搬起狗来砸砖头
却被砖头咬了手
OpenOffice.org Math公式编辑器完全教程
思考者
帖子: 294
注册时间: 2009-07-05 19:43

Re: wine运行msoffice 2007和mathtype6.5——成功和失败

#2

帖子 思考者 » 2010-07-03 21:40

对LZ所说的这种我还没达到那种程度,我仅用playonlinux安装过一个ie7,但是出来的却是winehq,并不是浏览器的样子
只是尝试
只是尝试
那LZ你试过office2003和mathtype6.5联合吗?还是本不能联合的?我这方面用的很少
-----寂寞的存在,孤独的思考----
头像
123rps
帖子: 189
注册时间: 2009-04-30 16:17

Re: wine运行msoffice 2007和mathtype6.5——成功和失败

#3

帖子 123rps » 2010-07-04 10:04

还没试过2003,尽快测试一下,不过我觉得应该跟2007差不多吧,毕竟都是用的ole
windows上2007和2003都能很好的跟mathtype联合,而在wine模拟的windows环境下就不行了,所以应该是wine的问题 :em01
东西大街南北走
出门碰到人咬狗
搬起狗来砸砖头
却被砖头咬了手
OpenOffice.org Math公式编辑器完全教程
头像
豬豬
帖子: 1216
注册时间: 2006-08-30 20:54
来自: 廣州

Re: wine运行msoffice 2007和mathtype6.5——成功和失败

#4

帖子 豬豬 » 2010-07-04 10:21

支持發文,辛苦了
Intel G1610
Samsung DDR1333 4G
SOYO SY-I6H-L 4.1
Maxtor 250GB+Seagate 500GB
Nvidia GeForce 8500GT
Samsung SyncMaster S22B360
Ubuntu 10.04 LTS
wnfu12nb
帖子: 12
注册时间: 2010-05-26 10:46

Re: wine运行msoffice 2007和mathtype6.5——成功和失败

#5

帖子 wnfu12nb » 2010-07-06 23:10

用crossover 试用版中的ole32dll.so(不知道是否这个文件名,论坛中有类似的帖子,查找一下以核实之) 替换wine 中的同名文件可以实现对象的嵌入.不过似乎不能用宏来完成这件事.
总而言之,用wine 比较麻烦.
头像
Hamster
帖子: 23
注册时间: 2010-09-04 2:41
来自: 马来西亚

Re: wine运行msoffice 2007和mathtype6.5——成功和失败

#6

帖子 Hamster » 2010-09-23 2:46

谢谢前辈分享,学习了! :em11
头像
123rps
帖子: 189
注册时间: 2009-04-30 16:17

Re: wine运行msoffice 2007和mathtype6.5——成功和失败

#7

帖子 123rps » 2010-09-23 19:54

共同进步 :em11
东西大街南北走
出门碰到人咬狗
搬起狗来砸砖头
却被砖头咬了手
OpenOffice.org Math公式编辑器完全教程
yjqg6666
帖子: 77
注册时间: 2008-12-31 17:45

Re: wine运行msoffice 2007和mathtype6.5——成功和失败

#8

帖子 yjqg6666 » 2010-11-30 10:26

linux下 lyx+latex弄数学公式排版最好用
buguniaoo1991
帖子: 4
注册时间: 2011-04-16 23:47

Re: wine运行msoffice 2007和mathtype6.5——成功和失败

#9

帖子 buguniaoo1991 » 2011-08-13 23:20

谢谢,解决了我遇到的问题。
lancecherry
帖子: 21
注册时间: 2012-01-27 10:01

Re: wine运行msoffice 2007和mathtype6.5——成功和失败

#10

帖子 lancecherry » 2012-01-27 14:47

已經是很大的進步了 感謝分享經驗
头像
cjxgm
帖子: 1952
注册时间: 2010-04-23 20:40
系统: Arch Linux
来自: 浙江·杭州
联系:

Re: wine运行msoffice 2007和mathtype6.5——成功和失败

#11

帖子 cjxgm » 2012-01-27 19:03

话说用 LyX 打公式真的很爽
Clanjor Prods. | Develop for Developers. (C++, Lua) | 作曲编曲 | 实时渲染引擎
头像
linjhl
帖子: 9
注册时间: 2011-02-11 18:44

Re: wine运行msoffice 2007和mathtype6.5——成功和失败

#13

帖子 linjhl » 2012-04-04 14:37

怎么说也是ubuntu下一种office解决方案
头像
ahwad
帖子: 1116
注册时间: 2009-05-06 0:36

Re: wine运行msoffice 2007和mathtype6.5——成功和失败

#14

帖子 ahwad » 2012-06-05 0:08

学习了。。。。。。。。。。。。。。
头像
eagle5678
帖子: 1900
注册时间: 2006-07-08 14:07

Re: wine运行msoffice 2007和mathtype6.5——成功和失败

#15

帖子 eagle5678 » 2012-06-22 23:15

wine access 2007 基本完美,只要不用宋体
回复