我写了一个类文件,但我发现如果我想通过Stefan Kottwitz 提供的解决方案,缩进出现在“摘要”前面。这是 mwe,
\begin{filecontents}{mycls.cls}
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{mycls}
\LoadClass{article}
\newdimen\@bls
\@bls=\baselineskip
\renewcommand\section{\@startsection {section}{1}{\z@}%
{1.2\@bls plus .3\@bls minus .1\@bls}%
{5pt\@afterindentfalse}%
{\sffamily\large\bfseries\raggedright}}
\newbox\absbox
\def\abstract{\lrbox\absbox\minipage{\textwidth}%
\sffamily%
\hspace{-\fill}\section*{\normalsize\noindent Abstract}\vskip -1.5mm\relax%
}
\def\endabstract{\endminipage\endlrbox}
\def\keywords#1{%
\gdef\@keywords{\begin{minipage}{\textwidth}{\normalsize\sffamily \textbf{Keywords}}\\ \parbox[t]{\textwidth}{#1}\end{minipage}}}
\let\@keywords\@empty
\def\@maketitle{{\noindent\usebox\absbox\par}
{\vspace{20pt}%
{\noindent\normalsize\@keywords}\par}{\vskip2em\relax}}
\end{filecontents}
\documentclass{mycls}
\usepackage{lipsum}
\begin{abstract}
\lipsum[1]
\end{abstract}
\keywords{Hello}
\begin{document}
\maketitle
\lipsum[1]
\begin{equation}\label{eq:test}
a^2+b^2=c^2
\end{equation}
\lipsum[1]
\end{document}
但如果我添加代码
\expandafter\def\expandafter\normalsize\expandafter{%
\normalsize
\setlength\abovedisplayskip{40pt}
\setlength\belowdisplayskip{40pt}
\setlength\abovedisplayshortskip{40pt}
\setlength\belowdisplayshortskip{40pt}
}
在类文件中,输出将是
“摘要”和“关键词”前面有一些空格。
我想知道这个空格从哪里来的,怎么取消它。
答案1
{5pt\@afterindentfalse}%
是错误的,该参数应该是正数或负数长度。并且行尾有很多%
缺失,因此它们会在输出中产生空格。每次使用\normalsize
如上定义的 都会添加 4 个空格。
\expandafter\def\expandafter\normalsize\expandafter{%
\normalsize
\setlength\abovedisplayskip{40pt}%%one space
\setlength\belowdisplayskip{40pt}%% one more
\setlength\abovedisplayshortskip{40pt}%% a third
\setlength\belowdisplayshortskip{40pt}%% a fourth
}