mxbook是一套面向中文学术写作(后续将更新英文)的现代书籍模板,希望在严谨的学术结构与舒适的阅读体验之间取得平衡,帮助数学、经济学和精算学等领域的用户更加高效地制作教材、讲义和笔记等内容。在ctexbook文类的基础上,本模板重新全面设计视觉体系(包括封面、封底、目录、内容页、留白页、索引页和参考文献页等),对常用公式和符号的代码进行简化,并集成了丰富的自定义环境(包括导读、提示、定义、例题、解答和证明等),功能强大、高度自动化。
说明:此模板说明文档首发于我的公众号“墨相”,后续将上传至我的个人主页,并随模板内容保持更新。当前,模板仍在不断改进,.cls 文件尚未直接公开发布,仅小范围传播和交流。如若有使用需求,欢迎通过邮件联系与我联系并说明使用需求(hzzzliu@gmail.com)。
在B站的一些评论区分享过mxbook早先版本的一些应用实例,之后收到一些用户私信,关于购买或索要模板、抑或是交流模板的制作经验。对此,我一贯的观点是(摘自一段回复):
我的经验是:尝试尽可能用来录入文档(包括文章、书籍和演示文稿等),从而对常用的代码做到熟练;当遇到某些繁琐且常用的代码片段或环境时,尝试用
\newcommand或\newenvironment替代为更高效的自定义代码。此外,学习他人模板的解决方案而非直接使用——自己创建一个.cls文件,之后根据技术的精进和审美的变迁不断调整模板的整体视觉体系、优化代码和增加自定义环境。
值此说明文档即将发布之际,或可以简单聊聊该模板的形成历程,亦即我的使用“简史”。
1 从无到有
从与相遇至今,已有数年。
初见的产出是在2021年的冬天,是一位老师制作的圆锥曲线讲义。那时觉得默认的公式字体比其他商业软件更优雅,仅因此便被深深吸引。后来,2021年暑期,通过耿楠教授的公开视频、刘海洋的《入门》和官方手册系统入门,从此开始摸索这套排版系统的工作流。
早期使用以编辑一些零碎的讲义,为当时兼职教研的某机构的工作。记得生成的第一份文档是一道高中数学联赛的圆锥曲线大题的解析,用以远超从前的速度很快完成解析的编辑,感觉很爽。现在回想,那些产出主要还是直接使用CTeX套件自带的ctexart和ctexbook文类,很笨重地用\noindent等命令去实现一些样式,此外最多额外添加一些tcolorbox 宏包默认的黑白色框。
这一时期,没有任何个性化的使用,但有很多的练习和摸索。在学习和工作中,我尝试用的尽可能地替代原来Word和PowerPoint的使用场景,因此对的文档结构和常用宏包命令越发熟悉。那段时间,最具代表性的产出是和老师合著的《圆锥曲线讲义》——仅有一个主文件(即只有一个.tex文件;那时候甚至还不知道\include命令),且是完全使用ctexbook文类的样式。虽然比较遗憾,成稿之际,恰是2022年春节前夕,机构高中业务受双减政策的影响,讲义出版计划中止。然而,仍觉得在编制的过程中有很大的收获,特别是从老师那里领悟的“面向对象写作”的思想。
2 择善而从
“道生一,一生二,二生三,三生万物”。当文档中基本元素的录入不成问题后,就可以开始追求更复杂的元素(姐姐说,使用是根据需求不断学习新功能)和样式的设计感。
虽然讲义出版未果,但仍另有他用,便在交付前考虑优化整体的设计感。由于那时能力尚不足,因而只能在网络上搜索模板。在Google上搜索“ Template”,最靠前的结果是Overleaf的模板页。各种样式映入眼帘,让人感到应接不暇,其中最中意的是TheLegrandOrangeBook 。于是,基于这套模板,把.cls文件中全部的环境标识修改为中文,并把封面和章头的图片替换为众望绘制的“余生山海”的黑白版,暂时地形成了一套初具个性化的模板。仍记得,讲义要分发的前一天仍未交付,我说还想把原来的文档整体迁移到新的模板。开始担心时间来不及,但还是完成了,非常激动。

在后来的很长一段时间都在对各类模板(无论是book还是beamer)的class文件进行摸索。虽然在期间也产出了不少作品,例如对上海交大的beamer模板进行改进,制作了自己学校经济学院的beamer模板,并以此产出了几课时的精算统计课件,但仍觉得不满足于此——无论何种模板,其代码数量都太过庞大,在大模型还不够发达的当时,很难自己把文档的结构和逻辑给读明白,更难在此基础上创造出自己的模板,因此也非常犹豫是否要重新开始。
3 破后而立
第一次在使用过程中遇到很大的问题是在大二第二学期,进入《生存模型与生命表》等有更多复杂的精算符号的课。由于在中,精算符号的录入依靠的是actuarialsymbol 宏包。然而,由于先前使用的模板大都具有数量庞大的代码,且都不一定按习惯的先调用宏包,后自定义命令和环境的逻辑书写,因此引入新宏包和诸多代码简化的过程变得非常不顺利。因此,从该学期的《生存模型与生命表》和《风险模型》两门课起,开始尝试写自己的模板。
由于从之前习惯使用的TheLegrandOrangeBook 或ElegantBook 中迁移常用模块非常困难,因此只好从零开始。仍记得,由于那时大模型不发达,只好翻着知乎研究.cls文件的逻辑和语法,并从\NeedsTeXFormat 和\ProvidesClass 开始从头摸索。
那段时间,比较代表性的产出是《生存模型与生命表》、《风险模型》和《概率论》等学科笔记,即用mxbook最早期版本产出的第一批笔记。虽然mxbook仍基于ctexbook 文类,样式上似乎差别不大,但实际上添加了大量的自定义命令和一些常用的定义、例题等环境。

4 一日千里
从mxbook早期样式粗糙的版本至今,历经两次重大更新。
之一,在大三的某节《保险经济学》课上,坐在最后整理《非寿险精算学》的课程笔记。发呆愣神之际,突发奇想让单调的笔记模板更醒目一些,便做如下构想:首先,选定模板的主题色(记得当时从中国色的网站中选取了一种名字好听的青蓝色);其次,基于在工作室的公众号中看到的tcolorbox的样式,忽觉可以把例题和定理等环境都做修改。
于是,历经一下午捣鼓,改进出mxbook的第二版,即我的主页里公开的笔记所使用版本;同时,基于该模板中的配色和框的设计,还改出了第一版的mxbeamer模板(已弃用):


这套mxbook的第二版在改进中使用了很久,也产出了很多很多文档。最具代表性的例如分享在个人主页中的Notes页中的《中级经济学笔记(第二版)》和考研数学基础笔记等。

之二,今年年初,从事编程相关工作的舅舅来家里时,当时正好苦于MacOS版本更新后中的字体集映射出现问题,便向他请教。解决我的问题之余(实则没解决,最后大神Clerk Ma给出了解决方案),我们也对学习和整理知识的模式交流了一些看法。
他提到,在大模型盛行且仍不断发展的当下,知识的获取和知识库的形成越来越容易。即使如我这样,通过不短的时间的摸索和实践,对的工作流初具理解,也会很容易被ChatGPT 以更高效的方式所替代。
诚然,这两天颇有体会。在小红书上刷到了由ChatGPT 5.6 的work模式制作、基于ElegantBook模板的大量直接生成的讲义,抑或是大模型生成的经典教材译作。百感交集。
其实一直有这样的想法,当时间富裕之际,把很喜欢的两本教材——London的Survival Models and Their Estimation和Dickson et al.的Actuarial Mathematics for Life Contingent Risks给精读并翻译成中文,结果已经有了如此快速和高效的方式。然而,转念一想,如若真要对这两本书进行翻译,为力求语言精准,可能仍然会使用ChatGPT 来辅助阅读和翻译,这点颇显讽刺😂 然则,这似乎也意味着在这个生产力剧变的时代,需要一种新的模式:以人自身为主体,在明确方法和目的的前提下,AI工具作为辅助,建立更高效的工作流。
正如最近有句很流行的话:“在AI时代,仍然坚持手搓”。在这个场景下,我的理解是:用AI工具改进原先的mxbook 2.0 ,这也是mxbook 3.0(当前版本)诞生的契机;同时,AI作为辅助工具,可用于协助我理解知识,但我仍然不愿意将数据源喂给AI直接生成最终的产出。
因此,我仍自豪于对工作流的熟练使用,也仍愿意继续不断耕耘我的笔记、更新模板。我想,这也是值此第三版模板的说明文档发布之际,回望学习和使用的来时路的意义所在。

