非目录子部分的 titlesec 问题

非目录子部分的 titlesec 问题

我想用前导\S(章节)符号来格式化章节和子章节,但不希望子章节出现在目录中,所以我写了

\documentclass{article}
\usepackage{titlesec}

\setcounter{secnumdepth}{1}
\titleformat{\section}[hang]{\normalfont\Large\bfseries}{\S\ \thesection}{1em}{}
\titleformat{\subsection}[hang]{\normalfont\large\bfseries}{\S\ \thesubsection}{1em}{}

\begin{document}
\section{Section One}
\subsection{Subsection A}
\end{document}

这对于部分来说工作正常,但子部分没有前导符号。输出是

在此处输入图片描述

如果我删除\setcounter{secnumdepth}{1},一切都会按预期工作(当然,TOC 条目除外)。我假设有某种方法可以告诉 titlesec 我想要什么,但我搞不清楚。

答案1

您需要设置计数器tocdepth,而不是secnumdepth

\documentclass{article}
\usepackage{titlesec}

\setcounter{tocdepth}{1}
\titleformat{\section}[hang]{\normalfont\Large\bfseries}{\S\ \thesection}{1em}{}
\titleformat{\subsection}[hang]{\normalfont\large\bfseries}{\S\ \thesubsection}{1em}{}

\begin{document}
\tableofcontents
\section{Section One}
\subsection{Subsection A}
\end{document}

在此处输入图片描述

相关内容