titlesec 的 \titleclass 存在问题

titlesec 的 \titleclass 存在问题

遵循第节中的指导原则3.9. 创建新级别并更改类别手册中titlesec,我试图\sectionsub\section创建一个新的分段命令,以实现先前这个问题。我的当前代码如下所示。

但是,我面临两个问题:

  1. subsection和的编号subsubsection消失。
  2. 有警告bookmark level for unknown sectionsub defaults to 0

关于 1),当然\setcounter{secnumdepth}{4}可以在这里工作,但问题是我不确定是否4是合适的值。关于 2),\let\toclevel@sectionsub\toclevel@section在下面给出的 MWE 中工作,但由于未知原因,这在我的完整版本的文档类中不起作用(我试图缩小问题范围大约一个小时,但结果却是徒劳的)。

我该如何妥善解决这两个问题?

\documentclass{book}

\usepackage[explicit]{titlesec}
\usepackage{titletoc}
\usepackage{hyperref}
\usepackage{bookmark}

%% \sectionsub
\titleclass{\sectionsub}{straight}[\section]
\newcounter{sectionsub}
\renewcommand{\thesectionsub}{\Alph{sectionsub}}

\titleformat{\sectionsub}
  {\large\scshape}
  {\thesectionsub}
  {1em}
  {#1}
\titleformat{name=\sectionsub,numberless}
  {\large\scshape}
  {}
  {1em}
  {#1}
\titlespacing{\sectionsub}{0pt}{.8\baselineskip}{.5\baselineskip}

\titlecontents{sectionsub}
  [4em]
  {\normalfont}
  {\contentslabel{1.75em}}
  {\hspace*{-1.75em}}
  {\titlerule*[1em]{.}\contentspage}

\begin{document}

\tableofcontents

\section{Test section}
\sectionsub{Test sectionsub}
\subsection{Test subsection}
\subsubsection{Test subsubsection}

\end{document}

在此处输入图片描述

答案1

(1)用于\setcounter{secnumdepth}{4} 获取书籍类别中编号的子章节和子子章节。(另外\setcounter{tocdepth}{4}使它们出现在目录中)

(2)hyperref作为最后一个包加载。

(3)

\makeatletter
\def\toclevel@section{1}
\def\toclevel@sectionsub{2}
\def\toclevel@subsection{3}
\def\toclevel@subsubsection{4}
\makeatother

警告消失并且\sectionsub处于正确的位置(在节之后和小节之前)。

A

相关内容