更改 \newfloat listof 中元素之间的间距

更改 \newfloat listof 中元素之间的间距

我在序言中创建了一个新的浮点类型,内容如下:

\floatstyle{plain}
\newfloat{myfloat}{thpb}{myfloat}[chapter]
\floatname{myfloat}{\bf My Float}

然后我使用以下命令在文档开头创建所有这些新浮点数的列表:

\listof{myfloat}{My Floats}

我想更改 myfloat 列表中元素之间的间距,以使其与我的 listoffigures 和 listoftables 中的间距相匹配。

我正在使用基于书籍类别的课程(更具体地说:http://www.eg.bucknell.edu/physics/thesis/buthesis.cls)。

答案1

要使新的浮点数列表实现相同的格式,必须重新定义两个命令:\listoffrom float.sty(我假设您正在使用此包构建新的浮点类型)和\@chapterfrom book.cls(其上的标准类buthesis.cls是 build)。第一个重新定义仅将\parskipfrom 0pt(使用 float 创建的新列表的默认值)更改为0.2in(这是 的值)。第二个重新定义只是在新列表的每个章节的开头buthesis.cls添加一个垂直空间。10pt

必须添加到前言中的相关代码(在float包加载之后)如下:

\makeatletter
\renewcommand*{\listof}[2]{%
  \@ifundefined{ext@#1}{\float@error{#1}}{%
    \@namedef{l@#1}{\@dottedtocline{1}{1.5em}{2.3em}}%
    \float@listhead{#2}%
  \begingroup\setlength{\parskip}{0.2in}% default: 0pt
    \@starttoc{\@nameuse{ext@#1}}%
  \endgroup}}
\def\@chapter[#1]#2{\ifnum \c@secnumdepth >\m@ne
                       \if@mainmatter
                         \refstepcounter{chapter}%
                         \typeout{\@chapapp\space\thechapter.}%
                         \addcontentsline{toc}{chapter}%
                                   {\protect\numberline{\thechapter}#1}%
                       \else
                         \addcontentsline{toc}{chapter}{#1}%
                       \fi
                    \else
                      \addcontentsline{toc}{chapter}{#1}%
                    \fi
                    \chaptermark{#1}%
                    \addtocontents{lof}{\protect\addvspace{10\p@}}%
                    \addtocontents{lot}{\protect\addvspace{10\p@}}%
                    \addtocontents{myfloat}{\protect\addvspace{10\p@}}%adds space to the new list
                    \if@twocolumn
                      \@topnewpage[\@makechapterhead{#2}]%
                    \else
                      \@makechapterhead{#2}%
                      \@afterheading
                    \fi}
\makeatother

相关内容