乳胶切片低于子段

乳胶切片低于子段

我正在尝试创建一个允许在子段落下进行分段的 latex 类。为此,我修改了article.clstexlive 发行版的类,添加了两个选项\thesubsubsubsection\thesubsubsubsubsection。所以现在,分段树如下所示:

\thesection  
\thesubsection  
\thesubsubsection  
\thesubsubsubsection  
\thesubsubsubsubsection
\theparagraph  
\thesubparagraph

请参看下文myarticle.cls以及mysectioning.tex由此产生的mysectioning.pdf

我在编号、目录和章节格式方面实现了想要的效果。我遇到的唯一问题是,在新的两个标题\thesubsubsubsection和中\thesubsubsubsubsection,标题标题在下一段中以缩进文本的形式重复出现(请参阅下面的第 1.1.1.1 和 1.1.1.1.1 节)。

你知道我该如何避免这种行为吗?

非常感谢您的帮助和想法!
Sebastian

我的文章.cls

我的切片.tex

我的切片.pdf

我的文章 PDF 文档

答案1

标题的重复源于对部分内容的呼吁标记也就是说,每个编号的部分单元\<section>都有一个关联的\<section>mark,用于将内容打印到页眉/页脚。LaTeX 内核将这些(而不是类)定义为

\let\sectionmark\@gobble
\let\subsectionmark\@gobble
\let\subsubsectionmark\@gobble
\let\paragraphmark\@gobble
\let\subparagraphmark\@gobble

这样他们都可以没有什么(它们是\@gobble它们的论点)但它们是有定义的。因此,你需要添加

\let\subsubsubsectionmark\@gobble
\let\subsubsubsubsectionmark\@gobble

在类文件的某个地方,它们至少被定义。

您可能想知道,既然调用了未定义的标记,为什么没有报告错误……?那是因为它们是通过使用以下方法通过c控制s序列构造调用的

\csname <section>mark\endcsname

\@sect以下是-的摘录\@startsection当您执行应编号的通用部分单元时:

\def\@sect#1#2#3#4#5#6[#7]#8{%
  \ifnum #2>\c@secnumdepth
    \let\@svsec\@empty
  \else
    \refstepcounter{#1}%
    \protected@edef\@svsec{\@seccntformat{#1}\relax}%
  \fi
  \@tempskipa #5\relax
  \ifdim \@tempskipa>\z@
    \begingroup
      #6{%
        \@hangfrom{\hskip #3\relax\@svsec}%
          \interlinepenalty \@M #8\@@par}%
    \endgroup
    \csname #1mark\endcsname{#7}% <=================== Call the sectional unit mark
    \addcontentsline{toc}{#1}{%
      \ifnum #2>\c@secnumdepth \else
        \protect\numberline{\csname the#1\endcsname}%
      \fi
      #7}%
  \else
    \def\@svsechd{%
      #6{\hskip #3\relax
      \@svsec #8}%
      \csname #1mark\endcsname{#7}%
      \addcontentsline{toc}{#1}{%
        \ifnum #2>\c@secnumdepth \else
          \protect\numberline{\csname the#1\endcsname}%
        \fi
        #7}}%
  \fi
  \@xsect{#5}}

突出显示的宏显示对标记的调用。如果不知道控制序列,这种类型的调用不会报告错误。

相关内容