总计 143 次浏览

网络教学环境下数学公式处理的解决方案

出版物刊名:中国教育信息化 高教职教 2007

摘要】目前,网络教学、在线考试、题库建设以及教学中运用的各种交流形式(论坛、留言板、博客等),具备处理各种文字、图片等多媒体信息的能力,能够基本满足教学需要。但是在理科教学中,需要处理大量的公式,因此在网络环境下,公式的输入、显示、判断、存储等操作就需要特殊手段。本文准备将目前可行的几种方案进行对比,使我们可以根据实际情况选择实施。 

关键词】公式在线处理 TeX/LaTeX 科技文档 MathML WebEQ
一、引言
公式的处理一直比较困难,因为公式使用大量特殊符号组成,在书写排版时还需要随时调整大小、位置、对齐等属性,因此常规办法无法进行处理。随着计算机技术的提高,目前我们已经可以使用诸如Word中的公式编辑器等软件,可以实现公式的排版印刷,但是要在网页上实现交互就不成了。
通常我们的做法是,使用公式编辑器做好公式,使用抓图的办法保存成图像文件(GIF、JPG等),使用上传的办法进行,虽然制作网页时可以使用Namo WebEditor,但该软件也只是通过转换成图片的方法,单纯解决显示问题。除了操作繁琐外,我们还需要对公式能够实现在线编辑、判断、绘制函数图像及存储等操作,因此这种方法无法满足理科教学的需要。

网络教学环境下数学公式处理的解决方案插图
 

以往这种需求只在高学中出现,但随着教育信息化建设的推进,许多中学开展了网络授课、在线考试、问题讨论等形式的教学。因此对在线公式的处理也提出了更高的要求。笔者工作的学校多年来开展信息技术试验班工作,因此对这个问题的解决,进行了长时间的探索,归纳出几套解决方案,可供大家联系实际,选择实施。
二、解决方案的核心技术
目前,表述公式最好的办法是使用TeX/LaTeX格式。
TeX技术源于Stanford大学Donald E.Knuth在1977年5月开始设计的TeX程序,该程序可以完成简单的排版操作和程序设计功能,基于此项技术,美国计算机学家Leslie Lamport在二十世纪八十年代初期开发了LaTeX格式。利用这种格式,对于描述复杂表格和数学公式非常简单。TeX 提供了一套功能强大并且十分灵活的排版语言,它多达900多条指令,并且 TeX 有宏功能,用户可以不断地定义自己适用的新命令来扩展TeX系统的功能。
TeX读作tech[tek],LaTeX读作lei tech,可以进行复杂公式的排版,比如:
这个公式我们可以用LaTeX格式描述为:\frac{-b\pm\sqrt{b^2-4ac}}{2a}。目前这种格式已经成为国际标准,得到了广泛支持(前面提到的Namo WebEditor也是使用LaTeX描述公式),许多大学理科专业也开设了这门课程,因此应用面非常宽广。
另外一种是使用MathML(MathML By Example)。
MathML使用XML来描述数学表达式的结构和内容,是由W3C于1997年首先提出,到了2001年2月给出了2.0正式版,也是目前最为成熟的版本。由于MathML使用XML来表述公式,与HTML处理文字非常相像,因此比较适合网页显示,如上面的公式使用MathML描述为:

<math display='block' xmlns='http://www.w3.org/1998/Math/MathML'>
 <semantics>
  <mrow>
   <mfrac>
    <mrow>
     <mo>&#x2212;</mo><mi>b</mi><mo>&#x00B1;</mo><msqrt>
      <mrow>
       <msup>
        <mi>b</mi>
        <mn>2</mn>
       </msup>
       <mo>&#x2212;</mo><mn>4</mn><mi>a</mi><mi>c</mi>
      </mrow>
     </msqrt>
     
    </mrow>
    <mrow>
     <mn>2</mn><mi>a</mi>
    </mrow>
   </mfrac>
   
  </mrow>
 </semantics>
</math>

MathML语言一经提出就受到各方面的高度重视,目前许多浏览器都直接支持,如:Netscape、Amaya、Gozilla等(IE需要安装插件进行支持),使用脚本语言可以与LaTeX格式之间的转换。虽然目前MathML还没有被大家所熟知,但作为 “未来的数学网络标准语言”,它一定能被广泛的应用。
三、解决方案
1、使用TeX/LaTeX标准
我们可以免费下载使用《NicTeX 网络公式编辑器》,这是一个基于TeX/LaTeX标准的CGI应用程序,我们可以使用标准的TeX/LaTeX语言表述公式,具体做法如下: 

(1)搭建CGI环境,可以使用IIS、Apache、Tomcat等Web服务器(包括Linux和FreeBSD等操作系统) 

(2)建立cgi-bin目录,将文件nictex.exe复制到其中并打开此目录的执行权限

网络教学环境下数学公式处理的解决方案插图1
 

(3)使用浏览器测试,如:
http://127.0.0.1:8080/nictex/cgi-bin/nictex.exe?\blue\LARGE x=\frac{-b\pm\sqrt{b^2-4ac}}{2a}

网络教学环境下数学公式处理的解决方案插图2
 

我们可以看出,在nictex.exe后给出了参数,其中“\blue”表示使用蓝颜色、“\LARGE”表示使用大字体,后面的“x=\frac{-b\pm\sqrt{b^2-4ac}}{2a}”就是描述表述的TeX/LaTeX标准格式。
以下为在线输入TeX/LaTeX脚本编辑公式的示例:

<html>
  <head>
    <title> TeX/LaTeX脚本 </title>
    <meta HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=gb2312">
  <script type="text/javascript">
    function cleartext()
      { document.expression.formdata.value = "";
        document.expression.formdata.focus(); }
    -->
  </script>
  </head>
<body>
<center>
      <table border="2" cellpadding="5" cellspacing="0">
       <tr align="center"><td>
         <form name="expression" action="cgi-bin/nictex.exe" method="get" target="inlineframe">
           <table border="0" cellpadding="0" cellspacing="1">
             <tr align="left">
               <td align="center">
                <b>请按照 LaTeX </b><strong>格式,输入公式,并且提交</strong><br>
               <textarea name="formdata" rows="5" cols="72"
                >\Large f(x)=\int_{-\infty}^x e^{-t^2}dt</textarea> <br>
             </td></tr>
             <tr align="center"><td>
               <font size="-1"> <input type="button" onClick="cleartext()"
               value="清除公式"> 
               &nbsp; &nbsp;
               &nbsp; <input type="submit" value="提交公式"> 
               </font>
             </td></tr>
           </table>
         </form> </td></tr>  <tr align="left">
           <td align="center">
         <b>公式实际效果如下</b> <br>
         <iframe name="inlineframe" align="middle" width="85%" height="110">
         &lt;p&gt;iframe's not supported if you see this.&lt;/p&gt; 
         </iframe>
       </td></tr>
      </table>
</center>
 <p>&nbsp;</p>
</body>
</html>

实际效果:

 

网络教学环境下数学公式处理的解决方案插图3
 

有了《NicTeX 网络公式编辑器》我们就可以在页面中处理公式了:

A.输入:使用表单的文本框进行TeX/LaTeX脚本输入 

B.输出:使用<img src=”http://127.0.0.1:8080/nictex/cgi-bin/nictex.exe?公式脚本 “> 

C.存储:由于脚本是纯文本方式,因此后台可以使用ASP、PHP、.Net等技术存入数据库,以便以后读取 

D.判断:题目中包含的公式以及学生答题输入的公式都已文本方式存在,因此完全可以进行对比判断,从而得出“对/错”判断,这样我们就可以实现“在线考试”、“论坛答疑”等应用。 

使用该方案,优点是可以非常简单的处理公式,缺点是: 

A. TeX/LaTeX脚本需要学习与记忆,初学者需要一段时间适应 

B.不能实现类似“Word公式编辑器”的可视化界面 

C.由于使用CGI方式,因此访问量大时会对服务器产生压力 

2、使用MathML格式

在IE环境下使用需要安装MathPlayer插件,可以在Design Science主页上下载:http://www.dessci.com/en/products/mathplayer/安装后,我们的IE就可以显示用MathML描述的公式了,具体实现的代码:

<html xmlns:m="http://www.w3.org/1998/Math/MathML">
<head>
<object id="mathplayer" classid="clsid:32F66A20-7614-11D4-BD11-00104BD3F987">
</object><?import namespace="m" implementation="#mathplayer"?>
</head>
<body>
<m:math display='block'>
 <m:mrow>
  <m:mfrac>
   <m:mrow>
    <m:mo>-</m:mo><m:mi>b</m:mi><m:mo>&plusmn;</m:mo><m:msqrt>
     <m:mrow>
      <m:msup>
       <m:mi>b</m:mi>
       <m:mn>2</m:mn>
      </m:msup>
      <m:mo>-</m:mo><m:mn>4</m:mn><m:mi>a</m:mi><m:mi>c</m:mi>
     </m:mrow>
    </m:msqrt>
   </m:mrow>
   <m:mrow>
    <m:mn>2</m:mn><m:mi>a</m:mi>
   </m:mrow>
  </m:mfrac>
 </m:mrow>
</m:math>
</body>
</html>

以上代码保存为HTML文件,在IE浏览器打开后,就可以看到预期的公式:

网络教学环境下数学公式处理的解决方案插图4
 

此时公式支持交互,单击公式后,变化如下:

网络教学环境下数学公式处理的解决方案插图5
 

实现显示的关键: 

(1)插入mathplayer对象 

<object id=”mathplayer” classid=”clsid:32F66A20-7614-11D4-BD11-00104BD3F987″>

</object><?import namespace=”m” implementation=”#mathplayer”?> 

(2)公式脚本重的命名间隔为“m” 

我们可以在源码中看到,描述公式的代码十分复杂,掌握起来非常困难。这时,我们可以使用MathType5进行可视化编辑。

 MathType5是Word公式编辑器的增强版,可以到Design Science网站下载,国内各大软件下载网站还有汉化版提供。下载安装好MathType5后,Word中的公式编辑器就被替换成MathType5,在Word中调用或直接运行后,我们可以看到如下界面:

网络教学环境下数学公式处理的解决方案插图6
 

具体使用基本上同Word公式编辑器相仿,这里不作介绍,关键说明如何获取MathML代码。
点击Preferences → Translators

网络教学环境下数学公式处理的解决方案插图7
 

按照如下设置:

网络教学环境下数学公式处理的解决方案插图8
 

编辑好公式后,选中所需部分,复制到剪贴板

网络教学环境下数学公式处理的解决方案插图9
 

这时,剪贴板的数据就是以“m”为命名间隔的MathML格式的公式代码,我们把它贴在<body></body>之间就可以在IE中显示:

网络教学环境下数学公式处理的解决方案插图10
 

到这里,我们知道公式如何显示,由于同样为文本格式,那么输入、判断、存储也与上一个方案基本一致。使用此方案,可以不依赖Web服务器,而且调用MathType可以实现可视化编辑,另外通过编程,可以让熟悉TeX/LaTeX脚本的用户直接使用LaTeX语言书写公式(将TeX/LaTeX脚本转变为MathML代码),因此次方案既兼顾了初学者,又满足高级用户的使用。

3、使用WebEQ的Java Applet 

WeqEQ与MathPlayer是Design Science旗下的同门师兄,同样采用MathML技术,并利用Java Applet的技术,在浏览器中提供可视化的输入界面。

网络教学环境下数学公式处理的解决方案插图11

要使用这个方案,我们需要作如下准备: 

A.安装IE的Java支持环境,可以到微软网站下载msjavx86.exe 

B.到Design Science网站下载WebEQApplet.rar(Java程序包)并安装 

(1)显示公式 

建立页面,插入如下代码:

<applet codebase='./' code='webeq3.ViewerControl' WIDTH=320 HEIGHT=100>
<PARAM NAME='parser' VALUE='mathml'><param name='color' value='"+b.value+"'>
<PARAM NAME='size' VALUE='18'>
"<PARAM NAME=eq id=eq VALUE='<math><mrow><mfrac><mrow><mo>-</mo><mi>b</mi>
<mo>&plusmn;</mo><msqrt><mrow><msup><mrow><mi>b</mi></mrow><mrow><mn>2</mn> </mrow></msup><mo>-</mo><mn>4</mn><mi>ac</mi></mrow></msqrt></mrow><mrow><mn>2</mn>
<mi>a</mi></mrow></mfrac></mrow></math>'>
</applet>

最终效果如下:

 

网络教学环境下数学公式处理的解决方案插图12
 

(2)编辑公式

<applet codebase="./" code="webeq3.editor.InputControl" WIDTH=820 HEIGHT=200 NAME=eqn1 MAYSCRIPT> <PARAM NAME=eq id=eq VALUE=""> </applet>

网络教学环境下数学公式处理的解决方案插图13
(3)为了进行公式的处理(计算、判断、存储等操作),我们可以使用JavaScript脚本,获取公式,下面是脚本的片断:

var mml = document.eqn1.getMathML();

变量mml中就会得到MathML格式的公式,“eqn1”为输入对象的名称,此值可以直接赋给现实公式的对象,如:

document.myEQ.setMathML(mml);
document.myEQ.refresh();

“myEQ”为现实公式对象的名称。由于得到了MathML公式脚本,因此对于公式的处理问题也就迎刃而解。
虽然在使用WebEQ的方案前,需要安装Java支持环境和Java Applet,但是它可以实现“可视化”输入公式,因此效果非常好,而且还可以绘制函数图像(另文讨论)。因此该方案比较适合中学生使用。

 4、ScienceWord 

星火燎原软件推出的ScienceWord是一款科技文档排版软件,它内置了大量的科技图符,提供了公式输入、函数绘制等一系列科技排版常用工具,它可以编排、数、理、化等学科的试卷、论文等文章,是目前最理想的科技文章编排工具。

网络教学环境下数学公式处理的解决方案插图14
 

在ScienceWord 系列产品中,有一款网页插件ScienceWord WebEdition,它可以在线实现ScienceWord所有功能,能够帮我们搭建在线题库制作、在线考试、在线讨论等应用平台,因此可以讲是效果最好的方案。ScienceWord的价格不菲,但是提供了详尽的使用说明和开发细节,帮助我们实现各种应用。

网络教学环境下数学公式处理的解决方案插图15
 

四、方案比较 

网络教学环境下数学公式处理的解决方案插图16

根据以上方案的比较,笔者认为,针对高校学生,可以使用前2个方案,这样从学生掌握、环境搭建、费用支出等几个因素看都是最好的选择。对于中学生还是使用后面的2个方案,如果经费充足,建议使用最后的ScienceWord插件方案。
另外,如果单纯解决输入和显示问题,采用网页中嵌入Word控件也是不错的方案。 

五、结束语
网络化教学是今后教育发展的方向,目前看也是非常好的补充手段,因此解决好网络环境下公式的处理是非常重要的。随着技术的进步,我们可以相信还会有更优秀的解决方案出现,为我们的教育信息化铺平道路。
2007年3月23日 

收录:百度学术 百度文库 

参考文献 

[1]文合平.数学公式的计算机表达.现代教育技术2003年第2期

[2] 深入讲述 MathML 

[3]数学公式编辑器实现技术研究 

[4] http://www.dessci.com/en/ 

[5] http://www.novoasoft.com/

By 站长

发表回复

普人特福的博客cnzz&51la for wordpress,cnzz for wordpress,51la for wordpress