TikZ 与大学论文类文件之间的冲突

TikZ 与大学论文类文件之间的冲突

使用我大学的论文类文件和 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}

相关内容