图片列表 - 如何添加标题标签

图片列表 - 如何添加标题标签

我正在使用这个caption包。在 List-Of-Figures 中,我只得到数字,但我还想得到前缀。它目前看起来像这样:

图表列表
1 图 1 的标题........1
2 图 2 的标题........9

我希望它看起来像:

图表列表
图 1:图 1 的标题...1
图 2:图 2 的标题...9

字幕本身已经使用了相同的格式。

答案1

您可以使用tocloft包裹; 一个例子:

\documentclass{book}
\usepackage{tocloft}

\newlength{\mylen}

\renewcommand{\cftfigpresnum}{\figurename\enspace}
\renewcommand{\cftfigaftersnum}{:}
\settowidth{\mylen}{\cftfigpresnum\cftfigaftersnum}
\addtolength{\cftfignumwidth}{\mylen}

\begin{document}

\listoffigures
\begin{figure}[!ht]
  \centering
  \rule{2cm}{2cm}
  \caption{test figure one}
  \label{fig:test1}
\end{figure}
\begin{figure}[!ht]
  \centering
  \rule{2cm}{2cm}
  \caption{test figure two}
  \label{fig:test2}
\end{figure}

\end{document}

如果您想tocloft使用默认的 LaTeX 格式(这样它就不会“弄乱”您的目录布局等),您可以使用包的标题选项:

\usepackage[titles]{tocloft}

答案2

为了实现你的目标没有加载tocloft包,必须修补 LaTeX 内部\@caption宏中的指令并重新定义内部宏\l@figure\l@table

以下 MWE 显示了如何执行此操作;请注意,修补是使用包\patchcmd提供的命令完成的etoolbox。(如果出于某种原因,您不想使用该\patchcmd指令,则需要将\@caption文件中的整个定义复制并粘贴到您的序言中,并用latex.ltx替换字符串,保持其他指令不变。)\csname the#1\endcsname\csname fnum@#1\endcsname:

\documentclass{article}
\usepackage{etoolbox}
\makeatletter
\patchcmd{\@caption}{\csname the#1\endcsname}{\csname fnum@#1\endcsname:}{}{}
\renewcommand*\l@figure{\@dottedtocline{1}{1.5em}{4.5em}} % default for 3rd arg: 2.3em
\let\l@table\l@figure % as in article.cls
\makeatother

\begin{document}
\listoffigures
\listoftables

\begin{figure}[h]
\caption{A figure}
\centering xyz
\end{figure}

\begin{table}[h]
\caption{Some table}
\centering abc
\end{table}
\end{document}

在此处输入图片描述

答案3

当您为图形添加标题时,有一个专为图形列表设计的可选参数。

\caption[short title]{Long caption describing the figure.}

这将显示短标题作为图表列表中的标题,长标题作为图表的实际标题。这两者完全可以相同。

之所以这样设计,是因为许多图表,尤其是科学出版物中的图表,都有很长的标题来描述图表中的所有内容。所有这些都不适合放在图表列表中,因此为此目的有一个单独的标题。

它是可选的,因为如果您没有包含图形列表,则不需要它。

答案4

您还可以使用包tocbasic

\documentclass{article}
\usepackage{tocbasic}

\DeclareTOCStyleEntry[
  entrynumberformat=\entrynumberwithprefix{\figurename},
  dynnumwidth,
  numsep=1em
]{tocline}{figure}
\newcommand\entrynumberwithprefix[2]{#1\enspace#2:\hfill}

\begin{document}
\listoffigures
\begin{figure}[!ht]
  \centering
  \rule{2cm}{2cm}
  \caption{test figure one}
  \label{fig:test1}
\end{figure}
\begin{figure}[!ht]
  \centering
  \rule{2cm}{2cm}
  \caption{test figure two}
  \label{fig:test2}
\end{figure}
\end{document}

运行三次即可获得

在此处输入图片描述

或者使用 KOMA-Script 类:

\documentclass[listof=entryprefix]{scrartcl}% loads tocbasic automatically
\AfterTOCHead[lof]{\def\autodot{:}}

\begin{document}
\listoffigures
\begin{figure}[!ht]
  \centering
  \rule{2cm}{2cm}
  \caption{test figure one}
  \label{fig:test1}
\end{figure}
\begin{figure}[!ht]
  \centering
  \rule{2cm}{2cm}
  \caption{test figure two}
  \label{fig:test2}
\end{figure}
\end{document}

在此处输入图片描述

相关内容