在目录中的章节标签前添加星号

在目录中的章节标签前添加星号

你能告诉我如何制作如下的目录吗:

前言.................................i

第 1 章 决定................................1

1.1 啦啦啦........................6

1.2 啦啦啦........................7

第 2 章 会议 ..................................10

2.1 啦啦啦 ........................16

*2.2 啦啦啦........................17

2.3 啦啦啦........................19

*2.4 啦啦啦........................21

2.5 啦啦啦........................25

结论.................................30

附录A.................................35

参考书目.................................40

2.2 和 2.4 节前面加星号以表示级别hard。标题标记与目录中的相同。

答案1

一种方法是创建一个可以改变节号格式的环境。然后,一点点tocloft魔法就能让目录条目看起来很漂亮。

\documentclass{book}
\usepackage{tocloft}
\usepackage{lipsum} % for dummy text
\newenvironment{hard}
{\renewcommand{\thesection}{*\thechapter.\arabic{section}}}
{}
% set section numbers in TOC flush right (from the tocloft documentation)
\newlength{\extralen}
\setlength{\extralen}{0.5em}    % need some extra space at end of number
\renewcommand{\cftsecpresnum}{\hfill} % note the double ‘l’ 
\renewcommand{\cftsecaftersnum}{\hspace*{\extralen}}
\addtolength{\cftsecnumwidth}{\extralen}
\begin{document}
\tableofcontents
\chapter{A chapter}
\section{A regular section}\label{easylabel}
In Section~\ref{easylabel} we see\ldots
\lipsum
\begin{hard}
\section{A hard section}\label{hardlabel}
\lipsum
\end{hard}
In Section~\ref{hardlabel} we see\ldots
\end{document}

请注意,此解决方案还会使参考文献中的章节编号带有 *,并且硬章节中的子章节也会带有 *。(对于子章节,您还需要添加适当的tocloft代码以使其编号也向右对齐。)如果您不想要这样,那么事情就会变得有点复杂。

代码目录

答案2

以下解决方案与您想要的非常相似,但不会对文档中的硬部分进行编号。为此,您可能需要调整titlesec标题格式:

\documentclass{book}
\usepackage{tocloft}
\usepackage{lipsum}

\newcommand{\hardsection}[1]{%
   \section*{#1}%
   \addcontentsline{toc}{section}{$^*$~\thesection~#2}
}


\begin{document}

\tableofcontents

\chapter{First chapter}
\section*{A section here}
\lipsum

\hardsection{And a hard section there}
\lipsum

\chapter{Second chapter}
\section*{And another section}

\lipsum

\end{document}

相关内容