一个精算学生的LaTeX学习经历
-
从一个精算学生的角度谈自己对latex的学习历程。
本文不介绍LaTeX入门的具体知识,仅以一个精算专业学生的角度来谈谈自己的LaTeX学习经历。人对自己不熟悉的事物会有本能的排斥,因此本文的目的是用我的学习经历帮助还不了解LaTeX的朋友建立熟悉感,这样后续的学习就会少很多阻力。至于正式的学习,互联网上不乏优秀的LaTeX入门的资料,建议通读《一份不太简短的LaTeX介绍》(安装完Texlive,在命令行输入:texdoc Ishort-zh,即可获取pdf文档)。
我第一次听说LaTeX这个词是在准备美国大学生数学建模竞赛的时候,时间是大一的寒假。和现在大家在精算考试前本能地想从各处(如微信公众号:精算后花园)搜刮经验贴一样,我看到有篇美赛的经验贴说“LaTeX是一个免费且强大的排版工具,美赛中用它排版论文毫无疑问是加分项。但不要轻易尝试,容易报错。”于是我下载安装了LaTeX的发行版之一——Texlive并开始了简单的入门。但最后比赛时还是用Word排的版,一方面比赛时间紧张,一方面对LaTeX不太熟悉,用来排版正式作品心里也没底。
后来大二大三就一直没碰LaTeX。直到大四,保研的事情尘埃落定,于是决定多写写公众号,于是重读了《一份不太简短的LaTeX介绍》,并用LaTeX对精算的知识点进行系统整理,排版精算师考试的讲义书籍等等。不用Word而用LaTeX的原因之一是LaTeX在处理数学公式上具有明显的优势,尤其是精算符号。上一则推文《如何有效记忆寿险精算符号?》的 PDF 文档就是用 LaTeX 排版的。其次,LaTeX处理长文档也很便捷。用 input 可以把整个书籍源码按章节分拆成多个子文档,结构更清晰,方便注释当前无需编译的章节,节省编译时间。而Word尽管也可以有子文档的形式,但长文档中的大量mathtype公式会变成图片,不利于后续的修改。Word有上千页文字时,打开都需要半天,更别说有数学公式了。但是LaTeX因为实现了内容和样式分离,输入时不会实时渲染出html(word其实是边输入边渲染成html来达到缩减即所得),所以LaTeX排版长文档时很稳定,无非是导出pdf慢一点,但不会出现程序突然崩溃的情况。我的CM1授课讲义已经写到了200多页,从来没出现latex卡死的情况。(顺便打个广告,需要精算课程在线辅导欢迎联系Jackie微信号:AGJackie)另外,录制精算课程需要制作PPT,这用LaTeX的beamer文类也可以实现。将排版精算书籍的文档源码稍微改动就可以生成类PPT的PDF,而且学术风十足,且方便交叉引用,将来用在毕业论文答辩PPT制作上也是个不错的选择。
大四下学期我去了某家保险公司的精算部实习。部门总打算排版一份精算制度汇编,在部门人手紧缺的情况下,这份艰巨的任务自然落到了精算部唯一的实习生Jackie身上。我花了一个月时间纯手打了100多页的精算制度,领导等不及了,于是接受领导的建议对剩下的600多页内容用插入PDF的形式进行排版,牺牲了一定程度的美观,但节约了时间。话说回来,这一个月的排版经历实实在在地提高了我的LaTeX水平,比如长表格,合并单元格,长公式的断行,等等。所以建议大家学习LaTeX使用的过程多上手操作,报错没关系,有搜索引擎帮你。多排几份文档就熟练了。实习结束时,我留下了排版的LaTeX源码并写了份简短的排版指南,以便后续更新。果然,前一阵子新的实习生来找我了……
下面再详细讲讲我用LaTeX排版书籍的过程。普通文档用LaTeX自带的文档类模版,如article,book即可。加宏包ctex或者xeCJK可以实现对中文排版的支持。打数学公式需要添加相应的数学公式宏包。加宏包actuarialsymbol可以方便地打出寿险精算符号。宏包XSIM可以实现习题册的排版,类似一个简易的题库系统。要让书籍排版得更加美观,最好选择一个适用的模版。LaTeX模版的制作需要自定义宏的知识,有一定的门槛,所以大多数用户(比如我)是用的别人做的模版。我排版的精算制度用的是ElegantBook的模版(TeX源码的github链接:https://github.com/ElegantLaTeX/ElegantBook
也有微信公众号,名为ElegantLaTeX)。正在排版中的精算书籍是把ElegantBook文档类模板和XSIM宏包一起用(冲突部分的代码要注释掉),这样可以很方便地管理各章的习题(分标签管理:IFoA,SOA,CAA等等)。最后,LaTeX在SCI论文的绘图上也有妙用。你能想象出来的图用TikZ和PGF宏包都可以画出来,而且非常精致,唯一缺点是比较耗时。这是我目前准备开始学习的内容,也是一个不亚于精算的大坑了。
-
@Jackie lz,这个github链接打不开了
-
@gyx_tx 是因为排版的问题~ 已经解决啦,再点击试试~