在自定义类中创建抽象的问题

在自定义类中创建抽象的问题

我正在努力为自己和实验室中的其他人创建一个论文模板。然而,我在创建专门的抽象环境方面遇到了困难。作为 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]这样的方式来显示第二段的缩进。

在此处输入图片描述

相关内容