如何避免 \**displayskip 造成的缩进?

如何避免 \**displayskip 造成的缩进?

我写了一个类文件,但我发现如果我想通过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
            }

相关内容