如何解决数学软件Maple v9.5在中文Windows下,公式输入中光标定位错误的问题

如果知道Matlab,多半会知道Mathmatica和Maple,他们都是数学软件,前者以数值计算和工程仿真著名,后者则以符号计算立足。

我现在放弃Mathmatica改用Maple了,因为Maple能够解几乎所有的数学问题,包括偏微分方程,图论,数论,数据分析等等,总之如果参加数学建模比赛的话,你不希望你手中的软件功能少的。但对于初学数学软件的人,我还是推荐Mathmatica,毕竟文档组织的比较好。

Maple的最新版v9.5,在中文环境下十分令人恼火的事是输入计算指令的时候,Maple的Java环境输入7个英文字符后光标就会错一位,输入到14个字符后,光标就相差一个字,这样修改公式变得极为困难,因为鼠标点下的地方如果按下删除键,会删掉前面几位前的字符!经过整整两天的折腾,发现即使把Maple打上9.5.1的补丁也于事无补,但是总算发现,如果将Math Input中的字体设置为“宋体”而不是缺省的“monospaced”,那么这个定位bug就不存在了。显然要我每新建一行公式就手动设置一下字体,绝对是在羞辱我资深电脑用户的威名,因此,马上想到修改Maple的Math Input缺省字体,火气很大的是Maple中没有提供这个选项。难道要让我放弃Maple的漂亮的Java环境,改用原始的C编的Classic Worksheet Maple 9.5吗?

我决定还是深入分析Maple程序的结构。通过使用UltraEdt工具Find in files功能,我发现的monospaced实际上是指一类字体,如果在中文Windows下,定义就在Maple 9.5\jre\lib\font.properties.zh中,分别修改下面的注释行文本为其下一行的文本,马上可以解决这个恼人的问题:

#monospaced.plain.0=\u5b8b\u4f53,GB2312_CHARSET
monospaced.plain.0=Courier New,GB2312_CHARSET

#monospaced.bold.0=\u5b8b\u4f53,GB2312_CHARSET
monospaced.bold.0=Courier New Bold,GB2312_CHARSET

#monospaced.italic.0=\u5b8b\u4f53,GB2312_CHARSET
monospaced.italic.0=Courier New Italic,GB2312_CHARSET

#monospaced.bolditalic.0=\u5b8b\u4f53,GB2312_CHARSET
monospaced.bolditalic.0=Courier New Bold Italic,GB2312_CHARSET

在解决这个问题后,我还是有一点看不懂,因为jre目录下是Java Runtime Environment的东西,是Sun应该解决的问题,Maple自带的Java运行库为1.4.2,即使我手工替换运行库到1.4.2_06版(最新版)也一样,这应该是Java的字体定义或者字体引擎本身的错误!而且这样的错误应该在很多使用Java运行库的软件上都会发生,而不仅仅是Maple,据我所知JBuilder的前面几个版本也一度在中文环境下出现过这样的光标错位问题。

从这件事我个人总结如下:
1.Java的Bug现在还是有,而且在中文环境下还不少(决无攻击Java之意,不过好像说的真是此地无银三百两);
2.Java在国内使用的还不够广泛,因为如果广泛使用,这样的问题应该很快被修正;
3.现在一个应用软件发生错误,不一定是软件本身编的有问题,也有可能是环境问题。
4.Maple, Mathematica, Matlab等数学软件可能是所有应用软件中错误最少的,作为IT界的未来工程师,我还要向这些大师学习,不仅因为离开了这些工具我几乎无法做数学或者是这些软件支持的数学超出我的知识范围,而且,错误少的软件本身就说明了编程严谨的态度。

posted @ 2005-02-06 00:31  丁丁  阅读(6281)  评论(15编辑  收藏  举报