我正在努力为自己和实验室中的其他人创建一个论文模板。然而,我在创建专门的抽象环境方面遇到了困难。作为 MWE(最小破损示例),我有以下内容作为“sample.cls”文件
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{sample}[2016/01/29 Sample]
\DeclareOption*{
\ClassWarning{sample}{No options permitted}
}
\ProcessOptions\relax
\LoadClass{report}
\newenvironment{abstractpage}{
{
\begin{center}
%set the default font style to bold face extended for the abstract page
\fontseries{bx}
\selectfont
\Large ABSTRACT \\
\hfill \\
\large \@title\\
\hfill \\
\normalsize \@author
\end{center}
\vfill
\quotation\noindent
}
{
\endquotation
\vfill
}
}
和
\documentclass{sample}
\usepackage{lipsum}
\begin{document}
\author{Andrew}
\title{Hello World}
\begin{abstractpage}
\lipsum[1]
\end{abstractpage}
\end{document}
作为“.tex”文件。然后我尝试使用 pdflatex 编译 tex 文件
当我尝试编译时我得到了
runawayargument?
! file ended while scanning use of \@newenv.
我无论如何也想不出为什么。我检查了所有的括号,我从默认抽象类本身中得到了这个想法(根据在书中定义抽象环境)
有人看出这有什么问题吗?
答案1
您的代码中存在一些错误:主要错误是括号不匹配。
其次,\hfill\\
是不要做;在\noindent
你需要之后\ignorespaces
。最后,你会得到一堆不受保护的行尾,虽然在这个特定情况下可能无关紧要,但%
在任何地方都使用正确的行尾是一个好习惯。
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{sample}[2016/01/29 Sample]
\DeclareOption*{%
\ClassWarning{sample}{No options permitted}%
}
\ProcessOptions\relax
\LoadClass{report}
\newenvironment{abstractpage}
{%
\begin{center}
%set the default font style to bold face extended for the abstract page
\bfseries
{\Large \MakeUppercase{\abstractname} \\[\bigskipamount]}
{\large \@title\\[\bigskipamount]}
\@author
\end{center}
\vfill
\quotation\noindent\ignorespaces
}
{%
\endquotation
\vfill
}
不要说\fontseries{bx}\selectfont
;\bfseries
是更好的,因为字体系列没有必要定义系列bx
。
最好使用\abstractname
,而不是硬连线“抽象”。
在测试文档中我使用了\lipsum[1-2]
这样的方式来显示第二段的缩进。