带有章节*和字母(A、B、C 等)子章节标签的目录

带有章节*和字母(A、B、C 等)子章节标签的目录

我有两个任务要完成,我在其他线程上找到了两个独立的解决方案。但是,当这些解决方案组合使用时,它们会发生冲突,所以我正在寻找一种兼容两者的方法

任务1:使用字母标签来标记子部分(例如 A、B、C 等)。这可以按照\renewcommand\thesubsection{\Alph{subsection}}@GonzaloMedina 的建议来实现回答

任务 2:自动将\section*条目添加到目录中。这回答@egreg 建议坚持使用纯文本\section并使用\setcounter{secnumdepth}{0}删除目录中的编号

如果我能够成功地将这两个任务结合起来(但我还没有),我想要的渲染效果将如下所示

所需目录 所需章节内容

但是,使用@egreg 的解决方案进行任务 2 会导致 A、B、C 子部分标签消失。我尝试了 @MikeRenfro 在同一线程中提出的另一个建议,即添加\renewcommand{\thesection}{},但正如作者提到的那样,它会留下不必要的缩进,这在审美上并不令人愉悦。在单独的线,@Vser 建议\addcontentsline{toc}{section}{\nameref{sec:intro}},但在我的测试中,这留下了一行纯文本,...没有自动填充部分名称。在没有帮助的情况下手动输入每个名称\nameref会非常耗时且难以维护。

编辑于7/28/20:在我的实际文档中,我使用\tcolorbox它来帮助直观地定义节标题。例如,以下 MWE 及其渲染

\documentclass[a4paper,10pt,twocolumn]{book}
\usepackage{cuted}
\usepackage{tcolorbox}
\usepackage[explicit]{titlesec}

\setcounter{tocdepth}{1}
\titlespacing*{\section}{0pt}{0pt}{0pt}
\titleformat{name=\section, numberless}{\setcounter{subsection}{0}\normalfont\Large\bfseries}{}{0pt}{}[\addcontentsline{toc}{section}{#1}#1]
\renewcommand\thesubsection{\Alph{subsection}} % Accomplishes task 1

\begin{document}
    
    \tableofcontents
    \chapter{Chapter}

    \begin{strip}
        \begin{tcolorbox}[title=\section*{An unnumbered section}]
            Other content here..
        \end{tcolorbox}
    \end{strip}
    \subsection{First Subsection}   
    \subsection{Second Subsection}  
    
\end{document} 

tcolor 框部分标题

最初,我已将其包含\titlespacing*{\section}{0pt}{0pt}{0pt}在序言中,以确保章节标题文本的上方、下方或左侧没有多余的空间。但是,@Bernard 的当前解决方案在章节标题上方添加了一个额外的空白行,如渲染图所示

答案1

您可以使用 titlesec 中的密钥和选项\titleformat获得numberless您想要的内容:explicit

\documentclass{book}
\usepackage[explicit]{titlesec,}

\setcounter{tocdepth}{1}
\titlespacing*{\section}{0pt}{0pt}{0pt}
\titleformat{name=\section, numberless}{\setcounter{subsection}{0}\normalfont\Large\bfseries}{}{0pt}{}[\addcontentsline{toc}{section}{#1}#1]
\renewcommand\thesubsection{\Alph{subsection}} % Accomplishes task 1

\begin{document}

    \tableofcontents
    \chapter{Chapter}
    \section{A numbered section}
        \subsection{Subsection}
    \section*{An unnumbered section}

\end{document} 

相关内容