如果 \subsubsection 不存在,则自定义 \theparagraph

如果 \subsubsection 不存在,则自定义 \theparagraph

尝试\theparagraph根据是否存在来重新定义输出数字\subsubsection

\renewcommand{\theparagraph}{
    \ifthenelse
    {\equal{\value{subsubsection}}{0}}
    {\thesubsection.\arabic{paragraph}}
    {\thesubsubsection.\arabic{paragraph}}
}

但它不起作用。这是实现段落在章节和小节下编号行为的最佳方法吗?

答案1

内容的可扩展性是这里的问题。下面我使用原始条件来决定是否\subsubsection使用:

在此处输入图片描述

\documentclass{article}

\setcounter{secnumdepth}{4}% Number sectional units up to \paragraph

\renewcommand{\theparagraph}{%
  \ifnum\value{subsubsection}=0
    \thesubsection
  \else
    \thesubsubsection
  \fi
  .\arabic{paragraph}}


\begin{document}

\section{A section}% Level 1
\subsection{A subsection} % Level 2
\subsubsection{A subsubsection}% Level 3
\paragraph{A paragraph}% Level 4

\section{A section}% Level 1
\subsection{A subsection} % Level 2
%\subsubsection{A subsubsection}% Level 3
\paragraph{A paragraph}% Level 4

\section{A section}% Level 1
%\subsection{A subsection} % Level 2
%\subsubsection{A subsubsection}% Level 3
\paragraph{A paragraph}% Level 4

\end{document}

注意第 3 部分说明你的逻辑存在问题,如果你没有\subsection,但仍使用\paragraph。这可以通过嵌套来避免:

\renewcommand{\theparagraph}{%
  \ifnum\value{subsubsection}=0
    \ifnum\value{subsection}=0
      \thesection
    \else
      \thesubsection
    \fi
  \else
    \thesubsubsection
  \fi
  .\arabic{paragraph}}

上面我在条件中添加了另一层。但是,此时,您可能需要考虑为什么您的文档结构不符合常规准则。

最终结果可能是您的编号方案产生歧义。

相关内容