[LaTeX]ML课程作业模板bugs研究记录

在某课程上遇到的$\LaTeX$模板的bugs研究

今年头一次正式选了一门ML课程,第一周的作业就是用$\LaTeX$写一份介绍文档。

模板是老师提供的,而凡遇模板必有bug。今天就让哥会会它。

模板一览(关键信息已隐藏)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
\documentclass[twoside, openany]{cctbook}
\usepackage{graphicx}
\usepackage{Picins}
\usepackage{amssymb}
\usepackage{makeidx}
\usepackage{mathrsfs}
\usepackage{amsmath}
\usepackage{rotating}
\input vatola.sty
%\input psfig.sty
\input cyracc.def
\input amssymb.sty\TagsOnRight
\font\tencyr=wncyr10
\def\cyr{\tencyr\cyracc}
\newsymbol\wjzhml 203F%空集

...

\begin{figure}[t]
...
\end{figure}

...

拿到这个模板看第一眼我就感觉要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比较喜欢用的,这里包括Pincinspsfigvatola。我选择了快乐的手动下包法,直接上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]免得图片位置爆炸。

  • 还有的记不得了,反正哥调好啦~

参考链接

感谢以下链接的帮助: