仅对一个部分中的子部分进行编号

仅对一个部分中的子部分进行编号

我有一份文档,我通常不想在其中对章节、部分和小节进行编号。只有一个部分应该包含罗马数字的小节,我该如何实现呢?我试过

\documentclass{report}
\setcounter{secnumdepth}{-1}

\begin{document}

\chapter{mwe}
\section{unnumbered subsections}
\subsection{unnumbered}

\section{roman numbered subsections}
\setcounter{secnumdepth}{2}
\renewcommand{\thesubsection}{\textnormal{\roman{subsection}}.}

\subsection{roman one}
\subsection{roman two}
\end{document}

但是,这在以下语句中给出了错误\section{roman one}:缺失数字视为零。有任何更正建议或替代方法的想法吗?

答案1

如果您将文档类从 更改articlebookreport,您的文档将正常运行。问题中的代码使用了类\chapter中未定义的命令article。尝试:

\documentclass{book}
\setcounter{secnumdepth}{-1}
\begin{document}
\tableofcontents
\chapter{mwe}
\section{unnumbered subsections}
\subsection{unnumbered}
\section{roman numbered subsections}
\setcounter{secnumdepth}{2}
\renewcommand{\thesubsection}{\textnormal{\roman{subsection}}.}
\subsection{roman one}
\subsection{roman two}
\setcounter{secnumdepth}{-1}
\chapter{Second chapter}
\section{unnumbered subsections}
\subsection{unnumbered}
\end{document}

有时使用\addtocounter代替会更好\setcounter,这样您可以在不使用绝对值的情况下提高或降低编号级别。

另外,正如您所看到的,我使用计数器值 -1 来表示不对章节进行编号,而不是 0。

总的来说,我认为改变文档内的编号深度有点不一致。

答案2

无需手动操作计数器,请尝试已加星标版本的分段命令,它们不包括编号(以及目录中的条目):

\documentclass{article}

\begin{document}

\section*{unnumbered subsections}
\subsection*{unnumbered}

\section*{roman numbered subsections}
\renewcommand{\thesubsection}{\textnormal{\roman{subsection}}.}

\subsection{roman one}
\subsection{roman two}
\end{document}

编辑:如果您想再次将带星号的部分包含在目录中,请阅读 将 \section* 居中并添加到目录中

相关内容