如何解决文档类(.cls)文件中未定义的控制序列

如何解决文档类(.cls)文件中未定义的控制序列

我必须编写一个带有 2 个参数的文档类(一个参数提供徽标,另一个提供棋盘)。这两个参数的代码运行良好,但我遇到了一些错误,我不知道如何修复它们。每个错误都在第 119 行(\ProcessOptions\relax),但这没有任何意义。我读到如果某些内容不是最新的,则可以修复 Latex 钩子错误,但我今天更新了所有内容,所以这不是问题。我不知道我的类中是否有拼写错误(看不到)或其他地方有错误,所以我将我的错误以及我的 .cls 和我的 .tex 放在下面。

Latex 错误

.cls

%----------------------------------------%
%       Important Stuff for Class        %
%----------------------------------------%
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{HTWself}[2022/21/27 Example class]



%-------------------%
%       Packages    %
%-------------------%
\RequirePackage[RGB]{xcolor}
\RequirePackage{xifthen}
\newboolean{cover}


\definecolor{htw}{RGB}{125, 173, 24}


\RequirePackage[utf8]{inputenc}
\RequirePackage[german]{babel}
\RequirePackage[T1]{fontenc}
\RequirePackage{amsmath}
\RequirePackage{amsfonts}
\RequirePackage{amssymb}
\RequirePackage{graphicx}
\RequirePackage{xcolor}
\RequirePackage{colortbl}
\RequirePackage{blindtext}
\RequirePackage{color}
\RequirePackage{wrapfig}
\RequirePackage{caption}
\RequirePackage{subcaption}
\RequirePackage{colortbl}
\RequirePackage{hyperref}


\RequirePackage{pstricks}
\RequirePackage{multido}
\RequirePackage{pst-plot}
\RequirePackage{auto-pst-pdf}


\setlength{\parindent}{0pt}

\renewcommand{\normalsize}{\fontsize{9}{10}\selectfont}

%---------------%
%   Parameters  %
%---------------%

\DeclareOption{htwLogo}{
\setboolean{cover}{true}
\begin{document}

\begin{pspicture}[showgrid=false](0,0)(14,5)


\multido{\iA=1+2}{2}{
    \multido{\iB=1+1}{2}{
        \psset{origin={\iA ,\iB}}
        \psframe[linecolor=htw,fillstyle=solid,fillcolor=htw](1,1)
        }
    }
\multido{\iA=8+2}{3}{
    \multido{\iB=2+1}{2}{
    \psset{origin={\iA ,\iB}}
    \psframe[linecolor=htw,fillstyle=solid,fillcolor=htw](1,1)
    }
}

\multido{\iA=2+4}{2}{
    \multido{\iB=3+0}{1}{
    \psset{origin={\iA ,\iB}}
    \psframe[linecolor=htw,fillstyle=solid,fillcolor=htw](1,1)
    }
}

\multido{\iA=6+7}{2}{
    \multido{\iB=1+0}{1}{
    \psset{origin={\iA ,\iB}}
    \psframe[linecolor=htw,fillstyle=solid,fillcolor=htw](1,1)
    }
}
\rput[b](7.4,0){\Large{Hochschule für Technik und Wirtschaft Berlin}}
\psframe[linecolor=htw,fillstyle=solid,fillcolor=htw](1,4)(2,5)
\psframe[linecolor=htw,fillstyle=solid,fillcolor=htw](5,2)(6,5)
\psframe[linecolor=htw,fillstyle=solid,fillcolor=htw](9,1)(12,2)

\psline[linecolor=htw,linearc=0.5](3,4)(4,4)(4,3)
\psline[linecolor=htw,linearc=0.5](5,2)(5,1)(6,1)
\psline[linecolor=htw,linearc=0.5](8,2)(8,1)(9,1)

\end{pspicture}
\end{document}}

\DeclareOption{htwWeiteres}{
\setboolean{cover}{false}
\begin{document}

\begin{pspicture}(8,8)
\psframe(8,8)
    \multido{\iA=0+2,\iC=20+20}{4}{
        \multido{\iB=0+2}{4}{%
            \psset{origin={\iA ,\iB}}
            \psframe[fillstyle=solid,fillcolor=blue!\iC](1,1)\psframe[fillstyle=solid,fillcolor=blue!\iC](1,1)(2,2)
            }
        }
    
\end{pspicture}
\end{document}}


%------------------------------%
%       Important Class        %
%------------------------------%
\DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}}

\ProcessOptions\relax

\LoadClass[a4paper,titlepage,10pt]{article}


\newcommand{\Cover}{

\ifthenelse{boolean{cover}{
\begin{titlepage}
\centering




\begin{figure}
\centering
\includegraphics[scale=1]{htw-berlin logo.jpg}
\end{figure}



{\LARGE\bfseries Modul:}


\vspace{2cm}

{\large Name:}\\
{\large Matrikelnummer:}

\vspace{0.1cm}

{Berlin, \today}





\end{titlepage}}{

\begin{titlepage}
\centering




\begin{figure}
\centering
\includegraphics[scale=1]{htw-berlin logo.jpg}
\end{figure}



{\LARGE\bfseries Prüfung im Modul:}


\vspace{2cm}

{\large Name:}\\
{\large Matrikelnummer:}

\vspace{0.1cm}

{Berlin, \today}





\end{titlepage}}
}

\endinput

.tex

\documentclass[htwLogo]{HTWself}



\begin{document}
\Cover

\newpage

\begin{pspicture}[showgrid=false](-5,-5)(5,5)
    \psgrid[
        gridcolor=black!20,
        subgriddiv=1,
        gridlabels=0pt
    ]
    \psaxes[
        ticks=all,
        mathLabel=false,
        showorigin=false,
        labelFontSize=\tiny
    ]{->}(0,0)(-5,-5)(5,5)[x,0][y,90]
\psset{algebraic}
\multido{\rP=1.5+-0.35,\iC=100+-20,\rV=0+0.5}{4}{
    \psplot[linewidth=\rP pt,linecolor=blue!\iC]{-3.5}{3.5}{0.005*x^(5)+\rV}
}

    
\end{pspicture}

\end{document}

答案1

错误信息是

! Undefined control sequence.
<argument> \Large 
                  {Hochschule für Technik und Wirtschaft Berlin}
l.119 \ProcessOptions\relax
                           
? 

因为\Large未定义。稍后会定义,当您加载article类时,您应该将处理延迟到类加载之后。

你的构造

\DeclareOption{htwLogo}{
\setboolean{cover}{true}
\begin{document}

在选项中启动文档确实很奇怪,并且可能会产生许多此类错误。强烈建议不要在类中的任何位置启动它。主 tex 文件应该有\begin{document}实际上它 \begin{document}因此,您有两个,但无法工作。

另外,你的定义\Cover缺少结尾}

相关内容