Вы можете написать, что, естественно, делается \addcontentsline
вручную с помощью \addtocontents{toc}
:
\documentclass{report}
\usepackage[titles]{tocloft}
\begin{document}
\tableofcontents
\chapter{Numbered chapter}
\chapter*{Unnumbered chapter}
\addtocontents{toc}
{\protect\contentsline{chapter}{\textit{Unnumbered chapter}}{\textit{\thepage}}}
\end{document}
выше должны работать для \chapter
с, так как они, как правило, устанавливается на новой странице и, следовательно, \thepage
приведет к правильному значению. Однако он не работает с hyperref
.
В качестве альтернативы, определить новый тип ТОС записи называется chapterstar
:
\documentclass{report}
\usepackage[titles]{tocloft}
\usepackage{etoolbox}
\makeatletter
\let\[email protected]\[email protected]
% \patchcmd{<cmd>}{<search>}{<replace>}{<success>}{<failure>}
\patchcmd{\[email protected]}{\cftchapfont}{\cftchapstarfont}{}{}% Insert starred chapter font
\patchcmd{\[email protected]}{#2}{\cftchapstarpagefont #2}{}{}% Insert starred chapter page number font
\makeatother
\newcommand{\cftchapstarfont}{\cftchapfont\itshape}
\newcommand{\cftchapstarpagefont}{\cftchappagefont\itshape}
\begin{document}
\tableofcontents
\chapter{Numbered chapter}
\chapter*{Unnumbered chapter}
\addcontentsline{toc}{chapterstar}{Unnumbered chapter}
\end{document}
выше решение работает с hyperref
и более общий характер.