subsubsubsection 的新命令

subsubsubsection 的新命令

我已经为 subsubsubsection 创建了一个命令,如下所示:

\newcommand{\subsubsubsection}[1]{\paragraph{#1}\mbox{}\\}
\setcounter{secnumdepth}{4}
\setcounter{tocdepth}{4}

但现在我有一个带有长文本的标题。

我现在该命令\paragraph\paragraph[short title]{title}版本。

我如何修改我的声明以同时使用\subsubsubsection{title}\subsubsubsection[short title]{title}

答案1

在类文件中查找 的定义\paragraph;例如,在article.cls其中可以找到

\newcommand\subsubsection{\@startsection{subsubsection}{3}{\z@}%
                                     {-3.25ex\@plus -1ex \@minus -.2ex}%
                                     {1.5ex \@plus .2ex}%
                                     {\normalfont\normalsize\bfseries}}
\newcommand\paragraph{\@startsection{paragraph}{4}{\z@}%
                                    {3.25ex \@plus1ex \@minus.2ex}%
                                    {-1em}%
                                    {\normalfont\normalsize\bfseries}}

您想要的是将符号更改为第四个参数中的值,\@startsection并可能更改第五个参数以提供更小的垂直空间,因此您可以在序言中添加类似

\makeatletter
\renewcommand\paragraph{\@startsection{paragraph}{4}{\z@}%
                                    {-3.25ex \@plus-1ex \@minus-.2ex}%
                                    {0.5ex \@plus .1ex}%
                                    {\normalfont\normalsize\bfseries}}
\makeatother
\let\subsubsubsection\paragraph

添加\mbox{}\\绝对是错误的做法。

答案2

使用最新版本的xparse,可选参数可以在这里用第三个参数进行O初始化,因此可以工作。#3\paragraph[#2]{#3}

#1为星号版本保留,因此这里\subsubsubsection*也可以。

如果\paragraph也应该使用,则由于计数器问题,不建议使用此方法。

\documentclass{article}

\usepackage{xparse}

\NewDocumentCommand{\subsubsubsection}{sO{#3}m}{
  \IfBooleanTF{#1}{%
    \paragraph*{#3}\mbox{}%

  }{%
    \paragraph[#2]{#3}\mbox{}%

  }%
}
\setcounter{secnumdepth}{4}
\setcounter{tocdepth}{4}

\begin{document}
\tableofcontents
\section{Foo}
\subsection{Foobar}
\subsubsection{Foofoobar}
\subsubsubsection{Foofoofoobar}

\subsubsubsection[Short foo]{Foofoofoobar}

\subsubsubsection*{Not in ToC and unnumbered} 


\end{document}

答案3

如果您也想像往常一样\subsubsubsection使用,则需要一个自己的计数器和一个重置。\paragraph

\documentclass{scrartcl}
\setcounter{secnumdepth}{4}
\setcounter{tocdepth}{4}
\newcounter{subsubsubsection}

\DeclareNewSectionCommand[
  style=section,
  level=4,
  beforeskip=-3.25ex plus -1ex minus -.2ex,
  afterskip=1.5ex plus .2ex,
  counterwithin=subsubsection
]{subsubsubsection}
\RedeclareSectionCommand[level=5]{paragraph}
\RedeclareSectionCommand[level=6]{subparagraph}

\begin{document}
\tableofcontents

\section{foo}
\subsection{foo}
\subsubsection{foo}
\subsubsubsection[FOO]{foo}
\paragraph{foo}

\section{bar}
\subsection{bar}
\subsubsection{bar}
\subsubsubsection[BAR]{bar}
\paragraph{bar}

\end{document}

在此处输入图片描述

相关内容