新的 \@startsection 使文本翻倍并增加了太多空间

新的 \@startsection 使文本翻倍并增加了太多空间

我正在基于 制作自己的 documentclass article。我需要一种新的部分类型,因此我从我认为需要添加的相关代码中复制并改编了以下代码\subsection(至少在没有目录和其他内容的简单文档中)。如下所示:

%%
%% This is file `myclass.cls',
%% --------------------------------------------------------------
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{myclass}[My Class]
\newcommand\@ptsize{}
\newif\if@restonecol
\newif\if@titlepage
\@titlepagefalse
\if@compatibility\else
\DeclareOption{a4paper}
   {\setlength\paperheight {297mm}%
    \setlength\paperwidth  {210mm}}
\fi
\DeclareOption{12pt}{\renewcommand\@ptsize{2}}
\if@compatibility\else
\DeclareOption{oneside}{\@twosidefalse \@mparswitchfalse}
\fi
\if@compatibility\else
\DeclareOption{final}{\setlength\overfullrule{0pt}}
\fi
\if@compatibility\else
\DeclareOption{onecolumn}{\@twocolumnfalse}
\fi
\ExecuteOptions{a4paper,12pt,oneside,onecolumn,final}
\ProcessOptions
\input{size1\@ptsize.clo}
\setlength\lineskip{1\p@}
\setlength\normallineskip{1\p@}
\renewcommand\baselinestretch{}
\setlength\parskip{3mm plus 1mm minus 1mm}
\@lowpenalty   51
\@medpenalty  151
\@highpenalty 301
\setcounter{secnumdepth}{3}

\newcounter {clausula}
\renewcommand\theclausula {Cláusula \@arabic\c@clausula.ª --}
\newcommand\C{\@startsection{clausula}{2}{\z@}%
    {-0.5ex\@plus -1ex \@minus -.2ex}%
    {0.2ex \@plus .2ex}%
    {\centering\normalfont\large\bfseries}}
\pagenumbering{gobble}% Remove page numbers (and reset to 1)

但是,我不仅在Cláusula x.ª --部分名称本身之后和之前获得了额外的空间,而且还获得了一个仅包含部分名称的新段落,因此代码如下

\documentclass{myclass}
\begin{document}
\C{blah}
Text
\end{document}

显示为

                     Cláusula 1.ª --     another section
another section
Some text

我期望它显示为:

                       Cláusula 1.ª -- another section
Some text

为什么会发生这种情况?我该如何解决?

答案1

在此处输入图片描述

在课程末尾添加以下内容

\let\clausulamark\@gobble
\let\l@clausula\l@subsection

\def\@seccntformat#1{%
  \csname the#1\endcsname
  \expandafter\ifx\csname the#1\endcsname\theclausula\else\quad\fi}

相关内容