尝试\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}}
上面我在条件中添加了另一层。但是,此时,您可能需要考虑为什么您的文档结构不符合常规准则。
最终结果可能是您的编号方案产生歧义。