我已经为 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}