我正在用\documentclass[12pt,a4paper,twoside]{report}
它来做报告。
整个报告分为两部分,每部分包含章节,样本索引如下。
图片列表
表格列表
第一部分
第1章
1.1
第2章
2.1
第二部分 B
第1章
1.1
第2章
2.1
在图表列表和表格部分列表中,我只想添加零件名称,如下所示。
图片列表
第一部分
1.1 图片说明
2.1 图片标题
第二部分 B
1.1 图片说明
2.1 图片标题
请给我必要的解决方案。
答案1
\@part
通过稍加改变并再次明确添加\addcontentsline
而lof
不是来修补答案toc
。
我保留了垂直章节间隙,以便LoF
更加突出来自不同章节的人物元素。
\documentclass{report}
\usepackage{xpatch}
\makeatletter
\xpatchcmd{\@part}{%
\markboth{}{}% Find a hook in order to append content.
}{%
\markboth{}{}%
\ifnum\c@secnumdepth>-2\relax
\addcontentsline{lof}{part}{\thepart\hspace{1em}#1}%
\else
\addcontentsline{lof}{part}{#1}%
\fi
}{\typeout{Success}}{\typeout{Patch failure}}
\makeatother
\usepackage{hyperref}
\begin{document}
\tableofcontents
\listoffigures
\part{Number Three -- the Larch}
\chapter{A dummy chapter}
\begin{figure}
\caption{First figure}
\end{figure}
\begin{figure}
\caption{Second figure}
\end{figure}
\part{And now for something completely different}
\begin{figure}
\caption{Third figure}
\end{figure}
\end{document}
答案2
我调整了这个答案在图表列表中包含部分而不是章节:
\documentclass[12pt,a4paper,twoside]{report}
\usepackage{etoolbox}
\makeatletter
\def\thisparttitle{}
\def\thispartnumber{}
\newtoggle{noFigs}
\apptocmd{\@part}{\gdef\thisparttitle{#1}\gdef\thispartnumber{\thepart}\global\toggletrue{noFigs}}{}{}
\AtBeginDocument{\AtBeginEnvironment{figure}{%
\iftoggle{noFigs}{
\addtocontents{lof}{\protect\contentsline{part}{\protect\numberline{\thispartnumber}{\thisparttitle}}{}{}}
\global\togglefalse{noFigs}
}{}
}}
\makeatother
\begin{document}
\listoffigures
\part{A}
\chapter{First}
\begin{figure}[h]
\caption{Caption of first figure}
\end{figure}
\chapter{Second}
\begin{figure}[h]
\caption{Caption of second figure}
\end{figure}
\part{B}
\chapter{First}
\begin{figure}[h]
\caption{Caption of third figure}
\end{figure}
\chapter{Second}
\begin{figure}[h]
\caption{Caption of fourth figure}
\end{figure}
\end{document}