我正在使用 figcaps 移动文档末尾的图形并生成图形列表。figcaps 包显示图形标题两次:一次在图形列表中,一次在每个图形下方。有没有办法只在列表中显示标题?
这是我在序言中使用的代码:
\usepackage[blank]{figcaps}
\printfigures
\makeatletter
\patchcmd{\@figurepage}{\vspace{20pt}}{\clearpage}{}{}
\makeatother
\makeatletter
\patchcmd{\@tablepage}{\bigskip}{\clearpage}{}{}
\makeatother
答案1
表格和图形被区别对待figcaps
,因为只有图形的标题列表才会单独显示。
只需在已添加的补丁上添加另一个补丁即可。
\documentclass{article}
\usepackage{etoolbox}
\usepackage[blank]{figcaps}
\printfigures
\makeatletter
\patchcmd{\@figurepage}{\def\label}{\renewcommand\caption[2][]{}\def\label}{}{}
\patchcmd{\@figurepage}{\vspace{20pt}}{\clearpage}{}{}
\patchcmd{\@tablepage}{\bigskip}{\clearpage}{}{}
\makeatother
\begin{document}
text
\begin{figure}
\rule{3cm}{3cm}
\caption{A square}
\end{figure}
some other text
\begin{figure}
\rule{3cm}{3cm}
\caption{Another square}
\end{figure}
text
\begin{table}
A table?
\caption{A table}
\end{table}
text
\begin{table}
A table?
\caption{Another table}
\end{table}
\end{document}
.lof
当读取文件来打印图形时,这将删除图形标题。
如果你只想删除标题文字,保留“图 n”,那么你可以这样做
\documentclass{article}
\usepackage{etoolbox}
\usepackage[blank]{figcaps}
\printfigures
\makeatletter
\let\@figurepage@makecaption\@makecaption
\patchcmd{\@figurepage@makecaption}{: #2}{}{}{}
\patchcmd{\@figurepage@makecaption}{: #2}{}{}{}
\patchcmd{\@figurepage}
{\def\label}
{\let\@makecaption\@figurepage@makecaption\def\label}
{}{}
\patchcmd{\@figurepage}{\vspace{20pt}}{\clearpage}{}{}
\patchcmd{\@tablepage}{\bigskip}{\clearpage}{}{}
\makeatother
\begin{document}
text
\begin{figure}
\rule{3cm}{3cm}
\caption{A square}
\end{figure}
some other text
\begin{figure}
\rule{3cm}{3cm}
\caption{Another square}
\end{figure}
text
\begin{table}
A table?
\caption{A table}
\end{table}
text
\begin{table}
A table?
\caption{Another table}
\end{table}
\end{document}
当然,了解您所使用的类和包非常重要,因为如果您加载caption
不同于的包或类,修补程序将不会成功article
。