我正在处理tufte-book
LaTeX 文档,遇到了一个问题,我想将某个图的标题排除在图片列表 (LoF) 之外。但是,尽管使用了该\caption[]{}
命令,标题仍然出现在 LoF 中。以下是我尝试的一个简单示例:
\documentclass{tufte-book}
\usepackage{caption}
\begin{document}
\begin{figure}
\caption[]{My caption 1} % Do not expect this caption to appear in the LoF
\end{figure}
\begin{figure}
\ContinuedFloat
\caption{My caption 2} % Expect this caption to appear in the LoF
\end{figure}
\listoffigures
\end{document}
是否有特定的方法可以在tufte-book
文档类中正确处理这种排除,或者是否有一种不涉及手动编辑 LoF 的解决方法?
答案1
您可以通过重新定义 来暂时阻止将标题内容写入图形列表\caption@addcontentsline
。必须在 和 之间\makeatletter
执行此操作以\makeatother
处理宏名称中的“@”符号,并在组 ( \begingroup
... \endgroup
) 中执行此操作以恢复正常的命令定义。请注意,必须手动增加图形编号(在\refstepcounter{figure}
组外)。
\documentclass{tufte-book}
\usepackage{caption}
\begin{document}
\begingroup
\makeatletter
\renewcommand{\caption@addcontentsline}[2]{}
\makeatother
\begin{figure}
\caption{My caption 1} % Do not expect this caption to appear in the LoF
\end{figure}
\endgroup
\refstepcounter{figure}
\begin{figure}
\ContinuedFloat
\caption{My caption 2} % Expect this caption to appear in the LoF
\end{figure}
\listoffigures
\end{document}
要多次使用,请定义一个新环境,例如figurenolof
:
\documentclass{tufte-book}
\usepackage{caption}
\makeatletter
\newenvironment{figurenolof}{%
\begingroup
\renewcommand{\caption@addcontentsline}[2]{}
\begin{figure}
}{%
\end{figure}
\endgroup
\refstepcounter{figure}
}
\makeatother
\begin{document}
\begin{figurenolof}
\caption{My caption 1} % Do not expect this caption to appear in the LoF
\end{figurenolof}
\begin{figure}
\ContinuedFloat
\caption{My caption 2} % Expect this caption to appear in the LoF
\end{figure}
\listoffigures
\end{document}
```## Heading ##
答案2
Tuft 类有它自己的\caption
,并且可能在每个图形环境中重置它(\AtBeginDocument
没有帮助),还要注意默认将\caption@caption
标题居中。
\documentclass{tufte-book}
\usepackage{caption}
\makeatletter
\let\Caption=\caption@caption% caption package \caption
\makeatother
\begin{document}
\listoffigures
\begin{figure}
\Caption[]{My caption 1}
\end{figure}
\begin{figure}
\ContinuedFloat
\Caption{My caption 2}
\end{figure}
\end{document}