如果知道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的前面几个版本也一度在中文环境下出现过这样的光标错位问题。
从这件事我个人总结如下: