编译问题(颜色)

编译问题(颜色)

我在 LaTeX 中有此代码(.cls 文件是这里):

\documentclass[thesis=B,czech]{FITthesis}[2012/06/26]

\usepackage[utf8]{inputenc}

\usepackage{graphicx}

\usepackage{dirtree}

\usepackage{amsmath,amsfonts,amssymb,amsthm}
\usepackage{comment}
\usepackage{longtable}
\usepackage{booktabs,multirow}

\usepackage{tikz}
\usetikzlibrary{shapes.geometric,calc,arrows,decorations.markings,decorations.pathmorphing}

\begin{document}
\begin{center}
\begin{tikzpicture}[scale=2]
    \draw (1,0) -- (0,0) -- (0,1);
\end{tikzpicture}
\end{center}
\end{document}

...我有一个错误:

! Undefined control sequence.
\set@color ...\@pdfcolorstack push{\current@color 
                                              }\aftergroup \reset@color 
l.65 \begin{document}

如何修复?

答案1

在其中第 395-399 行中FITthesis.cls发现:

\AtBeginDocument{
    \if@langczech\frontmatter*\else\frontmatter\fi %cislovani stranek pred prvni kapitolou
    \thispagestyle{empty}
    \if@langczech{Sem vlo{\v z}te zad{\' a}n{\' i} Va{\v s}{\' i} pr{\' a}ce.}\else{Insert here your thesis' task.}\fi

这揭示了罪魁祸首:使用的代码\AtBeginDocument仍然是序言的一部分,并且类正在使用钩子来排版信息(在我上面显示的代码的第四行中);这当然会产生错误。我看到的唯一补救措施(也许有更好的选择)是编辑文件.cls并替换行

\AtBeginDocument{

有两条线

\RequirePackage{etoolbox}
\AfterEndPreamble{

所以新的线条看起来会像这样

\RequirePackage{etoolbox}
\AfterEndPreamble{
    \if@langczech\frontmatter*\else\frontmatter\fi %cislovani stranek pred prvni kapitolou
    \thispagestyle{empty}
    \if@langczech{Sem vlo{\v z}te zad{\' a}n{\' i} Va{\v s}{\' i} pr{\' a}ce.}\else{Insert here your thesis' task.}\fi

\AfterEndPreamble来自的描述etoolbox

\AfterEndPreamble{<code>}此钩子与 的不同之处在于\AtBeginDocument,代码是在 的最后\begin{document}、在任何\AtBeginDocument代码之后执行的。

您应该联系该类的作者/维护者并报告此错误。

相关内容