我想知道是否可以按部分和/或章节对 LoF(以及类似的 LoT)进行划分。
目前,我有:
图片列表
1.1 等等
1.2 等等
1.3 等等
2.1 等等
2.2 等等
1.1 等等
1.2 等等
我想获得:
第1部分
第1章
1.1 等等
1.2 等等
1.3 等等
第2章
2.1 等等
2.2 等等
第2部分
第1章
1.1 等等
1.2 等等
答案1
您可以在目录、图列表或表格列表中插入部分、章节或任何其他参考资料,其中\addcontentsline{ext}{type}{text}
是ext
辅助文件的扩展名(通常是 toc、lof、lot),type
指定内容类型以及text
您想要在列表中显示的内容。这里有一个简单的例子。
\documentclass{book}
\begin{document}
\tableofcontents
\listoffigures
\part{A}
\addcontentsline{lof}{part}{Part A}
\chapter{A1}
\addcontentsline{lof}{chapter}{Chapter A1}
\section{A11}
\begin{figure}
\caption{FigA1}
\end{figure}
\begin{figure}
\caption{FigA2}
\end{figure}
\chapter{A2}
\addcontentsline{lof}{chapter}{Chapter A2}
\begin{figure}
\caption{FigA21}
\end{figure}
\part{B}
\end{document}
结果是
包裹托克洛夫特允许您定义或更改目录的格式,但我从未使用过它。您可以阅读其简介,并了解 ToC 在 LaTeX 中的工作原理。
编辑:如果您声明自己的命令,则可以避免输入两次章节名称和部分名称。查看\mypart
包含\part
和 的示例命令\addcontentsline
。这样, 中的部分和章节lof
看起来将与 中的相同toc
。
\documentclass{book}
\newcommand{\mypart}[1]{%
\part{#1}
\addcontentsline{lof}{part}{\thepart\hspace{1em}#1}
}
\newcommand{\mychapter}[1]{%
\chapter{#1}
\addcontentsline{lof}{chapter}{\numberline{\thechapter}#1}
}
\begin{document}
\tableofcontents
\listoffigures
\mypart{A}
\mychapter{A1}
\section{A11}
\begin{figure}
\caption{FigA1}
\end{figure}
\begin{figure}
\caption{FigA2}
\end{figure}
\mychapter{A2}
\begin{figure}
\caption{FigA21}
\end{figure}
\mypart{B}
\end{document}
答案2
为了自动将条目添加到图形列表中,您可以修补相关命令:
\usepackage{etoolbox}
\makeatletter
\patchcmd{\@chapter}
{\addcontentsline{toc}{chapter}{\protect\numberline{\thechapter}#1}}
{\addcontentsline{toc}{chapter}{\protect\numberline{\thechapter}#1}%
\addcontentsline{lof}{chapter}{\protect\numberline{\thechapter}#1}%
\addcontentsline{lot}{chapter}{\protect\numberline{\thechapter}#1}}
{}{}
\patchcmd{\@part}
{\addcontentsline{toc}{part}{\thepart\hspace{1em}#1}}
{\addcontentsline{toc}{part}{\thepart\hspace{1em}#1}%
\addcontentsline{lof}{part}{\thepart\hspace{1em}#1}%
\addcontentsline{lot}{part}{\thepart\hspace{1em}#1}}
\makeatother
但是,当章节中没有图表或表格时,这也会打印行。
一般来说,我不建议如此详细的列表,因为图表或表格编号已经说明了它们所属的位置。