cexam试题编写宏包

cexam.sty是我开发的一款用来编写试题的宏包,2022年之前我是一名高中物理教师,所以在工作中不可避免的会遇到输入数学公式的问题,同时我也希望能够将自己多年的备课及解决的疑难问题记录下来,以备学生们在复习时或者刚开始学习物理的同学作为教材的补充使用.历经各种困难,最后找到了LaTeX,发现了这个举世无双的神奇软件.2016年自学了一年的宏包编写,成功解决了高中的物理数学试卷的排版问题。但是之前直接写的sty文件和cls文件,实现了选择、填空、计算等题型的自动排版,同时实现批量处理各种题型、实现数学与图片的排版、自动生成beamer文档、生成答题卡、教师与学生不同模式排版。但是后来发现,功能越多代码越复杂,很难维护,同时也少了一份使用说明,所以写本文档,有两个目的:

  • 方便代码的维护和升级;
  • 方便参考此说明使用它排版试卷。
  • 当前(2023-11-12 17:36)版本号v3.4.0

本项目地址:https://gitlab.com/fengzhenhua/cexam

历史

  • 2023-11-12 17:32 正式开放宏包cexam.sty,供个人免费使用,商用需经过本人授权
  • 2023-11-12 17:33 由于l3kernel 2023-05-15开始,强制要求引擎支持 primitive \\expanded,它是 e-type expansion 的基础, 这直接导致了基于l3docctxdoc出现问题,所以之前的源代码文档cexam.dtx出现了一些问题,首先是\^\^A重新定义成了\^\^M, 今天改过来了。但是ctex宏集默认是不提供ctxdoc.cls的升级的,所以当前系统没有得到更新,于是不能正常编译cexam.dtx, 同是为了目录的方便缩写了各习题示例的小标题。这里直接通过https://github.com/CTeX-org/ctex-kit 克隆下support后,把新的ctxdoc.cls放到cexam.dtx源文件文件夹内,解决问题。这个具体的ctxdoc.cls问题参考其 issue#678