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
\floatname
rec
recommendation
book
report
article
\listoffigures
book.cls
report.cls
figure
rec
article
\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}