如何检查某个环境是章节还是节?

如何检查某个环境是章节还是节?

如何检查环境是章节还是节?我试过了,\ifnum \c@secnumdepth >\m@ne (or \z@) do something for sections \else chapter\fi但没有效果。

我想toc分别在章节和章节标题前放置一本书和一个纸张图标。(对于这个问题,请考虑,书本图标:=\spadesuit和纸张图标:= \S)。第一个简单的解决方案是重新定义\numberline如下:

\documentclass{book}

\makeatletter
 renewcommand{\numberline}[1]{\ifnum \c@secnumdepth >\m@ne \S \else $\spadesuit$\fi~#1~}
\makeatother
\usepackage{lipsum}% Just for this example

\begin{document}

\tableofcontents
\chapter{title}\chapter{title}
\section{A section}
\lipsum[1-50]

\setcounter{section}{9}
\section{Another section}
\lipsum[1-50]
\chapter{title}\chapter{title}
\setcounter{section}{99}
\section{Yet another section}
\lipsum[1-50]
\chapter{title}\chapter{title}
\setcounter{section}{999}
\section{Last section}
\lipsum[1-50]

\end{document}

在此处输入图片描述

答案1

使用tocloft包(> texdoc tocloft查看文档)。

\usepackage{tocloft}
\renewcommand*{\cftchappresnum}{\spadesuit} % put before chapter number in ToC
\renewcommand*{\cftsecpresnum}{\S} % put before section number in ToC

您可能还需要增加可用空间以容纳增强的数字,例如

\setlength{\cftchapnumwidth}{<your length>}
\setlength{\cftsecnumwidth}{<your length>}

相关内容