我想从我的图下的标题中删除图 1,但将其保留在我的图列表中。可以吗?
我\caption[Entry for the List of Figures (LoF)]{}\label{fig:without}
可以在图表列表中添加标题,但是我的图表下仍然有“图 1”,我想将其删除。
答案1
您可以使用宏\addcontentsline
将列表条目添加到图形列表(或其他列表)。
它需要三个参数:
- 列表的文件扩展名。(
toc
用于目录、lof
用于图片列表、lot
用于表格列表,...) - 结构层面
toc
:part
,,,…chapter
section
lof
:figure
lot
:table
- 条目本身。通常,它前面带有
\protect\numberline{…}
条目编号作为参数,并与后面的文本对齐。
我的代码提供了两个三个命令:
\nocaption
只向列表添加标题文本,\nocaptionbutnumber
在条目中添加一个数字(之前已增加,并且\nocaptionwithweirdalignment
不使用\numberline
,因此它的输入文本与左对齐(我不会使用它)。
细微更新
我已经更新了答案,这样\addcontentsline
宏就不会有硬编码的第一个和第二个参数。这些命令现在应该可以在定义和适当的扩展宏的table
其他环境中工作。\@captype
\ext@<\@captype>
代码
\documentclass{article}
\makeatletter
\newcommand*{\nocaption}[1]{%
\addcontentsline{\csname ext@\@captype\endcsname}{\@captype}{\protect\numberline{}#1}%
}
\newcommand*{\nocaptionbutnumber}[1]{%
\refstepcounter{figure}%
\addcontentsline{\csname ext@\@captype\endcsname}{\@captype}{\protect\numberline{\csname the\@captype\endcsname}#1}%%
}
\newcommand*{\nocaptionwithweirdalignment}[1]{%
\addcontentsline{\csname ext@\@captype\endcsname}{\@captype}{#1}%
}
\makeatother
\begin{document}
\listoffigures
\begin{figure}[!ht]
F1
\nocaption{Caption 1}
\end{figure}
\begin{figure}[!ht]
F2
\nocaptionbutnumber{Caption 2}
\end{figure}
\begin{figure}[!ht]
F3
\nocaptionbutnumber{Caption 3}
\end{figure}
\begin{figure}[!ht]
F4
\nocaptionwithweirdalignment{Caption 4}
\end{figure}
\end{document}