使用我大学的论文类文件和 TikZ 包编译文档时,我收到一条错误消息(缺少数字,视为零)。有人知道我该如何解决这个问题吗?
\documentclass[phd,bottom,nosig]{usbthesis}
\usepackage{tikz}
\begin{document}
Test 1-2-3
\end{document}
该类文件可以在这里找到:
http://graduate.physics.sunysb.edu/faq/thesis_template/usbthesis.cls
答案1
改变usbthesis.cls
行:
\renewcommand{\year}[1]{\newcommand{\@year}{#1}}
到,
\newcommand{\myyear}[1]{\newcommand{\@year}{#1}}
并在您的文档中使用\myyear
而不是。\year
它看起来像是pgfmathfunctions.random.code.tex
用来\year
生成随机种子的。由于该类\year
在该文件中使用之前重新定义,因此您会收到错误。
答案2
该类文件错误地重新定义了\year
,它是当前年份的 TeX 宏,用于pgf
在加载时设置随机数种子。
按照 Peter Grill 的建议,改变加载包的顺序将解决 MWE 问题,但其他问题可能仍然存在。
在下文中,使用\setyear
而不是\year
来自类:
\let\oldyear\year
\documentclass[phd,bottom,nosig]{usbthesis}
\let\setyear\year
\let\year\oldyear
\errorcontextlines=\maxdimen
\usepackage{tikz}
\begin{document}
Test 1-2-3
\end{document}
您或许也应该为 做类似的事情\month
。
如果你能够告诉大学修复他们的课程文件,那么 Scott H. 的回答是更好的选择(\mymonth
也带有)。
答案3
如果你不想更改文件,.cls
你可以简单地添加
\RequirePackage{tikz}
之前\documentclass
。
代码:
\RequirePackage{tikz}
\documentclass[phd,bottom,nosig]{usbthesis}
%\usepackage{tikz}% no longer needed.
\begin{document}
Test 1-2-3
\end{document}