我收到一个cls
用于文档的 for ,! Undefined control sequence
当与pdfTeX, Version 3.141592653-2.6-1.40.22 (MiKTeX 21.3)
! Undefined control sequence.
\@maketitle ...ace {\z@ }}\end {center}\@abstract
\vspace {3.0em}\par \vskip...
我尝试缩小问题范围并创建了一个简化的cls
和相应的 MWE。
该类的创建者似乎试图获取摘要的内容并将其存储起来以供修改后的maketitle
命令使用。该方法类似于这里。
我尝试了几种方法,但无法修复错误。有什么想法吗?
分类
\ProvidesClass{test}[2021/03/22 v0.1 Test class]
% Set up basic geometry
\LoadClass[10pt,a4paper,parskip=half]{scrartcl}
% Define title
\let\test@maketitle\maketitle
\renewcommand{\maketitle}{
\twocolumn[
\test@maketitle
\large%
\begin{center}{%
\bfseries \abstractname\vspace{-0.7em}\vspace{\z@}%
}\end{center}%
\@abstract%
\vspace{3.0em}%
]
\thispagestyle{empty}
}
% Change title command
\renewcommand{\@maketitle}{%
\begin{center}%
\let\footnote\thanks%
{%
\Large\bfseries%
\expandafter\uppercase\expandafter{\@title}%
\par%
}%
\vskip 1.5em%
{%
\Large\lineskip .5em%
\begin{tabular}[t]{c}%
\@author%
\end{tabular}%
\par%
}%
\vskip 1em%
{%
\large\@date%
}%
\end{center}%
\par\vskip 1.5em%
}
% Renew abstract command to store the abstract
\renewcommand{\abstract}[1]{
\def\@abstract{#1}
}
平均能量损失
\documentclass{test}
\usepackage{lipsum}
\title{MWE}
\author{raedma}
\begin{document}
\maketitle
\begin{abstract}
\lipsum[1]
\end{abstract}
\section{Introduction}
\lipsum[1]
\end{document}
答案1
由于\@abstract
由使用\maketitle
,因此您需要输入摘要前 \maketitle
形式为
\abstract{This is the text of the abstract}
因此下面的代码应该可以工作。
\documentclass{test}
\usepackage{lipsum}
\title{MWE}
\author{raedma}
\abstract{\lipsum[1]}
\begin{document}
\maketitle
\section{Introduction}
\lipsum[1]
\end{document}
该类可能会做得更好,作为的一部分\maketitle
,重新定义\abstract
以发出有关正确语法和位置的错误消息或警告\abstract
。