在使用MikTex2.9编译网上下载的Latex模板时,产生了一些问题,现摘要如下:
1. 打开文件乱码问题
所有的文件的注释都是乱码,是因为文件使用了GBK等其它非Unicode的编码方式。可以使用Notepad++或者其它记事本软件另存为Unicode格式的文件,Texworks就能正常显示了。
2. 编译时出现“Package keyval Error: twosideshift undefined”的错误
这是因为最新版Geometry包删除了compat2 和 twosideshift 选项。参看geometry的说明文档:compat2 and twosideshift. The version 5 has nolonger compatibility with the previous ones. compat2 and twosideshift are gone forsimplicity.所以这两个选项不能使用了。
解决方法:找到导言区(./setup/package.tex) 中的(关于twosideshift 的第32行,不同大学的模板行数不定)注释掉,即修改为
\usepackage[%paperwidth=18.4cm, paperheight= 26cm,
body={14.6true cm,22.0true cm},
%twosideshift=0 pt,
%headheight=1.0true cm
]{geometry}
就可以了。
3. 出现“无法找到包hypernat.sty”的问题
首先我在Miktex2.9的package manager里面找到hypernat,但是加载时总是报错。于是我同步了一下package,再安装就可以了。但是在编译的时候还是报错,提示找不到hypernat.sty文件。上网找了下原因,猜测可能是从Miktex2.8开始就不支持hypernat包了(使用hyperref包时可能会用到hypernat)。最后我在网上下载了一个包,然后将解压的文件放在编译目录下,该问题就解决了。
文件下载地址:hypernat
4. 出现begin{publist}?的问题
在模板使用说明中,出现“不能把 reference.bib 清空,如果已清空,先不要用 bibtex 编译,否则会出现missing \item 的错误”的说明。因此,可能是误用bibtex编译了某个文件。解决方法,就是删除编译的中间文件,尤其是bbl文件,然后重新编译即可。
5.出现\begin{algocf@algorithm} on input line 134 ended by \end{algorithm}的错误
这是algorithm2e的包更新了,不支持双语。因此,要么将algorithm2e的所有命令删除掉;要么将旧版本的algorithm2e包包含进来。
6.出现无法找到“enumerate”问题
因为模板使用了enumitem宏包,而enumitem宏包与enumerate宏包冲突,所以无法找到。如要使用,在cls中注释掉enumitem宏包即可。