在某课程上遇到的$\LaTeX$模板的bugs研究
今年头一次正式选了一门ML课程,第一周的作业就是用$\LaTeX$写一份介绍文档。
模板是老师提供的,而凡遇模板必有bug。今天就让哥会会它。
模板一览(关键信息已隐藏)
1 | \documentclass[twoside, openany]{cctbook} |
拿到这个模板看第一眼我就感觉要gg(最近刚刚从CTEX换成最新的TeXLive+TeXStudio套装)。这模板开头就送我一句:
1 | \usepackage{Picins} |
这个包是老版本的包,在CTEX中常见,自从换了新底层TeXLive我就不用它了。
有哪些bugs
简单地用XeLaTeX编译一下,warnings可以不管,但是一片报错可是太难了。研究过程艰辛而快乐,就不写了,下面说说哪些地方bugs比较严重。
老式模板需要更换
首先是开头的声明就会报错:
1 | \documentclass[twoside, openany]{cctbook} |
原因是cctbook版式适合CTEX,但是新的TeXLive并不会识别这样的老版式,解决方法是更换一个兼容的版式:
1 | \documentclass[twoside, openany]{ctexart} |
各种宏包的缺失
这里主要是老版本的包很麻烦,尤其是CTEX比较喜欢用的,这里包括Pincins,psfig和vatola。我选择了快乐的手动下包法,直接上Ctan下载对应的sty文件放在tex文件同目录下即可。
重复调用宏包
注意模板里有个重复的地方,在已经\usepackage{amssymb}的情况下,下文又\input amssymb.sty,这虽影响不大,但是warning是少不了,直接注释比较舒服:
1 | %\input amssymb.sty |
其它麻烦的小东西
第一个是这个奇怪的符号定义
\newsymbol\wjzhml 203F%空集,不管它可以,会有个warning。第二个是省略的
...中各种奇怪的定义,很多规则似乎已经落后了,所以会有规则冲突,会报很多warnins,不过TeXStudio直接忽略,能生成pdf就可以。第三个是
\begin{figure}[t],直接改成\begin{figure}[h]免得图片位置爆炸。- 还有的记不得了,反正哥调好啦~
参考链接
感谢以下链接的帮助: