基于LaTeX渲染的微积分在线测试小程序设计与实现
2024-11-22高文华李义
关键词:微积分;在线测试;微信小程序;LaTeX渲染;教学改革
中图分类号:TP311 文献标识码:A
文章编号:1009-3044(2024)26-0037-03开放科学(资源服务)标识码(OSID) :
0 引言
微信小程序凭借其开发便捷、易于维护、成本低廉等优势,在教育领域得到越来越广泛的应用[1-5]。然而,传统的微积分在线考试系统大多采用图片存储数学公式,存在着显示不清、存储空间占用大等问题,影响了学生的学习体验和教学效率。LaTeX是一种专业的排版系统,尤其擅长处理复杂的数学公式。采用LaTeX代码存储和渲染数学公式,可以有效解决上述问题,并带来诸多优势:1) 存储空间小:以存储一道微积分题目为例,使用LaTeX代码所需的存储空间仅为图片格式的千分之一,这对于存储大量数学题目的系统而言意义重大。2) 图像质量高:LaTeX渲染生成的公式图像具有更高的清晰度和质量,便于学生查看和理解。3) 格式转换便捷:LaTeX代码可以轻松转换为PDF、SVG、PNG、JPG等多种格式,方便在不同终端和设备上展示。
本文提出了一种基于LaTeX 渲染的微积分在线测试微信小程序解决方案,实现了数学公式的高质量显示、高效存储和便捷管理。文章结构如下:第二部分介绍试题管理模块,第三部分介绍在线测试系统设计,第四部分总结全文并展望未来工作。
1 试题管理
试题管理模块是该系统的重要组成部分,其主要功能包括:题目查询、题目预览、试题添加和试题分页。
1.1 题目查询
试题管理模块提供多种查询方式,包括:1) 精确查询:根据题目ID进行精确匹配。2) 模糊查询:根据题目内容进行模糊搜索。3) 参数筛选:根据年级、学科、题型等参数进行筛选。用户点击查询按钮后,系统将触发submitForm事件,并通过POST请求将查询参数(题目ID、题目类型、所属年级、学科)发送至服务器。
题目信息存储在数据库中,表结构如下。
1.2 题目预览
在题目预览功能中,系统将题目加载至自定义组件questionShow中,并调用formatMath()函数对LaTeX 代码进行渲染。具体流程如下:1) 页面加载时,引入MathJax库并进行配置。2) 用户点击预览按钮后,触发formatMath函数,将LaTeX代码发送至MathJax服务器。3) 服务器返回渲染后的SVG格式图片,并在页面上显示。MathJax 库的配置参数?config=TeX-MMLAM_CHTML用于指定输出格式为HTML+CSS。题目预览效果如图1所示。
1.3 试题添加
系统支持5种题型:单选、多选、填空、判断和简答。题型以整数类型存储在数据库中,并采用键值对的方式进行映射,例如{1:“单选题”}。在添加题目时,用户需要填写年级、学科、题干、选项内容等必要信息,并可以设置分数、解析、难度等附加信息,如图2所示。系统采用Ueditor富文本编辑器,支持图文混排和HTML代码的输入。图片上传至七牛云存储空间,数据库中仅存储图片链接,以减少存储空间占用。
1.4 试题分页
为方便用户浏览大量题目,系统提供试题分页功能。分页功能通过pageIndex和pageSize两个参数实现,分别表示当前页码和每页显示的题目数量。用户可以通过手动选择页码或点击导航按钮进行翻页。页面加载时,系统会向后端发送POST请求,请求参数包含pageIndex和pageSize。后端接收到请求后,将请求参数封装成QuestionPageRequestVM 对象,并调用pageList()方法获取分页数据。pageList()方法将查询结果和分页信息封装成PageInfo对象,并将每个Ques⁃tion对象转换为QuestionResponseVM对象,添加创建时间、题干等信息。最后,系统将PageInfo对象封装在RestResponse对象中返回给客户端。
2 在线测试系统
在线测试系统是面向学生端的核心模块,其主要功能包括:试卷查看、试卷提交和试卷批改。
2.1 试卷查看
用户点击试卷列表中的试卷后,系统将跳转至试卷测验界面,并向后端发送POST请求,获取试卷内容。题目和选项内容均采用LaTeX代码存储。由于微信小程序的WXML不支持直接渲染HTML,因此无法像网页端一样直接使用MathJax进行LaTeX代码渲染。针对微信小程序渲染LaTeX代码的问题,本文采用Towxml组件实现。Towxml组件是一款功能强大的Markdown解析库,支持渲染LaTeX代码。关键代码如图3所示。
完成Towxml渲染服务搭建后,在小程序中引入相应配置,并将试卷查看页面中response数据中的La⁃TeX代码进行转换,最后将转换结果传递给<towxml> 组件进行渲染,实现LaTeX代码的渲染效果,如图4所示。小程序搭建Towxml渲染服务的关键代码如下。
2.2 试卷提交
学生完成答题后,点击提交按钮提交试卷。为减少数据传输量,系统采用“题号+题目ID+题目类型:答案”的格式拼接答案字符串,并上传至后端进行处理。后端接收到答案数据后,自动批改客观题,并将结果返回给前端,显示客观题得分。试卷查看界面如图5 所示。
2.3 试卷批改
教师可在管理端查看和批改学生提交的试卷。对于只包含选择题和判断题的试卷,系统自动完成批改,教师可查看批改结果。对于包含主观题的试卷,需要教师手动批改。对含有填空、判断题的试卷,需要老师进行手动批改。教师可以查看系统自动批改的客观题结果,了解学生的答题情况,如图6所示。
3 结束语
本文设计并实现了一种基于LaTeX渲染的微积分在线测试微信小程序,通过将数学公式存储为La⁃TeX代码,并利用LaTeX渲染服务将其转换为高质量图片,有效解决了传统在线测试系统中数学公式显示不清、存储空间占用大的问题。相较于传统的图片存储方式,采用LaTeX存储和渲染数学公式具有显著优势:节省存储空间、提高图像质量。此外,LaTeX代码易于编辑和修改,并可以方便地转换为PDF、SVG、PNG、JPG等多种格式,以满足不同终端和设备的需求。该小程序能基本满足对学生进行阶段考核的需求,但测试主要运用的是选择题,并且小程序的试题查看界面和选择题选项的排版布局仍需进一步美化。未来可以在一些方面作改进,例如:开发更多题型、实现个性化学习推荐等。