![如何检查某个环境是章节还是节?](https://linux22.com/image/479030/%E5%A6%82%E4%BD%95%E6%A3%80%E6%9F%A5%E6%9F%90%E4%B8%AA%E7%8E%AF%E5%A2%83%E6%98%AF%E7%AB%A0%E8%8A%82%E8%BF%98%E6%98%AF%E8%8A%82%EF%BC%9F.png)
如何检查环境是章节还是节?我试过了,\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>}