如何在目录中列出使用浮动包创建的项目

如何在目录中列出使用浮动包创建的项目

float我使用该包创建了一种新型浮点数。

\floatstyle{plaintop}
\newfloat{recommendation}{htbp}{lop}[section]
\floatname{recommendation}{Recommendation}

我希望它作为推荐列表列在目录中。

我似乎找不到一个简单的方法来做到这一点。

有任何想法吗?

答案1

如果建议列表跨越多页,简单地添加\addcontensline之后\listof会导致目录中的页码不正确。相反,我建议重新定义\float@listhead

\documentclass{article}

\usepackage{float}
\floatstyle{plaintop}
\newfloat{recommendation}{htbp}{lop}[section]
\floatname{recommendation}{Recommendation}

\makeatletter
\renewcommand*{\float@listhead}[1]{%
  \@ifundefined{chapter}{%
    \section*{#1}%
    \addcontentsline{toc}{section}{#1}%
  }{%
    \chapter*{#1}%
    \addcontentsline{toc}{chapter}{#1}%
  }%
  \@mkboth{\MakeUppercase{#1}}{\MakeUppercase{#1}}%
}
\makeatother

\begin{document}

\tableofcontents

\listof{recommendation}{List of Recommendations}

\section{foo}

\begin{recommendation}
A recommendation.
\caption{Use \LaTeX!}
\end{recommendation}

\end{document}

在此处输入图片描述

答案2

假设 (i) 您使用的是article文档类,并且 (ii) 您同意将建议列表看起来像表格列表和图片列表,则以下内容应该适合您。请注意

  • “建议清单”由该命令生成\listofrecs,并且
  • 每个推荐浮点数都是由\begin{rec}...创建的\end{rec}

另外两条注释。首先,如果您想写出recommendation而不是,只需将和宏rec的第一个参数从更改为即可。其次,如果您使用的是()文档类而不是文档类,只需在( )中查找定义并(i)将该代码复制到您的序言中并(ii)在整个过程中替换为。(当然,这就是我对下面 MWE 中的文档类的情况所做的……)newfloat\floatnamerecrecommendationbookreportarticle\listoffiguresbook.clsreport.clsfigurerecarticle

\documentclass{article}
\usepackage{float}
\floatstyle{plaintop}
\newfloat{rec}{htbp}{lor}[section]  % 'lor' is short for "List of Recommendations"
\floatname{rec}{Recommendation}

\makeatletter
% the following is adapted from the definition of the "List of Tables" in article.cls
\newcommand{\listrecname}{List of Recommendations}
\newcommand\listofrecs{%
    \section*{\listrecname}%
      \@mkboth{%
          \MakeUppercase\listrecname}%
         {\MakeUppercase\listrecname}%
    \@starttoc{lor}%
    }
\let\l@rec\l@figure
\makeatother
\begin{document}
\listofrecs

\section{Some recommendations}
\begin{rec}
\caption{Go away}\label{rec:1}
\end{rec}
\begin{rec}
\caption{No, stay}\label{rec:2}
\end{rec}
\begin{rec}
\caption{Come back!}\label{rec:3}
\end{rec}
\end{document}

在此处输入图片描述

相关内容