我需要在表格和图片列表中的每个条目前加上适当的文本 - 每个条目的前缀是表格或图片。我还需要从列表中删除章节编号,因为整个报告中的表格都是按顺序编号的。
我设法用这些简单的命令完成了我需要的一切:
\renewcommand{\thetable}{\arabic{table}}
\renewcommand{\thefigure}{\arabic{figure}}
\makeatletter
\providecommand\phantomsection{}% for hyperref
\newcommand\listoftablesandfigures{%
\chapter*{List of Tables and Figures}%
\phantomsection
%\addcontentsline{toc}{chapter}{List of Illustrations}%
%\section*{Figures}%
%\phantomsection
%\addcontentsline{toc}{section}{\protect\numberline{}Figures}%
\@starttoc{lof}%
\bigskip
%\section*{Tables}%
%\phantomsection
%\addcontentsline{toc}{section}{\protect\numberline{}Tables}%
\@starttoc{lot}}
\makeatother
现在只剩下一件事:与表格和图表列表中的文本保持一致。
答案1
您可以使用chngcntr
包来更改图形计数器和表格计数器,以及使用tocloft
包将单词“表”和“图形”添加到表格和图形列表中。一个小例子:
\documentclass{report}
\usepackage{chngcntr}
\usepackage{tocloft}
\usepackage{hyperref}
\counterwithout{figure}{chapter}
\counterwithout{table}{chapter}
\renewcommand{\cftfigpresnum}{Figure\ }
\renewcommand{\cfttabpresnum}{Table\ }
\newlength{\mylenf}
\settowidth{\mylenf}{\cftfigpresnum}
\setlength{\cftfignumwidth}{\dimexpr\mylenf+1.5em}
\setlength{\cfttabnumwidth}{\dimexpr\mylenf+1.5em}
\makeatletter
\newcommand\listoftablesandfigures{%
\chapter*{List of Tables and Figures}%
\phantomsection
\@starttoc{lof}%
\bigskip
\@starttoc{lot}}
\makeatother
\begin{document}
\listoftablesandfigures
\chapter{Test one}
\section{Test one one}
\begin{table}
\caption{Test table one}
\end{table}
\begin{figure}
\caption{Test figure one}
\end{figure}
\chapter{Test two}
\section{Test two two}
\begin{table}
\caption{Test table two}
\end{table}
\begin{figure}
\caption{Test figure two}
\end{figure}
\end{document}
仅显示结果文档的组合列表:
答案2
只需使用这些命令代替\listoftables
和\listoffigures
:
对于数字:
{%
\let\oldnumberline\numberline%
\renewcommand{\numberline}{\figurename~\oldnumberline}%
\listoffigures%
}
对于表格:
{%
\let\oldnumberline\numberline%
\renewcommand{\numberline}{\tablename~\oldnumberline}%
\listoftables%
}
无需使用任何包并使事情变得复杂。