我正在使用这个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}